1// <auto-generated>
2//     Generated by the protocol buffer compiler.  DO NOT EDIT!
3//     source: google/protobuf/descriptor.proto
4// </auto-generated>
5#pragma warning disable 1591, 0612, 3021
6#region Designer generated code
7
8using pb = global::Google.Protobuf;
9using pbc = global::Google.Protobuf.Collections;
10using pbr = global::Google.Protobuf.Reflection;
11using scg = global::System.Collections.Generic;
12namespace Google.Protobuf.Reflection {
13
14  /// <summary>Holder for reflection information generated from google/protobuf/descriptor.proto</summary>
15  public static partial class DescriptorReflection {
16
17    #region Descriptor
18    /// <summary>File descriptor for google/protobuf/descriptor.proto</summary>
19    public static pbr::FileDescriptor Descriptor {
20      get { return descriptor; }
21    }
22    private static pbr::FileDescriptor descriptor;
23
24    static DescriptorReflection() {
25      byte[] descriptorData = global::System.Convert.FromBase64String(
26          string.Concat(
27            "CiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnBy",
28            "b3RvYnVmIkcKEUZpbGVEZXNjcmlwdG9yU2V0EjIKBGZpbGUYASADKAsyJC5n",
29            "b29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90byLbAwoTRmlsZURl",
30            "c2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEg8KB3BhY2thZ2UYAiABKAkS",
31            "EgoKZGVwZW5kZW5jeRgDIAMoCRIZChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMo",
32            "BRIXCg93ZWFrX2RlcGVuZGVuY3kYCyADKAUSNgoMbWVzc2FnZV90eXBlGAQg",
33            "AygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90bxI3CgllbnVt",
34            "X3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQ",
35            "cm90bxI4CgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZp",
36            "Y2VEZXNjcmlwdG9yUHJvdG8SOAoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xl",
37            "LnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvEi0KB29wdGlvbnMYCCAB",
38            "KAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMSOQoQc291cmNlX2Nv",
39            "ZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5m",
40            "bxIOCgZzeW50YXgYDCABKAkiqQUKD0Rlc2NyaXB0b3JQcm90bxIMCgRuYW1l",
41            "GAEgASgJEjQKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxk",
42            "RGVzY3JpcHRvclByb3RvEjgKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5w",
43            "cm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90bxI1CgtuZXN0ZWRfdHlwZRgD",
44            "IAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8SNwoJZW51",
45            "bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9y",
46            "UHJvdG8SSAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3Rv",
47            "YnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZRI5CgpvbmVvZl9k",
48            "ZWNsGAggAygLMiUuZ29vZ2xlLnByb3RvYnVmLk9uZW9mRGVzY3JpcHRvclBy",
49            "b3RvEjAKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2Fn",
50            "ZU9wdGlvbnMSRgoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJv",
51            "dG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2USFQoNcmVzZXJ2",
52            "ZWRfbmFtZRgKIAMoCRplCg5FeHRlbnNpb25SYW5nZRINCgVzdGFydBgBIAEo",
53            "BRILCgNlbmQYAiABKAUSNwoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90",
54            "b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnMaKwoNUmVzZXJ2ZWRSYW5nZRIN",
55            "CgVzdGFydBgBIAEoBRILCgNlbmQYAiABKAUiZwoVRXh0ZW5zaW9uUmFuZ2VP",
56            "cHRpb25zEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2ds",
57            "ZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi1QUK",
58            "FEZpZWxkRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDgoGbnVtYmVy",
59            "GAMgASgFEjoKBWxhYmVsGAQgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZpZWxk",
60            "RGVzY3JpcHRvclByb3RvLkxhYmVsEjgKBHR5cGUYBSABKA4yKi5nb29nbGUu",
61            "cHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRIRCgl0eXBlX25h",
62            "bWUYBiABKAkSEAoIZXh0ZW5kZWUYAiABKAkSFQoNZGVmYXVsdF92YWx1ZRgH",
63            "IAEoCRITCgtvbmVvZl9pbmRleBgJIAEoBRIRCglqc29uX25hbWUYCiABKAkS",
64            "LgoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlv",
65            "bnMSFwoPcHJvdG8zX29wdGlvbmFsGBEgASgIIrYCCgRUeXBlEg8KC1RZUEVf",
66            "RE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtU",
67            "WVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQ",
68            "BhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NU",
69            "UklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpU",
70            "WVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIR",
71            "Cg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVf",
72            "U0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9P",
73            "UFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFU",
74            "RUQQAyJUChRPbmVvZkRlc2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEi4K",
75            "B29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25z",
76            "IqQCChNFbnVtRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSOAoFdmFs",
77            "dWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRv",
78            "clByb3RvEi0KB29wdGlvbnMYAyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51",
79            "bU9wdGlvbnMSTgoOcmVzZXJ2ZWRfcmFuZ2UYBCADKAsyNi5nb29nbGUucHJv",
80            "dG9idWYuRW51bURlc2NyaXB0b3JQcm90by5FbnVtUmVzZXJ2ZWRSYW5nZRIV",
81            "Cg1yZXNlcnZlZF9uYW1lGAUgAygJGi8KEUVudW1SZXNlcnZlZFJhbmdlEg0K",
82            "BXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBSJsChhFbnVtVmFsdWVEZXNjcmlw",
83            "dG9yUHJvdG8SDAoEbmFtZRgBIAEoCRIOCgZudW1iZXIYAiABKAUSMgoHb3B0",
84            "aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25z",
85            "IpABChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSNgoG",
86            "bWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0",
87            "b3JQcm90bxIwCgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNl",
88            "cnZpY2VPcHRpb25zIsEBChVNZXRob2REZXNjcmlwdG9yUHJvdG8SDAoEbmFt",
89            "ZRgBIAEoCRISCgppbnB1dF90eXBlGAIgASgJEhMKC291dHB1dF90eXBlGAMg",
90            "ASgJEi8KB29wdGlvbnMYBCABKAsyHi5nb29nbGUucHJvdG9idWYuTWV0aG9k",
91            "T3B0aW9ucxIfChBjbGllbnRfc3RyZWFtaW5nGAUgASgIOgVmYWxzZRIfChBz",
92            "ZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZSKlBgoLRmlsZU9wdGlvbnMS",
93            "FAoMamF2YV9wYWNrYWdlGAEgASgJEhwKFGphdmFfb3V0ZXJfY2xhc3NuYW1l",
94            "GAggASgJEiIKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlEikK",
95            "HWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYARIlChZq",
96            "YXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZRJGCgxvcHRpbWl6",
97            "ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0",
98            "aW1pemVNb2RlOgVTUEVFRBISCgpnb19wYWNrYWdlGAsgASgJEiIKE2NjX2dl",
99            "bmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlEiQKFWphdmFfZ2VuZXJpY19z",
100            "ZXJ2aWNlcxgRIAEoCDoFZmFsc2USIgoTcHlfZ2VuZXJpY19zZXJ2aWNlcxgS",
101            "IAEoCDoFZmFsc2USIwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZh",
102            "bHNlEhkKCmRlcHJlY2F0ZWQYFyABKAg6BWZhbHNlEh4KEGNjX2VuYWJsZV9h",
103            "cmVuYXMYHyABKAg6BHRydWUSGQoRb2JqY19jbGFzc19wcmVmaXgYJCABKAkS",
104            "GAoQY3NoYXJwX25hbWVzcGFjZRglIAEoCRIUCgxzd2lmdF9wcmVmaXgYJyAB",
105            "KAkSGAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCRIVCg1waHBfbmFtZXNwYWNl",
106            "GCkgASgJEh4KFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAkSFAoMcnVi",
107            "eV9wYWNrYWdlGC0gASgJEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMo",
108            "CzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIjoKDE9w",
109            "dGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVf",
110            "UlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci8gEKDk1lc3NhZ2VPcHRpb25z",
111            "EiYKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZRIuCh9u",
112            "b19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZRIZ",
113            "CgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZRIRCgltYXBfZW50cnkYByABKAgS",
114            "QwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3Rv",
115            "YnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQ",
116            "CiKeAwoMRmllbGRPcHRpb25zEjoKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnBy",
117            "b3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HEg4KBnBhY2tlZBgC",
118            "IAEoCBI/CgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRP",
119            "cHRpb25zLkpTVHlwZToJSlNfTk9STUFMEhMKBGxhenkYBSABKAg6BWZhbHNl",
120            "EhkKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlEhMKBHdlYWsYCiABKAg6BWZh",
121            "bHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5w",
122            "cm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklO",
123            "RxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJ",
124            "SlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjo",
125            "BxCAgICAAkoECAQQBSJeCgxPbmVvZk9wdGlvbnMSQwoUdW5pbnRlcnByZXRl",
126            "ZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0",
127            "ZWRPcHRpb24qCQjoBxCAgICAAiKTAQoLRW51bU9wdGlvbnMSEwoLYWxsb3df",
128            "YWxpYXMYAiABKAgSGQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2USQwoUdW5p",
129            "bnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVu",
130            "aW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiJ9ChBFbnVtVmFs",
131            "dWVPcHRpb25zEhkKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlEkMKFHVuaW50",
132            "ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5Vbmlu",
133            "dGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiewoOU2VydmljZU9wdGlvbnMS",
134            "GQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9v",
135            "cHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRP",
136            "cHRpb24qCQjoBxCAgICAAiKtAgoNTWV0aG9kT3B0aW9ucxIZCgpkZXByZWNh",
137            "dGVkGCEgASgIOgVmYWxzZRJfChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIv",
138            "Lmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2",
139            "ZWw6E0lERU1QT1RFTkNZX1VOS05PV04SQwoUdW5pbnRlcnByZXRlZF9vcHRp",
140            "b24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRp",
141            "b24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dO",
142            "EAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQ",
143            "gICAgAIingIKE1VuaW50ZXJwcmV0ZWRPcHRpb24SOwoEbmFtZRgCIAMoCzIt",
144            "Lmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0",
145            "EhgKEGlkZW50aWZpZXJfdmFsdWUYAyABKAkSGgoScG9zaXRpdmVfaW50X3Zh",
146            "bHVlGAQgASgEEhoKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoAxIUCgxkb3Vi",
147            "bGVfdmFsdWUYBiABKAESFAoMc3RyaW5nX3ZhbHVlGAcgASgMEhcKD2FnZ3Jl",
148            "Z2F0ZV92YWx1ZRgIIAEoCRozCghOYW1lUGFydBIRCgluYW1lX3BhcnQYASAC",
149            "KAkSFAoMaXNfZXh0ZW5zaW9uGAIgAigIItUBCg5Tb3VyY2VDb2RlSW5mbxI6",
150            "Cghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2Rl",
151            "SW5mby5Mb2NhdGlvbhqGAQoITG9jYXRpb24SEAoEcGF0aBgBIAMoBUICEAES",
152            "EAoEc3BhbhgCIAMoBUICEAESGAoQbGVhZGluZ19jb21tZW50cxgDIAEoCRIZ",
153            "ChF0cmFpbGluZ19jb21tZW50cxgEIAEoCRIhChlsZWFkaW5nX2RldGFjaGVk",
154            "X2NvbW1lbnRzGAYgAygJIqcBChFHZW5lcmF0ZWRDb2RlSW5mbxJBCgphbm5v",
155            "dGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJ",
156            "bmZvLkFubm90YXRpb24aTwoKQW5ub3RhdGlvbhIQCgRwYXRoGAEgAygFQgIQ",
157            "ARITCgtzb3VyY2VfZmlsZRgCIAEoCRINCgViZWdpbhgDIAEoBRILCgNlbmQY",
158            "BCABKAVCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90",
159            "b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1n",
160            "by9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJv",
161            "dG9idWYuUmVmbGVjdGlvbg=="));
162      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
163          new pbr::FileDescriptor[] { },
164          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
165            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileDescriptorSet), global::Google.Protobuf.Reflection.FileDescriptorSet.Parser, new[]{ "File" }, null, null, null, null),
166            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileDescriptorProto), global::Google.Protobuf.Reflection.FileDescriptorProto.Parser, new[]{ "Name", "Package", "Dependency", "PublicDependency", "WeakDependency", "MessageType", "EnumType", "Service", "Extension", "Options", "SourceCodeInfo", "Syntax" }, null, null, null, null),
167            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto), global::Google.Protobuf.Reflection.DescriptorProto.Parser, new[]{ "Name", "Field", "Extension", "NestedType", "EnumType", "ExtensionRange", "OneofDecl", "Options", "ReservedRange", "ReservedName" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange), global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.Parser, new[]{ "Start", "End", "Options" }, null, null, null, null),
168            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange), global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Parser, new[]{ "Start", "End" }, null, null, null, null)}),
169            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ExtensionRangeOptions), global::Google.Protobuf.Reflection.ExtensionRangeOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null, null),
170            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto), global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser, new[]{ "Name", "Number", "Label", "Type", "TypeName", "Extendee", "DefaultValue", "OneofIndex", "JsonName", "Options", "Proto3Optional" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type), typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) }, null, null),
171            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofDescriptorProto), global::Google.Protobuf.Reflection.OneofDescriptorProto.Parser, new[]{ "Name", "Options" }, null, null, null, null),
172            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumDescriptorProto), global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser, new[]{ "Name", "Value", "Options", "ReservedRange", "ReservedName" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange), global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.Parser, new[]{ "Start", "End" }, null, null, null, null)}),
173            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueDescriptorProto), global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser, new[]{ "Name", "Number", "Options" }, null, null, null, null),
174            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceDescriptorProto), global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser, new[]{ "Name", "Method", "Options" }, null, null, null, null),
175            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodDescriptorProto), global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser, new[]{ "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming" }, null, null, null, null),
176            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "PhpGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "SwiftPrefix", "PhpClassPrefix", "PhpNamespace", "PhpMetadataNamespace", "RubyPackage", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null, null),
177            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MessageOptions), global::Google.Protobuf.Reflection.MessageOptions.Parser, new[]{ "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption" }, null, null, null, null),
178            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldOptions), global::Google.Protobuf.Reflection.FieldOptions.Parser, new[]{ "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.CType), typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) }, null, null),
179            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofOptions), global::Google.Protobuf.Reflection.OneofOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null, null),
180            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumOptions), global::Google.Protobuf.Reflection.EnumOptions.Parser, new[]{ "AllowAlias", "Deprecated", "UninterpretedOption" }, null, null, null, null),
181            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueOptions), global::Google.Protobuf.Reflection.EnumValueOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null, null),
182            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceOptions), global::Google.Protobuf.Reflection.ServiceOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null, null),
183            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodOptions), global::Google.Protobuf.Reflection.MethodOptions.Parser, new[]{ "Deprecated", "IdempotencyLevel", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel) }, null, null),
184            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.UninterpretedOption), global::Google.Protobuf.Reflection.UninterpretedOption.Parser, new[]{ "Name", "IdentifierValue", "PositiveIntValue", "NegativeIntValue", "DoubleValue", "StringValue", "AggregateValue" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart), global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.Parser, new[]{ "NamePart_", "IsExtension" }, null, null, null, null)}),
185            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.SourceCodeInfo), global::Google.Protobuf.Reflection.SourceCodeInfo.Parser, new[]{ "Location" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location), global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Parser, new[]{ "Path", "Span", "LeadingComments", "TrailingComments", "LeadingDetachedComments" }, null, null, null, null)}),
186            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.GeneratedCodeInfo), global::Google.Protobuf.Reflection.GeneratedCodeInfo.Parser, new[]{ "Annotation" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation), global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Parser, new[]{ "Path", "SourceFile", "Begin", "End" }, null, null, null, null)})
187          }));
188    }
189    #endregion
190
191  }
192  #region Messages
193  /// <summary>
194  /// The protocol compiler can output a FileDescriptorSet containing the .proto
195  /// files it parses.
196  /// </summary>
197  public sealed partial class FileDescriptorSet : pb::IMessage<FileDescriptorSet>
198  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
199      , pb::IBufferMessage
200  #endif
201  {
202    private static readonly pb::MessageParser<FileDescriptorSet> _parser = new pb::MessageParser<FileDescriptorSet>(() => new FileDescriptorSet());
203    private pb::UnknownFieldSet _unknownFields;
204    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
205    public static pb::MessageParser<FileDescriptorSet> Parser { get { return _parser; } }
206
207    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
208    public static pbr::MessageDescriptor Descriptor {
209      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[0]; }
210    }
211
212    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
213    pbr::MessageDescriptor pb::IMessage.Descriptor {
214      get { return Descriptor; }
215    }
216
217    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
218    public FileDescriptorSet() {
219      OnConstruction();
220    }
221
222    partial void OnConstruction();
223
224    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
225    public FileDescriptorSet(FileDescriptorSet other) : this() {
226      file_ = other.file_.Clone();
227      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
228    }
229
230    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
231    public FileDescriptorSet Clone() {
232      return new FileDescriptorSet(this);
233    }
234
235    /// <summary>Field number for the "file" field.</summary>
236    public const int FileFieldNumber = 1;
237    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FileDescriptorProto> _repeated_file_codec
238        = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.FileDescriptorProto.Parser);
239    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto> file_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto>();
240    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
241    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto> File {
242      get { return file_; }
243    }
244
245    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
246    public override bool Equals(object other) {
247      return Equals(other as FileDescriptorSet);
248    }
249
250    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
251    public bool Equals(FileDescriptorSet other) {
252      if (ReferenceEquals(other, null)) {
253        return false;
254      }
255      if (ReferenceEquals(other, this)) {
256        return true;
257      }
258      if(!file_.Equals(other.file_)) return false;
259      return Equals(_unknownFields, other._unknownFields);
260    }
261
262    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
263    public override int GetHashCode() {
264      int hash = 1;
265      hash ^= file_.GetHashCode();
266      if (_unknownFields != null) {
267        hash ^= _unknownFields.GetHashCode();
268      }
269      return hash;
270    }
271
272    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
273    public override string ToString() {
274      return pb::JsonFormatter.ToDiagnosticString(this);
275    }
276
277    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
278    public void WriteTo(pb::CodedOutputStream output) {
279    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
280      output.WriteRawMessage(this);
281    #else
282      file_.WriteTo(output, _repeated_file_codec);
283      if (_unknownFields != null) {
284        _unknownFields.WriteTo(output);
285      }
286    #endif
287    }
288
289    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
290    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
291    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
292      file_.WriteTo(ref output, _repeated_file_codec);
293      if (_unknownFields != null) {
294        _unknownFields.WriteTo(ref output);
295      }
296    }
297    #endif
298
299    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
300    public int CalculateSize() {
301      int size = 0;
302      size += file_.CalculateSize(_repeated_file_codec);
303      if (_unknownFields != null) {
304        size += _unknownFields.CalculateSize();
305      }
306      return size;
307    }
308
309    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
310    public void MergeFrom(FileDescriptorSet other) {
311      if (other == null) {
312        return;
313      }
314      file_.Add(other.file_);
315      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
316    }
317
318    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
319    public void MergeFrom(pb::CodedInputStream input) {
320    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
321      input.ReadRawMessage(this);
322    #else
323      uint tag;
324      while ((tag = input.ReadTag()) != 0) {
325        switch(tag) {
326          default:
327            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
328            break;
329          case 10: {
330            file_.AddEntriesFrom(input, _repeated_file_codec);
331            break;
332          }
333        }
334      }
335    #endif
336    }
337
338    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
339    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
340    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
341      uint tag;
342      while ((tag = input.ReadTag()) != 0) {
343        switch(tag) {
344          default:
345            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
346            break;
347          case 10: {
348            file_.AddEntriesFrom(ref input, _repeated_file_codec);
349            break;
350          }
351        }
352      }
353    }
354    #endif
355
356  }
357
358  /// <summary>
359  /// Describes a complete .proto file.
360  /// </summary>
361  public sealed partial class FileDescriptorProto : pb::IMessage<FileDescriptorProto>
362  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
363      , pb::IBufferMessage
364  #endif
365  {
366    private static readonly pb::MessageParser<FileDescriptorProto> _parser = new pb::MessageParser<FileDescriptorProto>(() => new FileDescriptorProto());
367    private pb::UnknownFieldSet _unknownFields;
368    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
369    public static pb::MessageParser<FileDescriptorProto> Parser { get { return _parser; } }
370
371    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
372    public static pbr::MessageDescriptor Descriptor {
373      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[1]; }
374    }
375
376    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
377    pbr::MessageDescriptor pb::IMessage.Descriptor {
378      get { return Descriptor; }
379    }
380
381    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
382    public FileDescriptorProto() {
383      OnConstruction();
384    }
385
386    partial void OnConstruction();
387
388    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
389    public FileDescriptorProto(FileDescriptorProto other) : this() {
390      name_ = other.name_;
391      package_ = other.package_;
392      dependency_ = other.dependency_.Clone();
393      publicDependency_ = other.publicDependency_.Clone();
394      weakDependency_ = other.weakDependency_.Clone();
395      messageType_ = other.messageType_.Clone();
396      enumType_ = other.enumType_.Clone();
397      service_ = other.service_.Clone();
398      extension_ = other.extension_.Clone();
399      options_ = other.options_ != null ? other.options_.Clone() : null;
400      sourceCodeInfo_ = other.sourceCodeInfo_ != null ? other.sourceCodeInfo_.Clone() : null;
401      syntax_ = other.syntax_;
402      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
403    }
404
405    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
406    public FileDescriptorProto Clone() {
407      return new FileDescriptorProto(this);
408    }
409
410    /// <summary>Field number for the "name" field.</summary>
411    public const int NameFieldNumber = 1;
412    private readonly static string NameDefaultValue = "";
413
414    private string name_;
415    /// <summary>
416    /// file name, relative to root of source tree
417    /// </summary>
418    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
419    public string Name {
420      get { return name_ ?? NameDefaultValue; }
421      set {
422        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
423      }
424    }
425    /// <summary>Gets whether the "name" field is set</summary>
426    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
427    public bool HasName {
428      get { return name_ != null; }
429    }
430    /// <summary>Clears the value of the "name" field</summary>
431    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
432    public void ClearName() {
433      name_ = null;
434    }
435
436    /// <summary>Field number for the "package" field.</summary>
437    public const int PackageFieldNumber = 2;
438    private readonly static string PackageDefaultValue = "";
439
440    private string package_;
441    /// <summary>
442    /// e.g. "foo", "foo.bar", etc.
443    /// </summary>
444    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
445    public string Package {
446      get { return package_ ?? PackageDefaultValue; }
447      set {
448        package_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
449      }
450    }
451    /// <summary>Gets whether the "package" field is set</summary>
452    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
453    public bool HasPackage {
454      get { return package_ != null; }
455    }
456    /// <summary>Clears the value of the "package" field</summary>
457    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
458    public void ClearPackage() {
459      package_ = null;
460    }
461
462    /// <summary>Field number for the "dependency" field.</summary>
463    public const int DependencyFieldNumber = 3;
464    private static readonly pb::FieldCodec<string> _repeated_dependency_codec
465        = pb::FieldCodec.ForString(26);
466    private readonly pbc::RepeatedField<string> dependency_ = new pbc::RepeatedField<string>();
467    /// <summary>
468    /// Names of files imported by this file.
469    /// </summary>
470    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
471    public pbc::RepeatedField<string> Dependency {
472      get { return dependency_; }
473    }
474
475    /// <summary>Field number for the "public_dependency" field.</summary>
476    public const int PublicDependencyFieldNumber = 10;
477    private static readonly pb::FieldCodec<int> _repeated_publicDependency_codec
478        = pb::FieldCodec.ForInt32(80);
479    private readonly pbc::RepeatedField<int> publicDependency_ = new pbc::RepeatedField<int>();
480    /// <summary>
481    /// Indexes of the public imported files in the dependency list above.
482    /// </summary>
483    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
484    public pbc::RepeatedField<int> PublicDependency {
485      get { return publicDependency_; }
486    }
487
488    /// <summary>Field number for the "weak_dependency" field.</summary>
489    public const int WeakDependencyFieldNumber = 11;
490    private static readonly pb::FieldCodec<int> _repeated_weakDependency_codec
491        = pb::FieldCodec.ForInt32(88);
492    private readonly pbc::RepeatedField<int> weakDependency_ = new pbc::RepeatedField<int>();
493    /// <summary>
494    /// Indexes of the weak imported files in the dependency list.
495    /// For Google-internal migration only. Do not use.
496    /// </summary>
497    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
498    public pbc::RepeatedField<int> WeakDependency {
499      get { return weakDependency_; }
500    }
501
502    /// <summary>Field number for the "message_type" field.</summary>
503    public const int MessageTypeFieldNumber = 4;
504    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto> _repeated_messageType_codec
505        = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.DescriptorProto.Parser);
506    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> messageType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto>();
507    /// <summary>
508    /// All top-level definitions in this file.
509    /// </summary>
510    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
511    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> MessageType {
512      get { return messageType_; }
513    }
514
515    /// <summary>Field number for the "enum_type" field.</summary>
516    public const int EnumTypeFieldNumber = 5;
517    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto> _repeated_enumType_codec
518        = pb::FieldCodec.ForMessage(42, global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser);
519    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto>();
520    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
521    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> EnumType {
522      get { return enumType_; }
523    }
524
525    /// <summary>Field number for the "service" field.</summary>
526    public const int ServiceFieldNumber = 6;
527    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.ServiceDescriptorProto> _repeated_service_codec
528        = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser);
529    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto> service_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto>();
530    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
531    public pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto> Service {
532      get { return service_; }
533    }
534
535    /// <summary>Field number for the "extension" field.</summary>
536    public const int ExtensionFieldNumber = 7;
537    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_extension_codec
538        = pb::FieldCodec.ForMessage(58, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);
539    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();
540    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
541    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Extension {
542      get { return extension_; }
543    }
544
545    /// <summary>Field number for the "options" field.</summary>
546    public const int OptionsFieldNumber = 8;
547    private global::Google.Protobuf.Reflection.FileOptions options_;
548    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
549    public global::Google.Protobuf.Reflection.FileOptions Options {
550      get { return options_; }
551      set {
552        options_ = value;
553      }
554    }
555
556    /// <summary>Field number for the "source_code_info" field.</summary>
557    public const int SourceCodeInfoFieldNumber = 9;
558    private global::Google.Protobuf.Reflection.SourceCodeInfo sourceCodeInfo_;
559    /// <summary>
560    /// This field contains optional information about the original source code.
561    /// You may safely remove this entire field without harming runtime
562    /// functionality of the descriptors -- the information is needed only by
563    /// development tools.
564    /// </summary>
565    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
566    public global::Google.Protobuf.Reflection.SourceCodeInfo SourceCodeInfo {
567      get { return sourceCodeInfo_; }
568      set {
569        sourceCodeInfo_ = value;
570      }
571    }
572
573    /// <summary>Field number for the "syntax" field.</summary>
574    public const int SyntaxFieldNumber = 12;
575    private readonly static string SyntaxDefaultValue = "";
576
577    private string syntax_;
578    /// <summary>
579    /// The syntax of the proto file.
580    /// The supported values are "proto2" and "proto3".
581    /// </summary>
582    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
583    public string Syntax {
584      get { return syntax_ ?? SyntaxDefaultValue; }
585      set {
586        syntax_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
587      }
588    }
589    /// <summary>Gets whether the "syntax" field is set</summary>
590    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
591    public bool HasSyntax {
592      get { return syntax_ != null; }
593    }
594    /// <summary>Clears the value of the "syntax" field</summary>
595    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
596    public void ClearSyntax() {
597      syntax_ = null;
598    }
599
600    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
601    public override bool Equals(object other) {
602      return Equals(other as FileDescriptorProto);
603    }
604
605    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
606    public bool Equals(FileDescriptorProto other) {
607      if (ReferenceEquals(other, null)) {
608        return false;
609      }
610      if (ReferenceEquals(other, this)) {
611        return true;
612      }
613      if (Name != other.Name) return false;
614      if (Package != other.Package) return false;
615      if(!dependency_.Equals(other.dependency_)) return false;
616      if(!publicDependency_.Equals(other.publicDependency_)) return false;
617      if(!weakDependency_.Equals(other.weakDependency_)) return false;
618      if(!messageType_.Equals(other.messageType_)) return false;
619      if(!enumType_.Equals(other.enumType_)) return false;
620      if(!service_.Equals(other.service_)) return false;
621      if(!extension_.Equals(other.extension_)) return false;
622      if (!object.Equals(Options, other.Options)) return false;
623      if (!object.Equals(SourceCodeInfo, other.SourceCodeInfo)) return false;
624      if (Syntax != other.Syntax) return false;
625      return Equals(_unknownFields, other._unknownFields);
626    }
627
628    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
629    public override int GetHashCode() {
630      int hash = 1;
631      if (HasName) hash ^= Name.GetHashCode();
632      if (HasPackage) hash ^= Package.GetHashCode();
633      hash ^= dependency_.GetHashCode();
634      hash ^= publicDependency_.GetHashCode();
635      hash ^= weakDependency_.GetHashCode();
636      hash ^= messageType_.GetHashCode();
637      hash ^= enumType_.GetHashCode();
638      hash ^= service_.GetHashCode();
639      hash ^= extension_.GetHashCode();
640      if (options_ != null) hash ^= Options.GetHashCode();
641      if (sourceCodeInfo_ != null) hash ^= SourceCodeInfo.GetHashCode();
642      if (HasSyntax) hash ^= Syntax.GetHashCode();
643      if (_unknownFields != null) {
644        hash ^= _unknownFields.GetHashCode();
645      }
646      return hash;
647    }
648
649    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
650    public override string ToString() {
651      return pb::JsonFormatter.ToDiagnosticString(this);
652    }
653
654    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
655    public void WriteTo(pb::CodedOutputStream output) {
656    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
657      output.WriteRawMessage(this);
658    #else
659      if (HasName) {
660        output.WriteRawTag(10);
661        output.WriteString(Name);
662      }
663      if (HasPackage) {
664        output.WriteRawTag(18);
665        output.WriteString(Package);
666      }
667      dependency_.WriteTo(output, _repeated_dependency_codec);
668      messageType_.WriteTo(output, _repeated_messageType_codec);
669      enumType_.WriteTo(output, _repeated_enumType_codec);
670      service_.WriteTo(output, _repeated_service_codec);
671      extension_.WriteTo(output, _repeated_extension_codec);
672      if (options_ != null) {
673        output.WriteRawTag(66);
674        output.WriteMessage(Options);
675      }
676      if (sourceCodeInfo_ != null) {
677        output.WriteRawTag(74);
678        output.WriteMessage(SourceCodeInfo);
679      }
680      publicDependency_.WriteTo(output, _repeated_publicDependency_codec);
681      weakDependency_.WriteTo(output, _repeated_weakDependency_codec);
682      if (HasSyntax) {
683        output.WriteRawTag(98);
684        output.WriteString(Syntax);
685      }
686      if (_unknownFields != null) {
687        _unknownFields.WriteTo(output);
688      }
689    #endif
690    }
691
692    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
693    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
694    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
695      if (HasName) {
696        output.WriteRawTag(10);
697        output.WriteString(Name);
698      }
699      if (HasPackage) {
700        output.WriteRawTag(18);
701        output.WriteString(Package);
702      }
703      dependency_.WriteTo(ref output, _repeated_dependency_codec);
704      messageType_.WriteTo(ref output, _repeated_messageType_codec);
705      enumType_.WriteTo(ref output, _repeated_enumType_codec);
706      service_.WriteTo(ref output, _repeated_service_codec);
707      extension_.WriteTo(ref output, _repeated_extension_codec);
708      if (options_ != null) {
709        output.WriteRawTag(66);
710        output.WriteMessage(Options);
711      }
712      if (sourceCodeInfo_ != null) {
713        output.WriteRawTag(74);
714        output.WriteMessage(SourceCodeInfo);
715      }
716      publicDependency_.WriteTo(ref output, _repeated_publicDependency_codec);
717      weakDependency_.WriteTo(ref output, _repeated_weakDependency_codec);
718      if (HasSyntax) {
719        output.WriteRawTag(98);
720        output.WriteString(Syntax);
721      }
722      if (_unknownFields != null) {
723        _unknownFields.WriteTo(ref output);
724      }
725    }
726    #endif
727
728    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
729    public int CalculateSize() {
730      int size = 0;
731      if (HasName) {
732        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
733      }
734      if (HasPackage) {
735        size += 1 + pb::CodedOutputStream.ComputeStringSize(Package);
736      }
737      size += dependency_.CalculateSize(_repeated_dependency_codec);
738      size += publicDependency_.CalculateSize(_repeated_publicDependency_codec);
739      size += weakDependency_.CalculateSize(_repeated_weakDependency_codec);
740      size += messageType_.CalculateSize(_repeated_messageType_codec);
741      size += enumType_.CalculateSize(_repeated_enumType_codec);
742      size += service_.CalculateSize(_repeated_service_codec);
743      size += extension_.CalculateSize(_repeated_extension_codec);
744      if (options_ != null) {
745        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
746      }
747      if (sourceCodeInfo_ != null) {
748        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SourceCodeInfo);
749      }
750      if (HasSyntax) {
751        size += 1 + pb::CodedOutputStream.ComputeStringSize(Syntax);
752      }
753      if (_unknownFields != null) {
754        size += _unknownFields.CalculateSize();
755      }
756      return size;
757    }
758
759    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
760    public void MergeFrom(FileDescriptorProto other) {
761      if (other == null) {
762        return;
763      }
764      if (other.HasName) {
765        Name = other.Name;
766      }
767      if (other.HasPackage) {
768        Package = other.Package;
769      }
770      dependency_.Add(other.dependency_);
771      publicDependency_.Add(other.publicDependency_);
772      weakDependency_.Add(other.weakDependency_);
773      messageType_.Add(other.messageType_);
774      enumType_.Add(other.enumType_);
775      service_.Add(other.service_);
776      extension_.Add(other.extension_);
777      if (other.options_ != null) {
778        if (options_ == null) {
779          Options = new global::Google.Protobuf.Reflection.FileOptions();
780        }
781        Options.MergeFrom(other.Options);
782      }
783      if (other.sourceCodeInfo_ != null) {
784        if (sourceCodeInfo_ == null) {
785          SourceCodeInfo = new global::Google.Protobuf.Reflection.SourceCodeInfo();
786        }
787        SourceCodeInfo.MergeFrom(other.SourceCodeInfo);
788      }
789      if (other.HasSyntax) {
790        Syntax = other.Syntax;
791      }
792      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
793    }
794
795    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
796    public void MergeFrom(pb::CodedInputStream input) {
797    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
798      input.ReadRawMessage(this);
799    #else
800      uint tag;
801      while ((tag = input.ReadTag()) != 0) {
802        switch(tag) {
803          default:
804            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
805            break;
806          case 10: {
807            Name = input.ReadString();
808            break;
809          }
810          case 18: {
811            Package = input.ReadString();
812            break;
813          }
814          case 26: {
815            dependency_.AddEntriesFrom(input, _repeated_dependency_codec);
816            break;
817          }
818          case 34: {
819            messageType_.AddEntriesFrom(input, _repeated_messageType_codec);
820            break;
821          }
822          case 42: {
823            enumType_.AddEntriesFrom(input, _repeated_enumType_codec);
824            break;
825          }
826          case 50: {
827            service_.AddEntriesFrom(input, _repeated_service_codec);
828            break;
829          }
830          case 58: {
831            extension_.AddEntriesFrom(input, _repeated_extension_codec);
832            break;
833          }
834          case 66: {
835            if (options_ == null) {
836              Options = new global::Google.Protobuf.Reflection.FileOptions();
837            }
838            input.ReadMessage(Options);
839            break;
840          }
841          case 74: {
842            if (sourceCodeInfo_ == null) {
843              SourceCodeInfo = new global::Google.Protobuf.Reflection.SourceCodeInfo();
844            }
845            input.ReadMessage(SourceCodeInfo);
846            break;
847          }
848          case 82:
849          case 80: {
850            publicDependency_.AddEntriesFrom(input, _repeated_publicDependency_codec);
851            break;
852          }
853          case 90:
854          case 88: {
855            weakDependency_.AddEntriesFrom(input, _repeated_weakDependency_codec);
856            break;
857          }
858          case 98: {
859            Syntax = input.ReadString();
860            break;
861          }
862        }
863      }
864    #endif
865    }
866
867    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
868    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
869    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
870      uint tag;
871      while ((tag = input.ReadTag()) != 0) {
872        switch(tag) {
873          default:
874            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
875            break;
876          case 10: {
877            Name = input.ReadString();
878            break;
879          }
880          case 18: {
881            Package = input.ReadString();
882            break;
883          }
884          case 26: {
885            dependency_.AddEntriesFrom(ref input, _repeated_dependency_codec);
886            break;
887          }
888          case 34: {
889            messageType_.AddEntriesFrom(ref input, _repeated_messageType_codec);
890            break;
891          }
892          case 42: {
893            enumType_.AddEntriesFrom(ref input, _repeated_enumType_codec);
894            break;
895          }
896          case 50: {
897            service_.AddEntriesFrom(ref input, _repeated_service_codec);
898            break;
899          }
900          case 58: {
901            extension_.AddEntriesFrom(ref input, _repeated_extension_codec);
902            break;
903          }
904          case 66: {
905            if (options_ == null) {
906              Options = new global::Google.Protobuf.Reflection.FileOptions();
907            }
908            input.ReadMessage(Options);
909            break;
910          }
911          case 74: {
912            if (sourceCodeInfo_ == null) {
913              SourceCodeInfo = new global::Google.Protobuf.Reflection.SourceCodeInfo();
914            }
915            input.ReadMessage(SourceCodeInfo);
916            break;
917          }
918          case 82:
919          case 80: {
920            publicDependency_.AddEntriesFrom(ref input, _repeated_publicDependency_codec);
921            break;
922          }
923          case 90:
924          case 88: {
925            weakDependency_.AddEntriesFrom(ref input, _repeated_weakDependency_codec);
926            break;
927          }
928          case 98: {
929            Syntax = input.ReadString();
930            break;
931          }
932        }
933      }
934    }
935    #endif
936
937  }
938
939  /// <summary>
940  /// Describes a message type.
941  /// </summary>
942  public sealed partial class DescriptorProto : pb::IMessage<DescriptorProto>
943  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
944      , pb::IBufferMessage
945  #endif
946  {
947    private static readonly pb::MessageParser<DescriptorProto> _parser = new pb::MessageParser<DescriptorProto>(() => new DescriptorProto());
948    private pb::UnknownFieldSet _unknownFields;
949    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
950    public static pb::MessageParser<DescriptorProto> Parser { get { return _parser; } }
951
952    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
953    public static pbr::MessageDescriptor Descriptor {
954      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[2]; }
955    }
956
957    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
958    pbr::MessageDescriptor pb::IMessage.Descriptor {
959      get { return Descriptor; }
960    }
961
962    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
963    public DescriptorProto() {
964      OnConstruction();
965    }
966
967    partial void OnConstruction();
968
969    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
970    public DescriptorProto(DescriptorProto other) : this() {
971      name_ = other.name_;
972      field_ = other.field_.Clone();
973      extension_ = other.extension_.Clone();
974      nestedType_ = other.nestedType_.Clone();
975      enumType_ = other.enumType_.Clone();
976      extensionRange_ = other.extensionRange_.Clone();
977      oneofDecl_ = other.oneofDecl_.Clone();
978      options_ = other.options_ != null ? other.options_.Clone() : null;
979      reservedRange_ = other.reservedRange_.Clone();
980      reservedName_ = other.reservedName_.Clone();
981      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
982    }
983
984    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
985    public DescriptorProto Clone() {
986      return new DescriptorProto(this);
987    }
988
989    /// <summary>Field number for the "name" field.</summary>
990    public const int NameFieldNumber = 1;
991    private readonly static string NameDefaultValue = "";
992
993    private string name_;
994    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
995    public string Name {
996      get { return name_ ?? NameDefaultValue; }
997      set {
998        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
999      }
1000    }
1001    /// <summary>Gets whether the "name" field is set</summary>
1002    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1003    public bool HasName {
1004      get { return name_ != null; }
1005    }
1006    /// <summary>Clears the value of the "name" field</summary>
1007    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1008    public void ClearName() {
1009      name_ = null;
1010    }
1011
1012    /// <summary>Field number for the "field" field.</summary>
1013    public const int FieldFieldNumber = 2;
1014    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_field_codec
1015        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);
1016    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> field_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();
1017    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1018    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Field {
1019      get { return field_; }
1020    }
1021
1022    /// <summary>Field number for the "extension" field.</summary>
1023    public const int ExtensionFieldNumber = 6;
1024    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_extension_codec
1025        = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);
1026    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();
1027    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1028    public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Extension {
1029      get { return extension_; }
1030    }
1031
1032    /// <summary>Field number for the "nested_type" field.</summary>
1033    public const int NestedTypeFieldNumber = 3;
1034    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto> _repeated_nestedType_codec
1035        = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.Reflection.DescriptorProto.Parser);
1036    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> nestedType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto>();
1037    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1038    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> NestedType {
1039      get { return nestedType_; }
1040    }
1041
1042    /// <summary>Field number for the "enum_type" field.</summary>
1043    public const int EnumTypeFieldNumber = 4;
1044    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto> _repeated_enumType_codec
1045        = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser);
1046    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto>();
1047    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1048    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> EnumType {
1049      get { return enumType_; }
1050    }
1051
1052    /// <summary>Field number for the "extension_range" field.</summary>
1053    public const int ExtensionRangeFieldNumber = 5;
1054    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> _repeated_extensionRange_codec
1055        = pb::FieldCodec.ForMessage(42, global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.Parser);
1056    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> extensionRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange>();
1057    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1058    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> ExtensionRange {
1059      get { return extensionRange_; }
1060    }
1061
1062    /// <summary>Field number for the "oneof_decl" field.</summary>
1063    public const int OneofDeclFieldNumber = 8;
1064    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.OneofDescriptorProto> _repeated_oneofDecl_codec
1065        = pb::FieldCodec.ForMessage(66, global::Google.Protobuf.Reflection.OneofDescriptorProto.Parser);
1066    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto> oneofDecl_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto>();
1067    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1068    public pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto> OneofDecl {
1069      get { return oneofDecl_; }
1070    }
1071
1072    /// <summary>Field number for the "options" field.</summary>
1073    public const int OptionsFieldNumber = 7;
1074    private global::Google.Protobuf.Reflection.MessageOptions options_;
1075    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1076    public global::Google.Protobuf.Reflection.MessageOptions Options {
1077      get { return options_; }
1078      set {
1079        options_ = value;
1080      }
1081    }
1082
1083    /// <summary>Field number for the "reserved_range" field.</summary>
1084    public const int ReservedRangeFieldNumber = 9;
1085    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> _repeated_reservedRange_codec
1086        = pb::FieldCodec.ForMessage(74, global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Parser);
1087    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> reservedRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange>();
1088    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1089    public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> ReservedRange {
1090      get { return reservedRange_; }
1091    }
1092
1093    /// <summary>Field number for the "reserved_name" field.</summary>
1094    public const int ReservedNameFieldNumber = 10;
1095    private static readonly pb::FieldCodec<string> _repeated_reservedName_codec
1096        = pb::FieldCodec.ForString(82);
1097    private readonly pbc::RepeatedField<string> reservedName_ = new pbc::RepeatedField<string>();
1098    /// <summary>
1099    /// Reserved field names, which may not be used by fields in the same message.
1100    /// A given name may only be reserved once.
1101    /// </summary>
1102    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1103    public pbc::RepeatedField<string> ReservedName {
1104      get { return reservedName_; }
1105    }
1106
1107    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1108    public override bool Equals(object other) {
1109      return Equals(other as DescriptorProto);
1110    }
1111
1112    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1113    public bool Equals(DescriptorProto other) {
1114      if (ReferenceEquals(other, null)) {
1115        return false;
1116      }
1117      if (ReferenceEquals(other, this)) {
1118        return true;
1119      }
1120      if (Name != other.Name) return false;
1121      if(!field_.Equals(other.field_)) return false;
1122      if(!extension_.Equals(other.extension_)) return false;
1123      if(!nestedType_.Equals(other.nestedType_)) return false;
1124      if(!enumType_.Equals(other.enumType_)) return false;
1125      if(!extensionRange_.Equals(other.extensionRange_)) return false;
1126      if(!oneofDecl_.Equals(other.oneofDecl_)) return false;
1127      if (!object.Equals(Options, other.Options)) return false;
1128      if(!reservedRange_.Equals(other.reservedRange_)) return false;
1129      if(!reservedName_.Equals(other.reservedName_)) return false;
1130      return Equals(_unknownFields, other._unknownFields);
1131    }
1132
1133    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1134    public override int GetHashCode() {
1135      int hash = 1;
1136      if (HasName) hash ^= Name.GetHashCode();
1137      hash ^= field_.GetHashCode();
1138      hash ^= extension_.GetHashCode();
1139      hash ^= nestedType_.GetHashCode();
1140      hash ^= enumType_.GetHashCode();
1141      hash ^= extensionRange_.GetHashCode();
1142      hash ^= oneofDecl_.GetHashCode();
1143      if (options_ != null) hash ^= Options.GetHashCode();
1144      hash ^= reservedRange_.GetHashCode();
1145      hash ^= reservedName_.GetHashCode();
1146      if (_unknownFields != null) {
1147        hash ^= _unknownFields.GetHashCode();
1148      }
1149      return hash;
1150    }
1151
1152    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1153    public override string ToString() {
1154      return pb::JsonFormatter.ToDiagnosticString(this);
1155    }
1156
1157    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1158    public void WriteTo(pb::CodedOutputStream output) {
1159    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1160      output.WriteRawMessage(this);
1161    #else
1162      if (HasName) {
1163        output.WriteRawTag(10);
1164        output.WriteString(Name);
1165      }
1166      field_.WriteTo(output, _repeated_field_codec);
1167      nestedType_.WriteTo(output, _repeated_nestedType_codec);
1168      enumType_.WriteTo(output, _repeated_enumType_codec);
1169      extensionRange_.WriteTo(output, _repeated_extensionRange_codec);
1170      extension_.WriteTo(output, _repeated_extension_codec);
1171      if (options_ != null) {
1172        output.WriteRawTag(58);
1173        output.WriteMessage(Options);
1174      }
1175      oneofDecl_.WriteTo(output, _repeated_oneofDecl_codec);
1176      reservedRange_.WriteTo(output, _repeated_reservedRange_codec);
1177      reservedName_.WriteTo(output, _repeated_reservedName_codec);
1178      if (_unknownFields != null) {
1179        _unknownFields.WriteTo(output);
1180      }
1181    #endif
1182    }
1183
1184    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1185    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1186    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1187      if (HasName) {
1188        output.WriteRawTag(10);
1189        output.WriteString(Name);
1190      }
1191      field_.WriteTo(ref output, _repeated_field_codec);
1192      nestedType_.WriteTo(ref output, _repeated_nestedType_codec);
1193      enumType_.WriteTo(ref output, _repeated_enumType_codec);
1194      extensionRange_.WriteTo(ref output, _repeated_extensionRange_codec);
1195      extension_.WriteTo(ref output, _repeated_extension_codec);
1196      if (options_ != null) {
1197        output.WriteRawTag(58);
1198        output.WriteMessage(Options);
1199      }
1200      oneofDecl_.WriteTo(ref output, _repeated_oneofDecl_codec);
1201      reservedRange_.WriteTo(ref output, _repeated_reservedRange_codec);
1202      reservedName_.WriteTo(ref output, _repeated_reservedName_codec);
1203      if (_unknownFields != null) {
1204        _unknownFields.WriteTo(ref output);
1205      }
1206    }
1207    #endif
1208
1209    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1210    public int CalculateSize() {
1211      int size = 0;
1212      if (HasName) {
1213        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
1214      }
1215      size += field_.CalculateSize(_repeated_field_codec);
1216      size += extension_.CalculateSize(_repeated_extension_codec);
1217      size += nestedType_.CalculateSize(_repeated_nestedType_codec);
1218      size += enumType_.CalculateSize(_repeated_enumType_codec);
1219      size += extensionRange_.CalculateSize(_repeated_extensionRange_codec);
1220      size += oneofDecl_.CalculateSize(_repeated_oneofDecl_codec);
1221      if (options_ != null) {
1222        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
1223      }
1224      size += reservedRange_.CalculateSize(_repeated_reservedRange_codec);
1225      size += reservedName_.CalculateSize(_repeated_reservedName_codec);
1226      if (_unknownFields != null) {
1227        size += _unknownFields.CalculateSize();
1228      }
1229      return size;
1230    }
1231
1232    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1233    public void MergeFrom(DescriptorProto other) {
1234      if (other == null) {
1235        return;
1236      }
1237      if (other.HasName) {
1238        Name = other.Name;
1239      }
1240      field_.Add(other.field_);
1241      extension_.Add(other.extension_);
1242      nestedType_.Add(other.nestedType_);
1243      enumType_.Add(other.enumType_);
1244      extensionRange_.Add(other.extensionRange_);
1245      oneofDecl_.Add(other.oneofDecl_);
1246      if (other.options_ != null) {
1247        if (options_ == null) {
1248          Options = new global::Google.Protobuf.Reflection.MessageOptions();
1249        }
1250        Options.MergeFrom(other.Options);
1251      }
1252      reservedRange_.Add(other.reservedRange_);
1253      reservedName_.Add(other.reservedName_);
1254      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1255    }
1256
1257    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1258    public void MergeFrom(pb::CodedInputStream input) {
1259    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1260      input.ReadRawMessage(this);
1261    #else
1262      uint tag;
1263      while ((tag = input.ReadTag()) != 0) {
1264        switch(tag) {
1265          default:
1266            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1267            break;
1268          case 10: {
1269            Name = input.ReadString();
1270            break;
1271          }
1272          case 18: {
1273            field_.AddEntriesFrom(input, _repeated_field_codec);
1274            break;
1275          }
1276          case 26: {
1277            nestedType_.AddEntriesFrom(input, _repeated_nestedType_codec);
1278            break;
1279          }
1280          case 34: {
1281            enumType_.AddEntriesFrom(input, _repeated_enumType_codec);
1282            break;
1283          }
1284          case 42: {
1285            extensionRange_.AddEntriesFrom(input, _repeated_extensionRange_codec);
1286            break;
1287          }
1288          case 50: {
1289            extension_.AddEntriesFrom(input, _repeated_extension_codec);
1290            break;
1291          }
1292          case 58: {
1293            if (options_ == null) {
1294              Options = new global::Google.Protobuf.Reflection.MessageOptions();
1295            }
1296            input.ReadMessage(Options);
1297            break;
1298          }
1299          case 66: {
1300            oneofDecl_.AddEntriesFrom(input, _repeated_oneofDecl_codec);
1301            break;
1302          }
1303          case 74: {
1304            reservedRange_.AddEntriesFrom(input, _repeated_reservedRange_codec);
1305            break;
1306          }
1307          case 82: {
1308            reservedName_.AddEntriesFrom(input, _repeated_reservedName_codec);
1309            break;
1310          }
1311        }
1312      }
1313    #endif
1314    }
1315
1316    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1317    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1318    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1319      uint tag;
1320      while ((tag = input.ReadTag()) != 0) {
1321        switch(tag) {
1322          default:
1323            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1324            break;
1325          case 10: {
1326            Name = input.ReadString();
1327            break;
1328          }
1329          case 18: {
1330            field_.AddEntriesFrom(ref input, _repeated_field_codec);
1331            break;
1332          }
1333          case 26: {
1334            nestedType_.AddEntriesFrom(ref input, _repeated_nestedType_codec);
1335            break;
1336          }
1337          case 34: {
1338            enumType_.AddEntriesFrom(ref input, _repeated_enumType_codec);
1339            break;
1340          }
1341          case 42: {
1342            extensionRange_.AddEntriesFrom(ref input, _repeated_extensionRange_codec);
1343            break;
1344          }
1345          case 50: {
1346            extension_.AddEntriesFrom(ref input, _repeated_extension_codec);
1347            break;
1348          }
1349          case 58: {
1350            if (options_ == null) {
1351              Options = new global::Google.Protobuf.Reflection.MessageOptions();
1352            }
1353            input.ReadMessage(Options);
1354            break;
1355          }
1356          case 66: {
1357            oneofDecl_.AddEntriesFrom(ref input, _repeated_oneofDecl_codec);
1358            break;
1359          }
1360          case 74: {
1361            reservedRange_.AddEntriesFrom(ref input, _repeated_reservedRange_codec);
1362            break;
1363          }
1364          case 82: {
1365            reservedName_.AddEntriesFrom(ref input, _repeated_reservedName_codec);
1366            break;
1367          }
1368        }
1369      }
1370    }
1371    #endif
1372
1373    #region Nested types
1374    /// <summary>Container for nested types declared in the DescriptorProto message type.</summary>
1375    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1376    public static partial class Types {
1377      public sealed partial class ExtensionRange : pb::IMessage<ExtensionRange>
1378      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1379          , pb::IBufferMessage
1380      #endif
1381      {
1382        private static readonly pb::MessageParser<ExtensionRange> _parser = new pb::MessageParser<ExtensionRange>(() => new ExtensionRange());
1383        private pb::UnknownFieldSet _unknownFields;
1384        private int _hasBits0;
1385        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1386        public static pb::MessageParser<ExtensionRange> Parser { get { return _parser; } }
1387
1388        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1389        public static pbr::MessageDescriptor Descriptor {
1390          get { return global::Google.Protobuf.Reflection.DescriptorProto.Descriptor.NestedTypes[0]; }
1391        }
1392
1393        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1394        pbr::MessageDescriptor pb::IMessage.Descriptor {
1395          get { return Descriptor; }
1396        }
1397
1398        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1399        public ExtensionRange() {
1400          OnConstruction();
1401        }
1402
1403        partial void OnConstruction();
1404
1405        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1406        public ExtensionRange(ExtensionRange other) : this() {
1407          _hasBits0 = other._hasBits0;
1408          start_ = other.start_;
1409          end_ = other.end_;
1410          options_ = other.options_ != null ? other.options_.Clone() : null;
1411          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1412        }
1413
1414        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1415        public ExtensionRange Clone() {
1416          return new ExtensionRange(this);
1417        }
1418
1419        /// <summary>Field number for the "start" field.</summary>
1420        public const int StartFieldNumber = 1;
1421        private readonly static int StartDefaultValue = 0;
1422
1423        private int start_;
1424        /// <summary>
1425        /// Inclusive.
1426        /// </summary>
1427        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1428        public int Start {
1429          get { if ((_hasBits0 & 1) != 0) { return start_; } else { return StartDefaultValue; } }
1430          set {
1431            _hasBits0 |= 1;
1432            start_ = value;
1433          }
1434        }
1435        /// <summary>Gets whether the "start" field is set</summary>
1436        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1437        public bool HasStart {
1438          get { return (_hasBits0 & 1) != 0; }
1439        }
1440        /// <summary>Clears the value of the "start" field</summary>
1441        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1442        public void ClearStart() {
1443          _hasBits0 &= ~1;
1444        }
1445
1446        /// <summary>Field number for the "end" field.</summary>
1447        public const int EndFieldNumber = 2;
1448        private readonly static int EndDefaultValue = 0;
1449
1450        private int end_;
1451        /// <summary>
1452        /// Exclusive.
1453        /// </summary>
1454        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1455        public int End {
1456          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }
1457          set {
1458            _hasBits0 |= 2;
1459            end_ = value;
1460          }
1461        }
1462        /// <summary>Gets whether the "end" field is set</summary>
1463        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1464        public bool HasEnd {
1465          get { return (_hasBits0 & 2) != 0; }
1466        }
1467        /// <summary>Clears the value of the "end" field</summary>
1468        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1469        public void ClearEnd() {
1470          _hasBits0 &= ~2;
1471        }
1472
1473        /// <summary>Field number for the "options" field.</summary>
1474        public const int OptionsFieldNumber = 3;
1475        private global::Google.Protobuf.Reflection.ExtensionRangeOptions options_;
1476        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1477        public global::Google.Protobuf.Reflection.ExtensionRangeOptions Options {
1478          get { return options_; }
1479          set {
1480            options_ = value;
1481          }
1482        }
1483
1484        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1485        public override bool Equals(object other) {
1486          return Equals(other as ExtensionRange);
1487        }
1488
1489        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1490        public bool Equals(ExtensionRange other) {
1491          if (ReferenceEquals(other, null)) {
1492            return false;
1493          }
1494          if (ReferenceEquals(other, this)) {
1495            return true;
1496          }
1497          if (Start != other.Start) return false;
1498          if (End != other.End) return false;
1499          if (!object.Equals(Options, other.Options)) return false;
1500          return Equals(_unknownFields, other._unknownFields);
1501        }
1502
1503        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1504        public override int GetHashCode() {
1505          int hash = 1;
1506          if (HasStart) hash ^= Start.GetHashCode();
1507          if (HasEnd) hash ^= End.GetHashCode();
1508          if (options_ != null) hash ^= Options.GetHashCode();
1509          if (_unknownFields != null) {
1510            hash ^= _unknownFields.GetHashCode();
1511          }
1512          return hash;
1513        }
1514
1515        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1516        public override string ToString() {
1517          return pb::JsonFormatter.ToDiagnosticString(this);
1518        }
1519
1520        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1521        public void WriteTo(pb::CodedOutputStream output) {
1522        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1523          output.WriteRawMessage(this);
1524        #else
1525          if (HasStart) {
1526            output.WriteRawTag(8);
1527            output.WriteInt32(Start);
1528          }
1529          if (HasEnd) {
1530            output.WriteRawTag(16);
1531            output.WriteInt32(End);
1532          }
1533          if (options_ != null) {
1534            output.WriteRawTag(26);
1535            output.WriteMessage(Options);
1536          }
1537          if (_unknownFields != null) {
1538            _unknownFields.WriteTo(output);
1539          }
1540        #endif
1541        }
1542
1543        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1544        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1545        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1546          if (HasStart) {
1547            output.WriteRawTag(8);
1548            output.WriteInt32(Start);
1549          }
1550          if (HasEnd) {
1551            output.WriteRawTag(16);
1552            output.WriteInt32(End);
1553          }
1554          if (options_ != null) {
1555            output.WriteRawTag(26);
1556            output.WriteMessage(Options);
1557          }
1558          if (_unknownFields != null) {
1559            _unknownFields.WriteTo(ref output);
1560          }
1561        }
1562        #endif
1563
1564        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1565        public int CalculateSize() {
1566          int size = 0;
1567          if (HasStart) {
1568            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
1569          }
1570          if (HasEnd) {
1571            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
1572          }
1573          if (options_ != null) {
1574            size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
1575          }
1576          if (_unknownFields != null) {
1577            size += _unknownFields.CalculateSize();
1578          }
1579          return size;
1580        }
1581
1582        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1583        public void MergeFrom(ExtensionRange other) {
1584          if (other == null) {
1585            return;
1586          }
1587          if (other.HasStart) {
1588            Start = other.Start;
1589          }
1590          if (other.HasEnd) {
1591            End = other.End;
1592          }
1593          if (other.options_ != null) {
1594            if (options_ == null) {
1595              Options = new global::Google.Protobuf.Reflection.ExtensionRangeOptions();
1596            }
1597            Options.MergeFrom(other.Options);
1598          }
1599          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1600        }
1601
1602        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1603        public void MergeFrom(pb::CodedInputStream input) {
1604        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1605          input.ReadRawMessage(this);
1606        #else
1607          uint tag;
1608          while ((tag = input.ReadTag()) != 0) {
1609            switch(tag) {
1610              default:
1611                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1612                break;
1613              case 8: {
1614                Start = input.ReadInt32();
1615                break;
1616              }
1617              case 16: {
1618                End = input.ReadInt32();
1619                break;
1620              }
1621              case 26: {
1622                if (options_ == null) {
1623                  Options = new global::Google.Protobuf.Reflection.ExtensionRangeOptions();
1624                }
1625                input.ReadMessage(Options);
1626                break;
1627              }
1628            }
1629          }
1630        #endif
1631        }
1632
1633        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1634        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1635        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1636          uint tag;
1637          while ((tag = input.ReadTag()) != 0) {
1638            switch(tag) {
1639              default:
1640                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1641                break;
1642              case 8: {
1643                Start = input.ReadInt32();
1644                break;
1645              }
1646              case 16: {
1647                End = input.ReadInt32();
1648                break;
1649              }
1650              case 26: {
1651                if (options_ == null) {
1652                  Options = new global::Google.Protobuf.Reflection.ExtensionRangeOptions();
1653                }
1654                input.ReadMessage(Options);
1655                break;
1656              }
1657            }
1658          }
1659        }
1660        #endif
1661
1662      }
1663
1664      /// <summary>
1665      /// Range of reserved tag numbers. Reserved tag numbers may not be used by
1666      /// fields or extension ranges in the same message. Reserved ranges may
1667      /// not overlap.
1668      /// </summary>
1669      public sealed partial class ReservedRange : pb::IMessage<ReservedRange>
1670      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1671          , pb::IBufferMessage
1672      #endif
1673      {
1674        private static readonly pb::MessageParser<ReservedRange> _parser = new pb::MessageParser<ReservedRange>(() => new ReservedRange());
1675        private pb::UnknownFieldSet _unknownFields;
1676        private int _hasBits0;
1677        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1678        public static pb::MessageParser<ReservedRange> Parser { get { return _parser; } }
1679
1680        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1681        public static pbr::MessageDescriptor Descriptor {
1682          get { return global::Google.Protobuf.Reflection.DescriptorProto.Descriptor.NestedTypes[1]; }
1683        }
1684
1685        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1686        pbr::MessageDescriptor pb::IMessage.Descriptor {
1687          get { return Descriptor; }
1688        }
1689
1690        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1691        public ReservedRange() {
1692          OnConstruction();
1693        }
1694
1695        partial void OnConstruction();
1696
1697        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1698        public ReservedRange(ReservedRange other) : this() {
1699          _hasBits0 = other._hasBits0;
1700          start_ = other.start_;
1701          end_ = other.end_;
1702          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1703        }
1704
1705        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1706        public ReservedRange Clone() {
1707          return new ReservedRange(this);
1708        }
1709
1710        /// <summary>Field number for the "start" field.</summary>
1711        public const int StartFieldNumber = 1;
1712        private readonly static int StartDefaultValue = 0;
1713
1714        private int start_;
1715        /// <summary>
1716        /// Inclusive.
1717        /// </summary>
1718        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1719        public int Start {
1720          get { if ((_hasBits0 & 1) != 0) { return start_; } else { return StartDefaultValue; } }
1721          set {
1722            _hasBits0 |= 1;
1723            start_ = value;
1724          }
1725        }
1726        /// <summary>Gets whether the "start" field is set</summary>
1727        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1728        public bool HasStart {
1729          get { return (_hasBits0 & 1) != 0; }
1730        }
1731        /// <summary>Clears the value of the "start" field</summary>
1732        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1733        public void ClearStart() {
1734          _hasBits0 &= ~1;
1735        }
1736
1737        /// <summary>Field number for the "end" field.</summary>
1738        public const int EndFieldNumber = 2;
1739        private readonly static int EndDefaultValue = 0;
1740
1741        private int end_;
1742        /// <summary>
1743        /// Exclusive.
1744        /// </summary>
1745        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1746        public int End {
1747          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }
1748          set {
1749            _hasBits0 |= 2;
1750            end_ = value;
1751          }
1752        }
1753        /// <summary>Gets whether the "end" field is set</summary>
1754        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1755        public bool HasEnd {
1756          get { return (_hasBits0 & 2) != 0; }
1757        }
1758        /// <summary>Clears the value of the "end" field</summary>
1759        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1760        public void ClearEnd() {
1761          _hasBits0 &= ~2;
1762        }
1763
1764        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1765        public override bool Equals(object other) {
1766          return Equals(other as ReservedRange);
1767        }
1768
1769        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1770        public bool Equals(ReservedRange other) {
1771          if (ReferenceEquals(other, null)) {
1772            return false;
1773          }
1774          if (ReferenceEquals(other, this)) {
1775            return true;
1776          }
1777          if (Start != other.Start) return false;
1778          if (End != other.End) return false;
1779          return Equals(_unknownFields, other._unknownFields);
1780        }
1781
1782        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1783        public override int GetHashCode() {
1784          int hash = 1;
1785          if (HasStart) hash ^= Start.GetHashCode();
1786          if (HasEnd) hash ^= End.GetHashCode();
1787          if (_unknownFields != null) {
1788            hash ^= _unknownFields.GetHashCode();
1789          }
1790          return hash;
1791        }
1792
1793        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1794        public override string ToString() {
1795          return pb::JsonFormatter.ToDiagnosticString(this);
1796        }
1797
1798        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1799        public void WriteTo(pb::CodedOutputStream output) {
1800        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1801          output.WriteRawMessage(this);
1802        #else
1803          if (HasStart) {
1804            output.WriteRawTag(8);
1805            output.WriteInt32(Start);
1806          }
1807          if (HasEnd) {
1808            output.WriteRawTag(16);
1809            output.WriteInt32(End);
1810          }
1811          if (_unknownFields != null) {
1812            _unknownFields.WriteTo(output);
1813          }
1814        #endif
1815        }
1816
1817        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1818        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1819        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1820          if (HasStart) {
1821            output.WriteRawTag(8);
1822            output.WriteInt32(Start);
1823          }
1824          if (HasEnd) {
1825            output.WriteRawTag(16);
1826            output.WriteInt32(End);
1827          }
1828          if (_unknownFields != null) {
1829            _unknownFields.WriteTo(ref output);
1830          }
1831        }
1832        #endif
1833
1834        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1835        public int CalculateSize() {
1836          int size = 0;
1837          if (HasStart) {
1838            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
1839          }
1840          if (HasEnd) {
1841            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
1842          }
1843          if (_unknownFields != null) {
1844            size += _unknownFields.CalculateSize();
1845          }
1846          return size;
1847        }
1848
1849        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1850        public void MergeFrom(ReservedRange other) {
1851          if (other == null) {
1852            return;
1853          }
1854          if (other.HasStart) {
1855            Start = other.Start;
1856          }
1857          if (other.HasEnd) {
1858            End = other.End;
1859          }
1860          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1861        }
1862
1863        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1864        public void MergeFrom(pb::CodedInputStream input) {
1865        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1866          input.ReadRawMessage(this);
1867        #else
1868          uint tag;
1869          while ((tag = input.ReadTag()) != 0) {
1870            switch(tag) {
1871              default:
1872                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1873                break;
1874              case 8: {
1875                Start = input.ReadInt32();
1876                break;
1877              }
1878              case 16: {
1879                End = input.ReadInt32();
1880                break;
1881              }
1882            }
1883          }
1884        #endif
1885        }
1886
1887        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1888        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1889        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1890          uint tag;
1891          while ((tag = input.ReadTag()) != 0) {
1892            switch(tag) {
1893              default:
1894                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1895                break;
1896              case 8: {
1897                Start = input.ReadInt32();
1898                break;
1899              }
1900              case 16: {
1901                End = input.ReadInt32();
1902                break;
1903              }
1904            }
1905          }
1906        }
1907        #endif
1908
1909      }
1910
1911    }
1912    #endregion
1913
1914  }
1915
1916  public sealed partial class ExtensionRangeOptions : pb::IExtendableMessage<ExtensionRangeOptions>
1917  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1918      , pb::IBufferMessage
1919  #endif
1920  {
1921    private static readonly pb::MessageParser<ExtensionRangeOptions> _parser = new pb::MessageParser<ExtensionRangeOptions>(() => new ExtensionRangeOptions());
1922    private pb::UnknownFieldSet _unknownFields;
1923    internal pb::ExtensionSet<ExtensionRangeOptions> _extensions;
1924    private pb::ExtensionSet<ExtensionRangeOptions> _Extensions { get { return _extensions; } }
1925    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1926    public static pb::MessageParser<ExtensionRangeOptions> Parser { get { return _parser; } }
1927
1928    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1929    public static pbr::MessageDescriptor Descriptor {
1930      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[3]; }
1931    }
1932
1933    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1934    pbr::MessageDescriptor pb::IMessage.Descriptor {
1935      get { return Descriptor; }
1936    }
1937
1938    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1939    public ExtensionRangeOptions() {
1940      OnConstruction();
1941    }
1942
1943    partial void OnConstruction();
1944
1945    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1946    public ExtensionRangeOptions(ExtensionRangeOptions other) : this() {
1947      uninterpretedOption_ = other.uninterpretedOption_.Clone();
1948      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1949      _extensions = pb::ExtensionSet.Clone(other._extensions);
1950    }
1951
1952    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1953    public ExtensionRangeOptions Clone() {
1954      return new ExtensionRangeOptions(this);
1955    }
1956
1957    /// <summary>Field number for the "uninterpreted_option" field.</summary>
1958    public const int UninterpretedOptionFieldNumber = 999;
1959    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
1960        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
1961    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
1962    /// <summary>
1963    /// The parser stores options it doesn't recognize here. See above.
1964    /// </summary>
1965    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1966    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
1967      get { return uninterpretedOption_; }
1968    }
1969
1970    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1971    public override bool Equals(object other) {
1972      return Equals(other as ExtensionRangeOptions);
1973    }
1974
1975    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1976    public bool Equals(ExtensionRangeOptions other) {
1977      if (ReferenceEquals(other, null)) {
1978        return false;
1979      }
1980      if (ReferenceEquals(other, this)) {
1981        return true;
1982      }
1983      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
1984      if (!Equals(_extensions, other._extensions)) {
1985        return false;
1986      }
1987      return Equals(_unknownFields, other._unknownFields);
1988    }
1989
1990    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1991    public override int GetHashCode() {
1992      int hash = 1;
1993      hash ^= uninterpretedOption_.GetHashCode();
1994      if (_extensions != null) {
1995        hash ^= _extensions.GetHashCode();
1996      }
1997      if (_unknownFields != null) {
1998        hash ^= _unknownFields.GetHashCode();
1999      }
2000      return hash;
2001    }
2002
2003    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2004    public override string ToString() {
2005      return pb::JsonFormatter.ToDiagnosticString(this);
2006    }
2007
2008    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2009    public void WriteTo(pb::CodedOutputStream output) {
2010    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2011      output.WriteRawMessage(this);
2012    #else
2013      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
2014      if (_extensions != null) {
2015        _extensions.WriteTo(output);
2016      }
2017      if (_unknownFields != null) {
2018        _unknownFields.WriteTo(output);
2019      }
2020    #endif
2021    }
2022
2023    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2024    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2025    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
2026      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
2027      if (_extensions != null) {
2028        _extensions.WriteTo(ref output);
2029      }
2030      if (_unknownFields != null) {
2031        _unknownFields.WriteTo(ref output);
2032      }
2033    }
2034    #endif
2035
2036    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2037    public int CalculateSize() {
2038      int size = 0;
2039      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
2040      if (_extensions != null) {
2041        size += _extensions.CalculateSize();
2042      }
2043      if (_unknownFields != null) {
2044        size += _unknownFields.CalculateSize();
2045      }
2046      return size;
2047    }
2048
2049    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2050    public void MergeFrom(ExtensionRangeOptions other) {
2051      if (other == null) {
2052        return;
2053      }
2054      uninterpretedOption_.Add(other.uninterpretedOption_);
2055      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
2056      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2057    }
2058
2059    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2060    public void MergeFrom(pb::CodedInputStream input) {
2061    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2062      input.ReadRawMessage(this);
2063    #else
2064      uint tag;
2065      while ((tag = input.ReadTag()) != 0) {
2066        switch(tag) {
2067          default:
2068            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
2069              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2070            }
2071            break;
2072          case 7994: {
2073            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
2074            break;
2075          }
2076        }
2077      }
2078    #endif
2079    }
2080
2081    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2082    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2083    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2084      uint tag;
2085      while ((tag = input.ReadTag()) != 0) {
2086        switch(tag) {
2087          default:
2088            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
2089              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2090            }
2091            break;
2092          case 7994: {
2093            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
2094            break;
2095          }
2096        }
2097      }
2098    }
2099    #endif
2100
2101    public TValue GetExtension<TValue>(pb::Extension<ExtensionRangeOptions, TValue> extension) {
2102      return pb::ExtensionSet.Get(ref _extensions, extension);
2103    }
2104    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<ExtensionRangeOptions, TValue> extension) {
2105      return pb::ExtensionSet.Get(ref _extensions, extension);
2106    }
2107    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<ExtensionRangeOptions, TValue> extension) {
2108      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
2109    }
2110    public void SetExtension<TValue>(pb::Extension<ExtensionRangeOptions, TValue> extension, TValue value) {
2111      pb::ExtensionSet.Set(ref _extensions, extension, value);
2112    }
2113    public bool HasExtension<TValue>(pb::Extension<ExtensionRangeOptions, TValue> extension) {
2114      return pb::ExtensionSet.Has(ref _extensions, extension);
2115    }
2116    public void ClearExtension<TValue>(pb::Extension<ExtensionRangeOptions, TValue> extension) {
2117      pb::ExtensionSet.Clear(ref _extensions, extension);
2118    }
2119    public void ClearExtension<TValue>(pb::RepeatedExtension<ExtensionRangeOptions, TValue> extension) {
2120      pb::ExtensionSet.Clear(ref _extensions, extension);
2121    }
2122
2123  }
2124
2125  /// <summary>
2126  /// Describes a field within a message.
2127  /// </summary>
2128  public sealed partial class FieldDescriptorProto : pb::IMessage<FieldDescriptorProto>
2129  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2130      , pb::IBufferMessage
2131  #endif
2132  {
2133    private static readonly pb::MessageParser<FieldDescriptorProto> _parser = new pb::MessageParser<FieldDescriptorProto>(() => new FieldDescriptorProto());
2134    private pb::UnknownFieldSet _unknownFields;
2135    private int _hasBits0;
2136    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2137    public static pb::MessageParser<FieldDescriptorProto> Parser { get { return _parser; } }
2138
2139    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2140    public static pbr::MessageDescriptor Descriptor {
2141      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[4]; }
2142    }
2143
2144    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2145    pbr::MessageDescriptor pb::IMessage.Descriptor {
2146      get { return Descriptor; }
2147    }
2148
2149    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2150    public FieldDescriptorProto() {
2151      OnConstruction();
2152    }
2153
2154    partial void OnConstruction();
2155
2156    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2157    public FieldDescriptorProto(FieldDescriptorProto other) : this() {
2158      _hasBits0 = other._hasBits0;
2159      name_ = other.name_;
2160      number_ = other.number_;
2161      label_ = other.label_;
2162      type_ = other.type_;
2163      typeName_ = other.typeName_;
2164      extendee_ = other.extendee_;
2165      defaultValue_ = other.defaultValue_;
2166      oneofIndex_ = other.oneofIndex_;
2167      jsonName_ = other.jsonName_;
2168      options_ = other.options_ != null ? other.options_.Clone() : null;
2169      proto3Optional_ = other.proto3Optional_;
2170      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2171    }
2172
2173    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2174    public FieldDescriptorProto Clone() {
2175      return new FieldDescriptorProto(this);
2176    }
2177
2178    /// <summary>Field number for the "name" field.</summary>
2179    public const int NameFieldNumber = 1;
2180    private readonly static string NameDefaultValue = "";
2181
2182    private string name_;
2183    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2184    public string Name {
2185      get { return name_ ?? NameDefaultValue; }
2186      set {
2187        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2188      }
2189    }
2190    /// <summary>Gets whether the "name" field is set</summary>
2191    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2192    public bool HasName {
2193      get { return name_ != null; }
2194    }
2195    /// <summary>Clears the value of the "name" field</summary>
2196    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2197    public void ClearName() {
2198      name_ = null;
2199    }
2200
2201    /// <summary>Field number for the "number" field.</summary>
2202    public const int NumberFieldNumber = 3;
2203    private readonly static int NumberDefaultValue = 0;
2204
2205    private int number_;
2206    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2207    public int Number {
2208      get { if ((_hasBits0 & 1) != 0) { return number_; } else { return NumberDefaultValue; } }
2209      set {
2210        _hasBits0 |= 1;
2211        number_ = value;
2212      }
2213    }
2214    /// <summary>Gets whether the "number" field is set</summary>
2215    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2216    public bool HasNumber {
2217      get { return (_hasBits0 & 1) != 0; }
2218    }
2219    /// <summary>Clears the value of the "number" field</summary>
2220    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2221    public void ClearNumber() {
2222      _hasBits0 &= ~1;
2223    }
2224
2225    /// <summary>Field number for the "label" field.</summary>
2226    public const int LabelFieldNumber = 4;
2227    private readonly static global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label LabelDefaultValue = global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label.Optional;
2228
2229    private global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label label_;
2230    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2231    public global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label Label {
2232      get { if ((_hasBits0 & 2) != 0) { return label_; } else { return LabelDefaultValue; } }
2233      set {
2234        _hasBits0 |= 2;
2235        label_ = value;
2236      }
2237    }
2238    /// <summary>Gets whether the "label" field is set</summary>
2239    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2240    public bool HasLabel {
2241      get { return (_hasBits0 & 2) != 0; }
2242    }
2243    /// <summary>Clears the value of the "label" field</summary>
2244    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2245    public void ClearLabel() {
2246      _hasBits0 &= ~2;
2247    }
2248
2249    /// <summary>Field number for the "type" field.</summary>
2250    public const int TypeFieldNumber = 5;
2251    private readonly static global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type TypeDefaultValue = global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type.Double;
2252
2253    private global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type type_;
2254    /// <summary>
2255    /// If type_name is set, this need not be set.  If both this and type_name
2256    /// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
2257    /// </summary>
2258    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2259    public global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type Type {
2260      get { if ((_hasBits0 & 4) != 0) { return type_; } else { return TypeDefaultValue; } }
2261      set {
2262        _hasBits0 |= 4;
2263        type_ = value;
2264      }
2265    }
2266    /// <summary>Gets whether the "type" field is set</summary>
2267    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2268    public bool HasType {
2269      get { return (_hasBits0 & 4) != 0; }
2270    }
2271    /// <summary>Clears the value of the "type" field</summary>
2272    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2273    public void ClearType() {
2274      _hasBits0 &= ~4;
2275    }
2276
2277    /// <summary>Field number for the "type_name" field.</summary>
2278    public const int TypeNameFieldNumber = 6;
2279    private readonly static string TypeNameDefaultValue = "";
2280
2281    private string typeName_;
2282    /// <summary>
2283    /// For message and enum types, this is the name of the type.  If the name
2284    /// starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
2285    /// rules are used to find the type (i.e. first the nested types within this
2286    /// message are searched, then within the parent, on up to the root
2287    /// namespace).
2288    /// </summary>
2289    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2290    public string TypeName {
2291      get { return typeName_ ?? TypeNameDefaultValue; }
2292      set {
2293        typeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2294      }
2295    }
2296    /// <summary>Gets whether the "type_name" field is set</summary>
2297    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2298    public bool HasTypeName {
2299      get { return typeName_ != null; }
2300    }
2301    /// <summary>Clears the value of the "type_name" field</summary>
2302    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2303    public void ClearTypeName() {
2304      typeName_ = null;
2305    }
2306
2307    /// <summary>Field number for the "extendee" field.</summary>
2308    public const int ExtendeeFieldNumber = 2;
2309    private readonly static string ExtendeeDefaultValue = "";
2310
2311    private string extendee_;
2312    /// <summary>
2313    /// For extensions, this is the name of the type being extended.  It is
2314    /// resolved in the same manner as type_name.
2315    /// </summary>
2316    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2317    public string Extendee {
2318      get { return extendee_ ?? ExtendeeDefaultValue; }
2319      set {
2320        extendee_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2321      }
2322    }
2323    /// <summary>Gets whether the "extendee" field is set</summary>
2324    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2325    public bool HasExtendee {
2326      get { return extendee_ != null; }
2327    }
2328    /// <summary>Clears the value of the "extendee" field</summary>
2329    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2330    public void ClearExtendee() {
2331      extendee_ = null;
2332    }
2333
2334    /// <summary>Field number for the "default_value" field.</summary>
2335    public const int DefaultValueFieldNumber = 7;
2336    private readonly static string DefaultValueDefaultValue = "";
2337
2338    private string defaultValue_;
2339    /// <summary>
2340    /// For numeric types, contains the original text representation of the value.
2341    /// For booleans, "true" or "false".
2342    /// For strings, contains the default text contents (not escaped in any way).
2343    /// For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
2344    /// TODO(kenton):  Base-64 encode?
2345    /// </summary>
2346    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2347    public string DefaultValue {
2348      get { return defaultValue_ ?? DefaultValueDefaultValue; }
2349      set {
2350        defaultValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2351      }
2352    }
2353    /// <summary>Gets whether the "default_value" field is set</summary>
2354    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2355    public bool HasDefaultValue {
2356      get { return defaultValue_ != null; }
2357    }
2358    /// <summary>Clears the value of the "default_value" field</summary>
2359    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2360    public void ClearDefaultValue() {
2361      defaultValue_ = null;
2362    }
2363
2364    /// <summary>Field number for the "oneof_index" field.</summary>
2365    public const int OneofIndexFieldNumber = 9;
2366    private readonly static int OneofIndexDefaultValue = 0;
2367
2368    private int oneofIndex_;
2369    /// <summary>
2370    /// If set, gives the index of a oneof in the containing type's oneof_decl
2371    /// list.  This field is a member of that oneof.
2372    /// </summary>
2373    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2374    public int OneofIndex {
2375      get { if ((_hasBits0 & 8) != 0) { return oneofIndex_; } else { return OneofIndexDefaultValue; } }
2376      set {
2377        _hasBits0 |= 8;
2378        oneofIndex_ = value;
2379      }
2380    }
2381    /// <summary>Gets whether the "oneof_index" field is set</summary>
2382    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2383    public bool HasOneofIndex {
2384      get { return (_hasBits0 & 8) != 0; }
2385    }
2386    /// <summary>Clears the value of the "oneof_index" field</summary>
2387    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2388    public void ClearOneofIndex() {
2389      _hasBits0 &= ~8;
2390    }
2391
2392    /// <summary>Field number for the "json_name" field.</summary>
2393    public const int JsonNameFieldNumber = 10;
2394    private readonly static string JsonNameDefaultValue = "";
2395
2396    private string jsonName_;
2397    /// <summary>
2398    /// JSON name of this field. The value is set by protocol compiler. If the
2399    /// user has set a "json_name" option on this field, that option's value
2400    /// will be used. Otherwise, it's deduced from the field's name by converting
2401    /// it to camelCase.
2402    /// </summary>
2403    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2404    public string JsonName {
2405      get { return jsonName_ ?? JsonNameDefaultValue; }
2406      set {
2407        jsonName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2408      }
2409    }
2410    /// <summary>Gets whether the "json_name" field is set</summary>
2411    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2412    public bool HasJsonName {
2413      get { return jsonName_ != null; }
2414    }
2415    /// <summary>Clears the value of the "json_name" field</summary>
2416    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2417    public void ClearJsonName() {
2418      jsonName_ = null;
2419    }
2420
2421    /// <summary>Field number for the "options" field.</summary>
2422    public const int OptionsFieldNumber = 8;
2423    private global::Google.Protobuf.Reflection.FieldOptions options_;
2424    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2425    public global::Google.Protobuf.Reflection.FieldOptions Options {
2426      get { return options_; }
2427      set {
2428        options_ = value;
2429      }
2430    }
2431
2432    /// <summary>Field number for the "proto3_optional" field.</summary>
2433    public const int Proto3OptionalFieldNumber = 17;
2434    private readonly static bool Proto3OptionalDefaultValue = false;
2435
2436    private bool proto3Optional_;
2437    /// <summary>
2438    /// If true, this is a proto3 "optional". When a proto3 field is optional, it
2439    /// tracks presence regardless of field type.
2440    ///
2441    /// When proto3_optional is true, this field must be belong to a oneof to
2442    /// signal to old proto3 clients that presence is tracked for this field. This
2443    /// oneof is known as a "synthetic" oneof, and this field must be its sole
2444    /// member (each proto3 optional field gets its own synthetic oneof). Synthetic
2445    /// oneofs exist in the descriptor only, and do not generate any API. Synthetic
2446    /// oneofs must be ordered after all "real" oneofs.
2447    ///
2448    /// For message fields, proto3_optional doesn't create any semantic change,
2449    /// since non-repeated message fields always track presence. However it still
2450    /// indicates the semantic detail of whether the user wrote "optional" or not.
2451    /// This can be useful for round-tripping the .proto file. For consistency we
2452    /// give message fields a synthetic oneof also, even though it is not required
2453    /// to track presence. This is especially important because the parser can't
2454    /// tell if a field is a message or an enum, so it must always create a
2455    /// synthetic oneof.
2456    ///
2457    /// Proto2 optional fields do not set this flag, because they already indicate
2458    /// optional with `LABEL_OPTIONAL`.
2459    /// </summary>
2460    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2461    public bool Proto3Optional {
2462      get { if ((_hasBits0 & 16) != 0) { return proto3Optional_; } else { return Proto3OptionalDefaultValue; } }
2463      set {
2464        _hasBits0 |= 16;
2465        proto3Optional_ = value;
2466      }
2467    }
2468    /// <summary>Gets whether the "proto3_optional" field is set</summary>
2469    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2470    public bool HasProto3Optional {
2471      get { return (_hasBits0 & 16) != 0; }
2472    }
2473    /// <summary>Clears the value of the "proto3_optional" field</summary>
2474    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2475    public void ClearProto3Optional() {
2476      _hasBits0 &= ~16;
2477    }
2478
2479    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2480    public override bool Equals(object other) {
2481      return Equals(other as FieldDescriptorProto);
2482    }
2483
2484    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2485    public bool Equals(FieldDescriptorProto other) {
2486      if (ReferenceEquals(other, null)) {
2487        return false;
2488      }
2489      if (ReferenceEquals(other, this)) {
2490        return true;
2491      }
2492      if (Name != other.Name) return false;
2493      if (Number != other.Number) return false;
2494      if (Label != other.Label) return false;
2495      if (Type != other.Type) return false;
2496      if (TypeName != other.TypeName) return false;
2497      if (Extendee != other.Extendee) return false;
2498      if (DefaultValue != other.DefaultValue) return false;
2499      if (OneofIndex != other.OneofIndex) return false;
2500      if (JsonName != other.JsonName) return false;
2501      if (!object.Equals(Options, other.Options)) return false;
2502      if (Proto3Optional != other.Proto3Optional) return false;
2503      return Equals(_unknownFields, other._unknownFields);
2504    }
2505
2506    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2507    public override int GetHashCode() {
2508      int hash = 1;
2509      if (HasName) hash ^= Name.GetHashCode();
2510      if (HasNumber) hash ^= Number.GetHashCode();
2511      if (HasLabel) hash ^= Label.GetHashCode();
2512      if (HasType) hash ^= Type.GetHashCode();
2513      if (HasTypeName) hash ^= TypeName.GetHashCode();
2514      if (HasExtendee) hash ^= Extendee.GetHashCode();
2515      if (HasDefaultValue) hash ^= DefaultValue.GetHashCode();
2516      if (HasOneofIndex) hash ^= OneofIndex.GetHashCode();
2517      if (HasJsonName) hash ^= JsonName.GetHashCode();
2518      if (options_ != null) hash ^= Options.GetHashCode();
2519      if (HasProto3Optional) hash ^= Proto3Optional.GetHashCode();
2520      if (_unknownFields != null) {
2521        hash ^= _unknownFields.GetHashCode();
2522      }
2523      return hash;
2524    }
2525
2526    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2527    public override string ToString() {
2528      return pb::JsonFormatter.ToDiagnosticString(this);
2529    }
2530
2531    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2532    public void WriteTo(pb::CodedOutputStream output) {
2533    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2534      output.WriteRawMessage(this);
2535    #else
2536      if (HasName) {
2537        output.WriteRawTag(10);
2538        output.WriteString(Name);
2539      }
2540      if (HasExtendee) {
2541        output.WriteRawTag(18);
2542        output.WriteString(Extendee);
2543      }
2544      if (HasNumber) {
2545        output.WriteRawTag(24);
2546        output.WriteInt32(Number);
2547      }
2548      if (HasLabel) {
2549        output.WriteRawTag(32);
2550        output.WriteEnum((int) Label);
2551      }
2552      if (HasType) {
2553        output.WriteRawTag(40);
2554        output.WriteEnum((int) Type);
2555      }
2556      if (HasTypeName) {
2557        output.WriteRawTag(50);
2558        output.WriteString(TypeName);
2559      }
2560      if (HasDefaultValue) {
2561        output.WriteRawTag(58);
2562        output.WriteString(DefaultValue);
2563      }
2564      if (options_ != null) {
2565        output.WriteRawTag(66);
2566        output.WriteMessage(Options);
2567      }
2568      if (HasOneofIndex) {
2569        output.WriteRawTag(72);
2570        output.WriteInt32(OneofIndex);
2571      }
2572      if (HasJsonName) {
2573        output.WriteRawTag(82);
2574        output.WriteString(JsonName);
2575      }
2576      if (HasProto3Optional) {
2577        output.WriteRawTag(136, 1);
2578        output.WriteBool(Proto3Optional);
2579      }
2580      if (_unknownFields != null) {
2581        _unknownFields.WriteTo(output);
2582      }
2583    #endif
2584    }
2585
2586    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2587    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2588    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
2589      if (HasName) {
2590        output.WriteRawTag(10);
2591        output.WriteString(Name);
2592      }
2593      if (HasExtendee) {
2594        output.WriteRawTag(18);
2595        output.WriteString(Extendee);
2596      }
2597      if (HasNumber) {
2598        output.WriteRawTag(24);
2599        output.WriteInt32(Number);
2600      }
2601      if (HasLabel) {
2602        output.WriteRawTag(32);
2603        output.WriteEnum((int) Label);
2604      }
2605      if (HasType) {
2606        output.WriteRawTag(40);
2607        output.WriteEnum((int) Type);
2608      }
2609      if (HasTypeName) {
2610        output.WriteRawTag(50);
2611        output.WriteString(TypeName);
2612      }
2613      if (HasDefaultValue) {
2614        output.WriteRawTag(58);
2615        output.WriteString(DefaultValue);
2616      }
2617      if (options_ != null) {
2618        output.WriteRawTag(66);
2619        output.WriteMessage(Options);
2620      }
2621      if (HasOneofIndex) {
2622        output.WriteRawTag(72);
2623        output.WriteInt32(OneofIndex);
2624      }
2625      if (HasJsonName) {
2626        output.WriteRawTag(82);
2627        output.WriteString(JsonName);
2628      }
2629      if (HasProto3Optional) {
2630        output.WriteRawTag(136, 1);
2631        output.WriteBool(Proto3Optional);
2632      }
2633      if (_unknownFields != null) {
2634        _unknownFields.WriteTo(ref output);
2635      }
2636    }
2637    #endif
2638
2639    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2640    public int CalculateSize() {
2641      int size = 0;
2642      if (HasName) {
2643        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
2644      }
2645      if (HasNumber) {
2646        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Number);
2647      }
2648      if (HasLabel) {
2649        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Label);
2650      }
2651      if (HasType) {
2652        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
2653      }
2654      if (HasTypeName) {
2655        size += 1 + pb::CodedOutputStream.ComputeStringSize(TypeName);
2656      }
2657      if (HasExtendee) {
2658        size += 1 + pb::CodedOutputStream.ComputeStringSize(Extendee);
2659      }
2660      if (HasDefaultValue) {
2661        size += 1 + pb::CodedOutputStream.ComputeStringSize(DefaultValue);
2662      }
2663      if (HasOneofIndex) {
2664        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OneofIndex);
2665      }
2666      if (HasJsonName) {
2667        size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonName);
2668      }
2669      if (options_ != null) {
2670        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
2671      }
2672      if (HasProto3Optional) {
2673        size += 2 + 1;
2674      }
2675      if (_unknownFields != null) {
2676        size += _unknownFields.CalculateSize();
2677      }
2678      return size;
2679    }
2680
2681    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2682    public void MergeFrom(FieldDescriptorProto other) {
2683      if (other == null) {
2684        return;
2685      }
2686      if (other.HasName) {
2687        Name = other.Name;
2688      }
2689      if (other.HasNumber) {
2690        Number = other.Number;
2691      }
2692      if (other.HasLabel) {
2693        Label = other.Label;
2694      }
2695      if (other.HasType) {
2696        Type = other.Type;
2697      }
2698      if (other.HasTypeName) {
2699        TypeName = other.TypeName;
2700      }
2701      if (other.HasExtendee) {
2702        Extendee = other.Extendee;
2703      }
2704      if (other.HasDefaultValue) {
2705        DefaultValue = other.DefaultValue;
2706      }
2707      if (other.HasOneofIndex) {
2708        OneofIndex = other.OneofIndex;
2709      }
2710      if (other.HasJsonName) {
2711        JsonName = other.JsonName;
2712      }
2713      if (other.options_ != null) {
2714        if (options_ == null) {
2715          Options = new global::Google.Protobuf.Reflection.FieldOptions();
2716        }
2717        Options.MergeFrom(other.Options);
2718      }
2719      if (other.HasProto3Optional) {
2720        Proto3Optional = other.Proto3Optional;
2721      }
2722      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2723    }
2724
2725    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2726    public void MergeFrom(pb::CodedInputStream input) {
2727    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2728      input.ReadRawMessage(this);
2729    #else
2730      uint tag;
2731      while ((tag = input.ReadTag()) != 0) {
2732        switch(tag) {
2733          default:
2734            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2735            break;
2736          case 10: {
2737            Name = input.ReadString();
2738            break;
2739          }
2740          case 18: {
2741            Extendee = input.ReadString();
2742            break;
2743          }
2744          case 24: {
2745            Number = input.ReadInt32();
2746            break;
2747          }
2748          case 32: {
2749            Label = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) input.ReadEnum();
2750            break;
2751          }
2752          case 40: {
2753            Type = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type) input.ReadEnum();
2754            break;
2755          }
2756          case 50: {
2757            TypeName = input.ReadString();
2758            break;
2759          }
2760          case 58: {
2761            DefaultValue = input.ReadString();
2762            break;
2763          }
2764          case 66: {
2765            if (options_ == null) {
2766              Options = new global::Google.Protobuf.Reflection.FieldOptions();
2767            }
2768            input.ReadMessage(Options);
2769            break;
2770          }
2771          case 72: {
2772            OneofIndex = input.ReadInt32();
2773            break;
2774          }
2775          case 82: {
2776            JsonName = input.ReadString();
2777            break;
2778          }
2779          case 136: {
2780            Proto3Optional = input.ReadBool();
2781            break;
2782          }
2783        }
2784      }
2785    #endif
2786    }
2787
2788    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2789    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2790    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2791      uint tag;
2792      while ((tag = input.ReadTag()) != 0) {
2793        switch(tag) {
2794          default:
2795            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2796            break;
2797          case 10: {
2798            Name = input.ReadString();
2799            break;
2800          }
2801          case 18: {
2802            Extendee = input.ReadString();
2803            break;
2804          }
2805          case 24: {
2806            Number = input.ReadInt32();
2807            break;
2808          }
2809          case 32: {
2810            Label = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) input.ReadEnum();
2811            break;
2812          }
2813          case 40: {
2814            Type = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type) input.ReadEnum();
2815            break;
2816          }
2817          case 50: {
2818            TypeName = input.ReadString();
2819            break;
2820          }
2821          case 58: {
2822            DefaultValue = input.ReadString();
2823            break;
2824          }
2825          case 66: {
2826            if (options_ == null) {
2827              Options = new global::Google.Protobuf.Reflection.FieldOptions();
2828            }
2829            input.ReadMessage(Options);
2830            break;
2831          }
2832          case 72: {
2833            OneofIndex = input.ReadInt32();
2834            break;
2835          }
2836          case 82: {
2837            JsonName = input.ReadString();
2838            break;
2839          }
2840          case 136: {
2841            Proto3Optional = input.ReadBool();
2842            break;
2843          }
2844        }
2845      }
2846    }
2847    #endif
2848
2849    #region Nested types
2850    /// <summary>Container for nested types declared in the FieldDescriptorProto message type.</summary>
2851    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2852    public static partial class Types {
2853      public enum Type {
2854        /// <summary>
2855        /// 0 is reserved for errors.
2856        /// Order is weird for historical reasons.
2857        /// </summary>
2858        [pbr::OriginalName("TYPE_DOUBLE")] Double = 1,
2859        [pbr::OriginalName("TYPE_FLOAT")] Float = 2,
2860        /// <summary>
2861        /// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if
2862        /// negative values are likely.
2863        /// </summary>
2864        [pbr::OriginalName("TYPE_INT64")] Int64 = 3,
2865        [pbr::OriginalName("TYPE_UINT64")] Uint64 = 4,
2866        /// <summary>
2867        /// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if
2868        /// negative values are likely.
2869        /// </summary>
2870        [pbr::OriginalName("TYPE_INT32")] Int32 = 5,
2871        [pbr::OriginalName("TYPE_FIXED64")] Fixed64 = 6,
2872        [pbr::OriginalName("TYPE_FIXED32")] Fixed32 = 7,
2873        [pbr::OriginalName("TYPE_BOOL")] Bool = 8,
2874        [pbr::OriginalName("TYPE_STRING")] String = 9,
2875        /// <summary>
2876        /// Tag-delimited aggregate.
2877        /// Group type is deprecated and not supported in proto3. However, Proto3
2878        /// implementations should still be able to parse the group wire format and
2879        /// treat group fields as unknown fields.
2880        /// </summary>
2881        [pbr::OriginalName("TYPE_GROUP")] Group = 10,
2882        /// <summary>
2883        /// Length-delimited aggregate.
2884        /// </summary>
2885        [pbr::OriginalName("TYPE_MESSAGE")] Message = 11,
2886        /// <summary>
2887        /// New in version 2.
2888        /// </summary>
2889        [pbr::OriginalName("TYPE_BYTES")] Bytes = 12,
2890        [pbr::OriginalName("TYPE_UINT32")] Uint32 = 13,
2891        [pbr::OriginalName("TYPE_ENUM")] Enum = 14,
2892        [pbr::OriginalName("TYPE_SFIXED32")] Sfixed32 = 15,
2893        [pbr::OriginalName("TYPE_SFIXED64")] Sfixed64 = 16,
2894        /// <summary>
2895        /// Uses ZigZag encoding.
2896        /// </summary>
2897        [pbr::OriginalName("TYPE_SINT32")] Sint32 = 17,
2898        /// <summary>
2899        /// Uses ZigZag encoding.
2900        /// </summary>
2901        [pbr::OriginalName("TYPE_SINT64")] Sint64 = 18,
2902      }
2903
2904      public enum Label {
2905        /// <summary>
2906        /// 0 is reserved for errors
2907        /// </summary>
2908        [pbr::OriginalName("LABEL_OPTIONAL")] Optional = 1,
2909        [pbr::OriginalName("LABEL_REQUIRED")] Required = 2,
2910        [pbr::OriginalName("LABEL_REPEATED")] Repeated = 3,
2911      }
2912
2913    }
2914    #endregion
2915
2916  }
2917
2918  /// <summary>
2919  /// Describes a oneof.
2920  /// </summary>
2921  public sealed partial class OneofDescriptorProto : pb::IMessage<OneofDescriptorProto>
2922  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2923      , pb::IBufferMessage
2924  #endif
2925  {
2926    private static readonly pb::MessageParser<OneofDescriptorProto> _parser = new pb::MessageParser<OneofDescriptorProto>(() => new OneofDescriptorProto());
2927    private pb::UnknownFieldSet _unknownFields;
2928    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2929    public static pb::MessageParser<OneofDescriptorProto> Parser { get { return _parser; } }
2930
2931    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2932    public static pbr::MessageDescriptor Descriptor {
2933      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[5]; }
2934    }
2935
2936    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2937    pbr::MessageDescriptor pb::IMessage.Descriptor {
2938      get { return Descriptor; }
2939    }
2940
2941    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2942    public OneofDescriptorProto() {
2943      OnConstruction();
2944    }
2945
2946    partial void OnConstruction();
2947
2948    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2949    public OneofDescriptorProto(OneofDescriptorProto other) : this() {
2950      name_ = other.name_;
2951      options_ = other.options_ != null ? other.options_.Clone() : null;
2952      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2953    }
2954
2955    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2956    public OneofDescriptorProto Clone() {
2957      return new OneofDescriptorProto(this);
2958    }
2959
2960    /// <summary>Field number for the "name" field.</summary>
2961    public const int NameFieldNumber = 1;
2962    private readonly static string NameDefaultValue = "";
2963
2964    private string name_;
2965    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2966    public string Name {
2967      get { return name_ ?? NameDefaultValue; }
2968      set {
2969        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2970      }
2971    }
2972    /// <summary>Gets whether the "name" field is set</summary>
2973    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2974    public bool HasName {
2975      get { return name_ != null; }
2976    }
2977    /// <summary>Clears the value of the "name" field</summary>
2978    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2979    public void ClearName() {
2980      name_ = null;
2981    }
2982
2983    /// <summary>Field number for the "options" field.</summary>
2984    public const int OptionsFieldNumber = 2;
2985    private global::Google.Protobuf.Reflection.OneofOptions options_;
2986    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2987    public global::Google.Protobuf.Reflection.OneofOptions Options {
2988      get { return options_; }
2989      set {
2990        options_ = value;
2991      }
2992    }
2993
2994    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2995    public override bool Equals(object other) {
2996      return Equals(other as OneofDescriptorProto);
2997    }
2998
2999    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3000    public bool Equals(OneofDescriptorProto other) {
3001      if (ReferenceEquals(other, null)) {
3002        return false;
3003      }
3004      if (ReferenceEquals(other, this)) {
3005        return true;
3006      }
3007      if (Name != other.Name) return false;
3008      if (!object.Equals(Options, other.Options)) return false;
3009      return Equals(_unknownFields, other._unknownFields);
3010    }
3011
3012    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3013    public override int GetHashCode() {
3014      int hash = 1;
3015      if (HasName) hash ^= Name.GetHashCode();
3016      if (options_ != null) hash ^= Options.GetHashCode();
3017      if (_unknownFields != null) {
3018        hash ^= _unknownFields.GetHashCode();
3019      }
3020      return hash;
3021    }
3022
3023    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3024    public override string ToString() {
3025      return pb::JsonFormatter.ToDiagnosticString(this);
3026    }
3027
3028    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3029    public void WriteTo(pb::CodedOutputStream output) {
3030    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3031      output.WriteRawMessage(this);
3032    #else
3033      if (HasName) {
3034        output.WriteRawTag(10);
3035        output.WriteString(Name);
3036      }
3037      if (options_ != null) {
3038        output.WriteRawTag(18);
3039        output.WriteMessage(Options);
3040      }
3041      if (_unknownFields != null) {
3042        _unknownFields.WriteTo(output);
3043      }
3044    #endif
3045    }
3046
3047    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3048    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3049    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3050      if (HasName) {
3051        output.WriteRawTag(10);
3052        output.WriteString(Name);
3053      }
3054      if (options_ != null) {
3055        output.WriteRawTag(18);
3056        output.WriteMessage(Options);
3057      }
3058      if (_unknownFields != null) {
3059        _unknownFields.WriteTo(ref output);
3060      }
3061    }
3062    #endif
3063
3064    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3065    public int CalculateSize() {
3066      int size = 0;
3067      if (HasName) {
3068        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
3069      }
3070      if (options_ != null) {
3071        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
3072      }
3073      if (_unknownFields != null) {
3074        size += _unknownFields.CalculateSize();
3075      }
3076      return size;
3077    }
3078
3079    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3080    public void MergeFrom(OneofDescriptorProto other) {
3081      if (other == null) {
3082        return;
3083      }
3084      if (other.HasName) {
3085        Name = other.Name;
3086      }
3087      if (other.options_ != null) {
3088        if (options_ == null) {
3089          Options = new global::Google.Protobuf.Reflection.OneofOptions();
3090        }
3091        Options.MergeFrom(other.Options);
3092      }
3093      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3094    }
3095
3096    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3097    public void MergeFrom(pb::CodedInputStream input) {
3098    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3099      input.ReadRawMessage(this);
3100    #else
3101      uint tag;
3102      while ((tag = input.ReadTag()) != 0) {
3103        switch(tag) {
3104          default:
3105            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3106            break;
3107          case 10: {
3108            Name = input.ReadString();
3109            break;
3110          }
3111          case 18: {
3112            if (options_ == null) {
3113              Options = new global::Google.Protobuf.Reflection.OneofOptions();
3114            }
3115            input.ReadMessage(Options);
3116            break;
3117          }
3118        }
3119      }
3120    #endif
3121    }
3122
3123    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3124    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3125    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
3126      uint tag;
3127      while ((tag = input.ReadTag()) != 0) {
3128        switch(tag) {
3129          default:
3130            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
3131            break;
3132          case 10: {
3133            Name = input.ReadString();
3134            break;
3135          }
3136          case 18: {
3137            if (options_ == null) {
3138              Options = new global::Google.Protobuf.Reflection.OneofOptions();
3139            }
3140            input.ReadMessage(Options);
3141            break;
3142          }
3143        }
3144      }
3145    }
3146    #endif
3147
3148  }
3149
3150  /// <summary>
3151  /// Describes an enum type.
3152  /// </summary>
3153  public sealed partial class EnumDescriptorProto : pb::IMessage<EnumDescriptorProto>
3154  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3155      , pb::IBufferMessage
3156  #endif
3157  {
3158    private static readonly pb::MessageParser<EnumDescriptorProto> _parser = new pb::MessageParser<EnumDescriptorProto>(() => new EnumDescriptorProto());
3159    private pb::UnknownFieldSet _unknownFields;
3160    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3161    public static pb::MessageParser<EnumDescriptorProto> Parser { get { return _parser; } }
3162
3163    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3164    public static pbr::MessageDescriptor Descriptor {
3165      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[6]; }
3166    }
3167
3168    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3169    pbr::MessageDescriptor pb::IMessage.Descriptor {
3170      get { return Descriptor; }
3171    }
3172
3173    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3174    public EnumDescriptorProto() {
3175      OnConstruction();
3176    }
3177
3178    partial void OnConstruction();
3179
3180    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3181    public EnumDescriptorProto(EnumDescriptorProto other) : this() {
3182      name_ = other.name_;
3183      value_ = other.value_.Clone();
3184      options_ = other.options_ != null ? other.options_.Clone() : null;
3185      reservedRange_ = other.reservedRange_.Clone();
3186      reservedName_ = other.reservedName_.Clone();
3187      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3188    }
3189
3190    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3191    public EnumDescriptorProto Clone() {
3192      return new EnumDescriptorProto(this);
3193    }
3194
3195    /// <summary>Field number for the "name" field.</summary>
3196    public const int NameFieldNumber = 1;
3197    private readonly static string NameDefaultValue = "";
3198
3199    private string name_;
3200    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3201    public string Name {
3202      get { return name_ ?? NameDefaultValue; }
3203      set {
3204        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
3205      }
3206    }
3207    /// <summary>Gets whether the "name" field is set</summary>
3208    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3209    public bool HasName {
3210      get { return name_ != null; }
3211    }
3212    /// <summary>Clears the value of the "name" field</summary>
3213    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3214    public void ClearName() {
3215      name_ = null;
3216    }
3217
3218    /// <summary>Field number for the "value" field.</summary>
3219    public const int ValueFieldNumber = 2;
3220    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> _repeated_value_codec
3221        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser);
3222    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> value_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto>();
3223    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3224    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> Value {
3225      get { return value_; }
3226    }
3227
3228    /// <summary>Field number for the "options" field.</summary>
3229    public const int OptionsFieldNumber = 3;
3230    private global::Google.Protobuf.Reflection.EnumOptions options_;
3231    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3232    public global::Google.Protobuf.Reflection.EnumOptions Options {
3233      get { return options_; }
3234      set {
3235        options_ = value;
3236      }
3237    }
3238
3239    /// <summary>Field number for the "reserved_range" field.</summary>
3240    public const int ReservedRangeFieldNumber = 4;
3241    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange> _repeated_reservedRange_codec
3242        = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange.Parser);
3243    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange> reservedRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange>();
3244    /// <summary>
3245    /// Range of reserved numeric values. Reserved numeric values may not be used
3246    /// by enum values in the same enum declaration. Reserved ranges may not
3247    /// overlap.
3248    /// </summary>
3249    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3250    public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange> ReservedRange {
3251      get { return reservedRange_; }
3252    }
3253
3254    /// <summary>Field number for the "reserved_name" field.</summary>
3255    public const int ReservedNameFieldNumber = 5;
3256    private static readonly pb::FieldCodec<string> _repeated_reservedName_codec
3257        = pb::FieldCodec.ForString(42);
3258    private readonly pbc::RepeatedField<string> reservedName_ = new pbc::RepeatedField<string>();
3259    /// <summary>
3260    /// Reserved enum value names, which may not be reused. A given name may only
3261    /// be reserved once.
3262    /// </summary>
3263    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3264    public pbc::RepeatedField<string> ReservedName {
3265      get { return reservedName_; }
3266    }
3267
3268    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3269    public override bool Equals(object other) {
3270      return Equals(other as EnumDescriptorProto);
3271    }
3272
3273    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3274    public bool Equals(EnumDescriptorProto other) {
3275      if (ReferenceEquals(other, null)) {
3276        return false;
3277      }
3278      if (ReferenceEquals(other, this)) {
3279        return true;
3280      }
3281      if (Name != other.Name) return false;
3282      if(!value_.Equals(other.value_)) return false;
3283      if (!object.Equals(Options, other.Options)) return false;
3284      if(!reservedRange_.Equals(other.reservedRange_)) return false;
3285      if(!reservedName_.Equals(other.reservedName_)) return false;
3286      return Equals(_unknownFields, other._unknownFields);
3287    }
3288
3289    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3290    public override int GetHashCode() {
3291      int hash = 1;
3292      if (HasName) hash ^= Name.GetHashCode();
3293      hash ^= value_.GetHashCode();
3294      if (options_ != null) hash ^= Options.GetHashCode();
3295      hash ^= reservedRange_.GetHashCode();
3296      hash ^= reservedName_.GetHashCode();
3297      if (_unknownFields != null) {
3298        hash ^= _unknownFields.GetHashCode();
3299      }
3300      return hash;
3301    }
3302
3303    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3304    public override string ToString() {
3305      return pb::JsonFormatter.ToDiagnosticString(this);
3306    }
3307
3308    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3309    public void WriteTo(pb::CodedOutputStream output) {
3310    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3311      output.WriteRawMessage(this);
3312    #else
3313      if (HasName) {
3314        output.WriteRawTag(10);
3315        output.WriteString(Name);
3316      }
3317      value_.WriteTo(output, _repeated_value_codec);
3318      if (options_ != null) {
3319        output.WriteRawTag(26);
3320        output.WriteMessage(Options);
3321      }
3322      reservedRange_.WriteTo(output, _repeated_reservedRange_codec);
3323      reservedName_.WriteTo(output, _repeated_reservedName_codec);
3324      if (_unknownFields != null) {
3325        _unknownFields.WriteTo(output);
3326      }
3327    #endif
3328    }
3329
3330    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3331    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3332    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3333      if (HasName) {
3334        output.WriteRawTag(10);
3335        output.WriteString(Name);
3336      }
3337      value_.WriteTo(ref output, _repeated_value_codec);
3338      if (options_ != null) {
3339        output.WriteRawTag(26);
3340        output.WriteMessage(Options);
3341      }
3342      reservedRange_.WriteTo(ref output, _repeated_reservedRange_codec);
3343      reservedName_.WriteTo(ref output, _repeated_reservedName_codec);
3344      if (_unknownFields != null) {
3345        _unknownFields.WriteTo(ref output);
3346      }
3347    }
3348    #endif
3349
3350    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3351    public int CalculateSize() {
3352      int size = 0;
3353      if (HasName) {
3354        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
3355      }
3356      size += value_.CalculateSize(_repeated_value_codec);
3357      if (options_ != null) {
3358        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
3359      }
3360      size += reservedRange_.CalculateSize(_repeated_reservedRange_codec);
3361      size += reservedName_.CalculateSize(_repeated_reservedName_codec);
3362      if (_unknownFields != null) {
3363        size += _unknownFields.CalculateSize();
3364      }
3365      return size;
3366    }
3367
3368    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3369    public void MergeFrom(EnumDescriptorProto other) {
3370      if (other == null) {
3371        return;
3372      }
3373      if (other.HasName) {
3374        Name = other.Name;
3375      }
3376      value_.Add(other.value_);
3377      if (other.options_ != null) {
3378        if (options_ == null) {
3379          Options = new global::Google.Protobuf.Reflection.EnumOptions();
3380        }
3381        Options.MergeFrom(other.Options);
3382      }
3383      reservedRange_.Add(other.reservedRange_);
3384      reservedName_.Add(other.reservedName_);
3385      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3386    }
3387
3388    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3389    public void MergeFrom(pb::CodedInputStream input) {
3390    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3391      input.ReadRawMessage(this);
3392    #else
3393      uint tag;
3394      while ((tag = input.ReadTag()) != 0) {
3395        switch(tag) {
3396          default:
3397            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3398            break;
3399          case 10: {
3400            Name = input.ReadString();
3401            break;
3402          }
3403          case 18: {
3404            value_.AddEntriesFrom(input, _repeated_value_codec);
3405            break;
3406          }
3407          case 26: {
3408            if (options_ == null) {
3409              Options = new global::Google.Protobuf.Reflection.EnumOptions();
3410            }
3411            input.ReadMessage(Options);
3412            break;
3413          }
3414          case 34: {
3415            reservedRange_.AddEntriesFrom(input, _repeated_reservedRange_codec);
3416            break;
3417          }
3418          case 42: {
3419            reservedName_.AddEntriesFrom(input, _repeated_reservedName_codec);
3420            break;
3421          }
3422        }
3423      }
3424    #endif
3425    }
3426
3427    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3428    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3429    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
3430      uint tag;
3431      while ((tag = input.ReadTag()) != 0) {
3432        switch(tag) {
3433          default:
3434            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
3435            break;
3436          case 10: {
3437            Name = input.ReadString();
3438            break;
3439          }
3440          case 18: {
3441            value_.AddEntriesFrom(ref input, _repeated_value_codec);
3442            break;
3443          }
3444          case 26: {
3445            if (options_ == null) {
3446              Options = new global::Google.Protobuf.Reflection.EnumOptions();
3447            }
3448            input.ReadMessage(Options);
3449            break;
3450          }
3451          case 34: {
3452            reservedRange_.AddEntriesFrom(ref input, _repeated_reservedRange_codec);
3453            break;
3454          }
3455          case 42: {
3456            reservedName_.AddEntriesFrom(ref input, _repeated_reservedName_codec);
3457            break;
3458          }
3459        }
3460      }
3461    }
3462    #endif
3463
3464    #region Nested types
3465    /// <summary>Container for nested types declared in the EnumDescriptorProto message type.</summary>
3466    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3467    public static partial class Types {
3468      /// <summary>
3469      /// Range of reserved numeric values. Reserved values may not be used by
3470      /// entries in the same enum. Reserved ranges may not overlap.
3471      ///
3472      /// Note that this is distinct from DescriptorProto.ReservedRange in that it
3473      /// is inclusive such that it can appropriately represent the entire int32
3474      /// domain.
3475      /// </summary>
3476      public sealed partial class EnumReservedRange : pb::IMessage<EnumReservedRange>
3477      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3478          , pb::IBufferMessage
3479      #endif
3480      {
3481        private static readonly pb::MessageParser<EnumReservedRange> _parser = new pb::MessageParser<EnumReservedRange>(() => new EnumReservedRange());
3482        private pb::UnknownFieldSet _unknownFields;
3483        private int _hasBits0;
3484        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3485        public static pb::MessageParser<EnumReservedRange> Parser { get { return _parser; } }
3486
3487        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3488        public static pbr::MessageDescriptor Descriptor {
3489          get { return global::Google.Protobuf.Reflection.EnumDescriptorProto.Descriptor.NestedTypes[0]; }
3490        }
3491
3492        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3493        pbr::MessageDescriptor pb::IMessage.Descriptor {
3494          get { return Descriptor; }
3495        }
3496
3497        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3498        public EnumReservedRange() {
3499          OnConstruction();
3500        }
3501
3502        partial void OnConstruction();
3503
3504        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3505        public EnumReservedRange(EnumReservedRange other) : this() {
3506          _hasBits0 = other._hasBits0;
3507          start_ = other.start_;
3508          end_ = other.end_;
3509          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3510        }
3511
3512        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3513        public EnumReservedRange Clone() {
3514          return new EnumReservedRange(this);
3515        }
3516
3517        /// <summary>Field number for the "start" field.</summary>
3518        public const int StartFieldNumber = 1;
3519        private readonly static int StartDefaultValue = 0;
3520
3521        private int start_;
3522        /// <summary>
3523        /// Inclusive.
3524        /// </summary>
3525        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3526        public int Start {
3527          get { if ((_hasBits0 & 1) != 0) { return start_; } else { return StartDefaultValue; } }
3528          set {
3529            _hasBits0 |= 1;
3530            start_ = value;
3531          }
3532        }
3533        /// <summary>Gets whether the "start" field is set</summary>
3534        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3535        public bool HasStart {
3536          get { return (_hasBits0 & 1) != 0; }
3537        }
3538        /// <summary>Clears the value of the "start" field</summary>
3539        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3540        public void ClearStart() {
3541          _hasBits0 &= ~1;
3542        }
3543
3544        /// <summary>Field number for the "end" field.</summary>
3545        public const int EndFieldNumber = 2;
3546        private readonly static int EndDefaultValue = 0;
3547
3548        private int end_;
3549        /// <summary>
3550        /// Inclusive.
3551        /// </summary>
3552        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3553        public int End {
3554          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }
3555          set {
3556            _hasBits0 |= 2;
3557            end_ = value;
3558          }
3559        }
3560        /// <summary>Gets whether the "end" field is set</summary>
3561        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3562        public bool HasEnd {
3563          get { return (_hasBits0 & 2) != 0; }
3564        }
3565        /// <summary>Clears the value of the "end" field</summary>
3566        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3567        public void ClearEnd() {
3568          _hasBits0 &= ~2;
3569        }
3570
3571        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3572        public override bool Equals(object other) {
3573          return Equals(other as EnumReservedRange);
3574        }
3575
3576        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3577        public bool Equals(EnumReservedRange other) {
3578          if (ReferenceEquals(other, null)) {
3579            return false;
3580          }
3581          if (ReferenceEquals(other, this)) {
3582            return true;
3583          }
3584          if (Start != other.Start) return false;
3585          if (End != other.End) return false;
3586          return Equals(_unknownFields, other._unknownFields);
3587        }
3588
3589        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3590        public override int GetHashCode() {
3591          int hash = 1;
3592          if (HasStart) hash ^= Start.GetHashCode();
3593          if (HasEnd) hash ^= End.GetHashCode();
3594          if (_unknownFields != null) {
3595            hash ^= _unknownFields.GetHashCode();
3596          }
3597          return hash;
3598        }
3599
3600        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3601        public override string ToString() {
3602          return pb::JsonFormatter.ToDiagnosticString(this);
3603        }
3604
3605        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3606        public void WriteTo(pb::CodedOutputStream output) {
3607        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3608          output.WriteRawMessage(this);
3609        #else
3610          if (HasStart) {
3611            output.WriteRawTag(8);
3612            output.WriteInt32(Start);
3613          }
3614          if (HasEnd) {
3615            output.WriteRawTag(16);
3616            output.WriteInt32(End);
3617          }
3618          if (_unknownFields != null) {
3619            _unknownFields.WriteTo(output);
3620          }
3621        #endif
3622        }
3623
3624        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3625        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3626        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3627          if (HasStart) {
3628            output.WriteRawTag(8);
3629            output.WriteInt32(Start);
3630          }
3631          if (HasEnd) {
3632            output.WriteRawTag(16);
3633            output.WriteInt32(End);
3634          }
3635          if (_unknownFields != null) {
3636            _unknownFields.WriteTo(ref output);
3637          }
3638        }
3639        #endif
3640
3641        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3642        public int CalculateSize() {
3643          int size = 0;
3644          if (HasStart) {
3645            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
3646          }
3647          if (HasEnd) {
3648            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
3649          }
3650          if (_unknownFields != null) {
3651            size += _unknownFields.CalculateSize();
3652          }
3653          return size;
3654        }
3655
3656        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3657        public void MergeFrom(EnumReservedRange other) {
3658          if (other == null) {
3659            return;
3660          }
3661          if (other.HasStart) {
3662            Start = other.Start;
3663          }
3664          if (other.HasEnd) {
3665            End = other.End;
3666          }
3667          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3668        }
3669
3670        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3671        public void MergeFrom(pb::CodedInputStream input) {
3672        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3673          input.ReadRawMessage(this);
3674        #else
3675          uint tag;
3676          while ((tag = input.ReadTag()) != 0) {
3677            switch(tag) {
3678              default:
3679                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3680                break;
3681              case 8: {
3682                Start = input.ReadInt32();
3683                break;
3684              }
3685              case 16: {
3686                End = input.ReadInt32();
3687                break;
3688              }
3689            }
3690          }
3691        #endif
3692        }
3693
3694        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3695        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3696        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
3697          uint tag;
3698          while ((tag = input.ReadTag()) != 0) {
3699            switch(tag) {
3700              default:
3701                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
3702                break;
3703              case 8: {
3704                Start = input.ReadInt32();
3705                break;
3706              }
3707              case 16: {
3708                End = input.ReadInt32();
3709                break;
3710              }
3711            }
3712          }
3713        }
3714        #endif
3715
3716      }
3717
3718    }
3719    #endregion
3720
3721  }
3722
3723  /// <summary>
3724  /// Describes a value within an enum.
3725  /// </summary>
3726  public sealed partial class EnumValueDescriptorProto : pb::IMessage<EnumValueDescriptorProto>
3727  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3728      , pb::IBufferMessage
3729  #endif
3730  {
3731    private static readonly pb::MessageParser<EnumValueDescriptorProto> _parser = new pb::MessageParser<EnumValueDescriptorProto>(() => new EnumValueDescriptorProto());
3732    private pb::UnknownFieldSet _unknownFields;
3733    private int _hasBits0;
3734    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3735    public static pb::MessageParser<EnumValueDescriptorProto> Parser { get { return _parser; } }
3736
3737    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3738    public static pbr::MessageDescriptor Descriptor {
3739      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[7]; }
3740    }
3741
3742    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3743    pbr::MessageDescriptor pb::IMessage.Descriptor {
3744      get { return Descriptor; }
3745    }
3746
3747    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3748    public EnumValueDescriptorProto() {
3749      OnConstruction();
3750    }
3751
3752    partial void OnConstruction();
3753
3754    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3755    public EnumValueDescriptorProto(EnumValueDescriptorProto other) : this() {
3756      _hasBits0 = other._hasBits0;
3757      name_ = other.name_;
3758      number_ = other.number_;
3759      options_ = other.options_ != null ? other.options_.Clone() : null;
3760      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3761    }
3762
3763    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3764    public EnumValueDescriptorProto Clone() {
3765      return new EnumValueDescriptorProto(this);
3766    }
3767
3768    /// <summary>Field number for the "name" field.</summary>
3769    public const int NameFieldNumber = 1;
3770    private readonly static string NameDefaultValue = "";
3771
3772    private string name_;
3773    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3774    public string Name {
3775      get { return name_ ?? NameDefaultValue; }
3776      set {
3777        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
3778      }
3779    }
3780    /// <summary>Gets whether the "name" field is set</summary>
3781    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3782    public bool HasName {
3783      get { return name_ != null; }
3784    }
3785    /// <summary>Clears the value of the "name" field</summary>
3786    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3787    public void ClearName() {
3788      name_ = null;
3789    }
3790
3791    /// <summary>Field number for the "number" field.</summary>
3792    public const int NumberFieldNumber = 2;
3793    private readonly static int NumberDefaultValue = 0;
3794
3795    private int number_;
3796    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3797    public int Number {
3798      get { if ((_hasBits0 & 1) != 0) { return number_; } else { return NumberDefaultValue; } }
3799      set {
3800        _hasBits0 |= 1;
3801        number_ = value;
3802      }
3803    }
3804    /// <summary>Gets whether the "number" field is set</summary>
3805    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3806    public bool HasNumber {
3807      get { return (_hasBits0 & 1) != 0; }
3808    }
3809    /// <summary>Clears the value of the "number" field</summary>
3810    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3811    public void ClearNumber() {
3812      _hasBits0 &= ~1;
3813    }
3814
3815    /// <summary>Field number for the "options" field.</summary>
3816    public const int OptionsFieldNumber = 3;
3817    private global::Google.Protobuf.Reflection.EnumValueOptions options_;
3818    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3819    public global::Google.Protobuf.Reflection.EnumValueOptions Options {
3820      get { return options_; }
3821      set {
3822        options_ = value;
3823      }
3824    }
3825
3826    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3827    public override bool Equals(object other) {
3828      return Equals(other as EnumValueDescriptorProto);
3829    }
3830
3831    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3832    public bool Equals(EnumValueDescriptorProto other) {
3833      if (ReferenceEquals(other, null)) {
3834        return false;
3835      }
3836      if (ReferenceEquals(other, this)) {
3837        return true;
3838      }
3839      if (Name != other.Name) return false;
3840      if (Number != other.Number) return false;
3841      if (!object.Equals(Options, other.Options)) return false;
3842      return Equals(_unknownFields, other._unknownFields);
3843    }
3844
3845    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3846    public override int GetHashCode() {
3847      int hash = 1;
3848      if (HasName) hash ^= Name.GetHashCode();
3849      if (HasNumber) hash ^= Number.GetHashCode();
3850      if (options_ != null) hash ^= Options.GetHashCode();
3851      if (_unknownFields != null) {
3852        hash ^= _unknownFields.GetHashCode();
3853      }
3854      return hash;
3855    }
3856
3857    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3858    public override string ToString() {
3859      return pb::JsonFormatter.ToDiagnosticString(this);
3860    }
3861
3862    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3863    public void WriteTo(pb::CodedOutputStream output) {
3864    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3865      output.WriteRawMessage(this);
3866    #else
3867      if (HasName) {
3868        output.WriteRawTag(10);
3869        output.WriteString(Name);
3870      }
3871      if (HasNumber) {
3872        output.WriteRawTag(16);
3873        output.WriteInt32(Number);
3874      }
3875      if (options_ != null) {
3876        output.WriteRawTag(26);
3877        output.WriteMessage(Options);
3878      }
3879      if (_unknownFields != null) {
3880        _unknownFields.WriteTo(output);
3881      }
3882    #endif
3883    }
3884
3885    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3886    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3887    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3888      if (HasName) {
3889        output.WriteRawTag(10);
3890        output.WriteString(Name);
3891      }
3892      if (HasNumber) {
3893        output.WriteRawTag(16);
3894        output.WriteInt32(Number);
3895      }
3896      if (options_ != null) {
3897        output.WriteRawTag(26);
3898        output.WriteMessage(Options);
3899      }
3900      if (_unknownFields != null) {
3901        _unknownFields.WriteTo(ref output);
3902      }
3903    }
3904    #endif
3905
3906    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3907    public int CalculateSize() {
3908      int size = 0;
3909      if (HasName) {
3910        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
3911      }
3912      if (HasNumber) {
3913        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Number);
3914      }
3915      if (options_ != null) {
3916        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
3917      }
3918      if (_unknownFields != null) {
3919        size += _unknownFields.CalculateSize();
3920      }
3921      return size;
3922    }
3923
3924    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3925    public void MergeFrom(EnumValueDescriptorProto other) {
3926      if (other == null) {
3927        return;
3928      }
3929      if (other.HasName) {
3930        Name = other.Name;
3931      }
3932      if (other.HasNumber) {
3933        Number = other.Number;
3934      }
3935      if (other.options_ != null) {
3936        if (options_ == null) {
3937          Options = new global::Google.Protobuf.Reflection.EnumValueOptions();
3938        }
3939        Options.MergeFrom(other.Options);
3940      }
3941      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3942    }
3943
3944    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3945    public void MergeFrom(pb::CodedInputStream input) {
3946    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3947      input.ReadRawMessage(this);
3948    #else
3949      uint tag;
3950      while ((tag = input.ReadTag()) != 0) {
3951        switch(tag) {
3952          default:
3953            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3954            break;
3955          case 10: {
3956            Name = input.ReadString();
3957            break;
3958          }
3959          case 16: {
3960            Number = input.ReadInt32();
3961            break;
3962          }
3963          case 26: {
3964            if (options_ == null) {
3965              Options = new global::Google.Protobuf.Reflection.EnumValueOptions();
3966            }
3967            input.ReadMessage(Options);
3968            break;
3969          }
3970        }
3971      }
3972    #endif
3973    }
3974
3975    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3976    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3977    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
3978      uint tag;
3979      while ((tag = input.ReadTag()) != 0) {
3980        switch(tag) {
3981          default:
3982            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
3983            break;
3984          case 10: {
3985            Name = input.ReadString();
3986            break;
3987          }
3988          case 16: {
3989            Number = input.ReadInt32();
3990            break;
3991          }
3992          case 26: {
3993            if (options_ == null) {
3994              Options = new global::Google.Protobuf.Reflection.EnumValueOptions();
3995            }
3996            input.ReadMessage(Options);
3997            break;
3998          }
3999        }
4000      }
4001    }
4002    #endif
4003
4004  }
4005
4006  /// <summary>
4007  /// Describes a service.
4008  /// </summary>
4009  public sealed partial class ServiceDescriptorProto : pb::IMessage<ServiceDescriptorProto>
4010  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4011      , pb::IBufferMessage
4012  #endif
4013  {
4014    private static readonly pb::MessageParser<ServiceDescriptorProto> _parser = new pb::MessageParser<ServiceDescriptorProto>(() => new ServiceDescriptorProto());
4015    private pb::UnknownFieldSet _unknownFields;
4016    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4017    public static pb::MessageParser<ServiceDescriptorProto> Parser { get { return _parser; } }
4018
4019    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4020    public static pbr::MessageDescriptor Descriptor {
4021      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[8]; }
4022    }
4023
4024    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4025    pbr::MessageDescriptor pb::IMessage.Descriptor {
4026      get { return Descriptor; }
4027    }
4028
4029    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4030    public ServiceDescriptorProto() {
4031      OnConstruction();
4032    }
4033
4034    partial void OnConstruction();
4035
4036    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4037    public ServiceDescriptorProto(ServiceDescriptorProto other) : this() {
4038      name_ = other.name_;
4039      method_ = other.method_.Clone();
4040      options_ = other.options_ != null ? other.options_.Clone() : null;
4041      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4042    }
4043
4044    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4045    public ServiceDescriptorProto Clone() {
4046      return new ServiceDescriptorProto(this);
4047    }
4048
4049    /// <summary>Field number for the "name" field.</summary>
4050    public const int NameFieldNumber = 1;
4051    private readonly static string NameDefaultValue = "";
4052
4053    private string name_;
4054    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4055    public string Name {
4056      get { return name_ ?? NameDefaultValue; }
4057      set {
4058        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4059      }
4060    }
4061    /// <summary>Gets whether the "name" field is set</summary>
4062    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4063    public bool HasName {
4064      get { return name_ != null; }
4065    }
4066    /// <summary>Clears the value of the "name" field</summary>
4067    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4068    public void ClearName() {
4069      name_ = null;
4070    }
4071
4072    /// <summary>Field number for the "method" field.</summary>
4073    public const int MethodFieldNumber = 2;
4074    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.MethodDescriptorProto> _repeated_method_codec
4075        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser);
4076    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto> method_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto>();
4077    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4078    public pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto> Method {
4079      get { return method_; }
4080    }
4081
4082    /// <summary>Field number for the "options" field.</summary>
4083    public const int OptionsFieldNumber = 3;
4084    private global::Google.Protobuf.Reflection.ServiceOptions options_;
4085    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4086    public global::Google.Protobuf.Reflection.ServiceOptions Options {
4087      get { return options_; }
4088      set {
4089        options_ = value;
4090      }
4091    }
4092
4093    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4094    public override bool Equals(object other) {
4095      return Equals(other as ServiceDescriptorProto);
4096    }
4097
4098    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4099    public bool Equals(ServiceDescriptorProto other) {
4100      if (ReferenceEquals(other, null)) {
4101        return false;
4102      }
4103      if (ReferenceEquals(other, this)) {
4104        return true;
4105      }
4106      if (Name != other.Name) return false;
4107      if(!method_.Equals(other.method_)) return false;
4108      if (!object.Equals(Options, other.Options)) return false;
4109      return Equals(_unknownFields, other._unknownFields);
4110    }
4111
4112    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4113    public override int GetHashCode() {
4114      int hash = 1;
4115      if (HasName) hash ^= Name.GetHashCode();
4116      hash ^= method_.GetHashCode();
4117      if (options_ != null) hash ^= Options.GetHashCode();
4118      if (_unknownFields != null) {
4119        hash ^= _unknownFields.GetHashCode();
4120      }
4121      return hash;
4122    }
4123
4124    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4125    public override string ToString() {
4126      return pb::JsonFormatter.ToDiagnosticString(this);
4127    }
4128
4129    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4130    public void WriteTo(pb::CodedOutputStream output) {
4131    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4132      output.WriteRawMessage(this);
4133    #else
4134      if (HasName) {
4135        output.WriteRawTag(10);
4136        output.WriteString(Name);
4137      }
4138      method_.WriteTo(output, _repeated_method_codec);
4139      if (options_ != null) {
4140        output.WriteRawTag(26);
4141        output.WriteMessage(Options);
4142      }
4143      if (_unknownFields != null) {
4144        _unknownFields.WriteTo(output);
4145      }
4146    #endif
4147    }
4148
4149    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4150    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4151    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4152      if (HasName) {
4153        output.WriteRawTag(10);
4154        output.WriteString(Name);
4155      }
4156      method_.WriteTo(ref output, _repeated_method_codec);
4157      if (options_ != null) {
4158        output.WriteRawTag(26);
4159        output.WriteMessage(Options);
4160      }
4161      if (_unknownFields != null) {
4162        _unknownFields.WriteTo(ref output);
4163      }
4164    }
4165    #endif
4166
4167    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4168    public int CalculateSize() {
4169      int size = 0;
4170      if (HasName) {
4171        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
4172      }
4173      size += method_.CalculateSize(_repeated_method_codec);
4174      if (options_ != null) {
4175        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
4176      }
4177      if (_unknownFields != null) {
4178        size += _unknownFields.CalculateSize();
4179      }
4180      return size;
4181    }
4182
4183    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4184    public void MergeFrom(ServiceDescriptorProto other) {
4185      if (other == null) {
4186        return;
4187      }
4188      if (other.HasName) {
4189        Name = other.Name;
4190      }
4191      method_.Add(other.method_);
4192      if (other.options_ != null) {
4193        if (options_ == null) {
4194          Options = new global::Google.Protobuf.Reflection.ServiceOptions();
4195        }
4196        Options.MergeFrom(other.Options);
4197      }
4198      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4199    }
4200
4201    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4202    public void MergeFrom(pb::CodedInputStream input) {
4203    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4204      input.ReadRawMessage(this);
4205    #else
4206      uint tag;
4207      while ((tag = input.ReadTag()) != 0) {
4208        switch(tag) {
4209          default:
4210            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4211            break;
4212          case 10: {
4213            Name = input.ReadString();
4214            break;
4215          }
4216          case 18: {
4217            method_.AddEntriesFrom(input, _repeated_method_codec);
4218            break;
4219          }
4220          case 26: {
4221            if (options_ == null) {
4222              Options = new global::Google.Protobuf.Reflection.ServiceOptions();
4223            }
4224            input.ReadMessage(Options);
4225            break;
4226          }
4227        }
4228      }
4229    #endif
4230    }
4231
4232    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4233    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4234    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4235      uint tag;
4236      while ((tag = input.ReadTag()) != 0) {
4237        switch(tag) {
4238          default:
4239            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4240            break;
4241          case 10: {
4242            Name = input.ReadString();
4243            break;
4244          }
4245          case 18: {
4246            method_.AddEntriesFrom(ref input, _repeated_method_codec);
4247            break;
4248          }
4249          case 26: {
4250            if (options_ == null) {
4251              Options = new global::Google.Protobuf.Reflection.ServiceOptions();
4252            }
4253            input.ReadMessage(Options);
4254            break;
4255          }
4256        }
4257      }
4258    }
4259    #endif
4260
4261  }
4262
4263  /// <summary>
4264  /// Describes a method of a service.
4265  /// </summary>
4266  public sealed partial class MethodDescriptorProto : pb::IMessage<MethodDescriptorProto>
4267  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4268      , pb::IBufferMessage
4269  #endif
4270  {
4271    private static readonly pb::MessageParser<MethodDescriptorProto> _parser = new pb::MessageParser<MethodDescriptorProto>(() => new MethodDescriptorProto());
4272    private pb::UnknownFieldSet _unknownFields;
4273    private int _hasBits0;
4274    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4275    public static pb::MessageParser<MethodDescriptorProto> Parser { get { return _parser; } }
4276
4277    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4278    public static pbr::MessageDescriptor Descriptor {
4279      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[9]; }
4280    }
4281
4282    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4283    pbr::MessageDescriptor pb::IMessage.Descriptor {
4284      get { return Descriptor; }
4285    }
4286
4287    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4288    public MethodDescriptorProto() {
4289      OnConstruction();
4290    }
4291
4292    partial void OnConstruction();
4293
4294    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4295    public MethodDescriptorProto(MethodDescriptorProto other) : this() {
4296      _hasBits0 = other._hasBits0;
4297      name_ = other.name_;
4298      inputType_ = other.inputType_;
4299      outputType_ = other.outputType_;
4300      options_ = other.options_ != null ? other.options_.Clone() : null;
4301      clientStreaming_ = other.clientStreaming_;
4302      serverStreaming_ = other.serverStreaming_;
4303      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4304    }
4305
4306    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4307    public MethodDescriptorProto Clone() {
4308      return new MethodDescriptorProto(this);
4309    }
4310
4311    /// <summary>Field number for the "name" field.</summary>
4312    public const int NameFieldNumber = 1;
4313    private readonly static string NameDefaultValue = "";
4314
4315    private string name_;
4316    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4317    public string Name {
4318      get { return name_ ?? NameDefaultValue; }
4319      set {
4320        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4321      }
4322    }
4323    /// <summary>Gets whether the "name" field is set</summary>
4324    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4325    public bool HasName {
4326      get { return name_ != null; }
4327    }
4328    /// <summary>Clears the value of the "name" field</summary>
4329    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4330    public void ClearName() {
4331      name_ = null;
4332    }
4333
4334    /// <summary>Field number for the "input_type" field.</summary>
4335    public const int InputTypeFieldNumber = 2;
4336    private readonly static string InputTypeDefaultValue = "";
4337
4338    private string inputType_;
4339    /// <summary>
4340    /// Input and output type names.  These are resolved in the same way as
4341    /// FieldDescriptorProto.type_name, but must refer to a message type.
4342    /// </summary>
4343    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4344    public string InputType {
4345      get { return inputType_ ?? InputTypeDefaultValue; }
4346      set {
4347        inputType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4348      }
4349    }
4350    /// <summary>Gets whether the "input_type" field is set</summary>
4351    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4352    public bool HasInputType {
4353      get { return inputType_ != null; }
4354    }
4355    /// <summary>Clears the value of the "input_type" field</summary>
4356    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4357    public void ClearInputType() {
4358      inputType_ = null;
4359    }
4360
4361    /// <summary>Field number for the "output_type" field.</summary>
4362    public const int OutputTypeFieldNumber = 3;
4363    private readonly static string OutputTypeDefaultValue = "";
4364
4365    private string outputType_;
4366    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4367    public string OutputType {
4368      get { return outputType_ ?? OutputTypeDefaultValue; }
4369      set {
4370        outputType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4371      }
4372    }
4373    /// <summary>Gets whether the "output_type" field is set</summary>
4374    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4375    public bool HasOutputType {
4376      get { return outputType_ != null; }
4377    }
4378    /// <summary>Clears the value of the "output_type" field</summary>
4379    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4380    public void ClearOutputType() {
4381      outputType_ = null;
4382    }
4383
4384    /// <summary>Field number for the "options" field.</summary>
4385    public const int OptionsFieldNumber = 4;
4386    private global::Google.Protobuf.Reflection.MethodOptions options_;
4387    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4388    public global::Google.Protobuf.Reflection.MethodOptions Options {
4389      get { return options_; }
4390      set {
4391        options_ = value;
4392      }
4393    }
4394
4395    /// <summary>Field number for the "client_streaming" field.</summary>
4396    public const int ClientStreamingFieldNumber = 5;
4397    private readonly static bool ClientStreamingDefaultValue = false;
4398
4399    private bool clientStreaming_;
4400    /// <summary>
4401    /// Identifies if client streams multiple client messages
4402    /// </summary>
4403    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4404    public bool ClientStreaming {
4405      get { if ((_hasBits0 & 1) != 0) { return clientStreaming_; } else { return ClientStreamingDefaultValue; } }
4406      set {
4407        _hasBits0 |= 1;
4408        clientStreaming_ = value;
4409      }
4410    }
4411    /// <summary>Gets whether the "client_streaming" field is set</summary>
4412    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4413    public bool HasClientStreaming {
4414      get { return (_hasBits0 & 1) != 0; }
4415    }
4416    /// <summary>Clears the value of the "client_streaming" field</summary>
4417    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4418    public void ClearClientStreaming() {
4419      _hasBits0 &= ~1;
4420    }
4421
4422    /// <summary>Field number for the "server_streaming" field.</summary>
4423    public const int ServerStreamingFieldNumber = 6;
4424    private readonly static bool ServerStreamingDefaultValue = false;
4425
4426    private bool serverStreaming_;
4427    /// <summary>
4428    /// Identifies if server streams multiple server messages
4429    /// </summary>
4430    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4431    public bool ServerStreaming {
4432      get { if ((_hasBits0 & 2) != 0) { return serverStreaming_; } else { return ServerStreamingDefaultValue; } }
4433      set {
4434        _hasBits0 |= 2;
4435        serverStreaming_ = value;
4436      }
4437    }
4438    /// <summary>Gets whether the "server_streaming" field is set</summary>
4439    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4440    public bool HasServerStreaming {
4441      get { return (_hasBits0 & 2) != 0; }
4442    }
4443    /// <summary>Clears the value of the "server_streaming" field</summary>
4444    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4445    public void ClearServerStreaming() {
4446      _hasBits0 &= ~2;
4447    }
4448
4449    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4450    public override bool Equals(object other) {
4451      return Equals(other as MethodDescriptorProto);
4452    }
4453
4454    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4455    public bool Equals(MethodDescriptorProto other) {
4456      if (ReferenceEquals(other, null)) {
4457        return false;
4458      }
4459      if (ReferenceEquals(other, this)) {
4460        return true;
4461      }
4462      if (Name != other.Name) return false;
4463      if (InputType != other.InputType) return false;
4464      if (OutputType != other.OutputType) return false;
4465      if (!object.Equals(Options, other.Options)) return false;
4466      if (ClientStreaming != other.ClientStreaming) return false;
4467      if (ServerStreaming != other.ServerStreaming) return false;
4468      return Equals(_unknownFields, other._unknownFields);
4469    }
4470
4471    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4472    public override int GetHashCode() {
4473      int hash = 1;
4474      if (HasName) hash ^= Name.GetHashCode();
4475      if (HasInputType) hash ^= InputType.GetHashCode();
4476      if (HasOutputType) hash ^= OutputType.GetHashCode();
4477      if (options_ != null) hash ^= Options.GetHashCode();
4478      if (HasClientStreaming) hash ^= ClientStreaming.GetHashCode();
4479      if (HasServerStreaming) hash ^= ServerStreaming.GetHashCode();
4480      if (_unknownFields != null) {
4481        hash ^= _unknownFields.GetHashCode();
4482      }
4483      return hash;
4484    }
4485
4486    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4487    public override string ToString() {
4488      return pb::JsonFormatter.ToDiagnosticString(this);
4489    }
4490
4491    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4492    public void WriteTo(pb::CodedOutputStream output) {
4493    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4494      output.WriteRawMessage(this);
4495    #else
4496      if (HasName) {
4497        output.WriteRawTag(10);
4498        output.WriteString(Name);
4499      }
4500      if (HasInputType) {
4501        output.WriteRawTag(18);
4502        output.WriteString(InputType);
4503      }
4504      if (HasOutputType) {
4505        output.WriteRawTag(26);
4506        output.WriteString(OutputType);
4507      }
4508      if (options_ != null) {
4509        output.WriteRawTag(34);
4510        output.WriteMessage(Options);
4511      }
4512      if (HasClientStreaming) {
4513        output.WriteRawTag(40);
4514        output.WriteBool(ClientStreaming);
4515      }
4516      if (HasServerStreaming) {
4517        output.WriteRawTag(48);
4518        output.WriteBool(ServerStreaming);
4519      }
4520      if (_unknownFields != null) {
4521        _unknownFields.WriteTo(output);
4522      }
4523    #endif
4524    }
4525
4526    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4527    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4528    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4529      if (HasName) {
4530        output.WriteRawTag(10);
4531        output.WriteString(Name);
4532      }
4533      if (HasInputType) {
4534        output.WriteRawTag(18);
4535        output.WriteString(InputType);
4536      }
4537      if (HasOutputType) {
4538        output.WriteRawTag(26);
4539        output.WriteString(OutputType);
4540      }
4541      if (options_ != null) {
4542        output.WriteRawTag(34);
4543        output.WriteMessage(Options);
4544      }
4545      if (HasClientStreaming) {
4546        output.WriteRawTag(40);
4547        output.WriteBool(ClientStreaming);
4548      }
4549      if (HasServerStreaming) {
4550        output.WriteRawTag(48);
4551        output.WriteBool(ServerStreaming);
4552      }
4553      if (_unknownFields != null) {
4554        _unknownFields.WriteTo(ref output);
4555      }
4556    }
4557    #endif
4558
4559    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4560    public int CalculateSize() {
4561      int size = 0;
4562      if (HasName) {
4563        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
4564      }
4565      if (HasInputType) {
4566        size += 1 + pb::CodedOutputStream.ComputeStringSize(InputType);
4567      }
4568      if (HasOutputType) {
4569        size += 1 + pb::CodedOutputStream.ComputeStringSize(OutputType);
4570      }
4571      if (options_ != null) {
4572        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
4573      }
4574      if (HasClientStreaming) {
4575        size += 1 + 1;
4576      }
4577      if (HasServerStreaming) {
4578        size += 1 + 1;
4579      }
4580      if (_unknownFields != null) {
4581        size += _unknownFields.CalculateSize();
4582      }
4583      return size;
4584    }
4585
4586    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4587    public void MergeFrom(MethodDescriptorProto other) {
4588      if (other == null) {
4589        return;
4590      }
4591      if (other.HasName) {
4592        Name = other.Name;
4593      }
4594      if (other.HasInputType) {
4595        InputType = other.InputType;
4596      }
4597      if (other.HasOutputType) {
4598        OutputType = other.OutputType;
4599      }
4600      if (other.options_ != null) {
4601        if (options_ == null) {
4602          Options = new global::Google.Protobuf.Reflection.MethodOptions();
4603        }
4604        Options.MergeFrom(other.Options);
4605      }
4606      if (other.HasClientStreaming) {
4607        ClientStreaming = other.ClientStreaming;
4608      }
4609      if (other.HasServerStreaming) {
4610        ServerStreaming = other.ServerStreaming;
4611      }
4612      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4613    }
4614
4615    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4616    public void MergeFrom(pb::CodedInputStream input) {
4617    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4618      input.ReadRawMessage(this);
4619    #else
4620      uint tag;
4621      while ((tag = input.ReadTag()) != 0) {
4622        switch(tag) {
4623          default:
4624            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4625            break;
4626          case 10: {
4627            Name = input.ReadString();
4628            break;
4629          }
4630          case 18: {
4631            InputType = input.ReadString();
4632            break;
4633          }
4634          case 26: {
4635            OutputType = input.ReadString();
4636            break;
4637          }
4638          case 34: {
4639            if (options_ == null) {
4640              Options = new global::Google.Protobuf.Reflection.MethodOptions();
4641            }
4642            input.ReadMessage(Options);
4643            break;
4644          }
4645          case 40: {
4646            ClientStreaming = input.ReadBool();
4647            break;
4648          }
4649          case 48: {
4650            ServerStreaming = input.ReadBool();
4651            break;
4652          }
4653        }
4654      }
4655    #endif
4656    }
4657
4658    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4659    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4660    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4661      uint tag;
4662      while ((tag = input.ReadTag()) != 0) {
4663        switch(tag) {
4664          default:
4665            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4666            break;
4667          case 10: {
4668            Name = input.ReadString();
4669            break;
4670          }
4671          case 18: {
4672            InputType = input.ReadString();
4673            break;
4674          }
4675          case 26: {
4676            OutputType = input.ReadString();
4677            break;
4678          }
4679          case 34: {
4680            if (options_ == null) {
4681              Options = new global::Google.Protobuf.Reflection.MethodOptions();
4682            }
4683            input.ReadMessage(Options);
4684            break;
4685          }
4686          case 40: {
4687            ClientStreaming = input.ReadBool();
4688            break;
4689          }
4690          case 48: {
4691            ServerStreaming = input.ReadBool();
4692            break;
4693          }
4694        }
4695      }
4696    }
4697    #endif
4698
4699  }
4700
4701  public sealed partial class FileOptions : pb::IExtendableMessage<FileOptions>
4702  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4703      , pb::IBufferMessage
4704  #endif
4705  {
4706    private static readonly pb::MessageParser<FileOptions> _parser = new pb::MessageParser<FileOptions>(() => new FileOptions());
4707    private pb::UnknownFieldSet _unknownFields;
4708    internal pb::ExtensionSet<FileOptions> _extensions;
4709    private pb::ExtensionSet<FileOptions> _Extensions { get { return _extensions; } }
4710    private int _hasBits0;
4711    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4712    public static pb::MessageParser<FileOptions> Parser { get { return _parser; } }
4713
4714    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4715    public static pbr::MessageDescriptor Descriptor {
4716      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[10]; }
4717    }
4718
4719    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4720    pbr::MessageDescriptor pb::IMessage.Descriptor {
4721      get { return Descriptor; }
4722    }
4723
4724    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4725    public FileOptions() {
4726      OnConstruction();
4727    }
4728
4729    partial void OnConstruction();
4730
4731    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4732    public FileOptions(FileOptions other) : this() {
4733      _hasBits0 = other._hasBits0;
4734      javaPackage_ = other.javaPackage_;
4735      javaOuterClassname_ = other.javaOuterClassname_;
4736      javaMultipleFiles_ = other.javaMultipleFiles_;
4737      javaGenerateEqualsAndHash_ = other.javaGenerateEqualsAndHash_;
4738      javaStringCheckUtf8_ = other.javaStringCheckUtf8_;
4739      optimizeFor_ = other.optimizeFor_;
4740      goPackage_ = other.goPackage_;
4741      ccGenericServices_ = other.ccGenericServices_;
4742      javaGenericServices_ = other.javaGenericServices_;
4743      pyGenericServices_ = other.pyGenericServices_;
4744      phpGenericServices_ = other.phpGenericServices_;
4745      deprecated_ = other.deprecated_;
4746      ccEnableArenas_ = other.ccEnableArenas_;
4747      objcClassPrefix_ = other.objcClassPrefix_;
4748      csharpNamespace_ = other.csharpNamespace_;
4749      swiftPrefix_ = other.swiftPrefix_;
4750      phpClassPrefix_ = other.phpClassPrefix_;
4751      phpNamespace_ = other.phpNamespace_;
4752      phpMetadataNamespace_ = other.phpMetadataNamespace_;
4753      rubyPackage_ = other.rubyPackage_;
4754      uninterpretedOption_ = other.uninterpretedOption_.Clone();
4755      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4756      _extensions = pb::ExtensionSet.Clone(other._extensions);
4757    }
4758
4759    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4760    public FileOptions Clone() {
4761      return new FileOptions(this);
4762    }
4763
4764    /// <summary>Field number for the "java_package" field.</summary>
4765    public const int JavaPackageFieldNumber = 1;
4766    private readonly static string JavaPackageDefaultValue = "";
4767
4768    private string javaPackage_;
4769    /// <summary>
4770    /// Sets the Java package where classes generated from this .proto will be
4771    /// placed.  By default, the proto package is used, but this is often
4772    /// inappropriate because proto packages do not normally start with backwards
4773    /// domain names.
4774    /// </summary>
4775    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4776    public string JavaPackage {
4777      get { return javaPackage_ ?? JavaPackageDefaultValue; }
4778      set {
4779        javaPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4780      }
4781    }
4782    /// <summary>Gets whether the "java_package" field is set</summary>
4783    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4784    public bool HasJavaPackage {
4785      get { return javaPackage_ != null; }
4786    }
4787    /// <summary>Clears the value of the "java_package" field</summary>
4788    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4789    public void ClearJavaPackage() {
4790      javaPackage_ = null;
4791    }
4792
4793    /// <summary>Field number for the "java_outer_classname" field.</summary>
4794    public const int JavaOuterClassnameFieldNumber = 8;
4795    private readonly static string JavaOuterClassnameDefaultValue = "";
4796
4797    private string javaOuterClassname_;
4798    /// <summary>
4799    /// If set, all the classes from the .proto file are wrapped in a single
4800    /// outer class with the given name.  This applies to both Proto1
4801    /// (equivalent to the old "--one_java_file" option) and Proto2 (where
4802    /// a .proto always translates to a single class, but you may want to
4803    /// explicitly choose the class name).
4804    /// </summary>
4805    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4806    public string JavaOuterClassname {
4807      get { return javaOuterClassname_ ?? JavaOuterClassnameDefaultValue; }
4808      set {
4809        javaOuterClassname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4810      }
4811    }
4812    /// <summary>Gets whether the "java_outer_classname" field is set</summary>
4813    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4814    public bool HasJavaOuterClassname {
4815      get { return javaOuterClassname_ != null; }
4816    }
4817    /// <summary>Clears the value of the "java_outer_classname" field</summary>
4818    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4819    public void ClearJavaOuterClassname() {
4820      javaOuterClassname_ = null;
4821    }
4822
4823    /// <summary>Field number for the "java_multiple_files" field.</summary>
4824    public const int JavaMultipleFilesFieldNumber = 10;
4825    private readonly static bool JavaMultipleFilesDefaultValue = false;
4826
4827    private bool javaMultipleFiles_;
4828    /// <summary>
4829    /// If set true, then the Java code generator will generate a separate .java
4830    /// file for each top-level message, enum, and service defined in the .proto
4831    /// file.  Thus, these types will *not* be nested inside the outer class
4832    /// named by java_outer_classname.  However, the outer class will still be
4833    /// generated to contain the file's getDescriptor() method as well as any
4834    /// top-level extensions defined in the file.
4835    /// </summary>
4836    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4837    public bool JavaMultipleFiles {
4838      get { if ((_hasBits0 & 2) != 0) { return javaMultipleFiles_; } else { return JavaMultipleFilesDefaultValue; } }
4839      set {
4840        _hasBits0 |= 2;
4841        javaMultipleFiles_ = value;
4842      }
4843    }
4844    /// <summary>Gets whether the "java_multiple_files" field is set</summary>
4845    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4846    public bool HasJavaMultipleFiles {
4847      get { return (_hasBits0 & 2) != 0; }
4848    }
4849    /// <summary>Clears the value of the "java_multiple_files" field</summary>
4850    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4851    public void ClearJavaMultipleFiles() {
4852      _hasBits0 &= ~2;
4853    }
4854
4855    /// <summary>Field number for the "java_generate_equals_and_hash" field.</summary>
4856    public const int JavaGenerateEqualsAndHashFieldNumber = 20;
4857    private readonly static bool JavaGenerateEqualsAndHashDefaultValue = false;
4858
4859    private bool javaGenerateEqualsAndHash_;
4860    /// <summary>
4861    /// This option does nothing.
4862    /// </summary>
4863    [global::System.ObsoleteAttribute]
4864    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4865    public bool JavaGenerateEqualsAndHash {
4866      get { if ((_hasBits0 & 32) != 0) { return javaGenerateEqualsAndHash_; } else { return JavaGenerateEqualsAndHashDefaultValue; } }
4867      set {
4868        _hasBits0 |= 32;
4869        javaGenerateEqualsAndHash_ = value;
4870      }
4871    }
4872    /// <summary>Gets whether the "java_generate_equals_and_hash" field is set</summary>
4873    [global::System.ObsoleteAttribute]
4874    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4875    public bool HasJavaGenerateEqualsAndHash {
4876      get { return (_hasBits0 & 32) != 0; }
4877    }
4878    /// <summary>Clears the value of the "java_generate_equals_and_hash" field</summary>
4879    [global::System.ObsoleteAttribute]
4880    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4881    public void ClearJavaGenerateEqualsAndHash() {
4882      _hasBits0 &= ~32;
4883    }
4884
4885    /// <summary>Field number for the "java_string_check_utf8" field.</summary>
4886    public const int JavaStringCheckUtf8FieldNumber = 27;
4887    private readonly static bool JavaStringCheckUtf8DefaultValue = false;
4888
4889    private bool javaStringCheckUtf8_;
4890    /// <summary>
4891    /// If set true, then the Java2 code generator will generate code that
4892    /// throws an exception whenever an attempt is made to assign a non-UTF-8
4893    /// byte sequence to a string field.
4894    /// Message reflection will do the same.
4895    /// However, an extension field still accepts non-UTF-8 byte sequences.
4896    /// This option has no effect on when used with the lite runtime.
4897    /// </summary>
4898    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4899    public bool JavaStringCheckUtf8 {
4900      get { if ((_hasBits0 & 128) != 0) { return javaStringCheckUtf8_; } else { return JavaStringCheckUtf8DefaultValue; } }
4901      set {
4902        _hasBits0 |= 128;
4903        javaStringCheckUtf8_ = value;
4904      }
4905    }
4906    /// <summary>Gets whether the "java_string_check_utf8" field is set</summary>
4907    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4908    public bool HasJavaStringCheckUtf8 {
4909      get { return (_hasBits0 & 128) != 0; }
4910    }
4911    /// <summary>Clears the value of the "java_string_check_utf8" field</summary>
4912    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4913    public void ClearJavaStringCheckUtf8() {
4914      _hasBits0 &= ~128;
4915    }
4916
4917    /// <summary>Field number for the "optimize_for" field.</summary>
4918    public const int OptimizeForFieldNumber = 9;
4919    private readonly static global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode OptimizeForDefaultValue = global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode.Speed;
4920
4921    private global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode optimizeFor_;
4922    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4923    public global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode OptimizeFor {
4924      get { if ((_hasBits0 & 1) != 0) { return optimizeFor_; } else { return OptimizeForDefaultValue; } }
4925      set {
4926        _hasBits0 |= 1;
4927        optimizeFor_ = value;
4928      }
4929    }
4930    /// <summary>Gets whether the "optimize_for" field is set</summary>
4931    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4932    public bool HasOptimizeFor {
4933      get { return (_hasBits0 & 1) != 0; }
4934    }
4935    /// <summary>Clears the value of the "optimize_for" field</summary>
4936    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4937    public void ClearOptimizeFor() {
4938      _hasBits0 &= ~1;
4939    }
4940
4941    /// <summary>Field number for the "go_package" field.</summary>
4942    public const int GoPackageFieldNumber = 11;
4943    private readonly static string GoPackageDefaultValue = "";
4944
4945    private string goPackage_;
4946    /// <summary>
4947    /// Sets the Go package where structs generated from this .proto will be
4948    /// placed. If omitted, the Go package will be derived from the following:
4949    ///   - The basename of the package import path, if provided.
4950    ///   - Otherwise, the package statement in the .proto file, if present.
4951    ///   - Otherwise, the basename of the .proto file, without extension.
4952    /// </summary>
4953    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4954    public string GoPackage {
4955      get { return goPackage_ ?? GoPackageDefaultValue; }
4956      set {
4957        goPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4958      }
4959    }
4960    /// <summary>Gets whether the "go_package" field is set</summary>
4961    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4962    public bool HasGoPackage {
4963      get { return goPackage_ != null; }
4964    }
4965    /// <summary>Clears the value of the "go_package" field</summary>
4966    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4967    public void ClearGoPackage() {
4968      goPackage_ = null;
4969    }
4970
4971    /// <summary>Field number for the "cc_generic_services" field.</summary>
4972    public const int CcGenericServicesFieldNumber = 16;
4973    private readonly static bool CcGenericServicesDefaultValue = false;
4974
4975    private bool ccGenericServices_;
4976    /// <summary>
4977    /// Should generic services be generated in each language?  "Generic" services
4978    /// are not specific to any particular RPC system.  They are generated by the
4979    /// main code generators in each language (without additional plugins).
4980    /// Generic services were the only kind of service generation supported by
4981    /// early versions of google.protobuf.
4982    ///
4983    /// Generic services are now considered deprecated in favor of using plugins
4984    /// that generate code specific to your particular RPC system.  Therefore,
4985    /// these default to false.  Old code which depends on generic services should
4986    /// explicitly set them to true.
4987    /// </summary>
4988    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4989    public bool CcGenericServices {
4990      get { if ((_hasBits0 & 4) != 0) { return ccGenericServices_; } else { return CcGenericServicesDefaultValue; } }
4991      set {
4992        _hasBits0 |= 4;
4993        ccGenericServices_ = value;
4994      }
4995    }
4996    /// <summary>Gets whether the "cc_generic_services" field is set</summary>
4997    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4998    public bool HasCcGenericServices {
4999      get { return (_hasBits0 & 4) != 0; }
5000    }
5001    /// <summary>Clears the value of the "cc_generic_services" field</summary>
5002    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5003    public void ClearCcGenericServices() {
5004      _hasBits0 &= ~4;
5005    }
5006
5007    /// <summary>Field number for the "java_generic_services" field.</summary>
5008    public const int JavaGenericServicesFieldNumber = 17;
5009    private readonly static bool JavaGenericServicesDefaultValue = false;
5010
5011    private bool javaGenericServices_;
5012    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5013    public bool JavaGenericServices {
5014      get { if ((_hasBits0 & 8) != 0) { return javaGenericServices_; } else { return JavaGenericServicesDefaultValue; } }
5015      set {
5016        _hasBits0 |= 8;
5017        javaGenericServices_ = value;
5018      }
5019    }
5020    /// <summary>Gets whether the "java_generic_services" field is set</summary>
5021    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5022    public bool HasJavaGenericServices {
5023      get { return (_hasBits0 & 8) != 0; }
5024    }
5025    /// <summary>Clears the value of the "java_generic_services" field</summary>
5026    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5027    public void ClearJavaGenericServices() {
5028      _hasBits0 &= ~8;
5029    }
5030
5031    /// <summary>Field number for the "py_generic_services" field.</summary>
5032    public const int PyGenericServicesFieldNumber = 18;
5033    private readonly static bool PyGenericServicesDefaultValue = false;
5034
5035    private bool pyGenericServices_;
5036    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5037    public bool PyGenericServices {
5038      get { if ((_hasBits0 & 16) != 0) { return pyGenericServices_; } else { return PyGenericServicesDefaultValue; } }
5039      set {
5040        _hasBits0 |= 16;
5041        pyGenericServices_ = value;
5042      }
5043    }
5044    /// <summary>Gets whether the "py_generic_services" field is set</summary>
5045    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5046    public bool HasPyGenericServices {
5047      get { return (_hasBits0 & 16) != 0; }
5048    }
5049    /// <summary>Clears the value of the "py_generic_services" field</summary>
5050    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5051    public void ClearPyGenericServices() {
5052      _hasBits0 &= ~16;
5053    }
5054
5055    /// <summary>Field number for the "php_generic_services" field.</summary>
5056    public const int PhpGenericServicesFieldNumber = 42;
5057    private readonly static bool PhpGenericServicesDefaultValue = false;
5058
5059    private bool phpGenericServices_;
5060    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5061    public bool PhpGenericServices {
5062      get { if ((_hasBits0 & 512) != 0) { return phpGenericServices_; } else { return PhpGenericServicesDefaultValue; } }
5063      set {
5064        _hasBits0 |= 512;
5065        phpGenericServices_ = value;
5066      }
5067    }
5068    /// <summary>Gets whether the "php_generic_services" field is set</summary>
5069    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5070    public bool HasPhpGenericServices {
5071      get { return (_hasBits0 & 512) != 0; }
5072    }
5073    /// <summary>Clears the value of the "php_generic_services" field</summary>
5074    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5075    public void ClearPhpGenericServices() {
5076      _hasBits0 &= ~512;
5077    }
5078
5079    /// <summary>Field number for the "deprecated" field.</summary>
5080    public const int DeprecatedFieldNumber = 23;
5081    private readonly static bool DeprecatedDefaultValue = false;
5082
5083    private bool deprecated_;
5084    /// <summary>
5085    /// Is this file deprecated?
5086    /// Depending on the target platform, this can emit Deprecated annotations
5087    /// for everything in the file, or it will be completely ignored; in the very
5088    /// least, this is a formalization for deprecating files.
5089    /// </summary>
5090    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5091    public bool Deprecated {
5092      get { if ((_hasBits0 & 64) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
5093      set {
5094        _hasBits0 |= 64;
5095        deprecated_ = value;
5096      }
5097    }
5098    /// <summary>Gets whether the "deprecated" field is set</summary>
5099    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5100    public bool HasDeprecated {
5101      get { return (_hasBits0 & 64) != 0; }
5102    }
5103    /// <summary>Clears the value of the "deprecated" field</summary>
5104    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5105    public void ClearDeprecated() {
5106      _hasBits0 &= ~64;
5107    }
5108
5109    /// <summary>Field number for the "cc_enable_arenas" field.</summary>
5110    public const int CcEnableArenasFieldNumber = 31;
5111    private readonly static bool CcEnableArenasDefaultValue = true;
5112
5113    private bool ccEnableArenas_;
5114    /// <summary>
5115    /// Enables the use of arenas for the proto messages in this file. This applies
5116    /// only to generated classes for C++.
5117    /// </summary>
5118    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5119    public bool CcEnableArenas {
5120      get { if ((_hasBits0 & 256) != 0) { return ccEnableArenas_; } else { return CcEnableArenasDefaultValue; } }
5121      set {
5122        _hasBits0 |= 256;
5123        ccEnableArenas_ = value;
5124      }
5125    }
5126    /// <summary>Gets whether the "cc_enable_arenas" field is set</summary>
5127    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5128    public bool HasCcEnableArenas {
5129      get { return (_hasBits0 & 256) != 0; }
5130    }
5131    /// <summary>Clears the value of the "cc_enable_arenas" field</summary>
5132    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5133    public void ClearCcEnableArenas() {
5134      _hasBits0 &= ~256;
5135    }
5136
5137    /// <summary>Field number for the "objc_class_prefix" field.</summary>
5138    public const int ObjcClassPrefixFieldNumber = 36;
5139    private readonly static string ObjcClassPrefixDefaultValue = "";
5140
5141    private string objcClassPrefix_;
5142    /// <summary>
5143    /// Sets the objective c class prefix which is prepended to all objective c
5144    /// generated classes from this .proto. There is no default.
5145    /// </summary>
5146    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5147    public string ObjcClassPrefix {
5148      get { return objcClassPrefix_ ?? ObjcClassPrefixDefaultValue; }
5149      set {
5150        objcClassPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5151      }
5152    }
5153    /// <summary>Gets whether the "objc_class_prefix" field is set</summary>
5154    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5155    public bool HasObjcClassPrefix {
5156      get { return objcClassPrefix_ != null; }
5157    }
5158    /// <summary>Clears the value of the "objc_class_prefix" field</summary>
5159    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5160    public void ClearObjcClassPrefix() {
5161      objcClassPrefix_ = null;
5162    }
5163
5164    /// <summary>Field number for the "csharp_namespace" field.</summary>
5165    public const int CsharpNamespaceFieldNumber = 37;
5166    private readonly static string CsharpNamespaceDefaultValue = "";
5167
5168    private string csharpNamespace_;
5169    /// <summary>
5170    /// Namespace for generated classes; defaults to the package.
5171    /// </summary>
5172    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5173    public string CsharpNamespace {
5174      get { return csharpNamespace_ ?? CsharpNamespaceDefaultValue; }
5175      set {
5176        csharpNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5177      }
5178    }
5179    /// <summary>Gets whether the "csharp_namespace" field is set</summary>
5180    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5181    public bool HasCsharpNamespace {
5182      get { return csharpNamespace_ != null; }
5183    }
5184    /// <summary>Clears the value of the "csharp_namespace" field</summary>
5185    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5186    public void ClearCsharpNamespace() {
5187      csharpNamespace_ = null;
5188    }
5189
5190    /// <summary>Field number for the "swift_prefix" field.</summary>
5191    public const int SwiftPrefixFieldNumber = 39;
5192    private readonly static string SwiftPrefixDefaultValue = "";
5193
5194    private string swiftPrefix_;
5195    /// <summary>
5196    /// By default Swift generators will take the proto package and CamelCase it
5197    /// replacing '.' with underscore and use that to prefix the types/symbols
5198    /// defined. When this options is provided, they will use this value instead
5199    /// to prefix the types/symbols defined.
5200    /// </summary>
5201    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5202    public string SwiftPrefix {
5203      get { return swiftPrefix_ ?? SwiftPrefixDefaultValue; }
5204      set {
5205        swiftPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5206      }
5207    }
5208    /// <summary>Gets whether the "swift_prefix" field is set</summary>
5209    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5210    public bool HasSwiftPrefix {
5211      get { return swiftPrefix_ != null; }
5212    }
5213    /// <summary>Clears the value of the "swift_prefix" field</summary>
5214    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5215    public void ClearSwiftPrefix() {
5216      swiftPrefix_ = null;
5217    }
5218
5219    /// <summary>Field number for the "php_class_prefix" field.</summary>
5220    public const int PhpClassPrefixFieldNumber = 40;
5221    private readonly static string PhpClassPrefixDefaultValue = "";
5222
5223    private string phpClassPrefix_;
5224    /// <summary>
5225    /// Sets the php class prefix which is prepended to all php generated classes
5226    /// from this .proto. Default is empty.
5227    /// </summary>
5228    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5229    public string PhpClassPrefix {
5230      get { return phpClassPrefix_ ?? PhpClassPrefixDefaultValue; }
5231      set {
5232        phpClassPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5233      }
5234    }
5235    /// <summary>Gets whether the "php_class_prefix" field is set</summary>
5236    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5237    public bool HasPhpClassPrefix {
5238      get { return phpClassPrefix_ != null; }
5239    }
5240    /// <summary>Clears the value of the "php_class_prefix" field</summary>
5241    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5242    public void ClearPhpClassPrefix() {
5243      phpClassPrefix_ = null;
5244    }
5245
5246    /// <summary>Field number for the "php_namespace" field.</summary>
5247    public const int PhpNamespaceFieldNumber = 41;
5248    private readonly static string PhpNamespaceDefaultValue = "";
5249
5250    private string phpNamespace_;
5251    /// <summary>
5252    /// Use this option to change the namespace of php generated classes. Default
5253    /// is empty. When this option is empty, the package name will be used for
5254    /// determining the namespace.
5255    /// </summary>
5256    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5257    public string PhpNamespace {
5258      get { return phpNamespace_ ?? PhpNamespaceDefaultValue; }
5259      set {
5260        phpNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5261      }
5262    }
5263    /// <summary>Gets whether the "php_namespace" field is set</summary>
5264    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5265    public bool HasPhpNamespace {
5266      get { return phpNamespace_ != null; }
5267    }
5268    /// <summary>Clears the value of the "php_namespace" field</summary>
5269    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5270    public void ClearPhpNamespace() {
5271      phpNamespace_ = null;
5272    }
5273
5274    /// <summary>Field number for the "php_metadata_namespace" field.</summary>
5275    public const int PhpMetadataNamespaceFieldNumber = 44;
5276    private readonly static string PhpMetadataNamespaceDefaultValue = "";
5277
5278    private string phpMetadataNamespace_;
5279    /// <summary>
5280    /// Use this option to change the namespace of php generated metadata classes.
5281    /// Default is empty. When this option is empty, the proto file name will be
5282    /// used for determining the namespace.
5283    /// </summary>
5284    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5285    public string PhpMetadataNamespace {
5286      get { return phpMetadataNamespace_ ?? PhpMetadataNamespaceDefaultValue; }
5287      set {
5288        phpMetadataNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5289      }
5290    }
5291    /// <summary>Gets whether the "php_metadata_namespace" field is set</summary>
5292    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5293    public bool HasPhpMetadataNamespace {
5294      get { return phpMetadataNamespace_ != null; }
5295    }
5296    /// <summary>Clears the value of the "php_metadata_namespace" field</summary>
5297    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5298    public void ClearPhpMetadataNamespace() {
5299      phpMetadataNamespace_ = null;
5300    }
5301
5302    /// <summary>Field number for the "ruby_package" field.</summary>
5303    public const int RubyPackageFieldNumber = 45;
5304    private readonly static string RubyPackageDefaultValue = "";
5305
5306    private string rubyPackage_;
5307    /// <summary>
5308    /// Use this option to change the package of ruby generated classes. Default
5309    /// is empty. When this option is not set, the package name will be used for
5310    /// determining the ruby package.
5311    /// </summary>
5312    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5313    public string RubyPackage {
5314      get { return rubyPackage_ ?? RubyPackageDefaultValue; }
5315      set {
5316        rubyPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5317      }
5318    }
5319    /// <summary>Gets whether the "ruby_package" field is set</summary>
5320    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5321    public bool HasRubyPackage {
5322      get { return rubyPackage_ != null; }
5323    }
5324    /// <summary>Clears the value of the "ruby_package" field</summary>
5325    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5326    public void ClearRubyPackage() {
5327      rubyPackage_ = null;
5328    }
5329
5330    /// <summary>Field number for the "uninterpreted_option" field.</summary>
5331    public const int UninterpretedOptionFieldNumber = 999;
5332    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
5333        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
5334    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
5335    /// <summary>
5336    /// The parser stores options it doesn't recognize here.
5337    /// See the documentation for the "Options" section above.
5338    /// </summary>
5339    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5340    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
5341      get { return uninterpretedOption_; }
5342    }
5343
5344    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5345    public override bool Equals(object other) {
5346      return Equals(other as FileOptions);
5347    }
5348
5349    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5350    public bool Equals(FileOptions other) {
5351      if (ReferenceEquals(other, null)) {
5352        return false;
5353      }
5354      if (ReferenceEquals(other, this)) {
5355        return true;
5356      }
5357      if (JavaPackage != other.JavaPackage) return false;
5358      if (JavaOuterClassname != other.JavaOuterClassname) return false;
5359      if (JavaMultipleFiles != other.JavaMultipleFiles) return false;
5360      if (JavaGenerateEqualsAndHash != other.JavaGenerateEqualsAndHash) return false;
5361      if (JavaStringCheckUtf8 != other.JavaStringCheckUtf8) return false;
5362      if (OptimizeFor != other.OptimizeFor) return false;
5363      if (GoPackage != other.GoPackage) return false;
5364      if (CcGenericServices != other.CcGenericServices) return false;
5365      if (JavaGenericServices != other.JavaGenericServices) return false;
5366      if (PyGenericServices != other.PyGenericServices) return false;
5367      if (PhpGenericServices != other.PhpGenericServices) return false;
5368      if (Deprecated != other.Deprecated) return false;
5369      if (CcEnableArenas != other.CcEnableArenas) return false;
5370      if (ObjcClassPrefix != other.ObjcClassPrefix) return false;
5371      if (CsharpNamespace != other.CsharpNamespace) return false;
5372      if (SwiftPrefix != other.SwiftPrefix) return false;
5373      if (PhpClassPrefix != other.PhpClassPrefix) return false;
5374      if (PhpNamespace != other.PhpNamespace) return false;
5375      if (PhpMetadataNamespace != other.PhpMetadataNamespace) return false;
5376      if (RubyPackage != other.RubyPackage) return false;
5377      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
5378      if (!Equals(_extensions, other._extensions)) {
5379        return false;
5380      }
5381      return Equals(_unknownFields, other._unknownFields);
5382    }
5383
5384    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5385    public override int GetHashCode() {
5386      int hash = 1;
5387      if (HasJavaPackage) hash ^= JavaPackage.GetHashCode();
5388      if (HasJavaOuterClassname) hash ^= JavaOuterClassname.GetHashCode();
5389      if (HasJavaMultipleFiles) hash ^= JavaMultipleFiles.GetHashCode();
5390      if (HasJavaGenerateEqualsAndHash) hash ^= JavaGenerateEqualsAndHash.GetHashCode();
5391      if (HasJavaStringCheckUtf8) hash ^= JavaStringCheckUtf8.GetHashCode();
5392      if (HasOptimizeFor) hash ^= OptimizeFor.GetHashCode();
5393      if (HasGoPackage) hash ^= GoPackage.GetHashCode();
5394      if (HasCcGenericServices) hash ^= CcGenericServices.GetHashCode();
5395      if (HasJavaGenericServices) hash ^= JavaGenericServices.GetHashCode();
5396      if (HasPyGenericServices) hash ^= PyGenericServices.GetHashCode();
5397      if (HasPhpGenericServices) hash ^= PhpGenericServices.GetHashCode();
5398      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
5399      if (HasCcEnableArenas) hash ^= CcEnableArenas.GetHashCode();
5400      if (HasObjcClassPrefix) hash ^= ObjcClassPrefix.GetHashCode();
5401      if (HasCsharpNamespace) hash ^= CsharpNamespace.GetHashCode();
5402      if (HasSwiftPrefix) hash ^= SwiftPrefix.GetHashCode();
5403      if (HasPhpClassPrefix) hash ^= PhpClassPrefix.GetHashCode();
5404      if (HasPhpNamespace) hash ^= PhpNamespace.GetHashCode();
5405      if (HasPhpMetadataNamespace) hash ^= PhpMetadataNamespace.GetHashCode();
5406      if (HasRubyPackage) hash ^= RubyPackage.GetHashCode();
5407      hash ^= uninterpretedOption_.GetHashCode();
5408      if (_extensions != null) {
5409        hash ^= _extensions.GetHashCode();
5410      }
5411      if (_unknownFields != null) {
5412        hash ^= _unknownFields.GetHashCode();
5413      }
5414      return hash;
5415    }
5416
5417    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5418    public override string ToString() {
5419      return pb::JsonFormatter.ToDiagnosticString(this);
5420    }
5421
5422    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5423    public void WriteTo(pb::CodedOutputStream output) {
5424    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5425      output.WriteRawMessage(this);
5426    #else
5427      if (HasJavaPackage) {
5428        output.WriteRawTag(10);
5429        output.WriteString(JavaPackage);
5430      }
5431      if (HasJavaOuterClassname) {
5432        output.WriteRawTag(66);
5433        output.WriteString(JavaOuterClassname);
5434      }
5435      if (HasOptimizeFor) {
5436        output.WriteRawTag(72);
5437        output.WriteEnum((int) OptimizeFor);
5438      }
5439      if (HasJavaMultipleFiles) {
5440        output.WriteRawTag(80);
5441        output.WriteBool(JavaMultipleFiles);
5442      }
5443      if (HasGoPackage) {
5444        output.WriteRawTag(90);
5445        output.WriteString(GoPackage);
5446      }
5447      if (HasCcGenericServices) {
5448        output.WriteRawTag(128, 1);
5449        output.WriteBool(CcGenericServices);
5450      }
5451      if (HasJavaGenericServices) {
5452        output.WriteRawTag(136, 1);
5453        output.WriteBool(JavaGenericServices);
5454      }
5455      if (HasPyGenericServices) {
5456        output.WriteRawTag(144, 1);
5457        output.WriteBool(PyGenericServices);
5458      }
5459      if (HasJavaGenerateEqualsAndHash) {
5460        output.WriteRawTag(160, 1);
5461        output.WriteBool(JavaGenerateEqualsAndHash);
5462      }
5463      if (HasDeprecated) {
5464        output.WriteRawTag(184, 1);
5465        output.WriteBool(Deprecated);
5466      }
5467      if (HasJavaStringCheckUtf8) {
5468        output.WriteRawTag(216, 1);
5469        output.WriteBool(JavaStringCheckUtf8);
5470      }
5471      if (HasCcEnableArenas) {
5472        output.WriteRawTag(248, 1);
5473        output.WriteBool(CcEnableArenas);
5474      }
5475      if (HasObjcClassPrefix) {
5476        output.WriteRawTag(162, 2);
5477        output.WriteString(ObjcClassPrefix);
5478      }
5479      if (HasCsharpNamespace) {
5480        output.WriteRawTag(170, 2);
5481        output.WriteString(CsharpNamespace);
5482      }
5483      if (HasSwiftPrefix) {
5484        output.WriteRawTag(186, 2);
5485        output.WriteString(SwiftPrefix);
5486      }
5487      if (HasPhpClassPrefix) {
5488        output.WriteRawTag(194, 2);
5489        output.WriteString(PhpClassPrefix);
5490      }
5491      if (HasPhpNamespace) {
5492        output.WriteRawTag(202, 2);
5493        output.WriteString(PhpNamespace);
5494      }
5495      if (HasPhpGenericServices) {
5496        output.WriteRawTag(208, 2);
5497        output.WriteBool(PhpGenericServices);
5498      }
5499      if (HasPhpMetadataNamespace) {
5500        output.WriteRawTag(226, 2);
5501        output.WriteString(PhpMetadataNamespace);
5502      }
5503      if (HasRubyPackage) {
5504        output.WriteRawTag(234, 2);
5505        output.WriteString(RubyPackage);
5506      }
5507      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
5508      if (_extensions != null) {
5509        _extensions.WriteTo(output);
5510      }
5511      if (_unknownFields != null) {
5512        _unknownFields.WriteTo(output);
5513      }
5514    #endif
5515    }
5516
5517    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5518    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5519    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5520      if (HasJavaPackage) {
5521        output.WriteRawTag(10);
5522        output.WriteString(JavaPackage);
5523      }
5524      if (HasJavaOuterClassname) {
5525        output.WriteRawTag(66);
5526        output.WriteString(JavaOuterClassname);
5527      }
5528      if (HasOptimizeFor) {
5529        output.WriteRawTag(72);
5530        output.WriteEnum((int) OptimizeFor);
5531      }
5532      if (HasJavaMultipleFiles) {
5533        output.WriteRawTag(80);
5534        output.WriteBool(JavaMultipleFiles);
5535      }
5536      if (HasGoPackage) {
5537        output.WriteRawTag(90);
5538        output.WriteString(GoPackage);
5539      }
5540      if (HasCcGenericServices) {
5541        output.WriteRawTag(128, 1);
5542        output.WriteBool(CcGenericServices);
5543      }
5544      if (HasJavaGenericServices) {
5545        output.WriteRawTag(136, 1);
5546        output.WriteBool(JavaGenericServices);
5547      }
5548      if (HasPyGenericServices) {
5549        output.WriteRawTag(144, 1);
5550        output.WriteBool(PyGenericServices);
5551      }
5552      if (HasJavaGenerateEqualsAndHash) {
5553        output.WriteRawTag(160, 1);
5554        output.WriteBool(JavaGenerateEqualsAndHash);
5555      }
5556      if (HasDeprecated) {
5557        output.WriteRawTag(184, 1);
5558        output.WriteBool(Deprecated);
5559      }
5560      if (HasJavaStringCheckUtf8) {
5561        output.WriteRawTag(216, 1);
5562        output.WriteBool(JavaStringCheckUtf8);
5563      }
5564      if (HasCcEnableArenas) {
5565        output.WriteRawTag(248, 1);
5566        output.WriteBool(CcEnableArenas);
5567      }
5568      if (HasObjcClassPrefix) {
5569        output.WriteRawTag(162, 2);
5570        output.WriteString(ObjcClassPrefix);
5571      }
5572      if (HasCsharpNamespace) {
5573        output.WriteRawTag(170, 2);
5574        output.WriteString(CsharpNamespace);
5575      }
5576      if (HasSwiftPrefix) {
5577        output.WriteRawTag(186, 2);
5578        output.WriteString(SwiftPrefix);
5579      }
5580      if (HasPhpClassPrefix) {
5581        output.WriteRawTag(194, 2);
5582        output.WriteString(PhpClassPrefix);
5583      }
5584      if (HasPhpNamespace) {
5585        output.WriteRawTag(202, 2);
5586        output.WriteString(PhpNamespace);
5587      }
5588      if (HasPhpGenericServices) {
5589        output.WriteRawTag(208, 2);
5590        output.WriteBool(PhpGenericServices);
5591      }
5592      if (HasPhpMetadataNamespace) {
5593        output.WriteRawTag(226, 2);
5594        output.WriteString(PhpMetadataNamespace);
5595      }
5596      if (HasRubyPackage) {
5597        output.WriteRawTag(234, 2);
5598        output.WriteString(RubyPackage);
5599      }
5600      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
5601      if (_extensions != null) {
5602        _extensions.WriteTo(ref output);
5603      }
5604      if (_unknownFields != null) {
5605        _unknownFields.WriteTo(ref output);
5606      }
5607    }
5608    #endif
5609
5610    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5611    public int CalculateSize() {
5612      int size = 0;
5613      if (HasJavaPackage) {
5614        size += 1 + pb::CodedOutputStream.ComputeStringSize(JavaPackage);
5615      }
5616      if (HasJavaOuterClassname) {
5617        size += 1 + pb::CodedOutputStream.ComputeStringSize(JavaOuterClassname);
5618      }
5619      if (HasJavaMultipleFiles) {
5620        size += 1 + 1;
5621      }
5622      if (HasJavaGenerateEqualsAndHash) {
5623        size += 2 + 1;
5624      }
5625      if (HasJavaStringCheckUtf8) {
5626        size += 2 + 1;
5627      }
5628      if (HasOptimizeFor) {
5629        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) OptimizeFor);
5630      }
5631      if (HasGoPackage) {
5632        size += 1 + pb::CodedOutputStream.ComputeStringSize(GoPackage);
5633      }
5634      if (HasCcGenericServices) {
5635        size += 2 + 1;
5636      }
5637      if (HasJavaGenericServices) {
5638        size += 2 + 1;
5639      }
5640      if (HasPyGenericServices) {
5641        size += 2 + 1;
5642      }
5643      if (HasPhpGenericServices) {
5644        size += 2 + 1;
5645      }
5646      if (HasDeprecated) {
5647        size += 2 + 1;
5648      }
5649      if (HasCcEnableArenas) {
5650        size += 2 + 1;
5651      }
5652      if (HasObjcClassPrefix) {
5653        size += 2 + pb::CodedOutputStream.ComputeStringSize(ObjcClassPrefix);
5654      }
5655      if (HasCsharpNamespace) {
5656        size += 2 + pb::CodedOutputStream.ComputeStringSize(CsharpNamespace);
5657      }
5658      if (HasSwiftPrefix) {
5659        size += 2 + pb::CodedOutputStream.ComputeStringSize(SwiftPrefix);
5660      }
5661      if (HasPhpClassPrefix) {
5662        size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpClassPrefix);
5663      }
5664      if (HasPhpNamespace) {
5665        size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpNamespace);
5666      }
5667      if (HasPhpMetadataNamespace) {
5668        size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpMetadataNamespace);
5669      }
5670      if (HasRubyPackage) {
5671        size += 2 + pb::CodedOutputStream.ComputeStringSize(RubyPackage);
5672      }
5673      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
5674      if (_extensions != null) {
5675        size += _extensions.CalculateSize();
5676      }
5677      if (_unknownFields != null) {
5678        size += _unknownFields.CalculateSize();
5679      }
5680      return size;
5681    }
5682
5683    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5684    public void MergeFrom(FileOptions other) {
5685      if (other == null) {
5686        return;
5687      }
5688      if (other.HasJavaPackage) {
5689        JavaPackage = other.JavaPackage;
5690      }
5691      if (other.HasJavaOuterClassname) {
5692        JavaOuterClassname = other.JavaOuterClassname;
5693      }
5694      if (other.HasJavaMultipleFiles) {
5695        JavaMultipleFiles = other.JavaMultipleFiles;
5696      }
5697      if (other.HasJavaGenerateEqualsAndHash) {
5698        JavaGenerateEqualsAndHash = other.JavaGenerateEqualsAndHash;
5699      }
5700      if (other.HasJavaStringCheckUtf8) {
5701        JavaStringCheckUtf8 = other.JavaStringCheckUtf8;
5702      }
5703      if (other.HasOptimizeFor) {
5704        OptimizeFor = other.OptimizeFor;
5705      }
5706      if (other.HasGoPackage) {
5707        GoPackage = other.GoPackage;
5708      }
5709      if (other.HasCcGenericServices) {
5710        CcGenericServices = other.CcGenericServices;
5711      }
5712      if (other.HasJavaGenericServices) {
5713        JavaGenericServices = other.JavaGenericServices;
5714      }
5715      if (other.HasPyGenericServices) {
5716        PyGenericServices = other.PyGenericServices;
5717      }
5718      if (other.HasPhpGenericServices) {
5719        PhpGenericServices = other.PhpGenericServices;
5720      }
5721      if (other.HasDeprecated) {
5722        Deprecated = other.Deprecated;
5723      }
5724      if (other.HasCcEnableArenas) {
5725        CcEnableArenas = other.CcEnableArenas;
5726      }
5727      if (other.HasObjcClassPrefix) {
5728        ObjcClassPrefix = other.ObjcClassPrefix;
5729      }
5730      if (other.HasCsharpNamespace) {
5731        CsharpNamespace = other.CsharpNamespace;
5732      }
5733      if (other.HasSwiftPrefix) {
5734        SwiftPrefix = other.SwiftPrefix;
5735      }
5736      if (other.HasPhpClassPrefix) {
5737        PhpClassPrefix = other.PhpClassPrefix;
5738      }
5739      if (other.HasPhpNamespace) {
5740        PhpNamespace = other.PhpNamespace;
5741      }
5742      if (other.HasPhpMetadataNamespace) {
5743        PhpMetadataNamespace = other.PhpMetadataNamespace;
5744      }
5745      if (other.HasRubyPackage) {
5746        RubyPackage = other.RubyPackage;
5747      }
5748      uninterpretedOption_.Add(other.uninterpretedOption_);
5749      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
5750      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5751    }
5752
5753    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5754    public void MergeFrom(pb::CodedInputStream input) {
5755    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5756      input.ReadRawMessage(this);
5757    #else
5758      uint tag;
5759      while ((tag = input.ReadTag()) != 0) {
5760        switch(tag) {
5761          default:
5762            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
5763              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5764            }
5765            break;
5766          case 10: {
5767            JavaPackage = input.ReadString();
5768            break;
5769          }
5770          case 66: {
5771            JavaOuterClassname = input.ReadString();
5772            break;
5773          }
5774          case 72: {
5775            OptimizeFor = (global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) input.ReadEnum();
5776            break;
5777          }
5778          case 80: {
5779            JavaMultipleFiles = input.ReadBool();
5780            break;
5781          }
5782          case 90: {
5783            GoPackage = input.ReadString();
5784            break;
5785          }
5786          case 128: {
5787            CcGenericServices = input.ReadBool();
5788            break;
5789          }
5790          case 136: {
5791            JavaGenericServices = input.ReadBool();
5792            break;
5793          }
5794          case 144: {
5795            PyGenericServices = input.ReadBool();
5796            break;
5797          }
5798          case 160: {
5799            JavaGenerateEqualsAndHash = input.ReadBool();
5800            break;
5801          }
5802          case 184: {
5803            Deprecated = input.ReadBool();
5804            break;
5805          }
5806          case 216: {
5807            JavaStringCheckUtf8 = input.ReadBool();
5808            break;
5809          }
5810          case 248: {
5811            CcEnableArenas = input.ReadBool();
5812            break;
5813          }
5814          case 290: {
5815            ObjcClassPrefix = input.ReadString();
5816            break;
5817          }
5818          case 298: {
5819            CsharpNamespace = input.ReadString();
5820            break;
5821          }
5822          case 314: {
5823            SwiftPrefix = input.ReadString();
5824            break;
5825          }
5826          case 322: {
5827            PhpClassPrefix = input.ReadString();
5828            break;
5829          }
5830          case 330: {
5831            PhpNamespace = input.ReadString();
5832            break;
5833          }
5834          case 336: {
5835            PhpGenericServices = input.ReadBool();
5836            break;
5837          }
5838          case 354: {
5839            PhpMetadataNamespace = input.ReadString();
5840            break;
5841          }
5842          case 362: {
5843            RubyPackage = input.ReadString();
5844            break;
5845          }
5846          case 7994: {
5847            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
5848            break;
5849          }
5850        }
5851      }
5852    #endif
5853    }
5854
5855    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5856    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5857    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5858      uint tag;
5859      while ((tag = input.ReadTag()) != 0) {
5860        switch(tag) {
5861          default:
5862            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
5863              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5864            }
5865            break;
5866          case 10: {
5867            JavaPackage = input.ReadString();
5868            break;
5869          }
5870          case 66: {
5871            JavaOuterClassname = input.ReadString();
5872            break;
5873          }
5874          case 72: {
5875            OptimizeFor = (global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) input.ReadEnum();
5876            break;
5877          }
5878          case 80: {
5879            JavaMultipleFiles = input.ReadBool();
5880            break;
5881          }
5882          case 90: {
5883            GoPackage = input.ReadString();
5884            break;
5885          }
5886          case 128: {
5887            CcGenericServices = input.ReadBool();
5888            break;
5889          }
5890          case 136: {
5891            JavaGenericServices = input.ReadBool();
5892            break;
5893          }
5894          case 144: {
5895            PyGenericServices = input.ReadBool();
5896            break;
5897          }
5898          case 160: {
5899            JavaGenerateEqualsAndHash = input.ReadBool();
5900            break;
5901          }
5902          case 184: {
5903            Deprecated = input.ReadBool();
5904            break;
5905          }
5906          case 216: {
5907            JavaStringCheckUtf8 = input.ReadBool();
5908            break;
5909          }
5910          case 248: {
5911            CcEnableArenas = input.ReadBool();
5912            break;
5913          }
5914          case 290: {
5915            ObjcClassPrefix = input.ReadString();
5916            break;
5917          }
5918          case 298: {
5919            CsharpNamespace = input.ReadString();
5920            break;
5921          }
5922          case 314: {
5923            SwiftPrefix = input.ReadString();
5924            break;
5925          }
5926          case 322: {
5927            PhpClassPrefix = input.ReadString();
5928            break;
5929          }
5930          case 330: {
5931            PhpNamespace = input.ReadString();
5932            break;
5933          }
5934          case 336: {
5935            PhpGenericServices = input.ReadBool();
5936            break;
5937          }
5938          case 354: {
5939            PhpMetadataNamespace = input.ReadString();
5940            break;
5941          }
5942          case 362: {
5943            RubyPackage = input.ReadString();
5944            break;
5945          }
5946          case 7994: {
5947            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
5948            break;
5949          }
5950        }
5951      }
5952    }
5953    #endif
5954
5955    public TValue GetExtension<TValue>(pb::Extension<FileOptions, TValue> extension) {
5956      return pb::ExtensionSet.Get(ref _extensions, extension);
5957    }
5958    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<FileOptions, TValue> extension) {
5959      return pb::ExtensionSet.Get(ref _extensions, extension);
5960    }
5961    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<FileOptions, TValue> extension) {
5962      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
5963    }
5964    public void SetExtension<TValue>(pb::Extension<FileOptions, TValue> extension, TValue value) {
5965      pb::ExtensionSet.Set(ref _extensions, extension, value);
5966    }
5967    public bool HasExtension<TValue>(pb::Extension<FileOptions, TValue> extension) {
5968      return pb::ExtensionSet.Has(ref _extensions, extension);
5969    }
5970    public void ClearExtension<TValue>(pb::Extension<FileOptions, TValue> extension) {
5971      pb::ExtensionSet.Clear(ref _extensions, extension);
5972    }
5973    public void ClearExtension<TValue>(pb::RepeatedExtension<FileOptions, TValue> extension) {
5974      pb::ExtensionSet.Clear(ref _extensions, extension);
5975    }
5976
5977    #region Nested types
5978    /// <summary>Container for nested types declared in the FileOptions message type.</summary>
5979    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5980    public static partial class Types {
5981      /// <summary>
5982      /// Generated classes can be optimized for speed or code size.
5983      /// </summary>
5984      public enum OptimizeMode {
5985        /// <summary>
5986        /// Generate complete code for parsing, serialization,
5987        /// </summary>
5988        [pbr::OriginalName("SPEED")] Speed = 1,
5989        /// <summary>
5990        /// etc.
5991        /// </summary>
5992        [pbr::OriginalName("CODE_SIZE")] CodeSize = 2,
5993        /// <summary>
5994        /// Generate code using MessageLite and the lite runtime.
5995        /// </summary>
5996        [pbr::OriginalName("LITE_RUNTIME")] LiteRuntime = 3,
5997      }
5998
5999    }
6000    #endregion
6001
6002  }
6003
6004  public sealed partial class MessageOptions : pb::IExtendableMessage<MessageOptions>
6005  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6006      , pb::IBufferMessage
6007  #endif
6008  {
6009    private static readonly pb::MessageParser<MessageOptions> _parser = new pb::MessageParser<MessageOptions>(() => new MessageOptions());
6010    private pb::UnknownFieldSet _unknownFields;
6011    internal pb::ExtensionSet<MessageOptions> _extensions;
6012    private pb::ExtensionSet<MessageOptions> _Extensions { get { return _extensions; } }
6013    private int _hasBits0;
6014    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6015    public static pb::MessageParser<MessageOptions> Parser { get { return _parser; } }
6016
6017    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6018    public static pbr::MessageDescriptor Descriptor {
6019      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[11]; }
6020    }
6021
6022    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6023    pbr::MessageDescriptor pb::IMessage.Descriptor {
6024      get { return Descriptor; }
6025    }
6026
6027    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6028    public MessageOptions() {
6029      OnConstruction();
6030    }
6031
6032    partial void OnConstruction();
6033
6034    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6035    public MessageOptions(MessageOptions other) : this() {
6036      _hasBits0 = other._hasBits0;
6037      messageSetWireFormat_ = other.messageSetWireFormat_;
6038      noStandardDescriptorAccessor_ = other.noStandardDescriptorAccessor_;
6039      deprecated_ = other.deprecated_;
6040      mapEntry_ = other.mapEntry_;
6041      uninterpretedOption_ = other.uninterpretedOption_.Clone();
6042      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6043      _extensions = pb::ExtensionSet.Clone(other._extensions);
6044    }
6045
6046    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6047    public MessageOptions Clone() {
6048      return new MessageOptions(this);
6049    }
6050
6051    /// <summary>Field number for the "message_set_wire_format" field.</summary>
6052    public const int MessageSetWireFormatFieldNumber = 1;
6053    private readonly static bool MessageSetWireFormatDefaultValue = false;
6054
6055    private bool messageSetWireFormat_;
6056    /// <summary>
6057    /// Set true to use the old proto1 MessageSet wire format for extensions.
6058    /// This is provided for backwards-compatibility with the MessageSet wire
6059    /// format.  You should not use this for any other reason:  It's less
6060    /// efficient, has fewer features, and is more complicated.
6061    ///
6062    /// The message must be defined exactly as follows:
6063    ///   message Foo {
6064    ///     option message_set_wire_format = true;
6065    ///     extensions 4 to max;
6066    ///   }
6067    /// Note that the message cannot have any defined fields; MessageSets only
6068    /// have extensions.
6069    ///
6070    /// All extensions of your type must be singular messages; e.g. they cannot
6071    /// be int32s, enums, or repeated messages.
6072    ///
6073    /// Because this is an option, the above two restrictions are not enforced by
6074    /// the protocol compiler.
6075    /// </summary>
6076    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6077    public bool MessageSetWireFormat {
6078      get { if ((_hasBits0 & 1) != 0) { return messageSetWireFormat_; } else { return MessageSetWireFormatDefaultValue; } }
6079      set {
6080        _hasBits0 |= 1;
6081        messageSetWireFormat_ = value;
6082      }
6083    }
6084    /// <summary>Gets whether the "message_set_wire_format" field is set</summary>
6085    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6086    public bool HasMessageSetWireFormat {
6087      get { return (_hasBits0 & 1) != 0; }
6088    }
6089    /// <summary>Clears the value of the "message_set_wire_format" field</summary>
6090    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6091    public void ClearMessageSetWireFormat() {
6092      _hasBits0 &= ~1;
6093    }
6094
6095    /// <summary>Field number for the "no_standard_descriptor_accessor" field.</summary>
6096    public const int NoStandardDescriptorAccessorFieldNumber = 2;
6097    private readonly static bool NoStandardDescriptorAccessorDefaultValue = false;
6098
6099    private bool noStandardDescriptorAccessor_;
6100    /// <summary>
6101    /// Disables the generation of the standard "descriptor()" accessor, which can
6102    /// conflict with a field of the same name.  This is meant to make migration
6103    /// from proto1 easier; new code should avoid fields named "descriptor".
6104    /// </summary>
6105    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6106    public bool NoStandardDescriptorAccessor {
6107      get { if ((_hasBits0 & 2) != 0) { return noStandardDescriptorAccessor_; } else { return NoStandardDescriptorAccessorDefaultValue; } }
6108      set {
6109        _hasBits0 |= 2;
6110        noStandardDescriptorAccessor_ = value;
6111      }
6112    }
6113    /// <summary>Gets whether the "no_standard_descriptor_accessor" field is set</summary>
6114    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6115    public bool HasNoStandardDescriptorAccessor {
6116      get { return (_hasBits0 & 2) != 0; }
6117    }
6118    /// <summary>Clears the value of the "no_standard_descriptor_accessor" field</summary>
6119    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6120    public void ClearNoStandardDescriptorAccessor() {
6121      _hasBits0 &= ~2;
6122    }
6123
6124    /// <summary>Field number for the "deprecated" field.</summary>
6125    public const int DeprecatedFieldNumber = 3;
6126    private readonly static bool DeprecatedDefaultValue = false;
6127
6128    private bool deprecated_;
6129    /// <summary>
6130    /// Is this message deprecated?
6131    /// Depending on the target platform, this can emit Deprecated annotations
6132    /// for the message, or it will be completely ignored; in the very least,
6133    /// this is a formalization for deprecating messages.
6134    /// </summary>
6135    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6136    public bool Deprecated {
6137      get { if ((_hasBits0 & 4) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
6138      set {
6139        _hasBits0 |= 4;
6140        deprecated_ = value;
6141      }
6142    }
6143    /// <summary>Gets whether the "deprecated" field is set</summary>
6144    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6145    public bool HasDeprecated {
6146      get { return (_hasBits0 & 4) != 0; }
6147    }
6148    /// <summary>Clears the value of the "deprecated" field</summary>
6149    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6150    public void ClearDeprecated() {
6151      _hasBits0 &= ~4;
6152    }
6153
6154    /// <summary>Field number for the "map_entry" field.</summary>
6155    public const int MapEntryFieldNumber = 7;
6156    private readonly static bool MapEntryDefaultValue = false;
6157
6158    private bool mapEntry_;
6159    /// <summary>
6160    /// Whether the message is an automatically generated map entry type for the
6161    /// maps field.
6162    ///
6163    /// For maps fields:
6164    ///     map&lt;KeyType, ValueType> map_field = 1;
6165    /// The parsed descriptor looks like:
6166    ///     message MapFieldEntry {
6167    ///         option map_entry = true;
6168    ///         optional KeyType key = 1;
6169    ///         optional ValueType value = 2;
6170    ///     }
6171    ///     repeated MapFieldEntry map_field = 1;
6172    ///
6173    /// Implementations may choose not to generate the map_entry=true message, but
6174    /// use a native map in the target language to hold the keys and values.
6175    /// The reflection APIs in such implementations still need to work as
6176    /// if the field is a repeated message field.
6177    ///
6178    /// NOTE: Do not set the option in .proto files. Always use the maps syntax
6179    /// instead. The option should only be implicitly set by the proto compiler
6180    /// parser.
6181    /// </summary>
6182    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6183    public bool MapEntry {
6184      get { if ((_hasBits0 & 8) != 0) { return mapEntry_; } else { return MapEntryDefaultValue; } }
6185      set {
6186        _hasBits0 |= 8;
6187        mapEntry_ = value;
6188      }
6189    }
6190    /// <summary>Gets whether the "map_entry" field is set</summary>
6191    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6192    public bool HasMapEntry {
6193      get { return (_hasBits0 & 8) != 0; }
6194    }
6195    /// <summary>Clears the value of the "map_entry" field</summary>
6196    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6197    public void ClearMapEntry() {
6198      _hasBits0 &= ~8;
6199    }
6200
6201    /// <summary>Field number for the "uninterpreted_option" field.</summary>
6202    public const int UninterpretedOptionFieldNumber = 999;
6203    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
6204        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
6205    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
6206    /// <summary>
6207    /// The parser stores options it doesn't recognize here. See above.
6208    /// </summary>
6209    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6210    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
6211      get { return uninterpretedOption_; }
6212    }
6213
6214    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6215    public override bool Equals(object other) {
6216      return Equals(other as MessageOptions);
6217    }
6218
6219    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6220    public bool Equals(MessageOptions other) {
6221      if (ReferenceEquals(other, null)) {
6222        return false;
6223      }
6224      if (ReferenceEquals(other, this)) {
6225        return true;
6226      }
6227      if (MessageSetWireFormat != other.MessageSetWireFormat) return false;
6228      if (NoStandardDescriptorAccessor != other.NoStandardDescriptorAccessor) return false;
6229      if (Deprecated != other.Deprecated) return false;
6230      if (MapEntry != other.MapEntry) return false;
6231      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
6232      if (!Equals(_extensions, other._extensions)) {
6233        return false;
6234      }
6235      return Equals(_unknownFields, other._unknownFields);
6236    }
6237
6238    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6239    public override int GetHashCode() {
6240      int hash = 1;
6241      if (HasMessageSetWireFormat) hash ^= MessageSetWireFormat.GetHashCode();
6242      if (HasNoStandardDescriptorAccessor) hash ^= NoStandardDescriptorAccessor.GetHashCode();
6243      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
6244      if (HasMapEntry) hash ^= MapEntry.GetHashCode();
6245      hash ^= uninterpretedOption_.GetHashCode();
6246      if (_extensions != null) {
6247        hash ^= _extensions.GetHashCode();
6248      }
6249      if (_unknownFields != null) {
6250        hash ^= _unknownFields.GetHashCode();
6251      }
6252      return hash;
6253    }
6254
6255    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6256    public override string ToString() {
6257      return pb::JsonFormatter.ToDiagnosticString(this);
6258    }
6259
6260    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6261    public void WriteTo(pb::CodedOutputStream output) {
6262    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6263      output.WriteRawMessage(this);
6264    #else
6265      if (HasMessageSetWireFormat) {
6266        output.WriteRawTag(8);
6267        output.WriteBool(MessageSetWireFormat);
6268      }
6269      if (HasNoStandardDescriptorAccessor) {
6270        output.WriteRawTag(16);
6271        output.WriteBool(NoStandardDescriptorAccessor);
6272      }
6273      if (HasDeprecated) {
6274        output.WriteRawTag(24);
6275        output.WriteBool(Deprecated);
6276      }
6277      if (HasMapEntry) {
6278        output.WriteRawTag(56);
6279        output.WriteBool(MapEntry);
6280      }
6281      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
6282      if (_extensions != null) {
6283        _extensions.WriteTo(output);
6284      }
6285      if (_unknownFields != null) {
6286        _unknownFields.WriteTo(output);
6287      }
6288    #endif
6289    }
6290
6291    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6292    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6293    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6294      if (HasMessageSetWireFormat) {
6295        output.WriteRawTag(8);
6296        output.WriteBool(MessageSetWireFormat);
6297      }
6298      if (HasNoStandardDescriptorAccessor) {
6299        output.WriteRawTag(16);
6300        output.WriteBool(NoStandardDescriptorAccessor);
6301      }
6302      if (HasDeprecated) {
6303        output.WriteRawTag(24);
6304        output.WriteBool(Deprecated);
6305      }
6306      if (HasMapEntry) {
6307        output.WriteRawTag(56);
6308        output.WriteBool(MapEntry);
6309      }
6310      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
6311      if (_extensions != null) {
6312        _extensions.WriteTo(ref output);
6313      }
6314      if (_unknownFields != null) {
6315        _unknownFields.WriteTo(ref output);
6316      }
6317    }
6318    #endif
6319
6320    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6321    public int CalculateSize() {
6322      int size = 0;
6323      if (HasMessageSetWireFormat) {
6324        size += 1 + 1;
6325      }
6326      if (HasNoStandardDescriptorAccessor) {
6327        size += 1 + 1;
6328      }
6329      if (HasDeprecated) {
6330        size += 1 + 1;
6331      }
6332      if (HasMapEntry) {
6333        size += 1 + 1;
6334      }
6335      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
6336      if (_extensions != null) {
6337        size += _extensions.CalculateSize();
6338      }
6339      if (_unknownFields != null) {
6340        size += _unknownFields.CalculateSize();
6341      }
6342      return size;
6343    }
6344
6345    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6346    public void MergeFrom(MessageOptions other) {
6347      if (other == null) {
6348        return;
6349      }
6350      if (other.HasMessageSetWireFormat) {
6351        MessageSetWireFormat = other.MessageSetWireFormat;
6352      }
6353      if (other.HasNoStandardDescriptorAccessor) {
6354        NoStandardDescriptorAccessor = other.NoStandardDescriptorAccessor;
6355      }
6356      if (other.HasDeprecated) {
6357        Deprecated = other.Deprecated;
6358      }
6359      if (other.HasMapEntry) {
6360        MapEntry = other.MapEntry;
6361      }
6362      uninterpretedOption_.Add(other.uninterpretedOption_);
6363      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
6364      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6365    }
6366
6367    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6368    public void MergeFrom(pb::CodedInputStream input) {
6369    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6370      input.ReadRawMessage(this);
6371    #else
6372      uint tag;
6373      while ((tag = input.ReadTag()) != 0) {
6374        switch(tag) {
6375          default:
6376            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
6377              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6378            }
6379            break;
6380          case 8: {
6381            MessageSetWireFormat = input.ReadBool();
6382            break;
6383          }
6384          case 16: {
6385            NoStandardDescriptorAccessor = input.ReadBool();
6386            break;
6387          }
6388          case 24: {
6389            Deprecated = input.ReadBool();
6390            break;
6391          }
6392          case 56: {
6393            MapEntry = input.ReadBool();
6394            break;
6395          }
6396          case 7994: {
6397            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
6398            break;
6399          }
6400        }
6401      }
6402    #endif
6403    }
6404
6405    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6406    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6407    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6408      uint tag;
6409      while ((tag = input.ReadTag()) != 0) {
6410        switch(tag) {
6411          default:
6412            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
6413              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6414            }
6415            break;
6416          case 8: {
6417            MessageSetWireFormat = input.ReadBool();
6418            break;
6419          }
6420          case 16: {
6421            NoStandardDescriptorAccessor = input.ReadBool();
6422            break;
6423          }
6424          case 24: {
6425            Deprecated = input.ReadBool();
6426            break;
6427          }
6428          case 56: {
6429            MapEntry = input.ReadBool();
6430            break;
6431          }
6432          case 7994: {
6433            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
6434            break;
6435          }
6436        }
6437      }
6438    }
6439    #endif
6440
6441    public TValue GetExtension<TValue>(pb::Extension<MessageOptions, TValue> extension) {
6442      return pb::ExtensionSet.Get(ref _extensions, extension);
6443    }
6444    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<MessageOptions, TValue> extension) {
6445      return pb::ExtensionSet.Get(ref _extensions, extension);
6446    }
6447    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<MessageOptions, TValue> extension) {
6448      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
6449    }
6450    public void SetExtension<TValue>(pb::Extension<MessageOptions, TValue> extension, TValue value) {
6451      pb::ExtensionSet.Set(ref _extensions, extension, value);
6452    }
6453    public bool HasExtension<TValue>(pb::Extension<MessageOptions, TValue> extension) {
6454      return pb::ExtensionSet.Has(ref _extensions, extension);
6455    }
6456    public void ClearExtension<TValue>(pb::Extension<MessageOptions, TValue> extension) {
6457      pb::ExtensionSet.Clear(ref _extensions, extension);
6458    }
6459    public void ClearExtension<TValue>(pb::RepeatedExtension<MessageOptions, TValue> extension) {
6460      pb::ExtensionSet.Clear(ref _extensions, extension);
6461    }
6462
6463  }
6464
6465  public sealed partial class FieldOptions : pb::IExtendableMessage<FieldOptions>
6466  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6467      , pb::IBufferMessage
6468  #endif
6469  {
6470    private static readonly pb::MessageParser<FieldOptions> _parser = new pb::MessageParser<FieldOptions>(() => new FieldOptions());
6471    private pb::UnknownFieldSet _unknownFields;
6472    internal pb::ExtensionSet<FieldOptions> _extensions;
6473    private pb::ExtensionSet<FieldOptions> _Extensions { get { return _extensions; } }
6474    private int _hasBits0;
6475    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6476    public static pb::MessageParser<FieldOptions> Parser { get { return _parser; } }
6477
6478    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6479    public static pbr::MessageDescriptor Descriptor {
6480      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[12]; }
6481    }
6482
6483    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6484    pbr::MessageDescriptor pb::IMessage.Descriptor {
6485      get { return Descriptor; }
6486    }
6487
6488    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6489    public FieldOptions() {
6490      OnConstruction();
6491    }
6492
6493    partial void OnConstruction();
6494
6495    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6496    public FieldOptions(FieldOptions other) : this() {
6497      _hasBits0 = other._hasBits0;
6498      ctype_ = other.ctype_;
6499      packed_ = other.packed_;
6500      jstype_ = other.jstype_;
6501      lazy_ = other.lazy_;
6502      deprecated_ = other.deprecated_;
6503      weak_ = other.weak_;
6504      uninterpretedOption_ = other.uninterpretedOption_.Clone();
6505      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6506      _extensions = pb::ExtensionSet.Clone(other._extensions);
6507    }
6508
6509    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6510    public FieldOptions Clone() {
6511      return new FieldOptions(this);
6512    }
6513
6514    /// <summary>Field number for the "ctype" field.</summary>
6515    public const int CtypeFieldNumber = 1;
6516    private readonly static global::Google.Protobuf.Reflection.FieldOptions.Types.CType CtypeDefaultValue = global::Google.Protobuf.Reflection.FieldOptions.Types.CType.String;
6517
6518    private global::Google.Protobuf.Reflection.FieldOptions.Types.CType ctype_;
6519    /// <summary>
6520    /// The ctype option instructs the C++ code generator to use a different
6521    /// representation of the field than it normally would.  See the specific
6522    /// options below.  This option is not yet implemented in the open source
6523    /// release -- sorry, we'll try to include it in a future version!
6524    /// </summary>
6525    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6526    public global::Google.Protobuf.Reflection.FieldOptions.Types.CType Ctype {
6527      get { if ((_hasBits0 & 1) != 0) { return ctype_; } else { return CtypeDefaultValue; } }
6528      set {
6529        _hasBits0 |= 1;
6530        ctype_ = value;
6531      }
6532    }
6533    /// <summary>Gets whether the "ctype" field is set</summary>
6534    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6535    public bool HasCtype {
6536      get { return (_hasBits0 & 1) != 0; }
6537    }
6538    /// <summary>Clears the value of the "ctype" field</summary>
6539    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6540    public void ClearCtype() {
6541      _hasBits0 &= ~1;
6542    }
6543
6544    /// <summary>Field number for the "packed" field.</summary>
6545    public const int PackedFieldNumber = 2;
6546    private readonly static bool PackedDefaultValue = false;
6547
6548    private bool packed_;
6549    /// <summary>
6550    /// The packed option can be enabled for repeated primitive fields to enable
6551    /// a more efficient representation on the wire. Rather than repeatedly
6552    /// writing the tag and type for each element, the entire array is encoded as
6553    /// a single length-delimited blob. In proto3, only explicit setting it to
6554    /// false will avoid using packed encoding.
6555    /// </summary>
6556    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6557    public bool Packed {
6558      get { if ((_hasBits0 & 2) != 0) { return packed_; } else { return PackedDefaultValue; } }
6559      set {
6560        _hasBits0 |= 2;
6561        packed_ = value;
6562      }
6563    }
6564    /// <summary>Gets whether the "packed" field is set</summary>
6565    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6566    public bool HasPacked {
6567      get { return (_hasBits0 & 2) != 0; }
6568    }
6569    /// <summary>Clears the value of the "packed" field</summary>
6570    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6571    public void ClearPacked() {
6572      _hasBits0 &= ~2;
6573    }
6574
6575    /// <summary>Field number for the "jstype" field.</summary>
6576    public const int JstypeFieldNumber = 6;
6577    private readonly static global::Google.Protobuf.Reflection.FieldOptions.Types.JSType JstypeDefaultValue = global::Google.Protobuf.Reflection.FieldOptions.Types.JSType.JsNormal;
6578
6579    private global::Google.Protobuf.Reflection.FieldOptions.Types.JSType jstype_;
6580    /// <summary>
6581    /// The jstype option determines the JavaScript type used for values of the
6582    /// field.  The option is permitted only for 64 bit integral and fixed types
6583    /// (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING
6584    /// is represented as JavaScript string, which avoids loss of precision that
6585    /// can happen when a large value is converted to a floating point JavaScript.
6586    /// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
6587    /// use the JavaScript "number" type.  The behavior of the default option
6588    /// JS_NORMAL is implementation dependent.
6589    ///
6590    /// This option is an enum to permit additional types to be added, e.g.
6591    /// goog.math.Integer.
6592    /// </summary>
6593    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6594    public global::Google.Protobuf.Reflection.FieldOptions.Types.JSType Jstype {
6595      get { if ((_hasBits0 & 16) != 0) { return jstype_; } else { return JstypeDefaultValue; } }
6596      set {
6597        _hasBits0 |= 16;
6598        jstype_ = value;
6599      }
6600    }
6601    /// <summary>Gets whether the "jstype" field is set</summary>
6602    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6603    public bool HasJstype {
6604      get { return (_hasBits0 & 16) != 0; }
6605    }
6606    /// <summary>Clears the value of the "jstype" field</summary>
6607    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6608    public void ClearJstype() {
6609      _hasBits0 &= ~16;
6610    }
6611
6612    /// <summary>Field number for the "lazy" field.</summary>
6613    public const int LazyFieldNumber = 5;
6614    private readonly static bool LazyDefaultValue = false;
6615
6616    private bool lazy_;
6617    /// <summary>
6618    /// Should this field be parsed lazily?  Lazy applies only to message-type
6619    /// fields.  It means that when the outer message is initially parsed, the
6620    /// inner message's contents will not be parsed but instead stored in encoded
6621    /// form.  The inner message will actually be parsed when it is first accessed.
6622    ///
6623    /// This is only a hint.  Implementations are free to choose whether to use
6624    /// eager or lazy parsing regardless of the value of this option.  However,
6625    /// setting this option true suggests that the protocol author believes that
6626    /// using lazy parsing on this field is worth the additional bookkeeping
6627    /// overhead typically needed to implement it.
6628    ///
6629    /// This option does not affect the public interface of any generated code;
6630    /// all method signatures remain the same.  Furthermore, thread-safety of the
6631    /// interface is not affected by this option; const methods remain safe to
6632    /// call from multiple threads concurrently, while non-const methods continue
6633    /// to require exclusive access.
6634    ///
6635    /// Note that implementations may choose not to check required fields within
6636    /// a lazy sub-message.  That is, calling IsInitialized() on the outer message
6637    /// may return true even if the inner message has missing required fields.
6638    /// This is necessary because otherwise the inner message would have to be
6639    /// parsed in order to perform the check, defeating the purpose of lazy
6640    /// parsing.  An implementation which chooses not to check required fields
6641    /// must be consistent about it.  That is, for any particular sub-message, the
6642    /// implementation must either *always* check its required fields, or *never*
6643    /// check its required fields, regardless of whether or not the message has
6644    /// been parsed.
6645    /// </summary>
6646    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6647    public bool Lazy {
6648      get { if ((_hasBits0 & 8) != 0) { return lazy_; } else { return LazyDefaultValue; } }
6649      set {
6650        _hasBits0 |= 8;
6651        lazy_ = value;
6652      }
6653    }
6654    /// <summary>Gets whether the "lazy" field is set</summary>
6655    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6656    public bool HasLazy {
6657      get { return (_hasBits0 & 8) != 0; }
6658    }
6659    /// <summary>Clears the value of the "lazy" field</summary>
6660    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6661    public void ClearLazy() {
6662      _hasBits0 &= ~8;
6663    }
6664
6665    /// <summary>Field number for the "deprecated" field.</summary>
6666    public const int DeprecatedFieldNumber = 3;
6667    private readonly static bool DeprecatedDefaultValue = false;
6668
6669    private bool deprecated_;
6670    /// <summary>
6671    /// Is this field deprecated?
6672    /// Depending on the target platform, this can emit Deprecated annotations
6673    /// for accessors, or it will be completely ignored; in the very least, this
6674    /// is a formalization for deprecating fields.
6675    /// </summary>
6676    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6677    public bool Deprecated {
6678      get { if ((_hasBits0 & 4) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
6679      set {
6680        _hasBits0 |= 4;
6681        deprecated_ = value;
6682      }
6683    }
6684    /// <summary>Gets whether the "deprecated" field is set</summary>
6685    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6686    public bool HasDeprecated {
6687      get { return (_hasBits0 & 4) != 0; }
6688    }
6689    /// <summary>Clears the value of the "deprecated" field</summary>
6690    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6691    public void ClearDeprecated() {
6692      _hasBits0 &= ~4;
6693    }
6694
6695    /// <summary>Field number for the "weak" field.</summary>
6696    public const int WeakFieldNumber = 10;
6697    private readonly static bool WeakDefaultValue = false;
6698
6699    private bool weak_;
6700    /// <summary>
6701    /// For Google-internal migration only. Do not use.
6702    /// </summary>
6703    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6704    public bool Weak {
6705      get { if ((_hasBits0 & 32) != 0) { return weak_; } else { return WeakDefaultValue; } }
6706      set {
6707        _hasBits0 |= 32;
6708        weak_ = value;
6709      }
6710    }
6711    /// <summary>Gets whether the "weak" field is set</summary>
6712    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6713    public bool HasWeak {
6714      get { return (_hasBits0 & 32) != 0; }
6715    }
6716    /// <summary>Clears the value of the "weak" field</summary>
6717    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6718    public void ClearWeak() {
6719      _hasBits0 &= ~32;
6720    }
6721
6722    /// <summary>Field number for the "uninterpreted_option" field.</summary>
6723    public const int UninterpretedOptionFieldNumber = 999;
6724    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
6725        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
6726    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
6727    /// <summary>
6728    /// The parser stores options it doesn't recognize here. See above.
6729    /// </summary>
6730    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6731    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
6732      get { return uninterpretedOption_; }
6733    }
6734
6735    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6736    public override bool Equals(object other) {
6737      return Equals(other as FieldOptions);
6738    }
6739
6740    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6741    public bool Equals(FieldOptions other) {
6742      if (ReferenceEquals(other, null)) {
6743        return false;
6744      }
6745      if (ReferenceEquals(other, this)) {
6746        return true;
6747      }
6748      if (Ctype != other.Ctype) return false;
6749      if (Packed != other.Packed) return false;
6750      if (Jstype != other.Jstype) return false;
6751      if (Lazy != other.Lazy) return false;
6752      if (Deprecated != other.Deprecated) return false;
6753      if (Weak != other.Weak) return false;
6754      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
6755      if (!Equals(_extensions, other._extensions)) {
6756        return false;
6757      }
6758      return Equals(_unknownFields, other._unknownFields);
6759    }
6760
6761    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6762    public override int GetHashCode() {
6763      int hash = 1;
6764      if (HasCtype) hash ^= Ctype.GetHashCode();
6765      if (HasPacked) hash ^= Packed.GetHashCode();
6766      if (HasJstype) hash ^= Jstype.GetHashCode();
6767      if (HasLazy) hash ^= Lazy.GetHashCode();
6768      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
6769      if (HasWeak) hash ^= Weak.GetHashCode();
6770      hash ^= uninterpretedOption_.GetHashCode();
6771      if (_extensions != null) {
6772        hash ^= _extensions.GetHashCode();
6773      }
6774      if (_unknownFields != null) {
6775        hash ^= _unknownFields.GetHashCode();
6776      }
6777      return hash;
6778    }
6779
6780    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6781    public override string ToString() {
6782      return pb::JsonFormatter.ToDiagnosticString(this);
6783    }
6784
6785    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6786    public void WriteTo(pb::CodedOutputStream output) {
6787    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6788      output.WriteRawMessage(this);
6789    #else
6790      if (HasCtype) {
6791        output.WriteRawTag(8);
6792        output.WriteEnum((int) Ctype);
6793      }
6794      if (HasPacked) {
6795        output.WriteRawTag(16);
6796        output.WriteBool(Packed);
6797      }
6798      if (HasDeprecated) {
6799        output.WriteRawTag(24);
6800        output.WriteBool(Deprecated);
6801      }
6802      if (HasLazy) {
6803        output.WriteRawTag(40);
6804        output.WriteBool(Lazy);
6805      }
6806      if (HasJstype) {
6807        output.WriteRawTag(48);
6808        output.WriteEnum((int) Jstype);
6809      }
6810      if (HasWeak) {
6811        output.WriteRawTag(80);
6812        output.WriteBool(Weak);
6813      }
6814      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
6815      if (_extensions != null) {
6816        _extensions.WriteTo(output);
6817      }
6818      if (_unknownFields != null) {
6819        _unknownFields.WriteTo(output);
6820      }
6821    #endif
6822    }
6823
6824    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6825    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6826    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6827      if (HasCtype) {
6828        output.WriteRawTag(8);
6829        output.WriteEnum((int) Ctype);
6830      }
6831      if (HasPacked) {
6832        output.WriteRawTag(16);
6833        output.WriteBool(Packed);
6834      }
6835      if (HasDeprecated) {
6836        output.WriteRawTag(24);
6837        output.WriteBool(Deprecated);
6838      }
6839      if (HasLazy) {
6840        output.WriteRawTag(40);
6841        output.WriteBool(Lazy);
6842      }
6843      if (HasJstype) {
6844        output.WriteRawTag(48);
6845        output.WriteEnum((int) Jstype);
6846      }
6847      if (HasWeak) {
6848        output.WriteRawTag(80);
6849        output.WriteBool(Weak);
6850      }
6851      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
6852      if (_extensions != null) {
6853        _extensions.WriteTo(ref output);
6854      }
6855      if (_unknownFields != null) {
6856        _unknownFields.WriteTo(ref output);
6857      }
6858    }
6859    #endif
6860
6861    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6862    public int CalculateSize() {
6863      int size = 0;
6864      if (HasCtype) {
6865        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Ctype);
6866      }
6867      if (HasPacked) {
6868        size += 1 + 1;
6869      }
6870      if (HasJstype) {
6871        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Jstype);
6872      }
6873      if (HasLazy) {
6874        size += 1 + 1;
6875      }
6876      if (HasDeprecated) {
6877        size += 1 + 1;
6878      }
6879      if (HasWeak) {
6880        size += 1 + 1;
6881      }
6882      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
6883      if (_extensions != null) {
6884        size += _extensions.CalculateSize();
6885      }
6886      if (_unknownFields != null) {
6887        size += _unknownFields.CalculateSize();
6888      }
6889      return size;
6890    }
6891
6892    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6893    public void MergeFrom(FieldOptions other) {
6894      if (other == null) {
6895        return;
6896      }
6897      if (other.HasCtype) {
6898        Ctype = other.Ctype;
6899      }
6900      if (other.HasPacked) {
6901        Packed = other.Packed;
6902      }
6903      if (other.HasJstype) {
6904        Jstype = other.Jstype;
6905      }
6906      if (other.HasLazy) {
6907        Lazy = other.Lazy;
6908      }
6909      if (other.HasDeprecated) {
6910        Deprecated = other.Deprecated;
6911      }
6912      if (other.HasWeak) {
6913        Weak = other.Weak;
6914      }
6915      uninterpretedOption_.Add(other.uninterpretedOption_);
6916      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
6917      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6918    }
6919
6920    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6921    public void MergeFrom(pb::CodedInputStream input) {
6922    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6923      input.ReadRawMessage(this);
6924    #else
6925      uint tag;
6926      while ((tag = input.ReadTag()) != 0) {
6927        switch(tag) {
6928          default:
6929            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
6930              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6931            }
6932            break;
6933          case 8: {
6934            Ctype = (global::Google.Protobuf.Reflection.FieldOptions.Types.CType) input.ReadEnum();
6935            break;
6936          }
6937          case 16: {
6938            Packed = input.ReadBool();
6939            break;
6940          }
6941          case 24: {
6942            Deprecated = input.ReadBool();
6943            break;
6944          }
6945          case 40: {
6946            Lazy = input.ReadBool();
6947            break;
6948          }
6949          case 48: {
6950            Jstype = (global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) input.ReadEnum();
6951            break;
6952          }
6953          case 80: {
6954            Weak = input.ReadBool();
6955            break;
6956          }
6957          case 7994: {
6958            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
6959            break;
6960          }
6961        }
6962      }
6963    #endif
6964    }
6965
6966    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6967    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6968    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6969      uint tag;
6970      while ((tag = input.ReadTag()) != 0) {
6971        switch(tag) {
6972          default:
6973            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
6974              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6975            }
6976            break;
6977          case 8: {
6978            Ctype = (global::Google.Protobuf.Reflection.FieldOptions.Types.CType) input.ReadEnum();
6979            break;
6980          }
6981          case 16: {
6982            Packed = input.ReadBool();
6983            break;
6984          }
6985          case 24: {
6986            Deprecated = input.ReadBool();
6987            break;
6988          }
6989          case 40: {
6990            Lazy = input.ReadBool();
6991            break;
6992          }
6993          case 48: {
6994            Jstype = (global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) input.ReadEnum();
6995            break;
6996          }
6997          case 80: {
6998            Weak = input.ReadBool();
6999            break;
7000          }
7001          case 7994: {
7002            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
7003            break;
7004          }
7005        }
7006      }
7007    }
7008    #endif
7009
7010    public TValue GetExtension<TValue>(pb::Extension<FieldOptions, TValue> extension) {
7011      return pb::ExtensionSet.Get(ref _extensions, extension);
7012    }
7013    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<FieldOptions, TValue> extension) {
7014      return pb::ExtensionSet.Get(ref _extensions, extension);
7015    }
7016    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<FieldOptions, TValue> extension) {
7017      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
7018    }
7019    public void SetExtension<TValue>(pb::Extension<FieldOptions, TValue> extension, TValue value) {
7020      pb::ExtensionSet.Set(ref _extensions, extension, value);
7021    }
7022    public bool HasExtension<TValue>(pb::Extension<FieldOptions, TValue> extension) {
7023      return pb::ExtensionSet.Has(ref _extensions, extension);
7024    }
7025    public void ClearExtension<TValue>(pb::Extension<FieldOptions, TValue> extension) {
7026      pb::ExtensionSet.Clear(ref _extensions, extension);
7027    }
7028    public void ClearExtension<TValue>(pb::RepeatedExtension<FieldOptions, TValue> extension) {
7029      pb::ExtensionSet.Clear(ref _extensions, extension);
7030    }
7031
7032    #region Nested types
7033    /// <summary>Container for nested types declared in the FieldOptions message type.</summary>
7034    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7035    public static partial class Types {
7036      public enum CType {
7037        /// <summary>
7038        /// Default mode.
7039        /// </summary>
7040        [pbr::OriginalName("STRING")] String = 0,
7041        [pbr::OriginalName("CORD")] Cord = 1,
7042        [pbr::OriginalName("STRING_PIECE")] StringPiece = 2,
7043      }
7044
7045      public enum JSType {
7046        /// <summary>
7047        /// Use the default type.
7048        /// </summary>
7049        [pbr::OriginalName("JS_NORMAL")] JsNormal = 0,
7050        /// <summary>
7051        /// Use JavaScript strings.
7052        /// </summary>
7053        [pbr::OriginalName("JS_STRING")] JsString = 1,
7054        /// <summary>
7055        /// Use JavaScript numbers.
7056        /// </summary>
7057        [pbr::OriginalName("JS_NUMBER")] JsNumber = 2,
7058      }
7059
7060    }
7061    #endregion
7062
7063  }
7064
7065  public sealed partial class OneofOptions : pb::IExtendableMessage<OneofOptions>
7066  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7067      , pb::IBufferMessage
7068  #endif
7069  {
7070    private static readonly pb::MessageParser<OneofOptions> _parser = new pb::MessageParser<OneofOptions>(() => new OneofOptions());
7071    private pb::UnknownFieldSet _unknownFields;
7072    internal pb::ExtensionSet<OneofOptions> _extensions;
7073    private pb::ExtensionSet<OneofOptions> _Extensions { get { return _extensions; } }
7074    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7075    public static pb::MessageParser<OneofOptions> Parser { get { return _parser; } }
7076
7077    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7078    public static pbr::MessageDescriptor Descriptor {
7079      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[13]; }
7080    }
7081
7082    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7083    pbr::MessageDescriptor pb::IMessage.Descriptor {
7084      get { return Descriptor; }
7085    }
7086
7087    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7088    public OneofOptions() {
7089      OnConstruction();
7090    }
7091
7092    partial void OnConstruction();
7093
7094    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7095    public OneofOptions(OneofOptions other) : this() {
7096      uninterpretedOption_ = other.uninterpretedOption_.Clone();
7097      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7098      _extensions = pb::ExtensionSet.Clone(other._extensions);
7099    }
7100
7101    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7102    public OneofOptions Clone() {
7103      return new OneofOptions(this);
7104    }
7105
7106    /// <summary>Field number for the "uninterpreted_option" field.</summary>
7107    public const int UninterpretedOptionFieldNumber = 999;
7108    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
7109        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
7110    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
7111    /// <summary>
7112    /// The parser stores options it doesn't recognize here. See above.
7113    /// </summary>
7114    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7115    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
7116      get { return uninterpretedOption_; }
7117    }
7118
7119    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7120    public override bool Equals(object other) {
7121      return Equals(other as OneofOptions);
7122    }
7123
7124    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7125    public bool Equals(OneofOptions other) {
7126      if (ReferenceEquals(other, null)) {
7127        return false;
7128      }
7129      if (ReferenceEquals(other, this)) {
7130        return true;
7131      }
7132      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
7133      if (!Equals(_extensions, other._extensions)) {
7134        return false;
7135      }
7136      return Equals(_unknownFields, other._unknownFields);
7137    }
7138
7139    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7140    public override int GetHashCode() {
7141      int hash = 1;
7142      hash ^= uninterpretedOption_.GetHashCode();
7143      if (_extensions != null) {
7144        hash ^= _extensions.GetHashCode();
7145      }
7146      if (_unknownFields != null) {
7147        hash ^= _unknownFields.GetHashCode();
7148      }
7149      return hash;
7150    }
7151
7152    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7153    public override string ToString() {
7154      return pb::JsonFormatter.ToDiagnosticString(this);
7155    }
7156
7157    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7158    public void WriteTo(pb::CodedOutputStream output) {
7159    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7160      output.WriteRawMessage(this);
7161    #else
7162      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
7163      if (_extensions != null) {
7164        _extensions.WriteTo(output);
7165      }
7166      if (_unknownFields != null) {
7167        _unknownFields.WriteTo(output);
7168      }
7169    #endif
7170    }
7171
7172    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7173    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7174    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
7175      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
7176      if (_extensions != null) {
7177        _extensions.WriteTo(ref output);
7178      }
7179      if (_unknownFields != null) {
7180        _unknownFields.WriteTo(ref output);
7181      }
7182    }
7183    #endif
7184
7185    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7186    public int CalculateSize() {
7187      int size = 0;
7188      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
7189      if (_extensions != null) {
7190        size += _extensions.CalculateSize();
7191      }
7192      if (_unknownFields != null) {
7193        size += _unknownFields.CalculateSize();
7194      }
7195      return size;
7196    }
7197
7198    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7199    public void MergeFrom(OneofOptions other) {
7200      if (other == null) {
7201        return;
7202      }
7203      uninterpretedOption_.Add(other.uninterpretedOption_);
7204      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
7205      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
7206    }
7207
7208    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7209    public void MergeFrom(pb::CodedInputStream input) {
7210    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7211      input.ReadRawMessage(this);
7212    #else
7213      uint tag;
7214      while ((tag = input.ReadTag()) != 0) {
7215        switch(tag) {
7216          default:
7217            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
7218              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
7219            }
7220            break;
7221          case 7994: {
7222            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
7223            break;
7224          }
7225        }
7226      }
7227    #endif
7228    }
7229
7230    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7231    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7232    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7233      uint tag;
7234      while ((tag = input.ReadTag()) != 0) {
7235        switch(tag) {
7236          default:
7237            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
7238              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7239            }
7240            break;
7241          case 7994: {
7242            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
7243            break;
7244          }
7245        }
7246      }
7247    }
7248    #endif
7249
7250    public TValue GetExtension<TValue>(pb::Extension<OneofOptions, TValue> extension) {
7251      return pb::ExtensionSet.Get(ref _extensions, extension);
7252    }
7253    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<OneofOptions, TValue> extension) {
7254      return pb::ExtensionSet.Get(ref _extensions, extension);
7255    }
7256    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<OneofOptions, TValue> extension) {
7257      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
7258    }
7259    public void SetExtension<TValue>(pb::Extension<OneofOptions, TValue> extension, TValue value) {
7260      pb::ExtensionSet.Set(ref _extensions, extension, value);
7261    }
7262    public bool HasExtension<TValue>(pb::Extension<OneofOptions, TValue> extension) {
7263      return pb::ExtensionSet.Has(ref _extensions, extension);
7264    }
7265    public void ClearExtension<TValue>(pb::Extension<OneofOptions, TValue> extension) {
7266      pb::ExtensionSet.Clear(ref _extensions, extension);
7267    }
7268    public void ClearExtension<TValue>(pb::RepeatedExtension<OneofOptions, TValue> extension) {
7269      pb::ExtensionSet.Clear(ref _extensions, extension);
7270    }
7271
7272  }
7273
7274  public sealed partial class EnumOptions : pb::IExtendableMessage<EnumOptions>
7275  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7276      , pb::IBufferMessage
7277  #endif
7278  {
7279    private static readonly pb::MessageParser<EnumOptions> _parser = new pb::MessageParser<EnumOptions>(() => new EnumOptions());
7280    private pb::UnknownFieldSet _unknownFields;
7281    internal pb::ExtensionSet<EnumOptions> _extensions;
7282    private pb::ExtensionSet<EnumOptions> _Extensions { get { return _extensions; } }
7283    private int _hasBits0;
7284    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7285    public static pb::MessageParser<EnumOptions> Parser { get { return _parser; } }
7286
7287    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7288    public static pbr::MessageDescriptor Descriptor {
7289      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[14]; }
7290    }
7291
7292    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7293    pbr::MessageDescriptor pb::IMessage.Descriptor {
7294      get { return Descriptor; }
7295    }
7296
7297    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7298    public EnumOptions() {
7299      OnConstruction();
7300    }
7301
7302    partial void OnConstruction();
7303
7304    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7305    public EnumOptions(EnumOptions other) : this() {
7306      _hasBits0 = other._hasBits0;
7307      allowAlias_ = other.allowAlias_;
7308      deprecated_ = other.deprecated_;
7309      uninterpretedOption_ = other.uninterpretedOption_.Clone();
7310      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7311      _extensions = pb::ExtensionSet.Clone(other._extensions);
7312    }
7313
7314    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7315    public EnumOptions Clone() {
7316      return new EnumOptions(this);
7317    }
7318
7319    /// <summary>Field number for the "allow_alias" field.</summary>
7320    public const int AllowAliasFieldNumber = 2;
7321    private readonly static bool AllowAliasDefaultValue = false;
7322
7323    private bool allowAlias_;
7324    /// <summary>
7325    /// Set this option to true to allow mapping different tag names to the same
7326    /// value.
7327    /// </summary>
7328    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7329    public bool AllowAlias {
7330      get { if ((_hasBits0 & 1) != 0) { return allowAlias_; } else { return AllowAliasDefaultValue; } }
7331      set {
7332        _hasBits0 |= 1;
7333        allowAlias_ = value;
7334      }
7335    }
7336    /// <summary>Gets whether the "allow_alias" field is set</summary>
7337    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7338    public bool HasAllowAlias {
7339      get { return (_hasBits0 & 1) != 0; }
7340    }
7341    /// <summary>Clears the value of the "allow_alias" field</summary>
7342    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7343    public void ClearAllowAlias() {
7344      _hasBits0 &= ~1;
7345    }
7346
7347    /// <summary>Field number for the "deprecated" field.</summary>
7348    public const int DeprecatedFieldNumber = 3;
7349    private readonly static bool DeprecatedDefaultValue = false;
7350
7351    private bool deprecated_;
7352    /// <summary>
7353    /// Is this enum deprecated?
7354    /// Depending on the target platform, this can emit Deprecated annotations
7355    /// for the enum, or it will be completely ignored; in the very least, this
7356    /// is a formalization for deprecating enums.
7357    /// </summary>
7358    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7359    public bool Deprecated {
7360      get { if ((_hasBits0 & 2) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
7361      set {
7362        _hasBits0 |= 2;
7363        deprecated_ = value;
7364      }
7365    }
7366    /// <summary>Gets whether the "deprecated" field is set</summary>
7367    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7368    public bool HasDeprecated {
7369      get { return (_hasBits0 & 2) != 0; }
7370    }
7371    /// <summary>Clears the value of the "deprecated" field</summary>
7372    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7373    public void ClearDeprecated() {
7374      _hasBits0 &= ~2;
7375    }
7376
7377    /// <summary>Field number for the "uninterpreted_option" field.</summary>
7378    public const int UninterpretedOptionFieldNumber = 999;
7379    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
7380        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
7381    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
7382    /// <summary>
7383    /// The parser stores options it doesn't recognize here. See above.
7384    /// </summary>
7385    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7386    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
7387      get { return uninterpretedOption_; }
7388    }
7389
7390    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7391    public override bool Equals(object other) {
7392      return Equals(other as EnumOptions);
7393    }
7394
7395    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7396    public bool Equals(EnumOptions other) {
7397      if (ReferenceEquals(other, null)) {
7398        return false;
7399      }
7400      if (ReferenceEquals(other, this)) {
7401        return true;
7402      }
7403      if (AllowAlias != other.AllowAlias) return false;
7404      if (Deprecated != other.Deprecated) return false;
7405      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
7406      if (!Equals(_extensions, other._extensions)) {
7407        return false;
7408      }
7409      return Equals(_unknownFields, other._unknownFields);
7410    }
7411
7412    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7413    public override int GetHashCode() {
7414      int hash = 1;
7415      if (HasAllowAlias) hash ^= AllowAlias.GetHashCode();
7416      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
7417      hash ^= uninterpretedOption_.GetHashCode();
7418      if (_extensions != null) {
7419        hash ^= _extensions.GetHashCode();
7420      }
7421      if (_unknownFields != null) {
7422        hash ^= _unknownFields.GetHashCode();
7423      }
7424      return hash;
7425    }
7426
7427    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7428    public override string ToString() {
7429      return pb::JsonFormatter.ToDiagnosticString(this);
7430    }
7431
7432    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7433    public void WriteTo(pb::CodedOutputStream output) {
7434    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7435      output.WriteRawMessage(this);
7436    #else
7437      if (HasAllowAlias) {
7438        output.WriteRawTag(16);
7439        output.WriteBool(AllowAlias);
7440      }
7441      if (HasDeprecated) {
7442        output.WriteRawTag(24);
7443        output.WriteBool(Deprecated);
7444      }
7445      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
7446      if (_extensions != null) {
7447        _extensions.WriteTo(output);
7448      }
7449      if (_unknownFields != null) {
7450        _unknownFields.WriteTo(output);
7451      }
7452    #endif
7453    }
7454
7455    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7456    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7457    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
7458      if (HasAllowAlias) {
7459        output.WriteRawTag(16);
7460        output.WriteBool(AllowAlias);
7461      }
7462      if (HasDeprecated) {
7463        output.WriteRawTag(24);
7464        output.WriteBool(Deprecated);
7465      }
7466      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
7467      if (_extensions != null) {
7468        _extensions.WriteTo(ref output);
7469      }
7470      if (_unknownFields != null) {
7471        _unknownFields.WriteTo(ref output);
7472      }
7473    }
7474    #endif
7475
7476    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7477    public int CalculateSize() {
7478      int size = 0;
7479      if (HasAllowAlias) {
7480        size += 1 + 1;
7481      }
7482      if (HasDeprecated) {
7483        size += 1 + 1;
7484      }
7485      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
7486      if (_extensions != null) {
7487        size += _extensions.CalculateSize();
7488      }
7489      if (_unknownFields != null) {
7490        size += _unknownFields.CalculateSize();
7491      }
7492      return size;
7493    }
7494
7495    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7496    public void MergeFrom(EnumOptions other) {
7497      if (other == null) {
7498        return;
7499      }
7500      if (other.HasAllowAlias) {
7501        AllowAlias = other.AllowAlias;
7502      }
7503      if (other.HasDeprecated) {
7504        Deprecated = other.Deprecated;
7505      }
7506      uninterpretedOption_.Add(other.uninterpretedOption_);
7507      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
7508      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
7509    }
7510
7511    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7512    public void MergeFrom(pb::CodedInputStream input) {
7513    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7514      input.ReadRawMessage(this);
7515    #else
7516      uint tag;
7517      while ((tag = input.ReadTag()) != 0) {
7518        switch(tag) {
7519          default:
7520            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
7521              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
7522            }
7523            break;
7524          case 16: {
7525            AllowAlias = input.ReadBool();
7526            break;
7527          }
7528          case 24: {
7529            Deprecated = input.ReadBool();
7530            break;
7531          }
7532          case 7994: {
7533            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
7534            break;
7535          }
7536        }
7537      }
7538    #endif
7539    }
7540
7541    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7542    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7543    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7544      uint tag;
7545      while ((tag = input.ReadTag()) != 0) {
7546        switch(tag) {
7547          default:
7548            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
7549              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7550            }
7551            break;
7552          case 16: {
7553            AllowAlias = input.ReadBool();
7554            break;
7555          }
7556          case 24: {
7557            Deprecated = input.ReadBool();
7558            break;
7559          }
7560          case 7994: {
7561            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
7562            break;
7563          }
7564        }
7565      }
7566    }
7567    #endif
7568
7569    public TValue GetExtension<TValue>(pb::Extension<EnumOptions, TValue> extension) {
7570      return pb::ExtensionSet.Get(ref _extensions, extension);
7571    }
7572    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<EnumOptions, TValue> extension) {
7573      return pb::ExtensionSet.Get(ref _extensions, extension);
7574    }
7575    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<EnumOptions, TValue> extension) {
7576      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
7577    }
7578    public void SetExtension<TValue>(pb::Extension<EnumOptions, TValue> extension, TValue value) {
7579      pb::ExtensionSet.Set(ref _extensions, extension, value);
7580    }
7581    public bool HasExtension<TValue>(pb::Extension<EnumOptions, TValue> extension) {
7582      return pb::ExtensionSet.Has(ref _extensions, extension);
7583    }
7584    public void ClearExtension<TValue>(pb::Extension<EnumOptions, TValue> extension) {
7585      pb::ExtensionSet.Clear(ref _extensions, extension);
7586    }
7587    public void ClearExtension<TValue>(pb::RepeatedExtension<EnumOptions, TValue> extension) {
7588      pb::ExtensionSet.Clear(ref _extensions, extension);
7589    }
7590
7591  }
7592
7593  public sealed partial class EnumValueOptions : pb::IExtendableMessage<EnumValueOptions>
7594  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7595      , pb::IBufferMessage
7596  #endif
7597  {
7598    private static readonly pb::MessageParser<EnumValueOptions> _parser = new pb::MessageParser<EnumValueOptions>(() => new EnumValueOptions());
7599    private pb::UnknownFieldSet _unknownFields;
7600    internal pb::ExtensionSet<EnumValueOptions> _extensions;
7601    private pb::ExtensionSet<EnumValueOptions> _Extensions { get { return _extensions; } }
7602    private int _hasBits0;
7603    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7604    public static pb::MessageParser<EnumValueOptions> Parser { get { return _parser; } }
7605
7606    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7607    public static pbr::MessageDescriptor Descriptor {
7608      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[15]; }
7609    }
7610
7611    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7612    pbr::MessageDescriptor pb::IMessage.Descriptor {
7613      get { return Descriptor; }
7614    }
7615
7616    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7617    public EnumValueOptions() {
7618      OnConstruction();
7619    }
7620
7621    partial void OnConstruction();
7622
7623    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7624    public EnumValueOptions(EnumValueOptions other) : this() {
7625      _hasBits0 = other._hasBits0;
7626      deprecated_ = other.deprecated_;
7627      uninterpretedOption_ = other.uninterpretedOption_.Clone();
7628      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7629      _extensions = pb::ExtensionSet.Clone(other._extensions);
7630    }
7631
7632    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7633    public EnumValueOptions Clone() {
7634      return new EnumValueOptions(this);
7635    }
7636
7637    /// <summary>Field number for the "deprecated" field.</summary>
7638    public const int DeprecatedFieldNumber = 1;
7639    private readonly static bool DeprecatedDefaultValue = false;
7640
7641    private bool deprecated_;
7642    /// <summary>
7643    /// Is this enum value deprecated?
7644    /// Depending on the target platform, this can emit Deprecated annotations
7645    /// for the enum value, or it will be completely ignored; in the very least,
7646    /// this is a formalization for deprecating enum values.
7647    /// </summary>
7648    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7649    public bool Deprecated {
7650      get { if ((_hasBits0 & 1) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
7651      set {
7652        _hasBits0 |= 1;
7653        deprecated_ = value;
7654      }
7655    }
7656    /// <summary>Gets whether the "deprecated" field is set</summary>
7657    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7658    public bool HasDeprecated {
7659      get { return (_hasBits0 & 1) != 0; }
7660    }
7661    /// <summary>Clears the value of the "deprecated" field</summary>
7662    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7663    public void ClearDeprecated() {
7664      _hasBits0 &= ~1;
7665    }
7666
7667    /// <summary>Field number for the "uninterpreted_option" field.</summary>
7668    public const int UninterpretedOptionFieldNumber = 999;
7669    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
7670        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
7671    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
7672    /// <summary>
7673    /// The parser stores options it doesn't recognize here. See above.
7674    /// </summary>
7675    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7676    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
7677      get { return uninterpretedOption_; }
7678    }
7679
7680    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7681    public override bool Equals(object other) {
7682      return Equals(other as EnumValueOptions);
7683    }
7684
7685    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7686    public bool Equals(EnumValueOptions other) {
7687      if (ReferenceEquals(other, null)) {
7688        return false;
7689      }
7690      if (ReferenceEquals(other, this)) {
7691        return true;
7692      }
7693      if (Deprecated != other.Deprecated) return false;
7694      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
7695      if (!Equals(_extensions, other._extensions)) {
7696        return false;
7697      }
7698      return Equals(_unknownFields, other._unknownFields);
7699    }
7700
7701    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7702    public override int GetHashCode() {
7703      int hash = 1;
7704      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
7705      hash ^= uninterpretedOption_.GetHashCode();
7706      if (_extensions != null) {
7707        hash ^= _extensions.GetHashCode();
7708      }
7709      if (_unknownFields != null) {
7710        hash ^= _unknownFields.GetHashCode();
7711      }
7712      return hash;
7713    }
7714
7715    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7716    public override string ToString() {
7717      return pb::JsonFormatter.ToDiagnosticString(this);
7718    }
7719
7720    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7721    public void WriteTo(pb::CodedOutputStream output) {
7722    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7723      output.WriteRawMessage(this);
7724    #else
7725      if (HasDeprecated) {
7726        output.WriteRawTag(8);
7727        output.WriteBool(Deprecated);
7728      }
7729      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
7730      if (_extensions != null) {
7731        _extensions.WriteTo(output);
7732      }
7733      if (_unknownFields != null) {
7734        _unknownFields.WriteTo(output);
7735      }
7736    #endif
7737    }
7738
7739    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7740    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7741    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
7742      if (HasDeprecated) {
7743        output.WriteRawTag(8);
7744        output.WriteBool(Deprecated);
7745      }
7746      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
7747      if (_extensions != null) {
7748        _extensions.WriteTo(ref output);
7749      }
7750      if (_unknownFields != null) {
7751        _unknownFields.WriteTo(ref output);
7752      }
7753    }
7754    #endif
7755
7756    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7757    public int CalculateSize() {
7758      int size = 0;
7759      if (HasDeprecated) {
7760        size += 1 + 1;
7761      }
7762      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
7763      if (_extensions != null) {
7764        size += _extensions.CalculateSize();
7765      }
7766      if (_unknownFields != null) {
7767        size += _unknownFields.CalculateSize();
7768      }
7769      return size;
7770    }
7771
7772    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7773    public void MergeFrom(EnumValueOptions other) {
7774      if (other == null) {
7775        return;
7776      }
7777      if (other.HasDeprecated) {
7778        Deprecated = other.Deprecated;
7779      }
7780      uninterpretedOption_.Add(other.uninterpretedOption_);
7781      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
7782      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
7783    }
7784
7785    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7786    public void MergeFrom(pb::CodedInputStream input) {
7787    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7788      input.ReadRawMessage(this);
7789    #else
7790      uint tag;
7791      while ((tag = input.ReadTag()) != 0) {
7792        switch(tag) {
7793          default:
7794            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
7795              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
7796            }
7797            break;
7798          case 8: {
7799            Deprecated = input.ReadBool();
7800            break;
7801          }
7802          case 7994: {
7803            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
7804            break;
7805          }
7806        }
7807      }
7808    #endif
7809    }
7810
7811    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7812    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7813    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7814      uint tag;
7815      while ((tag = input.ReadTag()) != 0) {
7816        switch(tag) {
7817          default:
7818            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
7819              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7820            }
7821            break;
7822          case 8: {
7823            Deprecated = input.ReadBool();
7824            break;
7825          }
7826          case 7994: {
7827            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
7828            break;
7829          }
7830        }
7831      }
7832    }
7833    #endif
7834
7835    public TValue GetExtension<TValue>(pb::Extension<EnumValueOptions, TValue> extension) {
7836      return pb::ExtensionSet.Get(ref _extensions, extension);
7837    }
7838    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<EnumValueOptions, TValue> extension) {
7839      return pb::ExtensionSet.Get(ref _extensions, extension);
7840    }
7841    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<EnumValueOptions, TValue> extension) {
7842      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
7843    }
7844    public void SetExtension<TValue>(pb::Extension<EnumValueOptions, TValue> extension, TValue value) {
7845      pb::ExtensionSet.Set(ref _extensions, extension, value);
7846    }
7847    public bool HasExtension<TValue>(pb::Extension<EnumValueOptions, TValue> extension) {
7848      return pb::ExtensionSet.Has(ref _extensions, extension);
7849    }
7850    public void ClearExtension<TValue>(pb::Extension<EnumValueOptions, TValue> extension) {
7851      pb::ExtensionSet.Clear(ref _extensions, extension);
7852    }
7853    public void ClearExtension<TValue>(pb::RepeatedExtension<EnumValueOptions, TValue> extension) {
7854      pb::ExtensionSet.Clear(ref _extensions, extension);
7855    }
7856
7857  }
7858
7859  public sealed partial class ServiceOptions : pb::IExtendableMessage<ServiceOptions>
7860  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7861      , pb::IBufferMessage
7862  #endif
7863  {
7864    private static readonly pb::MessageParser<ServiceOptions> _parser = new pb::MessageParser<ServiceOptions>(() => new ServiceOptions());
7865    private pb::UnknownFieldSet _unknownFields;
7866    internal pb::ExtensionSet<ServiceOptions> _extensions;
7867    private pb::ExtensionSet<ServiceOptions> _Extensions { get { return _extensions; } }
7868    private int _hasBits0;
7869    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7870    public static pb::MessageParser<ServiceOptions> Parser { get { return _parser; } }
7871
7872    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7873    public static pbr::MessageDescriptor Descriptor {
7874      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[16]; }
7875    }
7876
7877    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7878    pbr::MessageDescriptor pb::IMessage.Descriptor {
7879      get { return Descriptor; }
7880    }
7881
7882    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7883    public ServiceOptions() {
7884      OnConstruction();
7885    }
7886
7887    partial void OnConstruction();
7888
7889    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7890    public ServiceOptions(ServiceOptions other) : this() {
7891      _hasBits0 = other._hasBits0;
7892      deprecated_ = other.deprecated_;
7893      uninterpretedOption_ = other.uninterpretedOption_.Clone();
7894      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7895      _extensions = pb::ExtensionSet.Clone(other._extensions);
7896    }
7897
7898    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7899    public ServiceOptions Clone() {
7900      return new ServiceOptions(this);
7901    }
7902
7903    /// <summary>Field number for the "deprecated" field.</summary>
7904    public const int DeprecatedFieldNumber = 33;
7905    private readonly static bool DeprecatedDefaultValue = false;
7906
7907    private bool deprecated_;
7908    /// <summary>
7909    /// Is this service deprecated?
7910    /// Depending on the target platform, this can emit Deprecated annotations
7911    /// for the service, or it will be completely ignored; in the very least,
7912    /// this is a formalization for deprecating services.
7913    /// </summary>
7914    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7915    public bool Deprecated {
7916      get { if ((_hasBits0 & 1) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
7917      set {
7918        _hasBits0 |= 1;
7919        deprecated_ = value;
7920      }
7921    }
7922    /// <summary>Gets whether the "deprecated" field is set</summary>
7923    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7924    public bool HasDeprecated {
7925      get { return (_hasBits0 & 1) != 0; }
7926    }
7927    /// <summary>Clears the value of the "deprecated" field</summary>
7928    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7929    public void ClearDeprecated() {
7930      _hasBits0 &= ~1;
7931    }
7932
7933    /// <summary>Field number for the "uninterpreted_option" field.</summary>
7934    public const int UninterpretedOptionFieldNumber = 999;
7935    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
7936        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
7937    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
7938    /// <summary>
7939    /// The parser stores options it doesn't recognize here. See above.
7940    /// </summary>
7941    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7942    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
7943      get { return uninterpretedOption_; }
7944    }
7945
7946    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7947    public override bool Equals(object other) {
7948      return Equals(other as ServiceOptions);
7949    }
7950
7951    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7952    public bool Equals(ServiceOptions other) {
7953      if (ReferenceEquals(other, null)) {
7954        return false;
7955      }
7956      if (ReferenceEquals(other, this)) {
7957        return true;
7958      }
7959      if (Deprecated != other.Deprecated) return false;
7960      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
7961      if (!Equals(_extensions, other._extensions)) {
7962        return false;
7963      }
7964      return Equals(_unknownFields, other._unknownFields);
7965    }
7966
7967    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7968    public override int GetHashCode() {
7969      int hash = 1;
7970      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
7971      hash ^= uninterpretedOption_.GetHashCode();
7972      if (_extensions != null) {
7973        hash ^= _extensions.GetHashCode();
7974      }
7975      if (_unknownFields != null) {
7976        hash ^= _unknownFields.GetHashCode();
7977      }
7978      return hash;
7979    }
7980
7981    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7982    public override string ToString() {
7983      return pb::JsonFormatter.ToDiagnosticString(this);
7984    }
7985
7986    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7987    public void WriteTo(pb::CodedOutputStream output) {
7988    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7989      output.WriteRawMessage(this);
7990    #else
7991      if (HasDeprecated) {
7992        output.WriteRawTag(136, 2);
7993        output.WriteBool(Deprecated);
7994      }
7995      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
7996      if (_extensions != null) {
7997        _extensions.WriteTo(output);
7998      }
7999      if (_unknownFields != null) {
8000        _unknownFields.WriteTo(output);
8001      }
8002    #endif
8003    }
8004
8005    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8006    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8007    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
8008      if (HasDeprecated) {
8009        output.WriteRawTag(136, 2);
8010        output.WriteBool(Deprecated);
8011      }
8012      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
8013      if (_extensions != null) {
8014        _extensions.WriteTo(ref output);
8015      }
8016      if (_unknownFields != null) {
8017        _unknownFields.WriteTo(ref output);
8018      }
8019    }
8020    #endif
8021
8022    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8023    public int CalculateSize() {
8024      int size = 0;
8025      if (HasDeprecated) {
8026        size += 2 + 1;
8027      }
8028      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
8029      if (_extensions != null) {
8030        size += _extensions.CalculateSize();
8031      }
8032      if (_unknownFields != null) {
8033        size += _unknownFields.CalculateSize();
8034      }
8035      return size;
8036    }
8037
8038    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8039    public void MergeFrom(ServiceOptions other) {
8040      if (other == null) {
8041        return;
8042      }
8043      if (other.HasDeprecated) {
8044        Deprecated = other.Deprecated;
8045      }
8046      uninterpretedOption_.Add(other.uninterpretedOption_);
8047      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
8048      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
8049    }
8050
8051    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8052    public void MergeFrom(pb::CodedInputStream input) {
8053    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8054      input.ReadRawMessage(this);
8055    #else
8056      uint tag;
8057      while ((tag = input.ReadTag()) != 0) {
8058        switch(tag) {
8059          default:
8060            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
8061              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
8062            }
8063            break;
8064          case 264: {
8065            Deprecated = input.ReadBool();
8066            break;
8067          }
8068          case 7994: {
8069            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
8070            break;
8071          }
8072        }
8073      }
8074    #endif
8075    }
8076
8077    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8078    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8079    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
8080      uint tag;
8081      while ((tag = input.ReadTag()) != 0) {
8082        switch(tag) {
8083          default:
8084            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
8085              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
8086            }
8087            break;
8088          case 264: {
8089            Deprecated = input.ReadBool();
8090            break;
8091          }
8092          case 7994: {
8093            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
8094            break;
8095          }
8096        }
8097      }
8098    }
8099    #endif
8100
8101    public TValue GetExtension<TValue>(pb::Extension<ServiceOptions, TValue> extension) {
8102      return pb::ExtensionSet.Get(ref _extensions, extension);
8103    }
8104    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<ServiceOptions, TValue> extension) {
8105      return pb::ExtensionSet.Get(ref _extensions, extension);
8106    }
8107    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<ServiceOptions, TValue> extension) {
8108      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
8109    }
8110    public void SetExtension<TValue>(pb::Extension<ServiceOptions, TValue> extension, TValue value) {
8111      pb::ExtensionSet.Set(ref _extensions, extension, value);
8112    }
8113    public bool HasExtension<TValue>(pb::Extension<ServiceOptions, TValue> extension) {
8114      return pb::ExtensionSet.Has(ref _extensions, extension);
8115    }
8116    public void ClearExtension<TValue>(pb::Extension<ServiceOptions, TValue> extension) {
8117      pb::ExtensionSet.Clear(ref _extensions, extension);
8118    }
8119    public void ClearExtension<TValue>(pb::RepeatedExtension<ServiceOptions, TValue> extension) {
8120      pb::ExtensionSet.Clear(ref _extensions, extension);
8121    }
8122
8123  }
8124
8125  public sealed partial class MethodOptions : pb::IExtendableMessage<MethodOptions>
8126  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8127      , pb::IBufferMessage
8128  #endif
8129  {
8130    private static readonly pb::MessageParser<MethodOptions> _parser = new pb::MessageParser<MethodOptions>(() => new MethodOptions());
8131    private pb::UnknownFieldSet _unknownFields;
8132    internal pb::ExtensionSet<MethodOptions> _extensions;
8133    private pb::ExtensionSet<MethodOptions> _Extensions { get { return _extensions; } }
8134    private int _hasBits0;
8135    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8136    public static pb::MessageParser<MethodOptions> Parser { get { return _parser; } }
8137
8138    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8139    public static pbr::MessageDescriptor Descriptor {
8140      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[17]; }
8141    }
8142
8143    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8144    pbr::MessageDescriptor pb::IMessage.Descriptor {
8145      get { return Descriptor; }
8146    }
8147
8148    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8149    public MethodOptions() {
8150      OnConstruction();
8151    }
8152
8153    partial void OnConstruction();
8154
8155    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8156    public MethodOptions(MethodOptions other) : this() {
8157      _hasBits0 = other._hasBits0;
8158      deprecated_ = other.deprecated_;
8159      idempotencyLevel_ = other.idempotencyLevel_;
8160      uninterpretedOption_ = other.uninterpretedOption_.Clone();
8161      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
8162      _extensions = pb::ExtensionSet.Clone(other._extensions);
8163    }
8164
8165    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8166    public MethodOptions Clone() {
8167      return new MethodOptions(this);
8168    }
8169
8170    /// <summary>Field number for the "deprecated" field.</summary>
8171    public const int DeprecatedFieldNumber = 33;
8172    private readonly static bool DeprecatedDefaultValue = false;
8173
8174    private bool deprecated_;
8175    /// <summary>
8176    /// Is this method deprecated?
8177    /// Depending on the target platform, this can emit Deprecated annotations
8178    /// for the method, or it will be completely ignored; in the very least,
8179    /// this is a formalization for deprecating methods.
8180    /// </summary>
8181    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8182    public bool Deprecated {
8183      get { if ((_hasBits0 & 1) != 0) { return deprecated_; } else { return DeprecatedDefaultValue; } }
8184      set {
8185        _hasBits0 |= 1;
8186        deprecated_ = value;
8187      }
8188    }
8189    /// <summary>Gets whether the "deprecated" field is set</summary>
8190    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8191    public bool HasDeprecated {
8192      get { return (_hasBits0 & 1) != 0; }
8193    }
8194    /// <summary>Clears the value of the "deprecated" field</summary>
8195    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8196    public void ClearDeprecated() {
8197      _hasBits0 &= ~1;
8198    }
8199
8200    /// <summary>Field number for the "idempotency_level" field.</summary>
8201    public const int IdempotencyLevelFieldNumber = 34;
8202    private readonly static global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel IdempotencyLevelDefaultValue = global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel.IdempotencyUnknown;
8203
8204    private global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel idempotencyLevel_;
8205    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8206    public global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel IdempotencyLevel {
8207      get { if ((_hasBits0 & 2) != 0) { return idempotencyLevel_; } else { return IdempotencyLevelDefaultValue; } }
8208      set {
8209        _hasBits0 |= 2;
8210        idempotencyLevel_ = value;
8211      }
8212    }
8213    /// <summary>Gets whether the "idempotency_level" field is set</summary>
8214    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8215    public bool HasIdempotencyLevel {
8216      get { return (_hasBits0 & 2) != 0; }
8217    }
8218    /// <summary>Clears the value of the "idempotency_level" field</summary>
8219    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8220    public void ClearIdempotencyLevel() {
8221      _hasBits0 &= ~2;
8222    }
8223
8224    /// <summary>Field number for the "uninterpreted_option" field.</summary>
8225    public const int UninterpretedOptionFieldNumber = 999;
8226    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
8227        = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
8228    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
8229    /// <summary>
8230    /// The parser stores options it doesn't recognize here. See above.
8231    /// </summary>
8232    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8233    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
8234      get { return uninterpretedOption_; }
8235    }
8236
8237    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8238    public override bool Equals(object other) {
8239      return Equals(other as MethodOptions);
8240    }
8241
8242    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8243    public bool Equals(MethodOptions other) {
8244      if (ReferenceEquals(other, null)) {
8245        return false;
8246      }
8247      if (ReferenceEquals(other, this)) {
8248        return true;
8249      }
8250      if (Deprecated != other.Deprecated) return false;
8251      if (IdempotencyLevel != other.IdempotencyLevel) return false;
8252      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
8253      if (!Equals(_extensions, other._extensions)) {
8254        return false;
8255      }
8256      return Equals(_unknownFields, other._unknownFields);
8257    }
8258
8259    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8260    public override int GetHashCode() {
8261      int hash = 1;
8262      if (HasDeprecated) hash ^= Deprecated.GetHashCode();
8263      if (HasIdempotencyLevel) hash ^= IdempotencyLevel.GetHashCode();
8264      hash ^= uninterpretedOption_.GetHashCode();
8265      if (_extensions != null) {
8266        hash ^= _extensions.GetHashCode();
8267      }
8268      if (_unknownFields != null) {
8269        hash ^= _unknownFields.GetHashCode();
8270      }
8271      return hash;
8272    }
8273
8274    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8275    public override string ToString() {
8276      return pb::JsonFormatter.ToDiagnosticString(this);
8277    }
8278
8279    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8280    public void WriteTo(pb::CodedOutputStream output) {
8281    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8282      output.WriteRawMessage(this);
8283    #else
8284      if (HasDeprecated) {
8285        output.WriteRawTag(136, 2);
8286        output.WriteBool(Deprecated);
8287      }
8288      if (HasIdempotencyLevel) {
8289        output.WriteRawTag(144, 2);
8290        output.WriteEnum((int) IdempotencyLevel);
8291      }
8292      uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
8293      if (_extensions != null) {
8294        _extensions.WriteTo(output);
8295      }
8296      if (_unknownFields != null) {
8297        _unknownFields.WriteTo(output);
8298      }
8299    #endif
8300    }
8301
8302    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8303    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8304    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
8305      if (HasDeprecated) {
8306        output.WriteRawTag(136, 2);
8307        output.WriteBool(Deprecated);
8308      }
8309      if (HasIdempotencyLevel) {
8310        output.WriteRawTag(144, 2);
8311        output.WriteEnum((int) IdempotencyLevel);
8312      }
8313      uninterpretedOption_.WriteTo(ref output, _repeated_uninterpretedOption_codec);
8314      if (_extensions != null) {
8315        _extensions.WriteTo(ref output);
8316      }
8317      if (_unknownFields != null) {
8318        _unknownFields.WriteTo(ref output);
8319      }
8320    }
8321    #endif
8322
8323    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8324    public int CalculateSize() {
8325      int size = 0;
8326      if (HasDeprecated) {
8327        size += 2 + 1;
8328      }
8329      if (HasIdempotencyLevel) {
8330        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) IdempotencyLevel);
8331      }
8332      size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
8333      if (_extensions != null) {
8334        size += _extensions.CalculateSize();
8335      }
8336      if (_unknownFields != null) {
8337        size += _unknownFields.CalculateSize();
8338      }
8339      return size;
8340    }
8341
8342    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8343    public void MergeFrom(MethodOptions other) {
8344      if (other == null) {
8345        return;
8346      }
8347      if (other.HasDeprecated) {
8348        Deprecated = other.Deprecated;
8349      }
8350      if (other.HasIdempotencyLevel) {
8351        IdempotencyLevel = other.IdempotencyLevel;
8352      }
8353      uninterpretedOption_.Add(other.uninterpretedOption_);
8354      pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
8355      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
8356    }
8357
8358    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8359    public void MergeFrom(pb::CodedInputStream input) {
8360    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8361      input.ReadRawMessage(this);
8362    #else
8363      uint tag;
8364      while ((tag = input.ReadTag()) != 0) {
8365        switch(tag) {
8366          default:
8367            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
8368              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
8369            }
8370            break;
8371          case 264: {
8372            Deprecated = input.ReadBool();
8373            break;
8374          }
8375          case 272: {
8376            IdempotencyLevel = (global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel) input.ReadEnum();
8377            break;
8378          }
8379          case 7994: {
8380            uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
8381            break;
8382          }
8383        }
8384      }
8385    #endif
8386    }
8387
8388    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8389    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8390    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
8391      uint tag;
8392      while ((tag = input.ReadTag()) != 0) {
8393        switch(tag) {
8394          default:
8395            if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
8396              _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
8397            }
8398            break;
8399          case 264: {
8400            Deprecated = input.ReadBool();
8401            break;
8402          }
8403          case 272: {
8404            IdempotencyLevel = (global::Google.Protobuf.Reflection.MethodOptions.Types.IdempotencyLevel) input.ReadEnum();
8405            break;
8406          }
8407          case 7994: {
8408            uninterpretedOption_.AddEntriesFrom(ref input, _repeated_uninterpretedOption_codec);
8409            break;
8410          }
8411        }
8412      }
8413    }
8414    #endif
8415
8416    public TValue GetExtension<TValue>(pb::Extension<MethodOptions, TValue> extension) {
8417      return pb::ExtensionSet.Get(ref _extensions, extension);
8418    }
8419    public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<MethodOptions, TValue> extension) {
8420      return pb::ExtensionSet.Get(ref _extensions, extension);
8421    }
8422    public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<MethodOptions, TValue> extension) {
8423      return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
8424    }
8425    public void SetExtension<TValue>(pb::Extension<MethodOptions, TValue> extension, TValue value) {
8426      pb::ExtensionSet.Set(ref _extensions, extension, value);
8427    }
8428    public bool HasExtension<TValue>(pb::Extension<MethodOptions, TValue> extension) {
8429      return pb::ExtensionSet.Has(ref _extensions, extension);
8430    }
8431    public void ClearExtension<TValue>(pb::Extension<MethodOptions, TValue> extension) {
8432      pb::ExtensionSet.Clear(ref _extensions, extension);
8433    }
8434    public void ClearExtension<TValue>(pb::RepeatedExtension<MethodOptions, TValue> extension) {
8435      pb::ExtensionSet.Clear(ref _extensions, extension);
8436    }
8437
8438    #region Nested types
8439    /// <summary>Container for nested types declared in the MethodOptions message type.</summary>
8440    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8441    public static partial class Types {
8442      /// <summary>
8443      /// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
8444      /// or neither? HTTP based RPC implementation may choose GET verb for safe
8445      /// methods, and PUT verb for idempotent methods instead of the default POST.
8446      /// </summary>
8447      public enum IdempotencyLevel {
8448        [pbr::OriginalName("IDEMPOTENCY_UNKNOWN")] IdempotencyUnknown = 0,
8449        /// <summary>
8450        /// implies idempotent
8451        /// </summary>
8452        [pbr::OriginalName("NO_SIDE_EFFECTS")] NoSideEffects = 1,
8453        /// <summary>
8454        /// idempotent, but may have side effects
8455        /// </summary>
8456        [pbr::OriginalName("IDEMPOTENT")] Idempotent = 2,
8457      }
8458
8459    }
8460    #endregion
8461
8462  }
8463
8464  /// <summary>
8465  /// A message representing a option the parser does not recognize. This only
8466  /// appears in options protos created by the compiler::Parser class.
8467  /// DescriptorPool resolves these when building Descriptor objects. Therefore,
8468  /// options protos in descriptor objects (e.g. returned by Descriptor::options(),
8469  /// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
8470  /// in them.
8471  /// </summary>
8472  public sealed partial class UninterpretedOption : pb::IMessage<UninterpretedOption>
8473  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8474      , pb::IBufferMessage
8475  #endif
8476  {
8477    private static readonly pb::MessageParser<UninterpretedOption> _parser = new pb::MessageParser<UninterpretedOption>(() => new UninterpretedOption());
8478    private pb::UnknownFieldSet _unknownFields;
8479    private int _hasBits0;
8480    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8481    public static pb::MessageParser<UninterpretedOption> Parser { get { return _parser; } }
8482
8483    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8484    public static pbr::MessageDescriptor Descriptor {
8485      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[18]; }
8486    }
8487
8488    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8489    pbr::MessageDescriptor pb::IMessage.Descriptor {
8490      get { return Descriptor; }
8491    }
8492
8493    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8494    public UninterpretedOption() {
8495      OnConstruction();
8496    }
8497
8498    partial void OnConstruction();
8499
8500    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8501    public UninterpretedOption(UninterpretedOption other) : this() {
8502      _hasBits0 = other._hasBits0;
8503      name_ = other.name_.Clone();
8504      identifierValue_ = other.identifierValue_;
8505      positiveIntValue_ = other.positiveIntValue_;
8506      negativeIntValue_ = other.negativeIntValue_;
8507      doubleValue_ = other.doubleValue_;
8508      stringValue_ = other.stringValue_;
8509      aggregateValue_ = other.aggregateValue_;
8510      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
8511    }
8512
8513    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8514    public UninterpretedOption Clone() {
8515      return new UninterpretedOption(this);
8516    }
8517
8518    /// <summary>Field number for the "name" field.</summary>
8519    public const int NameFieldNumber = 2;
8520    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> _repeated_name_codec
8521        = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.Parser);
8522    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> name_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart>();
8523    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8524    public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> Name {
8525      get { return name_; }
8526    }
8527
8528    /// <summary>Field number for the "identifier_value" field.</summary>
8529    public const int IdentifierValueFieldNumber = 3;
8530    private readonly static string IdentifierValueDefaultValue = "";
8531
8532    private string identifierValue_;
8533    /// <summary>
8534    /// The value of the uninterpreted option, in whatever type the tokenizer
8535    /// identified it as during parsing. Exactly one of these should be set.
8536    /// </summary>
8537    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8538    public string IdentifierValue {
8539      get { return identifierValue_ ?? IdentifierValueDefaultValue; }
8540      set {
8541        identifierValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
8542      }
8543    }
8544    /// <summary>Gets whether the "identifier_value" field is set</summary>
8545    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8546    public bool HasIdentifierValue {
8547      get { return identifierValue_ != null; }
8548    }
8549    /// <summary>Clears the value of the "identifier_value" field</summary>
8550    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8551    public void ClearIdentifierValue() {
8552      identifierValue_ = null;
8553    }
8554
8555    /// <summary>Field number for the "positive_int_value" field.</summary>
8556    public const int PositiveIntValueFieldNumber = 4;
8557    private readonly static ulong PositiveIntValueDefaultValue = 0UL;
8558
8559    private ulong positiveIntValue_;
8560    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8561    public ulong PositiveIntValue {
8562      get { if ((_hasBits0 & 1) != 0) { return positiveIntValue_; } else { return PositiveIntValueDefaultValue; } }
8563      set {
8564        _hasBits0 |= 1;
8565        positiveIntValue_ = value;
8566      }
8567    }
8568    /// <summary>Gets whether the "positive_int_value" field is set</summary>
8569    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8570    public bool HasPositiveIntValue {
8571      get { return (_hasBits0 & 1) != 0; }
8572    }
8573    /// <summary>Clears the value of the "positive_int_value" field</summary>
8574    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8575    public void ClearPositiveIntValue() {
8576      _hasBits0 &= ~1;
8577    }
8578
8579    /// <summary>Field number for the "negative_int_value" field.</summary>
8580    public const int NegativeIntValueFieldNumber = 5;
8581    private readonly static long NegativeIntValueDefaultValue = 0L;
8582
8583    private long negativeIntValue_;
8584    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8585    public long NegativeIntValue {
8586      get { if ((_hasBits0 & 2) != 0) { return negativeIntValue_; } else { return NegativeIntValueDefaultValue; } }
8587      set {
8588        _hasBits0 |= 2;
8589        negativeIntValue_ = value;
8590      }
8591    }
8592    /// <summary>Gets whether the "negative_int_value" field is set</summary>
8593    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8594    public bool HasNegativeIntValue {
8595      get { return (_hasBits0 & 2) != 0; }
8596    }
8597    /// <summary>Clears the value of the "negative_int_value" field</summary>
8598    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8599    public void ClearNegativeIntValue() {
8600      _hasBits0 &= ~2;
8601    }
8602
8603    /// <summary>Field number for the "double_value" field.</summary>
8604    public const int DoubleValueFieldNumber = 6;
8605    private readonly static double DoubleValueDefaultValue = 0D;
8606
8607    private double doubleValue_;
8608    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8609    public double DoubleValue {
8610      get { if ((_hasBits0 & 4) != 0) { return doubleValue_; } else { return DoubleValueDefaultValue; } }
8611      set {
8612        _hasBits0 |= 4;
8613        doubleValue_ = value;
8614      }
8615    }
8616    /// <summary>Gets whether the "double_value" field is set</summary>
8617    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8618    public bool HasDoubleValue {
8619      get { return (_hasBits0 & 4) != 0; }
8620    }
8621    /// <summary>Clears the value of the "double_value" field</summary>
8622    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8623    public void ClearDoubleValue() {
8624      _hasBits0 &= ~4;
8625    }
8626
8627    /// <summary>Field number for the "string_value" field.</summary>
8628    public const int StringValueFieldNumber = 7;
8629    private readonly static pb::ByteString StringValueDefaultValue = pb::ByteString.Empty;
8630
8631    private pb::ByteString stringValue_;
8632    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8633    public pb::ByteString StringValue {
8634      get { return stringValue_ ?? StringValueDefaultValue; }
8635      set {
8636        stringValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
8637      }
8638    }
8639    /// <summary>Gets whether the "string_value" field is set</summary>
8640    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8641    public bool HasStringValue {
8642      get { return stringValue_ != null; }
8643    }
8644    /// <summary>Clears the value of the "string_value" field</summary>
8645    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8646    public void ClearStringValue() {
8647      stringValue_ = null;
8648    }
8649
8650    /// <summary>Field number for the "aggregate_value" field.</summary>
8651    public const int AggregateValueFieldNumber = 8;
8652    private readonly static string AggregateValueDefaultValue = "";
8653
8654    private string aggregateValue_;
8655    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8656    public string AggregateValue {
8657      get { return aggregateValue_ ?? AggregateValueDefaultValue; }
8658      set {
8659        aggregateValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
8660      }
8661    }
8662    /// <summary>Gets whether the "aggregate_value" field is set</summary>
8663    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8664    public bool HasAggregateValue {
8665      get { return aggregateValue_ != null; }
8666    }
8667    /// <summary>Clears the value of the "aggregate_value" field</summary>
8668    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8669    public void ClearAggregateValue() {
8670      aggregateValue_ = null;
8671    }
8672
8673    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8674    public override bool Equals(object other) {
8675      return Equals(other as UninterpretedOption);
8676    }
8677
8678    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8679    public bool Equals(UninterpretedOption other) {
8680      if (ReferenceEquals(other, null)) {
8681        return false;
8682      }
8683      if (ReferenceEquals(other, this)) {
8684        return true;
8685      }
8686      if(!name_.Equals(other.name_)) return false;
8687      if (IdentifierValue != other.IdentifierValue) return false;
8688      if (PositiveIntValue != other.PositiveIntValue) return false;
8689      if (NegativeIntValue != other.NegativeIntValue) return false;
8690      if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(DoubleValue, other.DoubleValue)) return false;
8691      if (StringValue != other.StringValue) return false;
8692      if (AggregateValue != other.AggregateValue) return false;
8693      return Equals(_unknownFields, other._unknownFields);
8694    }
8695
8696    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8697    public override int GetHashCode() {
8698      int hash = 1;
8699      hash ^= name_.GetHashCode();
8700      if (HasIdentifierValue) hash ^= IdentifierValue.GetHashCode();
8701      if (HasPositiveIntValue) hash ^= PositiveIntValue.GetHashCode();
8702      if (HasNegativeIntValue) hash ^= NegativeIntValue.GetHashCode();
8703      if (HasDoubleValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(DoubleValue);
8704      if (HasStringValue) hash ^= StringValue.GetHashCode();
8705      if (HasAggregateValue) hash ^= AggregateValue.GetHashCode();
8706      if (_unknownFields != null) {
8707        hash ^= _unknownFields.GetHashCode();
8708      }
8709      return hash;
8710    }
8711
8712    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8713    public override string ToString() {
8714      return pb::JsonFormatter.ToDiagnosticString(this);
8715    }
8716
8717    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8718    public void WriteTo(pb::CodedOutputStream output) {
8719    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8720      output.WriteRawMessage(this);
8721    #else
8722      name_.WriteTo(output, _repeated_name_codec);
8723      if (HasIdentifierValue) {
8724        output.WriteRawTag(26);
8725        output.WriteString(IdentifierValue);
8726      }
8727      if (HasPositiveIntValue) {
8728        output.WriteRawTag(32);
8729        output.WriteUInt64(PositiveIntValue);
8730      }
8731      if (HasNegativeIntValue) {
8732        output.WriteRawTag(40);
8733        output.WriteInt64(NegativeIntValue);
8734      }
8735      if (HasDoubleValue) {
8736        output.WriteRawTag(49);
8737        output.WriteDouble(DoubleValue);
8738      }
8739      if (HasStringValue) {
8740        output.WriteRawTag(58);
8741        output.WriteBytes(StringValue);
8742      }
8743      if (HasAggregateValue) {
8744        output.WriteRawTag(66);
8745        output.WriteString(AggregateValue);
8746      }
8747      if (_unknownFields != null) {
8748        _unknownFields.WriteTo(output);
8749      }
8750    #endif
8751    }
8752
8753    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8754    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8755    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
8756      name_.WriteTo(ref output, _repeated_name_codec);
8757      if (HasIdentifierValue) {
8758        output.WriteRawTag(26);
8759        output.WriteString(IdentifierValue);
8760      }
8761      if (HasPositiveIntValue) {
8762        output.WriteRawTag(32);
8763        output.WriteUInt64(PositiveIntValue);
8764      }
8765      if (HasNegativeIntValue) {
8766        output.WriteRawTag(40);
8767        output.WriteInt64(NegativeIntValue);
8768      }
8769      if (HasDoubleValue) {
8770        output.WriteRawTag(49);
8771        output.WriteDouble(DoubleValue);
8772      }
8773      if (HasStringValue) {
8774        output.WriteRawTag(58);
8775        output.WriteBytes(StringValue);
8776      }
8777      if (HasAggregateValue) {
8778        output.WriteRawTag(66);
8779        output.WriteString(AggregateValue);
8780      }
8781      if (_unknownFields != null) {
8782        _unknownFields.WriteTo(ref output);
8783      }
8784    }
8785    #endif
8786
8787    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8788    public int CalculateSize() {
8789      int size = 0;
8790      size += name_.CalculateSize(_repeated_name_codec);
8791      if (HasIdentifierValue) {
8792        size += 1 + pb::CodedOutputStream.ComputeStringSize(IdentifierValue);
8793      }
8794      if (HasPositiveIntValue) {
8795        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PositiveIntValue);
8796      }
8797      if (HasNegativeIntValue) {
8798        size += 1 + pb::CodedOutputStream.ComputeInt64Size(NegativeIntValue);
8799      }
8800      if (HasDoubleValue) {
8801        size += 1 + 8;
8802      }
8803      if (HasStringValue) {
8804        size += 1 + pb::CodedOutputStream.ComputeBytesSize(StringValue);
8805      }
8806      if (HasAggregateValue) {
8807        size += 1 + pb::CodedOutputStream.ComputeStringSize(AggregateValue);
8808      }
8809      if (_unknownFields != null) {
8810        size += _unknownFields.CalculateSize();
8811      }
8812      return size;
8813    }
8814
8815    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8816    public void MergeFrom(UninterpretedOption other) {
8817      if (other == null) {
8818        return;
8819      }
8820      name_.Add(other.name_);
8821      if (other.HasIdentifierValue) {
8822        IdentifierValue = other.IdentifierValue;
8823      }
8824      if (other.HasPositiveIntValue) {
8825        PositiveIntValue = other.PositiveIntValue;
8826      }
8827      if (other.HasNegativeIntValue) {
8828        NegativeIntValue = other.NegativeIntValue;
8829      }
8830      if (other.HasDoubleValue) {
8831        DoubleValue = other.DoubleValue;
8832      }
8833      if (other.HasStringValue) {
8834        StringValue = other.StringValue;
8835      }
8836      if (other.HasAggregateValue) {
8837        AggregateValue = other.AggregateValue;
8838      }
8839      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
8840    }
8841
8842    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8843    public void MergeFrom(pb::CodedInputStream input) {
8844    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8845      input.ReadRawMessage(this);
8846    #else
8847      uint tag;
8848      while ((tag = input.ReadTag()) != 0) {
8849        switch(tag) {
8850          default:
8851            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
8852            break;
8853          case 18: {
8854            name_.AddEntriesFrom(input, _repeated_name_codec);
8855            break;
8856          }
8857          case 26: {
8858            IdentifierValue = input.ReadString();
8859            break;
8860          }
8861          case 32: {
8862            PositiveIntValue = input.ReadUInt64();
8863            break;
8864          }
8865          case 40: {
8866            NegativeIntValue = input.ReadInt64();
8867            break;
8868          }
8869          case 49: {
8870            DoubleValue = input.ReadDouble();
8871            break;
8872          }
8873          case 58: {
8874            StringValue = input.ReadBytes();
8875            break;
8876          }
8877          case 66: {
8878            AggregateValue = input.ReadString();
8879            break;
8880          }
8881        }
8882      }
8883    #endif
8884    }
8885
8886    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8887    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8888    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
8889      uint tag;
8890      while ((tag = input.ReadTag()) != 0) {
8891        switch(tag) {
8892          default:
8893            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
8894            break;
8895          case 18: {
8896            name_.AddEntriesFrom(ref input, _repeated_name_codec);
8897            break;
8898          }
8899          case 26: {
8900            IdentifierValue = input.ReadString();
8901            break;
8902          }
8903          case 32: {
8904            PositiveIntValue = input.ReadUInt64();
8905            break;
8906          }
8907          case 40: {
8908            NegativeIntValue = input.ReadInt64();
8909            break;
8910          }
8911          case 49: {
8912            DoubleValue = input.ReadDouble();
8913            break;
8914          }
8915          case 58: {
8916            StringValue = input.ReadBytes();
8917            break;
8918          }
8919          case 66: {
8920            AggregateValue = input.ReadString();
8921            break;
8922          }
8923        }
8924      }
8925    }
8926    #endif
8927
8928    #region Nested types
8929    /// <summary>Container for nested types declared in the UninterpretedOption message type.</summary>
8930    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8931    public static partial class Types {
8932      /// <summary>
8933      /// The name of the uninterpreted option.  Each string represents a segment in
8934      /// a dot-separated name.  is_extension is true iff a segment represents an
8935      /// extension (denoted with parentheses in options specs in .proto files).
8936      /// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
8937      /// "foo.(bar.baz).qux".
8938      /// </summary>
8939      public sealed partial class NamePart : pb::IMessage<NamePart>
8940      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8941          , pb::IBufferMessage
8942      #endif
8943      {
8944        private static readonly pb::MessageParser<NamePart> _parser = new pb::MessageParser<NamePart>(() => new NamePart());
8945        private pb::UnknownFieldSet _unknownFields;
8946        private int _hasBits0;
8947        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8948        public static pb::MessageParser<NamePart> Parser { get { return _parser; } }
8949
8950        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8951        public static pbr::MessageDescriptor Descriptor {
8952          get { return global::Google.Protobuf.Reflection.UninterpretedOption.Descriptor.NestedTypes[0]; }
8953        }
8954
8955        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8956        pbr::MessageDescriptor pb::IMessage.Descriptor {
8957          get { return Descriptor; }
8958        }
8959
8960        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8961        public NamePart() {
8962          OnConstruction();
8963        }
8964
8965        partial void OnConstruction();
8966
8967        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8968        public NamePart(NamePart other) : this() {
8969          _hasBits0 = other._hasBits0;
8970          namePart_ = other.namePart_;
8971          isExtension_ = other.isExtension_;
8972          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
8973        }
8974
8975        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8976        public NamePart Clone() {
8977          return new NamePart(this);
8978        }
8979
8980        /// <summary>Field number for the "name_part" field.</summary>
8981        public const int NamePart_FieldNumber = 1;
8982        private readonly static string NamePart_DefaultValue = "";
8983
8984        private string namePart_;
8985        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8986        public string NamePart_ {
8987          get { return namePart_ ?? NamePart_DefaultValue; }
8988          set {
8989            namePart_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
8990          }
8991        }
8992        /// <summary>Gets whether the "name_part" field is set</summary>
8993        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8994        public bool HasNamePart_ {
8995          get { return namePart_ != null; }
8996        }
8997        /// <summary>Clears the value of the "name_part" field</summary>
8998        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8999        public void ClearNamePart_() {
9000          namePart_ = null;
9001        }
9002
9003        /// <summary>Field number for the "is_extension" field.</summary>
9004        public const int IsExtensionFieldNumber = 2;
9005        private readonly static bool IsExtensionDefaultValue = false;
9006
9007        private bool isExtension_;
9008        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9009        public bool IsExtension {
9010          get { if ((_hasBits0 & 1) != 0) { return isExtension_; } else { return IsExtensionDefaultValue; } }
9011          set {
9012            _hasBits0 |= 1;
9013            isExtension_ = value;
9014          }
9015        }
9016        /// <summary>Gets whether the "is_extension" field is set</summary>
9017        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9018        public bool HasIsExtension {
9019          get { return (_hasBits0 & 1) != 0; }
9020        }
9021        /// <summary>Clears the value of the "is_extension" field</summary>
9022        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9023        public void ClearIsExtension() {
9024          _hasBits0 &= ~1;
9025        }
9026
9027        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9028        public override bool Equals(object other) {
9029          return Equals(other as NamePart);
9030        }
9031
9032        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9033        public bool Equals(NamePart other) {
9034          if (ReferenceEquals(other, null)) {
9035            return false;
9036          }
9037          if (ReferenceEquals(other, this)) {
9038            return true;
9039          }
9040          if (NamePart_ != other.NamePart_) return false;
9041          if (IsExtension != other.IsExtension) return false;
9042          return Equals(_unknownFields, other._unknownFields);
9043        }
9044
9045        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9046        public override int GetHashCode() {
9047          int hash = 1;
9048          if (HasNamePart_) hash ^= NamePart_.GetHashCode();
9049          if (HasIsExtension) hash ^= IsExtension.GetHashCode();
9050          if (_unknownFields != null) {
9051            hash ^= _unknownFields.GetHashCode();
9052          }
9053          return hash;
9054        }
9055
9056        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9057        public override string ToString() {
9058          return pb::JsonFormatter.ToDiagnosticString(this);
9059        }
9060
9061        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9062        public void WriteTo(pb::CodedOutputStream output) {
9063        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9064          output.WriteRawMessage(this);
9065        #else
9066          if (HasNamePart_) {
9067            output.WriteRawTag(10);
9068            output.WriteString(NamePart_);
9069          }
9070          if (HasIsExtension) {
9071            output.WriteRawTag(16);
9072            output.WriteBool(IsExtension);
9073          }
9074          if (_unknownFields != null) {
9075            _unknownFields.WriteTo(output);
9076          }
9077        #endif
9078        }
9079
9080        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9081        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9082        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9083          if (HasNamePart_) {
9084            output.WriteRawTag(10);
9085            output.WriteString(NamePart_);
9086          }
9087          if (HasIsExtension) {
9088            output.WriteRawTag(16);
9089            output.WriteBool(IsExtension);
9090          }
9091          if (_unknownFields != null) {
9092            _unknownFields.WriteTo(ref output);
9093          }
9094        }
9095        #endif
9096
9097        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9098        public int CalculateSize() {
9099          int size = 0;
9100          if (HasNamePart_) {
9101            size += 1 + pb::CodedOutputStream.ComputeStringSize(NamePart_);
9102          }
9103          if (HasIsExtension) {
9104            size += 1 + 1;
9105          }
9106          if (_unknownFields != null) {
9107            size += _unknownFields.CalculateSize();
9108          }
9109          return size;
9110        }
9111
9112        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9113        public void MergeFrom(NamePart other) {
9114          if (other == null) {
9115            return;
9116          }
9117          if (other.HasNamePart_) {
9118            NamePart_ = other.NamePart_;
9119          }
9120          if (other.HasIsExtension) {
9121            IsExtension = other.IsExtension;
9122          }
9123          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9124        }
9125
9126        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9127        public void MergeFrom(pb::CodedInputStream input) {
9128        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9129          input.ReadRawMessage(this);
9130        #else
9131          uint tag;
9132          while ((tag = input.ReadTag()) != 0) {
9133            switch(tag) {
9134              default:
9135                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9136                break;
9137              case 10: {
9138                NamePart_ = input.ReadString();
9139                break;
9140              }
9141              case 16: {
9142                IsExtension = input.ReadBool();
9143                break;
9144              }
9145            }
9146          }
9147        #endif
9148        }
9149
9150        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9151        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9152        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9153          uint tag;
9154          while ((tag = input.ReadTag()) != 0) {
9155            switch(tag) {
9156              default:
9157                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9158                break;
9159              case 10: {
9160                NamePart_ = input.ReadString();
9161                break;
9162              }
9163              case 16: {
9164                IsExtension = input.ReadBool();
9165                break;
9166              }
9167            }
9168          }
9169        }
9170        #endif
9171
9172      }
9173
9174    }
9175    #endregion
9176
9177  }
9178
9179  /// <summary>
9180  /// Encapsulates information about the original source file from which a
9181  /// FileDescriptorProto was generated.
9182  /// </summary>
9183  public sealed partial class SourceCodeInfo : pb::IMessage<SourceCodeInfo>
9184  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9185      , pb::IBufferMessage
9186  #endif
9187  {
9188    private static readonly pb::MessageParser<SourceCodeInfo> _parser = new pb::MessageParser<SourceCodeInfo>(() => new SourceCodeInfo());
9189    private pb::UnknownFieldSet _unknownFields;
9190    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9191    public static pb::MessageParser<SourceCodeInfo> Parser { get { return _parser; } }
9192
9193    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9194    public static pbr::MessageDescriptor Descriptor {
9195      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[19]; }
9196    }
9197
9198    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9199    pbr::MessageDescriptor pb::IMessage.Descriptor {
9200      get { return Descriptor; }
9201    }
9202
9203    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9204    public SourceCodeInfo() {
9205      OnConstruction();
9206    }
9207
9208    partial void OnConstruction();
9209
9210    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9211    public SourceCodeInfo(SourceCodeInfo other) : this() {
9212      location_ = other.location_.Clone();
9213      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9214    }
9215
9216    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9217    public SourceCodeInfo Clone() {
9218      return new SourceCodeInfo(this);
9219    }
9220
9221    /// <summary>Field number for the "location" field.</summary>
9222    public const int LocationFieldNumber = 1;
9223    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> _repeated_location_codec
9224        = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Parser);
9225    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> location_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location>();
9226    /// <summary>
9227    /// A Location identifies a piece of source code in a .proto file which
9228    /// corresponds to a particular definition.  This information is intended
9229    /// to be useful to IDEs, code indexers, documentation generators, and similar
9230    /// tools.
9231    ///
9232    /// For example, say we have a file like:
9233    ///   message Foo {
9234    ///     optional string foo = 1;
9235    ///   }
9236    /// Let's look at just the field definition:
9237    ///   optional string foo = 1;
9238    ///   ^       ^^     ^^  ^  ^^^
9239    ///   a       bc     de  f  ghi
9240    /// We have the following locations:
9241    ///   span   path               represents
9242    ///   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.
9243    ///   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).
9244    ///   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).
9245    ///   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).
9246    ///   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).
9247    ///
9248    /// Notes:
9249    /// - A location may refer to a repeated field itself (i.e. not to any
9250    ///   particular index within it).  This is used whenever a set of elements are
9251    ///   logically enclosed in a single code segment.  For example, an entire
9252    ///   extend block (possibly containing multiple extension definitions) will
9253    ///   have an outer location whose path refers to the "extensions" repeated
9254    ///   field without an index.
9255    /// - Multiple locations may have the same path.  This happens when a single
9256    ///   logical declaration is spread out across multiple places.  The most
9257    ///   obvious example is the "extend" block again -- there may be multiple
9258    ///   extend blocks in the same scope, each of which will have the same path.
9259    /// - A location's span is not always a subset of its parent's span.  For
9260    ///   example, the "extendee" of an extension declaration appears at the
9261    ///   beginning of the "extend" block and is shared by all extensions within
9262    ///   the block.
9263    /// - Just because a location's span is a subset of some other location's span
9264    ///   does not mean that it is a descendant.  For example, a "group" defines
9265    ///   both a type and a field in a single declaration.  Thus, the locations
9266    ///   corresponding to the type and field and their components will overlap.
9267    /// - Code which tries to interpret locations should probably be designed to
9268    ///   ignore those that it doesn't understand, as more types of locations could
9269    ///   be recorded in the future.
9270    /// </summary>
9271    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9272    public pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> Location {
9273      get { return location_; }
9274    }
9275
9276    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9277    public override bool Equals(object other) {
9278      return Equals(other as SourceCodeInfo);
9279    }
9280
9281    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9282    public bool Equals(SourceCodeInfo other) {
9283      if (ReferenceEquals(other, null)) {
9284        return false;
9285      }
9286      if (ReferenceEquals(other, this)) {
9287        return true;
9288      }
9289      if(!location_.Equals(other.location_)) return false;
9290      return Equals(_unknownFields, other._unknownFields);
9291    }
9292
9293    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9294    public override int GetHashCode() {
9295      int hash = 1;
9296      hash ^= location_.GetHashCode();
9297      if (_unknownFields != null) {
9298        hash ^= _unknownFields.GetHashCode();
9299      }
9300      return hash;
9301    }
9302
9303    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9304    public override string ToString() {
9305      return pb::JsonFormatter.ToDiagnosticString(this);
9306    }
9307
9308    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9309    public void WriteTo(pb::CodedOutputStream output) {
9310    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9311      output.WriteRawMessage(this);
9312    #else
9313      location_.WriteTo(output, _repeated_location_codec);
9314      if (_unknownFields != null) {
9315        _unknownFields.WriteTo(output);
9316      }
9317    #endif
9318    }
9319
9320    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9321    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9322    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9323      location_.WriteTo(ref output, _repeated_location_codec);
9324      if (_unknownFields != null) {
9325        _unknownFields.WriteTo(ref output);
9326      }
9327    }
9328    #endif
9329
9330    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9331    public int CalculateSize() {
9332      int size = 0;
9333      size += location_.CalculateSize(_repeated_location_codec);
9334      if (_unknownFields != null) {
9335        size += _unknownFields.CalculateSize();
9336      }
9337      return size;
9338    }
9339
9340    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9341    public void MergeFrom(SourceCodeInfo other) {
9342      if (other == null) {
9343        return;
9344      }
9345      location_.Add(other.location_);
9346      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9347    }
9348
9349    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9350    public void MergeFrom(pb::CodedInputStream input) {
9351    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9352      input.ReadRawMessage(this);
9353    #else
9354      uint tag;
9355      while ((tag = input.ReadTag()) != 0) {
9356        switch(tag) {
9357          default:
9358            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9359            break;
9360          case 10: {
9361            location_.AddEntriesFrom(input, _repeated_location_codec);
9362            break;
9363          }
9364        }
9365      }
9366    #endif
9367    }
9368
9369    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9370    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9371    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9372      uint tag;
9373      while ((tag = input.ReadTag()) != 0) {
9374        switch(tag) {
9375          default:
9376            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9377            break;
9378          case 10: {
9379            location_.AddEntriesFrom(ref input, _repeated_location_codec);
9380            break;
9381          }
9382        }
9383      }
9384    }
9385    #endif
9386
9387    #region Nested types
9388    /// <summary>Container for nested types declared in the SourceCodeInfo message type.</summary>
9389    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9390    public static partial class Types {
9391      public sealed partial class Location : pb::IMessage<Location>
9392      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9393          , pb::IBufferMessage
9394      #endif
9395      {
9396        private static readonly pb::MessageParser<Location> _parser = new pb::MessageParser<Location>(() => new Location());
9397        private pb::UnknownFieldSet _unknownFields;
9398        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9399        public static pb::MessageParser<Location> Parser { get { return _parser; } }
9400
9401        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9402        public static pbr::MessageDescriptor Descriptor {
9403          get { return global::Google.Protobuf.Reflection.SourceCodeInfo.Descriptor.NestedTypes[0]; }
9404        }
9405
9406        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9407        pbr::MessageDescriptor pb::IMessage.Descriptor {
9408          get { return Descriptor; }
9409        }
9410
9411        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9412        public Location() {
9413          OnConstruction();
9414        }
9415
9416        partial void OnConstruction();
9417
9418        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9419        public Location(Location other) : this() {
9420          path_ = other.path_.Clone();
9421          span_ = other.span_.Clone();
9422          leadingComments_ = other.leadingComments_;
9423          trailingComments_ = other.trailingComments_;
9424          leadingDetachedComments_ = other.leadingDetachedComments_.Clone();
9425          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9426        }
9427
9428        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9429        public Location Clone() {
9430          return new Location(this);
9431        }
9432
9433        /// <summary>Field number for the "path" field.</summary>
9434        public const int PathFieldNumber = 1;
9435        private static readonly pb::FieldCodec<int> _repeated_path_codec
9436            = pb::FieldCodec.ForInt32(10);
9437        private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();
9438        /// <summary>
9439        /// Identifies which part of the FileDescriptorProto was defined at this
9440        /// location.
9441        ///
9442        /// Each element is a field number or an index.  They form a path from
9443        /// the root FileDescriptorProto to the place where the definition.  For
9444        /// example, this path:
9445        ///   [ 4, 3, 2, 7, 1 ]
9446        /// refers to:
9447        ///   file.message_type(3)  // 4, 3
9448        ///       .field(7)         // 2, 7
9449        ///       .name()           // 1
9450        /// This is because FileDescriptorProto.message_type has field number 4:
9451        ///   repeated DescriptorProto message_type = 4;
9452        /// and DescriptorProto.field has field number 2:
9453        ///   repeated FieldDescriptorProto field = 2;
9454        /// and FieldDescriptorProto.name has field number 1:
9455        ///   optional string name = 1;
9456        ///
9457        /// Thus, the above path gives the location of a field name.  If we removed
9458        /// the last element:
9459        ///   [ 4, 3, 2, 7 ]
9460        /// this path refers to the whole field declaration (from the beginning
9461        /// of the label to the terminating semicolon).
9462        /// </summary>
9463        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9464        public pbc::RepeatedField<int> Path {
9465          get { return path_; }
9466        }
9467
9468        /// <summary>Field number for the "span" field.</summary>
9469        public const int SpanFieldNumber = 2;
9470        private static readonly pb::FieldCodec<int> _repeated_span_codec
9471            = pb::FieldCodec.ForInt32(18);
9472        private readonly pbc::RepeatedField<int> span_ = new pbc::RepeatedField<int>();
9473        /// <summary>
9474        /// Always has exactly three or four elements: start line, start column,
9475        /// end line (optional, otherwise assumed same as start line), end column.
9476        /// These are packed into a single field for efficiency.  Note that line
9477        /// and column numbers are zero-based -- typically you will want to add
9478        /// 1 to each before displaying to a user.
9479        /// </summary>
9480        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9481        public pbc::RepeatedField<int> Span {
9482          get { return span_; }
9483        }
9484
9485        /// <summary>Field number for the "leading_comments" field.</summary>
9486        public const int LeadingCommentsFieldNumber = 3;
9487        private readonly static string LeadingCommentsDefaultValue = "";
9488
9489        private string leadingComments_;
9490        /// <summary>
9491        /// If this SourceCodeInfo represents a complete declaration, these are any
9492        /// comments appearing before and after the declaration which appear to be
9493        /// attached to the declaration.
9494        ///
9495        /// A series of line comments appearing on consecutive lines, with no other
9496        /// tokens appearing on those lines, will be treated as a single comment.
9497        ///
9498        /// leading_detached_comments will keep paragraphs of comments that appear
9499        /// before (but not connected to) the current element. Each paragraph,
9500        /// separated by empty lines, will be one comment element in the repeated
9501        /// field.
9502        ///
9503        /// Only the comment content is provided; comment markers (e.g. //) are
9504        /// stripped out.  For block comments, leading whitespace and an asterisk
9505        /// will be stripped from the beginning of each line other than the first.
9506        /// Newlines are included in the output.
9507        ///
9508        /// Examples:
9509        ///
9510        ///   optional int32 foo = 1;  // Comment attached to foo.
9511        ///   // Comment attached to bar.
9512        ///   optional int32 bar = 2;
9513        ///
9514        ///   optional string baz = 3;
9515        ///   // Comment attached to baz.
9516        ///   // Another line attached to baz.
9517        ///
9518        ///   // Comment attached to qux.
9519        ///   //
9520        ///   // Another line attached to qux.
9521        ///   optional double qux = 4;
9522        ///
9523        ///   // Detached comment for corge. This is not leading or trailing comments
9524        ///   // to qux or corge because there are blank lines separating it from
9525        ///   // both.
9526        ///
9527        ///   // Detached comment for corge paragraph 2.
9528        ///
9529        ///   optional string corge = 5;
9530        ///   /* Block comment attached
9531        ///    * to corge.  Leading asterisks
9532        ///    * will be removed. */
9533        ///   /* Block comment attached to
9534        ///    * grault. */
9535        ///   optional int32 grault = 6;
9536        ///
9537        ///   // ignored detached comments.
9538        /// </summary>
9539        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9540        public string LeadingComments {
9541          get { return leadingComments_ ?? LeadingCommentsDefaultValue; }
9542          set {
9543            leadingComments_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
9544          }
9545        }
9546        /// <summary>Gets whether the "leading_comments" field is set</summary>
9547        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9548        public bool HasLeadingComments {
9549          get { return leadingComments_ != null; }
9550        }
9551        /// <summary>Clears the value of the "leading_comments" field</summary>
9552        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9553        public void ClearLeadingComments() {
9554          leadingComments_ = null;
9555        }
9556
9557        /// <summary>Field number for the "trailing_comments" field.</summary>
9558        public const int TrailingCommentsFieldNumber = 4;
9559        private readonly static string TrailingCommentsDefaultValue = "";
9560
9561        private string trailingComments_;
9562        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9563        public string TrailingComments {
9564          get { return trailingComments_ ?? TrailingCommentsDefaultValue; }
9565          set {
9566            trailingComments_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
9567          }
9568        }
9569        /// <summary>Gets whether the "trailing_comments" field is set</summary>
9570        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9571        public bool HasTrailingComments {
9572          get { return trailingComments_ != null; }
9573        }
9574        /// <summary>Clears the value of the "trailing_comments" field</summary>
9575        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9576        public void ClearTrailingComments() {
9577          trailingComments_ = null;
9578        }
9579
9580        /// <summary>Field number for the "leading_detached_comments" field.</summary>
9581        public const int LeadingDetachedCommentsFieldNumber = 6;
9582        private static readonly pb::FieldCodec<string> _repeated_leadingDetachedComments_codec
9583            = pb::FieldCodec.ForString(50);
9584        private readonly pbc::RepeatedField<string> leadingDetachedComments_ = new pbc::RepeatedField<string>();
9585        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9586        public pbc::RepeatedField<string> LeadingDetachedComments {
9587          get { return leadingDetachedComments_; }
9588        }
9589
9590        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9591        public override bool Equals(object other) {
9592          return Equals(other as Location);
9593        }
9594
9595        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9596        public bool Equals(Location other) {
9597          if (ReferenceEquals(other, null)) {
9598            return false;
9599          }
9600          if (ReferenceEquals(other, this)) {
9601            return true;
9602          }
9603          if(!path_.Equals(other.path_)) return false;
9604          if(!span_.Equals(other.span_)) return false;
9605          if (LeadingComments != other.LeadingComments) return false;
9606          if (TrailingComments != other.TrailingComments) return false;
9607          if(!leadingDetachedComments_.Equals(other.leadingDetachedComments_)) return false;
9608          return Equals(_unknownFields, other._unknownFields);
9609        }
9610
9611        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9612        public override int GetHashCode() {
9613          int hash = 1;
9614          hash ^= path_.GetHashCode();
9615          hash ^= span_.GetHashCode();
9616          if (HasLeadingComments) hash ^= LeadingComments.GetHashCode();
9617          if (HasTrailingComments) hash ^= TrailingComments.GetHashCode();
9618          hash ^= leadingDetachedComments_.GetHashCode();
9619          if (_unknownFields != null) {
9620            hash ^= _unknownFields.GetHashCode();
9621          }
9622          return hash;
9623        }
9624
9625        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9626        public override string ToString() {
9627          return pb::JsonFormatter.ToDiagnosticString(this);
9628        }
9629
9630        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9631        public void WriteTo(pb::CodedOutputStream output) {
9632        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9633          output.WriteRawMessage(this);
9634        #else
9635          path_.WriteTo(output, _repeated_path_codec);
9636          span_.WriteTo(output, _repeated_span_codec);
9637          if (HasLeadingComments) {
9638            output.WriteRawTag(26);
9639            output.WriteString(LeadingComments);
9640          }
9641          if (HasTrailingComments) {
9642            output.WriteRawTag(34);
9643            output.WriteString(TrailingComments);
9644          }
9645          leadingDetachedComments_.WriteTo(output, _repeated_leadingDetachedComments_codec);
9646          if (_unknownFields != null) {
9647            _unknownFields.WriteTo(output);
9648          }
9649        #endif
9650        }
9651
9652        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9653        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9654        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9655          path_.WriteTo(ref output, _repeated_path_codec);
9656          span_.WriteTo(ref output, _repeated_span_codec);
9657          if (HasLeadingComments) {
9658            output.WriteRawTag(26);
9659            output.WriteString(LeadingComments);
9660          }
9661          if (HasTrailingComments) {
9662            output.WriteRawTag(34);
9663            output.WriteString(TrailingComments);
9664          }
9665          leadingDetachedComments_.WriteTo(ref output, _repeated_leadingDetachedComments_codec);
9666          if (_unknownFields != null) {
9667            _unknownFields.WriteTo(ref output);
9668          }
9669        }
9670        #endif
9671
9672        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9673        public int CalculateSize() {
9674          int size = 0;
9675          size += path_.CalculateSize(_repeated_path_codec);
9676          size += span_.CalculateSize(_repeated_span_codec);
9677          if (HasLeadingComments) {
9678            size += 1 + pb::CodedOutputStream.ComputeStringSize(LeadingComments);
9679          }
9680          if (HasTrailingComments) {
9681            size += 1 + pb::CodedOutputStream.ComputeStringSize(TrailingComments);
9682          }
9683          size += leadingDetachedComments_.CalculateSize(_repeated_leadingDetachedComments_codec);
9684          if (_unknownFields != null) {
9685            size += _unknownFields.CalculateSize();
9686          }
9687          return size;
9688        }
9689
9690        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9691        public void MergeFrom(Location other) {
9692          if (other == null) {
9693            return;
9694          }
9695          path_.Add(other.path_);
9696          span_.Add(other.span_);
9697          if (other.HasLeadingComments) {
9698            LeadingComments = other.LeadingComments;
9699          }
9700          if (other.HasTrailingComments) {
9701            TrailingComments = other.TrailingComments;
9702          }
9703          leadingDetachedComments_.Add(other.leadingDetachedComments_);
9704          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9705        }
9706
9707        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9708        public void MergeFrom(pb::CodedInputStream input) {
9709        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9710          input.ReadRawMessage(this);
9711        #else
9712          uint tag;
9713          while ((tag = input.ReadTag()) != 0) {
9714            switch(tag) {
9715              default:
9716                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9717                break;
9718              case 10:
9719              case 8: {
9720                path_.AddEntriesFrom(input, _repeated_path_codec);
9721                break;
9722              }
9723              case 18:
9724              case 16: {
9725                span_.AddEntriesFrom(input, _repeated_span_codec);
9726                break;
9727              }
9728              case 26: {
9729                LeadingComments = input.ReadString();
9730                break;
9731              }
9732              case 34: {
9733                TrailingComments = input.ReadString();
9734                break;
9735              }
9736              case 50: {
9737                leadingDetachedComments_.AddEntriesFrom(input, _repeated_leadingDetachedComments_codec);
9738                break;
9739              }
9740            }
9741          }
9742        #endif
9743        }
9744
9745        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9746        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9747        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9748          uint tag;
9749          while ((tag = input.ReadTag()) != 0) {
9750            switch(tag) {
9751              default:
9752                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9753                break;
9754              case 10:
9755              case 8: {
9756                path_.AddEntriesFrom(ref input, _repeated_path_codec);
9757                break;
9758              }
9759              case 18:
9760              case 16: {
9761                span_.AddEntriesFrom(ref input, _repeated_span_codec);
9762                break;
9763              }
9764              case 26: {
9765                LeadingComments = input.ReadString();
9766                break;
9767              }
9768              case 34: {
9769                TrailingComments = input.ReadString();
9770                break;
9771              }
9772              case 50: {
9773                leadingDetachedComments_.AddEntriesFrom(ref input, _repeated_leadingDetachedComments_codec);
9774                break;
9775              }
9776            }
9777          }
9778        }
9779        #endif
9780
9781      }
9782
9783    }
9784    #endregion
9785
9786  }
9787
9788  /// <summary>
9789  /// Describes the relationship between generated code and its original source
9790  /// file. A GeneratedCodeInfo message is associated with only one generated
9791  /// source file, but may contain references to different source .proto files.
9792  /// </summary>
9793  public sealed partial class GeneratedCodeInfo : pb::IMessage<GeneratedCodeInfo>
9794  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9795      , pb::IBufferMessage
9796  #endif
9797  {
9798    private static readonly pb::MessageParser<GeneratedCodeInfo> _parser = new pb::MessageParser<GeneratedCodeInfo>(() => new GeneratedCodeInfo());
9799    private pb::UnknownFieldSet _unknownFields;
9800    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9801    public static pb::MessageParser<GeneratedCodeInfo> Parser { get { return _parser; } }
9802
9803    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9804    public static pbr::MessageDescriptor Descriptor {
9805      get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[20]; }
9806    }
9807
9808    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9809    pbr::MessageDescriptor pb::IMessage.Descriptor {
9810      get { return Descriptor; }
9811    }
9812
9813    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9814    public GeneratedCodeInfo() {
9815      OnConstruction();
9816    }
9817
9818    partial void OnConstruction();
9819
9820    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9821    public GeneratedCodeInfo(GeneratedCodeInfo other) : this() {
9822      annotation_ = other.annotation_.Clone();
9823      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9824    }
9825
9826    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9827    public GeneratedCodeInfo Clone() {
9828      return new GeneratedCodeInfo(this);
9829    }
9830
9831    /// <summary>Field number for the "annotation" field.</summary>
9832    public const int AnnotationFieldNumber = 1;
9833    private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> _repeated_annotation_codec
9834        = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Parser);
9835    private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> annotation_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation>();
9836    /// <summary>
9837    /// An Annotation connects some span of text in generated code to an element
9838    /// of its generating .proto file.
9839    /// </summary>
9840    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9841    public pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> Annotation {
9842      get { return annotation_; }
9843    }
9844
9845    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9846    public override bool Equals(object other) {
9847      return Equals(other as GeneratedCodeInfo);
9848    }
9849
9850    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9851    public bool Equals(GeneratedCodeInfo other) {
9852      if (ReferenceEquals(other, null)) {
9853        return false;
9854      }
9855      if (ReferenceEquals(other, this)) {
9856        return true;
9857      }
9858      if(!annotation_.Equals(other.annotation_)) return false;
9859      return Equals(_unknownFields, other._unknownFields);
9860    }
9861
9862    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9863    public override int GetHashCode() {
9864      int hash = 1;
9865      hash ^= annotation_.GetHashCode();
9866      if (_unknownFields != null) {
9867        hash ^= _unknownFields.GetHashCode();
9868      }
9869      return hash;
9870    }
9871
9872    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9873    public override string ToString() {
9874      return pb::JsonFormatter.ToDiagnosticString(this);
9875    }
9876
9877    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9878    public void WriteTo(pb::CodedOutputStream output) {
9879    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9880      output.WriteRawMessage(this);
9881    #else
9882      annotation_.WriteTo(output, _repeated_annotation_codec);
9883      if (_unknownFields != null) {
9884        _unknownFields.WriteTo(output);
9885      }
9886    #endif
9887    }
9888
9889    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9890    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9891    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9892      annotation_.WriteTo(ref output, _repeated_annotation_codec);
9893      if (_unknownFields != null) {
9894        _unknownFields.WriteTo(ref output);
9895      }
9896    }
9897    #endif
9898
9899    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9900    public int CalculateSize() {
9901      int size = 0;
9902      size += annotation_.CalculateSize(_repeated_annotation_codec);
9903      if (_unknownFields != null) {
9904        size += _unknownFields.CalculateSize();
9905      }
9906      return size;
9907    }
9908
9909    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9910    public void MergeFrom(GeneratedCodeInfo other) {
9911      if (other == null) {
9912        return;
9913      }
9914      annotation_.Add(other.annotation_);
9915      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9916    }
9917
9918    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9919    public void MergeFrom(pb::CodedInputStream input) {
9920    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9921      input.ReadRawMessage(this);
9922    #else
9923      uint tag;
9924      while ((tag = input.ReadTag()) != 0) {
9925        switch(tag) {
9926          default:
9927            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9928            break;
9929          case 10: {
9930            annotation_.AddEntriesFrom(input, _repeated_annotation_codec);
9931            break;
9932          }
9933        }
9934      }
9935    #endif
9936    }
9937
9938    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9939    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9940    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9941      uint tag;
9942      while ((tag = input.ReadTag()) != 0) {
9943        switch(tag) {
9944          default:
9945            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9946            break;
9947          case 10: {
9948            annotation_.AddEntriesFrom(ref input, _repeated_annotation_codec);
9949            break;
9950          }
9951        }
9952      }
9953    }
9954    #endif
9955
9956    #region Nested types
9957    /// <summary>Container for nested types declared in the GeneratedCodeInfo message type.</summary>
9958    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9959    public static partial class Types {
9960      public sealed partial class Annotation : pb::IMessage<Annotation>
9961      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9962          , pb::IBufferMessage
9963      #endif
9964      {
9965        private static readonly pb::MessageParser<Annotation> _parser = new pb::MessageParser<Annotation>(() => new Annotation());
9966        private pb::UnknownFieldSet _unknownFields;
9967        private int _hasBits0;
9968        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9969        public static pb::MessageParser<Annotation> Parser { get { return _parser; } }
9970
9971        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9972        public static pbr::MessageDescriptor Descriptor {
9973          get { return global::Google.Protobuf.Reflection.GeneratedCodeInfo.Descriptor.NestedTypes[0]; }
9974        }
9975
9976        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9977        pbr::MessageDescriptor pb::IMessage.Descriptor {
9978          get { return Descriptor; }
9979        }
9980
9981        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9982        public Annotation() {
9983          OnConstruction();
9984        }
9985
9986        partial void OnConstruction();
9987
9988        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9989        public Annotation(Annotation other) : this() {
9990          _hasBits0 = other._hasBits0;
9991          path_ = other.path_.Clone();
9992          sourceFile_ = other.sourceFile_;
9993          begin_ = other.begin_;
9994          end_ = other.end_;
9995          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9996        }
9997
9998        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9999        public Annotation Clone() {
10000          return new Annotation(this);
10001        }
10002
10003        /// <summary>Field number for the "path" field.</summary>
10004        public const int PathFieldNumber = 1;
10005        private static readonly pb::FieldCodec<int> _repeated_path_codec
10006            = pb::FieldCodec.ForInt32(10);
10007        private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();
10008        /// <summary>
10009        /// Identifies the element in the original source .proto file. This field
10010        /// is formatted the same as SourceCodeInfo.Location.path.
10011        /// </summary>
10012        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10013        public pbc::RepeatedField<int> Path {
10014          get { return path_; }
10015        }
10016
10017        /// <summary>Field number for the "source_file" field.</summary>
10018        public const int SourceFileFieldNumber = 2;
10019        private readonly static string SourceFileDefaultValue = "";
10020
10021        private string sourceFile_;
10022        /// <summary>
10023        /// Identifies the filesystem path to the original source .proto.
10024        /// </summary>
10025        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10026        public string SourceFile {
10027          get { return sourceFile_ ?? SourceFileDefaultValue; }
10028          set {
10029            sourceFile_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
10030          }
10031        }
10032        /// <summary>Gets whether the "source_file" field is set</summary>
10033        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10034        public bool HasSourceFile {
10035          get { return sourceFile_ != null; }
10036        }
10037        /// <summary>Clears the value of the "source_file" field</summary>
10038        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10039        public void ClearSourceFile() {
10040          sourceFile_ = null;
10041        }
10042
10043        /// <summary>Field number for the "begin" field.</summary>
10044        public const int BeginFieldNumber = 3;
10045        private readonly static int BeginDefaultValue = 0;
10046
10047        private int begin_;
10048        /// <summary>
10049        /// Identifies the starting offset in bytes in the generated code
10050        /// that relates to the identified object.
10051        /// </summary>
10052        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10053        public int Begin {
10054          get { if ((_hasBits0 & 1) != 0) { return begin_; } else { return BeginDefaultValue; } }
10055          set {
10056            _hasBits0 |= 1;
10057            begin_ = value;
10058          }
10059        }
10060        /// <summary>Gets whether the "begin" field is set</summary>
10061        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10062        public bool HasBegin {
10063          get { return (_hasBits0 & 1) != 0; }
10064        }
10065        /// <summary>Clears the value of the "begin" field</summary>
10066        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10067        public void ClearBegin() {
10068          _hasBits0 &= ~1;
10069        }
10070
10071        /// <summary>Field number for the "end" field.</summary>
10072        public const int EndFieldNumber = 4;
10073        private readonly static int EndDefaultValue = 0;
10074
10075        private int end_;
10076        /// <summary>
10077        /// Identifies the ending offset in bytes in the generated code that
10078        /// relates to the identified offset. The end offset should be one past
10079        /// the last relevant byte (so the length of the text = end - begin).
10080        /// </summary>
10081        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10082        public int End {
10083          get { if ((_hasBits0 & 2) != 0) { return end_; } else { return EndDefaultValue; } }
10084          set {
10085            _hasBits0 |= 2;
10086            end_ = value;
10087          }
10088        }
10089        /// <summary>Gets whether the "end" field is set</summary>
10090        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10091        public bool HasEnd {
10092          get { return (_hasBits0 & 2) != 0; }
10093        }
10094        /// <summary>Clears the value of the "end" field</summary>
10095        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10096        public void ClearEnd() {
10097          _hasBits0 &= ~2;
10098        }
10099
10100        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10101        public override bool Equals(object other) {
10102          return Equals(other as Annotation);
10103        }
10104
10105        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10106        public bool Equals(Annotation other) {
10107          if (ReferenceEquals(other, null)) {
10108            return false;
10109          }
10110          if (ReferenceEquals(other, this)) {
10111            return true;
10112          }
10113          if(!path_.Equals(other.path_)) return false;
10114          if (SourceFile != other.SourceFile) return false;
10115          if (Begin != other.Begin) return false;
10116          if (End != other.End) return false;
10117          return Equals(_unknownFields, other._unknownFields);
10118        }
10119
10120        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10121        public override int GetHashCode() {
10122          int hash = 1;
10123          hash ^= path_.GetHashCode();
10124          if (HasSourceFile) hash ^= SourceFile.GetHashCode();
10125          if (HasBegin) hash ^= Begin.GetHashCode();
10126          if (HasEnd) hash ^= End.GetHashCode();
10127          if (_unknownFields != null) {
10128            hash ^= _unknownFields.GetHashCode();
10129          }
10130          return hash;
10131        }
10132
10133        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10134        public override string ToString() {
10135          return pb::JsonFormatter.ToDiagnosticString(this);
10136        }
10137
10138        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10139        public void WriteTo(pb::CodedOutputStream output) {
10140        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10141          output.WriteRawMessage(this);
10142        #else
10143          path_.WriteTo(output, _repeated_path_codec);
10144          if (HasSourceFile) {
10145            output.WriteRawTag(18);
10146            output.WriteString(SourceFile);
10147          }
10148          if (HasBegin) {
10149            output.WriteRawTag(24);
10150            output.WriteInt32(Begin);
10151          }
10152          if (HasEnd) {
10153            output.WriteRawTag(32);
10154            output.WriteInt32(End);
10155          }
10156          if (_unknownFields != null) {
10157            _unknownFields.WriteTo(output);
10158          }
10159        #endif
10160        }
10161
10162        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10163        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10164        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10165          path_.WriteTo(ref output, _repeated_path_codec);
10166          if (HasSourceFile) {
10167            output.WriteRawTag(18);
10168            output.WriteString(SourceFile);
10169          }
10170          if (HasBegin) {
10171            output.WriteRawTag(24);
10172            output.WriteInt32(Begin);
10173          }
10174          if (HasEnd) {
10175            output.WriteRawTag(32);
10176            output.WriteInt32(End);
10177          }
10178          if (_unknownFields != null) {
10179            _unknownFields.WriteTo(ref output);
10180          }
10181        }
10182        #endif
10183
10184        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10185        public int CalculateSize() {
10186          int size = 0;
10187          size += path_.CalculateSize(_repeated_path_codec);
10188          if (HasSourceFile) {
10189            size += 1 + pb::CodedOutputStream.ComputeStringSize(SourceFile);
10190          }
10191          if (HasBegin) {
10192            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Begin);
10193          }
10194          if (HasEnd) {
10195            size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
10196          }
10197          if (_unknownFields != null) {
10198            size += _unknownFields.CalculateSize();
10199          }
10200          return size;
10201        }
10202
10203        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10204        public void MergeFrom(Annotation other) {
10205          if (other == null) {
10206            return;
10207          }
10208          path_.Add(other.path_);
10209          if (other.HasSourceFile) {
10210            SourceFile = other.SourceFile;
10211          }
10212          if (other.HasBegin) {
10213            Begin = other.Begin;
10214          }
10215          if (other.HasEnd) {
10216            End = other.End;
10217          }
10218          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
10219        }
10220
10221        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10222        public void MergeFrom(pb::CodedInputStream input) {
10223        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10224          input.ReadRawMessage(this);
10225        #else
10226          uint tag;
10227          while ((tag = input.ReadTag()) != 0) {
10228            switch(tag) {
10229              default:
10230                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10231                break;
10232              case 10:
10233              case 8: {
10234                path_.AddEntriesFrom(input, _repeated_path_codec);
10235                break;
10236              }
10237              case 18: {
10238                SourceFile = input.ReadString();
10239                break;
10240              }
10241              case 24: {
10242                Begin = input.ReadInt32();
10243                break;
10244              }
10245              case 32: {
10246                End = input.ReadInt32();
10247                break;
10248              }
10249            }
10250          }
10251        #endif
10252        }
10253
10254        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10255        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10256        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10257          uint tag;
10258          while ((tag = input.ReadTag()) != 0) {
10259            switch(tag) {
10260              default:
10261                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10262                break;
10263              case 10:
10264              case 8: {
10265                path_.AddEntriesFrom(ref input, _repeated_path_codec);
10266                break;
10267              }
10268              case 18: {
10269                SourceFile = input.ReadString();
10270                break;
10271              }
10272              case 24: {
10273                Begin = input.ReadInt32();
10274                break;
10275              }
10276              case 32: {
10277                End = input.ReadInt32();
10278                break;
10279              }
10280            }
10281          }
10282        }
10283        #endif
10284
10285      }
10286
10287    }
10288    #endregion
10289
10290  }
10291
10292  #endregion
10293
10294}
10295
10296#endregion Designer generated code
10297