From f58ef4e83c17ba6e7add23c27944c2c942b588e8 Mon Sep 17 00:00:00 2001 From: Josh Humphries Date: Tue, 15 Feb 2022 13:16:46 -0500 Subject: [PATCH 1/4] add desc/sourceinfo package and protoc-gen-gosrcinfo plugin --- .../cmd/protoc-gen-gosrcinfo/main.go | 205 +++++++ desc/sourceinfo/locations.go | 207 ++++++++ desc/sourceinfo/registry.go | 109 ++++ desc/sourceinfo/wrappers.go | 500 ++++++++++++++++++ go.mod | 4 +- go.sum | 335 +++++++++++- 6 files changed, 1354 insertions(+), 6 deletions(-) create mode 100644 desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go create mode 100644 desc/sourceinfo/locations.go create mode 100644 desc/sourceinfo/registry.go create mode 100644 desc/sourceinfo/wrappers.go diff --git a/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go b/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go new file mode 100644 index 00000000..14b7c373 --- /dev/null +++ b/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go @@ -0,0 +1,205 @@ +package main + +import ( + "fmt" + "path" + "reflect" + "strings" + + "github.com/golang/protobuf/proto" + "github.com/jhump/gopoet" + "github.com/jhump/goprotoc/plugins" + "google.golang.org/protobuf/types/descriptorpb" + + "github.com/jhump/protoreflect/desc" +) + +func main() { + plugins.PluginMain(genSourceInfo) +} + +func genSourceInfo(req *plugins.CodeGenRequest, resp *plugins.CodeGenResponse) error { + args, err := parseArgs(req.Args) + if err != nil { + return err + } + names := plugins.GoNames{ + ImportMap: args.importMap, + ModuleRoot: args.moduleRoot, + SourceRelative: args.sourceRelative, + } + if args.importPath != "" { + // if we're overriding import path, go ahead and query + // package for each file, which will cache the override name + // so all subsequent queries are consistent + for _, fd := range req.Files { + // Only use the override for files that don't otherwise have an + // entry in the specified import map + if _, ok := args.importMap[fd.GetName()]; !ok { + names.GoPackageForFileWithOverride(fd, args.importPath) + } + } + } + for _, fd := range req.Files { + if err := generateSourceInfo(fd, &names, resp, args); err != nil { + if fe, ok := err.(*gopoet.FormatError); ok { + if args.debug { + return fmt.Errorf("%s: error in generated Go code: %v:\n%s", fd.GetName(), err, fe.Unformatted) + } else { + return fmt.Errorf("%s: error in generated Go code: %v (use debug=true arg to show full source)", fd.GetName(), err) + } + } else { + return fmt.Errorf("%s: %v", fd.GetName(), err) + } + } + } + return nil +} + +var typeOfSourceInfo = reflect.TypeOf((*descriptorpb.SourceCodeInfo)(nil)).Elem() + +func generateSourceInfo(fd *desc.FileDescriptor, names *plugins.GoNames, resp *plugins.CodeGenResponse, args codeGenArgs) error { + si := fd.AsFileDescriptorProto().GetSourceCodeInfo() + if len(si.GetLocation()) == 0 { + return nil + } + pkg := names.GoPackageForFile(fd) + filename := names.OutputFilenameFor(fd, ".pb.srcinfo.go") + f := gopoet.NewGoFile(path.Base(filename), pkg.ImportPath, pkg.Name) + + f.FileComment = "Code generated by protoc-gen-gosrcinfo. DO NOT EDIT.\n" + + "source: " + fd.GetName() + + siBytes, err := proto.Marshal(si) + if err != nil { + return fmt.Errorf("failed to serialize source code info: %w", err) + } + + srcCodeInfo := f.EnsureTypeImported(gopoet.TypeNameForReflectType(typeOfSourceInfo)) + srcInfoPkg := f.RegisterImport("github.com/jhump/protoreflect/desc/sourceinfo", "sourceinfo") + protoPkg := f.RegisterImport("google.golang.org/protobuf/proto", "proto") + + varName := "srcInfo_" + clean(fd.GetName()) + var initBlock gopoet.CodeBlock + initBlock.Println("[]byte{") + for len(siBytes) > 0 { + var chunk []byte + if len(siBytes) < 16 { + chunk = siBytes + siBytes = nil + } else { + chunk = siBytes[:16] + siBytes = siBytes[16:] + } + for _, b := range chunk { + initBlock.Printf(" 0x%02x,", b) + } + initBlock.Println("") + } + initBlock.Println("}") + f.AddVar(gopoet.NewVar(varName).SetInitializer(&initBlock)) + f.AddElement(gopoet.NewFunc("init"). + Printlnf("var si %s", srcCodeInfo). + Printlnf("if err := %sUnmarshal(%s, &si); err != nil {", protoPkg, varName). + Println(" panic(err)"). + Println("}"). + Printlnf("%sRegisterSourceInfo(%q, &si)", srcInfoPkg, fd.GetName())) + + out := resp.OutputFile(filename) + return gopoet.WriteGoFile(out, f) +} + +func clean(name string) string { + name = strings.TrimSuffix(name, ".proto") + data := ([]byte)(name) + for i, b := range data { + if (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9') { + continue + } + data[i] = '_' + } + return string(data) +} + +type codeGenArgs struct { + debug bool + importPath string + importMap map[string]string + moduleRoot string + sourceRelative bool +} + +func parseArgs(args []string) (codeGenArgs, error) { + var result codeGenArgs + for _, arg := range args { + vals := strings.SplitN(arg, "=", 2) + switch vals[0] { + case "debug": + val, err := boolVal(vals) + if err != nil { + return result, err + } + result.debug = val + + case "import_path": + if len(vals) == 1 { + return result, fmt.Errorf("plugin option 'import_path' requires an argument") + } + result.importPath = vals[1] + + case "module": + if len(vals) == 1 { + return result, fmt.Errorf("plugin option 'module' requires an argument") + } + result.moduleRoot = vals[1] + + case "paths": + if len(vals) == 1 { + return result, fmt.Errorf("plugin option 'paths' requires an argument") + } + switch vals[1] { + case "import": + result.sourceRelative = false + case "source_relative": + result.sourceRelative = true + default: + return result, fmt.Errorf("plugin option 'paths' accepts 'import' or 'source_relative' as value, got %q", vals[1]) + } + + default: + if len(vals[0]) > 1 && vals[0][0] == 'M' { + if len(vals) == 1 { + return result, fmt.Errorf("plugin 'M' options require an argument: %s", vals[0]) + } + if result.importMap == nil { + result.importMap = map[string]string{} + } + result.importMap[vals[0][1:]] = vals[1] + break + } + + return result, fmt.Errorf("unknown plugin option: %s", vals[0]) + } + } + + if result.sourceRelative && result.moduleRoot != "" { + return result, fmt.Errorf("plugin option 'module' cannot be used with 'paths=source_relative'") + } + + return result, nil +} + +func boolVal(vals []string) (bool, error) { + if len(vals) == 1 { + // if no value, assume "true" + return true, nil + } + switch strings.ToLower(vals[1]) { + case "true", "on", "yes", "1": + return true, nil + case "false", "off", "no", "0": + return false, nil + default: + return false, fmt.Errorf("invalid boolean arg for option '%s': %s", vals[0], vals[1]) + } +} diff --git a/desc/sourceinfo/locations.go b/desc/sourceinfo/locations.go new file mode 100644 index 00000000..20d2d7a0 --- /dev/null +++ b/desc/sourceinfo/locations.go @@ -0,0 +1,207 @@ +package sourceinfo + +import ( + "math" + "sync" + + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/descriptorpb" + + "github.com/jhump/protoreflect/desc/internal" +) + +// NB: forked from google.golang.org/protobuf/internal/filedesc +type sourceLocations struct { + protoreflect.SourceLocations + + orig []*descriptorpb.SourceCodeInfo_Location + // locs is a list of sourceLocations. + // The SourceLocation.Next field does not need to be populated + // as it will be lazily populated upon first need. + locs []protoreflect.SourceLocation + + // fd 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. + fd protoreflect.FileDescriptor + + once sync.Once + byPath map[pathKey]int +} + +func (p *sourceLocations) Len() int { return len(p.orig) } +func (p *sourceLocations) Get(i int) protoreflect.SourceLocation { + return p.lazyInit().locs[i] +} +func (p *sourceLocations) byKey(k pathKey) protoreflect.SourceLocation { + if i, ok := p.lazyInit().byPath[k]; ok { + return p.locs[i] + } + return protoreflect.SourceLocation{} +} +func (p *sourceLocations) ByPath(path protoreflect.SourcePath) protoreflect.SourceLocation { + return p.byKey(newPathKey(path)) +} +func (p *sourceLocations) ByDescriptor(desc protoreflect.Descriptor) protoreflect.SourceLocation { + if p.fd != nil && desc != nil && p.fd != desc.ParentFile() { + return protoreflect.SourceLocation{} // mismatching parent imports + } + var pathArr [16]int32 + path := pathArr[:0] + for { + switch desc.(type) { + case protoreflect.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 protoreflect.MessageDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(internal.File_messagesTag)) + case protoreflect.MessageDescriptor: + path = append(path, int32(internal.Message_nestedMessagesTag)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.FieldDescriptor: + isExtension := desc.(protoreflect.FieldDescriptor).IsExtension() + path = append(path, int32(desc.Index())) + desc = desc.Parent() + if isExtension { + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(internal.File_extensionsTag)) + case protoreflect.MessageDescriptor: + path = append(path, int32(internal.Message_extensionsTag)) + default: + return protoreflect.SourceLocation{} + } + } else { + switch desc.(type) { + case protoreflect.MessageDescriptor: + path = append(path, int32(internal.Message_fieldsTag)) + default: + return protoreflect.SourceLocation{} + } + } + case protoreflect.OneofDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.MessageDescriptor: + path = append(path, int32(internal.Message_oneOfsTag)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.EnumDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(internal.File_enumsTag)) + case protoreflect.MessageDescriptor: + path = append(path, int32(internal.Message_enumsTag)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.EnumValueDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.EnumDescriptor: + path = append(path, int32(internal.Enum_valuesTag)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.ServiceDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(internal.File_servicesTag)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.MethodDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.ServiceDescriptor: + path = append(path, int32(internal.Service_methodsTag)) + default: + return protoreflect.SourceLocation{} + } + default: + return protoreflect.SourceLocation{} + } + } +} +func (p *sourceLocations) lazyInit() *sourceLocations { + p.once.Do(func() { + if len(p.orig) > 0 { + p.locs = make([]protoreflect.SourceLocation, len(p.orig)) + // Collect all the indexes for a given path. + pathIdxs := make(map[pathKey][]int, len(p.locs)) + for i := range p.orig { + l := asSourceLocation(p.orig[i]) + p.locs[i] = l + 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.locs)) + for k, idxs := range pathIdxs { + for i := 0; i < len(idxs)-1; i++ { + p.locs[idxs[i]].Next = idxs[i+1] + } + p.locs[idxs[len(idxs)-1]].Next = 0 + p.byPath[k] = idxs[0] // record the first location for this path + } + } + }) + return p +} + +func asSourceLocation(l *descriptorpb.SourceCodeInfo_Location) protoreflect.SourceLocation { + endLine := l.Span[0] + endCol := l.Span[2] + if len(l.Span) > 3 { + endLine = l.Span[2] + endCol = l.Span[3] + } + return protoreflect.SourceLocation{ + Path: l.Path, + StartLine: int(l.Span[0]), + StartColumn: int(l.Span[1]), + EndLine: int(endLine), + EndColumn: int(endCol), + LeadingDetachedComments: l.LeadingDetachedComments, + LeadingComments: l.GetLeadingComments(), + TrailingComments: l.GetTrailingComments(), + } +} + +// 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 protoreflect.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()} +} diff --git a/desc/sourceinfo/registry.go b/desc/sourceinfo/registry.go new file mode 100644 index 00000000..5c904e25 --- /dev/null +++ b/desc/sourceinfo/registry.go @@ -0,0 +1,109 @@ +package sourceinfo + +import ( + "fmt" + "sync" + + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/types/descriptorpb" +) + +var ( + GlobalFiles protodesc.Resolver = registry{} + + mu sync.RWMutex + sourceInfoByFile = map[string]*descriptorpb.SourceCodeInfo{} + fileDescriptors = map[protoreflect.FileDescriptor]protoreflect.FileDescriptor{} +) + +func RegisterSourceInfo(file string, srcInfo *descriptorpb.SourceCodeInfo) { + mu.Lock() + defer mu.Unlock() + sourceInfoByFile[file] = srcInfo +} + +func SourceInfoForFile(file string) *descriptorpb.SourceCodeInfo { + mu.RLock() + defer mu.RUnlock() + return sourceInfoByFile[file] +} + +func getFile(fd protoreflect.FileDescriptor) protoreflect.FileDescriptor { + if fd == nil { + return nil + } + + mu.RLock() + result := fileDescriptors[fd] + mu.RUnlock() + + if result != nil { + return result + } + + mu.Lock() + defer mu.Unlock() + // double-check, in case it was added to map while upgrading lock + result = fileDescriptors[fd] + if result != nil { + return result + } + + srcInfo := sourceInfoByFile[fd.Path()] + if len(srcInfo.GetLocation()) > 0 { + result = &fileDescriptor{ + FileDescriptor: fd, + locs: &sourceLocations{ + orig: srcInfo.Location, + }, + } + } else { + // nothing to do; don't bother wrapping + result = fd + } + fileDescriptors[fd] = result + return result +} + +type registry struct{} + +var _ protodesc.Resolver = ®istry{} + +func (r registry) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { + fd, err := protoregistry.GlobalFiles.FindFileByPath(path) + if err != nil { + return nil, err + } + return getFile(fd), nil +} + +func (r registry) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { + d, err := protoregistry.GlobalFiles.FindDescriptorByName(name) + if err != nil { + return nil, err + } + switch d := d.(type) { + case protoreflect.FileDescriptor: + return getFile(d), nil + case protoreflect.MessageDescriptor: + return messageDescriptor{d}, nil + case protoreflect.ExtensionTypeDescriptor: + return extensionDescriptor{d}, nil + case protoreflect.FieldDescriptor: + return fieldDescriptor{d}, nil + case protoreflect.OneofDescriptor: + return oneOfDescriptor{d}, nil + case protoreflect.EnumDescriptor: + return enumDescriptor{d}, nil + case protoreflect.EnumValueDescriptor: + return enumValueDescriptor{d}, nil + case protoreflect.ServiceDescriptor: + return serviceDescriptor{d}, nil + case protoreflect.MethodDescriptor: + return methodDescriptor{d}, nil + default: + return nil, fmt.Errorf("unrecognized descriptor type: %T", d) + } +} diff --git a/desc/sourceinfo/wrappers.go b/desc/sourceinfo/wrappers.go new file mode 100644 index 00000000..108c4592 --- /dev/null +++ b/desc/sourceinfo/wrappers.go @@ -0,0 +1,500 @@ +package sourceinfo + +import ( + "fmt" + + "google.golang.org/protobuf/reflect/protoreflect" +) + +// These are wrappers around the various interfaces in the +// google.golang.org/protobuf/reflect/protoreflect that all +// make sure to return a FileDescriptor that includes source +// code info. + +type fileDescriptor struct { + protoreflect.FileDescriptor + locs protoreflect.SourceLocations +} + +func (f fileDescriptor) ParentFile() protoreflect.FileDescriptor { + return f +} + +func (f fileDescriptor) Parent() protoreflect.Descriptor { + return nil +} + +func (f fileDescriptor) Imports() protoreflect.FileImports { + return imports{f.FileDescriptor.Imports()} +} + +func (f fileDescriptor) Messages() protoreflect.MessageDescriptors { + return messages{f.FileDescriptor.Messages()} +} + +func (f fileDescriptor) Enums() protoreflect.EnumDescriptors { + return enums{f.FileDescriptor.Enums()} +} + +func (f fileDescriptor) Extensions() protoreflect.ExtensionDescriptors { + return extensions{f.FileDescriptor.Extensions()} +} + +func (f fileDescriptor) Services() protoreflect.ServiceDescriptors { + return services{f.FileDescriptor.Services()} +} + +func (f fileDescriptor) SourceLocations() protoreflect.SourceLocations { + return f.locs +} + +type imports struct { + protoreflect.FileImports +} + +func (im imports) Get(i int) protoreflect.FileImport { + fi := im.FileImports.Get(i) + return protoreflect.FileImport{ + FileDescriptor: getFile(fi.FileDescriptor), + IsPublic: fi.IsPublic, + IsWeak: fi.IsWeak, + } +} + +type messages struct { + protoreflect.MessageDescriptors +} + +func (m messages) Get(i int) protoreflect.MessageDescriptor { + return messageDescriptor{m.MessageDescriptors.Get(i)} +} + +func (m messages) ByName(n protoreflect.Name) protoreflect.MessageDescriptor { + return messageDescriptor{m.MessageDescriptors.ByName(n)} +} + +type enums struct { + protoreflect.EnumDescriptors +} + +func (e enums) Get(i int) protoreflect.EnumDescriptor { + return enumDescriptor{e.EnumDescriptors.Get(i)} +} + +func (e enums) ByName(n protoreflect.Name) protoreflect.EnumDescriptor { + return enumDescriptor{e.EnumDescriptors.ByName(n)} +} + +type extensions struct { + protoreflect.ExtensionDescriptors +} + +func (e extensions) Get(i int) protoreflect.ExtensionDescriptor { + d := e.ExtensionDescriptors.Get(i) + if ed, ok := d.(protoreflect.ExtensionTypeDescriptor); ok { + return extensionDescriptor{ed} + } + return fieldDescriptor{d} +} + +func (e extensions) ByName(n protoreflect.Name) protoreflect.ExtensionDescriptor { + d := e.ExtensionDescriptors.ByName(n) + if ed, ok := d.(protoreflect.ExtensionTypeDescriptor); ok { + return extensionDescriptor{ed} + } + return fieldDescriptor{d} +} + +type services struct { + protoreflect.ServiceDescriptors +} + +func (s services) Get(i int) protoreflect.ServiceDescriptor { + return serviceDescriptor{s.ServiceDescriptors.Get(i)} +} + +func (s services) ByName(n protoreflect.Name) protoreflect.ServiceDescriptor { + return serviceDescriptor{s.ServiceDescriptors.ByName(n)} +} + +type messageDescriptor struct { + protoreflect.MessageDescriptor +} + +func (m messageDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(m.MessageDescriptor.ParentFile()) +} + +func (m messageDescriptor) Parent() protoreflect.Descriptor { + d := m.MessageDescriptor.Parent() + switch d := d.(type) { + case protoreflect.MessageDescriptor: + return messageDescriptor{d} + case protoreflect.FileDescriptor: + return getFile(d) + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (m messageDescriptor) Fields() protoreflect.FieldDescriptors { + return fields{m.MessageDescriptor.Fields()} +} + +func (m messageDescriptor) Oneofs() protoreflect.OneofDescriptors { + return oneOfs{m.MessageDescriptor.Oneofs()} +} + +func (m messageDescriptor) Enums() protoreflect.EnumDescriptors { + return enums{m.MessageDescriptor.Enums()} +} + +func (m messageDescriptor) Messages() protoreflect.MessageDescriptors { + return messages{m.MessageDescriptor.Messages()} +} + +func (m messageDescriptor) Extensions() protoreflect.ExtensionDescriptors { + return extensions{m.MessageDescriptor.Extensions()} +} + +type fields struct { + protoreflect.FieldDescriptors +} + +func (f fields) Get(i int) protoreflect.FieldDescriptor { + return fieldDescriptor{f.FieldDescriptors.Get(i)} +} + +func (f fields) ByName(n protoreflect.Name) protoreflect.FieldDescriptor { + return fieldDescriptor{f.FieldDescriptors.ByName(n)} +} + +func (f fields) ByJSONName(n string) protoreflect.FieldDescriptor { + return fieldDescriptor{f.FieldDescriptors.ByJSONName(n)} +} + +func (f fields) ByTextName(n string) protoreflect.FieldDescriptor { + return fieldDescriptor{f.FieldDescriptors.ByTextName(n)} +} + +func (f fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor { + return fieldDescriptor{f.FieldDescriptors.ByNumber(n)} +} + +type oneOfs struct { + protoreflect.OneofDescriptors +} + +func (o oneOfs) Get(i int) protoreflect.OneofDescriptor { + return oneOfDescriptor{o.OneofDescriptors.Get(i)} +} + +func (o oneOfs) ByName(n protoreflect.Name) protoreflect.OneofDescriptor { + return oneOfDescriptor{o.OneofDescriptors.ByName(n)} +} + +type fieldDescriptor struct { + protoreflect.FieldDescriptor +} + +func (f fieldDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(f.FieldDescriptor.ParentFile()) +} + +func (f fieldDescriptor) Parent() protoreflect.Descriptor { + d := f.FieldDescriptor.Parent() + switch d := d.(type) { + case protoreflect.MessageDescriptor: + return messageDescriptor{d} + case protoreflect.FileDescriptor: + return getFile(d) + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (f fieldDescriptor) MapKey() protoreflect.FieldDescriptor { + fd := f.FieldDescriptor.MapKey() + if fd == nil { + return nil + } + return fieldDescriptor{fd} +} + +func (f fieldDescriptor) MapValue() protoreflect.FieldDescriptor { + fd := f.FieldDescriptor.MapValue() + if fd == nil { + return nil + } + return fieldDescriptor{fd} +} + +func (f fieldDescriptor) DefaultEnumValue() protoreflect.EnumValueDescriptor { + ed := f.FieldDescriptor.DefaultEnumValue() + if ed == nil { + return nil + } + return enumValueDescriptor{ed} +} + +func (f fieldDescriptor) ContainingOneof() protoreflect.OneofDescriptor { + od := f.FieldDescriptor.ContainingOneof() + if od == nil { + return nil + } + return oneOfDescriptor{od} +} + +func (f fieldDescriptor) ContainingMessage() protoreflect.MessageDescriptor { + return messageDescriptor{f.FieldDescriptor.ContainingMessage()} +} + +func (f fieldDescriptor) Enum() protoreflect.EnumDescriptor { + ed := f.FieldDescriptor.Enum() + if ed == nil { + return nil + } + return enumDescriptor{ed} +} + +func (f fieldDescriptor) Message() protoreflect.MessageDescriptor { + md := f.FieldDescriptor.Message() + if md == nil { + return nil + } + return messageDescriptor{md} +} + +type oneOfDescriptor struct { + protoreflect.OneofDescriptor +} + +func (o oneOfDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(o.OneofDescriptor.ParentFile()) +} + +func (o oneOfDescriptor) Parent() protoreflect.Descriptor { + d := o.OneofDescriptor.Parent() + switch d := d.(type) { + case protoreflect.MessageDescriptor: + return messageDescriptor{d} + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (o oneOfDescriptor) Fields() protoreflect.FieldDescriptors { + return fields{o.OneofDescriptor.Fields()} +} + +type enumDescriptor struct { + protoreflect.EnumDescriptor +} + +func (e enumDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(e.EnumDescriptor.ParentFile()) +} + +func (e enumDescriptor) Parent() protoreflect.Descriptor { + d := e.EnumDescriptor.Parent() + switch d := d.(type) { + case protoreflect.MessageDescriptor: + return messageDescriptor{d} + case protoreflect.FileDescriptor: + return getFile(d) + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (e enumDescriptor) Values() protoreflect.EnumValueDescriptors { + return enumValues{e.EnumDescriptor.Values()} +} + +type enumValues struct { + protoreflect.EnumValueDescriptors +} + +func (e enumValues) Get(i int) protoreflect.EnumValueDescriptor { + return enumValueDescriptor{e.EnumValueDescriptors.Get(i)} +} + +func (e enumValues) ByName(n protoreflect.Name) protoreflect.EnumValueDescriptor { + return enumValueDescriptor{e.EnumValueDescriptors.ByName(n)} +} + +func (e enumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor { + return enumValueDescriptor{e.EnumValueDescriptors.ByNumber(n)} +} + +type enumValueDescriptor struct { + protoreflect.EnumValueDescriptor +} + +func (e enumValueDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(e.EnumValueDescriptor.ParentFile()) +} + +func (e enumValueDescriptor) Parent() protoreflect.Descriptor { + d := e.EnumValueDescriptor.Parent() + switch d := d.(type) { + case protoreflect.EnumDescriptor: + return enumDescriptor{d} + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +type extensionDescriptor struct { + protoreflect.ExtensionTypeDescriptor +} + +func (e extensionDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(e.ExtensionTypeDescriptor.ParentFile()) +} + +func (e extensionDescriptor) Parent() protoreflect.Descriptor { + d := e.ExtensionTypeDescriptor.Parent() + switch d := d.(type) { + case protoreflect.MessageDescriptor: + return messageDescriptor{d} + case protoreflect.FileDescriptor: + return getFile(d) + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (e extensionDescriptor) MapKey() protoreflect.FieldDescriptor { + fd := e.ExtensionTypeDescriptor.MapKey() + if fd == nil { + return nil + } + return fieldDescriptor{fd} +} + +func (e extensionDescriptor) MapValue() protoreflect.FieldDescriptor { + fd := e.ExtensionTypeDescriptor.MapValue() + if fd == nil { + return nil + } + return fieldDescriptor{fd} +} + +func (e extensionDescriptor) DefaultEnumValue() protoreflect.EnumValueDescriptor { + ed := e.ExtensionTypeDescriptor.DefaultEnumValue() + if ed == nil { + return nil + } + return enumValueDescriptor{ed} +} + +func (e extensionDescriptor) ContainingOneof() protoreflect.OneofDescriptor { + od := e.ExtensionTypeDescriptor.ContainingOneof() + if od == nil { + return nil + } + return oneOfDescriptor{od} +} + +func (e extensionDescriptor) ContainingMessage() protoreflect.MessageDescriptor { + return messageDescriptor{e.ExtensionTypeDescriptor.ContainingMessage()} +} + +func (e extensionDescriptor) Enum() protoreflect.EnumDescriptor { + ed := e.ExtensionTypeDescriptor.Enum() + if ed == nil { + return nil + } + return enumDescriptor{ed} +} + +func (e extensionDescriptor) Message() protoreflect.MessageDescriptor { + md := e.ExtensionTypeDescriptor.Message() + if md == nil { + return nil + } + return messageDescriptor{md} +} + +func (e extensionDescriptor) Descriptor() protoreflect.ExtensionDescriptor { + return e +} + +var _ protoreflect.ExtensionTypeDescriptor = extensionDescriptor{} + +type serviceDescriptor struct { + protoreflect.ServiceDescriptor +} + +func (s serviceDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(s.ServiceDescriptor.ParentFile()) +} + +func (s serviceDescriptor) Parent() protoreflect.Descriptor { + d := s.ServiceDescriptor.Parent() + switch d := d.(type) { + case protoreflect.FileDescriptor: + return getFile(d) + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (s serviceDescriptor) Methods() protoreflect.MethodDescriptors { + return methods{s.ServiceDescriptor.Methods()} +} + +type methods struct { + protoreflect.MethodDescriptors +} + +func (m methods) Get(i int) protoreflect.MethodDescriptor { + return methodDescriptor{m.MethodDescriptors.Get(i)} +} + +func (m methods) ByName(n protoreflect.Name) protoreflect.MethodDescriptor { + return methodDescriptor{m.MethodDescriptors.ByName(n)} +} + +type methodDescriptor struct { + protoreflect.MethodDescriptor +} + +func (m methodDescriptor) ParentFile() protoreflect.FileDescriptor { + return getFile(m.MethodDescriptor.ParentFile()) +} + +func (m methodDescriptor) Parent() protoreflect.Descriptor { + d := m.MethodDescriptor.Parent() + switch d := d.(type) { + case protoreflect.ServiceDescriptor: + return serviceDescriptor{d} + case nil: + return nil + default: + panic(fmt.Sprintf("unexpected descriptor type %T", d)) + } +} + +func (m methodDescriptor) Input() protoreflect.MessageDescriptor { + return messageDescriptor{m.MethodDescriptor.Input()} +} + +func (m methodDescriptor) Output() protoreflect.MessageDescriptor { + return messageDescriptor{m.MethodDescriptor.Output()} +} diff --git a/go.mod b/go.mod index af65eec6..a03f8748 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,9 @@ go 1.13 require ( github.com/golang/protobuf v1.5.0 - golang.org/x/net v0.0.0-20200625001655-4c5254603344 + github.com/jhump/gopoet v0.1.0 + github.com/jhump/goprotoc v0.4.0 + golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 google.golang.org/grpc v1.38.0 google.golang.org/protobuf v1.26.0 diff --git a/go.sum b/go.sum index 28b89c88..c3db18a0 100644 --- a/go.sum +++ b/go.sum @@ -1,16 +1,95 @@ +bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +code.gitea.io/sdk/gitea v0.11.3/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY= +contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= +contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= +contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= +contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= +contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= +github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= +github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0= +github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0= +github.com/Azure/go-autorest v12.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae/go.mod h1:mjwGPas4yKduTyubHvD1Atl9r1rUq8DfVy+gkVvZ+oo= +github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/apex/log v1.1.4/go.mod h1:AlpoD9aScyQfJDVHmLMEcx4oU6LqzkWp4Mg9GdAcEvQ= +github.com/apex/logs v0.0.4/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo= +github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE= +github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= +github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.25.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= +github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw= +github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo= +github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod h1:oDpT4efm8tSYHXV5tHSdRvBet/b/QzxZ+XyyPehvm3A= +github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -18,59 +97,292 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +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= +github.com/google/go-github/v28 v28.1.1/go.mod h1:bsqJWQX05omyWVmc00nEUql9mhQyv38lDZ8kPZcQVoM= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= +github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/rpmpack v0.0.0-20191226140753-aa36bfddb3a0/go.mod h1:RaTPr0KUf2K7fnZYLNDrr8rxAamWs3iNywJLtQ2AzBg= +github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s= +github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= +github.com/goreleaser/goreleaser v0.134.0/go.mod h1:ZT6Y2rSYa6NxQzIsdfWWNWAlYGXGbreo66NmE+3X3WQ= +github.com/goreleaser/nfpm v1.2.1/go.mod h1:TtWrABZozuLOttX2uDlYyECfQX7x5XYkVxhjYcR6G9w= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jarcoal/httpmock v1.0.5/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT8nX0Txik= +github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= +github.com/jhump/gopoet v0.1.0 h1:gYjOPnzHd2nzB37xYQZxj4EIQNpBrBskRqQQ3q4ZgSg= +github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= +github.com/jhump/goprotoc v0.4.0 h1:0/Pn/ZRhSFMjHlDuxvYYn9RV/9n+6Pa2D4dOiz6VDII= +github.com/jhump/goprotoc v0.4.0/go.mod h1:R/ARQlojEQkci5b6InKkwafqGYz9083lrJ5eBBXMNrc= +github.com/jhump/protoreflect v1.5.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b/go.mod h1:am+Fp8Bt506lA3Rk3QCmSqmYmLMnPDhdDUcosQCAx+I= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= +github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= +github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0= +github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0= +github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao= +github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= +github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= +github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +gocloud.dev v0.19.0/go.mod h1:SmKwiR8YwIMMJvQBKLsC3fHNyMwXLw3PMDO+VVteJMI= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 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/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -85,12 +397,25 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12 h1:OwhZOOMuf7leLaSCuxtQ9FW7ui2L2L6UKOtKAUqovUQ= -google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From be32e0172e4b8deb04157a06d1df352f97102567 Mon Sep 17 00:00:00 2001 From: Josh Humphries Date: Tue, 15 Feb 2022 13:17:38 -0500 Subject: [PATCH 2/4] generate srcinfo for test protos; add test to interrogate the results --- desc/internal/util_test.go | 9 +- desc/sourceinfo/registry_test.go | 82 ++ internal/testprotos/desc_test1.pb.srcinfo.go | 286 ++++++ internal/testprotos/desc_test2.pb.srcinfo.go | 104 +++ .../desc_test_comments.pb.srcinfo.go | 274 ++++++ .../desc_test_complex.pb.srcinfo.go | 816 ++++++++++++++++++ .../desc_test_defaults.pb.srcinfo.go | 460 ++++++++++ .../desc_test_field_types.pb.srcinfo.go | 422 +++++++++ .../testprotos/desc_test_oneof.pb.srcinfo.go | 53 ++ .../desc_test_options.pb.srcinfo.go | 141 +++ .../testprotos/desc_test_proto3.pb.srcinfo.go | 84 ++ .../testprotos/desc_test_value.pb.srcinfo.go | 28 + .../desc_test_wellknowntypes.pb.srcinfo.go | 74 ++ internal/testprotos/grpc/test.pb.srcinfo.go | 541 ++++++++++++ internal/testprotos/make_protos.sh | 9 +- .../nopkg/desc_test_nopkg.pb.srcinfo.go | 23 + .../nopkg/desc_test_nopkg_new.pb.srcinfo.go | 91 ++ .../pkg/desc_test_pkg.pb.srcinfo.go | 53 ++ 18 files changed, 3542 insertions(+), 8 deletions(-) create mode 100644 desc/sourceinfo/registry_test.go create mode 100644 internal/testprotos/desc_test1.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test2.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_comments.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_complex.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_defaults.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_field_types.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_oneof.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_options.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_proto3.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_value.pb.srcinfo.go create mode 100644 internal/testprotos/desc_test_wellknowntypes.pb.srcinfo.go create mode 100644 internal/testprotos/grpc/test.pb.srcinfo.go create mode 100644 internal/testprotos/nopkg/desc_test_nopkg.pb.srcinfo.go create mode 100644 internal/testprotos/nopkg/desc_test_nopkg_new.pb.srcinfo.go create mode 100644 internal/testprotos/pkg/desc_test_pkg.pb.srcinfo.go diff --git a/desc/internal/util_test.go b/desc/internal/util_test.go index 967d929a..65b6cc06 100644 --- a/desc/internal/util_test.go +++ b/desc/internal/util_test.go @@ -1,18 +1,19 @@ -package internal +package internal_test import ( + "github.com/jhump/protoreflect/desc/internal" "testing" "github.com/jhump/protoreflect/internal/testutil" ) func TestCreatePrefixList(t *testing.T) { - list := CreatePrefixList("") + list := internal.CreatePrefixList("") testutil.Eq(t, []string{""}, list) - list = CreatePrefixList("pkg") + list = internal.CreatePrefixList("pkg") testutil.Eq(t, []string{"pkg", ""}, list) - list = CreatePrefixList("fully.qualified.pkg.name") + list = internal.CreatePrefixList("fully.qualified.pkg.name") testutil.Eq(t, []string{"fully.qualified.pkg.name", "fully.qualified.pkg", "fully.qualified", "fully", ""}, list) } diff --git a/desc/sourceinfo/registry_test.go b/desc/sourceinfo/registry_test.go new file mode 100644 index 00000000..5ee1a9a4 --- /dev/null +++ b/desc/sourceinfo/registry_test.go @@ -0,0 +1,82 @@ +package sourceinfo_test + +import ( + "fmt" + "testing" + + "google.golang.org/protobuf/reflect/protoreflect" + + "github.com/jhump/protoreflect/desc/sourceinfo" + _ "github.com/jhump/protoreflect/internal/testprotos" + "github.com/jhump/protoreflect/internal/testutil" +) + +func TestRegistry(t *testing.T) { + fd, err := sourceinfo.GlobalFiles.FindFileByPath("desc_test1.proto") + testutil.Ok(t, err) + checkFileComments(t, fd) +} + +func checkFileComments(t *testing.T, fd protoreflect.FileDescriptor) { + srcLocs := fd.SourceLocations() + for i := 0; i < fd.Messages().Len(); i++ { + checkMessageComments(t, srcLocs, fd.Messages().Get(i)) + } + for i := 0; i < fd.Enums().Len(); i++ { + checkEnumComments(t, srcLocs, fd.Enums().Get(i)) + } + for i := 0; i < fd.Extensions().Len(); i++ { + checkComment(t, srcLocs, fd.Extensions().Get(i)) + } + for i := 0; i < fd.Services().Len(); i++ { + sd := fd.Services().Get(i) + checkComment(t, srcLocs, sd) + for j := 0; j < sd.Methods().Len(); j++ { + mtd := sd.Methods().Get(j) + checkComment(t, srcLocs, mtd) + } + } +} + +func checkMessageComments(t *testing.T, srcLocs protoreflect.SourceLocations, md protoreflect.MessageDescriptor) { + checkComment(t, srcLocs, md) + + for i := 0; i < md.Fields().Len(); i++ { + fld := md.Fields().Get(i) + if fld.Kind() == protoreflect.GroupKind { + continue // comment is attributed to group message, not field + } + checkComment(t, srcLocs, fld) + } + for i := 0; i < md.Oneofs().Len(); i++ { + checkComment(t, srcLocs, md.Oneofs().Get(i)) + } + + for i := 0; i < md.Messages().Len(); i++ { + nmd := md.Messages().Get(i) + if nmd.IsMapEntry() { + // synthetic map entry messages won't have comments + continue + } + checkMessageComments(t, srcLocs, nmd) + } + for i := 0; i < md.Enums().Len(); i++ { + checkEnumComments(t, srcLocs, md.Enums().Get(i)) + } + for i := 0; i < md.Extensions().Len(); i++ { + checkComment(t, srcLocs, md.Extensions().Get(i)) + } +} + +func checkEnumComments(t *testing.T, srcLocs protoreflect.SourceLocations, ed protoreflect.EnumDescriptor) { + checkComment(t, srcLocs, ed) + for i := 0; i < ed.Values().Len(); i++ { + evd := ed.Values().Get(i) + checkComment(t, srcLocs, evd) + } +} + +func checkComment(t *testing.T, srcLocs protoreflect.SourceLocations, d protoreflect.Descriptor) { + cmt := fmt.Sprintf(" Comment for %s\n", d.Name()) + testutil.Eq(t, cmt, srcLocs.ByDescriptor(d).LeadingComments) +} diff --git a/internal/testprotos/desc_test1.pb.srcinfo.go b/internal/testprotos/desc_test1.pb.srcinfo.go new file mode 100644 index 00000000..94a61c7e --- /dev/null +++ b/internal/testprotos/desc_test1.pb.srcinfo.go @@ -0,0 +1,286 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test1.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test1 = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x76, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x25, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x07, 0x00, 0x43, 0x01, 0x1a, 0x19, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x54, 0x65, 0x73, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, + 0x03, 0x07, 0x08, 0x13, 0x0a, 0x29, 0x0a, 0x04, 0x04, 0x00, 0x03, 0x00, 0x12, 0x04, 0x09, 0x08, + 0x32, 0x09, 0x1a, 0x1b, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, 0x09, 0x10, 0x1d, 0x0a, 0x32, 0x0a, + 0x06, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x12, 0x04, 0x0b, 0x10, 0x2b, 0x11, 0x1a, 0x22, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x41, 0x6e, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x18, + 0x2c, 0x0a, 0x40, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x12, 0x04, 0x0d, 0x18, + 0x10, 0x19, 0x1a, 0x2f, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, + 0x31, 0x29, 0x0a, 0x0a, 0x24, 0x0a, 0x08, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x12, + 0x03, 0x0f, 0x20, 0x4a, 0x1a, 0x13, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x0a, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x06, 0x00, 0x02, 0x12, 0x03, 0x0d, 0x1f, 0x31, 0x0a, 0x10, 0x0a, 0x09, 0x04, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x04, 0x12, 0x03, 0x0f, 0x20, 0x28, 0x0a, 0x10, 0x0a, + 0x09, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x05, 0x12, 0x03, 0x0f, 0x29, 0x2d, 0x0a, + 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x01, 0x12, 0x03, 0x0f, 0x2e, + 0x33, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x03, 0x12, 0x03, + 0x0f, 0x36, 0x39, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x08, + 0x12, 0x03, 0x0f, 0x3a, 0x49, 0x0a, 0x11, 0x0a, 0x0a, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, + 0x00, 0x08, 0x02, 0x12, 0x03, 0x0f, 0x3b, 0x48, 0x0a, 0x37, 0x0a, 0x08, 0x04, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x12, 0x04, 0x12, 0x18, 0x28, 0x19, 0x1a, 0x25, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x59, 0x65, 0x74, 0x41, 0x6e, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x0a, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, + 0x12, 0x20, 0x37, 0x0a, 0x32, 0x0a, 0x0a, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, + 0x00, 0x12, 0x04, 0x14, 0x20, 0x19, 0x21, 0x1a, 0x1e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x44, 0x65, 0x65, 0x70, 0x6c, 0x79, 0x4e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x0a, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x04, 0x00, 0x01, 0x12, 0x03, 0x14, 0x25, 0x35, 0x0a, 0x29, 0x0a, 0x0c, 0x04, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x16, 0x28, 0x33, + 0x1a, 0x14, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x56, + 0x41, 0x4c, 0x55, 0x45, 0x31, 0x0a, 0x0a, 0x14, 0x0a, 0x0d, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x28, 0x2e, 0x0a, 0x14, 0x0a, 0x0d, + 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x16, + 0x31, 0x32, 0x0a, 0x29, 0x0a, 0x0c, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, + 0x02, 0x01, 0x12, 0x03, 0x18, 0x28, 0x33, 0x1a, 0x14, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x32, 0x0a, 0x0a, 0x14, 0x0a, + 0x0d, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x18, 0x28, 0x2e, 0x0a, 0x14, 0x0a, 0x0d, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, + 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x18, 0x31, 0x32, 0x0a, 0x24, 0x0a, 0x0a, 0x04, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x1b, 0x20, 0x38, 0x1a, 0x11, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x6f, 0x0a, 0x0a, + 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, + 0x1b, 0x20, 0x28, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x1b, 0x29, 0x2f, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1b, 0x30, 0x33, 0x0a, 0x12, 0x0a, 0x0b, 0x04, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1b, 0x36, 0x37, 0x0a, + 0x24, 0x0a, 0x0a, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x01, 0x12, 0x03, 0x1d, + 0x20, 0x37, 0x1a, 0x11, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x61, 0x72, 0x0a, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x1d, 0x20, 0x28, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x1d, 0x29, 0x2e, 0x0a, 0x12, 0x0a, + 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1d, 0x2f, + 0x32, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x1d, 0x35, 0x36, 0x0a, 0x24, 0x0a, 0x0a, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x02, 0x02, 0x12, 0x03, 0x1f, 0x20, 0x37, 0x1a, 0x11, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x7a, 0x0a, 0x0a, 0x12, 0x0a, 0x0b, 0x04, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1f, 0x20, 0x28, 0x0a, + 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, + 0x1f, 0x29, 0x2e, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x1f, 0x2f, 0x32, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x1f, 0x35, 0x36, 0x0a, 0x24, 0x0a, 0x0a, 0x04, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x03, 0x12, 0x03, 0x21, 0x20, 0x42, 0x1a, 0x11, + 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6e, 0x65, + 0x0a, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x03, 0x04, + 0x12, 0x03, 0x21, 0x20, 0x28, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x21, 0x29, 0x39, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x21, 0x3a, 0x3d, 0x0a, 0x12, 0x0a, + 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x21, 0x40, + 0x41, 0x0a, 0x24, 0x0a, 0x0a, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x04, 0x12, + 0x03, 0x23, 0x20, 0x46, 0x1a, 0x11, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6d, 0x0a, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x23, 0x20, 0x28, 0x0a, 0x12, 0x0a, 0x0b, 0x04, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x04, 0x06, 0x12, 0x03, 0x23, 0x29, 0x3d, 0x0a, + 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, + 0x23, 0x3e, 0x41, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, + 0x04, 0x03, 0x12, 0x03, 0x23, 0x44, 0x45, 0x0a, 0x23, 0x0a, 0x0a, 0x04, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x02, 0x05, 0x12, 0x03, 0x25, 0x20, 0x3e, 0x1a, 0x10, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6d, 0x0a, 0x0a, 0x12, 0x0a, 0x0b, + 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x25, 0x20, 0x28, + 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x05, 0x06, 0x12, + 0x03, 0x25, 0x29, 0x36, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x05, 0x01, 0x12, 0x03, 0x25, 0x37, 0x39, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x25, 0x3c, 0x3d, 0x0a, 0x23, 0x0a, 0x0a, + 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x06, 0x12, 0x03, 0x27, 0x20, 0x3c, 0x1a, + 0x10, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x6d, + 0x0a, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x06, 0x04, + 0x12, 0x03, 0x27, 0x20, 0x28, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, + 0x00, 0x02, 0x06, 0x06, 0x12, 0x03, 0x27, 0x29, 0x34, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x00, 0x03, + 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x27, 0x35, 0x37, 0x0a, 0x12, 0x0a, + 0x0b, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x27, 0x3a, + 0x3b, 0x0a, 0x23, 0x0a, 0x08, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2a, + 0x18, 0x42, 0x1a, 0x12, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x79, 0x61, 0x6e, 0x6d, 0x0a, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x04, 0x12, 0x03, 0x2a, 0x18, 0x20, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x2a, 0x21, 0x38, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2a, 0x39, 0x3d, 0x0a, 0x10, 0x0a, 0x09, + 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x2a, 0x40, 0x41, 0x0a, 0x20, + 0x0a, 0x06, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2d, 0x10, 0x36, 0x1a, 0x11, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6d, 0x0a, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x2d, 0x10, 0x18, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x2d, 0x19, 0x2d, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2d, 0x2e, 0x31, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x2d, 0x34, 0x35, + 0x0a, 0x22, 0x0a, 0x06, 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, 0x12, 0x04, 0x2f, 0x10, 0x31, 0x1d, + 0x1a, 0x12, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x79, + 0x61, 0x6e, 0x6d, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x2f, 0x10, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x2f, 0x19, 0x30, 0x31, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x31, 0x14, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x31, 0x1b, 0x1c, 0x0a, 0x26, 0x0a, 0x04, 0x04, 0x00, 0x04, 0x00, 0x12, 0x04, 0x34, + 0x08, 0x39, 0x09, 0x1a, 0x18, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x04, 0x00, 0x01, 0x12, 0x03, 0x34, 0x0d, 0x17, 0x0a, 0x23, 0x0a, 0x06, 0x04, + 0x00, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x36, 0x10, 0x1b, 0x1a, 0x14, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x31, 0x0a, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x36, 0x10, 0x16, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x36, 0x19, 0x1a, + 0x0a, 0x23, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x38, 0x10, 0x1b, 0x1a, + 0x14, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x56, 0x41, + 0x4c, 0x55, 0x45, 0x32, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x38, 0x10, 0x16, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x03, 0x38, 0x19, 0x1a, 0x0a, 0x1d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x3b, + 0x08, 0x26, 0x1a, 0x10, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6e, 0x6d, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x3b, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x3b, 0x11, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3b, 0x1f, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x3b, 0x24, 0x25, 0x0a, 0x1e, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x3d, 0x08, 0x3c, 0x1a, 0x11, 0x20, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6d, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x3d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x06, 0x12, 0x03, 0x3d, 0x11, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x3d, 0x34, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x3d, 0x3a, 0x3b, 0x0a, 0x20, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0x3f, 0x08, + 0x40, 0x2e, 0x1a, 0x12, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x79, 0x61, 0x6e, 0x6d, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, + 0x03, 0x3f, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x06, 0x12, 0x04, 0x3f, + 0x11, 0x40, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x40, 0x25, + 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x40, 0x2c, 0x2d, 0x0a, + 0x1d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x42, 0x08, 0x23, 0x1a, 0x10, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x42, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x42, 0x11, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x42, 0x1c, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, + 0x03, 0x12, 0x03, 0x42, 0x21, 0x22, 0x0a, 0x2c, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x46, 0x00, + 0x66, 0x01, 0x1a, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x46, 0x08, 0x1a, + 0x0a, 0x1e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x48, 0x08, 0x71, 0x1a, 0x11, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6e, 0x65, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x48, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x48, 0x11, 0x68, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x48, 0x69, 0x6c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x48, 0x6f, 0x70, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, + 0x12, 0x03, 0x4a, 0x08, 0x2a, 0x1a, 0x18, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, 0x4a, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4a, 0x1b, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4a, 0x28, 0x29, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x02, 0x12, 0x03, 0x4c, 0x08, 0x29, 0x1a, 0x18, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, 0x4c, 0x08, 0x19, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4c, 0x1a, 0x24, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x4c, 0x27, 0x28, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x03, 0x12, 0x03, 0x4e, 0x08, 0x29, 0x1a, 0x18, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x33, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, 0x03, 0x4e, 0x08, 0x19, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x4e, 0x1a, 0x24, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x4e, 0x27, 0x28, 0x0a, 0x25, 0x0a, 0x04, 0x04, + 0x01, 0x02, 0x04, 0x12, 0x03, 0x50, 0x08, 0x37, 0x1a, 0x18, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x34, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x06, 0x12, 0x03, 0x50, 0x08, 0x27, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x50, 0x28, 0x32, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x50, 0x35, 0x36, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x05, 0x12, 0x04, 0x52, 0x08, 0x59, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x05, 0x04, 0x12, 0x03, 0x52, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, + 0x05, 0x12, 0x03, 0x52, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, + 0x03, 0x52, 0x17, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x52, + 0x23, 0x24, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x01, 0x03, 0x04, 0x12, 0x04, 0x52, 0x08, 0x59, 0x09, + 0x1a, 0x17, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, + 0x6f, 0x63, 0x6b, 0x4e, 0x52, 0x6f, 0x6c, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x03, + 0x04, 0x01, 0x12, 0x03, 0x52, 0x17, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x06, + 0x12, 0x03, 0x52, 0x17, 0x20, 0x0a, 0x24, 0x0a, 0x06, 0x04, 0x01, 0x03, 0x04, 0x02, 0x00, 0x12, + 0x03, 0x54, 0x10, 0x2c, 0x1a, 0x15, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x65, 0x61, 0x74, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x04, 0x02, 0x00, 0x04, 0x12, 0x03, 0x54, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x04, 0x02, 0x00, 0x05, 0x12, 0x03, 0x54, 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x54, 0x20, 0x27, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x54, 0x2a, 0x2b, 0x0a, 0x23, 0x0a, 0x06, 0x04, + 0x01, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x56, 0x10, 0x2b, 0x1a, 0x14, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x0a, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x01, 0x04, 0x12, 0x03, 0x56, 0x10, 0x18, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x01, 0x05, 0x12, 0x03, 0x56, 0x19, 0x1f, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x56, 0x20, 0x26, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x56, 0x29, 0x2a, + 0x0a, 0x22, 0x0a, 0x06, 0x04, 0x01, 0x03, 0x04, 0x02, 0x02, 0x12, 0x03, 0x58, 0x10, 0x2a, 0x1a, + 0x13, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6f, + 0x6f, 0x72, 0x73, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x02, 0x04, 0x12, + 0x03, 0x58, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x02, 0x05, 0x12, + 0x03, 0x58, 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x02, 0x01, 0x12, + 0x03, 0x58, 0x20, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x04, 0x02, 0x02, 0x03, 0x12, + 0x03, 0x58, 0x28, 0x29, 0x0a, 0x21, 0x0a, 0x04, 0x04, 0x01, 0x08, 0x00, 0x12, 0x04, 0x5b, 0x08, + 0x60, 0x09, 0x1a, 0x13, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x74, 0x6d, 0x6f, 0x6f, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x08, 0x00, 0x01, + 0x12, 0x03, 0x5b, 0x0e, 0x13, 0x0a, 0x1e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, 0x12, 0x03, 0x5d, + 0x10, 0x1f, 0x1a, 0x11, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x03, + 0x5d, 0x10, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x5d, 0x17, + 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x5d, 0x1d, 0x1e, 0x0a, + 0x1e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x5f, 0x10, 0x1e, 0x1a, 0x11, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x74, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x03, 0x5f, 0x10, 0x15, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x5f, 0x16, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x07, 0x03, 0x12, 0x03, 0x5f, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x08, 0x12, 0x04, 0x62, 0x08, 0x63, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x04, + 0x12, 0x03, 0x62, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x05, 0x12, 0x03, + 0x62, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x62, 0x17, + 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x62, 0x25, 0x26, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x08, 0x12, 0x03, 0x62, 0x27, 0x3a, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x01, 0x02, 0x08, 0x08, 0x03, 0x12, 0x03, 0x62, 0x28, 0x39, 0x0a, 0x27, 0x0a, 0x04, + 0x04, 0x01, 0x03, 0x05, 0x12, 0x04, 0x62, 0x08, 0x63, 0x09, 0x1a, 0x19, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x03, 0x05, 0x01, 0x12, 0x03, + 0x62, 0x17, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x03, 0x62, 0x17, + 0x22, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x05, 0x12, 0x03, 0x65, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x01, 0x05, 0x00, 0x12, 0x03, 0x65, 0x13, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x05, 0x00, 0x01, 0x12, 0x03, 0x65, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x00, + 0x02, 0x12, 0x03, 0x65, 0x1a, 0x1d, 0x0a, 0x3a, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x69, 0x00, 0x6e, + 0x01, 0x1a, 0x2f, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x32, + 0x29, 0x0a, 0x0a, 0x1c, 0x0a, 0x02, 0x07, 0x00, 0x12, 0x03, 0x6b, 0x08, 0x27, 0x1a, 0x11, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x78, 0x74, 0x6d, 0x0a, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x02, 0x12, 0x03, 0x69, 0x07, 0x19, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x00, 0x04, 0x12, 0x03, 0x6b, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x06, 0x12, + 0x03, 0x6b, 0x11, 0x1c, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x01, 0x12, 0x03, 0x6b, 0x1d, 0x20, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x03, 0x12, 0x03, 0x6b, 0x23, 0x26, 0x0a, 0x1b, 0x0a, 0x02, + 0x07, 0x01, 0x12, 0x03, 0x6d, 0x08, 0x21, 0x1a, 0x10, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x78, 0x73, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x02, + 0x12, 0x03, 0x69, 0x07, 0x19, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x04, 0x12, 0x03, 0x6d, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x05, 0x12, 0x03, 0x6d, 0x11, 0x17, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x01, 0x01, 0x12, 0x03, 0x6d, 0x18, 0x1a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x03, + 0x12, 0x03, 0x6d, 0x1d, 0x20, 0x0a, 0x3a, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x71, 0x00, 0x76, 0x01, + 0x1a, 0x2f, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x41, + 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x33, 0x29, + 0x0a, 0x0a, 0x1b, 0x0a, 0x02, 0x07, 0x02, 0x12, 0x03, 0x73, 0x08, 0x20, 0x1a, 0x10, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x78, 0x69, 0x0a, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x02, 0x02, 0x12, 0x03, 0x71, 0x07, 0x19, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, + 0x04, 0x12, 0x03, 0x73, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x05, 0x12, 0x03, 0x73, + 0x11, 0x16, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x01, 0x12, 0x03, 0x73, 0x17, 0x19, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x02, 0x03, 0x12, 0x03, 0x73, 0x1c, 0x1f, 0x0a, 0x1c, 0x0a, 0x02, 0x07, 0x03, + 0x12, 0x03, 0x75, 0x08, 0x22, 0x1a, 0x11, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x78, 0x75, 0x69, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x02, 0x12, + 0x03, 0x71, 0x07, 0x19, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x04, 0x12, 0x03, 0x75, 0x08, 0x10, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x05, 0x12, 0x03, 0x75, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x03, 0x01, 0x12, 0x03, 0x75, 0x18, 0x1b, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x03, 0x12, + 0x03, 0x75, 0x1e, 0x21, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test1, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test1.proto", &si) +} diff --git a/internal/testprotos/desc_test2.pb.srcinfo.go b/internal/testprotos/desc_test2.pb.srcinfo.go new file mode 100644 index 00000000..3852ba53 --- /dev/null +++ b/internal/testprotos/desc_test2.pb.srcinfo.go @@ -0,0 +1,104 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test2.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test2 = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x2a, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x06, 0x00, 0x1a, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x07, 0x00, 0x21, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x08, + 0x00, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x0a, 0x00, 0x19, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0a, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x03, 0x0b, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, + 0x12, 0x03, 0x0b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, + 0x0b, 0x11, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x1d, + 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, 0x21, 0x22, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0c, 0x08, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x0c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x06, 0x12, 0x03, 0x0c, 0x11, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x0c, 0x24, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x0c, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x0d, 0x08, + 0x10, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, 0x12, 0x03, 0x0d, 0x0e, 0x11, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x0e, 0x10, 0x31, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x0e, 0x10, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0e, 0x2a, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x03, 0x12, 0x03, 0x0e, 0x2f, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, + 0x03, 0x0f, 0x10, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x0f, + 0x10, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0f, 0x27, 0x29, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x0f, 0x2c, 0x2d, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x11, 0x08, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x11, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x04, 0x06, 0x12, 0x03, 0x11, 0x11, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x11, 0x2b, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x11, 0x2f, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x12, 0x08, 0x41, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x12, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x03, 0x12, 0x11, 0x27, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x12, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x05, 0x03, 0x12, 0x03, 0x12, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, + 0x08, 0x12, 0x03, 0x12, 0x2e, 0x40, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x07, 0x12, + 0x03, 0x12, 0x39, 0x3f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x13, 0x08, + 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x13, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x13, 0x11, 0x17, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x13, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x13, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x06, 0x08, 0x12, 0x03, 0x13, 0x1e, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x06, 0x08, + 0x03, 0x12, 0x03, 0x13, 0x1f, 0x30, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x01, 0x12, 0x04, + 0x14, 0x08, 0x18, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x01, 0x01, 0x12, 0x03, 0x14, + 0x0e, 0x11, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x15, 0x10, 0x1d, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, 0x12, 0x03, 0x15, 0x10, 0x15, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x15, 0x16, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x15, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x08, 0x12, 0x03, 0x16, 0x10, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, + 0x03, 0x16, 0x10, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x16, + 0x17, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x16, 0x1c, 0x1d, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x17, 0x10, 0x1f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, 0x17, 0x10, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x17, 0x17, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x09, 0x03, 0x12, 0x03, 0x17, 0x1c, 0x1e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x1b, + 0x00, 0x1d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x1b, 0x08, 0x17, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x1c, 0x08, 0x36, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x1c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x06, 0x12, 0x03, 0x1c, 0x11, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x1c, 0x2d, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x1c, 0x34, 0x35, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x1f, 0x00, 0x21, 0x01, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x1f, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x20, 0x08, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x04, 0x12, 0x03, 0x20, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x20, 0x11, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x20, 0x2d, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x20, 0x37, + 0x38, 0x0a, 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x23, 0x00, 0x2a, 0x01, 0x0a, 0x09, 0x0a, 0x02, + 0x07, 0x00, 0x12, 0x03, 0x24, 0x08, 0x24, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x02, 0x12, 0x03, + 0x23, 0x07, 0x0f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x04, 0x12, 0x03, 0x24, 0x08, 0x10, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x06, 0x12, 0x03, 0x24, 0x11, 0x19, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x00, 0x01, 0x12, 0x03, 0x24, 0x1a, 0x1d, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x03, 0x12, 0x03, + 0x24, 0x20, 0x23, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x01, 0x12, 0x04, 0x26, 0x08, 0x29, 0x09, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x02, 0x12, 0x03, 0x23, 0x07, 0x0f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x01, 0x04, 0x12, 0x03, 0x26, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x05, 0x12, 0x03, + 0x26, 0x11, 0x16, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x01, 0x12, 0x03, 0x26, 0x17, 0x1d, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x03, 0x12, 0x03, 0x26, 0x20, 0x23, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x03, 0x12, 0x04, 0x26, 0x08, 0x29, 0x09, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, + 0x26, 0x17, 0x1d, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x06, 0x12, 0x03, 0x26, 0x17, 0x1d, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x27, 0x10, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x27, 0x10, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x05, 0x12, 0x03, 0x27, 0x19, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x27, 0x1f, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x27, 0x29, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x28, 0x10, + 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x04, 0x12, 0x03, 0x28, 0x10, 0x18, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x05, 0x12, 0x03, 0x28, 0x19, 0x1f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x28, 0x20, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x28, 0x2a, 0x2e, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test2, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test2.proto", &si) +} diff --git a/internal/testprotos/desc_test_comments.pb.srcinfo.go b/internal/testprotos/desc_test_comments.pb.srcinfo.go new file mode 100644 index 00000000..83342b18 --- /dev/null +++ b/internal/testprotos/desc_test_comments.pb.srcinfo.go @@ -0,0 +1,274 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_comments.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_comments = []byte{ + 0x0a, 0x07, 0x12, 0x05, 0x07, 0x00, 0x9b, 0x01, 0x01, 0x0a, 0xa1, 0x01, 0x0a, 0x01, 0x0c, 0x12, + 0x03, 0x07, 0x00, 0x12, 0x1a, 0x13, 0x20, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2e, 0x2e, 0x0a, 0x22, 0x11, 0x20, 0x53, 0x79, 0x6e, 0x74, + 0x61, 0x78, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x2e, 0x0a, 0x32, 0x34, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x20, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, + 0x2e, 0x0a, 0x32, 0x25, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x32, 0x12, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x68, 0x69, 0x72, 0x64, 0x2e, 0x0a, 0x0a, 0x2b, 0x0a, + 0x01, 0x02, 0x12, 0x03, 0x0b, 0x00, 0x10, 0x1a, 0x21, 0x20, 0x41, 0x6e, 0x64, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x20, 0x64, 0x65, + 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, + 0x03, 0x0e, 0x00, 0x4a, 0x0a, 0x23, 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x0e, 0x00, 0x4a, 0x1a, + 0x18, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x46, 0x54, 0x57, 0x21, 0x21, 0x21, 0x0a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, + 0x03, 0x10, 0x00, 0x2c, 0x0a, 0x09, 0x0a, 0x02, 0x0a, 0x00, 0x12, 0x03, 0x10, 0x07, 0x0d, 0x0a, + 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x11, 0x00, 0x21, 0x0a, 0x7d, 0x0a, 0x02, 0x04, 0x00, + 0x12, 0x04, 0x18, 0x00, 0x70, 0x01, 0x1a, 0x2e, 0x20, 0x57, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, + 0x75, 0x72, 0x20, 0x52, 0x50, 0x43, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x6c, 0x6f, 0x77, 0x2e, 0x0a, 0x32, 0x41, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x28, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x29, + 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x0a, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x2e, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, + 0x12, 0x03, 0x18, 0x43, 0x4a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x07, 0x12, 0x03, 0x19, 0x08, + 0x21, 0x0a, 0x1a, 0x0a, 0x04, 0x04, 0x00, 0x07, 0x03, 0x12, 0x03, 0x19, 0x08, 0x21, 0x22, 0x0d, + 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x21, 0x0a, 0x0a, 0x37, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x05, 0x1c, 0x08, 0x1f, 0x83, 0x01, 0x1a, 0x11, 0x20, 0x41, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x22, + 0x15, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x20, + 0x23, 0x31, 0x2e, 0x2e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x1c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x1c, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1c, 0x17, 0x1a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1c, 0x45, 0x46, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x04, 0x1f, 0x0a, 0x82, 0x01, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x00, 0x02, 0x00, 0x08, 0x02, 0x12, 0x03, 0x1f, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x0a, 0x12, 0x03, 0x1f, 0x26, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x0a, 0x12, 0x03, 0x1f, 0x30, 0x37, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x00, + 0x08, 0xf5, 0x4e, 0x00, 0x12, 0x03, 0x1f, 0x4c, 0x65, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x00, 0x02, + 0x00, 0x08, 0xf6, 0x4e, 0x12, 0x04, 0x1f, 0x67, 0x81, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, + 0x07, 0x12, 0x03, 0x22, 0x1a, 0x3c, 0x0a, 0x2e, 0x0a, 0x05, 0x04, 0x00, 0x07, 0xf5, 0x4e, 0x12, + 0x03, 0x22, 0x1a, 0x3c, 0x1a, 0x0d, 0x20, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x66, 0x75, 0x62, + 0x61, 0x72, 0x20, 0x22, 0x11, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x66, 0x75, 0x62, 0x61, 0x72, 0x0a, 0x0a, 0x6a, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, + 0x29, 0x1c, 0x2a, 0x4c, 0x1a, 0x0f, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x32, 0x18, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x32, + 0x18, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x32, 0x17, 0x20, 0x41, 0x6e, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x29, 0x1c, 0x24, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x29, 0x38, 0x3e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x29, 0x52, 0x56, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x29, 0x59, 0x5a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x08, 0x12, 0x03, 0x2a, 0x10, 0x4b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x07, 0x12, 0x03, 0x2a, 0x2e, 0x35, 0x0a, 0x40, 0x0a, 0x03, 0x04, 0x00, 0x05, 0x12, 0x03, 0x2d, + 0x08, 0x1e, 0x1a, 0x34, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x28, 0x73, 0x61, 0x64, 0x6c, 0x79, 0x29, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x05, 0x00, + 0x12, 0x03, 0x2d, 0x13, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x05, 0x00, 0x01, 0x12, 0x03, + 0x2d, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x05, 0x00, 0x02, 0x12, 0x03, 0x2d, 0x1a, + 0x1d, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x05, 0x12, 0x03, 0x2e, 0x08, 0x6c, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x05, 0x01, 0x12, 0x03, 0x2e, 0x13, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x05, 0x01, 0x01, 0x12, 0x03, 0x2e, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x05, 0x01, + 0x02, 0x12, 0x03, 0x2e, 0x1a, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x05, 0x01, 0x03, 0x12, + 0x03, 0x2e, 0x1e, 0x6b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x05, 0x01, 0x03, 0xf6, 0x4e, 0x12, + 0x03, 0x2e, 0x1f, 0x49, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x05, 0x01, 0x03, 0xf5, 0x4e, 0x00, + 0x12, 0x03, 0x2e, 0x4b, 0x6a, 0x0a, 0x4a, 0x0a, 0x03, 0x04, 0x00, 0x09, 0x12, 0x03, 0x32, 0x2f, + 0x4c, 0x1a, 0x22, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x32, 0x1a, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x09, 0x00, 0x12, 0x03, 0x32, 0x38, 0x40, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x09, 0x00, 0x01, 0x12, 0x03, 0x32, 0x38, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x09, 0x00, 0x02, 0x12, 0x03, 0x32, 0x3e, 0x40, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x09, 0x01, 0x12, 0x03, 0x32, 0x42, 0x4a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x09, 0x01, 0x01, + 0x12, 0x03, 0x32, 0x42, 0x44, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x09, 0x01, 0x02, 0x12, 0x03, + 0x32, 0x48, 0x4a, 0x0a, 0x1f, 0x0a, 0x03, 0x04, 0x00, 0x0a, 0x12, 0x03, 0x33, 0x08, 0x25, 0x22, + 0x13, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, + 0x65, 0x72, 0x73, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x0a, 0x00, 0x12, 0x03, 0x33, 0x11, + 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x0a, 0x01, 0x12, 0x03, 0x33, 0x18, 0x1d, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x0a, 0x02, 0x12, 0x03, 0x33, 0x1f, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x02, 0x12, 0x04, 0x36, 0x08, 0x44, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x04, 0x12, 0x03, 0x36, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, + 0x12, 0x03, 0x36, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, + 0x36, 0x28, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x36, 0x31, + 0x32, 0x0a, 0x33, 0x0a, 0x04, 0x04, 0x00, 0x03, 0x00, 0x12, 0x04, 0x36, 0x08, 0x44, 0x09, 0x1a, + 0x0f, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x22, 0x14, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x45, + 0x78, 0x74, 0x72, 0x61, 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x03, 0x00, 0x01, 0x12, + 0x03, 0x36, 0x28, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x36, + 0x28, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x03, 0x00, 0x07, 0x12, 0x03, 0x3a, 0x10, 0x33, + 0x0a, 0x29, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x07, 0xf5, 0x4e, 0x12, 0x03, 0x3a, 0x10, 0x33, + 0x1a, 0x19, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x0d, 0x0a, 0x06, 0x04, + 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x3c, 0x10, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x3c, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x3c, 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3c, 0x20, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x3c, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, + 0x03, 0x00, 0x02, 0x01, 0x12, 0x03, 0x3d, 0x10, 0x27, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x3d, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, + 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x3d, 0x19, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, + 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3d, 0x1f, 0x22, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, + 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x3d, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x03, + 0x00, 0x07, 0x12, 0x03, 0x3f, 0x10, 0x3f, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x03, 0x00, 0x07, + 0x02, 0x12, 0x03, 0x3f, 0x10, 0x3f, 0x0a, 0x3a, 0x0a, 0x06, 0x04, 0x00, 0x03, 0x00, 0x02, 0x02, + 0x12, 0x03, 0x42, 0x10, 0x28, 0x1a, 0x14, 0x20, 0x4c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2e, 0x2e, 0x0a, 0x22, 0x15, 0x20, 0x54, 0x72, + 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2e, + 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x42, + 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x42, + 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x42, + 0x20, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x42, + 0x26, 0x27, 0x0a, 0x20, 0x0a, 0x04, 0x04, 0x00, 0x04, 0x00, 0x12, 0x04, 0x46, 0x08, 0x5c, 0x09, + 0x22, 0x12, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x6e, 0x75, 0x6d, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x04, 0x00, 0x01, 0x12, 0x03, 0x46, + 0x0d, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x04, 0x00, 0x03, 0x12, 0x03, 0x4a, 0x10, 0x2a, + 0x0a, 0x26, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, 0x03, 0x02, 0x12, 0x03, 0x4a, 0x10, 0x2a, 0x1a, + 0x17, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x21, 0x0a, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x03, 0x4c, 0x10, 0x55, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x4c, 0x10, 0x15, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x00, 0x02, 0x12, 0x03, 0x4c, 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x4c, 0x1a, 0x54, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x00, 0x03, 0xf6, 0x4e, 0x12, 0x03, 0x4c, 0x1b, 0x37, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x04, + 0x00, 0x02, 0x00, 0x03, 0xf5, 0x4e, 0x12, 0x03, 0x4c, 0x39, 0x53, 0x0a, 0x0d, 0x0a, 0x06, 0x04, + 0x00, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x4d, 0x10, 0x63, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4d, 0x10, 0x15, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x4d, 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4d, 0x1a, 0x62, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, + 0x04, 0x00, 0x02, 0x01, 0x03, 0xf9, 0x4e, 0x12, 0x03, 0x4d, 0x1c, 0x38, 0x0a, 0x10, 0x0a, 0x09, + 0x04, 0x00, 0x04, 0x00, 0x02, 0x01, 0x03, 0xf8, 0x4e, 0x12, 0x03, 0x4d, 0x48, 0x61, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x4e, 0x10, 0x1a, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4e, 0x10, 0x15, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x4e, 0x18, 0x19, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x00, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x4f, 0x10, 0x1b, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x00, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x4f, 0x10, 0x16, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x00, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x4f, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x04, 0x00, 0x03, 0x12, 0x03, 0x51, 0x10, 0x33, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, + 0x04, 0x00, 0x03, 0xf6, 0x4e, 0x12, 0x03, 0x51, 0x10, 0x33, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, + 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x53, 0x10, 0x1a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, + 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x53, 0x10, 0x15, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, + 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x53, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, + 0x00, 0x02, 0x05, 0x12, 0x03, 0x54, 0x10, 0x1c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x05, 0x01, 0x12, 0x03, 0x54, 0x10, 0x17, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x05, 0x02, 0x12, 0x03, 0x54, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x06, 0x12, 0x03, 0x55, 0x10, 0x3b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x06, 0x01, 0x12, 0x03, 0x55, 0x10, 0x17, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x06, 0x02, 0x12, 0x03, 0x55, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x06, 0x03, 0x12, 0x03, 0x55, 0x1c, 0x3a, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x06, 0x03, 0xf7, 0x4e, 0x12, 0x03, 0x55, 0x1d, 0x39, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, + 0x00, 0x02, 0x07, 0x12, 0x03, 0x56, 0x10, 0x1b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x07, 0x01, 0x12, 0x03, 0x56, 0x10, 0x16, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x07, 0x02, 0x12, 0x03, 0x56, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, + 0x02, 0x08, 0x12, 0x03, 0x57, 0x10, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x08, 0x01, 0x12, 0x03, 0x57, 0x10, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x08, 0x02, 0x12, 0x03, 0x57, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, 0x02, + 0x09, 0x12, 0x03, 0x58, 0x10, 0x1a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x09, + 0x01, 0x12, 0x03, 0x58, 0x10, 0x15, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x09, + 0x02, 0x12, 0x03, 0x58, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x04, 0x00, 0x02, 0x0a, + 0x12, 0x03, 0x59, 0x10, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x0a, 0x01, + 0x12, 0x03, 0x59, 0x10, 0x16, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x02, 0x0a, 0x02, + 0x12, 0x03, 0x59, 0x19, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x04, 0x00, 0x03, 0x12, 0x03, + 0x5b, 0x10, 0x31, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x04, 0x00, 0x03, 0xf5, 0x4e, 0x12, 0x03, + 0x5b, 0x10, 0x31, 0x0a, 0x3c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x5f, 0x08, 0x64, + 0x09, 0x1a, 0x15, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a, 0x22, 0x17, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x20, 0x61, 0x62, 0x63, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, 0x12, 0x03, 0x5f, 0x0e, 0x11, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x62, 0x10, 0x20, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x62, 0x10, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x62, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, + 0x03, 0x12, 0x03, 0x62, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, + 0x63, 0x10, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x63, 0x10, + 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x63, 0x16, 0x1a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x63, 0x1d, 0x1e, 0x0a, 0x25, 0x0a, + 0x04, 0x04, 0x00, 0x08, 0x01, 0x12, 0x04, 0x66, 0x08, 0x6c, 0x09, 0x1a, 0x17, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x6f, 0x73, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x01, 0x01, 0x12, 0x03, 0x66, + 0x0e, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x01, 0x02, 0x12, 0x03, 0x68, 0x10, 0x38, + 0x0a, 0x1a, 0x0a, 0x08, 0x04, 0x00, 0x08, 0x01, 0x02, 0xf5, 0x4e, 0x00, 0x12, 0x03, 0x68, 0x10, + 0x38, 0x1a, 0x09, 0x20, 0x77, 0x68, 0x6f, 0x6f, 0x70, 0x73, 0x3f, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x6a, 0x10, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x05, 0x05, 0x12, 0x03, 0x6a, 0x10, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, + 0x12, 0x03, 0x6a, 0x17, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, + 0x6a, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x6b, 0x10, 0x20, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x6b, 0x10, 0x15, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x6b, 0x16, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x6b, 0x1e, 0x1f, 0x0a, 0x18, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x07, 0x12, 0x03, 0x6f, 0x08, 0x27, 0x1a, 0x0b, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x06, 0x12, 0x03, 0x6f, + 0x08, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x6f, 0x1c, 0x22, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x6f, 0x25, 0x26, 0x0a, 0x4f, + 0x0a, 0x01, 0x07, 0x12, 0x04, 0x74, 0x00, 0x7f, 0x01, 0x22, 0x1a, 0x20, 0x74, 0x72, 0x61, 0x69, + 0x6c, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x0a, 0x32, 0x28, 0x20, 0x41, 0x6e, 0x64, 0x20, 0x6e, 0x65, 0x78, 0x74, + 0x20, 0x77, 0x65, 0x27, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x2e, 0x2e, 0x0a, 0x0a, + 0x1e, 0x0a, 0x02, 0x07, 0x00, 0x12, 0x03, 0x7c, 0x08, 0x24, 0x1a, 0x13, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x75, 0x69, 0x64, 0x31, 0x0a, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x02, 0x12, 0x03, 0x76, 0x00, 0x07, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x00, 0x04, 0x12, 0x03, 0x7c, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x05, 0x12, 0x03, + 0x7c, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x01, 0x12, 0x03, 0x7c, 0x18, 0x1d, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x03, 0x12, 0x03, 0x7c, 0x20, 0x23, 0x0a, 0x28, 0x0a, 0x02, 0x07, + 0x01, 0x12, 0x03, 0x7e, 0x08, 0x24, 0x1a, 0x1d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, + 0x75, 0x69, 0x64, 0x32, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x02, 0x12, 0x03, 0x76, 0x00, + 0x07, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x04, 0x12, 0x03, 0x7e, 0x08, 0x10, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x01, 0x05, 0x12, 0x03, 0x7e, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x01, + 0x12, 0x03, 0x7e, 0x18, 0x1d, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x03, 0x12, 0x03, 0x7e, 0x20, + 0x23, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x82, 0x01, 0x00, 0x72, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x01, 0x01, 0x12, 0x04, 0x82, 0x01, 0x23, 0x31, 0x0a, 0x4d, 0x0a, 0x02, 0x06, 0x00, + 0x12, 0x06, 0x85, 0x01, 0x00, 0x9b, 0x01, 0x01, 0x1a, 0x11, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x22, 0x2c, 0x20, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x00, 0x01, + 0x12, 0x04, 0x85, 0x01, 0x1b, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x00, 0x03, 0x12, 0x04, 0x8a, + 0x01, 0x08, 0x2a, 0x0a, 0x28, 0x0a, 0x06, 0x06, 0x00, 0x03, 0xf5, 0x4e, 0x01, 0x12, 0x04, 0x8a, + 0x01, 0x08, 0x2a, 0x1a, 0x18, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x0a, 0x0a, 0x0b, 0x0a, + 0x03, 0x06, 0x00, 0x03, 0x12, 0x04, 0x8c, 0x01, 0x08, 0x2e, 0x0a, 0x30, 0x0a, 0x06, 0x06, 0x00, + 0x03, 0xf5, 0x4e, 0x02, 0x12, 0x04, 0x8c, 0x01, 0x08, 0x2e, 0x1a, 0x20, 0x20, 0x61, 0x6e, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, + 0x06, 0x00, 0x03, 0x12, 0x04, 0x8d, 0x01, 0x08, 0x22, 0x0a, 0x1b, 0x0a, 0x04, 0x06, 0x00, 0x03, + 0x21, 0x12, 0x04, 0x8d, 0x01, 0x08, 0x22, 0x22, 0x0d, 0x20, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, + 0x41, 0x54, 0x45, 0x44, 0x21, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x00, 0x03, 0x12, 0x04, 0x8f, + 0x01, 0x08, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x03, 0xf6, 0x4e, 0x12, 0x04, 0x8f, 0x01, + 0x08, 0x2c, 0x0a, 0x3a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x06, 0x92, 0x01, 0x08, 0x93, + 0x01, 0x53, 0x1a, 0x10, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x22, 0x18, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x20, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x92, 0x01, 0x1b, 0x27, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0x92, 0x01, 0x48, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x92, 0x01, 0x5f, 0x66, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0x93, 0x01, 0x38, 0x3f, 0x0a, 0x24, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x01, 0x12, 0x06, 0x95, 0x01, 0x08, 0x9a, 0x01, 0x09, 0x22, 0x14, 0x20, 0x74, 0x72, 0x61, + 0x69, 0x6c, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x95, 0x01, 0x0c, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x95, 0x01, 0x16, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0x95, 0x01, 0x28, 0x3d, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x97, 0x01, 0x10, 0x29, 0x0a, 0x29, 0x0a, 0x06, + 0x06, 0x00, 0x02, 0x01, 0x04, 0x21, 0x12, 0x04, 0x97, 0x01, 0x10, 0x29, 0x1a, 0x19, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x52, 0x50, 0x43, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x21, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, + 0x12, 0x04, 0x98, 0x01, 0x10, 0x34, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0xf5, + 0x4e, 0x00, 0x12, 0x04, 0x98, 0x01, 0x10, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x04, 0x12, 0x04, 0x99, 0x01, 0x10, 0x37, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, + 0xf6, 0x4e, 0x12, 0x04, 0x99, 0x01, 0x10, 0x37, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_comments, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_comments.proto", &si) +} diff --git a/internal/testprotos/desc_test_complex.pb.srcinfo.go b/internal/testprotos/desc_test_complex.pb.srcinfo.go new file mode 100644 index 00000000..b5bd1a94 --- /dev/null +++ b/internal/testprotos/desc_test_complex.pb.srcinfo.go @@ -0,0 +1,816 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_complex.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_complex = []byte{ + 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xa7, 0x02, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, + 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x10, 0x0a, 0x08, 0x0a, + 0x01, 0x08, 0x12, 0x03, 0x04, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x04, + 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x06, 0x00, 0x2a, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x00, 0x12, 0x04, 0x08, 0x00, 0x0b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, + 0x12, 0x03, 0x08, 0x08, 0x0e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x09, + 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x09, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x09, 0x11, 0x17, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x09, 0x18, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x09, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x01, 0x12, 0x03, 0x0a, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, + 0x12, 0x03, 0x0a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, + 0x0a, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0a, 0x18, + 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0a, 0x1d, 0x1e, 0x0a, + 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x0d, 0x00, 0x11, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x00, + 0x12, 0x03, 0x10, 0x08, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x00, 0x02, 0x12, 0x04, 0x0d, 0x07, + 0x0f, 0x18, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x04, 0x12, 0x03, 0x10, 0x08, 0x10, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x00, 0x05, 0x12, 0x03, 0x10, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, + 0x01, 0x12, 0x03, 0x10, 0x18, 0x1d, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x03, 0x12, 0x03, 0x10, + 0x20, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x13, 0x00, 0x3a, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x13, 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x00, 0x12, 0x03, 0x14, 0x08, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, + 0x12, 0x03, 0x14, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, + 0x14, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x14, 0x18, + 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x14, 0x1e, 0x1f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x03, 0x14, 0x20, 0x35, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x00, 0x0a, 0x12, 0x03, 0x14, 0x21, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x00, 0x0a, 0x12, 0x03, 0x14, 0x2d, 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x01, 0x12, 0x03, 0x15, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x15, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x15, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x15, 0x17, 0x1c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x15, 0x1f, 0x20, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x16, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x16, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x02, 0x06, 0x12, 0x03, 0x16, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x16, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x16, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x17, 0x08, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, 0x03, 0x17, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, 0x03, 0x17, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x17, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x03, 0x03, 0x12, 0x03, 0x17, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, + 0x12, 0x03, 0x18, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x06, 0x12, 0x03, + 0x18, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x18, 0x1b, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x18, 0x1f, 0x20, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, 0x03, 0x1a, 0x08, 0x42, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x05, 0x04, 0x12, 0x03, 0x1a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x05, 0x05, 0x12, 0x03, 0x1a, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, + 0x01, 0x12, 0x03, 0x1a, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, + 0x03, 0x1a, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x08, 0x12, 0x03, 0x1a, + 0x1d, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x07, 0x12, 0x03, 0x1a, 0x28, 0x40, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x05, 0x12, 0x03, 0x1c, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x01, 0x05, 0x00, 0x12, 0x03, 0x1c, 0x13, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, + 0x00, 0x01, 0x12, 0x03, 0x1c, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x00, 0x02, + 0x12, 0x03, 0x1c, 0x1a, 0x1d, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x05, 0x12, 0x03, 0x1e, 0x08, + 0x50, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x05, 0x01, 0x12, 0x03, 0x1e, 0x13, 0x16, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x05, 0x01, 0x01, 0x12, 0x03, 0x1e, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x05, 0x01, 0x02, 0x12, 0x03, 0x1e, 0x13, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x05, 0x02, 0x12, 0x03, 0x1e, 0x18, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x02, 0x01, + 0x12, 0x03, 0x1e, 0x18, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x02, 0x02, 0x12, 0x03, + 0x1e, 0x1f, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x05, 0x03, 0x12, 0x03, 0x1e, 0x24, 0x2e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x03, 0x01, 0x12, 0x03, 0x1e, 0x24, 0x27, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x05, 0x03, 0x02, 0x12, 0x03, 0x1e, 0x2b, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x01, 0x05, 0x04, 0x12, 0x03, 0x1e, 0x30, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, + 0x04, 0x01, 0x12, 0x03, 0x1e, 0x30, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x04, 0x02, + 0x12, 0x03, 0x1e, 0x39, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x01, 0x03, 0x12, 0x03, + 0x1e, 0x3d, 0x4f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x05, 0x01, 0x03, 0xa0, 0x9c, 0x01, 0x12, + 0x03, 0x1e, 0x3e, 0x4e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x02, 0x03, 0x12, 0x03, 0x1e, + 0x3d, 0x4f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x05, 0x02, 0x03, 0xa0, 0x9c, 0x01, 0x12, 0x03, + 0x1e, 0x3e, 0x4e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x03, 0x03, 0x12, 0x03, 0x1e, 0x3d, + 0x4f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x05, 0x03, 0x03, 0xa0, 0x9c, 0x01, 0x12, 0x03, 0x1e, + 0x3e, 0x4e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x05, 0x04, 0x03, 0x12, 0x03, 0x1e, 0x3d, 0x4f, + 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x05, 0x04, 0x03, 0xa0, 0x9c, 0x01, 0x12, 0x03, 0x1e, 0x3e, + 0x4e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x03, 0x01, 0x12, 0x04, 0x20, 0x08, 0x39, 0x09, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x03, 0x01, 0x01, 0x12, 0x03, 0x20, 0x10, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x03, 0x01, 0x06, 0x12, 0x04, 0x21, 0x10, 0x23, 0x11, 0x0a, 0x0d, 0x0a, 0x06, + 0x04, 0x01, 0x03, 0x01, 0x06, 0x00, 0x12, 0x03, 0x22, 0x18, 0x37, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x06, 0x00, 0x02, 0x12, 0x03, 0x21, 0x17, 0x35, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x06, 0x00, 0x04, 0x12, 0x03, 0x22, 0x18, 0x20, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x06, 0x00, 0x05, 0x12, 0x03, 0x22, 0x21, 0x26, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x06, 0x00, 0x01, 0x12, 0x03, 0x22, 0x27, 0x2e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x06, 0x00, 0x03, 0x12, 0x03, 0x22, 0x31, 0x36, 0x0a, 0x0e, 0x0a, 0x06, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x12, 0x04, 0x24, 0x10, 0x38, 0x11, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x01, 0x12, 0x03, 0x24, 0x18, 0x25, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x12, 0x04, 0x25, 0x18, 0x2d, 0x19, 0x0a, 0x10, 0x0a, + 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x01, 0x12, 0x03, 0x25, 0x1d, 0x20, 0x0a, + 0x11, 0x0a, 0x0a, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x26, + 0x20, 0x27, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x26, 0x20, 0x22, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, + 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x26, 0x25, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x04, 0x01, + 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x27, 0x20, 0x27, 0x0a, 0x12, 0x0a, + 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x27, 0x20, + 0x22, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x03, 0x27, 0x25, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, + 0x00, 0x02, 0x02, 0x12, 0x03, 0x28, 0x20, 0x27, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, + 0x03, 0x00, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x28, 0x20, 0x22, 0x0a, 0x12, 0x0a, 0x0b, + 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x28, 0x25, 0x26, + 0x0a, 0x11, 0x0a, 0x0a, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, + 0x29, 0x20, 0x27, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x29, 0x20, 0x22, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, + 0x00, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x29, 0x25, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x2a, 0x20, 0x27, 0x0a, 0x12, + 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x2a, + 0x20, 0x22, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x04, + 0x02, 0x12, 0x03, 0x2a, 0x25, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, + 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x2b, 0x20, 0x27, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, + 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x2b, 0x20, 0x22, 0x0a, 0x12, 0x0a, + 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x2b, 0x25, + 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, 0x02, 0x06, 0x12, + 0x03, 0x2c, 0x20, 0x27, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x04, 0x00, + 0x02, 0x06, 0x01, 0x12, 0x03, 0x2c, 0x20, 0x22, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, + 0x03, 0x00, 0x04, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x2c, 0x25, 0x26, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x07, 0x12, 0x03, 0x2e, 0x18, 0x31, 0x0a, 0x11, 0x0a, 0x0a, + 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x07, 0xa3, 0x9c, 0x01, 0x12, 0x03, 0x2e, 0x18, 0x31, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x06, 0x12, 0x04, 0x2f, 0x18, 0x31, 0x19, + 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x06, 0x00, 0x12, 0x03, 0x30, 0x20, + 0x3f, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x06, 0x00, 0x02, 0x12, 0x03, + 0x2f, 0x1f, 0x23, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x06, 0x00, 0x04, + 0x12, 0x03, 0x30, 0x20, 0x28, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x06, + 0x00, 0x05, 0x12, 0x03, 0x30, 0x29, 0x2f, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, + 0x00, 0x06, 0x00, 0x01, 0x12, 0x03, 0x30, 0x30, 0x38, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, + 0x01, 0x03, 0x00, 0x06, 0x00, 0x03, 0x12, 0x03, 0x30, 0x3b, 0x3e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x07, 0x12, 0x03, 0x32, 0x18, 0x6b, 0x0a, 0x12, 0x0a, 0x0b, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x07, 0xa2, 0x9c, 0x01, 0x00, 0x12, 0x03, 0x32, 0x18, 0x6b, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x12, 0x04, 0x33, 0x18, 0x37, + 0x19, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, + 0x33, 0x20, 0x32, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x07, + 0x12, 0x03, 0x34, 0x20, 0x6c, 0x0a, 0x14, 0x0a, 0x0d, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, + 0x00, 0x07, 0xa2, 0x9c, 0x01, 0x00, 0x12, 0x03, 0x34, 0x20, 0x6c, 0x0a, 0x11, 0x0a, 0x0a, 0x04, + 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x36, 0x20, 0x37, 0x0a, 0x12, + 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x36, + 0x20, 0x28, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x36, 0x29, 0x2d, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, 0x03, 0x01, 0x03, 0x00, + 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x36, 0x2e, 0x32, 0x0a, 0x12, 0x0a, 0x0b, 0x04, 0x01, + 0x03, 0x01, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x36, 0x35, 0x36, 0x0a, 0x0a, + 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x3c, 0x00, 0x45, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, + 0x01, 0x12, 0x03, 0x3c, 0x05, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, + 0x3d, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3d, 0x08, + 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x3d, 0x0c, 0x0d, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x3e, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3e, 0x08, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x01, 0x02, 0x12, 0x03, 0x3e, 0x0c, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, + 0x12, 0x03, 0x3f, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, + 0x3f, 0x08, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x3f, 0x0c, + 0x0d, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x04, 0x12, 0x03, 0x40, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x04, 0x00, 0x12, 0x03, 0x40, 0x11, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x04, 0x00, 0x01, 0x12, 0x03, 0x40, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, 0x00, + 0x02, 0x12, 0x03, 0x40, 0x19, 0x1c, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x04, 0x12, 0x03, 0x41, + 0x08, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x04, 0x01, 0x12, 0x03, 0x41, 0x11, 0x18, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, 0x01, 0x01, 0x12, 0x03, 0x41, 0x11, 0x13, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x04, 0x01, 0x02, 0x12, 0x03, 0x41, 0x17, 0x18, 0x0a, 0x0a, 0x0a, 0x03, 0x05, + 0x00, 0x04, 0x12, 0x03, 0x42, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x04, 0x02, 0x12, + 0x03, 0x42, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, 0x02, 0x01, 0x12, 0x03, 0x42, + 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, 0x02, 0x02, 0x12, 0x03, 0x42, 0x16, 0x18, + 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x04, 0x03, 0x12, 0x03, 0x42, 0x1a, 0x22, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x04, 0x03, 0x01, 0x12, 0x03, 0x42, 0x1a, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x04, 0x03, 0x02, 0x12, 0x03, 0x42, 0x20, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x04, + 0x04, 0x12, 0x03, 0x42, 0x24, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, 0x04, 0x01, 0x12, + 0x03, 0x42, 0x24, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, 0x04, 0x02, 0x12, 0x03, 0x42, + 0x24, 0x26, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x04, 0x12, 0x03, 0x43, 0x08, 0x1a, 0x0a, 0x0b, + 0x0a, 0x04, 0x05, 0x00, 0x04, 0x05, 0x12, 0x03, 0x43, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x04, 0x05, 0x01, 0x12, 0x03, 0x43, 0x11, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x04, + 0x05, 0x02, 0x12, 0x03, 0x43, 0x17, 0x19, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x05, 0x12, 0x03, + 0x44, 0x08, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x05, 0x00, 0x12, 0x03, 0x44, 0x11, 0x14, + 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x05, 0x01, 0x12, 0x03, 0x44, 0x16, 0x19, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x05, 0x02, 0x12, 0x03, 0x44, 0x1b, 0x1e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, + 0x12, 0x04, 0x47, 0x00, 0x4b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x47, + 0x08, 0x1f, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x09, 0x12, 0x03, 0x48, 0x08, 0x27, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x09, 0x00, 0x12, 0x03, 0x48, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x09, 0x00, 0x01, 0x12, 0x03, 0x48, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x09, + 0x00, 0x02, 0x12, 0x03, 0x48, 0x16, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x09, 0x01, 0x12, + 0x03, 0x48, 0x1a, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x09, 0x01, 0x01, 0x12, 0x03, 0x48, + 0x1a, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x09, 0x01, 0x02, 0x12, 0x03, 0x48, 0x20, 0x22, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x09, 0x02, 0x12, 0x03, 0x48, 0x24, 0x26, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x09, 0x02, 0x01, 0x12, 0x03, 0x48, 0x24, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x09, 0x02, 0x02, 0x12, 0x03, 0x48, 0x24, 0x26, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x09, + 0x12, 0x03, 0x49, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x09, 0x03, 0x12, 0x03, 0x49, + 0x11, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x09, 0x03, 0x01, 0x12, 0x03, 0x49, 0x11, 0x15, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x09, 0x03, 0x02, 0x12, 0x03, 0x49, 0x19, 0x1c, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x02, 0x0a, 0x12, 0x03, 0x4a, 0x08, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, + 0x0a, 0x00, 0x12, 0x03, 0x4a, 0x11, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x0a, 0x01, 0x12, + 0x03, 0x4a, 0x16, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x0a, 0x02, 0x12, 0x03, 0x4a, 0x1b, + 0x1e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x4d, 0x00, 0x4f, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x4d, 0x08, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, + 0x00, 0x12, 0x03, 0x4e, 0x08, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, + 0x03, 0x4e, 0x08, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4e, + 0x1c, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4e, 0x23, 0x24, + 0x0a, 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x51, 0x00, 0x56, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, + 0x01, 0x12, 0x03, 0x52, 0x08, 0x23, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x02, 0x12, 0x03, 0x51, + 0x07, 0x25, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x04, 0x12, 0x03, 0x52, 0x08, 0x10, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x01, 0x06, 0x12, 0x03, 0x52, 0x11, 0x15, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, + 0x01, 0x12, 0x03, 0x52, 0x16, 0x1a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x03, 0x12, 0x03, 0x52, + 0x1d, 0x22, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x02, 0x12, 0x03, 0x53, 0x08, 0x3b, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x02, 0x02, 0x12, 0x03, 0x51, 0x07, 0x25, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x04, + 0x12, 0x03, 0x53, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x06, 0x12, 0x03, 0x53, 0x11, + 0x2e, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x01, 0x12, 0x03, 0x53, 0x2f, 0x32, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x02, 0x03, 0x12, 0x03, 0x53, 0x35, 0x3a, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x03, 0x12, + 0x03, 0x54, 0x08, 0x23, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x02, 0x12, 0x03, 0x51, 0x07, 0x25, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x04, 0x12, 0x03, 0x54, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x03, 0x06, 0x12, 0x03, 0x54, 0x11, 0x18, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x01, 0x12, + 0x03, 0x54, 0x19, 0x1a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x03, 0x12, 0x03, 0x54, 0x1d, 0x22, + 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x04, 0x12, 0x03, 0x55, 0x08, 0x31, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x04, 0x02, 0x12, 0x03, 0x51, 0x07, 0x25, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x04, 0x12, 0x03, + 0x55, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x06, 0x12, 0x03, 0x55, 0x11, 0x1f, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x01, 0x12, 0x03, 0x55, 0x20, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x04, 0x03, 0x12, 0x03, 0x55, 0x2b, 0x30, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x58, + 0x00, 0x6c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x58, 0x08, 0x0f, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x04, 0x59, 0x04, 0x81, 0x01, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x04, 0x07, 0xa2, 0x9c, 0x01, 0x00, 0x12, 0x04, 0x59, 0x04, 0x81, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x5a, 0x04, 0x72, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x04, 0x07, + 0xa2, 0x9c, 0x01, 0x01, 0x12, 0x03, 0x5a, 0x04, 0x72, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, + 0x12, 0x03, 0x5b, 0x04, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x04, 0x07, 0xa2, 0x9c, 0x01, 0x02, + 0x12, 0x03, 0x5b, 0x04, 0x23, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x5c, 0x04, + 0x16, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x04, 0x07, 0xaa, 0x9c, 0x01, 0x12, 0x03, 0x5c, 0x04, 0x16, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x5d, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x06, + 0x04, 0x04, 0x07, 0xb4, 0x9c, 0x01, 0x12, 0x03, 0x5d, 0x08, 0x21, 0x0a, 0x0a, 0x0a, 0x03, 0x04, + 0x04, 0x07, 0x12, 0x03, 0x5e, 0x08, 0x55, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x04, 0x07, 0xb4, 0x9c, + 0x01, 0x01, 0x12, 0x03, 0x5e, 0x08, 0x55, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, + 0x5f, 0x08, 0x24, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x07, 0xb4, 0x9c, 0x01, 0x01, 0x01, 0x12, + 0x03, 0x5f, 0x08, 0x24, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x60, 0x08, 0x28, + 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x04, 0x07, 0xb4, 0x9c, 0x01, 0x01, 0x03, 0x01, 0x12, 0x03, 0x60, + 0x08, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x61, 0x04, 0x21, 0x0a, 0x10, + 0x0a, 0x09, 0x04, 0x04, 0x07, 0xb4, 0x9c, 0x01, 0x01, 0x03, 0x02, 0x12, 0x03, 0x61, 0x04, 0x21, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x62, 0x04, 0x1e, 0x0a, 0x10, 0x0a, 0x09, + 0x04, 0x04, 0x07, 0xb4, 0x9c, 0x01, 0x01, 0x02, 0x00, 0x12, 0x03, 0x62, 0x04, 0x1e, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x63, 0x04, 0x1e, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x04, + 0x07, 0xb4, 0x9c, 0x01, 0x01, 0x02, 0x01, 0x12, 0x03, 0x63, 0x04, 0x1e, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x04, 0x07, 0x12, 0x03, 0x64, 0x04, 0x4d, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x07, 0xb4, + 0x9c, 0x01, 0x01, 0x64, 0x12, 0x03, 0x64, 0x04, 0x4d, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, + 0x12, 0x03, 0x66, 0x08, 0x24, 0x0a, 0x23, 0x0a, 0x08, 0x04, 0x04, 0x07, 0xbe, 0x9c, 0x01, 0x01, + 0x00, 0x12, 0x03, 0x66, 0x08, 0x24, 0x22, 0x12, 0x20, 0x6e, 0x6f, 0x20, 0x6b, 0x65, 0x79, 0x2c, + 0x20, 0x6e, 0x6f, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, + 0x07, 0x12, 0x03, 0x67, 0x08, 0x2e, 0x0a, 0x1b, 0x0a, 0x08, 0x04, 0x04, 0x07, 0xbe, 0x9c, 0x01, + 0x01, 0x01, 0x12, 0x03, 0x67, 0x08, 0x2e, 0x22, 0x0a, 0x20, 0x6e, 0x6f, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x12, 0x03, 0x68, 0x08, 0x44, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x07, 0xbe, 0x9c, 0x01, 0x01, 0x02, 0x12, 0x03, 0x68, 0x08, 0x44, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x6a, 0x04, 0x1b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x00, 0x04, 0x12, 0x03, 0x6a, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x00, 0x06, 0x12, 0x03, 0x6a, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x6a, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x6a, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x6b, + 0x04, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x04, 0x12, 0x03, 0x6b, 0x04, 0x0c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x06, 0x12, 0x03, 0x6b, 0x0d, 0x2a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6b, 0x2b, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6b, 0x31, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x01, 0x08, 0x12, 0x03, 0x6b, 0x33, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, + 0x07, 0x12, 0x03, 0x6b, 0x3e, 0x40, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x6e, 0x00, + 0x7c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x6e, 0x08, 0x11, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x6f, 0x08, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x00, 0x04, 0x12, 0x03, 0x6f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x6f, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x6f, 0x16, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x6f, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x04, 0x00, 0x12, 0x04, 0x71, 0x08, 0x75, + 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x04, 0x00, 0x01, 0x12, 0x03, 0x71, 0x0d, 0x13, 0x0a, + 0x0d, 0x0a, 0x06, 0x04, 0x05, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x72, 0x10, 0x1a, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x72, 0x10, 0x15, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x05, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x72, 0x18, 0x19, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x05, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x73, 0x10, 0x19, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x73, 0x10, 0x14, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x05, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x73, 0x17, 0x18, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x05, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x74, 0x10, 0x1a, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x74, 0x10, 0x15, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x05, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x74, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x05, 0x03, 0x00, 0x12, 0x04, 0x76, 0x08, 0x79, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, + 0x03, 0x00, 0x01, 0x12, 0x03, 0x76, 0x10, 0x1a, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x05, 0x03, 0x00, + 0x02, 0x00, 0x12, 0x03, 0x77, 0x10, 0x2b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, + 0x00, 0x04, 0x12, 0x03, 0x77, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, + 0x00, 0x06, 0x12, 0x03, 0x77, 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x77, 0x20, 0x26, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x77, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x05, 0x03, 0x00, 0x02, + 0x01, 0x12, 0x03, 0x78, 0x10, 0x2b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, 0x01, + 0x04, 0x12, 0x03, 0x78, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x78, 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x78, 0x20, 0x26, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x05, 0x03, 0x00, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x78, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, + 0x7b, 0x08, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x04, 0x12, 0x03, 0x7b, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, 0x12, 0x03, 0x7b, 0x11, 0x1b, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x7b, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x7b, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x01, 0x07, + 0x12, 0x05, 0x7e, 0x00, 0x80, 0x01, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x05, 0x12, 0x03, 0x7f, + 0x08, 0x2d, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x05, 0x02, 0x12, 0x03, 0x7e, 0x07, 0x24, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x05, 0x04, 0x12, 0x03, 0x7f, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x05, + 0x06, 0x12, 0x03, 0x7f, 0x11, 0x1a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x05, 0x01, 0x12, 0x03, 0x7f, + 0x1b, 0x24, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x05, 0x03, 0x12, 0x03, 0x7f, 0x27, 0x2c, 0x0a, 0x0c, + 0x0a, 0x02, 0x06, 0x00, 0x12, 0x06, 0x82, 0x01, 0x00, 0x95, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x06, 0x00, 0x01, 0x12, 0x04, 0x82, 0x01, 0x08, 0x17, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x00, 0x12, 0x06, 0x83, 0x01, 0x08, 0x8b, 0x01, 0x09, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x83, 0x01, 0x0c, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, + 0x02, 0x12, 0x04, 0x83, 0x01, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, + 0x12, 0x04, 0x83, 0x01, 0x24, 0x28, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x06, 0x84, 0x01, 0x10, 0x8a, 0x01, 0x12, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, + 0xb9, 0x60, 0x12, 0x06, 0x84, 0x01, 0x10, 0x8a, 0x01, 0x12, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x01, 0x12, 0x06, 0x8c, 0x01, 0x08, 0x94, 0x01, 0x09, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x04, 0x8c, 0x01, 0x0c, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x01, 0x02, 0x12, 0x04, 0x8c, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x03, 0x12, 0x04, 0x8c, 0x01, 0x1f, 0x23, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, + 0x12, 0x06, 0x8d, 0x01, 0x10, 0x93, 0x01, 0x12, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, + 0x04, 0xb9, 0x60, 0x12, 0x06, 0x8d, 0x01, 0x10, 0x93, 0x01, 0x12, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x06, 0x12, 0x06, 0x97, 0x01, 0x00, 0xb1, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, + 0x12, 0x04, 0x97, 0x01, 0x08, 0x0c, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x06, 0x03, 0x00, 0x12, 0x06, + 0x98, 0x01, 0x02, 0x9d, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x03, 0x00, 0x01, 0x12, + 0x04, 0x98, 0x01, 0x0a, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x00, 0x02, 0x00, 0x12, + 0x04, 0x99, 0x01, 0x04, 0x20, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x00, 0x04, + 0x12, 0x04, 0x99, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x00, + 0x05, 0x12, 0x04, 0x99, 0x01, 0x0d, 0x13, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x99, 0x01, 0x14, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x01, 0x1e, 0x1f, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, + 0x00, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x01, 0x04, 0x22, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x9a, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, + 0x03, 0x00, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x01, 0x0d, 0x11, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x06, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x01, 0x12, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x06, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x01, 0x20, 0x21, 0x0a, 0x0e, 0x0a, + 0x06, 0x04, 0x06, 0x03, 0x00, 0x02, 0x02, 0x12, 0x04, 0x9b, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x9b, 0x01, 0x04, 0x0c, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9b, 0x01, 0x0d, 0x12, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9b, 0x01, 0x13, 0x1a, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9b, 0x01, 0x1d, + 0x1e, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x00, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x01, 0x04, + 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x03, 0x04, 0x12, 0x04, 0x9c, 0x01, + 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x03, 0x05, 0x12, 0x04, 0x9c, + 0x01, 0x0d, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, + 0x9c, 0x01, 0x13, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x00, 0x02, 0x03, 0x03, 0x12, + 0x04, 0x9c, 0x01, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x06, 0x03, 0x01, 0x12, 0x06, 0x9e, + 0x01, 0x02, 0xa1, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x03, 0x01, 0x01, 0x12, 0x04, + 0x9e, 0x01, 0x0a, 0x11, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x01, 0x02, 0x00, 0x12, 0x04, + 0x9f, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x01, 0x02, 0x00, 0x04, 0x12, + 0x04, 0x9f, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x01, 0x02, 0x00, 0x05, + 0x12, 0x04, 0x9f, 0x01, 0x0d, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x01, 0x02, 0x00, + 0x01, 0x12, 0x04, 0x9f, 0x01, 0x13, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x01, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x9f, 0x01, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x01, + 0x02, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x04, 0x20, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x01, + 0x02, 0x01, 0x04, 0x12, 0x04, 0xa0, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, + 0x01, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa0, 0x01, 0x0d, 0x13, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, + 0x03, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x14, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x06, 0x03, 0x01, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa0, 0x01, 0x1e, 0x1f, 0x0a, 0x0e, 0x0a, 0x04, + 0x04, 0x06, 0x03, 0x02, 0x12, 0x06, 0xa2, 0x01, 0x02, 0xa7, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x03, 0x02, 0x01, 0x12, 0x04, 0xa2, 0x01, 0x0a, 0x16, 0x0a, 0x0e, 0x0a, 0x06, 0x04, + 0x06, 0x03, 0x02, 0x02, 0x00, 0x12, 0x04, 0xa3, 0x01, 0x04, 0x22, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x06, 0x03, 0x02, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa3, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x06, 0x03, 0x02, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa3, 0x01, 0x0d, 0x11, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa3, 0x01, 0x12, 0x1d, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x20, 0x21, 0x0a, + 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x21, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x01, 0x04, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x0c, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x01, 0x0d, + 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x01, + 0x13, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, + 0x01, 0x1f, 0x20, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x02, 0x02, 0x02, 0x12, 0x04, 0xa5, + 0x01, 0x04, 0x21, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x02, 0x04, 0x12, 0x04, + 0xa5, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x02, 0x05, 0x12, + 0x04, 0xa5, 0x01, 0x0d, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xa5, 0x01, 0x13, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xa5, 0x01, 0x1f, 0x20, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xa6, 0x01, 0x04, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, 0x02, + 0x03, 0x04, 0x12, 0x04, 0xa6, 0x01, 0x04, 0x0c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x02, + 0x02, 0x03, 0x06, 0x12, 0x04, 0xa6, 0x01, 0x0d, 0x11, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, + 0x02, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa6, 0x01, 0x12, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, + 0x03, 0x02, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa6, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x06, 0x08, 0x00, 0x12, 0x06, 0xa8, 0x01, 0x02, 0xb0, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa8, 0x01, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x00, 0x12, 0x04, 0xa9, 0x01, 0x04, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, + 0x06, 0x12, 0x04, 0xa9, 0x01, 0x04, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xa9, 0x01, 0x0f, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xa9, 0x01, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x04, 0xaa, + 0x01, 0x04, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x06, 0x12, 0x04, 0xaa, 0x01, + 0x04, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0xaa, 0x01, 0x11, + 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x04, 0xaa, 0x01, 0x1c, 0x1d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x04, 0xab, 0x01, 0x04, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, 0x12, 0x04, 0xab, 0x01, 0x04, 0x0b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x04, 0xab, 0x01, 0x0c, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x04, 0xab, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x06, 0x02, 0x03, 0x12, 0x06, 0xac, 0x01, 0x08, 0xaf, 0x01, 0x09, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x03, 0x05, 0x12, 0x04, 0xac, 0x01, 0x08, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, + 0x02, 0x03, 0x01, 0x12, 0x04, 0xac, 0x01, 0x0e, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x03, 0x03, 0x12, 0x04, 0xac, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x06, 0x03, 0x03, + 0x12, 0x06, 0xac, 0x01, 0x08, 0xaf, 0x01, 0x09, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x03, 0x03, + 0x01, 0x12, 0x04, 0xac, 0x01, 0x0e, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x06, + 0x12, 0x04, 0xac, 0x01, 0x0e, 0x17, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, 0x03, 0x03, 0x02, 0x00, + 0x12, 0x04, 0xad, 0x01, 0x10, 0x2c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x03, 0x02, 0x00, + 0x04, 0x12, 0x04, 0xad, 0x01, 0x10, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x03, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xad, 0x01, 0x19, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, 0x03, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xad, 0x01, 0x20, 0x27, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, 0x03, + 0x03, 0x02, 0x00, 0x03, 0x12, 0x04, 0xad, 0x01, 0x2a, 0x2b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x06, + 0x03, 0x03, 0x02, 0x01, 0x12, 0x04, 0xae, 0x01, 0x10, 0x2c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x06, + 0x03, 0x03, 0x02, 0x01, 0x04, 0x12, 0x04, 0xae, 0x01, 0x10, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x06, 0x03, 0x03, 0x02, 0x01, 0x05, 0x12, 0x04, 0xae, 0x01, 0x19, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x06, 0x03, 0x03, 0x02, 0x01, 0x01, 0x12, 0x04, 0xae, 0x01, 0x20, 0x27, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x06, 0x03, 0x03, 0x02, 0x01, 0x03, 0x12, 0x04, 0xae, 0x01, 0x2a, 0x2b, 0x0a, 0x0b, + 0x0a, 0x01, 0x07, 0x12, 0x06, 0xb3, 0x01, 0x00, 0xb5, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x02, 0x07, + 0x06, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x06, 0x02, 0x12, 0x04, + 0xb3, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x06, 0x04, 0x12, 0x04, 0xb4, 0x01, 0x02, + 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x06, 0x06, 0x12, 0x04, 0xb4, 0x01, 0x0b, 0x0f, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x06, 0x01, 0x12, 0x04, 0xb4, 0x01, 0x10, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x06, 0x03, 0x12, 0x04, 0xb4, 0x01, 0x18, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, + 0xb7, 0x01, 0x00, 0xbd, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0xb7, + 0x01, 0x08, 0x17, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x06, 0xb8, 0x01, 0x04, + 0xbc, 0x01, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x04, 0x12, 0x04, 0xb8, 0x01, + 0x04, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x01, 0x0d, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x01, 0x14, 0x1c, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x01, 0x1f, 0x20, 0x0a, + 0x0f, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, 0x12, 0x06, 0xb9, 0x01, 0x06, 0xbc, 0x01, 0x09, + 0x0a, 0x12, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x00, 0x08, 0xd2, 0x09, 0x02, 0x12, 0x06, 0xb9, 0x01, + 0x07, 0xbc, 0x01, 0x08, 0x0a, 0x43, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xc1, 0x01, 0x00, 0xe5, + 0x01, 0x01, 0x32, 0x35, 0x20, 0x74, 0x65, 0x73, 0x74, 0x73, 0x20, 0x63, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x64, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, + 0x12, 0x04, 0xc1, 0x01, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, + 0xc2, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc2, + 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc2, 0x01, + 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc2, 0x01, 0x16, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc2, 0x01, 0x1f, 0x20, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x08, 0x21, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x04, 0x12, 0x04, 0xc3, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc3, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x16, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc3, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x02, 0x12, 0x04, 0xc4, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, + 0x04, 0x12, 0x04, 0xc4, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x05, + 0x12, 0x04, 0xc4, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xc4, 0x01, 0x16, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xc4, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x03, 0x12, 0x04, 0xc5, 0x01, + 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x04, 0x12, 0x04, 0xc5, 0x01, 0x08, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x05, 0x12, 0x04, 0xc5, 0x01, 0x11, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x16, 0x1a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc5, 0x01, 0x1d, 0x1e, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x08, 0x02, 0x04, 0x12, 0x04, 0xc6, 0x01, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x04, 0x04, 0x12, 0x04, 0xc6, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc6, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xc6, 0x01, 0x16, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xc6, 0x01, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x05, + 0x12, 0x04, 0xc7, 0x01, 0x08, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x04, 0x12, + 0x04, 0xc7, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x05, 0x12, 0x04, + 0xc7, 0x01, 0x11, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc7, + 0x01, 0x18, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc7, 0x01, + 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x06, 0x12, 0x04, 0xc8, 0x01, 0x08, 0x21, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x06, 0x04, 0x12, 0x04, 0xc8, 0x01, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x06, 0x05, 0x12, 0x04, 0xc8, 0x01, 0x11, 0x16, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x06, 0x01, 0x12, 0x04, 0xc8, 0x01, 0x17, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x06, 0x03, 0x12, 0x04, 0xc8, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x07, 0x12, 0x04, 0xc9, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x07, 0x04, 0x12, 0x04, 0xc9, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x07, 0x05, 0x12, 0x04, 0xc9, 0x01, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x07, + 0x01, 0x12, 0x04, 0xc9, 0x01, 0x17, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x07, 0x03, + 0x12, 0x04, 0xc9, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x08, 0x12, 0x04, + 0xca, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x08, 0x04, 0x12, 0x04, 0xca, + 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x08, 0x05, 0x12, 0x04, 0xca, 0x01, + 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x08, 0x01, 0x12, 0x04, 0xca, 0x01, 0x17, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x08, 0x03, 0x12, 0x04, 0xca, 0x01, 0x1f, 0x20, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x09, 0x12, 0x04, 0xcb, 0x01, 0x08, 0x24, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x09, 0x04, 0x12, 0x04, 0xcb, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x09, 0x05, 0x12, 0x04, 0xcb, 0x01, 0x11, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x09, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x18, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x09, 0x03, 0x12, 0x04, 0xcb, 0x01, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x0a, 0x12, 0x04, 0xcc, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0a, + 0x04, 0x12, 0x04, 0xcc, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0a, 0x05, + 0x12, 0x04, 0xcc, 0x01, 0x11, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0a, 0x01, 0x12, + 0x04, 0xcc, 0x01, 0x18, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0a, 0x03, 0x12, 0x04, + 0xcc, 0x01, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x0b, 0x12, 0x04, 0xcd, 0x01, + 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0b, 0x04, 0x12, 0x04, 0xcd, 0x01, 0x08, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0b, 0x05, 0x12, 0x04, 0xcd, 0x01, 0x11, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x18, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xcd, 0x01, 0x21, 0x23, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x08, 0x02, 0x0c, 0x12, 0x04, 0xce, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x0c, 0x04, 0x12, 0x04, 0xce, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x0c, 0x05, 0x12, 0x04, 0xce, 0x01, 0x11, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x0c, 0x01, 0x12, 0x04, 0xce, 0x01, 0x18, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x0c, 0x03, 0x12, 0x04, 0xce, 0x01, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x0d, + 0x12, 0x04, 0xcf, 0x01, 0x08, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0d, 0x04, 0x12, + 0x04, 0xcf, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0d, 0x05, 0x12, 0x04, + 0xcf, 0x01, 0x11, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xcf, + 0x01, 0x19, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xcf, 0x01, + 0x23, 0x25, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x0e, 0x12, 0x04, 0xd0, 0x01, 0x08, 0x26, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0e, 0x04, 0x12, 0x04, 0xd0, 0x01, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0e, 0x05, 0x12, 0x04, 0xd0, 0x01, 0x11, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xd0, 0x01, 0x19, 0x20, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xd0, 0x01, 0x23, 0x25, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x0f, 0x12, 0x04, 0xd1, 0x01, 0x08, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x0f, 0x04, 0x12, 0x04, 0xd1, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x0f, 0x05, 0x12, 0x04, 0xd1, 0x01, 0x11, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0f, + 0x01, 0x12, 0x04, 0xd1, 0x01, 0x1a, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x0f, 0x03, + 0x12, 0x04, 0xd1, 0x01, 0x25, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x10, 0x12, 0x04, + 0xd2, 0x01, 0x08, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x10, 0x04, 0x12, 0x04, 0xd2, + 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x10, 0x05, 0x12, 0x04, 0xd2, 0x01, + 0x11, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x10, 0x01, 0x12, 0x04, 0xd2, 0x01, 0x1a, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x10, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x25, 0x27, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x11, 0x12, 0x04, 0xd3, 0x01, 0x08, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x11, 0x04, 0x12, 0x04, 0xd3, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x11, 0x05, 0x12, 0x04, 0xd3, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x11, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x16, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x11, 0x03, 0x12, 0x04, 0xd3, 0x01, 0x1d, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x12, 0x12, 0x04, 0xd4, 0x01, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x12, + 0x04, 0x12, 0x04, 0xd4, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x12, 0x05, + 0x12, 0x04, 0xd4, 0x01, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x12, 0x01, 0x12, + 0x04, 0xd4, 0x01, 0x17, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x12, 0x03, 0x12, 0x04, + 0xd4, 0x01, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x13, 0x12, 0x04, 0xd5, 0x01, + 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x13, 0x04, 0x12, 0x04, 0xd5, 0x01, 0x08, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x13, 0x05, 0x12, 0x04, 0xd5, 0x01, 0x11, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x13, 0x01, 0x12, 0x04, 0xd5, 0x01, 0x18, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x13, 0x03, 0x12, 0x04, 0xd5, 0x01, 0x21, 0x23, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x08, 0x02, 0x14, 0x12, 0x04, 0xd6, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x14, 0x04, 0x12, 0x04, 0xd6, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x14, 0x05, 0x12, 0x04, 0xd6, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x14, 0x01, 0x12, 0x04, 0xd6, 0x01, 0x16, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x14, 0x03, 0x12, 0x04, 0xd6, 0x01, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x15, + 0x12, 0x04, 0xd7, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x15, 0x04, 0x12, + 0x04, 0xd7, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x15, 0x05, 0x12, 0x04, + 0xd7, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x15, 0x01, 0x12, 0x04, 0xd7, + 0x01, 0x16, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x15, 0x03, 0x12, 0x04, 0xd7, 0x01, + 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x16, 0x12, 0x04, 0xd8, 0x01, 0x08, 0x24, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x16, 0x04, 0x12, 0x04, 0xd8, 0x01, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x16, 0x05, 0x12, 0x04, 0xd8, 0x01, 0x11, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x16, 0x01, 0x12, 0x04, 0xd8, 0x01, 0x16, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x16, 0x03, 0x12, 0x04, 0xd8, 0x01, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x17, 0x12, 0x04, 0xd9, 0x01, 0x08, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x17, 0x04, 0x12, 0x04, 0xd9, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x17, 0x05, 0x12, 0x04, 0xd9, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x17, + 0x01, 0x12, 0x04, 0xd9, 0x01, 0x16, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x17, 0x03, + 0x12, 0x04, 0xd9, 0x01, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x18, 0x12, 0x04, + 0xda, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x18, 0x04, 0x12, 0x04, 0xda, + 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x18, 0x05, 0x12, 0x04, 0xda, 0x01, + 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x18, 0x01, 0x12, 0x04, 0xda, 0x01, 0x16, + 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x18, 0x03, 0x12, 0x04, 0xda, 0x01, 0x1d, 0x1f, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x19, 0x12, 0x04, 0xdb, 0x01, 0x08, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x19, 0x04, 0x12, 0x04, 0xdb, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x19, 0x05, 0x12, 0x04, 0xdb, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x19, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x16, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x19, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x1a, 0x12, 0x04, 0xdc, 0x01, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1a, + 0x04, 0x12, 0x04, 0xdc, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1a, 0x05, + 0x12, 0x04, 0xdc, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1a, 0x01, 0x12, + 0x04, 0xdc, 0x01, 0x16, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1a, 0x03, 0x12, 0x04, + 0xdc, 0x01, 0x1c, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x1b, 0x12, 0x04, 0xdd, 0x01, + 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1b, 0x04, 0x12, 0x04, 0xdd, 0x01, 0x08, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1b, 0x05, 0x12, 0x04, 0xdd, 0x01, 0x11, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1b, 0x01, 0x12, 0x04, 0xdd, 0x01, 0x16, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1b, 0x03, 0x12, 0x04, 0xdd, 0x01, 0x1f, 0x21, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x08, 0x02, 0x1c, 0x12, 0x04, 0xde, 0x01, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x1c, 0x04, 0x12, 0x04, 0xde, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x1c, 0x05, 0x12, 0x04, 0xde, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x1c, 0x01, 0x12, 0x04, 0xde, 0x01, 0x16, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x1c, 0x03, 0x12, 0x04, 0xde, 0x01, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x1d, + 0x12, 0x04, 0xdf, 0x01, 0x08, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1d, 0x04, 0x12, + 0x04, 0xdf, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1d, 0x05, 0x12, 0x04, + 0xdf, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1d, 0x01, 0x12, 0x04, 0xdf, + 0x01, 0x16, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1d, 0x03, 0x12, 0x04, 0xdf, 0x01, + 0x23, 0x25, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x1e, 0x12, 0x04, 0xe0, 0x01, 0x08, 0x24, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1e, 0x04, 0x12, 0x04, 0xe0, 0x01, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1e, 0x05, 0x12, 0x04, 0xe0, 0x01, 0x11, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1e, 0x01, 0x12, 0x04, 0xe0, 0x01, 0x16, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x1e, 0x03, 0x12, 0x04, 0xe0, 0x01, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x1f, 0x12, 0x04, 0xe1, 0x01, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x1f, 0x04, 0x12, 0x04, 0xe1, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x1f, 0x05, 0x12, 0x04, 0xe1, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1f, + 0x01, 0x12, 0x04, 0xe1, 0x01, 0x16, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x1f, 0x03, + 0x12, 0x04, 0xe1, 0x01, 0x1b, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x20, 0x12, 0x04, + 0xe2, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x20, 0x04, 0x12, 0x04, 0xe2, + 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x20, 0x05, 0x12, 0x04, 0xe2, 0x01, + 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x20, 0x01, 0x12, 0x04, 0xe2, 0x01, 0x17, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x20, 0x03, 0x12, 0x04, 0xe2, 0x01, 0x1e, 0x20, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x21, 0x12, 0x04, 0xe3, 0x01, 0x08, 0x22, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x21, 0x04, 0x12, 0x04, 0xe3, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x21, 0x05, 0x12, 0x04, 0xe3, 0x01, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x21, 0x01, 0x12, 0x04, 0xe3, 0x01, 0x17, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x21, 0x03, 0x12, 0x04, 0xe3, 0x01, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x22, 0x12, 0x04, 0xe4, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x22, + 0x04, 0x12, 0x04, 0xe4, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x22, 0x05, + 0x12, 0x04, 0xe4, 0x01, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x22, 0x01, 0x12, + 0x04, 0xe4, 0x01, 0x17, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x22, 0x03, 0x12, 0x04, + 0xe4, 0x01, 0x21, 0x23, 0x0a, 0x0b, 0x0a, 0x01, 0x07, 0x12, 0x06, 0xe7, 0x01, 0x00, 0x8c, 0x02, + 0x01, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x07, 0x12, 0x04, 0xe8, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x07, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x07, + 0x04, 0x12, 0x04, 0xe8, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x07, 0x05, 0x12, 0x04, + 0xe8, 0x01, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x07, 0x01, 0x12, 0x04, 0xe8, 0x01, 0x16, + 0x1c, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x07, 0x03, 0x12, 0x04, 0xe8, 0x01, 0x1f, 0x24, 0x0a, 0x0a, + 0x0a, 0x02, 0x07, 0x08, 0x12, 0x04, 0xe9, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x08, + 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x08, 0x04, 0x12, 0x04, + 0xe9, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x08, 0x05, 0x12, 0x04, 0xe9, 0x01, 0x11, + 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x08, 0x01, 0x12, 0x04, 0xe9, 0x01, 0x16, 0x1c, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x08, 0x03, 0x12, 0x04, 0xe9, 0x01, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, + 0x09, 0x12, 0x04, 0xea, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x09, 0x02, 0x12, 0x04, + 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x09, 0x04, 0x12, 0x04, 0xea, 0x01, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x09, 0x05, 0x12, 0x04, 0xea, 0x01, 0x11, 0x15, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x09, 0x01, 0x12, 0x04, 0xea, 0x01, 0x16, 0x1c, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x09, 0x03, 0x12, 0x04, 0xea, 0x01, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x0a, 0x12, 0x04, + 0xeb, 0x01, 0x08, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0a, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, + 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0a, 0x04, 0x12, 0x04, 0xeb, 0x01, 0x08, 0x10, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x0a, 0x05, 0x12, 0x04, 0xeb, 0x01, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x0a, 0x01, 0x12, 0x04, 0xeb, 0x01, 0x16, 0x1a, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0a, 0x03, 0x12, + 0x04, 0xeb, 0x01, 0x1d, 0x22, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x0b, 0x12, 0x04, 0xec, 0x01, 0x08, + 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0b, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x0b, 0x04, 0x12, 0x04, 0xec, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x0b, 0x05, 0x12, 0x04, 0xec, 0x01, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0b, 0x01, 0x12, + 0x04, 0xec, 0x01, 0x16, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0b, 0x03, 0x12, 0x04, 0xec, 0x01, + 0x20, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x0c, 0x12, 0x04, 0xed, 0x01, 0x08, 0x27, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x0c, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x0c, 0x04, 0x12, 0x04, 0xed, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0c, 0x05, 0x12, + 0x04, 0xed, 0x01, 0x11, 0x17, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0c, 0x01, 0x12, 0x04, 0xed, 0x01, + 0x18, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0c, 0x03, 0x12, 0x04, 0xed, 0x01, 0x21, 0x26, 0x0a, + 0x0a, 0x0a, 0x02, 0x07, 0x0d, 0x12, 0x04, 0xee, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x0d, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0d, 0x04, 0x12, + 0x04, 0xee, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0d, 0x05, 0x12, 0x04, 0xee, 0x01, + 0x11, 0x16, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0d, 0x01, 0x12, 0x04, 0xee, 0x01, 0x17, 0x1c, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x0d, 0x03, 0x12, 0x04, 0xee, 0x01, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, + 0x07, 0x0e, 0x12, 0x04, 0xef, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0e, 0x02, 0x12, + 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0e, 0x04, 0x12, 0x04, 0xef, 0x01, + 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0e, 0x05, 0x12, 0x04, 0xef, 0x01, 0x11, 0x16, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x0e, 0x01, 0x12, 0x04, 0xef, 0x01, 0x17, 0x1c, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x0e, 0x03, 0x12, 0x04, 0xef, 0x01, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x0f, 0x12, + 0x04, 0xf0, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0f, 0x02, 0x12, 0x04, 0xe7, 0x01, + 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0f, 0x04, 0x12, 0x04, 0xf0, 0x01, 0x08, 0x10, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x0f, 0x05, 0x12, 0x04, 0xf0, 0x01, 0x11, 0x16, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x0f, 0x01, 0x12, 0x04, 0xf0, 0x01, 0x17, 0x1c, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x0f, 0x03, + 0x12, 0x04, 0xf0, 0x01, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x10, 0x12, 0x04, 0xf1, 0x01, + 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x10, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x10, 0x04, 0x12, 0x04, 0xf1, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x10, 0x05, 0x12, 0x04, 0xf1, 0x01, 0x11, 0x17, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x10, 0x01, + 0x12, 0x04, 0xf1, 0x01, 0x18, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x10, 0x03, 0x12, 0x04, 0xf1, + 0x01, 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x11, 0x12, 0x04, 0xf2, 0x01, 0x08, 0x27, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x11, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x11, 0x04, 0x12, 0x04, 0xf2, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x11, 0x05, + 0x12, 0x04, 0xf2, 0x01, 0x11, 0x17, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x11, 0x01, 0x12, 0x04, 0xf2, + 0x01, 0x18, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x11, 0x03, 0x12, 0x04, 0xf2, 0x01, 0x21, 0x26, + 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x12, 0x12, 0x04, 0xf3, 0x01, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x12, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x12, 0x04, + 0x12, 0x04, 0xf3, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x12, 0x05, 0x12, 0x04, 0xf3, + 0x01, 0x11, 0x17, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x12, 0x01, 0x12, 0x04, 0xf3, 0x01, 0x18, 0x1e, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x12, 0x03, 0x12, 0x04, 0xf3, 0x01, 0x21, 0x26, 0x0a, 0x0a, 0x0a, + 0x02, 0x07, 0x13, 0x12, 0x04, 0xf4, 0x01, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x13, 0x02, + 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x13, 0x04, 0x12, 0x04, 0xf4, + 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x13, 0x05, 0x12, 0x04, 0xf4, 0x01, 0x11, 0x17, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x13, 0x01, 0x12, 0x04, 0xf4, 0x01, 0x18, 0x1e, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x13, 0x03, 0x12, 0x04, 0xf4, 0x01, 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x14, + 0x12, 0x04, 0xf5, 0x01, 0x08, 0x29, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x14, 0x02, 0x12, 0x04, 0xe7, + 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x14, 0x04, 0x12, 0x04, 0xf5, 0x01, 0x08, 0x10, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x14, 0x05, 0x12, 0x04, 0xf5, 0x01, 0x11, 0x18, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x14, 0x01, 0x12, 0x04, 0xf5, 0x01, 0x19, 0x20, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x14, + 0x03, 0x12, 0x04, 0xf5, 0x01, 0x23, 0x28, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x15, 0x12, 0x04, 0xf6, + 0x01, 0x08, 0x29, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x15, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x15, 0x04, 0x12, 0x04, 0xf6, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x15, 0x05, 0x12, 0x04, 0xf6, 0x01, 0x11, 0x18, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x15, + 0x01, 0x12, 0x04, 0xf6, 0x01, 0x19, 0x20, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x15, 0x03, 0x12, 0x04, + 0xf6, 0x01, 0x23, 0x28, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x16, 0x12, 0x04, 0xf7, 0x01, 0x08, 0x2b, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x16, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x16, 0x04, 0x12, 0x04, 0xf7, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x16, + 0x05, 0x12, 0x04, 0xf7, 0x01, 0x11, 0x19, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x16, 0x01, 0x12, 0x04, + 0xf7, 0x01, 0x1a, 0x22, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x16, 0x03, 0x12, 0x04, 0xf7, 0x01, 0x25, + 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x17, 0x12, 0x04, 0xf8, 0x01, 0x08, 0x2b, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x17, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x17, + 0x04, 0x12, 0x04, 0xf8, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x17, 0x05, 0x12, 0x04, + 0xf8, 0x01, 0x11, 0x19, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x17, 0x01, 0x12, 0x04, 0xf8, 0x01, 0x1a, + 0x22, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x17, 0x03, 0x12, 0x04, 0xf8, 0x01, 0x25, 0x2a, 0x0a, 0x0a, + 0x0a, 0x02, 0x07, 0x18, 0x12, 0x04, 0xf9, 0x01, 0x08, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x18, + 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x18, 0x04, 0x12, 0x04, + 0xf9, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x18, 0x05, 0x12, 0x04, 0xf9, 0x01, 0x11, + 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x18, 0x01, 0x12, 0x04, 0xf9, 0x01, 0x16, 0x1a, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x18, 0x03, 0x12, 0x04, 0xf9, 0x01, 0x1d, 0x22, 0x0a, 0x0a, 0x0a, 0x02, 0x07, + 0x19, 0x12, 0x04, 0xfa, 0x01, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x19, 0x02, 0x12, 0x04, + 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x19, 0x04, 0x12, 0x04, 0xfa, 0x01, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x19, 0x05, 0x12, 0x04, 0xfa, 0x01, 0x11, 0x16, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x19, 0x01, 0x12, 0x04, 0xfa, 0x01, 0x17, 0x1c, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x19, 0x03, 0x12, 0x04, 0xfa, 0x01, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x1a, 0x12, 0x04, + 0xfb, 0x01, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1a, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, + 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1a, 0x04, 0x12, 0x04, 0xfb, 0x01, 0x08, 0x10, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x1a, 0x05, 0x12, 0x04, 0xfb, 0x01, 0x11, 0x17, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x1a, 0x01, 0x12, 0x04, 0xfb, 0x01, 0x18, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1a, 0x03, 0x12, + 0x04, 0xfb, 0x01, 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x1b, 0x12, 0x04, 0xfc, 0x01, 0x08, + 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1b, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x1b, 0x04, 0x12, 0x04, 0xfc, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x1b, 0x05, 0x12, 0x04, 0xfc, 0x01, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1b, 0x01, 0x12, + 0x04, 0xfc, 0x01, 0x16, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1b, 0x03, 0x12, 0x04, 0xfc, 0x01, + 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x1c, 0x12, 0x04, 0xfd, 0x01, 0x08, 0x27, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x1c, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x1c, 0x04, 0x12, 0x04, 0xfd, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1c, 0x05, 0x12, + 0x04, 0xfd, 0x01, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1c, 0x01, 0x12, 0x04, 0xfd, 0x01, + 0x16, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1c, 0x03, 0x12, 0x04, 0xfd, 0x01, 0x21, 0x26, 0x0a, + 0x0a, 0x0a, 0x02, 0x07, 0x1d, 0x12, 0x04, 0xfe, 0x01, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x1d, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1d, 0x04, 0x12, + 0x04, 0xfe, 0x01, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1d, 0x05, 0x12, 0x04, 0xfe, 0x01, + 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1d, 0x01, 0x12, 0x04, 0xfe, 0x01, 0x16, 0x1e, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x1d, 0x03, 0x12, 0x04, 0xfe, 0x01, 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, + 0x07, 0x1e, 0x12, 0x04, 0xff, 0x01, 0x08, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1e, 0x02, 0x12, + 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1e, 0x04, 0x12, 0x04, 0xff, 0x01, + 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1e, 0x05, 0x12, 0x04, 0xff, 0x01, 0x11, 0x15, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x1e, 0x01, 0x12, 0x04, 0xff, 0x01, 0x16, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x1e, 0x03, 0x12, 0x04, 0xff, 0x01, 0x20, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x1f, 0x12, + 0x04, 0x80, 0x02, 0x08, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1f, 0x02, 0x12, 0x04, 0xe7, 0x01, + 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1f, 0x04, 0x12, 0x04, 0x80, 0x02, 0x08, 0x10, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x1f, 0x05, 0x12, 0x04, 0x80, 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x1f, 0x01, 0x12, 0x04, 0x80, 0x02, 0x16, 0x1a, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x1f, 0x03, + 0x12, 0x04, 0x80, 0x02, 0x1d, 0x22, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x20, 0x12, 0x04, 0x81, 0x02, + 0x08, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x20, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x20, 0x04, 0x12, 0x04, 0x81, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x20, 0x05, 0x12, 0x04, 0x81, 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x20, 0x01, + 0x12, 0x04, 0x81, 0x02, 0x16, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x20, 0x03, 0x12, 0x04, 0x81, + 0x02, 0x20, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x21, 0x12, 0x04, 0x82, 0x02, 0x08, 0x22, 0x0a, + 0x0b, 0x0a, 0x03, 0x07, 0x21, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x21, 0x04, 0x12, 0x04, 0x82, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x21, 0x05, + 0x12, 0x04, 0x82, 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x21, 0x01, 0x12, 0x04, 0x82, + 0x02, 0x16, 0x19, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x21, 0x03, 0x12, 0x04, 0x82, 0x02, 0x1c, 0x21, + 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x22, 0x12, 0x04, 0x83, 0x02, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, + 0x07, 0x22, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x22, 0x04, + 0x12, 0x04, 0x83, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x22, 0x05, 0x12, 0x04, 0x83, + 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x22, 0x01, 0x12, 0x04, 0x83, 0x02, 0x16, 0x1c, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x22, 0x03, 0x12, 0x04, 0x83, 0x02, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, + 0x02, 0x07, 0x23, 0x12, 0x04, 0x84, 0x02, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x23, 0x02, + 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x23, 0x04, 0x12, 0x04, 0x84, + 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x23, 0x05, 0x12, 0x04, 0x84, 0x02, 0x11, 0x15, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x23, 0x01, 0x12, 0x04, 0x84, 0x02, 0x16, 0x1c, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x23, 0x03, 0x12, 0x04, 0x84, 0x02, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x24, + 0x12, 0x04, 0x85, 0x02, 0x08, 0x29, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x24, 0x02, 0x12, 0x04, 0xe7, + 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x24, 0x04, 0x12, 0x04, 0x85, 0x02, 0x08, 0x10, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x24, 0x05, 0x12, 0x04, 0x85, 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x24, 0x01, 0x12, 0x04, 0x85, 0x02, 0x16, 0x20, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x24, + 0x03, 0x12, 0x04, 0x85, 0x02, 0x23, 0x28, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x25, 0x12, 0x04, 0x86, + 0x02, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x25, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x25, 0x04, 0x12, 0x04, 0x86, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x25, 0x05, 0x12, 0x04, 0x86, 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x25, + 0x01, 0x12, 0x04, 0x86, 0x02, 0x16, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x25, 0x03, 0x12, 0x04, + 0x86, 0x02, 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x26, 0x12, 0x04, 0x87, 0x02, 0x08, 0x21, + 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x26, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x26, 0x04, 0x12, 0x04, 0x87, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x26, + 0x05, 0x12, 0x04, 0x87, 0x02, 0x11, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x26, 0x01, 0x12, 0x04, + 0x87, 0x02, 0x16, 0x18, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x26, 0x03, 0x12, 0x04, 0x87, 0x02, 0x1b, + 0x20, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x27, 0x12, 0x04, 0x88, 0x02, 0x08, 0x24, 0x0a, 0x0b, 0x0a, + 0x03, 0x07, 0x27, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x27, + 0x04, 0x12, 0x04, 0x88, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x27, 0x05, 0x12, 0x04, + 0x88, 0x02, 0x11, 0x16, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x27, 0x01, 0x12, 0x04, 0x88, 0x02, 0x17, + 0x1b, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x27, 0x03, 0x12, 0x04, 0x88, 0x02, 0x1e, 0x23, 0x0a, 0x0a, + 0x0a, 0x02, 0x07, 0x28, 0x12, 0x04, 0x89, 0x02, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x28, + 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x28, 0x04, 0x12, 0x04, + 0x89, 0x02, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x28, 0x05, 0x12, 0x04, 0x89, 0x02, 0x11, + 0x16, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x28, 0x01, 0x12, 0x04, 0x89, 0x02, 0x17, 0x1c, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x28, 0x03, 0x12, 0x04, 0x89, 0x02, 0x1f, 0x24, 0x0a, 0x0a, 0x0a, 0x02, 0x07, + 0x29, 0x12, 0x04, 0x8a, 0x02, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x29, 0x02, 0x12, 0x04, + 0xe7, 0x01, 0x07, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x29, 0x04, 0x12, 0x04, 0x8a, 0x02, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x29, 0x05, 0x12, 0x04, 0x8a, 0x02, 0x11, 0x16, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x29, 0x01, 0x12, 0x04, 0x8a, 0x02, 0x17, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x29, 0x03, 0x12, 0x04, 0x8a, 0x02, 0x21, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x07, 0x2a, 0x12, 0x04, + 0x8b, 0x02, 0x08, 0x30, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x2a, 0x02, 0x12, 0x04, 0xe7, 0x01, 0x07, + 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x2a, 0x04, 0x12, 0x04, 0x8b, 0x02, 0x08, 0x10, 0x0a, 0x0b, + 0x0a, 0x03, 0x07, 0x2a, 0x06, 0x12, 0x04, 0x8b, 0x02, 0x11, 0x22, 0x0a, 0x0b, 0x0a, 0x03, 0x07, + 0x2a, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x23, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x07, 0x2a, 0x03, 0x12, + 0x04, 0x8b, 0x02, 0x2a, 0x2f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0x8e, 0x02, 0x00, + 0xa7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x08, 0x1f, + 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x06, 0x8f, 0x02, 0x08, 0x99, 0x02, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8f, 0x02, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8f, 0x02, 0x11, 0x17, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x02, 0x18, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8f, 0x02, 0x1d, 0x1e, 0x0a, 0x0f, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x00, 0x08, 0x12, 0x06, 0x8f, 0x02, 0x1f, 0x99, 0x02, 0x09, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa1, 0x9c, 0x01, 0x12, 0x04, 0x90, 0x02, 0x10, 0x1f, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa2, 0x9c, 0x01, 0x12, 0x04, 0x90, 0x02, 0x21, + 0x30, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa3, 0x9c, 0x01, 0x12, 0x04, 0x90, + 0x02, 0x32, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa4, 0x9c, 0x01, 0x12, + 0x04, 0x90, 0x02, 0x43, 0x50, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa5, 0x9c, + 0x01, 0x12, 0x04, 0x90, 0x02, 0x52, 0x62, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, + 0xa6, 0x9c, 0x01, 0x12, 0x04, 0x91, 0x02, 0x10, 0x23, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, + 0x00, 0x08, 0xa7, 0x9c, 0x01, 0x12, 0x04, 0x91, 0x02, 0x25, 0x36, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x09, 0x02, 0x00, 0x08, 0xb2, 0x9c, 0x01, 0x12, 0x04, 0x91, 0x02, 0x38, 0x45, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xb3, 0x9c, 0x01, 0x12, 0x04, 0x92, 0x02, 0x10, 0x1e, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xb4, 0x9c, 0x01, 0x12, 0x04, 0x92, 0x02, 0x20, + 0x32, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa8, 0x9c, 0x01, 0x12, 0x04, 0x93, + 0x02, 0x10, 0x1c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xa9, 0x9c, 0x01, 0x12, + 0x04, 0x93, 0x02, 0x1e, 0x2a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xaa, 0x9c, + 0x01, 0x12, 0x04, 0x93, 0x02, 0x2c, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, + 0xab, 0x9c, 0x01, 0x12, 0x04, 0x93, 0x02, 0x3d, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, + 0x00, 0x08, 0xac, 0x9c, 0x01, 0x12, 0x04, 0x93, 0x02, 0x4e, 0x5c, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x09, 0x02, 0x00, 0x08, 0xad, 0x9c, 0x01, 0x12, 0x04, 0x93, 0x02, 0x5e, 0x6c, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xae, 0x9c, 0x01, 0x12, 0x04, 0x94, 0x02, 0x10, 0x20, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xaf, 0x9c, 0x01, 0x12, 0x04, 0x94, 0x02, 0x22, + 0x32, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xb0, 0x9c, 0x01, 0x12, 0x04, 0x94, + 0x02, 0x34, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xb1, 0x9c, 0x01, 0x12, + 0x04, 0x94, 0x02, 0x48, 0x5a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xb5, 0x9c, + 0x01, 0x12, 0x04, 0x95, 0x02, 0x10, 0x21, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, + 0xb6, 0x9c, 0x01, 0x12, 0x04, 0x95, 0x02, 0x23, 0x34, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, + 0x00, 0x08, 0xb7, 0x9c, 0x01, 0x12, 0x04, 0x95, 0x02, 0x36, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x09, 0x02, 0x00, 0x08, 0xb8, 0x9c, 0x01, 0x12, 0x04, 0x96, 0x02, 0x10, 0x20, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xb9, 0x9c, 0x01, 0x12, 0x04, 0x96, 0x02, 0x22, 0x2f, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xba, 0x9c, 0x01, 0x12, 0x04, 0x96, 0x02, 0x31, + 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xbb, 0x9c, 0x01, 0x12, 0x04, 0x96, + 0x02, 0x43, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xbc, 0x9c, 0x01, 0x12, + 0x04, 0x97, 0x02, 0x10, 0x1f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xbd, 0x9c, + 0x01, 0x12, 0x04, 0x97, 0x02, 0x21, 0x30, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, + 0xbe, 0x9c, 0x01, 0x12, 0x04, 0x97, 0x02, 0x32, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, + 0x00, 0x08, 0xbf, 0x9c, 0x01, 0x12, 0x04, 0x97, 0x02, 0x47, 0x58, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x09, 0x02, 0x00, 0x08, 0xc0, 0x9c, 0x01, 0x12, 0x04, 0x98, 0x02, 0x10, 0x1b, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xc1, 0x9c, 0x01, 0x12, 0x04, 0x98, 0x02, 0x1d, 0x29, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xc2, 0x9c, 0x01, 0x12, 0x04, 0x98, 0x02, 0x2b, + 0x39, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0xc3, 0x9c, 0x01, 0x12, 0x04, 0x98, + 0x02, 0x3b, 0x4a, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x01, 0x12, 0x06, 0x9a, 0x02, 0x08, + 0xa6, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x04, 0x12, 0x04, 0x9a, 0x02, + 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x02, 0x11, + 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x02, 0x18, 0x1c, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x02, 0x1f, 0x20, 0x0a, + 0x0f, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x08, 0x12, 0x06, 0x9a, 0x02, 0x21, 0xa6, 0x02, 0x09, + 0x0a, 0x12, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x01, 0x08, 0xc4, 0x9c, 0x01, 0x12, 0x06, 0x9b, 0x02, + 0x10, 0xa5, 0x02, 0x11, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_complex, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_complex.proto", &si) +} diff --git a/internal/testprotos/desc_test_defaults.pb.srcinfo.go b/internal/testprotos/desc_test_defaults.pb.srcinfo.go new file mode 100644 index 00000000..c802b3bb --- /dev/null +++ b/internal/testprotos/desc_test_defaults.pb.srcinfo.go @@ -0,0 +1,460 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_defaults.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_defaults = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x7b, 0x01, 0x0a, 0x09, 0x0a, 0x01, 0x0c, 0x12, 0x04, 0x00, + 0x00, 0x01, 0x0d, 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x03, 0x00, 0x05, 0x2a, 0x0a, 0x0a, + 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x04, 0x03, 0x00, 0x05, 0x2a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, + 0x03, 0x07, 0x00, 0x13, 0x0a, 0x16, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x46, 0x01, + 0x22, 0x0a, 0x2f, 0x2f, 0x20, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x73, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x00, 0x01, 0x12, 0x03, 0x09, 0x08, 0x19, 0x0a, 0x1d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, + 0x12, 0x03, 0x0d, 0x08, 0x34, 0x1a, 0x10, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, + 0x12, 0x03, 0x0d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, + 0x0d, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0d, 0x17, + 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0d, 0x1e, 0x1f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x0d, 0x20, 0x33, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x07, 0x12, 0x03, 0x0d, 0x2b, 0x32, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x01, 0x12, 0x03, 0x0e, 0x08, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x04, 0x12, 0x03, 0x0e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, + 0x03, 0x0e, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0e, + 0x18, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0e, 0x1f, 0x20, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x0e, 0x21, 0x34, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x07, 0x12, 0x03, 0x0e, 0x2c, 0x33, 0x0a, 0x20, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x11, 0x08, 0x3c, 0x1a, 0x13, 0x20, 0x65, 0x78, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x11, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x11, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x02, 0x01, 0x12, 0x03, 0x11, 0x17, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, + 0x03, 0x12, 0x03, 0x11, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x08, 0x12, + 0x03, 0x11, 0x21, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x07, 0x12, 0x03, 0x11, + 0x2c, 0x3a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x12, 0x08, 0x3d, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x12, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x12, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x12, 0x18, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x12, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, + 0x12, 0x03, 0x12, 0x22, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x07, 0x12, 0x03, + 0x12, 0x2d, 0x3b, 0x0a, 0x31, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x15, 0x08, 0x33, + 0x1a, 0x24, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x3a, 0x20, 0x69, 0x6e, 0x66, 0x2c, 0x20, 0x2d, 0x69, 0x6e, 0x66, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6e, 0x61, 0x6e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, + 0x03, 0x15, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x15, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x15, 0x17, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x15, 0x21, 0x22, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x03, 0x15, 0x23, 0x32, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x04, 0x07, 0x12, 0x03, 0x15, 0x2e, 0x31, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x05, 0x12, 0x03, 0x16, 0x08, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, + 0x12, 0x03, 0x16, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, + 0x16, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x16, 0x18, + 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x16, 0x22, 0x23, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x08, 0x12, 0x03, 0x16, 0x24, 0x33, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x07, 0x12, 0x03, 0x16, 0x2f, 0x32, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x06, 0x12, 0x03, 0x17, 0x08, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x04, 0x12, 0x03, 0x17, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, + 0x03, 0x17, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x17, + 0x17, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x17, 0x24, 0x25, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, 0x12, 0x03, 0x17, 0x26, 0x36, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x07, 0x12, 0x03, 0x17, 0x31, 0x35, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x18, 0x08, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x04, 0x12, 0x03, 0x18, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, + 0x12, 0x03, 0x18, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, + 0x18, 0x18, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x18, 0x25, + 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x08, 0x12, 0x03, 0x18, 0x27, 0x37, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x07, 0x12, 0x03, 0x18, 0x32, 0x36, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x19, 0x08, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x08, 0x04, 0x12, 0x03, 0x19, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, + 0x05, 0x12, 0x03, 0x19, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, + 0x03, 0x19, 0x17, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x19, + 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x08, 0x12, 0x03, 0x19, 0x23, 0x32, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x07, 0x12, 0x03, 0x19, 0x2e, 0x31, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x1a, 0x08, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x09, 0x04, 0x12, 0x03, 0x1a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x09, 0x05, 0x12, 0x03, 0x1a, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, + 0x12, 0x03, 0x1a, 0x18, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, + 0x1a, 0x22, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x08, 0x12, 0x03, 0x1a, 0x25, + 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x07, 0x12, 0x03, 0x1a, 0x30, 0x33, 0x0a, + 0x19, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x1e, 0x08, 0x30, 0x32, 0x0c, 0x2f, 0x2f, + 0x20, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0a, 0x04, 0x12, 0x03, 0x1e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x05, 0x12, 0x03, 0x1e, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, + 0x03, 0x1e, 0x16, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x1e, + 0x1c, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x12, 0x03, 0x1e, 0x1f, 0x2f, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x07, 0x12, 0x03, 0x1e, 0x2a, 0x2e, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x1f, 0x08, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x1f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0b, 0x05, 0x12, 0x03, 0x1f, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, + 0x12, 0x03, 0x1f, 0x16, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, + 0x1f, 0x1c, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x08, 0x12, 0x03, 0x1f, 0x1f, + 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x07, 0x12, 0x03, 0x1f, 0x2a, 0x2f, 0x0a, + 0x1f, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x24, 0x08, 0x32, 0x1a, 0x08, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x0a, 0x32, 0x08, 0x2f, 0x2f, 0x20, 0x49, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x03, 0x24, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x24, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x24, 0x17, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0c, 0x03, 0x12, 0x03, 0x24, 0x1d, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, + 0x08, 0x12, 0x03, 0x24, 0x20, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x07, 0x12, + 0x03, 0x24, 0x2b, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x25, 0x08, + 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x25, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x05, 0x12, 0x03, 0x25, 0x11, 0x16, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x25, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x25, 0x1e, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0d, 0x08, 0x12, 0x03, 0x25, 0x21, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x07, + 0x12, 0x03, 0x25, 0x2c, 0x32, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x03, 0x26, + 0x08, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x26, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x05, 0x12, 0x03, 0x26, 0x11, 0x16, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x26, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0e, 0x03, 0x12, 0x03, 0x26, 0x1e, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0e, 0x08, 0x12, 0x03, 0x26, 0x21, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, + 0x07, 0x12, 0x03, 0x26, 0x2c, 0x33, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, 0x12, 0x03, + 0x27, 0x08, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x03, 0x27, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x05, 0x12, 0x03, 0x27, 0x11, 0x16, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x27, 0x17, 0x1c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x27, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0f, 0x08, 0x12, 0x03, 0x27, 0x22, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0f, 0x07, 0x12, 0x03, 0x27, 0x2d, 0x35, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x10, 0x12, + 0x03, 0x28, 0x08, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x04, 0x12, 0x03, 0x28, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x05, 0x12, 0x03, 0x28, 0x11, 0x16, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x01, 0x12, 0x03, 0x28, 0x17, 0x1a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x03, 0x12, 0x03, 0x28, 0x1d, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x10, 0x08, 0x12, 0x03, 0x28, 0x20, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x10, 0x07, 0x12, 0x03, 0x28, 0x2b, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x11, + 0x12, 0x03, 0x29, 0x08, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x04, 0x12, 0x03, + 0x29, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x05, 0x12, 0x03, 0x29, 0x11, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x01, 0x12, 0x03, 0x29, 0x17, 0x1b, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x03, 0x12, 0x03, 0x29, 0x1e, 0x20, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x11, 0x08, 0x12, 0x03, 0x29, 0x21, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x11, 0x07, 0x12, 0x03, 0x29, 0x2c, 0x32, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x12, 0x12, 0x03, 0x2a, 0x08, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x04, 0x12, + 0x03, 0x2a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x05, 0x12, 0x03, 0x2a, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x01, 0x12, 0x03, 0x2a, 0x17, 0x1b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x03, 0x12, 0x03, 0x2a, 0x1e, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x08, 0x12, 0x03, 0x2a, 0x21, 0x34, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x12, 0x07, 0x12, 0x03, 0x2a, 0x2c, 0x33, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x13, 0x12, 0x03, 0x2b, 0x08, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x04, + 0x12, 0x03, 0x2b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x05, 0x12, 0x03, + 0x2b, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x01, 0x12, 0x03, 0x2b, 0x17, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x03, 0x12, 0x03, 0x2b, 0x1f, 0x21, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x08, 0x12, 0x03, 0x2b, 0x22, 0x36, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x13, 0x07, 0x12, 0x03, 0x2b, 0x2d, 0x35, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x14, 0x12, 0x03, 0x2c, 0x08, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, + 0x04, 0x12, 0x03, 0x2c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x05, 0x12, + 0x03, 0x2c, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x01, 0x12, 0x03, 0x2c, + 0x18, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x03, 0x12, 0x03, 0x2c, 0x1f, 0x21, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x08, 0x12, 0x03, 0x2c, 0x22, 0x33, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x07, 0x12, 0x03, 0x2c, 0x2d, 0x32, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x15, 0x12, 0x03, 0x2d, 0x08, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x15, 0x04, 0x12, 0x03, 0x2d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x05, + 0x12, 0x03, 0x2d, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x01, 0x12, 0x03, + 0x2d, 0x18, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x03, 0x12, 0x03, 0x2d, 0x20, + 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x08, 0x12, 0x03, 0x2d, 0x23, 0x35, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x07, 0x12, 0x03, 0x2d, 0x2e, 0x34, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x16, 0x12, 0x03, 0x2e, 0x08, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x16, 0x04, 0x12, 0x03, 0x2e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, + 0x05, 0x12, 0x03, 0x2e, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x01, 0x12, + 0x03, 0x2e, 0x18, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x03, 0x12, 0x03, 0x2e, + 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x08, 0x12, 0x03, 0x2e, 0x23, 0x36, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x07, 0x12, 0x03, 0x2e, 0x2e, 0x35, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x17, 0x12, 0x03, 0x2f, 0x08, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x17, 0x04, 0x12, 0x03, 0x2f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x17, 0x05, 0x12, 0x03, 0x2f, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x17, 0x01, + 0x12, 0x03, 0x2f, 0x18, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x17, 0x03, 0x12, 0x03, + 0x2f, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x17, 0x08, 0x12, 0x03, 0x2f, 0x24, + 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x17, 0x07, 0x12, 0x03, 0x2f, 0x2f, 0x37, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x18, 0x12, 0x03, 0x30, 0x08, 0x34, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x18, 0x04, 0x12, 0x03, 0x30, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x18, 0x05, 0x12, 0x03, 0x30, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x18, + 0x01, 0x12, 0x03, 0x30, 0x18, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x18, 0x03, 0x12, + 0x03, 0x30, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x18, 0x08, 0x12, 0x03, 0x30, + 0x22, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x18, 0x07, 0x12, 0x03, 0x30, 0x2d, 0x32, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x19, 0x12, 0x03, 0x31, 0x08, 0x36, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x19, 0x04, 0x12, 0x03, 0x31, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x19, 0x05, 0x12, 0x03, 0x31, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x19, 0x01, 0x12, 0x03, 0x31, 0x18, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x19, 0x03, + 0x12, 0x03, 0x31, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x19, 0x08, 0x12, 0x03, + 0x31, 0x23, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x19, 0x07, 0x12, 0x03, 0x31, 0x2e, + 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x1a, 0x12, 0x03, 0x32, 0x08, 0x37, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1a, 0x04, 0x12, 0x03, 0x32, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x1a, 0x05, 0x12, 0x03, 0x32, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x1a, 0x01, 0x12, 0x03, 0x32, 0x18, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1a, + 0x03, 0x12, 0x03, 0x32, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1a, 0x08, 0x12, + 0x03, 0x32, 0x23, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1a, 0x07, 0x12, 0x03, 0x32, + 0x2e, 0x35, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x1b, 0x12, 0x03, 0x33, 0x08, 0x39, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1b, 0x04, 0x12, 0x03, 0x33, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x1b, 0x05, 0x12, 0x03, 0x33, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x1b, 0x01, 0x12, 0x03, 0x33, 0x18, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x1b, 0x03, 0x12, 0x03, 0x33, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1b, 0x08, + 0x12, 0x03, 0x33, 0x24, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1b, 0x07, 0x12, 0x03, + 0x33, 0x2f, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x1c, 0x12, 0x03, 0x34, 0x08, 0x36, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1c, 0x04, 0x12, 0x03, 0x34, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1c, 0x05, 0x12, 0x03, 0x34, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x1c, 0x01, 0x12, 0x03, 0x34, 0x1a, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x1c, 0x03, 0x12, 0x03, 0x34, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1c, + 0x08, 0x12, 0x03, 0x34, 0x24, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1c, 0x07, 0x12, + 0x03, 0x34, 0x2f, 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x1d, 0x12, 0x03, 0x35, 0x08, + 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1d, 0x04, 0x12, 0x03, 0x35, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1d, 0x05, 0x12, 0x03, 0x35, 0x11, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x1d, 0x01, 0x12, 0x03, 0x35, 0x1a, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x1d, 0x03, 0x12, 0x03, 0x35, 0x22, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x1d, 0x08, 0x12, 0x03, 0x35, 0x25, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1d, 0x07, + 0x12, 0x03, 0x35, 0x30, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x1e, 0x12, 0x03, 0x36, + 0x08, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1e, 0x04, 0x12, 0x03, 0x36, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1e, 0x05, 0x12, 0x03, 0x36, 0x11, 0x19, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1e, 0x01, 0x12, 0x03, 0x36, 0x1a, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x1e, 0x03, 0x12, 0x03, 0x36, 0x22, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x1e, 0x08, 0x12, 0x03, 0x36, 0x25, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1e, + 0x07, 0x12, 0x03, 0x36, 0x30, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x1f, 0x12, 0x03, + 0x37, 0x08, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1f, 0x04, 0x12, 0x03, 0x37, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1f, 0x05, 0x12, 0x03, 0x37, 0x11, 0x19, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x1f, 0x01, 0x12, 0x03, 0x37, 0x1a, 0x20, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x1f, 0x03, 0x12, 0x03, 0x37, 0x23, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x1f, 0x08, 0x12, 0x03, 0x37, 0x26, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x1f, 0x07, 0x12, 0x03, 0x37, 0x31, 0x39, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x20, 0x12, + 0x03, 0x38, 0x08, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x20, 0x04, 0x12, 0x03, 0x38, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x20, 0x05, 0x12, 0x03, 0x38, 0x11, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x20, 0x01, 0x12, 0x03, 0x38, 0x1a, 0x1e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x20, 0x03, 0x12, 0x03, 0x38, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x20, 0x08, 0x12, 0x03, 0x38, 0x24, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x20, 0x07, 0x12, 0x03, 0x38, 0x2f, 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x21, + 0x12, 0x03, 0x39, 0x08, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x21, 0x04, 0x12, 0x03, + 0x39, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x21, 0x05, 0x12, 0x03, 0x39, 0x11, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x21, 0x01, 0x12, 0x03, 0x39, 0x1a, 0x1f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x21, 0x03, 0x12, 0x03, 0x39, 0x22, 0x24, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x21, 0x08, 0x12, 0x03, 0x39, 0x25, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x21, 0x07, 0x12, 0x03, 0x39, 0x30, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x22, 0x12, 0x03, 0x3a, 0x08, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x22, 0x04, 0x12, + 0x03, 0x3a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x22, 0x05, 0x12, 0x03, 0x3a, + 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x22, 0x01, 0x12, 0x03, 0x3a, 0x1a, 0x1f, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x22, 0x03, 0x12, 0x03, 0x3a, 0x22, 0x24, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x22, 0x08, 0x12, 0x03, 0x3a, 0x25, 0x38, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x22, 0x07, 0x12, 0x03, 0x3a, 0x30, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x23, 0x12, 0x03, 0x3b, 0x08, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x23, 0x04, + 0x12, 0x03, 0x3b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x23, 0x05, 0x12, 0x03, + 0x3b, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x23, 0x01, 0x12, 0x03, 0x3b, 0x1a, + 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x23, 0x03, 0x12, 0x03, 0x3b, 0x23, 0x25, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x23, 0x08, 0x12, 0x03, 0x3b, 0x26, 0x3a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x23, 0x07, 0x12, 0x03, 0x3b, 0x31, 0x39, 0x0a, 0x17, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x24, 0x12, 0x03, 0x3e, 0x08, 0x33, 0x1a, 0x0a, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x24, 0x04, 0x12, 0x03, 0x3e, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x24, 0x05, 0x12, 0x03, 0x3e, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x24, 0x01, 0x12, 0x03, 0x3e, 0x18, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x24, 0x03, 0x12, 0x03, 0x3e, 0x1e, 0x20, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x24, 0x08, 0x12, 0x03, 0x3e, 0x21, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x24, 0x07, 0x12, 0x03, 0x3e, 0x2c, 0x31, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x25, + 0x12, 0x03, 0x3f, 0x08, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x25, 0x04, 0x12, 0x03, + 0x3f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x25, 0x05, 0x12, 0x03, 0x3f, 0x11, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x25, 0x01, 0x12, 0x03, 0x3f, 0x18, 0x1c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x25, 0x03, 0x12, 0x03, 0x3f, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x25, 0x08, 0x12, 0x03, 0x3f, 0x22, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x25, 0x07, 0x12, 0x03, 0x3f, 0x2d, 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x26, 0x12, 0x03, 0x40, 0x08, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x26, 0x04, 0x12, + 0x03, 0x40, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x26, 0x05, 0x12, 0x03, 0x40, + 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x26, 0x01, 0x12, 0x03, 0x40, 0x18, 0x1b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x26, 0x03, 0x12, 0x03, 0x40, 0x1e, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x26, 0x08, 0x12, 0x03, 0x40, 0x21, 0x32, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x26, 0x07, 0x12, 0x03, 0x40, 0x2c, 0x31, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x27, 0x12, 0x03, 0x41, 0x08, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x27, 0x04, + 0x12, 0x03, 0x41, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x27, 0x05, 0x12, 0x03, + 0x41, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x27, 0x01, 0x12, 0x03, 0x41, 0x18, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x27, 0x03, 0x12, 0x03, 0x41, 0x1f, 0x21, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x27, 0x08, 0x12, 0x03, 0x41, 0x22, 0x35, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x27, 0x07, 0x12, 0x03, 0x41, 0x2d, 0x34, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x28, 0x12, 0x03, 0x42, 0x08, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x28, + 0x04, 0x12, 0x03, 0x42, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x28, 0x05, 0x12, + 0x03, 0x42, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x28, 0x01, 0x12, 0x03, 0x42, + 0x19, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x28, 0x03, 0x12, 0x03, 0x42, 0x20, 0x22, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x28, 0x08, 0x12, 0x03, 0x42, 0x23, 0x34, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x28, 0x07, 0x12, 0x03, 0x42, 0x2e, 0x33, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x29, 0x12, 0x03, 0x43, 0x08, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x29, 0x04, 0x12, 0x03, 0x43, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x29, 0x05, + 0x12, 0x03, 0x43, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x29, 0x01, 0x12, 0x03, + 0x43, 0x19, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x29, 0x03, 0x12, 0x03, 0x43, 0x21, + 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x29, 0x08, 0x12, 0x03, 0x43, 0x24, 0x37, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x29, 0x07, 0x12, 0x03, 0x43, 0x2f, 0x36, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x2a, 0x12, 0x03, 0x44, 0x08, 0x35, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x2a, 0x04, 0x12, 0x03, 0x44, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2a, + 0x05, 0x12, 0x03, 0x44, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2a, 0x01, 0x12, + 0x03, 0x44, 0x19, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2a, 0x03, 0x12, 0x03, 0x44, + 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2a, 0x08, 0x12, 0x03, 0x44, 0x23, 0x34, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2a, 0x07, 0x12, 0x03, 0x44, 0x2e, 0x33, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x2b, 0x12, 0x03, 0x45, 0x08, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x2b, 0x04, 0x12, 0x03, 0x45, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x2b, 0x05, 0x12, 0x03, 0x45, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2b, 0x01, + 0x12, 0x03, 0x45, 0x19, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2b, 0x03, 0x12, 0x03, + 0x45, 0x21, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2b, 0x08, 0x12, 0x03, 0x45, 0x24, + 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x2b, 0x07, 0x12, 0x03, 0x45, 0x2f, 0x36, 0x0a, + 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x48, 0x00, 0x56, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, + 0x01, 0x01, 0x12, 0x03, 0x48, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, + 0x03, 0x49, 0x08, 0x55, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x49, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x49, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x49, 0x18, 0x1a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x49, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x03, 0x49, 0x1f, 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x07, 0x12, 0x03, 0x49, 0x2a, 0x53, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, + 0x12, 0x03, 0x4a, 0x08, 0x53, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, + 0x4a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x4a, 0x11, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4a, 0x18, 0x1a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4a, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x4a, 0x1f, 0x52, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x07, 0x12, 0x03, 0x4a, 0x2a, 0x51, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x02, 0x12, 0x03, 0x4c, 0x08, 0x56, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, 0x12, + 0x03, 0x4c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, 0x4c, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4c, 0x17, 0x24, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x4c, 0x27, 0x28, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x03, 0x4c, 0x29, 0x55, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x07, 0x12, 0x03, 0x4c, 0x34, 0x54, 0x0a, 0x27, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x03, 0x12, 0x03, 0x4d, 0x08, 0x43, 0x22, 0x1a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x5c, 0x75, 0x31, 0x32, + 0x33, 0x34, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, 0x03, 0x4d, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x03, 0x4d, 0x11, 0x17, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x4d, 0x18, 0x23, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x4d, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x03, 0x08, 0x12, 0x03, 0x4d, 0x28, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x03, 0x07, 0x12, 0x03, 0x4d, 0x33, 0x41, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, + 0x03, 0x4e, 0x08, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x04, 0x12, 0x03, 0x4e, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x05, 0x12, 0x03, 0x4e, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x4e, 0x18, 0x28, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x4e, 0x2b, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x03, 0x4e, 0x2d, 0x44, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x04, 0x07, 0x12, 0x03, 0x4e, 0x38, 0x43, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, + 0x12, 0x03, 0x4f, 0x08, 0x43, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x04, 0x12, 0x03, + 0x4f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x03, 0x4f, 0x11, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x4f, 0x17, 0x26, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x4f, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x05, 0x08, 0x12, 0x03, 0x4f, 0x2b, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x05, 0x07, 0x12, 0x03, 0x4f, 0x36, 0x41, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x06, 0x12, 0x04, 0x51, 0x08, 0x55, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x04, + 0x12, 0x03, 0x51, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x03, + 0x51, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x51, 0x18, + 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x51, 0x2d, 0x2e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x08, 0x12, 0x04, 0x51, 0x2f, 0x55, 0x3e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x07, 0x12, 0x04, 0x51, 0x3a, 0x55, 0x3d, 0x0a, 0x0a, 0x0a, + 0x02, 0x05, 0x00, 0x12, 0x04, 0x58, 0x00, 0x5c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, + 0x12, 0x03, 0x58, 0x05, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x59, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x59, 0x08, 0x0b, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x59, 0x0e, 0x0f, 0x0a, 0x0b, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x5a, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x5a, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x01, 0x02, 0x12, 0x03, 0x5a, 0x10, 0x11, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, + 0x03, 0x5b, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x5b, + 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x5b, 0x0f, 0x10, + 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x04, 0x5e, 0x00, 0x68, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x05, 0x01, 0x01, 0x12, 0x03, 0x5e, 0x05, 0x0b, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x01, 0x03, 0x12, + 0x03, 0x5f, 0x08, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x03, 0x02, 0x12, 0x03, 0x5f, 0x08, + 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x03, 0x60, 0x08, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x60, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x03, 0x60, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, + 0x02, 0x01, 0x12, 0x03, 0x61, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x61, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x03, + 0x61, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x03, 0x62, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x62, 0x08, 0x0b, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x03, 0x62, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, + 0x05, 0x01, 0x02, 0x03, 0x12, 0x03, 0x63, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x63, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, + 0x12, 0x03, 0x63, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x03, 0x64, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x64, 0x08, 0x0b, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x02, 0x12, 0x03, 0x64, 0x0e, 0x0f, 0x0a, 0x0b, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x05, 0x12, 0x03, 0x65, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x65, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x05, 0x02, 0x12, 0x03, 0x65, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x06, 0x12, + 0x03, 0x66, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x66, + 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x02, 0x12, 0x03, 0x66, 0x0e, 0x0f, + 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x07, 0x12, 0x03, 0x67, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x67, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x07, 0x02, 0x12, 0x03, 0x67, 0x0e, 0x0f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, + 0x04, 0x6a, 0x00, 0x72, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x6a, 0x08, + 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x6b, 0x08, 0x2f, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x6b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03, 0x6b, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x6b, 0x17, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x6b, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, + 0x03, 0x6b, 0x1f, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x07, 0x12, 0x03, 0x6b, + 0x2a, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6c, 0x08, 0x33, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x04, 0x12, 0x03, 0x6c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x6c, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6c, 0x17, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x6c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, + 0x12, 0x03, 0x6c, 0x21, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x07, 0x12, 0x03, + 0x6c, 0x2c, 0x31, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x6d, 0x08, 0x31, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, 0x03, 0x6d, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x6d, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6d, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x02, 0x03, 0x12, 0x03, 0x6d, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, + 0x08, 0x12, 0x03, 0x6d, 0x20, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x07, 0x12, + 0x03, 0x6d, 0x2b, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x6e, 0x08, + 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x04, 0x12, 0x03, 0x6e, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x06, 0x12, 0x03, 0x6e, 0x11, 0x17, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x03, 0x01, 0x12, 0x03, 0x6e, 0x18, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x03, 0x03, 0x12, 0x03, 0x6e, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x03, 0x08, 0x12, 0x03, 0x6e, 0x21, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x07, + 0x12, 0x03, 0x6e, 0x2c, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x6f, + 0x08, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x04, 0x12, 0x03, 0x6f, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x06, 0x12, 0x03, 0x6f, 0x11, 0x17, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03, 0x6f, 0x18, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x03, 0x6f, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x04, 0x08, 0x12, 0x03, 0x6f, 0x20, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, + 0x07, 0x12, 0x03, 0x6f, 0x2b, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, + 0x70, 0x08, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x04, 0x12, 0x03, 0x70, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x06, 0x12, 0x03, 0x70, 0x11, 0x17, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x03, 0x70, 0x18, 0x1b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x03, 0x70, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x05, 0x08, 0x12, 0x03, 0x70, 0x20, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x05, 0x07, 0x12, 0x03, 0x70, 0x2b, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, + 0x03, 0x71, 0x08, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x04, 0x12, 0x03, 0x71, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x06, 0x12, 0x03, 0x71, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x01, 0x12, 0x03, 0x71, 0x18, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x03, 0x12, 0x03, 0x71, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x06, 0x08, 0x12, 0x03, 0x71, 0x20, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x06, 0x07, 0x12, 0x03, 0x71, 0x2b, 0x2e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, + 0x74, 0x00, 0x7b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x74, 0x08, 0x12, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x75, 0x08, 0x2b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x75, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x00, 0x05, 0x12, 0x03, 0x75, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x75, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x75, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x08, 0x12, 0x03, + 0x75, 0x1d, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x07, 0x12, 0x03, 0x75, 0x28, + 0x29, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x76, 0x08, 0x2c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x04, 0x12, 0x03, 0x76, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x01, 0x05, 0x12, 0x03, 0x76, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x76, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x76, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x08, 0x12, + 0x03, 0x76, 0x1d, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x07, 0x12, 0x03, 0x76, + 0x28, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x77, 0x08, 0x2e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x04, 0x12, 0x03, 0x77, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x02, 0x05, 0x12, 0x03, 0x77, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x02, 0x01, 0x12, 0x03, 0x77, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x02, 0x03, 0x12, 0x03, 0x77, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x08, + 0x12, 0x03, 0x77, 0x1d, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x07, 0x12, 0x03, + 0x77, 0x28, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x03, 0x12, 0x03, 0x78, 0x08, 0x2c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x04, 0x12, 0x03, 0x78, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x05, 0x12, 0x03, 0x78, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x03, 0x01, 0x12, 0x03, 0x78, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x03, 0x03, 0x12, 0x03, 0x78, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, + 0x08, 0x12, 0x03, 0x78, 0x1d, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x07, 0x12, + 0x03, 0x78, 0x28, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x04, 0x12, 0x03, 0x79, 0x08, + 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x04, 0x12, 0x03, 0x79, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x05, 0x12, 0x03, 0x79, 0x11, 0x16, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x04, 0x01, 0x12, 0x03, 0x79, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x04, 0x03, 0x12, 0x03, 0x79, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x04, 0x08, 0x12, 0x03, 0x79, 0x1d, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x07, + 0x12, 0x03, 0x79, 0x28, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x05, 0x12, 0x03, 0x7a, + 0x08, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x04, 0x12, 0x03, 0x7a, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x05, 0x12, 0x03, 0x7a, 0x11, 0x16, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x01, 0x12, 0x03, 0x7a, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x05, 0x03, 0x12, 0x03, 0x7a, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x05, 0x08, 0x12, 0x03, 0x7a, 0x1d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, + 0x07, 0x12, 0x03, 0x7a, 0x28, 0x2d, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_defaults, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_defaults.proto", &si) +} diff --git a/internal/testprotos/desc_test_field_types.pb.srcinfo.go b/internal/testprotos/desc_test_field_types.pb.srcinfo.go new file mode 100644 index 00000000..4206a9eb --- /dev/null +++ b/internal/testprotos/desc_test_field_types.pb.srcinfo.go @@ -0,0 +1,422 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_field_types.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_field_types = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x75, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x06, 0x00, 0x1d, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x06, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x07, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x07, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x07, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x07, 0x17, 0x18, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x07, 0x1b, 0x1c, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x08, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x08, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x05, 0x12, 0x03, 0x08, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x08, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, + 0x08, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x09, 0x08, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x09, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x09, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x09, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x02, 0x03, 0x12, 0x03, 0x09, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, + 0x12, 0x03, 0x0a, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, + 0x0a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x0a, 0x11, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0a, 0x18, 0x19, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x0a, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x0b, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x04, 0x04, 0x12, 0x03, 0x0b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, + 0x05, 0x12, 0x03, 0x0b, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, + 0x03, 0x0b, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x0b, + 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x0c, 0x08, 0x1e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x0c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, 0x0c, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0c, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x05, 0x03, 0x12, 0x03, 0x0c, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, + 0x03, 0x0d, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x0d, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x0d, 0x11, 0x18, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0d, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x0d, 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x0e, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x04, 0x12, 0x03, 0x0e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, + 0x12, 0x03, 0x0e, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, + 0x0e, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x0e, 0x1d, + 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x0f, 0x08, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x0f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x0f, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x08, 0x01, 0x12, 0x03, 0x0f, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, + 0x03, 0x12, 0x03, 0x0f, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, + 0x10, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x04, 0x12, 0x03, 0x10, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, 0x10, 0x11, 0x19, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x10, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x10, 0x1e, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x0a, 0x12, 0x03, 0x11, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x04, 0x12, 0x03, 0x11, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x05, 0x12, + 0x03, 0x11, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x11, + 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x11, 0x1b, 0x1d, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x12, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x12, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x12, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0b, 0x01, 0x12, 0x03, 0x12, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, + 0x12, 0x03, 0x12, 0x1c, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x13, + 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x03, 0x13, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x13, 0x11, 0x16, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x13, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x13, 0x1b, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x0d, 0x12, 0x03, 0x14, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x04, + 0x12, 0x03, 0x14, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x05, 0x12, 0x03, + 0x14, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x14, 0x18, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x14, 0x1c, 0x1e, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x03, 0x15, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x15, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0e, 0x05, 0x12, 0x03, 0x15, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, + 0x01, 0x12, 0x03, 0x15, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x03, 0x12, + 0x03, 0x15, 0x1a, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, 0x12, 0x03, 0x17, 0x08, + 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x03, 0x17, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x06, 0x12, 0x03, 0x17, 0x11, 0x1f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x17, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x17, 0x24, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x10, 0x12, 0x04, 0x18, 0x08, 0x1b, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x04, + 0x12, 0x03, 0x18, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x05, 0x12, 0x03, + 0x18, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x01, 0x12, 0x03, 0x18, 0x17, + 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x03, 0x12, 0x03, 0x18, 0x20, 0x22, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x03, 0x00, 0x12, 0x04, 0x18, 0x08, 0x1b, 0x09, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, 0x18, 0x17, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x10, 0x06, 0x12, 0x03, 0x18, 0x17, 0x1d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x03, + 0x00, 0x02, 0x00, 0x12, 0x03, 0x19, 0x10, 0x29, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x04, 0x12, 0x03, 0x19, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x05, 0x12, 0x03, 0x19, 0x19, 0x1f, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x20, 0x22, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x25, 0x28, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x03, 0x00, + 0x02, 0x01, 0x12, 0x03, 0x1a, 0x10, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, + 0x01, 0x04, 0x12, 0x03, 0x1a, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, + 0x01, 0x05, 0x12, 0x03, 0x1a, 0x19, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x1a, 0x1f, 0x21, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x1a, 0x24, 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x11, 0x12, + 0x03, 0x1c, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x04, 0x12, 0x03, 0x1c, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x06, 0x12, 0x03, 0x1c, 0x11, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x01, 0x12, 0x03, 0x1c, 0x1a, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x03, 0x12, 0x03, 0x1c, 0x1e, 0x20, 0x0a, 0x0a, 0x0a, 0x02, + 0x05, 0x00, 0x12, 0x04, 0x1f, 0x00, 0x24, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, + 0x03, 0x1f, 0x05, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x20, 0x08, + 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x20, 0x08, 0x0f, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x20, 0x12, 0x13, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x21, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x21, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, + 0x02, 0x12, 0x03, 0x21, 0x10, 0x11, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, + 0x22, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x22, 0x08, + 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x22, 0x11, 0x12, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x23, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x23, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x03, 0x02, 0x12, 0x03, 0x23, 0x10, 0x11, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, + 0x26, 0x00, 0x3d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x26, 0x08, 0x16, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x27, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x27, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x27, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x27, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x27, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x28, + 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x28, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x28, 0x11, 0x16, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x28, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x28, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x02, 0x12, 0x03, 0x29, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, + 0x12, 0x03, 0x29, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, + 0x29, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x29, 0x18, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x29, 0x1c, 0x1d, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x2a, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, 0x03, 0x2a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x03, 0x05, 0x12, 0x03, 0x2a, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, + 0x01, 0x12, 0x03, 0x2a, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, + 0x03, 0x2a, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x03, 0x2b, 0x08, + 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x04, 0x12, 0x03, 0x2b, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x05, 0x12, 0x03, 0x2b, 0x11, 0x17, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x2b, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x2b, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x05, 0x12, 0x03, 0x2c, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x04, 0x12, + 0x03, 0x2c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x03, 0x2c, + 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x2c, 0x18, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x2c, 0x1c, 0x1d, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, 0x12, 0x03, 0x2d, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x06, 0x04, 0x12, 0x03, 0x2d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x06, 0x05, 0x12, 0x03, 0x2d, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, + 0x12, 0x03, 0x2d, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, + 0x2d, 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x2e, 0x08, 0x1f, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x04, 0x12, 0x03, 0x2e, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x03, 0x2e, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x2e, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x07, 0x03, 0x12, 0x03, 0x2e, 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, + 0x12, 0x03, 0x2f, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x04, 0x12, 0x03, + 0x2f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x05, 0x12, 0x03, 0x2f, 0x11, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x2f, 0x1a, 0x1b, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x2f, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x03, 0x30, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x09, 0x04, 0x12, 0x03, 0x30, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, + 0x05, 0x12, 0x03, 0x30, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x01, 0x12, + 0x03, 0x30, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x03, 0x12, 0x03, 0x30, + 0x1e, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0a, 0x12, 0x03, 0x31, 0x08, 0x1e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x31, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x31, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x31, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x0a, 0x03, 0x12, 0x03, 0x31, 0x1b, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0b, 0x12, + 0x03, 0x32, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x32, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x32, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x32, 0x18, 0x19, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x32, 0x1c, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x0c, 0x12, 0x03, 0x33, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x0c, 0x04, 0x12, 0x03, 0x33, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x05, + 0x12, 0x03, 0x33, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x01, 0x12, 0x03, + 0x33, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x33, 0x1b, + 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0d, 0x12, 0x03, 0x34, 0x08, 0x1f, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x34, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x0d, 0x05, 0x12, 0x03, 0x34, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x0d, 0x01, 0x12, 0x03, 0x34, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, + 0x03, 0x12, 0x03, 0x34, 0x1c, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0e, 0x12, 0x03, + 0x35, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x35, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x05, 0x12, 0x03, 0x35, 0x11, 0x15, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x35, 0x16, 0x17, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x0e, 0x03, 0x12, 0x03, 0x35, 0x1a, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x01, 0x02, 0x0f, 0x12, 0x03, 0x37, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, + 0x04, 0x12, 0x03, 0x37, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x06, 0x12, + 0x03, 0x37, 0x11, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x37, + 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x37, 0x21, 0x23, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x10, 0x12, 0x04, 0x38, 0x08, 0x3b, 0x09, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x04, 0x12, 0x03, 0x38, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x10, 0x05, 0x12, 0x03, 0x38, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x10, 0x01, 0x12, 0x03, 0x38, 0x17, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, + 0x03, 0x12, 0x03, 0x38, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x03, 0x00, 0x12, 0x04, + 0x38, 0x08, 0x3b, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x03, 0x00, 0x01, 0x12, 0x03, 0x38, + 0x17, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x06, 0x12, 0x03, 0x38, 0x17, 0x1d, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x39, 0x10, 0x29, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x39, 0x10, 0x18, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x39, 0x19, 0x1f, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x39, 0x20, 0x22, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x39, 0x25, 0x28, 0x0a, + 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x03, 0x00, 0x02, 0x01, 0x12, 0x03, 0x3a, 0x10, 0x28, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x3a, 0x10, 0x18, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x3a, 0x19, 0x1e, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3a, 0x1f, 0x21, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x3a, 0x24, 0x27, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x11, 0x12, 0x03, 0x3c, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x11, 0x04, 0x12, 0x03, 0x3c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x11, 0x06, 0x12, 0x03, 0x3c, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x01, + 0x12, 0x03, 0x3c, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x03, 0x12, 0x03, + 0x3c, 0x1e, 0x20, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x3f, 0x00, 0x52, 0x01, 0x0a, + 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x3f, 0x08, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x02, 0x02, 0x00, 0x12, 0x03, 0x40, 0x08, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, + 0x04, 0x12, 0x03, 0x40, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, + 0x03, 0x40, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x40, + 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x40, 0x1b, 0x1c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x40, 0x1d, 0x2c, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x02, 0x02, 0x00, 0x08, 0x02, 0x12, 0x03, 0x40, 0x1e, 0x2b, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x41, 0x08, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x01, 0x04, 0x12, 0x03, 0x41, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x41, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, + 0x03, 0x41, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x41, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x41, 0x1d, 0x2c, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x01, 0x08, 0x02, 0x12, 0x03, 0x41, 0x1e, 0x2b, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x42, 0x08, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, 0x03, 0x42, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x02, 0x05, 0x12, 0x03, 0x42, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x42, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, + 0x03, 0x42, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x08, 0x12, 0x03, 0x42, + 0x1e, 0x2d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x02, 0x08, 0x02, 0x12, 0x03, 0x42, 0x1f, + 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x43, 0x08, 0x2e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x04, 0x12, 0x03, 0x43, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x03, 0x05, 0x12, 0x03, 0x43, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x43, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, + 0x03, 0x12, 0x03, 0x43, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x08, 0x12, + 0x03, 0x43, 0x1e, 0x2d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x03, 0x08, 0x02, 0x12, 0x03, + 0x43, 0x1f, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x44, 0x08, 0x2e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x04, 0x12, 0x03, 0x44, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x05, 0x12, 0x03, 0x44, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03, 0x44, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x04, 0x03, 0x12, 0x03, 0x44, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, + 0x08, 0x12, 0x03, 0x44, 0x1e, 0x2d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x04, 0x08, 0x02, + 0x12, 0x03, 0x44, 0x1f, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x45, + 0x08, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x04, 0x12, 0x03, 0x45, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x05, 0x12, 0x03, 0x45, 0x11, 0x17, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x03, 0x45, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x03, 0x45, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x05, 0x08, 0x12, 0x03, 0x45, 0x1e, 0x2d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x05, + 0x08, 0x02, 0x12, 0x03, 0x45, 0x1f, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, + 0x03, 0x46, 0x08, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x04, 0x12, 0x03, 0x46, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x05, 0x12, 0x03, 0x46, 0x11, 0x18, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x01, 0x12, 0x03, 0x46, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x03, 0x12, 0x03, 0x46, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x06, 0x08, 0x12, 0x03, 0x46, 0x1f, 0x2e, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, + 0x02, 0x06, 0x08, 0x02, 0x12, 0x03, 0x46, 0x20, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x07, 0x12, 0x03, 0x47, 0x08, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x04, 0x12, + 0x03, 0x47, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x05, 0x12, 0x03, 0x47, + 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x01, 0x12, 0x03, 0x47, 0x19, 0x1a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x03, 0x12, 0x03, 0x47, 0x1d, 0x1e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x08, 0x12, 0x03, 0x47, 0x1f, 0x2e, 0x0a, 0x0d, 0x0a, 0x06, + 0x04, 0x02, 0x02, 0x07, 0x08, 0x02, 0x12, 0x03, 0x47, 0x20, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x02, 0x02, 0x08, 0x12, 0x03, 0x48, 0x08, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, + 0x04, 0x12, 0x03, 0x48, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x05, 0x12, + 0x03, 0x48, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x01, 0x12, 0x03, 0x48, + 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x03, 0x12, 0x03, 0x48, 0x1e, 0x1f, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x08, 0x12, 0x03, 0x48, 0x20, 0x2f, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x02, 0x02, 0x08, 0x08, 0x02, 0x12, 0x03, 0x48, 0x21, 0x2e, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x09, 0x12, 0x03, 0x49, 0x08, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x09, 0x04, 0x12, 0x03, 0x49, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, + 0x05, 0x12, 0x03, 0x49, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x01, 0x12, + 0x03, 0x49, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x03, 0x12, 0x03, 0x49, + 0x1e, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x08, 0x12, 0x03, 0x49, 0x21, 0x30, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x09, 0x08, 0x02, 0x12, 0x03, 0x49, 0x22, 0x2f, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0a, 0x12, 0x03, 0x4a, 0x08, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x4a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x0a, 0x05, 0x12, 0x03, 0x4a, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, + 0x01, 0x12, 0x03, 0x4a, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x03, 0x12, + 0x03, 0x4a, 0x1b, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x08, 0x12, 0x03, 0x4a, + 0x1e, 0x2d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x0a, 0x08, 0x02, 0x12, 0x03, 0x4a, 0x1f, + 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0b, 0x12, 0x03, 0x4b, 0x08, 0x2f, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x4b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x4b, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x0b, 0x01, 0x12, 0x03, 0x4b, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, + 0x03, 0x12, 0x03, 0x4b, 0x1c, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, 0x08, 0x12, + 0x03, 0x4b, 0x1f, 0x2e, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x0b, 0x08, 0x02, 0x12, 0x03, + 0x4b, 0x20, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0c, 0x12, 0x03, 0x4c, 0x08, 0x2d, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, 0x04, 0x12, 0x03, 0x4c, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x4c, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x4c, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x0c, 0x03, 0x12, 0x03, 0x4c, 0x1a, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, + 0x08, 0x12, 0x03, 0x4c, 0x1d, 0x2c, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x0c, 0x08, 0x02, + 0x12, 0x03, 0x4c, 0x1e, 0x2b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0d, 0x12, 0x04, 0x4e, + 0x08, 0x50, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x4e, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x05, 0x12, 0x03, 0x4e, 0x11, 0x16, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x4e, 0x17, 0x1d, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x4e, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x02, 0x03, 0x00, 0x12, 0x04, 0x4e, 0x08, 0x50, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x03, + 0x00, 0x01, 0x12, 0x03, 0x4e, 0x17, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x06, + 0x12, 0x03, 0x4e, 0x17, 0x1d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x4f, 0x10, 0x38, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x4f, 0x10, 0x18, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, + 0x03, 0x4f, 0x19, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x4f, 0x1f, 0x21, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x4f, 0x24, 0x27, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x08, 0x12, + 0x03, 0x4f, 0x28, 0x37, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x08, 0x02, + 0x12, 0x03, 0x4f, 0x29, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0e, 0x12, 0x03, 0x51, + 0x08, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x51, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x06, 0x12, 0x03, 0x51, 0x11, 0x19, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x51, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x0e, 0x03, 0x12, 0x03, 0x51, 0x1e, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x0e, 0x08, 0x12, 0x03, 0x51, 0x21, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x0e, + 0x08, 0x02, 0x12, 0x03, 0x51, 0x22, 0x2f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x54, + 0x00, 0x61, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x54, 0x08, 0x14, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x55, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x55, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x55, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x55, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, + 0x56, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x06, 0x12, 0x03, 0x56, 0x08, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x56, 0x1a, 0x1b, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x56, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x57, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x02, 0x06, 0x12, 0x03, 0x57, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x57, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, + 0x03, 0x57, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x03, 0x12, 0x03, 0x58, 0x08, + 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x06, 0x12, 0x03, 0x58, 0x08, 0x1a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x01, 0x12, 0x03, 0x58, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x03, 0x03, 0x12, 0x03, 0x58, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x03, 0x02, 0x04, 0x12, 0x03, 0x59, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, + 0x06, 0x12, 0x03, 0x59, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x01, 0x12, + 0x03, 0x59, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x03, 0x12, 0x03, 0x59, + 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x05, 0x12, 0x03, 0x5a, 0x08, 0x21, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x06, 0x12, 0x03, 0x5a, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x05, 0x01, 0x12, 0x03, 0x5a, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x05, 0x03, 0x12, 0x03, 0x5a, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, + 0x06, 0x12, 0x03, 0x5b, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x06, 0x06, 0x12, + 0x03, 0x5b, 0x08, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x06, 0x01, 0x12, 0x03, 0x5b, + 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x06, 0x03, 0x12, 0x03, 0x5b, 0x20, 0x21, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x07, 0x12, 0x03, 0x5c, 0x08, 0x22, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x07, 0x06, 0x12, 0x03, 0x5c, 0x08, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x07, 0x01, 0x12, 0x03, 0x5c, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x07, 0x03, 0x12, 0x03, 0x5c, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x08, 0x12, + 0x03, 0x5d, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x08, 0x06, 0x12, 0x03, 0x5d, + 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x08, 0x01, 0x12, 0x03, 0x5d, 0x1d, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x08, 0x03, 0x12, 0x03, 0x5d, 0x21, 0x22, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x03, 0x02, 0x09, 0x12, 0x03, 0x5e, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x09, 0x06, 0x12, 0x03, 0x5e, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x09, 0x01, 0x12, 0x03, 0x5e, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x09, 0x03, + 0x12, 0x03, 0x5e, 0x21, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x0a, 0x12, 0x03, 0x5f, + 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x0a, 0x06, 0x12, 0x03, 0x5f, 0x08, 0x1a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x5f, 0x1b, 0x1c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x5f, 0x1f, 0x21, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x03, 0x02, 0x0b, 0x12, 0x03, 0x60, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x0b, 0x06, 0x12, 0x03, 0x60, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x0b, 0x01, + 0x12, 0x03, 0x60, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x0b, 0x03, 0x12, 0x03, + 0x60, 0x1d, 0x1f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x63, 0x00, 0x75, 0x01, 0x0a, + 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x63, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x04, 0x02, 0x00, 0x12, 0x03, 0x64, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x64, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x64, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x64, + 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x65, 0x08, 0x20, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x06, 0x12, 0x03, 0x65, 0x08, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x65, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x65, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, + 0x02, 0x12, 0x03, 0x66, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, + 0x03, 0x66, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x66, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x66, 0x1f, 0x20, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, 0x03, 0x67, 0x08, 0x21, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x03, 0x06, 0x12, 0x03, 0x67, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x03, 0x01, 0x12, 0x03, 0x67, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x67, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x04, 0x12, + 0x03, 0x68, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x06, 0x12, 0x03, 0x68, + 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x01, 0x12, 0x03, 0x68, 0x1b, 0x1c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x03, 0x12, 0x03, 0x68, 0x1f, 0x20, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x04, 0x02, 0x05, 0x12, 0x03, 0x69, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x05, 0x06, 0x12, 0x03, 0x69, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x05, 0x01, 0x12, 0x03, 0x69, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, + 0x12, 0x03, 0x69, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x06, 0x12, 0x03, 0x6a, + 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x06, 0x12, 0x03, 0x6a, 0x08, 0x1b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x01, 0x12, 0x03, 0x6a, 0x1c, 0x1d, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x03, 0x12, 0x03, 0x6a, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x04, 0x02, 0x07, 0x12, 0x03, 0x6b, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x07, 0x06, 0x12, 0x03, 0x6b, 0x08, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x01, + 0x12, 0x03, 0x6b, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x03, 0x12, 0x03, + 0x6b, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x08, 0x12, 0x03, 0x6c, 0x08, 0x23, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x06, 0x12, 0x03, 0x6c, 0x08, 0x1c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x01, 0x12, 0x03, 0x6c, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x08, 0x03, 0x12, 0x03, 0x6c, 0x21, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, + 0x02, 0x09, 0x12, 0x03, 0x6d, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x06, + 0x12, 0x03, 0x6d, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x01, 0x12, 0x03, + 0x6d, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x03, 0x12, 0x03, 0x6d, 0x21, + 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0a, 0x12, 0x03, 0x6e, 0x08, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x06, 0x12, 0x03, 0x6e, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x6e, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x0a, 0x03, 0x12, 0x03, 0x6e, 0x1e, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0b, + 0x12, 0x03, 0x6f, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x06, 0x12, 0x03, + 0x6f, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x6f, 0x1b, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x6f, 0x1f, 0x21, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0c, 0x12, 0x03, 0x70, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x0c, 0x06, 0x12, 0x03, 0x70, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x0c, 0x01, 0x12, 0x03, 0x70, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0c, + 0x03, 0x12, 0x03, 0x70, 0x1e, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0d, 0x12, 0x03, + 0x71, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x06, 0x12, 0x03, 0x71, 0x08, + 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x71, 0x1b, 0x1c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x71, 0x1f, 0x21, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x04, 0x02, 0x0e, 0x12, 0x03, 0x72, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x0e, 0x06, 0x12, 0x03, 0x72, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0e, + 0x01, 0x12, 0x03, 0x72, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0e, 0x03, 0x12, + 0x03, 0x72, 0x1d, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0f, 0x12, 0x03, 0x73, 0x08, + 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0f, 0x06, 0x12, 0x03, 0x73, 0x08, 0x1f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x73, 0x20, 0x21, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x73, 0x24, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x04, 0x02, 0x10, 0x12, 0x03, 0x74, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x10, + 0x06, 0x12, 0x03, 0x74, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x10, 0x01, 0x12, + 0x03, 0x74, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x10, 0x03, 0x12, 0x03, 0x74, + 0x21, 0x23, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_field_types, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_field_types.proto", &si) +} diff --git a/internal/testprotos/desc_test_oneof.pb.srcinfo.go b/internal/testprotos/desc_test_oneof.pb.srcinfo.go new file mode 100644 index 00000000..022f2aac --- /dev/null +++ b/internal/testprotos/desc_test_oneof.pb.srcinfo.go @@ -0,0 +1,53 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_oneof.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_oneof = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x11, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x06, 0x00, 0x11, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x06, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, + 0x00, 0x12, 0x04, 0x07, 0x02, 0x10, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, + 0x12, 0x03, 0x07, 0x08, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x08, + 0x04, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x08, 0x04, 0x09, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x08, 0x0a, 0x16, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x08, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x09, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x05, 0x12, 0x03, 0x09, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x09, 0x0b, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, + 0x09, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x0a, 0x04, 0x1b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x0a, 0x04, 0x08, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0a, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x0a, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x03, 0x12, 0x03, 0x0b, 0x04, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, + 0x12, 0x03, 0x0b, 0x04, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, + 0x0b, 0x0a, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x0b, 0x16, + 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x0c, 0x04, 0x1a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x0c, 0x04, 0x09, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x0c, 0x0a, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x04, 0x03, 0x12, 0x03, 0x0c, 0x18, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, + 0x12, 0x03, 0x0d, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, + 0x0d, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0d, 0x0b, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x0d, 0x1a, 0x1b, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0e, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x0e, 0x04, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x06, 0x01, 0x12, 0x03, 0x0e, 0x0a, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x03, 0x12, 0x03, 0x0e, 0x18, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, + 0x0f, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x06, 0x12, 0x03, 0x0f, 0x04, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x0f, 0x11, 0x1a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x0f, 0x1d, 0x1e, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_oneof, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_oneof.proto", &si) +} diff --git a/internal/testprotos/desc_test_options.pb.srcinfo.go b/internal/testprotos/desc_test_options.pb.srcinfo.go new file mode 100644 index 00000000..ec83a54e --- /dev/null +++ b/internal/testprotos/desc_test_options.pb.srcinfo.go @@ -0,0 +1,141 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_options.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_options = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x3e, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x06, 0x00, 0x2a, 0x0a, 0x09, 0x0a, 0x01, + 0x07, 0x12, 0x04, 0x08, 0x00, 0x0a, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x00, 0x12, 0x03, 0x09, + 0x08, 0x25, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x02, 0x12, 0x03, 0x08, 0x07, 0x25, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x00, 0x04, 0x12, 0x03, 0x09, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, + 0x05, 0x12, 0x03, 0x09, 0x11, 0x15, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x01, 0x12, 0x03, 0x09, + 0x16, 0x1c, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x00, 0x03, 0x12, 0x03, 0x09, 0x1f, 0x24, 0x0a, 0x09, + 0x0a, 0x01, 0x07, 0x12, 0x04, 0x0c, 0x00, 0x0f, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x01, 0x12, + 0x03, 0x0d, 0x08, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x02, 0x12, 0x03, 0x0c, 0x07, 0x23, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x04, 0x12, 0x03, 0x0d, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x01, 0x05, 0x12, 0x03, 0x0d, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x01, 0x12, + 0x03, 0x0d, 0x18, 0x1e, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x01, 0x03, 0x12, 0x03, 0x0d, 0x21, 0x26, + 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x02, 0x12, 0x03, 0x0e, 0x08, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x02, 0x02, 0x12, 0x03, 0x0c, 0x07, 0x23, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x04, 0x12, 0x03, + 0x0e, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x05, 0x12, 0x03, 0x0e, 0x11, 0x16, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x02, 0x01, 0x12, 0x03, 0x0e, 0x17, 0x1e, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x02, 0x03, 0x12, 0x03, 0x0e, 0x21, 0x26, 0x0a, 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x11, 0x00, + 0x17, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x03, 0x12, 0x03, 0x12, 0x08, 0x26, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x03, 0x02, 0x12, 0x03, 0x11, 0x07, 0x22, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x04, + 0x12, 0x03, 0x12, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x05, 0x12, 0x03, 0x12, 0x11, + 0x16, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x03, 0x01, 0x12, 0x03, 0x12, 0x17, 0x1d, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x03, 0x03, 0x12, 0x03, 0x12, 0x20, 0x25, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x04, 0x12, + 0x03, 0x13, 0x08, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x02, 0x12, 0x03, 0x11, 0x07, 0x22, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x04, 0x12, 0x03, 0x13, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x04, 0x05, 0x12, 0x03, 0x13, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x01, 0x12, + 0x03, 0x13, 0x18, 0x1f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x04, 0x03, 0x12, 0x03, 0x13, 0x22, 0x27, + 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x05, 0x12, 0x03, 0x14, 0x08, 0x2b, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x05, 0x02, 0x12, 0x03, 0x11, 0x07, 0x22, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x05, 0x04, 0x12, 0x03, + 0x14, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x05, 0x05, 0x12, 0x03, 0x14, 0x11, 0x19, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x05, 0x01, 0x12, 0x03, 0x14, 0x1a, 0x22, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x05, 0x03, 0x12, 0x03, 0x14, 0x25, 0x2a, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x06, 0x12, 0x03, 0x15, + 0x08, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x06, 0x02, 0x12, 0x03, 0x11, 0x07, 0x22, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x06, 0x04, 0x12, 0x03, 0x15, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x06, + 0x05, 0x12, 0x03, 0x15, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x06, 0x01, 0x12, 0x03, 0x15, + 0x18, 0x1f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x06, 0x03, 0x12, 0x03, 0x15, 0x22, 0x27, 0x0a, 0x09, + 0x0a, 0x02, 0x07, 0x07, 0x12, 0x03, 0x16, 0x08, 0x2a, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x07, 0x02, + 0x12, 0x03, 0x11, 0x07, 0x22, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x07, 0x04, 0x12, 0x03, 0x16, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x07, 0x05, 0x12, 0x03, 0x16, 0x11, 0x18, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x07, 0x01, 0x12, 0x03, 0x16, 0x19, 0x21, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x07, 0x03, + 0x12, 0x03, 0x16, 0x24, 0x29, 0x0a, 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x19, 0x00, 0x1f, 0x01, + 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x08, 0x12, 0x03, 0x1a, 0x08, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x08, 0x02, 0x12, 0x03, 0x19, 0x07, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x08, 0x04, 0x12, 0x03, + 0x1a, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x08, 0x05, 0x12, 0x03, 0x1a, 0x11, 0x16, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x08, 0x01, 0x12, 0x03, 0x1a, 0x17, 0x1e, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x08, 0x03, 0x12, 0x03, 0x1a, 0x21, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x09, 0x12, 0x03, 0x1b, + 0x08, 0x29, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x09, 0x02, 0x12, 0x03, 0x19, 0x07, 0x27, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x09, 0x04, 0x12, 0x03, 0x1b, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x09, + 0x05, 0x12, 0x03, 0x1b, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x09, 0x01, 0x12, 0x03, 0x1b, + 0x18, 0x20, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x09, 0x03, 0x12, 0x03, 0x1b, 0x23, 0x28, 0x0a, 0x09, + 0x0a, 0x02, 0x07, 0x0a, 0x12, 0x03, 0x1c, 0x08, 0x2c, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0a, 0x02, + 0x12, 0x03, 0x19, 0x07, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0a, 0x04, 0x12, 0x03, 0x1c, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0a, 0x05, 0x12, 0x03, 0x1c, 0x11, 0x19, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x0a, 0x01, 0x12, 0x03, 0x1c, 0x1a, 0x23, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0a, 0x03, + 0x12, 0x03, 0x1c, 0x26, 0x2b, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x0b, 0x12, 0x03, 0x1d, 0x08, 0x29, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0b, 0x02, 0x12, 0x03, 0x19, 0x07, 0x27, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x0b, 0x04, 0x12, 0x03, 0x1d, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0b, 0x05, 0x12, + 0x03, 0x1d, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0b, 0x01, 0x12, 0x03, 0x1d, 0x18, 0x20, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0b, 0x03, 0x12, 0x03, 0x1d, 0x23, 0x28, 0x0a, 0x09, 0x0a, 0x02, + 0x07, 0x0c, 0x12, 0x03, 0x1e, 0x08, 0x2b, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0c, 0x02, 0x12, 0x03, + 0x19, 0x07, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0c, 0x04, 0x12, 0x03, 0x1e, 0x08, 0x10, 0x0a, + 0x0a, 0x0a, 0x03, 0x07, 0x0c, 0x05, 0x12, 0x03, 0x1e, 0x11, 0x18, 0x0a, 0x0a, 0x0a, 0x03, 0x07, + 0x0c, 0x01, 0x12, 0x03, 0x1e, 0x19, 0x22, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0c, 0x03, 0x12, 0x03, + 0x1e, 0x25, 0x2a, 0x0a, 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x21, 0x00, 0x24, 0x01, 0x0a, 0x09, + 0x0a, 0x02, 0x07, 0x0d, 0x12, 0x03, 0x22, 0x08, 0x34, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0d, 0x02, + 0x12, 0x03, 0x21, 0x07, 0x25, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0d, 0x04, 0x12, 0x03, 0x22, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0d, 0x06, 0x12, 0x03, 0x22, 0x11, 0x24, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x0d, 0x01, 0x12, 0x03, 0x22, 0x25, 0x2b, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0d, 0x03, + 0x12, 0x03, 0x22, 0x2e, 0x33, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x0e, 0x12, 0x03, 0x23, 0x08, 0x32, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0e, 0x02, 0x12, 0x03, 0x21, 0x07, 0x25, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x0e, 0x04, 0x12, 0x03, 0x23, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0e, 0x06, 0x12, + 0x03, 0x23, 0x11, 0x21, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0e, 0x01, 0x12, 0x03, 0x23, 0x22, 0x29, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0e, 0x03, 0x12, 0x03, 0x23, 0x2c, 0x31, 0x0a, 0x09, 0x0a, 0x01, + 0x07, 0x12, 0x04, 0x26, 0x00, 0x29, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x0f, 0x12, 0x03, 0x27, + 0x08, 0x27, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0f, 0x02, 0x12, 0x03, 0x26, 0x07, 0x24, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x0f, 0x04, 0x12, 0x03, 0x27, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0f, + 0x05, 0x12, 0x03, 0x27, 0x11, 0x16, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0f, 0x01, 0x12, 0x03, 0x27, + 0x17, 0x1e, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x0f, 0x03, 0x12, 0x03, 0x27, 0x21, 0x26, 0x0a, 0x09, + 0x0a, 0x02, 0x07, 0x10, 0x12, 0x03, 0x28, 0x08, 0x29, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x10, 0x02, + 0x12, 0x03, 0x26, 0x07, 0x24, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x10, 0x04, 0x12, 0x03, 0x28, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x10, 0x05, 0x12, 0x03, 0x28, 0x11, 0x17, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x10, 0x01, 0x12, 0x03, 0x28, 0x18, 0x20, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x10, 0x03, + 0x12, 0x03, 0x28, 0x23, 0x28, 0x0a, 0x31, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x2c, 0x00, 0x2f, + 0x01, 0x1a, 0x25, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, + 0x03, 0x2c, 0x08, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2d, 0x08, + 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x2d, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x2d, 0x11, 0x17, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2d, 0x18, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x2d, 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x01, 0x12, 0x03, 0x2e, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x2e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x2e, + 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2e, 0x18, 0x1c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2e, 0x1f, 0x20, 0x0a, 0x2e, + 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x32, 0x00, 0x34, 0x01, 0x1a, 0x22, 0x20, 0x54, 0x65, 0x73, + 0x74, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0a, + 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x32, 0x05, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, + 0x02, 0x00, 0x12, 0x03, 0x33, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x33, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, + 0x33, 0x10, 0x11, 0x0a, 0x09, 0x0a, 0x01, 0x07, 0x12, 0x04, 0x36, 0x00, 0x39, 0x01, 0x0a, 0x09, + 0x0a, 0x02, 0x07, 0x11, 0x12, 0x03, 0x37, 0x08, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x11, 0x02, + 0x12, 0x03, 0x36, 0x07, 0x2c, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x11, 0x04, 0x12, 0x03, 0x37, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x11, 0x05, 0x12, 0x03, 0x37, 0x11, 0x17, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x11, 0x01, 0x12, 0x03, 0x37, 0x18, 0x1f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x11, 0x03, + 0x12, 0x03, 0x37, 0x22, 0x27, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x12, 0x12, 0x03, 0x38, 0x08, 0x28, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x12, 0x02, 0x12, 0x03, 0x36, 0x07, 0x2c, 0x0a, 0x0a, 0x0a, 0x03, + 0x07, 0x12, 0x04, 0x12, 0x03, 0x38, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x12, 0x05, 0x12, + 0x03, 0x38, 0x11, 0x16, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x12, 0x01, 0x12, 0x03, 0x38, 0x17, 0x1f, + 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x12, 0x03, 0x12, 0x03, 0x38, 0x22, 0x27, 0x0a, 0x09, 0x0a, 0x01, + 0x07, 0x12, 0x04, 0x3b, 0x00, 0x3e, 0x01, 0x0a, 0x09, 0x0a, 0x02, 0x07, 0x13, 0x12, 0x03, 0x3c, + 0x08, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x13, 0x02, 0x12, 0x03, 0x3b, 0x07, 0x23, 0x0a, 0x0a, + 0x0a, 0x03, 0x07, 0x13, 0x04, 0x12, 0x03, 0x3c, 0x08, 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x13, + 0x05, 0x12, 0x03, 0x3c, 0x11, 0x17, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x13, 0x01, 0x12, 0x03, 0x3c, + 0x18, 0x1f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x13, 0x03, 0x12, 0x03, 0x3c, 0x22, 0x27, 0x0a, 0x09, + 0x0a, 0x02, 0x07, 0x14, 0x12, 0x03, 0x3d, 0x08, 0x28, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x14, 0x02, + 0x12, 0x03, 0x3b, 0x07, 0x23, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x14, 0x04, 0x12, 0x03, 0x3d, 0x08, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x14, 0x05, 0x12, 0x03, 0x3d, 0x11, 0x16, 0x0a, 0x0a, 0x0a, + 0x03, 0x07, 0x14, 0x01, 0x12, 0x03, 0x3d, 0x17, 0x1f, 0x0a, 0x0a, 0x0a, 0x03, 0x07, 0x14, 0x03, + 0x12, 0x03, 0x3d, 0x22, 0x27, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_options, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_options.proto", &si) +} diff --git a/internal/testprotos/desc_test_proto3.pb.srcinfo.go b/internal/testprotos/desc_test_proto3.pb.srcinfo.go new file mode 100644 index 00000000..c1db6a68 --- /dev/null +++ b/internal/testprotos/desc_test_proto3.pb.srcinfo.go @@ -0,0 +1,84 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_proto3.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_proto3 = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x22, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x06, 0x00, 0x1a, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x07, 0x00, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x09, + 0x00, 0x0d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x09, 0x05, 0x0f, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0a, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0a, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x00, 0x02, 0x12, 0x03, 0x0a, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, + 0x12, 0x03, 0x0b, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x0b, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x0b, 0x11, + 0x12, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x0c, 0x08, 0x13, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0c, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x0c, 0x11, 0x12, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, + 0x12, 0x04, 0x0f, 0x00, 0x16, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0f, + 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x10, 0x08, 0x24, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x10, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x10, 0x11, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x10, 0x1c, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x10, 0x22, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, + 0x03, 0x11, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x11, + 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x11, 0x0f, 0x12, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x11, 0x15, 0x16, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x12, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x12, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x12, 0x14, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x12, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x13, + 0x08, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x13, 0x08, 0x36, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x13, 0x37, 0x3c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x13, 0x3f, 0x40, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x14, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x04, 0x06, 0x12, 0x03, 0x14, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x14, 0x1a, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x14, 0x22, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x15, 0x08, 0x2c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x03, 0x15, 0x08, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x15, 0x21, 0x27, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x15, 0x2a, 0x2b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, + 0x12, 0x04, 0x18, 0x00, 0x1b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x18, + 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x19, 0x08, 0x23, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x19, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x1b, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x21, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x01, 0x12, 0x03, 0x1a, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x1a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x1a, + 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1a, 0x17, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x1a, 0x1c, 0x1d, 0x0a, 0x0a, + 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x1d, 0x00, 0x22, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, + 0x01, 0x12, 0x03, 0x1d, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, + 0x1e, 0x08, 0x4c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1e, 0x0c, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x1e, 0x19, 0x24, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1e, 0x2f, 0x4a, 0x0a, 0x0b, 0x0a, + 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x03, 0x1f, 0x08, 0x48, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x1f, 0x0c, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x1f, 0x1d, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, + 0x03, 0x1f, 0x24, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x1f, + 0x3a, 0x46, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x03, 0x20, 0x08, 0x5f, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x20, 0x0c, 0x1c, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x20, 0x1e, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x20, 0x44, 0x4a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x02, 0x03, 0x12, 0x03, 0x20, 0x4b, 0x5d, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x03, 0x12, + 0x03, 0x21, 0x08, 0x52, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x21, + 0x0c, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x21, 0x20, 0x26, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x21, 0x27, 0x32, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x21, 0x3d, 0x43, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x21, 0x44, 0x50, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_proto3, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_proto3.proto", &si) +} diff --git a/internal/testprotos/desc_test_value.pb.srcinfo.go b/internal/testprotos/desc_test_value.pb.srcinfo.go new file mode 100644 index 00000000..898d75b5 --- /dev/null +++ b/internal/testprotos/desc_test_value.pb.srcinfo.go @@ -0,0 +1,28 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_value.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_value = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x0b, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x02, 0x00, 0x26, 0x0a, 0x08, 0x0a, + 0x01, 0x08, 0x12, 0x03, 0x05, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x05, + 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x07, 0x00, 0x13, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x0b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, + 0x03, 0x09, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0a, 0x04, + 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x0a, 0x04, 0x19, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0a, 0x1a, 0x1e, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0a, 0x21, 0x22, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_value, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_value.proto", &si) +} diff --git a/internal/testprotos/desc_test_wellknowntypes.pb.srcinfo.go b/internal/testprotos/desc_test_wellknowntypes.pb.srcinfo.go new file mode 100644 index 00000000..9ddaad01 --- /dev/null +++ b/internal/testprotos/desc_test_wellknowntypes.pb.srcinfo.go @@ -0,0 +1,74 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: desc_test_wellknowntypes.proto + +package testprotos + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_desc_test_wellknowntypes = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x1d, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x48, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x13, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x06, 0x00, 0x23, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x07, 0x00, 0x28, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x08, + 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, 0x12, 0x03, 0x09, 0x00, 0x26, 0x0a, 0x09, 0x0a, + 0x02, 0x03, 0x04, 0x12, 0x03, 0x0a, 0x00, 0x28, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, + 0x0c, 0x00, 0x1d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0c, 0x08, 0x1a, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0d, 0x08, 0x31, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x0d, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0d, 0x22, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x0d, 0x2f, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, + 0x03, 0x0e, 0x08, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x06, 0x12, 0x03, 0x0e, + 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0e, 0x21, 0x28, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0e, 0x2b, 0x2c, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x10, 0x08, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x10, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x10, 0x24, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x10, 0x2a, 0x2b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x11, + 0x08, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x11, 0x08, 0x22, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x11, 0x23, 0x26, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x11, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x12, 0x08, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x04, 0x06, 0x12, 0x03, 0x12, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x12, 0x22, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x12, 0x27, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x13, 0x08, 0x2b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x03, 0x13, 0x08, 0x22, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x13, 0x23, 0x26, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x13, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x06, 0x12, 0x03, 0x14, 0x08, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x06, + 0x12, 0x03, 0x14, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, + 0x14, 0x23, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x14, 0x29, + 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x15, 0x08, 0x2c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x06, 0x12, 0x03, 0x15, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x15, 0x24, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x07, 0x03, 0x12, 0x03, 0x15, 0x2a, 0x2b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, + 0x12, 0x03, 0x16, 0x08, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x06, 0x12, 0x03, + 0x16, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x16, 0x24, + 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x16, 0x2a, 0x2b, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x17, 0x08, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x09, 0x06, 0x12, 0x03, 0x17, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x09, 0x01, 0x12, 0x03, 0x17, 0x24, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, + 0x03, 0x12, 0x03, 0x17, 0x2a, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, + 0x18, 0x08, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x06, 0x12, 0x03, 0x18, 0x08, + 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x18, 0x23, 0x26, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x18, 0x29, 0x2b, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x1a, 0x08, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0b, 0x04, 0x12, 0x03, 0x1a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, + 0x06, 0x12, 0x03, 0x1a, 0x11, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, + 0x03, 0x1a, 0x27, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x1a, + 0x2e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x1c, 0x08, 0x31, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x03, 0x1c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0c, 0x06, 0x12, 0x03, 0x1c, 0x11, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x1c, 0x25, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0c, 0x03, 0x12, 0x03, 0x1c, 0x2e, 0x30, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_desc_test_wellknowntypes, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("desc_test_wellknowntypes.proto", &si) +} diff --git a/internal/testprotos/grpc/test.pb.srcinfo.go b/internal/testprotos/grpc/test.pb.srcinfo.go new file mode 100644 index 00000000..4c43de26 --- /dev/null +++ b/internal/testprotos/grpc/test.pb.srcinfo.go @@ -0,0 +1,541 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: grpc/test.proto + +package grpc + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_grpc_test = []byte{ + 0x0a, 0x07, 0x12, 0x05, 0x10, 0x00, 0xe5, 0x01, 0x01, 0x0a, 0xb8, 0x05, 0x0a, 0x01, 0x0c, 0x12, + 0x03, 0x10, 0x00, 0x12, 0x1a, 0x77, 0x20, 0x41, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x75, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x2f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x32, 0xb4, 0x04, + 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20, + 0x67, 0x52, 0x50, 0x43, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x20, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x2c, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x2e, 0x30, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x20, 0x22, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x3b, 0x0a, + 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x2e, 0x0a, 0x20, 0x59, 0x6f, 0x75, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x6f, 0x62, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x61, 0x74, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, + 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x20, 0x55, 0x6e, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6c, 0x61, 0x77, 0x20, + 0x6f, 0x72, 0x20, 0x61, 0x67, 0x72, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x20, + 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x0a, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x20, 0x75, + 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x20, 0x42, 0x41, + 0x53, 0x49, 0x53, 0x2c, 0x0a, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x57, 0x41, + 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x20, 0x4f, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x44, + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x20, 0x4f, 0x46, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x4b, 0x49, + 0x4e, 0x44, 0x2c, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x2e, 0x0a, 0x20, + 0x53, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x0a, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x14, 0x00, 0x4d, 0x0a, 0x7c, + 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x14, 0x00, 0x4d, 0x1a, 0x71, 0x20, 0x4e, 0x42, 0x3a, 0x20, + 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x0a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, + 0x67, 0x72, 0x70, 0x63, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6f, 0x70, 0x2f, 0x67, 0x72, 0x70, + 0x63, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x3b, 0x0a, 0x0a, 0x08, 0x0a, 0x01, + 0x02, 0x12, 0x03, 0x16, 0x00, 0x15, 0x0a, 0x09, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x03, 0x18, 0x00, + 0x10, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x18, 0x08, 0x0d, 0x0a, 0x3a, 0x0a, + 0x02, 0x05, 0x00, 0x12, 0x04, 0x1b, 0x00, 0x24, 0x01, 0x1a, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, + 0x12, 0x03, 0x1b, 0x05, 0x10, 0x0a, 0x28, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x1d, + 0x02, 0x13, 0x1a, 0x1b, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1d, 0x02, 0x0e, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x1d, 0x11, 0x12, 0x0a, 0x2c, 0x0a, 0x04, 0x05, + 0x00, 0x02, 0x01, 0x12, 0x03, 0x20, 0x02, 0x15, 0x1a, 0x1f, 0x20, 0x55, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x20, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x03, 0x20, 0x13, 0x14, 0x0a, 0x4b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x23, + 0x02, 0x0d, 0x1a, 0x3e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x6c, 0x79, 0x20, 0x63, 0x68, + 0x6f, 0x73, 0x65, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x65, 0x6e, 0x75, 0x6d, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x23, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x23, 0x0b, 0x0c, 0x0a, 0x44, + 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x27, 0x00, 0x2c, 0x01, 0x1a, 0x38, 0x20, 0x41, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x20, 0x67, 0x52, 0x50, 0x43, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x27, 0x08, 0x0f, + 0x0a, 0x28, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x29, 0x02, 0x17, 0x1a, 0x1b, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x69, 0x6e, 0x20, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x06, 0x12, 0x03, 0x29, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x29, 0x0e, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x29, 0x15, 0x16, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x2b, 0x02, + 0x11, 0x1a, 0x1e, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x2b, 0x02, 0x07, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2b, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2b, 0x0f, 0x10, 0x0a, 0x95, 0x01, 0x0a, 0x02, + 0x04, 0x02, 0x12, 0x04, 0x30, 0x00, 0x33, 0x01, 0x1a, 0x88, 0x01, 0x20, 0x41, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x72, 0x70, 0x63, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x65, 0x73, 0x74, 0x0a, 0x20, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, + 0x61, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, + 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x30, 0x08, 0x12, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x31, 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x31, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x31, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x31, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, + 0x32, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, 0x32, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x32, 0x09, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x32, 0x13, 0x14, 0x0a, 0xb8, 0x03, + 0x0a, 0x02, 0x05, 0x01, 0x12, 0x04, 0x3b, 0x00, 0x42, 0x01, 0x1a, 0xab, 0x03, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, + 0x6f, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x20, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x20, 0x77, 0x2e, 0x72, 0x2e, 0x74, 0x2e, 0x20, 0x67, 0x52, 0x50, 0x43, + 0x4c, 0x42, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x22, 0x66, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, + 0x50, 0x43, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, + 0x67, 0x52, 0x50, 0x43, 0x4c, 0x42, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x22, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x22, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x73, 0x0a, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, 0x50, 0x43, + 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x20, 0x76, 0x69, 0x61, 0x20, 0x22, 0x67, 0x52, 0x50, 0x43, 0x4c, 0x42, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x67, 0x6f, 0x74, 0x0a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x52, 0x50, 0x43, 0x4c, 0x42, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x52, 0x50, 0x43, + 0x29, 0x2e, 0x20, 0x45, 0x78, 0x61, 0x63, 0x74, 0x6c, 0x79, 0x0a, 0x20, 0x68, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x73, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, + 0x03, 0x3b, 0x05, 0x14, 0x0a, 0x4d, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x03, 0x3d, 0x02, + 0x20, 0x1a, 0x40, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x69, 0x64, 0x6e, 0x27, + 0x74, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x6f, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x20, 0x69, + 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3d, 0x02, + 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x03, 0x3d, 0x1e, 0x1f, 0x0a, + 0x4c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x03, 0x3f, 0x02, 0x21, 0x1a, 0x3f, 0x20, 0x49, + 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x61, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x76, 0x69, 0x61, 0x20, 0x67, 0x52, 0x50, 0x43, + 0x4c, 0x42, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3f, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x01, 0x02, 0x12, 0x03, 0x3f, 0x1f, 0x20, 0x0a, 0x52, 0x0a, 0x04, 0x05, 0x01, 0x02, + 0x02, 0x12, 0x03, 0x41, 0x02, 0x20, 0x1a, 0x45, 0x20, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x61, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x67, 0x52, 0x50, 0x43, 0x4c, 0x42, 0x2d, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x41, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x02, 0x02, 0x12, 0x03, 0x41, 0x1e, 0x1f, 0x0a, 0x1c, 0x0a, 0x02, 0x04, 0x03, 0x12, + 0x04, 0x45, 0x00, 0x5f, 0x01, 0x1a, 0x10, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, + 0x45, 0x08, 0x15, 0x0a, 0x92, 0x01, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x48, 0x02, + 0x20, 0x1a, 0x84, 0x01, 0x20, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x2c, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x6c, 0x79, 0x20, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x73, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x48, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x48, 0x0e, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x48, + 0x1e, 0x1f, 0x0a, 0x92, 0x01, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x4c, 0x02, 0x1a, + 0x1a, 0x84, 0x01, 0x20, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x43, + 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x2c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x64, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x05, + 0x12, 0x03, 0x4c, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x4c, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4c, 0x18, + 0x19, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x4f, 0x02, 0x16, 0x1a, 0x35, + 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6f, + 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x06, 0x12, 0x03, + 0x4f, 0x02, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4f, 0x0a, + 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, 0x03, 0x4f, 0x14, 0x15, 0x0a, + 0x3e, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x03, 0x12, 0x03, 0x52, 0x02, 0x19, 0x1a, 0x31, 0x20, 0x57, + 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x05, 0x12, 0x03, 0x52, 0x02, 0x06, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x03, 0x01, 0x12, 0x03, 0x52, 0x07, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x03, 0x03, 0x12, 0x03, 0x52, 0x17, 0x18, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x03, 0x02, + 0x04, 0x12, 0x03, 0x55, 0x02, 0x1c, 0x1a, 0x34, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, + 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x4f, + 0x41, 0x75, 0x74, 0x68, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x04, 0x05, 0x12, 0x03, 0x55, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x04, 0x01, 0x12, 0x03, 0x55, 0x07, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, + 0x03, 0x12, 0x03, 0x55, 0x1a, 0x1b, 0x0a, 0x3a, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x05, 0x12, 0x03, + 0x58, 0x02, 0x21, 0x1a, 0x2d, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x06, 0x12, 0x03, 0x58, 0x02, 0x0c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x01, 0x12, 0x03, 0x58, 0x0d, 0x1c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x03, 0x12, 0x03, 0x58, 0x1f, 0x20, 0x0a, 0x3f, 0x0a, 0x04, + 0x04, 0x03, 0x02, 0x06, 0x12, 0x03, 0x5b, 0x02, 0x1a, 0x1a, 0x32, 0x20, 0x57, 0x68, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x06, 0x05, 0x12, 0x03, 0x5b, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x06, 0x01, 0x12, 0x03, 0x5b, 0x07, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x06, 0x03, 0x12, 0x03, 0x5b, 0x18, 0x19, 0x0a, 0x47, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x07, 0x12, + 0x03, 0x5e, 0x02, 0x23, 0x1a, 0x3a, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x53, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x68, + 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x67, 0x72, 0x70, + 0x63, 0x6c, 0x62, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x07, 0x05, 0x12, 0x03, 0x5e, 0x02, 0x06, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x07, 0x01, 0x12, 0x03, 0x5e, 0x07, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x07, 0x03, 0x12, 0x03, 0x5e, 0x20, 0x22, 0x0a, 0x3b, 0x0a, 0x02, 0x04, 0x04, + 0x12, 0x04, 0x62, 0x00, 0x76, 0x01, 0x1a, 0x2f, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, + 0x62, 0x08, 0x16, 0x0a, 0x30, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x64, 0x02, 0x16, + 0x1a, 0x23, 0x20, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x06, 0x12, 0x03, + 0x64, 0x02, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x64, 0x0a, + 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x64, 0x14, 0x15, 0x0a, + 0x78, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x68, 0x02, 0x16, 0x1a, 0x6b, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x20, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x2c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x0a, + 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x01, 0x05, 0x12, 0x03, 0x68, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x68, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, + 0x68, 0x14, 0x15, 0x0a, 0x1b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, 0x03, 0x6b, 0x02, 0x19, + 0x1a, 0x0e, 0x20, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x6b, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6b, 0x09, 0x14, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x6b, 0x17, 0x18, 0x0a, 0x95, 0x01, 0x0a, 0x04, 0x04, + 0x04, 0x02, 0x03, 0x12, 0x03, 0x6f, 0x02, 0x17, 0x1a, 0x87, 0x01, 0x20, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x49, 0x44, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6d, 0x6f, 0x6e, 0x67, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x0a, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x52, 0x50, 0x43, 0x27, 0x73, 0x20, 0x6d, 0x61, 0x64, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x05, 0x12, 0x03, 0x6f, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x03, 0x6f, 0x09, 0x12, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x03, 0x6f, 0x15, 0x16, 0x0a, 0x1b, 0x0a, 0x04, + 0x04, 0x04, 0x02, 0x04, 0x12, 0x03, 0x72, 0x02, 0x28, 0x1a, 0x0e, 0x20, 0x67, 0x52, 0x50, 0x43, + 0x4c, 0x42, 0x20, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x04, 0x06, 0x12, 0x03, 0x72, 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x72, 0x12, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x72, 0x26, 0x27, 0x0a, 0x1f, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x05, 0x12, 0x03, 0x75, 0x02, 0x16, + 0x1a, 0x12, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x05, 0x12, 0x03, 0x75, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x01, 0x12, 0x03, 0x75, 0x09, 0x11, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, 0x12, 0x03, 0x75, 0x14, 0x15, 0x0a, 0x27, + 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x79, 0x00, 0x7e, 0x01, 0x1a, 0x1b, 0x20, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, + 0x79, 0x08, 0x21, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x7b, 0x02, 0x16, + 0x1a, 0x35, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x7b, 0x02, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x7b, 0x0a, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x7b, 0x14, + 0x15, 0x0a, 0x2a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0x81, 0x01, 0x00, 0x84, 0x01, 0x01, 0x1a, + 0x1c, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0x81, 0x01, 0x08, 0x22, 0x0a, 0x45, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x00, 0x12, 0x04, 0x83, 0x01, 0x02, 0x24, 0x1a, 0x37, 0x20, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x04, 0x83, 0x01, 0x02, 0x07, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0x83, 0x01, 0x08, 0x1f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0x83, 0x01, 0x22, 0x23, 0x0a, 0x38, + 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0x87, 0x01, 0x00, 0x8f, 0x01, 0x01, 0x1a, 0x2a, 0x20, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, + 0x04, 0x87, 0x01, 0x08, 0x1a, 0x0a, 0x91, 0x01, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x04, + 0x8a, 0x01, 0x02, 0x11, 0x1a, 0x82, 0x01, 0x20, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x2c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x00, 0x05, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, + 0x01, 0x12, 0x04, 0x8a, 0x01, 0x08, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, + 0x12, 0x04, 0x8a, 0x01, 0x0f, 0x10, 0x0a, 0x67, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, + 0x8e, 0x01, 0x02, 0x18, 0x1a, 0x59, 0x20, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x0a, + 0x20, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x07, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8e, 0x01, 0x08, 0x13, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8e, 0x01, 0x16, 0x17, 0x0a, 0x29, 0x0a, 0x02, + 0x04, 0x08, 0x12, 0x06, 0x92, 0x01, 0x00, 0xa1, 0x01, 0x01, 0x1a, 0x1b, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, + 0x92, 0x01, 0x08, 0x22, 0x0a, 0xe3, 0x01, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, 0x97, + 0x01, 0x02, 0x20, 0x1a, 0xd4, 0x01, 0x20, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x49, 0x66, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x0a, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x78, 0x65, 0x64, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x0a, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x00, 0x06, 0x12, 0x04, 0x97, 0x01, 0x02, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x97, 0x01, 0x0e, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x97, 0x01, 0x1e, 0x1f, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, + 0x04, 0x9a, 0x01, 0x02, 0x36, 0x1a, 0x33, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x65, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x01, 0x04, 0x12, 0x04, 0x9a, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x01, 0x06, 0x12, 0x04, 0x9a, 0x01, 0x0b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x9a, 0x01, 0x1e, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x9a, 0x01, 0x34, 0x35, 0x0a, 0x43, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x04, + 0x9d, 0x01, 0x02, 0x16, 0x1a, 0x35, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9d, 0x01, 0x02, 0x09, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x02, 0x01, 0x12, 0x04, 0x9d, 0x01, 0x0a, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x02, 0x03, 0x12, 0x04, 0x9d, 0x01, 0x14, 0x15, 0x0a, 0x3b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x03, + 0x12, 0x04, 0xa0, 0x01, 0x02, 0x21, 0x1a, 0x2d, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x06, 0x12, 0x04, + 0xa0, 0x01, 0x02, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa0, + 0x01, 0x0d, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa0, 0x01, + 0x1f, 0x20, 0x0a, 0x57, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xa4, 0x01, 0x00, 0xa7, 0x01, 0x01, + 0x1a, 0x49, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x61, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x09, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x08, 0x23, 0x0a, 0x32, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, + 0x12, 0x04, 0xa6, 0x01, 0x02, 0x16, 0x1a, 0x24, 0x20, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x09, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa6, 0x01, 0x0a, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xa6, 0x01, 0x14, 0x15, 0x0a, 0x82, 0x01, 0x0a, 0x02, 0x06, 0x00, + 0x12, 0x06, 0xab, 0x01, 0x00, 0xc9, 0x01, 0x01, 0x1a, 0x74, 0x20, 0x41, 0x20, 0x73, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x65, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x50, 0x43, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x0a, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, + 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x04, 0xab, 0x01, 0x08, 0x13, 0x0a, 0x41, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x00, 0x12, 0x04, 0xad, 0x01, 0x02, 0x27, 0x1a, 0x33, 0x20, 0x4f, 0x6e, 0x65, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xad, 0x01, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xad, 0x01, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xad, 0x01, 0x20, 0x25, 0x0a, 0x63, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x01, 0x02, 0x38, 0x1a, 0x55, 0x20, 0x4f, 0x6e, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x61, 0x73, 0x2d, 0x69, 0x73, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb1, 0x01, 0x06, 0x0f, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xb1, 0x01, 0x10, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb1, 0x01, 0x28, 0x36, 0x0a, 0x9b, 0x01, + 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x06, 0xb5, 0x01, 0x02, 0xb6, 0x01, 0x33, 0x1a, 0x8a, + 0x01, 0x20, 0x4f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x20, 0x28, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x29, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb5, 0x01, 0x06, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x02, 0x02, 0x12, 0x04, 0xb5, 0x01, 0x1a, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x02, 0x06, 0x12, 0x04, 0xb6, 0x01, 0x0f, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xb6, 0x01, 0x16, 0x31, 0x0a, 0x9e, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x03, + 0x12, 0x06, 0xba, 0x01, 0x02, 0xbb, 0x01, 0x2b, 0x1a, 0x8d, 0x01, 0x20, 0x41, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x28, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x65, 0x64, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x29, 0x2e, 0x0a, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, + 0x01, 0x12, 0x04, 0xba, 0x01, 0x06, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x05, + 0x12, 0x04, 0xba, 0x01, 0x19, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x02, 0x12, + 0x04, 0xba, 0x01, 0x20, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, 0x04, + 0xbb, 0x01, 0x0f, 0x29, 0x0a, 0xc8, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x04, 0x12, 0x06, 0xc0, + 0x01, 0x02, 0xc1, 0x01, 0x33, 0x1a, 0xb7, 0x01, 0x20, 0x41, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, + 0x6c, 0x79, 0x2e, 0x0a, 0x20, 0x41, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x0a, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x61, 0x20, 0x6f, 0x66, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x06, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc0, 0x01, 0x15, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xc0, 0x01, 0x1c, 0x36, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x04, 0x06, 0x12, 0x04, 0xc1, 0x01, 0x0f, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc1, 0x01, 0x16, 0x31, 0x0a, 0xf7, 0x01, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x05, 0x12, 0x06, 0xc7, 0x01, 0x02, 0xc8, 0x01, 0x33, 0x1a, 0xe6, 0x01, 0x20, 0x41, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x61, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x20, 0x69, 0x6e, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2e, 0x20, 0x41, 0x0a, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x0a, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc7, + 0x01, 0x06, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x05, 0x12, 0x04, 0xc7, 0x01, + 0x15, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xc7, 0x01, 0x1c, + 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x06, 0x12, 0x04, 0xc8, 0x01, 0x0f, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc8, 0x01, 0x16, 0x31, 0x0a, + 0x5f, 0x0a, 0x02, 0x06, 0x01, 0x12, 0x06, 0xcd, 0x01, 0x00, 0xd0, 0x01, 0x01, 0x1a, 0x51, 0x20, + 0x41, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x20, 0x73, 0x6f, 0x20, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x0a, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x01, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x08, 0x1c, 0x0a, 0x36, 0x0a, + 0x04, 0x06, 0x01, 0x02, 0x00, 0x12, 0x04, 0xcf, 0x01, 0x02, 0x49, 0x1a, 0x28, 0x20, 0x41, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xcf, 0x01, 0x06, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0xcf, + 0x01, 0x18, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x01, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcf, 0x01, + 0x35, 0x47, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0a, 0x12, 0x06, 0xd2, 0x01, 0x00, 0xd7, 0x01, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0xd2, 0x01, 0x08, 0x20, 0x0a, 0x43, 0x0a, + 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x15, 0x1a, 0x35, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x70, 0x63, + 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, + 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd4, 0x01, 0x08, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd4, 0x01, 0x13, 0x14, 0x0a, + 0x5a, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, 0x12, 0x04, 0xd6, 0x01, 0x02, 0x18, 0x1a, 0x4c, 0x20, + 0x49, 0x66, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x70, 0x63, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, + 0x63, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd6, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xd6, 0x01, 0x08, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xd6, 0x01, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, + 0xd9, 0x01, 0x00, 0xde, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xd9, + 0x01, 0x08, 0x21, 0x0a, 0x3b, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0xdb, 0x01, 0x02, + 0x26, 0x1a, 0x2d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x52, 0x50, 0x43, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x70, 0x65, 0x65, 0x72, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x06, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x15, 0x21, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x24, 0x25, 0x0a, 0x47, 0x0a, + 0x04, 0x04, 0x0b, 0x02, 0x01, 0x12, 0x04, 0xdd, 0x01, 0x02, 0x19, 0x1a, 0x39, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x50, 0x43, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, + 0x70, 0x65, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xdd, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xdd, 0x01, 0x08, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xdd, + 0x01, 0x17, 0x18, 0x0a, 0x49, 0x0a, 0x02, 0x06, 0x02, 0x12, 0x06, 0xe1, 0x01, 0x00, 0xe5, 0x01, + 0x01, 0x1a, 0x3b, 0x20, 0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, + 0x20, 0x4c, 0x42, 0x20, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x0a, 0x0a, 0x0b, + 0x0a, 0x03, 0x06, 0x02, 0x01, 0x12, 0x04, 0xe1, 0x01, 0x08, 0x20, 0x0a, 0x4f, 0x0a, 0x04, 0x06, + 0x02, 0x02, 0x00, 0x12, 0x06, 0xe3, 0x01, 0x02, 0xe4, 0x01, 0x2c, 0x1a, 0x3f, 0x20, 0x47, 0x65, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x52, 0x50, 0x43, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x74, + 0x65, 0x73, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe3, 0x01, 0x06, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x02, 0x02, 0x00, 0x02, 0x12, 0x04, 0xe3, 0x01, 0x15, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x02, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xe4, 0x01, 0x0f, 0x28, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_grpc_test, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("grpc/test.proto", &si) +} diff --git a/internal/testprotos/make_protos.sh b/internal/testprotos/make_protos.sh index 287ed7e3..2fd476b4 100755 --- a/internal/testprotos/make_protos.sh +++ b/internal/testprotos/make_protos.sh @@ -31,13 +31,14 @@ if [[ "$(${PROTOC} --version 2>/dev/null)" != "libprotoc ${PROTOC_VERSION}" ]]; fi go install github.com/golang/protobuf/protoc-gen-go +go install github.com/jhump/protoreflect/desc/sourceinfo/cmd/protoc-gen-gosrcinfo # Output directory will effectively be GOPATH/src. outdir="../../../../.." -${PROTOC} "--go_out=plugins=grpc:$outdir" -I. *.proto -${PROTOC} "--go_out=plugins=grpc:$outdir" -I. nopkg/*.proto -${PROTOC} "--go_out=plugins=grpc:$outdir" -I. pkg/*.proto -${PROTOC} "--go_out=plugins=grpc:$outdir" -I. grpc/*.proto +${PROTOC} "--go_out=plugins=grpc:$outdir" "--gosrcinfo_out=debug:$outdir" -I. *.proto +${PROTOC} "--go_out=plugins=grpc:$outdir" "--gosrcinfo_out=debug:$outdir" -I. nopkg/*.proto +${PROTOC} "--go_out=plugins=grpc:$outdir" "--gosrcinfo_out=debug:$outdir" -I. pkg/*.proto +${PROTOC} "--go_out=plugins=grpc:$outdir" "--gosrcinfo_out=debug:$outdir" -I. grpc/*.proto # And make descriptor set (with source info) for several files ${PROTOC} --descriptor_set_out=./desc_test1.protoset --include_source_info --include_imports -I. desc_test1.proto diff --git a/internal/testprotos/nopkg/desc_test_nopkg.pb.srcinfo.go b/internal/testprotos/nopkg/desc_test_nopkg.pb.srcinfo.go new file mode 100644 index 00000000..75c124c9 --- /dev/null +++ b/internal/testprotos/nopkg/desc_test_nopkg.pb.srcinfo.go @@ -0,0 +1,23 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: nopkg/desc_test_nopkg.proto + +package nopkg + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_nopkg_desc_test_nopkg = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x04, 0x30, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x54, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x54, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, + 0x00, 0x30, 0x0a, 0x09, 0x0a, 0x02, 0x0a, 0x00, 0x12, 0x03, 0x04, 0x07, 0x0d, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_nopkg_desc_test_nopkg, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("nopkg/desc_test_nopkg.proto", &si) +} diff --git a/internal/testprotos/nopkg/desc_test_nopkg_new.pb.srcinfo.go b/internal/testprotos/nopkg/desc_test_nopkg_new.pb.srcinfo.go new file mode 100644 index 00000000..31d1a7bc --- /dev/null +++ b/internal/testprotos/nopkg/desc_test_nopkg_new.pb.srcinfo.go @@ -0,0 +1,91 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: nopkg/desc_test_nopkg_new.proto + +package nopkg + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_nopkg_desc_test_nopkg_new = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x16, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x54, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x54, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x04, + 0x00, 0x16, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x04, 0x08, 0x10, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x05, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x05, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x05, 0x12, 0x03, 0x05, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x05, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x05, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x06, 0x08, + 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x06, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x06, 0x11, 0x16, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x06, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x06, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x07, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, + 0x03, 0x07, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x07, + 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x07, 0x18, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x07, 0x1c, 0x1d, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x08, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x03, 0x05, 0x12, 0x03, 0x08, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, + 0x12, 0x03, 0x08, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, + 0x08, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x09, 0x08, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x09, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x09, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x09, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x04, 0x03, 0x12, 0x03, 0x09, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, + 0x12, 0x03, 0x0a, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, + 0x0a, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, 0x0a, 0x11, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0a, 0x18, 0x19, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x0a, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0b, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x06, 0x04, 0x12, 0x03, 0x0b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x05, 0x12, 0x03, 0x0b, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, + 0x03, 0x0b, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x0b, + 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x0c, 0x08, 0x1f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x0c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, 0x12, 0x03, 0x0c, 0x11, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x0c, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x03, 0x12, 0x03, 0x0c, 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, + 0x03, 0x0d, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x0d, + 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x0d, 0x11, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x0d, 0x1a, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x0d, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x0e, 0x08, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x09, 0x04, 0x12, 0x03, 0x0e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, + 0x12, 0x03, 0x0e, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, + 0x0e, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x0e, 0x1e, + 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x0f, 0x08, 0x1e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x0f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x0f, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0a, 0x01, 0x12, 0x03, 0x0f, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x03, 0x12, 0x03, 0x0f, 0x1b, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, + 0x10, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x10, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x10, 0x11, 0x17, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x10, 0x18, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x10, 0x1c, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x0c, 0x12, 0x03, 0x11, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, + 0x04, 0x12, 0x03, 0x11, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, + 0x03, 0x11, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x11, + 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x11, 0x1b, 0x1d, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x12, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x12, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x05, 0x12, 0x03, 0x12, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0d, 0x01, 0x12, 0x03, 0x12, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, + 0x12, 0x03, 0x12, 0x1c, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x03, 0x13, + 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x13, 0x08, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x05, 0x12, 0x03, 0x13, 0x11, 0x15, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x13, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0e, 0x03, 0x12, 0x03, 0x13, 0x1a, 0x1c, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, + 0x05, 0x12, 0x03, 0x15, 0x08, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x05, 0x00, 0x12, 0x03, + 0x15, 0x13, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x05, 0x00, 0x01, 0x12, 0x03, 0x15, 0x13, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x05, 0x00, 0x02, 0x12, 0x03, 0x15, 0x1a, 0x1e, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_nopkg_desc_test_nopkg_new, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("nopkg/desc_test_nopkg_new.proto", &si) +} diff --git a/internal/testprotos/pkg/desc_test_pkg.pb.srcinfo.go b/internal/testprotos/pkg/desc_test_pkg.pb.srcinfo.go new file mode 100644 index 00000000..9e4df791 --- /dev/null +++ b/internal/testprotos/pkg/desc_test_pkg.pb.srcinfo.go @@ -0,0 +1,53 @@ +// Code generated by protoc-gen-gosrcinfo. DO NOT EDIT. +// source: pkg/desc_test_pkg.proto + +package pkg + +import "github.com/jhump/protoreflect/desc/sourceinfo" +import "google.golang.org/protobuf/proto" +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +var srcInfo_pkg_desc_test_pkg = []byte{ + 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x14, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x02, 0x00, 0x50, 0x0a, 0x09, 0x0a, 0x02, + 0x08, 0x0b, 0x12, 0x03, 0x02, 0x00, 0x50, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x04, 0x00, + 0x20, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x06, 0x00, 0x10, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x06, 0x05, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x07, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x07, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x07, + 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x08, 0x08, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x08, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x08, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, + 0x00, 0x02, 0x02, 0x12, 0x03, 0x09, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x09, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, + 0x03, 0x09, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0a, 0x08, + 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0a, 0x08, 0x0b, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0a, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x04, 0x12, 0x03, 0x0b, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x04, 0x01, 0x12, 0x03, 0x0b, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, + 0x02, 0x12, 0x03, 0x0b, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, + 0x0c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0c, 0x08, + 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x0c, 0x0e, 0x0f, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0d, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x06, 0x02, 0x12, 0x03, 0x0d, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, + 0x12, 0x03, 0x0e, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, + 0x0e, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x0e, 0x0e, + 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x0f, 0x08, 0x10, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x0f, 0x08, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x0f, 0x0e, 0x0f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, + 0x12, 0x04, 0x12, 0x00, 0x14, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x12, + 0x08, 0x0b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x13, 0x08, 0x1d, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x13, 0x08, 0x10, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x13, 0x11, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x13, 0x15, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x13, 0x1b, 0x1c, +} + +func init() { + var si descriptorpb.SourceCodeInfo + if err := proto.Unmarshal(srcInfo_pkg_desc_test_pkg, &si); err != nil { + panic(err) + } + sourceinfo.RegisterSourceInfo("pkg/desc_test_pkg.proto", &si) +} From 877b41a51f6dc697509e338f7d7ceb3e06129edf Mon Sep 17 00:00:00 2001 From: Josh Humphries Date: Tue, 15 Feb 2022 13:17:52 -0500 Subject: [PATCH 3/4] add srcinforeflection package --- .../srcinforeflection/serverreflection.go | 200 ++++++++++++++++++ .../serverreflection_test.go | 145 +++++++++++++ 2 files changed, 345 insertions(+) create mode 100644 desc/sourceinfo/srcinforeflection/serverreflection.go create mode 100644 desc/sourceinfo/srcinforeflection/serverreflection_test.go diff --git a/desc/sourceinfo/srcinforeflection/serverreflection.go b/desc/sourceinfo/srcinforeflection/serverreflection.go new file mode 100644 index 00000000..621f2523 --- /dev/null +++ b/desc/sourceinfo/srcinforeflection/serverreflection.go @@ -0,0 +1,200 @@ +// Package srcinforeflection provides an implementation of server reflection +// that includes source code info, if the protoc-gen-gosrcinfo plugin was used +// for the files that contain the descriptors being served. This allows for +// sending comment information to dynamic/reflective clients. +package srcinforeflection + +import ( + "github.com/golang/protobuf/proto" + "github.com/jhump/protoreflect/desc/sourceinfo" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/reflection" + rpb "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "io" + "sort" +) + +// NB: This was forked from the implementation in google.golang.org/grpc/reflection. +// However, this implementation is very different (and MUCH more concise) since it +// uses the v2 API for protobuf. In addition to this difference, it also uses +// the sourceinfo package to load file descriptors, which will merge in source +// code information (which contains information about element locations and comments). +type serverReflectionServer struct { + s reflection.GRPCServer +} + +// Register registers the server reflection service on the given gRPC server. +func Register(s reflection.GRPCServer) { + rpb.RegisterServerReflectionServer(s, &serverReflectionServer{s: s}) +} + +func (s *serverReflectionServer) listServices() []string { + svcInfo := s.s.GetServiceInfo() + svcNames := make([]string, 0, len(svcInfo)) + for n := range svcInfo { + svcNames = append(svcNames, n) + } + sort.Strings(svcNames) + return svcNames +} + +// fileDescWithDependencies returns a slice of serialized fileDescriptors in +// wire format ([]byte). The fileDescriptors will include fd and all the +// transitive dependencies of fd with names not in sentFileDescriptors. +func fileDescWithDependencies(file string, sentFileDescriptors map[string]struct{}) ([][]byte, error) { + fd, err := sourceinfo.GlobalFiles.FindFileByPath(file) + if err != nil { + return nil, err + } + var r [][]byte + queue := []protoreflect.FileDescriptor{fd} + for len(queue) > 0 { + currentfd := queue[0] + queue = queue[1:] + if _, sent := sentFileDescriptors[currentfd.Path()]; len(r) == 0 || !sent { + sentFileDescriptors[currentfd.Path()] = struct{}{} + fdProto := protodesc.ToFileDescriptorProto(fd) + currentfdEncoded, err := proto.Marshal(fdProto) + if err != nil { + return nil, err + } + r = append(r, currentfdEncoded) + } + for i := 0; i < currentfd.Imports().Len(); i++ { + queue = append(queue, currentfd.Imports().Get(i)) + } + } + return r, nil +} + +// fileDescEncodingContainingSymbol finds the file descriptor containing the +// given symbol, finds all of its previously unsent transitive dependencies, +// does marshalling on them, and returns the marshalled result. The given symbol +// can be a type, a service or a method. +func fileDescEncodingContainingSymbol(name string, sentFileDescriptors map[string]struct{}) ([][]byte, error) { + d, err := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(name)) + if err != nil { + return nil, err + } + return fileDescWithDependencies(d.ParentFile().Path(), sentFileDescriptors) +} + +// fileDescEncodingContainingExtension finds the file descriptor containing +// given extension, finds all of its previously unsent transitive dependencies, +// does marshalling on them, and returns the marshalled result. +func fileDescEncodingContainingExtension(typeName string, extNum int32, sentFileDescriptors map[string]struct{}) ([][]byte, error) { + xt, err := protoregistry.GlobalTypes.FindExtensionByNumber(protoreflect.FullName(typeName), protoreflect.FieldNumber(extNum)) + if err != nil { + return nil, err + } + return fileDescWithDependencies(xt.TypeDescriptor().ParentFile().Path(), sentFileDescriptors) +} + +// allExtensionNumbersForTypeName returns all extension numbers for the given type. +func allExtensionNumbersForTypeName(name string) []int32 { + var numbers []int32 + protoregistry.GlobalTypes.RangeExtensionsByMessage(protoreflect.FullName(name), func(xt protoreflect.ExtensionType) bool { + numbers = append(numbers, int32(xt.TypeDescriptor().Number())) + return true + }) + sort.Slice(numbers, func(i, j int) bool { + return numbers[i] < numbers[j] + }) + return numbers +} + +// ServerReflectionInfo is the reflection service handler. +func (s *serverReflectionServer) ServerReflectionInfo(stream rpb.ServerReflection_ServerReflectionInfoServer) error { + sentFileDescriptors := map[string]struct{}{} + for { + in, err := stream.Recv() + if err == io.EOF { + return nil + } + if err != nil { + return err + } + + out := &rpb.ServerReflectionResponse{ + ValidHost: in.Host, + OriginalRequest: in, + } + switch req := in.MessageRequest.(type) { + case *rpb.ServerReflectionRequest_FileByFilename: + b, err := fileDescWithDependencies(req.FileByFilename, sentFileDescriptors) + if err != nil { + out.MessageResponse = &rpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &rpb.ErrorResponse{ + ErrorCode: int32(codes.NotFound), + ErrorMessage: err.Error(), + }, + } + } else { + out.MessageResponse = &rpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &rpb.FileDescriptorResponse{FileDescriptorProto: b}, + } + } + case *rpb.ServerReflectionRequest_FileContainingSymbol: + b, err := fileDescEncodingContainingSymbol(req.FileContainingSymbol, sentFileDescriptors) + if err != nil { + out.MessageResponse = &rpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &rpb.ErrorResponse{ + ErrorCode: int32(codes.NotFound), + ErrorMessage: err.Error(), + }, + } + } else { + out.MessageResponse = &rpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &rpb.FileDescriptorResponse{FileDescriptorProto: b}, + } + } + case *rpb.ServerReflectionRequest_FileContainingExtension: + typeName := req.FileContainingExtension.ContainingType + extNum := req.FileContainingExtension.ExtensionNumber + b, err := fileDescEncodingContainingExtension(typeName, extNum, sentFileDescriptors) + if err != nil { + out.MessageResponse = &rpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &rpb.ErrorResponse{ + ErrorCode: int32(codes.NotFound), + ErrorMessage: err.Error(), + }, + } + } else { + out.MessageResponse = &rpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &rpb.FileDescriptorResponse{FileDescriptorProto: b}, + } + } + case *rpb.ServerReflectionRequest_AllExtensionNumbersOfType: + extNums := allExtensionNumbersForTypeName(req.AllExtensionNumbersOfType) + out.MessageResponse = &rpb.ServerReflectionResponse_AllExtensionNumbersResponse{ + AllExtensionNumbersResponse: &rpb.ExtensionNumberResponse{ + BaseTypeName: req.AllExtensionNumbersOfType, + ExtensionNumber: extNums, + }, + } + case *rpb.ServerReflectionRequest_ListServices: + svcNames := s.listServices() + serviceResponses := make([]*rpb.ServiceResponse, len(svcNames)) + for i, n := range svcNames { + serviceResponses[i] = &rpb.ServiceResponse{ + Name: n, + } + } + out.MessageResponse = &rpb.ServerReflectionResponse_ListServicesResponse{ + ListServicesResponse: &rpb.ListServiceResponse{ + Service: serviceResponses, + }, + } + default: + return status.Errorf(codes.InvalidArgument, "invalid MessageRequest: %v", in.MessageRequest) + } + + if err := stream.Send(out); err != nil { + return err + } + } +} diff --git a/desc/sourceinfo/srcinforeflection/serverreflection_test.go b/desc/sourceinfo/srcinforeflection/serverreflection_test.go new file mode 100644 index 00000000..dea56c1b --- /dev/null +++ b/desc/sourceinfo/srcinforeflection/serverreflection_test.go @@ -0,0 +1,145 @@ +package srcinforeflection + +import ( + "context" + "fmt" + "net" + "testing" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" + "google.golang.org/protobuf/types/descriptorpb" + + "github.com/jhump/protoreflect/desc" + "github.com/jhump/protoreflect/grpcreflect" + "github.com/jhump/protoreflect/internal/testprotos" + "github.com/jhump/protoreflect/internal/testutil" +) + +func TestReflectionService(t *testing.T) { + svc := grpc.NewServer() + testprotos.RegisterRpcServiceServer(svc, &testprotos.UnimplementedRpcServiceServer{}) + Register(svc) + l, err := net.Listen("tcp", "127.0.0.1:0") + testutil.Ok(t, err) + go func() { + if err := svc.Serve(l); err != nil { + t.Logf("error from gRPC server: %v", err) + } + }() + defer func() { + _ = svc.Stop + }() + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + cc, err := grpc.DialContext(ctx, l.Addr().String(), + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithBlock()) + testutil.Ok(t, err) + defer func() { + _ = cc.Close() + }() + + stub := grpc_reflection_v1alpha.NewServerReflectionClient(cc) + ctx, cancel = context.WithCancel(context.Background()) + defer cancel() + cli := grpcreflect.NewClient(ctx, stub) + defer cli.Reset() + + t.Run("ListServices", func(t *testing.T) { + svcs, err := cli.ListServices() + testutil.Ok(t, err) + testutil.Eq(t, []string{"foo.bar.RpcService", "grpc.reflection.v1alpha.ServerReflection"}, svcs) + }) + + t.Run("FileContainingSymbol", func(t *testing.T) { + fd, err := cli.FileContainingSymbol("foo.bar.RpcService") + testutil.Ok(t, err) + d := fd.FindSymbol("foo.bar.RpcService") + testutil.Eq(t, " Service comment\n", d.GetSourceInfo().GetLeadingComments()) + md := d.(*desc.ServiceDescriptor).FindMethodByName("StreamingRpc") + testutil.Eq(t, " Method comment\n", md.GetSourceInfo().GetLeadingComments()) + md = d.(*desc.ServiceDescriptor).FindMethodByName("UnaryRpc") + testutil.Eq(t, " trailer for method\n", md.GetSourceInfo().GetTrailingComments()) + }) + + t.Run("FileByFilename", func(t *testing.T) { + fd, err := cli.FileByFilename("desc_test1.proto") + testutil.Ok(t, err) + checkFileComments(t, fd) + }) + + t.Run("FileContainingExtension", func(t *testing.T) { + fd, err := cli.FileContainingExtension("testprotos.AnotherTestMessage", 100) + testutil.Ok(t, err) + testutil.Eq(t, "desc_test1.proto", fd.GetName()) + checkFileComments(t, fd) + }) + + t.Run("AllExtensionsByType", func(t *testing.T) { + nums, err := cli.AllExtensionNumbersForType("testprotos.AnotherTestMessage") + testutil.Ok(t, err) + testutil.Eq(t, []int32{100, 101, 102, 103, 200}, nums) + }) +} + +func checkFileComments(t *testing.T, fd *desc.FileDescriptor) { + for _, md := range fd.GetMessageTypes() { + checkMessageComments(t, md) + } + for _, ed := range fd.GetEnumTypes() { + checkEnumComments(t, ed) + } + for _, exd := range fd.GetExtensions() { + checkComment(t, exd) + } + for _, sd := range fd.GetServices() { + checkComment(t, sd) + for _, mtd := range sd.GetMethods() { + checkComment(t, mtd) + } + } +} + +func checkMessageComments(t *testing.T, md *desc.MessageDescriptor) { + checkComment(t, md) + + for _, fld := range md.GetFields() { + if fld.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP { + continue // comment is attributed to group message, not field + } + checkComment(t, fld) + } + for _, od := range md.GetOneOfs() { + checkComment(t, od) + } + + for _, nmd := range md.GetNestedMessageTypes() { + if nmd.IsMapEntry() { + // synthetic map entry messages won't have comments + continue + } + checkMessageComments(t, nmd) + } + for _, ed := range md.GetNestedEnumTypes() { + checkEnumComments(t, ed) + } + for _, exd := range md.GetNestedExtensions() { + checkComment(t, exd) + } +} + +func checkEnumComments(t *testing.T, ed *desc.EnumDescriptor) { + checkComment(t, ed) + for _, evd := range ed.GetValues() { + checkComment(t, evd) + } +} + +func checkComment(t *testing.T, d desc.Descriptor) { + cmt := fmt.Sprintf(" Comment for %s\n", d.GetName()) + testutil.Eq(t, cmt, d.GetSourceInfo().GetLeadingComments()) +} From 00df8f9632ccc959a732a988b6808f38368c3df2 Mon Sep 17 00:00:00 2001 From: Josh Humphries Date: Tue, 15 Feb 2022 13:34:08 -0500 Subject: [PATCH 4/4] cleanup, add comments --- .../cmd/protoc-gen-gosrcinfo/main.go | 3 ++ desc/sourceinfo/registry.go | 31 +++++++++++++++++++ .../srcinforeflection/serverreflection.go | 10 +++--- .../serverreflection_test.go | 4 +-- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go b/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go index 14b7c373..97fbfeb2 100644 --- a/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go +++ b/desc/sourceinfo/cmd/protoc-gen-gosrcinfo/main.go @@ -1,3 +1,6 @@ +// Command protoc-gen-gosrcinfo is a protoc plugin. It emits Go code, into files +// named ".pb.srcinfo.go". These source files include source code info for +// processed proto files and register that info with the srcinfo package. package main import ( diff --git a/desc/sourceinfo/registry.go b/desc/sourceinfo/registry.go index 5c904e25..eba91a86 100644 --- a/desc/sourceinfo/registry.go +++ b/desc/sourceinfo/registry.go @@ -1,3 +1,21 @@ +// Package sourceinfo provides the ability to register and query source code info +// for file descriptors that are compiled into the binary. This data is registered +// by code generated from the protoc-gen-gosrcinfo plugin. +// +// The standard descriptors bundled into the compiled binary are stripped of source +// code info, to reduce binary size and reduce runtime memory footprint. However, +// the source code info can be very handy and worth the size cost when used with +// gRPC services and the server reflection service. Without source code info, the +// descriptors that a client downloads from the reflection service have no comments. +// But the presence of comments, and the ability to show them to humans, can greatly +// improve the utility of user agents that use the reflection service. +// +// So, by using the protoc-gen-gosrcinfo plugin and this package, we can recover the +// source code info and comments that were otherwise stripped by protoc-gen-go. +// +// Also see the "github.com/jhump/protoreflect/desc/srcinfo/srcinforeflection" package +// for an implementation of the gRPC server reflection service that uses this package +// return descriptors with source code info. package sourceinfo import ( @@ -11,6 +29,11 @@ import ( ) var ( + // GlobalFiles is a registry of descriptors that include source code info, if the + // file they belong to were processed with protoc-gen-gosrcinfo. + // + // If is mean to serve as a drop-in alternative to protoregistry.GlobalFiles that + // can include source code info in the returned descriptors. GlobalFiles protodesc.Resolver = registry{} mu sync.RWMutex @@ -18,12 +41,20 @@ var ( fileDescriptors = map[protoreflect.FileDescriptor]protoreflect.FileDescriptor{} ) +// RegisterSourceInfo registers the given source code info for the file descriptor +// with the given path/name. +// +// This is automatically used from generated code if using the protoc-gen-gosrcinfo +// plugin. func RegisterSourceInfo(file string, srcInfo *descriptorpb.SourceCodeInfo) { mu.Lock() defer mu.Unlock() sourceInfoByFile[file] = srcInfo } +// SourceInfoForFile queries for any registered source code info for the file +// descriptor with the given path/name. It returns nil if no source code info +// was registered. func SourceInfoForFile(file string) *descriptorpb.SourceCodeInfo { mu.RLock() defer mu.RUnlock() diff --git a/desc/sourceinfo/srcinforeflection/serverreflection.go b/desc/sourceinfo/srcinforeflection/serverreflection.go index 621f2523..3cf02628 100644 --- a/desc/sourceinfo/srcinforeflection/serverreflection.go +++ b/desc/sourceinfo/srcinforeflection/serverreflection.go @@ -5,17 +5,19 @@ package srcinforeflection import ( - "github.com/golang/protobuf/proto" - "github.com/jhump/protoreflect/desc/sourceinfo" + "io" + "sort" + "google.golang.org/grpc/codes" "google.golang.org/grpc/reflection" rpb "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" - "io" - "sort" + + "github.com/jhump/protoreflect/desc/sourceinfo" ) // NB: This was forked from the implementation in google.golang.org/grpc/reflection. diff --git a/desc/sourceinfo/srcinforeflection/serverreflection_test.go b/desc/sourceinfo/srcinforeflection/serverreflection_test.go index dea56c1b..0a25b03f 100644 --- a/desc/sourceinfo/srcinforeflection/serverreflection_test.go +++ b/desc/sourceinfo/srcinforeflection/serverreflection_test.go @@ -9,7 +9,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" - "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" + rpb "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" "google.golang.org/protobuf/types/descriptorpb" "github.com/jhump/protoreflect/desc" @@ -43,7 +43,7 @@ func TestReflectionService(t *testing.T) { _ = cc.Close() }() - stub := grpc_reflection_v1alpha.NewServerReflectionClient(cc) + stub := rpb.NewServerReflectionClient(cc) ctx, cancel = context.WithCancel(context.Background()) defer cancel() cli := grpcreflect.NewClient(ctx, stub)