1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: google/protobuf/descriptor.proto 3 4/* 5Package descriptor is a generated protocol buffer package. 6 7It is generated from these files: 8 google/protobuf/descriptor.proto 9 10It has these top-level messages: 11 FileDescriptorSet 12 FileDescriptorProto 13 DescriptorProto 14 ExtensionRangeOptions 15 FieldDescriptorProto 16 OneofDescriptorProto 17 EnumDescriptorProto 18 EnumValueDescriptorProto 19 ServiceDescriptorProto 20 MethodDescriptorProto 21 FileOptions 22 MessageOptions 23 FieldOptions 24 OneofOptions 25 EnumOptions 26 EnumValueOptions 27 ServiceOptions 28 MethodOptions 29 UninterpretedOption 30 SourceCodeInfo 31 GeneratedCodeInfo 32*/ 33package descriptor 34 35import proto "github.com/golang/protobuf/proto" 36import fmt "fmt" 37import math "math" 38 39// Reference imports to suppress errors if they are not otherwise used. 40var _ = proto.Marshal 41var _ = fmt.Errorf 42var _ = math.Inf 43 44// This is a compile-time assertion to ensure that this generated file 45// is compatible with the proto package it is being compiled against. 46// A compilation error at this line likely means your copy of the 47// proto package needs to be updated. 48const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 49 50type FieldDescriptorProto_Type int32 51 52const ( 53 // 0 is reserved for errors. 54 // Order is weird for historical reasons. 55 FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 56 FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 57 // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if 58 // negative values are likely. 59 FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 60 FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 61 // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if 62 // negative values are likely. 63 FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 64 FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 65 FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 66 FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 67 FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 68 // Tag-delimited aggregate. 69 // Group type is deprecated and not supported in proto3. However, Proto3 70 // implementations should still be able to parse the group wire format and 71 // treat group fields as unknown fields. 72 FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 73 FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 74 // New in version 2. 75 FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 76 FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 77 FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 78 FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 79 FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 80 FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 81 FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 82) 83 84var FieldDescriptorProto_Type_name = map[int32]string{ 85 1: "TYPE_DOUBLE", 86 2: "TYPE_FLOAT", 87 3: "TYPE_INT64", 88 4: "TYPE_UINT64", 89 5: "TYPE_INT32", 90 6: "TYPE_FIXED64", 91 7: "TYPE_FIXED32", 92 8: "TYPE_BOOL", 93 9: "TYPE_STRING", 94 10: "TYPE_GROUP", 95 11: "TYPE_MESSAGE", 96 12: "TYPE_BYTES", 97 13: "TYPE_UINT32", 98 14: "TYPE_ENUM", 99 15: "TYPE_SFIXED32", 100 16: "TYPE_SFIXED64", 101 17: "TYPE_SINT32", 102 18: "TYPE_SINT64", 103} 104var FieldDescriptorProto_Type_value = map[string]int32{ 105 "TYPE_DOUBLE": 1, 106 "TYPE_FLOAT": 2, 107 "TYPE_INT64": 3, 108 "TYPE_UINT64": 4, 109 "TYPE_INT32": 5, 110 "TYPE_FIXED64": 6, 111 "TYPE_FIXED32": 7, 112 "TYPE_BOOL": 8, 113 "TYPE_STRING": 9, 114 "TYPE_GROUP": 10, 115 "TYPE_MESSAGE": 11, 116 "TYPE_BYTES": 12, 117 "TYPE_UINT32": 13, 118 "TYPE_ENUM": 14, 119 "TYPE_SFIXED32": 15, 120 "TYPE_SFIXED64": 16, 121 "TYPE_SINT32": 17, 122 "TYPE_SINT64": 18, 123} 124 125func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { 126 p := new(FieldDescriptorProto_Type) 127 *p = x 128 return p 129} 130func (x FieldDescriptorProto_Type) String() string { 131 return proto.EnumName(FieldDescriptorProto_Type_name, int32(x)) 132} 133func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error { 134 value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type") 135 if err != nil { 136 return err 137 } 138 *x = FieldDescriptorProto_Type(value) 139 return nil 140} 141func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} } 142 143type FieldDescriptorProto_Label int32 144 145const ( 146 // 0 is reserved for errors 147 FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 148 FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 149 FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 150) 151 152var FieldDescriptorProto_Label_name = map[int32]string{ 153 1: "LABEL_OPTIONAL", 154 2: "LABEL_REQUIRED", 155 3: "LABEL_REPEATED", 156} 157var FieldDescriptorProto_Label_value = map[string]int32{ 158 "LABEL_OPTIONAL": 1, 159 "LABEL_REQUIRED": 2, 160 "LABEL_REPEATED": 3, 161} 162 163func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { 164 p := new(FieldDescriptorProto_Label) 165 *p = x 166 return p 167} 168func (x FieldDescriptorProto_Label) String() string { 169 return proto.EnumName(FieldDescriptorProto_Label_name, int32(x)) 170} 171func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error { 172 value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label") 173 if err != nil { 174 return err 175 } 176 *x = FieldDescriptorProto_Label(value) 177 return nil 178} 179func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { 180 return fileDescriptor0, []int{4, 1} 181} 182 183// Generated classes can be optimized for speed or code size. 184type FileOptions_OptimizeMode int32 185 186const ( 187 FileOptions_SPEED FileOptions_OptimizeMode = 1 188 // etc. 189 FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 190 FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 191) 192 193var FileOptions_OptimizeMode_name = map[int32]string{ 194 1: "SPEED", 195 2: "CODE_SIZE", 196 3: "LITE_RUNTIME", 197} 198var FileOptions_OptimizeMode_value = map[string]int32{ 199 "SPEED": 1, 200 "CODE_SIZE": 2, 201 "LITE_RUNTIME": 3, 202} 203 204func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { 205 p := new(FileOptions_OptimizeMode) 206 *p = x 207 return p 208} 209func (x FileOptions_OptimizeMode) String() string { 210 return proto.EnumName(FileOptions_OptimizeMode_name, int32(x)) 211} 212func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error { 213 value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode") 214 if err != nil { 215 return err 216 } 217 *x = FileOptions_OptimizeMode(value) 218 return nil 219} 220func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 0} } 221 222type FieldOptions_CType int32 223 224const ( 225 // Default mode. 226 FieldOptions_STRING FieldOptions_CType = 0 227 FieldOptions_CORD FieldOptions_CType = 1 228 FieldOptions_STRING_PIECE FieldOptions_CType = 2 229) 230 231var FieldOptions_CType_name = map[int32]string{ 232 0: "STRING", 233 1: "CORD", 234 2: "STRING_PIECE", 235} 236var FieldOptions_CType_value = map[string]int32{ 237 "STRING": 0, 238 "CORD": 1, 239 "STRING_PIECE": 2, 240} 241 242func (x FieldOptions_CType) Enum() *FieldOptions_CType { 243 p := new(FieldOptions_CType) 244 *p = x 245 return p 246} 247func (x FieldOptions_CType) String() string { 248 return proto.EnumName(FieldOptions_CType_name, int32(x)) 249} 250func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error { 251 value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType") 252 if err != nil { 253 return err 254 } 255 *x = FieldOptions_CType(value) 256 return nil 257} 258func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } 259 260type FieldOptions_JSType int32 261 262const ( 263 // Use the default type. 264 FieldOptions_JS_NORMAL FieldOptions_JSType = 0 265 // Use JavaScript strings. 266 FieldOptions_JS_STRING FieldOptions_JSType = 1 267 // Use JavaScript numbers. 268 FieldOptions_JS_NUMBER FieldOptions_JSType = 2 269) 270 271var FieldOptions_JSType_name = map[int32]string{ 272 0: "JS_NORMAL", 273 1: "JS_STRING", 274 2: "JS_NUMBER", 275} 276var FieldOptions_JSType_value = map[string]int32{ 277 "JS_NORMAL": 0, 278 "JS_STRING": 1, 279 "JS_NUMBER": 2, 280} 281 282func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { 283 p := new(FieldOptions_JSType) 284 *p = x 285 return p 286} 287func (x FieldOptions_JSType) String() string { 288 return proto.EnumName(FieldOptions_JSType_name, int32(x)) 289} 290func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error { 291 value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType") 292 if err != nil { 293 return err 294 } 295 *x = FieldOptions_JSType(value) 296 return nil 297} 298func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 1} } 299 300// Is this method side-effect-free (or safe in HTTP parlance), or idempotent, 301// or neither? HTTP based RPC implementation may choose GET verb for safe 302// methods, and PUT verb for idempotent methods instead of the default POST. 303type MethodOptions_IdempotencyLevel int32 304 305const ( 306 MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 307 MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 308 MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 309) 310 311var MethodOptions_IdempotencyLevel_name = map[int32]string{ 312 0: "IDEMPOTENCY_UNKNOWN", 313 1: "NO_SIDE_EFFECTS", 314 2: "IDEMPOTENT", 315} 316var MethodOptions_IdempotencyLevel_value = map[string]int32{ 317 "IDEMPOTENCY_UNKNOWN": 0, 318 "NO_SIDE_EFFECTS": 1, 319 "IDEMPOTENT": 2, 320} 321 322func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { 323 p := new(MethodOptions_IdempotencyLevel) 324 *p = x 325 return p 326} 327func (x MethodOptions_IdempotencyLevel) String() string { 328 return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x)) 329} 330func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error { 331 value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel") 332 if err != nil { 333 return err 334 } 335 *x = MethodOptions_IdempotencyLevel(value) 336 return nil 337} 338func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { 339 return fileDescriptor0, []int{17, 0} 340} 341 342// The protocol compiler can output a FileDescriptorSet containing the .proto 343// files it parses. 344type FileDescriptorSet struct { 345 File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` 346 XXX_unrecognized []byte `json:"-"` 347} 348 349func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} } 350func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) } 351func (*FileDescriptorSet) ProtoMessage() {} 352func (*FileDescriptorSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } 353 354func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto { 355 if m != nil { 356 return m.File 357 } 358 return nil 359} 360 361// Describes a complete .proto file. 362type FileDescriptorProto struct { 363 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 364 Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` 365 // Names of files imported by this file. 366 Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` 367 // Indexes of the public imported files in the dependency list above. 368 PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` 369 // Indexes of the weak imported files in the dependency list. 370 // For Google-internal migration only. Do not use. 371 WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` 372 // All top-level definitions in this file. 373 MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` 374 EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` 375 Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` 376 Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` 377 Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` 378 // This field contains optional information about the original source code. 379 // You may safely remove this entire field without harming runtime 380 // functionality of the descriptors -- the information is needed only by 381 // development tools. 382 SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` 383 // The syntax of the proto file. 384 // The supported values are "proto2" and "proto3". 385 Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` 386 XXX_unrecognized []byte `json:"-"` 387} 388 389func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} } 390func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) } 391func (*FileDescriptorProto) ProtoMessage() {} 392func (*FileDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } 393 394func (m *FileDescriptorProto) GetName() string { 395 if m != nil && m.Name != nil { 396 return *m.Name 397 } 398 return "" 399} 400 401func (m *FileDescriptorProto) GetPackage() string { 402 if m != nil && m.Package != nil { 403 return *m.Package 404 } 405 return "" 406} 407 408func (m *FileDescriptorProto) GetDependency() []string { 409 if m != nil { 410 return m.Dependency 411 } 412 return nil 413} 414 415func (m *FileDescriptorProto) GetPublicDependency() []int32 { 416 if m != nil { 417 return m.PublicDependency 418 } 419 return nil 420} 421 422func (m *FileDescriptorProto) GetWeakDependency() []int32 { 423 if m != nil { 424 return m.WeakDependency 425 } 426 return nil 427} 428 429func (m *FileDescriptorProto) GetMessageType() []*DescriptorProto { 430 if m != nil { 431 return m.MessageType 432 } 433 return nil 434} 435 436func (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { 437 if m != nil { 438 return m.EnumType 439 } 440 return nil 441} 442 443func (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto { 444 if m != nil { 445 return m.Service 446 } 447 return nil 448} 449 450func (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { 451 if m != nil { 452 return m.Extension 453 } 454 return nil 455} 456 457func (m *FileDescriptorProto) GetOptions() *FileOptions { 458 if m != nil { 459 return m.Options 460 } 461 return nil 462} 463 464func (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { 465 if m != nil { 466 return m.SourceCodeInfo 467 } 468 return nil 469} 470 471func (m *FileDescriptorProto) GetSyntax() string { 472 if m != nil && m.Syntax != nil { 473 return *m.Syntax 474 } 475 return "" 476} 477 478// Describes a message type. 479type DescriptorProto struct { 480 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 481 Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` 482 Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` 483 NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` 484 EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` 485 ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` 486 OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` 487 Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` 488 ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` 489 // Reserved field names, which may not be used by fields in the same message. 490 // A given name may only be reserved once. 491 ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` 492 XXX_unrecognized []byte `json:"-"` 493} 494 495func (m *DescriptorProto) Reset() { *m = DescriptorProto{} } 496func (m *DescriptorProto) String() string { return proto.CompactTextString(m) } 497func (*DescriptorProto) ProtoMessage() {} 498func (*DescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } 499 500func (m *DescriptorProto) GetName() string { 501 if m != nil && m.Name != nil { 502 return *m.Name 503 } 504 return "" 505} 506 507func (m *DescriptorProto) GetField() []*FieldDescriptorProto { 508 if m != nil { 509 return m.Field 510 } 511 return nil 512} 513 514func (m *DescriptorProto) GetExtension() []*FieldDescriptorProto { 515 if m != nil { 516 return m.Extension 517 } 518 return nil 519} 520 521func (m *DescriptorProto) GetNestedType() []*DescriptorProto { 522 if m != nil { 523 return m.NestedType 524 } 525 return nil 526} 527 528func (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto { 529 if m != nil { 530 return m.EnumType 531 } 532 return nil 533} 534 535func (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { 536 if m != nil { 537 return m.ExtensionRange 538 } 539 return nil 540} 541 542func (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { 543 if m != nil { 544 return m.OneofDecl 545 } 546 return nil 547} 548 549func (m *DescriptorProto) GetOptions() *MessageOptions { 550 if m != nil { 551 return m.Options 552 } 553 return nil 554} 555 556func (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { 557 if m != nil { 558 return m.ReservedRange 559 } 560 return nil 561} 562 563func (m *DescriptorProto) GetReservedName() []string { 564 if m != nil { 565 return m.ReservedName 566 } 567 return nil 568} 569 570type DescriptorProto_ExtensionRange struct { 571 Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` 572 End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` 573 Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` 574 XXX_unrecognized []byte `json:"-"` 575} 576 577func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} } 578func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) } 579func (*DescriptorProto_ExtensionRange) ProtoMessage() {} 580func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { 581 return fileDescriptor0, []int{2, 0} 582} 583 584func (m *DescriptorProto_ExtensionRange) GetStart() int32 { 585 if m != nil && m.Start != nil { 586 return *m.Start 587 } 588 return 0 589} 590 591func (m *DescriptorProto_ExtensionRange) GetEnd() int32 { 592 if m != nil && m.End != nil { 593 return *m.End 594 } 595 return 0 596} 597 598func (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { 599 if m != nil { 600 return m.Options 601 } 602 return nil 603} 604 605// Range of reserved tag numbers. Reserved tag numbers may not be used by 606// fields or extension ranges in the same message. Reserved ranges may 607// not overlap. 608type DescriptorProto_ReservedRange struct { 609 Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` 610 End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` 611 XXX_unrecognized []byte `json:"-"` 612} 613 614func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_ReservedRange{} } 615func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) } 616func (*DescriptorProto_ReservedRange) ProtoMessage() {} 617func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { 618 return fileDescriptor0, []int{2, 1} 619} 620 621func (m *DescriptorProto_ReservedRange) GetStart() int32 { 622 if m != nil && m.Start != nil { 623 return *m.Start 624 } 625 return 0 626} 627 628func (m *DescriptorProto_ReservedRange) GetEnd() int32 { 629 if m != nil && m.End != nil { 630 return *m.End 631 } 632 return 0 633} 634 635type ExtensionRangeOptions struct { 636 // The parser stores options it doesn't recognize here. See above. 637 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 638 proto.XXX_InternalExtensions `json:"-"` 639 XXX_unrecognized []byte `json:"-"` 640} 641 642func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} } 643func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) } 644func (*ExtensionRangeOptions) ProtoMessage() {} 645func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } 646 647var extRange_ExtensionRangeOptions = []proto.ExtensionRange{ 648 {1000, 536870911}, 649} 650 651func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange { 652 return extRange_ExtensionRangeOptions 653} 654 655func (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { 656 if m != nil { 657 return m.UninterpretedOption 658 } 659 return nil 660} 661 662// Describes a field within a message. 663type FieldDescriptorProto struct { 664 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 665 Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` 666 Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` 667 // If type_name is set, this need not be set. If both this and type_name 668 // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. 669 Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` 670 // For message and enum types, this is the name of the type. If the name 671 // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping 672 // rules are used to find the type (i.e. first the nested types within this 673 // message are searched, then within the parent, on up to the root 674 // namespace). 675 TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` 676 // For extensions, this is the name of the type being extended. It is 677 // resolved in the same manner as type_name. 678 Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` 679 // For numeric types, contains the original text representation of the value. 680 // For booleans, "true" or "false". 681 // For strings, contains the default text contents (not escaped in any way). 682 // For bytes, contains the C escaped value. All bytes >= 128 are escaped. 683 // TODO(kenton): Base-64 encode? 684 DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` 685 // If set, gives the index of a oneof in the containing type's oneof_decl 686 // list. This field is a member of that oneof. 687 OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` 688 // JSON name of this field. The value is set by protocol compiler. If the 689 // user has set a "json_name" option on this field, that option's value 690 // will be used. Otherwise, it's deduced from the field's name by converting 691 // it to camelCase. 692 JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` 693 Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` 694 XXX_unrecognized []byte `json:"-"` 695} 696 697func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} } 698func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) } 699func (*FieldDescriptorProto) ProtoMessage() {} 700func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } 701 702func (m *FieldDescriptorProto) GetName() string { 703 if m != nil && m.Name != nil { 704 return *m.Name 705 } 706 return "" 707} 708 709func (m *FieldDescriptorProto) GetNumber() int32 { 710 if m != nil && m.Number != nil { 711 return *m.Number 712 } 713 return 0 714} 715 716func (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { 717 if m != nil && m.Label != nil { 718 return *m.Label 719 } 720 return FieldDescriptorProto_LABEL_OPTIONAL 721} 722 723func (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { 724 if m != nil && m.Type != nil { 725 return *m.Type 726 } 727 return FieldDescriptorProto_TYPE_DOUBLE 728} 729 730func (m *FieldDescriptorProto) GetTypeName() string { 731 if m != nil && m.TypeName != nil { 732 return *m.TypeName 733 } 734 return "" 735} 736 737func (m *FieldDescriptorProto) GetExtendee() string { 738 if m != nil && m.Extendee != nil { 739 return *m.Extendee 740 } 741 return "" 742} 743 744func (m *FieldDescriptorProto) GetDefaultValue() string { 745 if m != nil && m.DefaultValue != nil { 746 return *m.DefaultValue 747 } 748 return "" 749} 750 751func (m *FieldDescriptorProto) GetOneofIndex() int32 { 752 if m != nil && m.OneofIndex != nil { 753 return *m.OneofIndex 754 } 755 return 0 756} 757 758func (m *FieldDescriptorProto) GetJsonName() string { 759 if m != nil && m.JsonName != nil { 760 return *m.JsonName 761 } 762 return "" 763} 764 765func (m *FieldDescriptorProto) GetOptions() *FieldOptions { 766 if m != nil { 767 return m.Options 768 } 769 return nil 770} 771 772// Describes a oneof. 773type OneofDescriptorProto struct { 774 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 775 Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` 776 XXX_unrecognized []byte `json:"-"` 777} 778 779func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } 780func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) } 781func (*OneofDescriptorProto) ProtoMessage() {} 782func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } 783 784func (m *OneofDescriptorProto) GetName() string { 785 if m != nil && m.Name != nil { 786 return *m.Name 787 } 788 return "" 789} 790 791func (m *OneofDescriptorProto) GetOptions() *OneofOptions { 792 if m != nil { 793 return m.Options 794 } 795 return nil 796} 797 798// Describes an enum type. 799type EnumDescriptorProto struct { 800 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 801 Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` 802 Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` 803 XXX_unrecognized []byte `json:"-"` 804} 805 806func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} } 807func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) } 808func (*EnumDescriptorProto) ProtoMessage() {} 809func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } 810 811func (m *EnumDescriptorProto) GetName() string { 812 if m != nil && m.Name != nil { 813 return *m.Name 814 } 815 return "" 816} 817 818func (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { 819 if m != nil { 820 return m.Value 821 } 822 return nil 823} 824 825func (m *EnumDescriptorProto) GetOptions() *EnumOptions { 826 if m != nil { 827 return m.Options 828 } 829 return nil 830} 831 832// Describes a value within an enum. 833type EnumValueDescriptorProto struct { 834 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 835 Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` 836 Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` 837 XXX_unrecognized []byte `json:"-"` 838} 839 840func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} } 841func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) } 842func (*EnumValueDescriptorProto) ProtoMessage() {} 843func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } 844 845func (m *EnumValueDescriptorProto) GetName() string { 846 if m != nil && m.Name != nil { 847 return *m.Name 848 } 849 return "" 850} 851 852func (m *EnumValueDescriptorProto) GetNumber() int32 { 853 if m != nil && m.Number != nil { 854 return *m.Number 855 } 856 return 0 857} 858 859func (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { 860 if m != nil { 861 return m.Options 862 } 863 return nil 864} 865 866// Describes a service. 867type ServiceDescriptorProto struct { 868 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 869 Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` 870 Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` 871 XXX_unrecognized []byte `json:"-"` 872} 873 874func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} } 875func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) } 876func (*ServiceDescriptorProto) ProtoMessage() {} 877func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } 878 879func (m *ServiceDescriptorProto) GetName() string { 880 if m != nil && m.Name != nil { 881 return *m.Name 882 } 883 return "" 884} 885 886func (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { 887 if m != nil { 888 return m.Method 889 } 890 return nil 891} 892 893func (m *ServiceDescriptorProto) GetOptions() *ServiceOptions { 894 if m != nil { 895 return m.Options 896 } 897 return nil 898} 899 900// Describes a method of a service. 901type MethodDescriptorProto struct { 902 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` 903 // Input and output type names. These are resolved in the same way as 904 // FieldDescriptorProto.type_name, but must refer to a message type. 905 InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` 906 OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` 907 Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` 908 // Identifies if client streams multiple client messages 909 ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` 910 // Identifies if server streams multiple server messages 911 ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` 912 XXX_unrecognized []byte `json:"-"` 913} 914 915func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} } 916func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) } 917func (*MethodDescriptorProto) ProtoMessage() {} 918func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } 919 920const Default_MethodDescriptorProto_ClientStreaming bool = false 921const Default_MethodDescriptorProto_ServerStreaming bool = false 922 923func (m *MethodDescriptorProto) GetName() string { 924 if m != nil && m.Name != nil { 925 return *m.Name 926 } 927 return "" 928} 929 930func (m *MethodDescriptorProto) GetInputType() string { 931 if m != nil && m.InputType != nil { 932 return *m.InputType 933 } 934 return "" 935} 936 937func (m *MethodDescriptorProto) GetOutputType() string { 938 if m != nil && m.OutputType != nil { 939 return *m.OutputType 940 } 941 return "" 942} 943 944func (m *MethodDescriptorProto) GetOptions() *MethodOptions { 945 if m != nil { 946 return m.Options 947 } 948 return nil 949} 950 951func (m *MethodDescriptorProto) GetClientStreaming() bool { 952 if m != nil && m.ClientStreaming != nil { 953 return *m.ClientStreaming 954 } 955 return Default_MethodDescriptorProto_ClientStreaming 956} 957 958func (m *MethodDescriptorProto) GetServerStreaming() bool { 959 if m != nil && m.ServerStreaming != nil { 960 return *m.ServerStreaming 961 } 962 return Default_MethodDescriptorProto_ServerStreaming 963} 964 965type FileOptions struct { 966 // Sets the Java package where classes generated from this .proto will be 967 // placed. By default, the proto package is used, but this is often 968 // inappropriate because proto packages do not normally start with backwards 969 // domain names. 970 JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` 971 // If set, all the classes from the .proto file are wrapped in a single 972 // outer class with the given name. This applies to both Proto1 973 // (equivalent to the old "--one_java_file" option) and Proto2 (where 974 // a .proto always translates to a single class, but you may want to 975 // explicitly choose the class name). 976 JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` 977 // If set true, then the Java code generator will generate a separate .java 978 // file for each top-level message, enum, and service defined in the .proto 979 // file. Thus, these types will *not* be nested inside the outer class 980 // named by java_outer_classname. However, the outer class will still be 981 // generated to contain the file's getDescriptor() method as well as any 982 // top-level extensions defined in the file. 983 JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` 984 // This option does nothing. 985 JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` 986 // If set true, then the Java2 code generator will generate code that 987 // throws an exception whenever an attempt is made to assign a non-UTF-8 988 // byte sequence to a string field. 989 // Message reflection will do the same. 990 // However, an extension field still accepts non-UTF-8 byte sequences. 991 // This option has no effect on when used with the lite runtime. 992 JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` 993 OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` 994 // Sets the Go package where structs generated from this .proto will be 995 // placed. If omitted, the Go package will be derived from the following: 996 // - The basename of the package import path, if provided. 997 // - Otherwise, the package statement in the .proto file, if present. 998 // - Otherwise, the basename of the .proto file, without extension. 999 GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` 1000 // Should generic services be generated in each language? "Generic" services 1001 // are not specific to any particular RPC system. They are generated by the 1002 // main code generators in each language (without additional plugins). 1003 // Generic services were the only kind of service generation supported by 1004 // early versions of google.protobuf. 1005 // 1006 // Generic services are now considered deprecated in favor of using plugins 1007 // that generate code specific to your particular RPC system. Therefore, 1008 // these default to false. Old code which depends on generic services should 1009 // explicitly set them to true. 1010 CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` 1011 JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` 1012 PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` 1013 PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` 1014 // Is this file deprecated? 1015 // Depending on the target platform, this can emit Deprecated annotations 1016 // for everything in the file, or it will be completely ignored; in the very 1017 // least, this is a formalization for deprecating files. 1018 Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1019 // Enables the use of arenas for the proto messages in this file. This applies 1020 // only to generated classes for C++. 1021 CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=0" json:"cc_enable_arenas,omitempty"` 1022 // Sets the objective c class prefix which is prepended to all objective c 1023 // generated classes from this .proto. There is no default. 1024 ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` 1025 // Namespace for generated classes; defaults to the package. 1026 CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` 1027 // By default Swift generators will take the proto package and CamelCase it 1028 // replacing '.' with underscore and use that to prefix the types/symbols 1029 // defined. When this options is provided, they will use this value instead 1030 // to prefix the types/symbols defined. 1031 SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` 1032 // Sets the php class prefix which is prepended to all php generated classes 1033 // from this .proto. Default is empty. 1034 PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` 1035 // Use this option to change the namespace of php generated classes. Default 1036 // is empty. When this option is empty, the package name will be used for 1037 // determining the namespace. 1038 PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` 1039 // The parser stores options it doesn't recognize here. See above. 1040 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1041 proto.XXX_InternalExtensions `json:"-"` 1042 XXX_unrecognized []byte `json:"-"` 1043} 1044 1045func (m *FileOptions) Reset() { *m = FileOptions{} } 1046func (m *FileOptions) String() string { return proto.CompactTextString(m) } 1047func (*FileOptions) ProtoMessage() {} 1048func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } 1049 1050var extRange_FileOptions = []proto.ExtensionRange{ 1051 {1000, 536870911}, 1052} 1053 1054func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange { 1055 return extRange_FileOptions 1056} 1057 1058const Default_FileOptions_JavaMultipleFiles bool = false 1059const Default_FileOptions_JavaStringCheckUtf8 bool = false 1060const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED 1061const Default_FileOptions_CcGenericServices bool = false 1062const Default_FileOptions_JavaGenericServices bool = false 1063const Default_FileOptions_PyGenericServices bool = false 1064const Default_FileOptions_PhpGenericServices bool = false 1065const Default_FileOptions_Deprecated bool = false 1066const Default_FileOptions_CcEnableArenas bool = false 1067 1068func (m *FileOptions) GetJavaPackage() string { 1069 if m != nil && m.JavaPackage != nil { 1070 return *m.JavaPackage 1071 } 1072 return "" 1073} 1074 1075func (m *FileOptions) GetJavaOuterClassname() string { 1076 if m != nil && m.JavaOuterClassname != nil { 1077 return *m.JavaOuterClassname 1078 } 1079 return "" 1080} 1081 1082func (m *FileOptions) GetJavaMultipleFiles() bool { 1083 if m != nil && m.JavaMultipleFiles != nil { 1084 return *m.JavaMultipleFiles 1085 } 1086 return Default_FileOptions_JavaMultipleFiles 1087} 1088 1089func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool { 1090 if m != nil && m.JavaGenerateEqualsAndHash != nil { 1091 return *m.JavaGenerateEqualsAndHash 1092 } 1093 return false 1094} 1095 1096func (m *FileOptions) GetJavaStringCheckUtf8() bool { 1097 if m != nil && m.JavaStringCheckUtf8 != nil { 1098 return *m.JavaStringCheckUtf8 1099 } 1100 return Default_FileOptions_JavaStringCheckUtf8 1101} 1102 1103func (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { 1104 if m != nil && m.OptimizeFor != nil { 1105 return *m.OptimizeFor 1106 } 1107 return Default_FileOptions_OptimizeFor 1108} 1109 1110func (m *FileOptions) GetGoPackage() string { 1111 if m != nil && m.GoPackage != nil { 1112 return *m.GoPackage 1113 } 1114 return "" 1115} 1116 1117func (m *FileOptions) GetCcGenericServices() bool { 1118 if m != nil && m.CcGenericServices != nil { 1119 return *m.CcGenericServices 1120 } 1121 return Default_FileOptions_CcGenericServices 1122} 1123 1124func (m *FileOptions) GetJavaGenericServices() bool { 1125 if m != nil && m.JavaGenericServices != nil { 1126 return *m.JavaGenericServices 1127 } 1128 return Default_FileOptions_JavaGenericServices 1129} 1130 1131func (m *FileOptions) GetPyGenericServices() bool { 1132 if m != nil && m.PyGenericServices != nil { 1133 return *m.PyGenericServices 1134 } 1135 return Default_FileOptions_PyGenericServices 1136} 1137 1138func (m *FileOptions) GetPhpGenericServices() bool { 1139 if m != nil && m.PhpGenericServices != nil { 1140 return *m.PhpGenericServices 1141 } 1142 return Default_FileOptions_PhpGenericServices 1143} 1144 1145func (m *FileOptions) GetDeprecated() bool { 1146 if m != nil && m.Deprecated != nil { 1147 return *m.Deprecated 1148 } 1149 return Default_FileOptions_Deprecated 1150} 1151 1152func (m *FileOptions) GetCcEnableArenas() bool { 1153 if m != nil && m.CcEnableArenas != nil { 1154 return *m.CcEnableArenas 1155 } 1156 return Default_FileOptions_CcEnableArenas 1157} 1158 1159func (m *FileOptions) GetObjcClassPrefix() string { 1160 if m != nil && m.ObjcClassPrefix != nil { 1161 return *m.ObjcClassPrefix 1162 } 1163 return "" 1164} 1165 1166func (m *FileOptions) GetCsharpNamespace() string { 1167 if m != nil && m.CsharpNamespace != nil { 1168 return *m.CsharpNamespace 1169 } 1170 return "" 1171} 1172 1173func (m *FileOptions) GetSwiftPrefix() string { 1174 if m != nil && m.SwiftPrefix != nil { 1175 return *m.SwiftPrefix 1176 } 1177 return "" 1178} 1179 1180func (m *FileOptions) GetPhpClassPrefix() string { 1181 if m != nil && m.PhpClassPrefix != nil { 1182 return *m.PhpClassPrefix 1183 } 1184 return "" 1185} 1186 1187func (m *FileOptions) GetPhpNamespace() string { 1188 if m != nil && m.PhpNamespace != nil { 1189 return *m.PhpNamespace 1190 } 1191 return "" 1192} 1193 1194func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { 1195 if m != nil { 1196 return m.UninterpretedOption 1197 } 1198 return nil 1199} 1200 1201type MessageOptions struct { 1202 // Set true to use the old proto1 MessageSet wire format for extensions. 1203 // This is provided for backwards-compatibility with the MessageSet wire 1204 // format. You should not use this for any other reason: It's less 1205 // efficient, has fewer features, and is more complicated. 1206 // 1207 // The message must be defined exactly as follows: 1208 // message Foo { 1209 // option message_set_wire_format = true; 1210 // extensions 4 to max; 1211 // } 1212 // Note that the message cannot have any defined fields; MessageSets only 1213 // have extensions. 1214 // 1215 // All extensions of your type must be singular messages; e.g. they cannot 1216 // be int32s, enums, or repeated messages. 1217 // 1218 // Because this is an option, the above two restrictions are not enforced by 1219 // the protocol compiler. 1220 MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` 1221 // Disables the generation of the standard "descriptor()" accessor, which can 1222 // conflict with a field of the same name. This is meant to make migration 1223 // from proto1 easier; new code should avoid fields named "descriptor". 1224 NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` 1225 // Is this message deprecated? 1226 // Depending on the target platform, this can emit Deprecated annotations 1227 // for the message, or it will be completely ignored; in the very least, 1228 // this is a formalization for deprecating messages. 1229 Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1230 // Whether the message is an automatically generated map entry type for the 1231 // maps field. 1232 // 1233 // For maps fields: 1234 // map<KeyType, ValueType> map_field = 1; 1235 // The parsed descriptor looks like: 1236 // message MapFieldEntry { 1237 // option map_entry = true; 1238 // optional KeyType key = 1; 1239 // optional ValueType value = 2; 1240 // } 1241 // repeated MapFieldEntry map_field = 1; 1242 // 1243 // Implementations may choose not to generate the map_entry=true message, but 1244 // use a native map in the target language to hold the keys and values. 1245 // The reflection APIs in such implementions still need to work as 1246 // if the field is a repeated message field. 1247 // 1248 // NOTE: Do not set the option in .proto files. Always use the maps syntax 1249 // instead. The option should only be implicitly set by the proto compiler 1250 // parser. 1251 MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` 1252 // The parser stores options it doesn't recognize here. See above. 1253 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1254 proto.XXX_InternalExtensions `json:"-"` 1255 XXX_unrecognized []byte `json:"-"` 1256} 1257 1258func (m *MessageOptions) Reset() { *m = MessageOptions{} } 1259func (m *MessageOptions) String() string { return proto.CompactTextString(m) } 1260func (*MessageOptions) ProtoMessage() {} 1261func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } 1262 1263var extRange_MessageOptions = []proto.ExtensionRange{ 1264 {1000, 536870911}, 1265} 1266 1267func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange { 1268 return extRange_MessageOptions 1269} 1270 1271const Default_MessageOptions_MessageSetWireFormat bool = false 1272const Default_MessageOptions_NoStandardDescriptorAccessor bool = false 1273const Default_MessageOptions_Deprecated bool = false 1274 1275func (m *MessageOptions) GetMessageSetWireFormat() bool { 1276 if m != nil && m.MessageSetWireFormat != nil { 1277 return *m.MessageSetWireFormat 1278 } 1279 return Default_MessageOptions_MessageSetWireFormat 1280} 1281 1282func (m *MessageOptions) GetNoStandardDescriptorAccessor() bool { 1283 if m != nil && m.NoStandardDescriptorAccessor != nil { 1284 return *m.NoStandardDescriptorAccessor 1285 } 1286 return Default_MessageOptions_NoStandardDescriptorAccessor 1287} 1288 1289func (m *MessageOptions) GetDeprecated() bool { 1290 if m != nil && m.Deprecated != nil { 1291 return *m.Deprecated 1292 } 1293 return Default_MessageOptions_Deprecated 1294} 1295 1296func (m *MessageOptions) GetMapEntry() bool { 1297 if m != nil && m.MapEntry != nil { 1298 return *m.MapEntry 1299 } 1300 return false 1301} 1302 1303func (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { 1304 if m != nil { 1305 return m.UninterpretedOption 1306 } 1307 return nil 1308} 1309 1310type FieldOptions struct { 1311 // The ctype option instructs the C++ code generator to use a different 1312 // representation of the field than it normally would. See the specific 1313 // options below. This option is not yet implemented in the open source 1314 // release -- sorry, we'll try to include it in a future version! 1315 Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` 1316 // The packed option can be enabled for repeated primitive fields to enable 1317 // a more efficient representation on the wire. Rather than repeatedly 1318 // writing the tag and type for each element, the entire array is encoded as 1319 // a single length-delimited blob. In proto3, only explicit setting it to 1320 // false will avoid using packed encoding. 1321 Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` 1322 // The jstype option determines the JavaScript type used for values of the 1323 // field. The option is permitted only for 64 bit integral and fixed types 1324 // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING 1325 // is represented as JavaScript string, which avoids loss of precision that 1326 // can happen when a large value is converted to a floating point JavaScript. 1327 // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to 1328 // use the JavaScript "number" type. The behavior of the default option 1329 // JS_NORMAL is implementation dependent. 1330 // 1331 // This option is an enum to permit additional types to be added, e.g. 1332 // goog.math.Integer. 1333 Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` 1334 // Should this field be parsed lazily? Lazy applies only to message-type 1335 // fields. It means that when the outer message is initially parsed, the 1336 // inner message's contents will not be parsed but instead stored in encoded 1337 // form. The inner message will actually be parsed when it is first accessed. 1338 // 1339 // This is only a hint. Implementations are free to choose whether to use 1340 // eager or lazy parsing regardless of the value of this option. However, 1341 // setting this option true suggests that the protocol author believes that 1342 // using lazy parsing on this field is worth the additional bookkeeping 1343 // overhead typically needed to implement it. 1344 // 1345 // This option does not affect the public interface of any generated code; 1346 // all method signatures remain the same. Furthermore, thread-safety of the 1347 // interface is not affected by this option; const methods remain safe to 1348 // call from multiple threads concurrently, while non-const methods continue 1349 // to require exclusive access. 1350 // 1351 // 1352 // Note that implementations may choose not to check required fields within 1353 // a lazy sub-message. That is, calling IsInitialized() on the outer message 1354 // may return true even if the inner message has missing required fields. 1355 // This is necessary because otherwise the inner message would have to be 1356 // parsed in order to perform the check, defeating the purpose of lazy 1357 // parsing. An implementation which chooses not to check required fields 1358 // must be consistent about it. That is, for any particular sub-message, the 1359 // implementation must either *always* check its required fields, or *never* 1360 // check its required fields, regardless of whether or not the message has 1361 // been parsed. 1362 Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` 1363 // Is this field deprecated? 1364 // Depending on the target platform, this can emit Deprecated annotations 1365 // for accessors, or it will be completely ignored; in the very least, this 1366 // is a formalization for deprecating fields. 1367 Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1368 // For Google-internal migration only. Do not use. 1369 Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` 1370 // The parser stores options it doesn't recognize here. See above. 1371 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1372 proto.XXX_InternalExtensions `json:"-"` 1373 XXX_unrecognized []byte `json:"-"` 1374} 1375 1376func (m *FieldOptions) Reset() { *m = FieldOptions{} } 1377func (m *FieldOptions) String() string { return proto.CompactTextString(m) } 1378func (*FieldOptions) ProtoMessage() {} 1379func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } 1380 1381var extRange_FieldOptions = []proto.ExtensionRange{ 1382 {1000, 536870911}, 1383} 1384 1385func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange { 1386 return extRange_FieldOptions 1387} 1388 1389const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING 1390const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL 1391const Default_FieldOptions_Lazy bool = false 1392const Default_FieldOptions_Deprecated bool = false 1393const Default_FieldOptions_Weak bool = false 1394 1395func (m *FieldOptions) GetCtype() FieldOptions_CType { 1396 if m != nil && m.Ctype != nil { 1397 return *m.Ctype 1398 } 1399 return Default_FieldOptions_Ctype 1400} 1401 1402func (m *FieldOptions) GetPacked() bool { 1403 if m != nil && m.Packed != nil { 1404 return *m.Packed 1405 } 1406 return false 1407} 1408 1409func (m *FieldOptions) GetJstype() FieldOptions_JSType { 1410 if m != nil && m.Jstype != nil { 1411 return *m.Jstype 1412 } 1413 return Default_FieldOptions_Jstype 1414} 1415 1416func (m *FieldOptions) GetLazy() bool { 1417 if m != nil && m.Lazy != nil { 1418 return *m.Lazy 1419 } 1420 return Default_FieldOptions_Lazy 1421} 1422 1423func (m *FieldOptions) GetDeprecated() bool { 1424 if m != nil && m.Deprecated != nil { 1425 return *m.Deprecated 1426 } 1427 return Default_FieldOptions_Deprecated 1428} 1429 1430func (m *FieldOptions) GetWeak() bool { 1431 if m != nil && m.Weak != nil { 1432 return *m.Weak 1433 } 1434 return Default_FieldOptions_Weak 1435} 1436 1437func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { 1438 if m != nil { 1439 return m.UninterpretedOption 1440 } 1441 return nil 1442} 1443 1444type OneofOptions struct { 1445 // The parser stores options it doesn't recognize here. See above. 1446 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1447 proto.XXX_InternalExtensions `json:"-"` 1448 XXX_unrecognized []byte `json:"-"` 1449} 1450 1451func (m *OneofOptions) Reset() { *m = OneofOptions{} } 1452func (m *OneofOptions) String() string { return proto.CompactTextString(m) } 1453func (*OneofOptions) ProtoMessage() {} 1454func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } 1455 1456var extRange_OneofOptions = []proto.ExtensionRange{ 1457 {1000, 536870911}, 1458} 1459 1460func (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange { 1461 return extRange_OneofOptions 1462} 1463 1464func (m *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { 1465 if m != nil { 1466 return m.UninterpretedOption 1467 } 1468 return nil 1469} 1470 1471type EnumOptions struct { 1472 // Set this option to true to allow mapping different tag names to the same 1473 // value. 1474 AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` 1475 // Is this enum deprecated? 1476 // Depending on the target platform, this can emit Deprecated annotations 1477 // for the enum, or it will be completely ignored; in the very least, this 1478 // is a formalization for deprecating enums. 1479 Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1480 // The parser stores options it doesn't recognize here. See above. 1481 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1482 proto.XXX_InternalExtensions `json:"-"` 1483 XXX_unrecognized []byte `json:"-"` 1484} 1485 1486func (m *EnumOptions) Reset() { *m = EnumOptions{} } 1487func (m *EnumOptions) String() string { return proto.CompactTextString(m) } 1488func (*EnumOptions) ProtoMessage() {} 1489func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } 1490 1491var extRange_EnumOptions = []proto.ExtensionRange{ 1492 {1000, 536870911}, 1493} 1494 1495func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange { 1496 return extRange_EnumOptions 1497} 1498 1499const Default_EnumOptions_Deprecated bool = false 1500 1501func (m *EnumOptions) GetAllowAlias() bool { 1502 if m != nil && m.AllowAlias != nil { 1503 return *m.AllowAlias 1504 } 1505 return false 1506} 1507 1508func (m *EnumOptions) GetDeprecated() bool { 1509 if m != nil && m.Deprecated != nil { 1510 return *m.Deprecated 1511 } 1512 return Default_EnumOptions_Deprecated 1513} 1514 1515func (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { 1516 if m != nil { 1517 return m.UninterpretedOption 1518 } 1519 return nil 1520} 1521 1522type EnumValueOptions struct { 1523 // Is this enum value deprecated? 1524 // Depending on the target platform, this can emit Deprecated annotations 1525 // for the enum value, or it will be completely ignored; in the very least, 1526 // this is a formalization for deprecating enum values. 1527 Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1528 // The parser stores options it doesn't recognize here. See above. 1529 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1530 proto.XXX_InternalExtensions `json:"-"` 1531 XXX_unrecognized []byte `json:"-"` 1532} 1533 1534func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } 1535func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } 1536func (*EnumValueOptions) ProtoMessage() {} 1537func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } 1538 1539var extRange_EnumValueOptions = []proto.ExtensionRange{ 1540 {1000, 536870911}, 1541} 1542 1543func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange { 1544 return extRange_EnumValueOptions 1545} 1546 1547const Default_EnumValueOptions_Deprecated bool = false 1548 1549func (m *EnumValueOptions) GetDeprecated() bool { 1550 if m != nil && m.Deprecated != nil { 1551 return *m.Deprecated 1552 } 1553 return Default_EnumValueOptions_Deprecated 1554} 1555 1556func (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { 1557 if m != nil { 1558 return m.UninterpretedOption 1559 } 1560 return nil 1561} 1562 1563type ServiceOptions struct { 1564 // Is this service deprecated? 1565 // Depending on the target platform, this can emit Deprecated annotations 1566 // for the service, or it will be completely ignored; in the very least, 1567 // this is a formalization for deprecating services. 1568 Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1569 // The parser stores options it doesn't recognize here. See above. 1570 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1571 proto.XXX_InternalExtensions `json:"-"` 1572 XXX_unrecognized []byte `json:"-"` 1573} 1574 1575func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } 1576func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } 1577func (*ServiceOptions) ProtoMessage() {} 1578func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } 1579 1580var extRange_ServiceOptions = []proto.ExtensionRange{ 1581 {1000, 536870911}, 1582} 1583 1584func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange { 1585 return extRange_ServiceOptions 1586} 1587 1588const Default_ServiceOptions_Deprecated bool = false 1589 1590func (m *ServiceOptions) GetDeprecated() bool { 1591 if m != nil && m.Deprecated != nil { 1592 return *m.Deprecated 1593 } 1594 return Default_ServiceOptions_Deprecated 1595} 1596 1597func (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { 1598 if m != nil { 1599 return m.UninterpretedOption 1600 } 1601 return nil 1602} 1603 1604type MethodOptions struct { 1605 // Is this method deprecated? 1606 // Depending on the target platform, this can emit Deprecated annotations 1607 // for the method, or it will be completely ignored; in the very least, 1608 // this is a formalization for deprecating methods. 1609 Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` 1610 IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` 1611 // The parser stores options it doesn't recognize here. See above. 1612 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` 1613 proto.XXX_InternalExtensions `json:"-"` 1614 XXX_unrecognized []byte `json:"-"` 1615} 1616 1617func (m *MethodOptions) Reset() { *m = MethodOptions{} } 1618func (m *MethodOptions) String() string { return proto.CompactTextString(m) } 1619func (*MethodOptions) ProtoMessage() {} 1620func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } 1621 1622var extRange_MethodOptions = []proto.ExtensionRange{ 1623 {1000, 536870911}, 1624} 1625 1626func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange { 1627 return extRange_MethodOptions 1628} 1629 1630const Default_MethodOptions_Deprecated bool = false 1631const Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN 1632 1633func (m *MethodOptions) GetDeprecated() bool { 1634 if m != nil && m.Deprecated != nil { 1635 return *m.Deprecated 1636 } 1637 return Default_MethodOptions_Deprecated 1638} 1639 1640func (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { 1641 if m != nil && m.IdempotencyLevel != nil { 1642 return *m.IdempotencyLevel 1643 } 1644 return Default_MethodOptions_IdempotencyLevel 1645} 1646 1647func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { 1648 if m != nil { 1649 return m.UninterpretedOption 1650 } 1651 return nil 1652} 1653 1654// A message representing a option the parser does not recognize. This only 1655// appears in options protos created by the compiler::Parser class. 1656// DescriptorPool resolves these when building Descriptor objects. Therefore, 1657// options protos in descriptor objects (e.g. returned by Descriptor::options(), 1658// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions 1659// in them. 1660type UninterpretedOption struct { 1661 Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` 1662 // The value of the uninterpreted option, in whatever type the tokenizer 1663 // identified it as during parsing. Exactly one of these should be set. 1664 IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` 1665 PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` 1666 NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` 1667 DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` 1668 StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` 1669 AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` 1670 XXX_unrecognized []byte `json:"-"` 1671} 1672 1673func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } 1674func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } 1675func (*UninterpretedOption) ProtoMessage() {} 1676func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } 1677 1678func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { 1679 if m != nil { 1680 return m.Name 1681 } 1682 return nil 1683} 1684 1685func (m *UninterpretedOption) GetIdentifierValue() string { 1686 if m != nil && m.IdentifierValue != nil { 1687 return *m.IdentifierValue 1688 } 1689 return "" 1690} 1691 1692func (m *UninterpretedOption) GetPositiveIntValue() uint64 { 1693 if m != nil && m.PositiveIntValue != nil { 1694 return *m.PositiveIntValue 1695 } 1696 return 0 1697} 1698 1699func (m *UninterpretedOption) GetNegativeIntValue() int64 { 1700 if m != nil && m.NegativeIntValue != nil { 1701 return *m.NegativeIntValue 1702 } 1703 return 0 1704} 1705 1706func (m *UninterpretedOption) GetDoubleValue() float64 { 1707 if m != nil && m.DoubleValue != nil { 1708 return *m.DoubleValue 1709 } 1710 return 0 1711} 1712 1713func (m *UninterpretedOption) GetStringValue() []byte { 1714 if m != nil { 1715 return m.StringValue 1716 } 1717 return nil 1718} 1719 1720func (m *UninterpretedOption) GetAggregateValue() string { 1721 if m != nil && m.AggregateValue != nil { 1722 return *m.AggregateValue 1723 } 1724 return "" 1725} 1726 1727// The name of the uninterpreted option. Each string represents a segment in 1728// a dot-separated name. is_extension is true iff a segment represents an 1729// extension (denoted with parentheses in options specs in .proto files). 1730// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents 1731// "foo.(bar.baz).qux". 1732type UninterpretedOption_NamePart struct { 1733 NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` 1734 IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` 1735 XXX_unrecognized []byte `json:"-"` 1736} 1737 1738func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOption_NamePart{} } 1739func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } 1740func (*UninterpretedOption_NamePart) ProtoMessage() {} 1741func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { 1742 return fileDescriptor0, []int{18, 0} 1743} 1744 1745func (m *UninterpretedOption_NamePart) GetNamePart() string { 1746 if m != nil && m.NamePart != nil { 1747 return *m.NamePart 1748 } 1749 return "" 1750} 1751 1752func (m *UninterpretedOption_NamePart) GetIsExtension() bool { 1753 if m != nil && m.IsExtension != nil { 1754 return *m.IsExtension 1755 } 1756 return false 1757} 1758 1759// Encapsulates information about the original source file from which a 1760// FileDescriptorProto was generated. 1761type SourceCodeInfo struct { 1762 // A Location identifies a piece of source code in a .proto file which 1763 // corresponds to a particular definition. This information is intended 1764 // to be useful to IDEs, code indexers, documentation generators, and similar 1765 // tools. 1766 // 1767 // For example, say we have a file like: 1768 // message Foo { 1769 // optional string foo = 1; 1770 // } 1771 // Let's look at just the field definition: 1772 // optional string foo = 1; 1773 // ^ ^^ ^^ ^ ^^^ 1774 // a bc de f ghi 1775 // We have the following locations: 1776 // span path represents 1777 // [a,i) [ 4, 0, 2, 0 ] The whole field definition. 1778 // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). 1779 // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). 1780 // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). 1781 // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). 1782 // 1783 // Notes: 1784 // - A location may refer to a repeated field itself (i.e. not to any 1785 // particular index within it). This is used whenever a set of elements are 1786 // logically enclosed in a single code segment. For example, an entire 1787 // extend block (possibly containing multiple extension definitions) will 1788 // have an outer location whose path refers to the "extensions" repeated 1789 // field without an index. 1790 // - Multiple locations may have the same path. This happens when a single 1791 // logical declaration is spread out across multiple places. The most 1792 // obvious example is the "extend" block again -- there may be multiple 1793 // extend blocks in the same scope, each of which will have the same path. 1794 // - A location's span is not always a subset of its parent's span. For 1795 // example, the "extendee" of an extension declaration appears at the 1796 // beginning of the "extend" block and is shared by all extensions within 1797 // the block. 1798 // - Just because a location's span is a subset of some other location's span 1799 // does not mean that it is a descendent. For example, a "group" defines 1800 // both a type and a field in a single declaration. Thus, the locations 1801 // corresponding to the type and field and their components will overlap. 1802 // - Code which tries to interpret locations should probably be designed to 1803 // ignore those that it doesn't understand, as more types of locations could 1804 // be recorded in the future. 1805 Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` 1806 XXX_unrecognized []byte `json:"-"` 1807} 1808 1809func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } 1810func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } 1811func (*SourceCodeInfo) ProtoMessage() {} 1812func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } 1813 1814func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { 1815 if m != nil { 1816 return m.Location 1817 } 1818 return nil 1819} 1820 1821type SourceCodeInfo_Location struct { 1822 // Identifies which part of the FileDescriptorProto was defined at this 1823 // location. 1824 // 1825 // Each element is a field number or an index. They form a path from 1826 // the root FileDescriptorProto to the place where the definition. For 1827 // example, this path: 1828 // [ 4, 3, 2, 7, 1 ] 1829 // refers to: 1830 // file.message_type(3) // 4, 3 1831 // .field(7) // 2, 7 1832 // .name() // 1 1833 // This is because FileDescriptorProto.message_type has field number 4: 1834 // repeated DescriptorProto message_type = 4; 1835 // and DescriptorProto.field has field number 2: 1836 // repeated FieldDescriptorProto field = 2; 1837 // and FieldDescriptorProto.name has field number 1: 1838 // optional string name = 1; 1839 // 1840 // Thus, the above path gives the location of a field name. If we removed 1841 // the last element: 1842 // [ 4, 3, 2, 7 ] 1843 // this path refers to the whole field declaration (from the beginning 1844 // of the label to the terminating semicolon). 1845 Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` 1846 // Always has exactly three or four elements: start line, start column, 1847 // end line (optional, otherwise assumed same as start line), end column. 1848 // These are packed into a single field for efficiency. Note that line 1849 // and column numbers are zero-based -- typically you will want to add 1850 // 1 to each before displaying to a user. 1851 Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` 1852 // If this SourceCodeInfo represents a complete declaration, these are any 1853 // comments appearing before and after the declaration which appear to be 1854 // attached to the declaration. 1855 // 1856 // A series of line comments appearing on consecutive lines, with no other 1857 // tokens appearing on those lines, will be treated as a single comment. 1858 // 1859 // leading_detached_comments will keep paragraphs of comments that appear 1860 // before (but not connected to) the current element. Each paragraph, 1861 // separated by empty lines, will be one comment element in the repeated 1862 // field. 1863 // 1864 // Only the comment content is provided; comment markers (e.g. //) are 1865 // stripped out. For block comments, leading whitespace and an asterisk 1866 // will be stripped from the beginning of each line other than the first. 1867 // Newlines are included in the output. 1868 // 1869 // Examples: 1870 // 1871 // optional int32 foo = 1; // Comment attached to foo. 1872 // // Comment attached to bar. 1873 // optional int32 bar = 2; 1874 // 1875 // optional string baz = 3; 1876 // // Comment attached to baz. 1877 // // Another line attached to baz. 1878 // 1879 // // Comment attached to qux. 1880 // // 1881 // // Another line attached to qux. 1882 // optional double qux = 4; 1883 // 1884 // // Detached comment for corge. This is not leading or trailing comments 1885 // // to qux or corge because there are blank lines separating it from 1886 // // both. 1887 // 1888 // // Detached comment for corge paragraph 2. 1889 // 1890 // optional string corge = 5; 1891 // /* Block comment attached 1892 // * to corge. Leading asterisks 1893 // * will be removed. */ 1894 // /* Block comment attached to 1895 // * grault. */ 1896 // optional int32 grault = 6; 1897 // 1898 // // ignored detached comments. 1899 LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` 1900 TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` 1901 LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` 1902 XXX_unrecognized []byte `json:"-"` 1903} 1904 1905func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} } 1906func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } 1907func (*SourceCodeInfo_Location) ProtoMessage() {} 1908func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } 1909 1910func (m *SourceCodeInfo_Location) GetPath() []int32 { 1911 if m != nil { 1912 return m.Path 1913 } 1914 return nil 1915} 1916 1917func (m *SourceCodeInfo_Location) GetSpan() []int32 { 1918 if m != nil { 1919 return m.Span 1920 } 1921 return nil 1922} 1923 1924func (m *SourceCodeInfo_Location) GetLeadingComments() string { 1925 if m != nil && m.LeadingComments != nil { 1926 return *m.LeadingComments 1927 } 1928 return "" 1929} 1930 1931func (m *SourceCodeInfo_Location) GetTrailingComments() string { 1932 if m != nil && m.TrailingComments != nil { 1933 return *m.TrailingComments 1934 } 1935 return "" 1936} 1937 1938func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { 1939 if m != nil { 1940 return m.LeadingDetachedComments 1941 } 1942 return nil 1943} 1944 1945// Describes the relationship between generated code and its original source 1946// file. A GeneratedCodeInfo message is associated with only one generated 1947// source file, but may contain references to different source .proto files. 1948type GeneratedCodeInfo struct { 1949 // An Annotation connects some span of text in generated code to an element 1950 // of its generating .proto file. 1951 Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` 1952 XXX_unrecognized []byte `json:"-"` 1953} 1954 1955func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} } 1956func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) } 1957func (*GeneratedCodeInfo) ProtoMessage() {} 1958func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } 1959 1960func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { 1961 if m != nil { 1962 return m.Annotation 1963 } 1964 return nil 1965} 1966 1967type GeneratedCodeInfo_Annotation struct { 1968 // Identifies the element in the original source .proto file. This field 1969 // is formatted the same as SourceCodeInfo.Location.path. 1970 Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` 1971 // Identifies the filesystem path to the original source .proto. 1972 SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` 1973 // Identifies the starting offset in bytes in the generated code 1974 // that relates to the identified object. 1975 Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` 1976 // Identifies the ending offset in bytes in the generated code that 1977 // relates to the identified offset. The end offset should be one past 1978 // the last relevant byte (so the length of the text = end - begin). 1979 End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` 1980 XXX_unrecognized []byte `json:"-"` 1981} 1982 1983func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_Annotation{} } 1984func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) } 1985func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} 1986func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { 1987 return fileDescriptor0, []int{20, 0} 1988} 1989 1990func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 { 1991 if m != nil { 1992 return m.Path 1993 } 1994 return nil 1995} 1996 1997func (m *GeneratedCodeInfo_Annotation) GetSourceFile() string { 1998 if m != nil && m.SourceFile != nil { 1999 return *m.SourceFile 2000 } 2001 return "" 2002} 2003 2004func (m *GeneratedCodeInfo_Annotation) GetBegin() int32 { 2005 if m != nil && m.Begin != nil { 2006 return *m.Begin 2007 } 2008 return 0 2009} 2010 2011func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 { 2012 if m != nil && m.End != nil { 2013 return *m.End 2014 } 2015 return 0 2016} 2017 2018func init() { 2019 proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet") 2020 proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto") 2021 proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto") 2022 proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange") 2023 proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange") 2024 proto.RegisterType((*ExtensionRangeOptions)(nil), "google.protobuf.ExtensionRangeOptions") 2025 proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto") 2026 proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto") 2027 proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto") 2028 proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto") 2029 proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto") 2030 proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto") 2031 proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions") 2032 proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions") 2033 proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions") 2034 proto.RegisterType((*OneofOptions)(nil), "google.protobuf.OneofOptions") 2035 proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions") 2036 proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions") 2037 proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions") 2038 proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions") 2039 proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption") 2040 proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart") 2041 proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo") 2042 proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location") 2043 proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo") 2044 proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") 2045 proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value) 2046 proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value) 2047 proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) 2048 proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) 2049 proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) 2050 proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value) 2051} 2052 2053func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor0) } 2054 2055var fileDescriptor0 = []byte{ 2056 // 2519 bytes of a gzipped FileDescriptorProto 2057 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdd, 0x6e, 0x1b, 0xc7, 2058 0x15, 0x0e, 0x7f, 0x45, 0x1e, 0x52, 0xd4, 0x68, 0xa4, 0xd8, 0x6b, 0xe5, 0xc7, 0x32, 0xf3, 0x63, 2059 0xd9, 0x69, 0xa8, 0x40, 0xb1, 0x1d, 0x47, 0x29, 0xd2, 0x52, 0xe4, 0x5a, 0xa1, 0x4a, 0x91, 0xec, 2060 0x92, 0x6a, 0x7e, 0x6e, 0x16, 0xa3, 0xdd, 0x21, 0xb9, 0xf6, 0x72, 0x77, 0xb3, 0xbb, 0xb4, 0xad, 2061 0xa0, 0x17, 0x06, 0x7a, 0x55, 0xa0, 0x0f, 0x50, 0x14, 0x45, 0x2f, 0x72, 0x13, 0xa0, 0x0f, 0x50, 2062 0x20, 0x77, 0x7d, 0x82, 0x02, 0x79, 0x83, 0xa2, 0x28, 0xd0, 0x3e, 0x46, 0x31, 0x33, 0xbb, 0xcb, 2063 0x5d, 0xfe, 0xc4, 0x6a, 0x80, 0x38, 0x57, 0xe4, 0x7c, 0xe7, 0x3b, 0x67, 0xce, 0x9c, 0x39, 0x33, 2064 0x73, 0x66, 0x16, 0x76, 0x47, 0xb6, 0x3d, 0x32, 0xe9, 0xbe, 0xe3, 0xda, 0xbe, 0x7d, 0x3e, 0x1d, 2065 0xee, 0xeb, 0xd4, 0xd3, 0x5c, 0xc3, 0xf1, 0x6d, 0xb7, 0xc6, 0x31, 0xbc, 0x21, 0x18, 0xb5, 0x90, 2066 0x51, 0x3d, 0x85, 0xcd, 0x07, 0x86, 0x49, 0x9b, 0x11, 0xb1, 0x4f, 0x7d, 0x7c, 0x1f, 0xb2, 0x43, 2067 0xc3, 0xa4, 0x52, 0x6a, 0x37, 0xb3, 0x57, 0x3a, 0x78, 0xb3, 0x36, 0xa7, 0x54, 0x4b, 0x6a, 0xf4, 2068 0x18, 0xac, 0x70, 0x8d, 0xea, 0xbf, 0xb3, 0xb0, 0xb5, 0x44, 0x8a, 0x31, 0x64, 0x2d, 0x32, 0x61, 2069 0x16, 0x53, 0x7b, 0x45, 0x85, 0xff, 0xc7, 0x12, 0xac, 0x39, 0x44, 0x7b, 0x44, 0x46, 0x54, 0x4a, 2070 0x73, 0x38, 0x6c, 0xe2, 0xd7, 0x01, 0x74, 0xea, 0x50, 0x4b, 0xa7, 0x96, 0x76, 0x21, 0x65, 0x76, 2071 0x33, 0x7b, 0x45, 0x25, 0x86, 0xe0, 0x77, 0x60, 0xd3, 0x99, 0x9e, 0x9b, 0x86, 0xa6, 0xc6, 0x68, 2072 0xb0, 0x9b, 0xd9, 0xcb, 0x29, 0x48, 0x08, 0x9a, 0x33, 0xf2, 0x4d, 0xd8, 0x78, 0x42, 0xc9, 0xa3, 2073 0x38, 0xb5, 0xc4, 0xa9, 0x15, 0x06, 0xc7, 0x88, 0x0d, 0x28, 0x4f, 0xa8, 0xe7, 0x91, 0x11, 0x55, 2074 0xfd, 0x0b, 0x87, 0x4a, 0x59, 0x3e, 0xfa, 0xdd, 0x85, 0xd1, 0xcf, 0x8f, 0xbc, 0x14, 0x68, 0x0d, 2075 0x2e, 0x1c, 0x8a, 0xeb, 0x50, 0xa4, 0xd6, 0x74, 0x22, 0x2c, 0xe4, 0x56, 0xc4, 0x4f, 0xb6, 0xa6, 2076 0x93, 0x79, 0x2b, 0x05, 0xa6, 0x16, 0x98, 0x58, 0xf3, 0xa8, 0xfb, 0xd8, 0xd0, 0xa8, 0x94, 0xe7, 2077 0x06, 0x6e, 0x2e, 0x18, 0xe8, 0x0b, 0xf9, 0xbc, 0x8d, 0x50, 0x0f, 0x37, 0xa0, 0x48, 0x9f, 0xfa, 2078 0xd4, 0xf2, 0x0c, 0xdb, 0x92, 0xd6, 0xb8, 0x91, 0xb7, 0x96, 0xcc, 0x22, 0x35, 0xf5, 0x79, 0x13, 2079 0x33, 0x3d, 0x7c, 0x0f, 0xd6, 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0x93, 0x0a, 0xbb, 0xa9, 0xbd, 0xd2, 2080 0xc1, 0xab, 0x4b, 0x13, 0xa1, 0x2b, 0x38, 0x4a, 0x48, 0xc6, 0x2d, 0x40, 0x9e, 0x3d, 0x75, 0x35, 2081 0xaa, 0x6a, 0xb6, 0x4e, 0x55, 0xc3, 0x1a, 0xda, 0x52, 0x91, 0x1b, 0xb8, 0xbe, 0x38, 0x10, 0x4e, 2082 0x6c, 0xd8, 0x3a, 0x6d, 0x59, 0x43, 0x5b, 0xa9, 0x78, 0x89, 0x36, 0xbe, 0x02, 0x79, 0xef, 0xc2, 2083 0xf2, 0xc9, 0x53, 0xa9, 0xcc, 0x33, 0x24, 0x68, 0x55, 0xbf, 0xcd, 0xc3, 0xc6, 0x65, 0x52, 0xec, 2084 0x23, 0xc8, 0x0d, 0xd9, 0x28, 0xa5, 0xf4, 0xff, 0x13, 0x03, 0xa1, 0x93, 0x0c, 0x62, 0xfe, 0x07, 2085 0x06, 0xb1, 0x0e, 0x25, 0x8b, 0x7a, 0x3e, 0xd5, 0x45, 0x46, 0x64, 0x2e, 0x99, 0x53, 0x20, 0x94, 2086 0x16, 0x53, 0x2a, 0xfb, 0x83, 0x52, 0xea, 0x33, 0xd8, 0x88, 0x5c, 0x52, 0x5d, 0x62, 0x8d, 0xc2, 2087 0xdc, 0xdc, 0x7f, 0x9e, 0x27, 0x35, 0x39, 0xd4, 0x53, 0x98, 0x9a, 0x52, 0xa1, 0x89, 0x36, 0x6e, 2088 0x02, 0xd8, 0x16, 0xb5, 0x87, 0xaa, 0x4e, 0x35, 0x53, 0x2a, 0xac, 0x88, 0x52, 0x97, 0x51, 0x16, 2089 0xa2, 0x64, 0x0b, 0x54, 0x33, 0xf1, 0x87, 0xb3, 0x54, 0x5b, 0x5b, 0x91, 0x29, 0xa7, 0x62, 0x91, 2090 0x2d, 0x64, 0xdb, 0x19, 0x54, 0x5c, 0xca, 0xf2, 0x9e, 0xea, 0xc1, 0xc8, 0x8a, 0xdc, 0x89, 0xda, 2091 0x73, 0x47, 0xa6, 0x04, 0x6a, 0x62, 0x60, 0xeb, 0x6e, 0xbc, 0x89, 0xdf, 0x80, 0x08, 0x50, 0x79, 2092 0x5a, 0x01, 0xdf, 0x85, 0xca, 0x21, 0xd8, 0x21, 0x13, 0xba, 0xf3, 0x15, 0x54, 0x92, 0xe1, 0xc1, 2093 0xdb, 0x90, 0xf3, 0x7c, 0xe2, 0xfa, 0x3c, 0x0b, 0x73, 0x8a, 0x68, 0x60, 0x04, 0x19, 0x6a, 0xe9, 2094 0x7c, 0x97, 0xcb, 0x29, 0xec, 0x2f, 0xfe, 0xe5, 0x6c, 0xc0, 0x19, 0x3e, 0xe0, 0xb7, 0x17, 0x67, 2095 0x34, 0x61, 0x79, 0x7e, 0xdc, 0x3b, 0x1f, 0xc0, 0x7a, 0x62, 0x00, 0x97, 0xed, 0xba, 0xfa, 0x5b, 2096 0x78, 0x79, 0xa9, 0x69, 0xfc, 0x19, 0x6c, 0x4f, 0x2d, 0xc3, 0xf2, 0xa9, 0xeb, 0xb8, 0x94, 0x65, 2097 0xac, 0xe8, 0x4a, 0xfa, 0xcf, 0xda, 0x8a, 0x9c, 0x3b, 0x8b, 0xb3, 0x85, 0x15, 0x65, 0x6b, 0xba, 2098 0x08, 0xde, 0x2e, 0x16, 0xfe, 0xbb, 0x86, 0x9e, 0x3d, 0x7b, 0xf6, 0x2c, 0x5d, 0xfd, 0x63, 0x1e, 2099 0xb6, 0x97, 0xad, 0x99, 0xa5, 0xcb, 0xf7, 0x0a, 0xe4, 0xad, 0xe9, 0xe4, 0x9c, 0xba, 0x3c, 0x48, 2100 0x39, 0x25, 0x68, 0xe1, 0x3a, 0xe4, 0x4c, 0x72, 0x4e, 0x4d, 0x29, 0xbb, 0x9b, 0xda, 0xab, 0x1c, 2101 0xbc, 0x73, 0xa9, 0x55, 0x59, 0x6b, 0x33, 0x15, 0x45, 0x68, 0xe2, 0x8f, 0x21, 0x1b, 0x6c, 0xd1, 2102 0xcc, 0xc2, 0xed, 0xcb, 0x59, 0x60, 0x6b, 0x49, 0xe1, 0x7a, 0xf8, 0x15, 0x28, 0xb2, 0x5f, 0x91, 2103 0x1b, 0x79, 0xee, 0x73, 0x81, 0x01, 0x2c, 0x2f, 0xf0, 0x0e, 0x14, 0xf8, 0x32, 0xd1, 0x69, 0x78, 2104 0xb4, 0x45, 0x6d, 0x96, 0x58, 0x3a, 0x1d, 0x92, 0xa9, 0xe9, 0xab, 0x8f, 0x89, 0x39, 0xa5, 0x3c, 2105 0xe1, 0x8b, 0x4a, 0x39, 0x00, 0x7f, 0xc3, 0x30, 0x7c, 0x1d, 0x4a, 0x62, 0x55, 0x19, 0x96, 0x4e, 2106 0x9f, 0xf2, 0xdd, 0x33, 0xa7, 0x88, 0x85, 0xd6, 0x62, 0x08, 0xeb, 0xfe, 0xa1, 0x67, 0x5b, 0x61, 2107 0x6a, 0xf2, 0x2e, 0x18, 0xc0, 0xbb, 0xff, 0x60, 0x7e, 0xe3, 0x7e, 0x6d, 0xf9, 0xf0, 0xe6, 0x73, 2108 0xaa, 0xfa, 0xb7, 0x34, 0x64, 0xf9, 0x7e, 0xb1, 0x01, 0xa5, 0xc1, 0xe7, 0x3d, 0x59, 0x6d, 0x76, 2109 0xcf, 0x8e, 0xda, 0x32, 0x4a, 0xe1, 0x0a, 0x00, 0x07, 0x1e, 0xb4, 0xbb, 0xf5, 0x01, 0x4a, 0x47, 2110 0xed, 0x56, 0x67, 0x70, 0xef, 0x0e, 0xca, 0x44, 0x0a, 0x67, 0x02, 0xc8, 0xc6, 0x09, 0xef, 0x1f, 2111 0xa0, 0x1c, 0x46, 0x50, 0x16, 0x06, 0x5a, 0x9f, 0xc9, 0xcd, 0x7b, 0x77, 0x50, 0x3e, 0x89, 0xbc, 2112 0x7f, 0x80, 0xd6, 0xf0, 0x3a, 0x14, 0x39, 0x72, 0xd4, 0xed, 0xb6, 0x51, 0x21, 0xb2, 0xd9, 0x1f, 2113 0x28, 0xad, 0xce, 0x31, 0x2a, 0x46, 0x36, 0x8f, 0x95, 0xee, 0x59, 0x0f, 0x41, 0x64, 0xe1, 0x54, 2114 0xee, 0xf7, 0xeb, 0xc7, 0x32, 0x2a, 0x45, 0x8c, 0xa3, 0xcf, 0x07, 0x72, 0x1f, 0x95, 0x13, 0x6e, 2115 0xbd, 0x7f, 0x80, 0xd6, 0xa3, 0x2e, 0xe4, 0xce, 0xd9, 0x29, 0xaa, 0xe0, 0x4d, 0x58, 0x17, 0x5d, 2116 0x84, 0x4e, 0x6c, 0xcc, 0x41, 0xf7, 0xee, 0x20, 0x34, 0x73, 0x44, 0x58, 0xd9, 0x4c, 0x00, 0xf7, 2117 0xee, 0x20, 0x5c, 0x6d, 0x40, 0x8e, 0x67, 0x17, 0xc6, 0x50, 0x69, 0xd7, 0x8f, 0xe4, 0xb6, 0xda, 2118 0xed, 0x0d, 0x5a, 0xdd, 0x4e, 0xbd, 0x8d, 0x52, 0x33, 0x4c, 0x91, 0x7f, 0x7d, 0xd6, 0x52, 0xe4, 2119 0x26, 0x4a, 0xc7, 0xb1, 0x9e, 0x5c, 0x1f, 0xc8, 0x4d, 0x94, 0xa9, 0x6a, 0xb0, 0xbd, 0x6c, 0x9f, 2120 0x5c, 0xba, 0x32, 0x62, 0x53, 0x9c, 0x5e, 0x31, 0xc5, 0xdc, 0xd6, 0xc2, 0x14, 0x7f, 0x9d, 0x82, 2121 0xad, 0x25, 0x67, 0xc5, 0xd2, 0x4e, 0x7e, 0x01, 0x39, 0x91, 0xa2, 0xe2, 0xf4, 0xbc, 0xb5, 0xf4, 2122 0xd0, 0xe1, 0x09, 0xbb, 0x70, 0x82, 0x72, 0xbd, 0x78, 0x05, 0x91, 0x59, 0x51, 0x41, 0x30, 0x13, 2123 0x0b, 0x4e, 0xfe, 0x2e, 0x05, 0xd2, 0x2a, 0xdb, 0xcf, 0xd9, 0x28, 0xd2, 0x89, 0x8d, 0xe2, 0xa3, 2124 0x79, 0x07, 0x6e, 0xac, 0x1e, 0xc3, 0x82, 0x17, 0xdf, 0xa4, 0xe0, 0xca, 0xf2, 0x42, 0x6b, 0xa9, 2125 0x0f, 0x1f, 0x43, 0x7e, 0x42, 0xfd, 0xb1, 0x1d, 0x16, 0x1b, 0x6f, 0x2f, 0x39, 0xc2, 0x98, 0x78, 2126 0x3e, 0x56, 0x81, 0x56, 0xfc, 0x0c, 0xcc, 0xac, 0xaa, 0x96, 0x84, 0x37, 0x0b, 0x9e, 0xfe, 0x3e, 2127 0x0d, 0x2f, 0x2f, 0x35, 0xbe, 0xd4, 0xd1, 0xd7, 0x00, 0x0c, 0xcb, 0x99, 0xfa, 0xa2, 0xa0, 0x10, 2128 0xfb, 0x53, 0x91, 0x23, 0x7c, 0xed, 0xb3, 0xbd, 0x67, 0xea, 0x47, 0xf2, 0x0c, 0x97, 0x83, 0x80, 2129 0x38, 0xe1, 0xfe, 0xcc, 0xd1, 0x2c, 0x77, 0xf4, 0xf5, 0x15, 0x23, 0x5d, 0x38, 0xab, 0xdf, 0x03, 2130 0xa4, 0x99, 0x06, 0xb5, 0x7c, 0xd5, 0xf3, 0x5d, 0x4a, 0x26, 0x86, 0x35, 0xe2, 0x1b, 0x70, 0xe1, 2131 0x30, 0x37, 0x24, 0xa6, 0x47, 0x95, 0x0d, 0x21, 0xee, 0x87, 0x52, 0xa6, 0xc1, 0xcf, 0x38, 0x37, 2132 0xa6, 0x91, 0x4f, 0x68, 0x08, 0x71, 0xa4, 0x51, 0xfd, 0xb6, 0x00, 0xa5, 0x58, 0x59, 0x8a, 0x6f, 2133 0x40, 0xf9, 0x21, 0x79, 0x4c, 0xd4, 0xf0, 0xaa, 0x21, 0x22, 0x51, 0x62, 0x58, 0x2f, 0xb8, 0x6e, 2134 0xbc, 0x07, 0xdb, 0x9c, 0x62, 0x4f, 0x7d, 0xea, 0xaa, 0x9a, 0x49, 0x3c, 0x8f, 0x07, 0xad, 0xc0, 2135 0xa9, 0x98, 0xc9, 0xba, 0x4c, 0xd4, 0x08, 0x25, 0xf8, 0x2e, 0x6c, 0x71, 0x8d, 0xc9, 0xd4, 0xf4, 2136 0x0d, 0xc7, 0xa4, 0x2a, 0xbb, 0xfc, 0x78, 0x7c, 0x23, 0x8e, 0x3c, 0xdb, 0x64, 0x8c, 0xd3, 0x80, 2137 0xc0, 0x3c, 0xf2, 0x70, 0x13, 0x5e, 0xe3, 0x6a, 0x23, 0x6a, 0x51, 0x97, 0xf8, 0x54, 0xa5, 0x5f, 2138 0x4e, 0x89, 0xe9, 0xa9, 0xc4, 0xd2, 0xd5, 0x31, 0xf1, 0xc6, 0xd2, 0x36, 0x33, 0x70, 0x94, 0x96, 2139 0x52, 0xca, 0x35, 0x46, 0x3c, 0x0e, 0x78, 0x32, 0xa7, 0xd5, 0x2d, 0xfd, 0x13, 0xe2, 0x8d, 0xf1, 2140 0x21, 0x5c, 0xe1, 0x56, 0x3c, 0xdf, 0x35, 0xac, 0x91, 0xaa, 0x8d, 0xa9, 0xf6, 0x48, 0x9d, 0xfa, 2141 0xc3, 0xfb, 0xd2, 0x2b, 0xf1, 0xfe, 0xb9, 0x87, 0x7d, 0xce, 0x69, 0x30, 0xca, 0x99, 0x3f, 0xbc, 2142 0x8f, 0xfb, 0x50, 0x66, 0x93, 0x31, 0x31, 0xbe, 0xa2, 0xea, 0xd0, 0x76, 0xf9, 0xc9, 0x52, 0x59, 2143 0xb2, 0xb2, 0x63, 0x11, 0xac, 0x75, 0x03, 0x85, 0x53, 0x5b, 0xa7, 0x87, 0xb9, 0x7e, 0x4f, 0x96, 2144 0x9b, 0x4a, 0x29, 0xb4, 0xf2, 0xc0, 0x76, 0x59, 0x42, 0x8d, 0xec, 0x28, 0xc0, 0x25, 0x91, 0x50, 2145 0x23, 0x3b, 0x0c, 0xef, 0x5d, 0xd8, 0xd2, 0x34, 0x31, 0x66, 0x43, 0x53, 0x83, 0x2b, 0x8a, 0x27, 2146 0xa1, 0x44, 0xb0, 0x34, 0xed, 0x58, 0x10, 0x82, 0x1c, 0xf7, 0xf0, 0x87, 0xf0, 0xf2, 0x2c, 0x58, 2147 0x71, 0xc5, 0xcd, 0x85, 0x51, 0xce, 0xab, 0xde, 0x85, 0x2d, 0xe7, 0x62, 0x51, 0x11, 0x27, 0x7a, 2148 0x74, 0x2e, 0xe6, 0xd5, 0x3e, 0x80, 0x6d, 0x67, 0xec, 0x2c, 0xea, 0xdd, 0x8e, 0xeb, 0x61, 0x67, 2149 0xec, 0xcc, 0x2b, 0xbe, 0xc5, 0xef, 0xab, 0x2e, 0xd5, 0x88, 0x4f, 0x75, 0xe9, 0x6a, 0x9c, 0x1e, 2150 0x13, 0xe0, 0x7d, 0x40, 0x9a, 0xa6, 0x52, 0x8b, 0x9c, 0x9b, 0x54, 0x25, 0x2e, 0xb5, 0x88, 0x27, 2151 0x5d, 0x8f, 0x93, 0x2b, 0x9a, 0x26, 0x73, 0x69, 0x9d, 0x0b, 0xf1, 0x6d, 0xd8, 0xb4, 0xcf, 0x1f, 2152 0x6a, 0x22, 0x25, 0x55, 0xc7, 0xa5, 0x43, 0xe3, 0xa9, 0xf4, 0x26, 0x8f, 0xef, 0x06, 0x13, 0xf0, 2153 0x84, 0xec, 0x71, 0x18, 0xdf, 0x02, 0xa4, 0x79, 0x63, 0xe2, 0x3a, 0xbc, 0x26, 0xf0, 0x1c, 0xa2, 2154 0x51, 0xe9, 0x2d, 0x41, 0x15, 0x78, 0x27, 0x84, 0xd9, 0x92, 0xf0, 0x9e, 0x18, 0x43, 0x3f, 0xb4, 2155 0x78, 0x53, 0x2c, 0x09, 0x8e, 0x05, 0xd6, 0xf6, 0x00, 0xb1, 0x50, 0x24, 0x3a, 0xde, 0xe3, 0xb4, 2156 0x8a, 0x33, 0x76, 0xe2, 0xfd, 0xbe, 0x01, 0xeb, 0x8c, 0x39, 0xeb, 0xf4, 0x96, 0xa8, 0x67, 0x9c, 2157 0x71, 0xac, 0xc7, 0x1f, 0xad, 0xb4, 0xac, 0x1e, 0x42, 0x39, 0x9e, 0x9f, 0xb8, 0x08, 0x22, 0x43, 2158 0x51, 0x8a, 0x9d, 0xf5, 0x8d, 0x6e, 0x93, 0x9d, 0xd2, 0x5f, 0xc8, 0x28, 0xcd, 0xaa, 0x85, 0x76, 2159 0x6b, 0x20, 0xab, 0xca, 0x59, 0x67, 0xd0, 0x3a, 0x95, 0x51, 0x26, 0x56, 0x96, 0x9e, 0x64, 0x0b, 2160 0x6f, 0xa3, 0x9b, 0xd5, 0xef, 0xd2, 0x50, 0x49, 0xde, 0x33, 0xf0, 0xcf, 0xe1, 0x6a, 0xf8, 0x28, 2161 0xe0, 0x51, 0x5f, 0x7d, 0x62, 0xb8, 0x7c, 0xe1, 0x4c, 0x88, 0xa8, 0xb3, 0xa3, 0xa9, 0xdb, 0x0e, 2162 0x58, 0x7d, 0xea, 0x7f, 0x6a, 0xb8, 0x6c, 0x59, 0x4c, 0x88, 0x8f, 0xdb, 0x70, 0xdd, 0xb2, 0x55, 2163 0xcf, 0x27, 0x96, 0x4e, 0x5c, 0x5d, 0x9d, 0x3d, 0xc7, 0xa8, 0x44, 0xd3, 0xa8, 0xe7, 0xd9, 0xe2, 2164 0xc0, 0x8a, 0xac, 0xbc, 0x6a, 0xd9, 0xfd, 0x80, 0x3c, 0xdb, 0xc9, 0xeb, 0x01, 0x75, 0x2e, 0xcd, 2165 0x32, 0xab, 0xd2, 0xec, 0x15, 0x28, 0x4e, 0x88, 0xa3, 0x52, 0xcb, 0x77, 0x2f, 0x78, 0x75, 0x59, 2166 0x50, 0x0a, 0x13, 0xe2, 0xc8, 0xac, 0xfd, 0x42, 0x8a, 0xfc, 0x93, 0x6c, 0xa1, 0x80, 0x8a, 0x27, 2167 0xd9, 0x42, 0x11, 0x41, 0xf5, 0x5f, 0x19, 0x28, 0xc7, 0xab, 0x4d, 0x56, 0xbc, 0x6b, 0xfc, 0x64, 2168 0x49, 0xf1, 0xbd, 0xe7, 0x8d, 0xef, 0xad, 0x4d, 0x6b, 0x0d, 0x76, 0xe4, 0x1c, 0xe6, 0x45, 0x0d, 2169 0xa8, 0x08, 0x4d, 0x76, 0xdc, 0xb3, 0xdd, 0x86, 0x8a, 0x7b, 0x4d, 0x41, 0x09, 0x5a, 0xf8, 0x18, 2170 0xf2, 0x0f, 0x3d, 0x6e, 0x3b, 0xcf, 0x6d, 0xbf, 0xf9, 0xfd, 0xb6, 0x4f, 0xfa, 0xdc, 0x78, 0xf1, 2171 0xa4, 0xaf, 0x76, 0xba, 0xca, 0x69, 0xbd, 0xad, 0x04, 0xea, 0xf8, 0x1a, 0x64, 0x4d, 0xf2, 0xd5, 2172 0x45, 0xf2, 0x70, 0xe2, 0xd0, 0x65, 0x27, 0xe1, 0x1a, 0x64, 0x9f, 0x50, 0xf2, 0x28, 0x79, 0x24, 2173 0x70, 0xe8, 0x47, 0x5c, 0x0c, 0xfb, 0x90, 0xe3, 0xf1, 0xc2, 0x00, 0x41, 0xc4, 0xd0, 0x4b, 0xb8, 2174 0x00, 0xd9, 0x46, 0x57, 0x61, 0x0b, 0x02, 0x41, 0x59, 0xa0, 0x6a, 0xaf, 0x25, 0x37, 0x64, 0x94, 2175 0xae, 0xde, 0x85, 0xbc, 0x08, 0x02, 0x5b, 0x2c, 0x51, 0x18, 0xd0, 0x4b, 0x41, 0x33, 0xb0, 0x91, 2176 0x0a, 0xa5, 0x67, 0xa7, 0x47, 0xb2, 0x82, 0xd2, 0xc9, 0xa9, 0xce, 0xa2, 0x5c, 0xd5, 0x83, 0x72, 2177 0xbc, 0xdc, 0x7c, 0x31, 0x57, 0xc9, 0xbf, 0xa7, 0xa0, 0x14, 0x2b, 0x1f, 0x59, 0xe1, 0x42, 0x4c, 2178 0xd3, 0x7e, 0xa2, 0x12, 0xd3, 0x20, 0x5e, 0x90, 0x1a, 0xc0, 0xa1, 0x3a, 0x43, 0x2e, 0x3b, 0x75, 2179 0x2f, 0x68, 0x89, 0xe4, 0x50, 0xbe, 0xfa, 0x97, 0x14, 0xa0, 0xf9, 0x02, 0x74, 0xce, 0xcd, 0xd4, 2180 0x4f, 0xe9, 0x66, 0xf5, 0xcf, 0x29, 0xa8, 0x24, 0xab, 0xce, 0x39, 0xf7, 0x6e, 0xfc, 0xa4, 0xee, 2181 0xfd, 0x33, 0x0d, 0xeb, 0x89, 0x5a, 0xf3, 0xb2, 0xde, 0x7d, 0x09, 0x9b, 0x86, 0x4e, 0x27, 0x8e, 2182 0xed, 0x53, 0x4b, 0xbb, 0x50, 0x4d, 0xfa, 0x98, 0x9a, 0x52, 0x95, 0x6f, 0x1a, 0xfb, 0xdf, 0x5f, 2183 0xcd, 0xd6, 0x5a, 0x33, 0xbd, 0x36, 0x53, 0x3b, 0xdc, 0x6a, 0x35, 0xe5, 0xd3, 0x5e, 0x77, 0x20, 2184 0x77, 0x1a, 0x9f, 0xab, 0x67, 0x9d, 0x5f, 0x75, 0xba, 0x9f, 0x76, 0x14, 0x64, 0xcc, 0xd1, 0x7e, 2185 0xc4, 0x65, 0xdf, 0x03, 0x34, 0xef, 0x14, 0xbe, 0x0a, 0xcb, 0xdc, 0x42, 0x2f, 0xe1, 0x2d, 0xd8, 2186 0xe8, 0x74, 0xd5, 0x7e, 0xab, 0x29, 0xab, 0xf2, 0x83, 0x07, 0x72, 0x63, 0xd0, 0x17, 0xd7, 0xfb, 2187 0x88, 0x3d, 0x48, 0x2c, 0xf0, 0xea, 0x9f, 0x32, 0xb0, 0xb5, 0xc4, 0x13, 0x5c, 0x0f, 0x6e, 0x16, 2188 0xe2, 0xb2, 0xf3, 0xee, 0x65, 0xbc, 0xaf, 0xb1, 0x82, 0xa0, 0x47, 0x5c, 0x3f, 0xb8, 0x88, 0xdc, 2189 0x02, 0x16, 0x25, 0xcb, 0x37, 0x86, 0x06, 0x75, 0x83, 0xd7, 0x10, 0x71, 0xdd, 0xd8, 0x98, 0xe1, 2190 0xe2, 0x41, 0xe4, 0x67, 0x80, 0x1d, 0xdb, 0x33, 0x7c, 0xe3, 0x31, 0x55, 0x0d, 0x2b, 0x7c, 0x3a, 2191 0x61, 0xd7, 0x8f, 0xac, 0x82, 0x42, 0x49, 0xcb, 0xf2, 0x23, 0xb6, 0x45, 0x47, 0x64, 0x8e, 0xcd, 2192 0x36, 0xf3, 0x8c, 0x82, 0x42, 0x49, 0xc4, 0xbe, 0x01, 0x65, 0xdd, 0x9e, 0xb2, 0x9a, 0x4c, 0xf0, 2193 0xd8, 0xd9, 0x91, 0x52, 0x4a, 0x02, 0x8b, 0x28, 0x41, 0xb5, 0x3d, 0x7b, 0xb3, 0x29, 0x2b, 0x25, 2194 0x81, 0x09, 0xca, 0x4d, 0xd8, 0x20, 0xa3, 0x91, 0xcb, 0x8c, 0x87, 0x86, 0xc4, 0xfd, 0xa1, 0x12, 2195 0xc1, 0x9c, 0xb8, 0x73, 0x02, 0x85, 0x30, 0x0e, 0xec, 0xa8, 0x66, 0x91, 0x50, 0x1d, 0xf1, 0x6e, 2196 0x97, 0xde, 0x2b, 0x2a, 0x05, 0x2b, 0x14, 0xde, 0x80, 0xb2, 0xe1, 0xa9, 0xb3, 0x27, 0xe8, 0xf4, 2197 0x6e, 0x7a, 0xaf, 0xa0, 0x94, 0x0c, 0x2f, 0x7a, 0xbe, 0xab, 0x7e, 0x93, 0x86, 0x4a, 0xf2, 0x09, 2198 0x1d, 0x37, 0xa1, 0x60, 0xda, 0x1a, 0xe1, 0xa9, 0x25, 0xbe, 0xdf, 0xec, 0x3d, 0xe7, 0xd5, 0xbd, 2199 0xd6, 0x0e, 0xf8, 0x4a, 0xa4, 0xb9, 0xf3, 0x8f, 0x14, 0x14, 0x42, 0x18, 0x5f, 0x81, 0xac, 0x43, 2200 0xfc, 0x31, 0x37, 0x97, 0x3b, 0x4a, 0xa3, 0x94, 0xc2, 0xdb, 0x0c, 0xf7, 0x1c, 0x62, 0xf1, 0x14, 2201 0x08, 0x70, 0xd6, 0x66, 0xf3, 0x6a, 0x52, 0xa2, 0xf3, 0xcb, 0x89, 0x3d, 0x99, 0x50, 0xcb, 0xf7, 2202 0xc2, 0x79, 0x0d, 0xf0, 0x46, 0x00, 0xe3, 0x77, 0x60, 0xd3, 0x77, 0x89, 0x61, 0x26, 0xb8, 0x59, 2203 0xce, 0x45, 0xa1, 0x20, 0x22, 0x1f, 0xc2, 0xb5, 0xd0, 0xae, 0x4e, 0x7d, 0xa2, 0x8d, 0xa9, 0x3e, 2204 0x53, 0xca, 0xf3, 0xf7, 0xd9, 0xab, 0x01, 0xa1, 0x19, 0xc8, 0x43, 0xdd, 0xea, 0x77, 0x29, 0xd8, 2205 0x0c, 0xaf, 0x53, 0x7a, 0x14, 0xac, 0x53, 0x00, 0x62, 0x59, 0xb6, 0x1f, 0x0f, 0xd7, 0x62, 0x2a, 2206 0x2f, 0xe8, 0xd5, 0xea, 0x91, 0x92, 0x12, 0x33, 0xb0, 0x33, 0x01, 0x98, 0x49, 0x56, 0x86, 0xed, 2207 0x3a, 0x94, 0x82, 0xef, 0x23, 0xfc, 0x23, 0x9b, 0xb8, 0x80, 0x83, 0x80, 0xd8, 0xbd, 0x0b, 0x6f, 2208 0x43, 0xee, 0x9c, 0x8e, 0x0c, 0x2b, 0x78, 0xf5, 0x14, 0x8d, 0xf0, 0x25, 0x37, 0x1b, 0xbd, 0xe4, 2209 0x1e, 0xfd, 0x21, 0x05, 0x5b, 0x9a, 0x3d, 0x99, 0xf7, 0xf7, 0x08, 0xcd, 0xbd, 0x02, 0x78, 0x9f, 2210 0xa4, 0xbe, 0xf8, 0x78, 0x64, 0xf8, 0xe3, 0xe9, 0x79, 0x4d, 0xb3, 0x27, 0xfb, 0x23, 0xdb, 0x24, 2211 0xd6, 0x68, 0xf6, 0x95, 0x90, 0xff, 0xd1, 0xde, 0x1d, 0x51, 0xeb, 0xdd, 0x91, 0x1d, 0xfb, 0x66, 2212 0xf8, 0xd1, 0xec, 0xef, 0xd7, 0xe9, 0xcc, 0x71, 0xef, 0xe8, 0xaf, 0xe9, 0x9d, 0x63, 0xd1, 0x57, 2213 0x2f, 0x8c, 0x8d, 0x42, 0x87, 0x26, 0xd5, 0xd8, 0x78, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x0c, 2214 0xab, 0xb6, 0x37, 0x7e, 0x1c, 0x00, 0x00, 2215} 2216