• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // <auto-generated>
2 //     Generated by the protocol buffer compiler.  DO NOT EDIT!
3 //     source: unittest.proto
4 // </auto-generated>
5 #pragma warning disable 1591, 0612, 3021
6 #region Designer generated code
7 
8 using pb = global::Google.Protobuf;
9 using pbc = global::Google.Protobuf.Collections;
10 using pbr = global::Google.Protobuf.Reflection;
11 using scg = global::System.Collections.Generic;
12 namespace Google.Protobuf.TestProtos.Proto2 {
13 
14   /// <summary>Holder for reflection information generated from unittest.proto</summary>
15   public static partial class UnittestReflection {
16 
17     #region Descriptor
18     /// <summary>File descriptor for unittest.proto</summary>
19     public static pbr::FileDescriptor Descriptor {
20       get { return descriptor; }
21     }
22     private static pbr::FileDescriptor descriptor;
23 
UnittestReflection()24     static UnittestReflection() {
25       byte[] descriptorData = global::System.Convert.FromBase64String(
26           string.Concat(
27             "Cg51bml0dGVzdC5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yGhV1",
28             "bml0dGVzdF9pbXBvcnQucHJvdG8igBoKDFRlc3RBbGxUeXBlcxIWCg5vcHRp",
29             "b25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25hbF9pbnQ2NBgCIAEoAxIXCg9v",
30             "cHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0aW9uYWxfdWludDY0GAQgASgE",
31             "EhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIXCg9vcHRpb25hbF9zaW50NjQY",
32             "BiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoBxIYChBvcHRpb25hbF9m",
33             "aXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPEhkKEW9w",
34             "dGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9wdGlvbmFsX2Zsb2F0GAsgASgC",
35             "EhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIVCg1vcHRpb25hbF9ib29sGA0g",
36             "ASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEoCRIWCg5vcHRpb25hbF9ieXRl",
37             "cxgPIAEoDBJLCg1vcHRpb25hbGdyb3VwGBAgASgKMjQucHJvdG9idWZfdW5p",
38             "dHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwElUKF29w",
39             "dGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjQucHJvdG9idWZfdW5pdHRl",
40             "c3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkoKGG9wdGlv",
41             "bmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0",
42             "X3Byb3RvMi5Gb3JlaWduTWVzc2FnZRJPChdvcHRpb25hbF9pbXBvcnRfbWVz",
43             "c2FnZRgUIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIu",
44             "SW1wb3J0TWVzc2FnZRJPChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIx",
45             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVk",
46             "RW51bRJEChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1",
47             "Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW0SSQoUb3B0aW9uYWxfaW1w",
48             "b3J0X2VudW0YFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJv",
49             "dG8yLkltcG9ydEVudW0SIQoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJ",
50             "QgIIAhIZCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIARJcCh5vcHRpb25hbF9w",
51             "dWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyNC5wcm90b2J1Zl91bml0dGVz",
52             "dF9pbXBvcnRfcHJvdG8yLlB1YmxpY0ltcG9ydE1lc3NhZ2USVwoVb3B0aW9u",
53             "YWxfbGF6eV9tZXNzYWdlGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJv",
54             "dG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoARIWCg5yZXBlYXRl",
55             "ZF9pbnQzMhgfIAMoBRIWCg5yZXBlYXRlZF9pbnQ2NBggIAMoAxIXCg9yZXBl",
56             "YXRlZF91aW50MzIYISADKA0SFwoPcmVwZWF0ZWRfdWludDY0GCIgAygEEhcK",
57             "D3JlcGVhdGVkX3NpbnQzMhgjIAMoERIXCg9yZXBlYXRlZF9zaW50NjQYJCAD",
58             "KBISGAoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoBxIYChByZXBlYXRlZF9maXhl",
59             "ZDY0GCYgAygGEhkKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPEhkKEXJlcGVh",
60             "dGVkX3NmaXhlZDY0GCggAygQEhYKDnJlcGVhdGVkX2Zsb2F0GCkgAygCEhcK",
61             "D3JlcGVhdGVkX2RvdWJsZRgqIAMoARIVCg1yZXBlYXRlZF9ib29sGCsgAygI",
62             "EhcKD3JlcGVhdGVkX3N0cmluZxgsIAMoCRIWCg5yZXBlYXRlZF9ieXRlcxgt",
63             "IAMoDBJLCg1yZXBlYXRlZGdyb3VwGC4gAygKMjQucHJvdG9idWZfdW5pdHRl",
64             "c3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwElUKF3JlcGVh",
65             "dGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3Rf",
66             "cHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkoKGHJlcGVhdGVk",
67             "X2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3By",
68             "b3RvMi5Gb3JlaWduTWVzc2FnZRJPChdyZXBlYXRlZF9pbXBvcnRfbWVzc2Fn",
69             "ZRgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1w",
70             "b3J0TWVzc2FnZRJPChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIxLnBy",
71             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51",
72             "bRJEChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yJS5wcm90b2J1Zl91",
73             "bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW0SSQoUcmVwZWF0ZWRfaW1wb3J0",
74             "X2VudW0YNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8y",
75             "LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgII",
76             "AhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJXChVyZXBlYXRlZF9sYXp5",
77             "X21lc3NhZ2UYOSADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVz",
78             "dEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBEhkKDWRlZmF1bHRfaW50MzIY",
79             "PSABKAU6AjQxEhkKDWRlZmF1bHRfaW50NjQYPiABKAM6AjQyEhoKDmRlZmF1",
80             "bHRfdWludDMyGD8gASgNOgI0MxIaCg5kZWZhdWx0X3VpbnQ2NBhAIAEoBDoC",
81             "NDQSGwoOZGVmYXVsdF9zaW50MzIYQSABKBE6Ay00NRIaCg5kZWZhdWx0X3Np",
82             "bnQ2NBhCIAEoEjoCNDYSGwoPZGVmYXVsdF9maXhlZDMyGEMgASgHOgI0NxIb",
83             "Cg9kZWZhdWx0X2ZpeGVkNjQYRCABKAY6AjQ4EhwKEGRlZmF1bHRfc2ZpeGVk",
84             "MzIYRSABKA86AjQ5Eh0KEGRlZmF1bHRfc2ZpeGVkNjQYRiABKBA6Ay01MBIb",
85             "Cg1kZWZhdWx0X2Zsb2F0GEcgASgCOgQ1MS41Eh0KDmRlZmF1bHRfZG91Ymxl",
86             "GEggASgBOgU1MjAwMBIaCgxkZWZhdWx0X2Jvb2wYSSABKAg6BHRydWUSHQoO",
87             "ZGVmYXVsdF9zdHJpbmcYSiABKAk6BWhlbGxvEhwKDWRlZmF1bHRfYnl0ZXMY",
88             "SyABKAw6BXdvcmxkElMKE2RlZmF1bHRfbmVzdGVkX2VudW0YUSABKA4yMS5w",
89             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVu",
90             "dW06A0JBUhJQChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIlLnByb3Rv",
91             "YnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVIS",
92             "VAoTZGVmYXVsdF9pbXBvcnRfZW51bRhTIAEoDjIrLnByb3RvYnVmX3VuaXR0",
93             "ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bToKSU1QT1JUX0JBUhIlChRk",
94             "ZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAhIdCgxkZWZhdWx0",
95             "X2NvcmQYVSABKAk6AzEyM0ICCAESFgoMb25lb2ZfdWludDMyGG8gASgNSAAS",
96             "VAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNC5wcm90b2J1Zl91bml0",
97             "dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIABIWCgxv",
98             "bmVvZl9zdHJpbmcYcSABKAlIABIVCgtvbmVvZl9ieXRlcxhyIAEoDEgAGhsK",
99             "DU5lc3RlZE1lc3NhZ2USCgoCYmIYASABKAUaGgoNT3B0aW9uYWxHcm91cBIJ",
100             "CgFhGBEgASgFGhoKDVJlcGVhdGVkR3JvdXASCQoBYRgvIAEoBSI5CgpOZXN0",
101             "ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD/////",
102             "//////8BQg0KC29uZW9mX2ZpZWxkItABChJOZXN0ZWRUZXN0QWxsVHlwZXMS",
103             "OwoFY2hpbGQYASABKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVz",
104             "dGVkVGVzdEFsbFR5cGVzEjcKB3BheWxvYWQYAiABKAsyJi5wcm90b2J1Zl91",
105             "bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzEkQKDnJlcGVhdGVkX2NoaWxk",
106             "GAMgAygLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RB",
107             "bGxUeXBlcyJtChRUZXN0RGVwcmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVk",
108             "X2ludDMyGAEgASgFQgIYARInChlkZXByZWNhdGVkX2ludDMyX2luX29uZW9m",
109             "GAIgASgFQgIYAUgAQg4KDG9uZW9mX2ZpZWxkcyIbChVUZXN0RGVwcmVjYXRl",
110             "ZE1lc3NhZ2U6AhgBIiYKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUSCQoB",
111             "ZBgCIAEoBSIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJ",
112             "EAxSA2JhclIDYmF6Ih0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiIk",
113             "ChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIJCgFhGBEgASgFIiQKF1JlcGVh",
114             "dGVkR3JvdXBfZXh0ZW5zaW9uEgkKAWEYLyABKAUitwEKCVRlc3RHcm91cBJI",
115             "Cg1vcHRpb25hbGdyb3VwGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJv",
116             "dG8yLlRlc3RHcm91cC5PcHRpb25hbEdyb3VwEkQKFW9wdGlvbmFsX2ZvcmVp",
117             "Z25fZW51bRgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3Jl",
118             "aWduRW51bRoaCg1PcHRpb25hbEdyb3VwEgkKAWEYESABKAUiHgoSVGVzdEdy",
119             "b3VwRXh0ZW5zaW9uKggIARCAgICAAiLhAwoTVGVzdE5lc3RlZEV4dGVuc2lv",
120             "bhokChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIJCgFhGBEgASgFMkAKBHRl",
121             "c3QSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lv",
122             "bnMY6gcgASgJOgR0ZXN0Mk0KF25lc3RlZF9zdHJpbmdfZXh0ZW5zaW9uEisu",
123             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOsH",
124             "IAEoCTKUAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SLC5wcm90b2J1Zl91",
125             "bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwRXh0ZW5zaW9uGBAgASgKMkUucHJv",
126             "dG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3ROZXN0ZWRFeHRlbnNpb24uT3B0",
127             "aW9uYWxHcm91cF9leHRlbnNpb24yfAofb3B0aW9uYWxfZm9yZWlnbl9lbnVt",
128             "X2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3Jv",
129             "dXBFeHRlbnNpb24YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIu",
130             "Rm9yZWlnbkVudW0i8QUKDFRlc3RSZXF1aXJlZBIJCgFhGAEgAigFEg4KBmR1",
131             "bW15MhgCIAEoBRIJCgFiGAMgAigFEg4KBmR1bW15NBgEIAEoBRIOCgZkdW1t",
132             "eTUYBSABKAUSDgoGZHVtbXk2GAYgASgFEg4KBmR1bW15NxgHIAEoBRIOCgZk",
133             "dW1teTgYCCABKAUSDgoGZHVtbXk5GAkgASgFEg8KB2R1bW15MTAYCiABKAUS",
134             "DwoHZHVtbXkxMRgLIAEoBRIPCgdkdW1teTEyGAwgASgFEg8KB2R1bW15MTMY",
135             "DSABKAUSDwoHZHVtbXkxNBgOIAEoBRIPCgdkdW1teTE1GA8gASgFEg8KB2R1",
136             "bW15MTYYECABKAUSDwoHZHVtbXkxNxgRIAEoBRIPCgdkdW1teTE4GBIgASgF",
137             "Eg8KB2R1bW15MTkYEyABKAUSDwoHZHVtbXkyMBgUIAEoBRIPCgdkdW1teTIx",
138             "GBUgASgFEg8KB2R1bW15MjIYFiABKAUSDwoHZHVtbXkyMxgXIAEoBRIPCgdk",
139             "dW1teTI0GBggASgFEg8KB2R1bW15MjUYGSABKAUSDwoHZHVtbXkyNhgaIAEo",
140             "BRIPCgdkdW1teTI3GBsgASgFEg8KB2R1bW15MjgYHCABKAUSDwoHZHVtbXky",
141             "ORgdIAEoBRIPCgdkdW1teTMwGB4gASgFEg8KB2R1bW15MzEYHyABKAUSDwoH",
142             "ZHVtbXkzMhggIAEoBRIJCgFjGCEgAigFMmQKBnNpbmdsZRIrLnByb3RvYnVm",
143             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyJi5w",
144             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkMmMKBW11bHRp",
145             "EisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25z",
146             "GOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWly",
147             "ZWQiqAEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SQAoQb3B0aW9uYWxfbWVzc2Fn",
148             "ZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWly",
149             "ZWQSQAoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0",
150             "ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWQSDQoFZHVtbXkYAyABKAUi2wEKE1Rl",
151             "c3RSZXF1aXJlZE1lc3NhZ2USQAoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzIm",
152             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWQSQAoQcmVw",
153             "ZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
154             "Mi5UZXN0UmVxdWlyZWQSQAoQcmVxdWlyZWRfbWVzc2FnZRgDIAIoCzImLnBy",
155             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWQiYQoRVGVzdEZv",
156             "cmVpZ25OZXN0ZWQSTAoOZm9yZWlnbl9uZXN0ZWQYASABKAsyNC5wcm90b2J1",
157             "Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2Ui",
158             "EgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4",
159             "dGVuc2lvbnMqCAgBEICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJh",
160             "bmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjQKGFRlc3RSZWFsbHlM",
161             "YXJnZVRhZ051bWJlchIJCgFhGAEgASgFEg0KAmJiGP///38gASgFIlwKFFRl",
162             "c3RSZWN1cnNpdmVNZXNzYWdlEjkKAWEYASABKAsyLi5wcm90b2J1Zl91bml0",
163             "dGVzdF9wcm90bzIuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USCQoBaRgCIAEoBSKE",
164             "AwoUVGVzdE11dHVhbFJlY3Vyc2lvbkESOgoCYmIYASABKAsyLi5wcm90b2J1",
165             "Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkISSQoIc3Vi",
166             "Z3JvdXAYAiABKAoyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11",
167             "dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXAaRwoKU3ViTWVzc2FnZRI5CgFiGAEg",
168             "ASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1",
169             "cnNpb25CGpsBCghTdWJHcm91cBJOCgtzdWJfbWVzc2FnZRgDIAEoCzI5LnBy",
170             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5T",
171             "dWJNZXNzYWdlEj8KD25vdF9pbl90aGlzX3NjYxgEIAEoCzImLnByb3RvYnVm",
172             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMiaQoUVGVzdE11dHVhbFJl",
173             "Y3Vyc2lvbkISOQoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
174             "Mi5UZXN0TXV0dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEo",
175             "BSLYAQoRVGVzdElzSW5pdGlhbGl6ZWQSSwoLc3ViX21lc3NhZ2UYASABKAsy",
176             "Ni5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdElzSW5pdGlhbGl6ZWQu",
177             "U3ViTWVzc2FnZRp2CgpTdWJNZXNzYWdlElEKCHN1Ymdyb3VwGAEgASgKMj8u",
178             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1",
179             "Yk1lc3NhZ2UuU3ViR3JvdXAaFQoIU3ViR3JvdXASCQoBaRgCIAIoBSLBAQoS",
180             "VGVzdER1cEZpZWxkTnVtYmVyEgkKAWEYASABKAUSPQoDZm9vGAIgASgKMjAu",
181             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5G",
182             "b28SPQoDYmFyGAMgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
183             "c3REdXBGaWVsZE51bWJlci5CYXIaEAoDRm9vEgkKAWEYASABKAUaEAoDQmFy",
184             "EgkKAWEYASABKAUiUwoQVGVzdEVhZ2VyTWVzc2FnZRI/CgtzdWJfbWVzc2Fn",
185             "ZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlw",
186             "ZXNCAigAIlIKD1Rlc3RMYXp5TWVzc2FnZRI/CgtzdWJfbWVzc2FnZRgBIAEo",
187             "CzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigB",
188             "Io4CChhUZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMSYQoXb3B0aW9uYWxfbmVz",
189             "dGVkX21lc3NhZ2UYASABKAsyQC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIu",
190             "VGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2UajgEKDU5l",
191             "c3RlZE1lc3NhZ2USJAocbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9pbnQzMhgB",
192             "IAMoBRJXCiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNzYWdl",
193             "GAIgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNz",
194             "YWdlIoEEChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxIWCg5QcmltaXRpdmVG",
195             "aWVsZBgBIAEoBRITCgtTdHJpbmdGaWVsZBgCIAEoCRI4CglFbnVtRmllbGQY",
196             "AyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW0S",
197             "PgoMTWVzc2FnZUZpZWxkGAQgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJv",
198             "dG8yLkZvcmVpZ25NZXNzYWdlEhwKEFN0cmluZ1BpZWNlRmllbGQYBSABKAlC",
199             "AggCEhUKCUNvcmRGaWVsZBgGIAEoCUICCAESHgoWUmVwZWF0ZWRQcmltaXRp",
200             "dmVGaWVsZBgHIAMoBRIbChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJEkAK",
201             "EVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMiUucHJvdG9idWZfdW5pdHRlc3Rf",
202             "cHJvdG8yLkZvcmVpZ25FbnVtEkYKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAog",
203             "AygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdl",
204             "EiQKGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBgLIAMoCUICCAISHQoRUmVw",
205             "ZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBItwBChJUZXN0RmllbGRPcmRlcmlu",
206             "Z3MSEQoJbXlfc3RyaW5nGAsgASgJEg4KBm15X2ludBgBIAEoAxIQCghteV9m",
207             "bG9hdBhlIAEoAhJcChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsy",
208             "Oi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdz",
209             "Lk5lc3RlZE1lc3NhZ2UaJwoNTmVzdGVkTWVzc2FnZRIKCgJvbxgCIAEoAxIK",
210             "CgJiYhgBIAEoBSoECAIQCyoECAwQZSKqAQoXVGVzdEV4dGVuc2lvbk9yZGVy",
211             "aW5nczESEQoJbXlfc3RyaW5nGAEgASgJMnwKE3Rlc3RfZXh0X29yZGVyaW5n",
212             "czESLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJp",
213             "bmdzGA0gASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRl",
214             "bnNpb25PcmRlcmluZ3MxIvACChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMhIR",
215             "CglteV9zdHJpbmcYASABKAkawwEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3Mz",
216             "EhEKCW15X3N0cmluZxgBIAEoCTKUAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIs",
217             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MY",
218             "DiABKAsySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lv",
219             "bk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMyfAoTdGVzdF9l",
220             "eHRfb3JkZXJpbmdzMhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0",
221             "RmllbGRPcmRlcmluZ3MYDCABKAsyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90",
222             "bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIitgcKGFRlc3RFeHRyZW1lRGVm",
223             "YXVsdFZhbHVlcxI/Cg1lc2NhcGVkX2J5dGVzGAEgASgMOihcMDAwXDAwMVww",
224             "MDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwnXCJcMzc2EiAKDGxhcmdlX3VpbnQz",
225             "MhgCIAEoDToKNDI5NDk2NzI5NRIqCgxsYXJnZV91aW50NjQYAyABKAQ6FDE4",
226             "NDQ2NzQ0MDczNzA5NTUxNjE1EiAKC3NtYWxsX2ludDMyGAQgASgFOgstMjE0",
227             "NzQ4MzY0NxIpCgtzbWFsbF9pbnQ2NBgFIAEoAzoULTkyMjMzNzIwMzY4NTQ3",
228             "NzU4MDcSJwoScmVhbGx5X3NtYWxsX2ludDMyGBUgASgFOgstMjE0NzQ4MzY0",
229             "OBIwChJyZWFsbHlfc21hbGxfaW50NjQYFiABKAM6FC05MjIzMzcyMDM2ODU0",
230             "Nzc1ODA4EhgKC3V0Zjhfc3RyaW5nGAYgASgJOgPhiLQSFQoKemVyb19mbG9h",
231             "dBgHIAEoAjoBMBIUCglvbmVfZmxvYXQYCCABKAI6ATESGAoLc21hbGxfZmxv",
232             "YXQYCSABKAI6AzEuNRIeChJuZWdhdGl2ZV9vbmVfZmxvYXQYCiABKAI6Ai0x",
233             "EhwKDm5lZ2F0aXZlX2Zsb2F0GAsgASgCOgQtMS41EhoKC2xhcmdlX2Zsb2F0",
234             "GAwgASgCOgUyZSswOBIkChRzbWFsbF9uZWdhdGl2ZV9mbG9hdBgNIAEoAjoG",
235             "LThlLTI4EhcKCmluZl9kb3VibGUYDiABKAE6A2luZhIcCg5uZWdfaW5mX2Rv",
236             "dWJsZRgPIAEoAToELWluZhIXCgpuYW5fZG91YmxlGBAgASgBOgNuYW4SFgoJ",
237             "aW5mX2Zsb2F0GBEgASgCOgNpbmYSGwoNbmVnX2luZl9mbG9hdBgSIAEoAjoE",
238             "LWluZhIWCgluYW5fZmxvYXQYEyABKAI6A25hbhIrCgxjcHBfdHJpZ3JhcGgY",
239             "FCABKAk6FT8gPyA/PyA/PyA/Pz8gPz8vID8/LRIgChBzdHJpbmdfd2l0aF96",
240             "ZXJvGBcgASgJOgZoZWwAbG8SIgoPYnl0ZXNfd2l0aF96ZXJvGBggASgMOgl3",
241             "b3JcMDAwbGQSKAoWc3RyaW5nX3BpZWNlX3dpdGhfemVybxgZIAEoCToEYWIA",
242             "Y0ICCAISIAoOY29yZF93aXRoX3plcm8YGiABKAk6BDEyADNCAggBEiYKEnJl",
243             "cGxhY2VtZW50X3N0cmluZxgbIAEoCToKJHt1bmtub3dufSJSChFTcGFyc2VF",
244             "bnVtTWVzc2FnZRI9CgtzcGFyc2VfZW51bRgBIAEoDjIoLnByb3RvYnVmX3Vu",
245             "aXR0ZXN0X3Byb3RvMi5UZXN0U3BhcnNlRW51bSIZCglPbmVTdHJpbmcSDAoE",
246             "ZGF0YRgBIAEoCSIaCgpNb3JlU3RyaW5nEgwKBGRhdGEYASADKAkiGAoIT25l",
247             "Qnl0ZXMSDAoEZGF0YRgBIAEoDCIZCglNb3JlQnl0ZXMSDAoEZGF0YRgBIAMo",
248             "DCIcCgxJbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoBSIdCg1VaW50MzJNZXNz",
249             "YWdlEgwKBGRhdGEYASABKA0iHAoMSW50NjRNZXNzYWdlEgwKBGRhdGEYASAB",
250             "KAMiHQoNVWludDY0TWVzc2FnZRIMCgRkYXRhGAEgASgEIhsKC0Jvb2xNZXNz",
251             "YWdlEgwKBGRhdGEYASABKAgi3gEKCVRlc3RPbmVvZhIRCgdmb29faW50GAEg",
252             "ASgFSAASFAoKZm9vX3N0cmluZxgCIAEoCUgAEj0KC2Zvb19tZXNzYWdlGAMg",
253             "ASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gA",
254             "EkAKCGZvb2dyb3VwGAQgASgKMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8y",
255             "LlRlc3RPbmVvZi5Gb29Hcm91cEgAGiAKCEZvb0dyb3VwEgkKAWEYBSABKAUS",
256             "CQoBYhgGIAEoCUIFCgNmb28i9QEKHFRlc3RPbmVvZkJhY2t3YXJkc0NvbXBh",
257             "dGlibGUSDwoHZm9vX2ludBgBIAEoBRISCgpmb29fc3RyaW5nGAIgASgJEjsK",
258             "C2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8y",
259             "LlRlc3RBbGxUeXBlcxJRCghmb29ncm91cBgEIAEoCjI/LnByb3RvYnVmX3Vu",
260             "aXR0ZXN0X3Byb3RvMi5UZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlLkZv",
261             "b0dyb3VwGiAKCEZvb0dyb3VwEgkKAWEYBSABKAUSCQoBYhgGIAEoCSLBBgoK",
262             "VGVzdE9uZW9mMhIRCgdmb29faW50GAEgASgFSAASFAoKZm9vX3N0cmluZxgC",
263             "IAEoCUgAEhYKCGZvb19jb3JkGAMgASgJQgIIAUgAEh4KEGZvb19zdHJpbmdf",
264             "cGllY2UYBCABKAlCAggCSAASEwoJZm9vX2J5dGVzGAUgASgMSAASQwoIZm9v",
265             "X2VudW0YBiABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9u",
266             "ZW9mMi5OZXN0ZWRFbnVtSAASSQoLZm9vX21lc3NhZ2UYByABKAsyMi5wcm90",
267             "b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdl",
268             "SAASQQoIZm9vZ3JvdXAYCCABKAoyLS5wcm90b2J1Zl91bml0dGVzdF9wcm90",
269             "bzIuVGVzdE9uZW9mMi5Gb29Hcm91cEgAElIKEGZvb19sYXp5X21lc3NhZ2UY",
270             "CyABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5O",
271             "ZXN0ZWRNZXNzYWdlQgIoAUgAEhQKB2Jhcl9pbnQYDCABKAU6ATVIARIcCgpi",
272             "YXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIARIcCghiYXJfY29yZBgOIAEoCToE",
273             "Q09SREICCAFIARImChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VC",
274             "AggCSAESGgoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBEkgKCGJhcl9lbnVt",
275             "GBEgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIu",
276             "TmVzdGVkRW51bToDQkFSSAESDwoHYmF6X2ludBgSIAEoBRIXCgpiYXpfc3Ry",
277             "aW5nGBMgASgJOgNCQVoaIAoIRm9vR3JvdXASCQoBYRgJIAEoBRIJCgFiGAog",
278             "ASgJGjMKDU5lc3RlZE1lc3NhZ2USDwoHcXV4X2ludBgBIAEoAxIRCgljb3Jn",
279             "ZV9pbnQYAiADKAUiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIH",
280             "CgNCQVoQA0IFCgNmb29CBQoDYmFyIr8BChFUZXN0UmVxdWlyZWRPbmVvZhIR",
281             "Cgdmb29faW50GAEgASgFSAASFAoKZm9vX3N0cmluZxgCIAEoCUgAElAKC2Zv",
282             "b19tZXNzYWdlGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
283             "c3RSZXF1aXJlZE9uZW9mLk5lc3RlZE1lc3NhZ2VIABooCg1OZXN0ZWRNZXNz",
284             "YWdlEhcKD3JlcXVpcmVkX2RvdWJsZRgBIAIoAUIFCgNmb28i4AEKD1Rlc3RS",
285             "ZXF1aXJlZE1hcBI/CgNmb28YASADKAsyMi5wcm90b2J1Zl91bml0dGVzdF9w",
286             "cm90bzIuVGVzdFJlcXVpcmVkTWFwLkZvb0VudHJ5GmMKCEZvb0VudHJ5EgsK",
287             "A2tleRgBIAEoBRJGCgV2YWx1ZRgCIAEoCzI3LnByb3RvYnVmX3VuaXR0ZXN0",
288             "X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuTmVzdGVkTWVzc2FnZToCOAEaJwoN",
289             "TmVzdGVkTWVzc2FnZRIWCg5yZXF1aXJlZF9pbnQzMhgBIAIoBSKxAwoPVGVz",
290             "dFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAESGAoMcGFj",
291             "a2VkX2ludDY0GFsgAygDQgIQARIZCg1wYWNrZWRfdWludDMyGFwgAygNQgIQ",
292             "ARIZCg1wYWNrZWRfdWludDY0GF0gAygEQgIQARIZCg1wYWNrZWRfc2ludDMy",
293             "GF4gAygRQgIQARIZCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQARIaCg5wYWNr",
294             "ZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoOcGFja2VkX2ZpeGVkNjQYYSADKAZC",
295             "AhABEhsKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAESGwoPcGFja2VkX3Nm",
296             "aXhlZDY0GGMgAygQQgIQARIYCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABEhkK",
297             "DXBhY2tlZF9kb3VibGUYZSADKAFCAhABEhcKC3BhY2tlZF9ib29sGGYgAygI",
298             "QgIQARI+CgtwYWNrZWRfZW51bRhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0",
299             "X3Byb3RvMi5Gb3JlaWduRW51bUICEAEizwMKEVRlc3RVbnBhY2tlZFR5cGVz",
300             "EhoKDnVucGFja2VkX2ludDMyGFogAygFQgIQABIaCg51bnBhY2tlZF9pbnQ2",
301             "NBhbIAMoA0ICEAASGwoPdW5wYWNrZWRfdWludDMyGFwgAygNQgIQABIbCg91",
302             "bnBhY2tlZF91aW50NjQYXSADKARCAhAAEhsKD3VucGFja2VkX3NpbnQzMhhe",
303             "IAMoEUICEAASGwoPdW5wYWNrZWRfc2ludDY0GF8gAygSQgIQABIcChB1bnBh",
304             "Y2tlZF9maXhlZDMyGGAgAygHQgIQABIcChB1bnBhY2tlZF9maXhlZDY0GGEg",
305             "AygGQgIQABIdChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAASHQoRdW5w",
306             "YWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAEhoKDnVucGFja2VkX2Zsb2F0GGQg",
307             "AygCQgIQABIbCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAEhkKDXVucGFj",
308             "a2VkX2Jvb2wYZiADKAhCAhAAEkAKDXVucGFja2VkX2VudW0YZyADKA4yJS5w",
309             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAIiAKFFRl",
310             "c3RQYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRF",
311             "eHRlbnNpb25zKggIARCAgICAAiK1BAoVVGVzdER5bmFtaWNFeHRlbnNpb25z",
312             "EhkKEHNjYWxhcl9leHRlbnNpb24Y0A8gASgHEj4KDmVudW1fZXh0ZW5zaW9u",
313             "GNEPIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51",
314             "bRJgChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI/LnByb3RvYnVm",
315             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1p",
316             "Y0VudW1UeXBlEkQKEW1lc3NhZ2VfZXh0ZW5zaW9uGNMPIAEoCzIoLnByb3Rv",
317             "YnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZRJmChlkeW5hbWlj",
318             "X21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzJCLnByb3RvYnVmX3VuaXR0ZXN0",
319             "X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VU",
320             "eXBlEhsKEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAkSHQoQcGFja2VkX2V4",
321             "dGVuc2lvbhjWDyADKBFCAhABGiwKEkR5bmFtaWNNZXNzYWdlVHlwZRIWCg1k",
322             "eW5hbWljX2ZpZWxkGLQQIAEoBSJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlO",
323             "QU1JQ19GT08QmBESEAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQ",
324             "mhEiwAEKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEhgK",
325             "EHJlcGVhdGVkX2ZpeGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRfaW50MzIYDSAD",
326             "KAUSGQoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVwZWF0ZWRfaW50",
327             "NjQY/w8gAygDEhgKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAISGQoPcmVwZWF0",
328             "ZWRfdWludDY0GP//DyADKAQigwsKEFRlc3RQYXJzaW5nTWVyZ2USQgoScmVx",
329             "dWlyZWRfYWxsX3R5cGVzGAEgAigLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJv",
330             "dG8yLlRlc3RBbGxUeXBlcxJCChJvcHRpb25hbF9hbGxfdHlwZXMYAiABKAsy",
331             "Ji5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzEkIKEnJl",
332             "cGVhdGVkX2FsbF90eXBlcxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3By",
333             "b3RvMi5UZXN0QWxsVHlwZXMSTwoNb3B0aW9uYWxncm91cBgKIAEoCjI4LnBy",
334             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLk9wdGlv",
335             "bmFsR3JvdXASTwoNcmVwZWF0ZWRncm91cBgUIAMoCjI4LnByb3RvYnVmX3Vu",
336             "aXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3JvdXAa",
337             "6QQKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEjYKBmZpZWxkMRgBIAMoCzIm",
338             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMSNgoGZmll",
339             "bGQyGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxU",
340             "eXBlcxI2CgZmaWVsZDMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90",
341             "bzIuVGVzdEFsbFR5cGVzElkKBmdyb3VwMRgKIAMoCjJJLnByb3RvYnVmX3Vu",
342             "aXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRz",
343             "R2VuZXJhdG9yLkdyb3VwMRJZCgZncm91cDIYFCADKAoySS5wcm90b2J1Zl91",
344             "bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxk",
345             "c0dlbmVyYXRvci5Hcm91cDISNQoEZXh0MRjoByADKAsyJi5wcm90b2J1Zl91",
346             "bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzEjUKBGV4dDIY6QcgAygLMiYu",
347             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcxpACgZHcm91",
348             "cDESNgoGZmllbGQxGAsgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8y",
349             "LlRlc3RBbGxUeXBlcxpACgZHcm91cDISNgoGZmllbGQxGBUgASgLMiYucHJv",
350             "dG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcxpZCg1PcHRpb25h",
351             "bEdyb3VwEkgKGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzImLnBy",
352             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMaWQoNUmVwZWF0",
353             "ZWRHcm91cBJIChhyZXBlYXRlZF9ncm91cF9hbGxfdHlwZXMYFSABKAsyJi5w",
354             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzKgkI6AcQgICA",
355             "gAIyaQoMb3B0aW9uYWxfZXh0EioucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8y",
356             "LlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3Rf",
357             "cHJvdG8yLlRlc3RBbGxUeXBlczJpCgxyZXBlYXRlZF9leHQSKi5wcm90b2J1",
358             "Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjpByADKAsyJi5w",
359             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzIkQKG1Rlc3RD",
360             "b21tZW50SW5qZWN0aW9uTWVzc2FnZRIlCgFhGAEgASgJOhoqLyA8LSBOZWl0",
361             "aGVyIHNob3VsZCB0aGlzLiIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNl",
362             "IhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpC",
363             "YXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIpIBCgxUZXN0SnNvbk5hbWUSEwoL",
364             "ZmllbGRfbmFtZTEYASABKAUSEgoKZmllbGROYW1lMhgCIAEoBRISCgpGaWVs",
365             "ZE5hbWUzGAMgASgFEhQKDF9maWVsZF9uYW1lNBgEIAEoBRITCgtGSUVMRF9O",
366             "QU1FNRgFIAEoBRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUioAYKFFRl",
367             "c3RIdWdlRmllbGROdW1iZXJzEhoKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEo",
368             "BRIUCghmaXhlZF8zMhjx+P//ASABKAUSHgoOcmVwZWF0ZWRfaW50MzIY8vj/",
369             "/wEgAygFQgIQABIcCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQARJACg1v",
370             "cHRpb25hbF9lbnVtGPT4//8BIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3By",
371             "b3RvMi5Gb3JlaWduRW51bRIbCg9vcHRpb25hbF9zdHJpbmcY9fj//wEgASgJ",
372             "EhoKDm9wdGlvbmFsX2J5dGVzGPb4//8BIAEoDBJGChBvcHRpb25hbF9tZXNz",
373             "YWdlGPf4//8BIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3Jl",
374             "aWduTWVzc2FnZRJXCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI8LnByb3Rv",
375             "YnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRp",
376             "b25hbEdyb3VwEmIKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzJDLnBy",
377             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5T",
378             "dHJpbmdTdHJpbmdNYXBFbnRyeRIaCgxvbmVvZl91aW50MzIY+/j//wEgASgN",
379             "SAASSgoUb25lb2ZfdGVzdF9hbGxfdHlwZXMY/Pj//wEgASgLMiYucHJvdG9i",
380             "dWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAEhoKDG9uZW9mX3N0",
381             "cmluZxj9+P//ASABKAlIABIZCgtvbmVvZl9ieXRlcxj++P//ASABKAxIABok",
382             "Cg1PcHRpb25hbEdyb3VwEhMKB2dyb3VwX2EY+fj//wEgASgFGjYKFFN0cmlu",
383             "Z1N0cmluZ01hcEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToC",
384             "OAEqDAjgqv//ARDw+P//AUINCgtvbmVvZl9maWVsZCKxAQoYVGVzdEV4dGVu",
385             "c2lvbkluc2lkZVRhYmxlEg4KBmZpZWxkMRgBIAEoBRIOCgZmaWVsZDIYAiAB",
386             "KAUSDgoGZmllbGQzGAMgASgFEg4KBmZpZWxkNBgEIAEoBRIOCgZmaWVsZDYY",
387             "BiABKAUSDgoGZmllbGQ3GAcgASgFEg4KBmZpZWxkOBgIIAEoBRIOCgZmaWVs",
388             "ZDkYCSABKAUSDwoHZmllbGQxMBgKIAEoBSoECAUQBipACgtGb3JlaWduRW51",
389             "bRIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlH",
390             "Tl9CQVoQBipLChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIICgRGT08xEAESCAoE",
391             "QkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKokBCg5U",
392             "ZXN0U3BhcnNlRW51bRIMCghTUEFSU0VfQRB7Eg4KCFNQQVJTRV9CEKbnAxIP",
393             "CghTUEFSU0VfQxCysYAGEhUKCFNQQVJTRV9EEPH//////////wESFQoIU1BB",
394             "UlNFX0UQtN78////////ARIMCghTUEFSU0VfRhAAEgwKCFNQQVJTRV9HEAIq",
395             "iw8KDVZlcnlMYXJnZUVudW0SFgoSRU5VTV9MQUJFTF9ERUZBVUxUEAASEAoM",
396             "RU5VTV9MQUJFTF8xEAESEAoMRU5VTV9MQUJFTF8yEAISEAoMRU5VTV9MQUJF",
397             "TF8zEAMSEAoMRU5VTV9MQUJFTF80EAQSEAoMRU5VTV9MQUJFTF81EAUSEAoM",
398             "RU5VTV9MQUJFTF82EAYSEAoMRU5VTV9MQUJFTF83EAcSEAoMRU5VTV9MQUJF",
399             "TF84EAgSEAoMRU5VTV9MQUJFTF85EAkSEQoNRU5VTV9MQUJFTF8xMBAKEhEK",
400             "DUVOVU1fTEFCRUxfMTEQCxIRCg1FTlVNX0xBQkVMXzEyEAwSEQoNRU5VTV9M",
401             "QUJFTF8xMxANEhEKDUVOVU1fTEFCRUxfMTQQDhIRCg1FTlVNX0xBQkVMXzE1",
402             "EA8SEQoNRU5VTV9MQUJFTF8xNhAQEhEKDUVOVU1fTEFCRUxfMTcQERIRCg1F",
403             "TlVNX0xBQkVMXzE4EBISEQoNRU5VTV9MQUJFTF8xORATEhEKDUVOVU1fTEFC",
404             "RUxfMjAQFBIRCg1FTlVNX0xBQkVMXzIxEBUSEQoNRU5VTV9MQUJFTF8yMhAW",
405             "EhEKDUVOVU1fTEFCRUxfMjMQFxIRCg1FTlVNX0xBQkVMXzI0EBgSEQoNRU5V",
406             "TV9MQUJFTF8yNRAZEhEKDUVOVU1fTEFCRUxfMjYQGhIRCg1FTlVNX0xBQkVM",
407             "XzI3EBsSEQoNRU5VTV9MQUJFTF8yOBAcEhEKDUVOVU1fTEFCRUxfMjkQHRIR",
408             "Cg1FTlVNX0xBQkVMXzMwEB4SEQoNRU5VTV9MQUJFTF8zMRAfEhEKDUVOVU1f",
409             "TEFCRUxfMzIQIBIRCg1FTlVNX0xBQkVMXzMzECESEQoNRU5VTV9MQUJFTF8z",
410             "NBAiEhEKDUVOVU1fTEFCRUxfMzUQIxIRCg1FTlVNX0xBQkVMXzM2ECQSEQoN",
411             "RU5VTV9MQUJFTF8zNxAlEhEKDUVOVU1fTEFCRUxfMzgQJhIRCg1FTlVNX0xB",
412             "QkVMXzM5ECcSEQoNRU5VTV9MQUJFTF80MBAoEhEKDUVOVU1fTEFCRUxfNDEQ",
413             "KRIRCg1FTlVNX0xBQkVMXzQyECoSEQoNRU5VTV9MQUJFTF80MxArEhEKDUVO",
414             "VU1fTEFCRUxfNDQQLBIRCg1FTlVNX0xBQkVMXzQ1EC0SEQoNRU5VTV9MQUJF",
415             "TF80NhAuEhEKDUVOVU1fTEFCRUxfNDcQLxIRCg1FTlVNX0xBQkVMXzQ4EDAS",
416             "EQoNRU5VTV9MQUJFTF80ORAxEhEKDUVOVU1fTEFCRUxfNTAQMhIRCg1FTlVN",
417             "X0xBQkVMXzUxEDMSEQoNRU5VTV9MQUJFTF81MhA0EhEKDUVOVU1fTEFCRUxf",
418             "NTMQNRIRCg1FTlVNX0xBQkVMXzU0EDYSEQoNRU5VTV9MQUJFTF81NRA3EhEK",
419             "DUVOVU1fTEFCRUxfNTYQOBIRCg1FTlVNX0xBQkVMXzU3EDkSEQoNRU5VTV9M",
420             "QUJFTF81OBA6EhEKDUVOVU1fTEFCRUxfNTkQOxIRCg1FTlVNX0xBQkVMXzYw",
421             "EDwSEQoNRU5VTV9MQUJFTF82MRA9EhEKDUVOVU1fTEFCRUxfNjIQPhIRCg1F",
422             "TlVNX0xBQkVMXzYzED8SEQoNRU5VTV9MQUJFTF82NBBAEhEKDUVOVU1fTEFC",
423             "RUxfNjUQQRIRCg1FTlVNX0xBQkVMXzY2EEISEQoNRU5VTV9MQUJFTF82NxBD",
424             "EhEKDUVOVU1fTEFCRUxfNjgQRBIRCg1FTlVNX0xBQkVMXzY5EEUSEQoNRU5V",
425             "TV9MQUJFTF83MBBGEhEKDUVOVU1fTEFCRUxfNzEQRxIRCg1FTlVNX0xBQkVM",
426             "XzcyEEgSEQoNRU5VTV9MQUJFTF83MxBJEhEKDUVOVU1fTEFCRUxfNzQQShIR",
427             "Cg1FTlVNX0xBQkVMXzc1EEsSEQoNRU5VTV9MQUJFTF83NhBMEhEKDUVOVU1f",
428             "TEFCRUxfNzcQTRIRCg1FTlVNX0xBQkVMXzc4EE4SEQoNRU5VTV9MQUJFTF83",
429             "ORBPEhEKDUVOVU1fTEFCRUxfODAQUBIRCg1FTlVNX0xBQkVMXzgxEFESEQoN",
430             "RU5VTV9MQUJFTF84MhBSEhEKDUVOVU1fTEFCRUxfODMQUxIRCg1FTlVNX0xB",
431             "QkVMXzg0EFQSEQoNRU5VTV9MQUJFTF84NRBVEhEKDUVOVU1fTEFCRUxfODYQ",
432             "VhIRCg1FTlVNX0xBQkVMXzg3EFcSEQoNRU5VTV9MQUJFTF84OBBYEhEKDUVO",
433             "VU1fTEFCRUxfODkQWRIRCg1FTlVNX0xBQkVMXzkwEFoSEQoNRU5VTV9MQUJF",
434             "TF85MRBbEhEKDUVOVU1fTEFCRUxfOTIQXBIRCg1FTlVNX0xBQkVMXzkzEF0S",
435             "EQoNRU5VTV9MQUJFTF85NBBeEhEKDUVOVU1fTEFCRUxfOTUQXxIRCg1FTlVN",
436             "X0xBQkVMXzk2EGASEQoNRU5VTV9MQUJFTF85NxBhEhEKDUVOVU1fTEFCRUxf",
437             "OTgQYhIRCg1FTlVNX0xBQkVMXzk5EGMSEgoORU5VTV9MQUJFTF8xMDAQZDK1",
438             "AQoLVGVzdFNlcnZpY2USUgoDRm9vEiQucHJvdG9idWZfdW5pdHRlc3RfcHJv",
439             "dG8yLkZvb1JlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9v",
440             "UmVzcG9uc2USUgoDQmFyEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkJh",
441             "clJlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVzcG9u",
442             "c2U6TQoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5p",
443             "dHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAEgASgFOk0KGG9wdGlv",
444             "bmFsX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
445             "Mi5UZXN0QWxsRXh0ZW5zaW9ucxgCIAEoAzpOChlvcHRpb25hbF91aW50MzJf",
446             "ZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxF",
447             "eHRlbnNpb25zGAMgASgNOk4KGW9wdGlvbmFsX3VpbnQ2NF9leHRlbnNpb24S",
448             "Ky5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY",
449             "BCABKAQ6TgoZb3B0aW9uYWxfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVm",
450             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgFIAEoETpOChlv",
451             "cHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3Rf",
452             "cHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAYgASgSOk8KGm9wdGlvbmFsX2Zp",
453             "eGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
454             "c3RBbGxFeHRlbnNpb25zGAcgASgHOk8KGm9wdGlvbmFsX2ZpeGVkNjRfZXh0",
455             "ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRl",
456             "bnNpb25zGAggASgGOlAKG29wdGlvbmFsX3NmaXhlZDMyX2V4dGVuc2lvbhIr",
457             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgJ",
458             "IAEoDzpQChtvcHRpb25hbF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1",
459             "Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCiABKBA6TQoY",
460             "b3B0aW9uYWxfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3Rf",
461             "cHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAsgASgCOk4KGW9wdGlvbmFsX2Rv",
462             "dWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVz",
463             "dEFsbEV4dGVuc2lvbnMYDCABKAE6TAoXb3B0aW9uYWxfYm9vbF9leHRlbnNp",
464             "b24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lv",
465             "bnMYDSABKAg6TgoZb3B0aW9uYWxfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3Rv",
466             "YnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgOIAEoCTpN",
467             "ChhvcHRpb25hbF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVz",
468             "dF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAw6fwoXb3B0aW9uYWxn",
469             "cm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVz",
470             "dEFsbEV4dGVuc2lvbnMYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90",
471             "bzIuT3B0aW9uYWxHcm91cF9leHRlbnNpb246jAEKIW9wdGlvbmFsX25lc3Rl",
472             "ZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
473             "Mi5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0",
474             "X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZTqBAQoib3B0aW9u",
475             "YWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0",
476             "ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIoLnByb3RvYnVm",
477             "X3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZTqGAQohb3B0aW9uYWxf",
478             "aW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3Rf",
479             "cHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMi4ucHJvdG9idWZfdW5p",
480             "dHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlOoYBCh5vcHRpb25h",
481             "bF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9w",
482             "cm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFSABKA4yMS5wcm90b2J1Zl91bml0",
483             "dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06ewofb3B0aW9u",
484             "YWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0",
485             "X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgWIAEoDjIlLnByb3RvYnVmX3Vu",
486             "aXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bTqAAQoeb3B0aW9uYWxfaW1wb3J0",
487             "X2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
488             "c3RBbGxFeHRlbnNpb25zGBcgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1w",
489             "b3J0X3Byb3RvMi5JbXBvcnRFbnVtOlgKH29wdGlvbmFsX3N0cmluZ19waWVj",
490             "ZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFs",
491             "bEV4dGVuc2lvbnMYGCABKAlCAggCOlAKF29wdGlvbmFsX2NvcmRfZXh0ZW5z",
492             "aW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNp",
493             "b25zGBkgASgJQgIIATqTAQoob3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNz",
494             "YWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0",
495             "QWxsRXh0ZW5zaW9ucxgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9y",
496             "dF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZTqOAQofb3B0aW9uYWxfbGF6",
497             "eV9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
498             "Mi5UZXN0QWxsRXh0ZW5zaW9ucxgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0",
499             "X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAE6TQoYcmVw",
500             "ZWF0ZWRfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJv",
501             "dG8yLlRlc3RBbGxFeHRlbnNpb25zGB8gAygFOk0KGHJlcGVhdGVkX2ludDY0",
502             "X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxs",
503             "RXh0ZW5zaW9ucxggIAMoAzpOChlyZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9u",
504             "EisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25z",
505             "GCEgAygNOk4KGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1",
506             "Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIiADKAQ6TgoZ",
507             "cmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0",
508             "X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgjIAMoETpOChlyZXBlYXRlZF9z",
509             "aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
510             "c3RBbGxFeHRlbnNpb25zGCQgAygSOk8KGnJlcGVhdGVkX2ZpeGVkMzJfZXh0",
511             "ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRl",
512             "bnNpb25zGCUgAygHOk8KGnJlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uEisu",
513             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCYg",
514             "AygGOlAKG3JlcGVhdGVkX3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVm",
515             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMoDzpQChty",
516             "ZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVz",
517             "dF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBA6TQoYcmVwZWF0ZWRf",
518             "ZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
519             "c3RBbGxFeHRlbnNpb25zGCkgAygCOk4KGXJlcGVhdGVkX2RvdWJsZV9leHRl",
520             "bnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVu",
521             "c2lvbnMYKiADKAE6TAoXcmVwZWF0ZWRfYm9vbF9leHRlbnNpb24SKy5wcm90",
522             "b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKyADKAg6",
523             "TgoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0",
524             "ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgsIAMoCTpNChhyZXBlYXRl",
525             "ZF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIu",
526             "VGVzdEFsbEV4dGVuc2lvbnMYLSADKAw6fwoXcmVwZWF0ZWRncm91cF9leHRl",
527             "bnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVu",
528             "c2lvbnMYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuUmVwZWF0",
529             "ZWRHcm91cF9leHRlbnNpb246jAEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdl",
530             "X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxs",
531             "RXh0ZW5zaW9ucxgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5U",
532             "ZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZTqBAQoicmVwZWF0ZWRfZm9yZWln",
533             "bl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
534             "Mi5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0",
535             "X3Byb3RvMi5Gb3JlaWduTWVzc2FnZTqGAQohcmVwZWF0ZWRfaW1wb3J0X21l",
536             "c3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
537             "c3RBbGxFeHRlbnNpb25zGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1w",
538             "b3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlOoYBCh5yZXBlYXRlZF9uZXN0ZWRf",
539             "ZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVz",
540             "dEFsbEV4dGVuc2lvbnMYMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90",
541             "bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06ewofcmVwZWF0ZWRfZm9yZWln",
542             "bl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5U",
543             "ZXN0QWxsRXh0ZW5zaW9ucxg0IAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3By",
544             "b3RvMi5Gb3JlaWduRW51bTqAAQoecmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0",
545             "ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRl",
546             "bnNpb25zGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3Rv",
547             "Mi5JbXBvcnRFbnVtOlgKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNp",
548             "b24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lv",
549             "bnMYNiADKAlCAggCOlAKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEisucHJv",
550             "dG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDcgAygJ",
551             "QgIIATqOAQofcmVwZWF0ZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIrLnBy",
552             "b3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg5IAMo",
553             "CzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVz",
554             "dGVkTWVzc2FnZUICKAE6UAoXZGVmYXVsdF9pbnQzMl9leHRlbnNpb24SKy5w",
555             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPSAB",
556             "KAU6AjQxOlAKF2RlZmF1bHRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZf",
557             "dW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MjpR",
558             "ChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVz",
559             "dF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPyABKA06AjQzOlEKGGRlZmF1",
560             "bHRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
561             "Mi5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDQ6UgoYZGVmYXVsdF9zaW50",
562             "MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RB",
563             "bGxFeHRlbnNpb25zGEEgASgROgMtNDU6UQoYZGVmYXVsdF9zaW50NjRfZXh0",
564             "ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRl",
565             "bnNpb25zGEIgASgSOgI0NjpSChlkZWZhdWx0X2ZpeGVkMzJfZXh0ZW5zaW9u",
566             "EisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25z",
567             "GEMgASgHOgI0NzpSChlkZWZhdWx0X2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJv",
568             "dG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEQgASgG",
569             "OgI0ODpTChpkZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVm",
570             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhFIAEoDzoCNDk6",
571             "VAoaZGVmYXVsdF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0",
572             "dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRiABKBA6Ay01MDpSChdk",
573             "ZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3By",
574             "b3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNTpUChhkZWZhdWx0",
575             "X2RvdWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIu",
576             "VGVzdEFsbEV4dGVuc2lvbnMYSCABKAE6BTUyMDAwOlEKFmRlZmF1bHRfYm9v",
577             "bF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFs",
578             "bEV4dGVuc2lvbnMYSSABKAg6BHRydWU6VAoYZGVmYXVsdF9zdHJpbmdfZXh0",
579             "ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRl",
580             "bnNpb25zGEogASgJOgVoZWxsbzpTChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lv",
581             "bhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9u",
582             "cxhLIAEoDDoFd29ybGQ6igEKHWRlZmF1bHRfbmVzdGVkX2VudW1fZXh0ZW5z",
583             "aW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNp",
584             "b25zGFEgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxU",
585             "eXBlcy5OZXN0ZWRFbnVtOgNCQVI6hwEKHmRlZmF1bHRfZm9yZWlnbl9lbnVt",
586             "X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxs",
587             "RXh0ZW5zaW9ucxhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5G",
588             "b3JlaWduRW51bToLRk9SRUlHTl9CQVI6iwEKHWRlZmF1bHRfaW1wb3J0X2Vu",
589             "dW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RB",
590             "bGxFeHRlbnNpb25zGFMgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0",
591             "X3Byb3RvMi5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSOlwKHmRlZmF1bHRfc3Ry",
592             "aW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3Rv",
593             "Mi5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAjpUChZkZWZhdWx0",
594             "X2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRl",
595             "c3RBbGxFeHRlbnNpb25zGFUgASgJOgMxMjNCAggBOksKFm9uZW9mX3VpbnQz",
596             "Ml9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFs",
597             "bEV4dGVuc2lvbnMYbyABKA06iQEKHm9uZW9mX25lc3RlZF9tZXNzYWdlX2V4",
598             "dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0",
599             "ZW5zaW9ucxhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0",
600             "QWxsVHlwZXMuTmVzdGVkTWVzc2FnZTpLChZvbmVvZl9zdHJpbmdfZXh0ZW5z",
601             "aW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNp",
602             "b25zGHEgASgJOkoKFW9uZW9mX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVm",
603             "X3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDDpJChNt",
604             "eV9leHRlbnNpb25fc3RyaW5nEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8y",
605             "LlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCTpGChBteV9leHRlbnNpb25faW50",
606             "EiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5n",
607             "cxgFIAEoBTpSChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZf",
608             "dW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQ",
609             "ATpSChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRl",
610             "c3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQATpTChdw",
611             "YWNrZWRfdWludDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3By",
612             "b3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhcIAMoDUICEAE6UwoXcGFja2Vk",
613             "X3VpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIu",
614             "VGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABOlMKF3BhY2tlZF9zaW50",
615             "MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQ",
616             "YWNrZWRFeHRlbnNpb25zGF4gAygRQgIQATpTChdwYWNrZWRfc2ludDY0X2V4",
617             "dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2Vk",
618             "RXh0ZW5zaW9ucxhfIAMoEkICEAE6VAoYcGFja2VkX2ZpeGVkMzJfZXh0ZW5z",
619             "aW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRl",
620             "bnNpb25zGGAgAygHQgIQATpUChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24S",
621             "Li5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lv",
622             "bnMYYSADKAZCAhABOlUKGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SLi5w",
623             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMY",
624             "YiADKA9CAhABOlUKGXBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SLi5wcm90",
625             "b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYyAD",
626             "KBBCAhABOlIKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SLi5wcm90b2J1Zl91",
627             "bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAB",
628             "OlMKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRl",
629             "c3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQATpRChVw",
630             "YWNrZWRfYm9vbF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90",
631             "bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABOngKFXBhY2tlZF9l",
632             "bnVtX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0",
633             "UGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3By",
634             "b3RvMi5Gb3JlaWduRW51bUICEAE6VgoYdW5wYWNrZWRfaW50MzJfZXh0ZW5z",
635             "aW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4",
636             "dGVuc2lvbnMYWiADKAVCAhAAOlYKGHVucGFja2VkX2ludDY0X2V4dGVuc2lv",
637             "bhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRl",
638             "bnNpb25zGFsgAygDQgIQADpXChl1bnBhY2tlZF91aW50MzJfZXh0ZW5zaW9u",
639             "EjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVu",
640             "c2lvbnMYXCADKA1CAhAAOlcKGXVucGFja2VkX3VpbnQ2NF9leHRlbnNpb24S",
641             "MC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5z",
642             "aW9ucxhdIAMoBEICEAA6VwoZdW5wYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIw",
643             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNp",
644             "b25zGF4gAygRQgIQADpXChl1bnBhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEjAu",
645             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lv",
646             "bnMYXyADKBJCAhAAOlgKGnVucGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uEjAu",
647             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lv",
648             "bnMYYCADKAdCAhAAOlgKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEjAu",
649             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lv",
650             "bnMYYSADKAZCAhAAOlkKG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIw",
651             "LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNp",
652             "b25zGGIgAygPQgIQADpZCht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24S",
653             "MC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5z",
654             "aW9ucxhjIAMoEEICEAA6VgoYdW5wYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEjAu",
655             "cHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lv",
656             "bnMYZCADKAJCAhAAOlcKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SMC5w",
657             "cm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9u",
658             "cxhlIAMoAUICEAA6VQoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SMC5wcm90",
659             "b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhm",
660             "IAMoCEICEAA6fAoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SMC5wcm90b2J1",
661             "Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhnIAMo",
662             "DjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAA6",
663             "cgoOdGVzdF9hbGxfdHlwZXMSLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIu",
664             "VGVzdEh1Z2VGaWVsZE51bWJlcnMY4Kr//wEgASgLMiYucHJvdG9idWZfdW5p",
665             "dHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlczphCiV0ZXN0X2V4dGVuc2lvbl9p",
666             "bnNpZGVfdGFibGVfZXh0ZW5zaW9uEjIucHJvdG9idWZfdW5pdHRlc3RfcHJv",
667             "dG8yLlRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRgFIAEoBUIySAGAAQGIAQGQ",
668             "AQH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzI="));
669       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
670           new pbr::FileDescriptor[] { global::Google.Protobuf.TestProtos.Proto2.UnittestImportReflection.Descriptor, },
671           new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Protobuf.TestProtos.Proto2.ForeignEnum), typeof(global::Google.Protobuf.TestProtos.Proto2.TestEnumWithDupValue), typeof(global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum), typeof(global::Google.Protobuf.TestProtos.Proto2.VeryLargeEnum), }, new pb::Extension[] { UnittestExtensions.OptionalInt32Extension, UnittestExtensions.OptionalInt64Extension, UnittestExtensions.OptionalUint32Extension, UnittestExtensions.OptionalUint64Extension, UnittestExtensions.OptionalSint32Extension, UnittestExtensions.OptionalSint64Extension, UnittestExtensions.OptionalFixed32Extension, UnittestExtensions.OptionalFixed64Extension, UnittestExtensions.OptionalSfixed32Extension, UnittestExtensions.OptionalSfixed64Extension, UnittestExtensions.OptionalFloatExtension, UnittestExtensions.OptionalDoubleExtension, UnittestExtensions.OptionalBoolExtension, UnittestExtensions.OptionalStringExtension, UnittestExtensions.OptionalBytesExtension, UnittestExtensions.OptionalGroupExtension, UnittestExtensions.OptionalNestedMessageExtension, UnittestExtensions.OptionalForeignMessageExtension, UnittestExtensions.OptionalImportMessageExtension, UnittestExtensions.OptionalNestedEnumExtension, UnittestExtensions.OptionalForeignEnumExtension, UnittestExtensions.OptionalImportEnumExtension, UnittestExtensions.OptionalStringPieceExtension, UnittestExtensions.OptionalCordExtension, UnittestExtensions.OptionalPublicImportMessageExtension, UnittestExtensions.OptionalLazyMessageExtension, UnittestExtensions.RepeatedInt32Extension, UnittestExtensions.RepeatedInt64Extension, UnittestExtensions.RepeatedUint32Extension, UnittestExtensions.RepeatedUint64Extension, UnittestExtensions.RepeatedSint32Extension, UnittestExtensions.RepeatedSint64Extension, UnittestExtensions.RepeatedFixed32Extension, UnittestExtensions.RepeatedFixed64Extension, UnittestExtensions.RepeatedSfixed32Extension, UnittestExtensions.RepeatedSfixed64Extension, UnittestExtensions.RepeatedFloatExtension, UnittestExtensions.RepeatedDoubleExtension, UnittestExtensions.RepeatedBoolExtension, UnittestExtensions.RepeatedStringExtension, UnittestExtensions.RepeatedBytesExtension, UnittestExtensions.RepeatedGroupExtension, UnittestExtensions.RepeatedNestedMessageExtension, UnittestExtensions.RepeatedForeignMessageExtension, UnittestExtensions.RepeatedImportMessageExtension, UnittestExtensions.RepeatedNestedEnumExtension, UnittestExtensions.RepeatedForeignEnumExtension, UnittestExtensions.RepeatedImportEnumExtension, UnittestExtensions.RepeatedStringPieceExtension, UnittestExtensions.RepeatedCordExtension, UnittestExtensions.RepeatedLazyMessageExtension, UnittestExtensions.DefaultInt32Extension, UnittestExtensions.DefaultInt64Extension, UnittestExtensions.DefaultUint32Extension, UnittestExtensions.DefaultUint64Extension, UnittestExtensions.DefaultSint32Extension, UnittestExtensions.DefaultSint64Extension, UnittestExtensions.DefaultFixed32Extension, UnittestExtensions.DefaultFixed64Extension, UnittestExtensions.DefaultSfixed32Extension, UnittestExtensions.DefaultSfixed64Extension, UnittestExtensions.DefaultFloatExtension, UnittestExtensions.DefaultDoubleExtension, UnittestExtensions.DefaultBoolExtension, UnittestExtensions.DefaultStringExtension, UnittestExtensions.DefaultBytesExtension, UnittestExtensions.DefaultNestedEnumExtension, UnittestExtensions.DefaultForeignEnumExtension, UnittestExtensions.DefaultImportEnumExtension, UnittestExtensions.DefaultStringPieceExtension, UnittestExtensions.DefaultCordExtension, UnittestExtensions.OneofUint32Extension, UnittestExtensions.OneofNestedMessageExtension, UnittestExtensions.OneofStringExtension, UnittestExtensions.OneofBytesExtension, UnittestExtensions.MyExtensionString, UnittestExtensions.MyExtensionInt, UnittestExtensions.PackedInt32Extension, UnittestExtensions.PackedInt64Extension, UnittestExtensions.PackedUint32Extension, UnittestExtensions.PackedUint64Extension, UnittestExtensions.PackedSint32Extension, UnittestExtensions.PackedSint64Extension, UnittestExtensions.PackedFixed32Extension, UnittestExtensions.PackedFixed64Extension, UnittestExtensions.PackedSfixed32Extension, UnittestExtensions.PackedSfixed64Extension, UnittestExtensions.PackedFloatExtension, UnittestExtensions.PackedDoubleExtension, UnittestExtensions.PackedBoolExtension, UnittestExtensions.PackedEnumExtension, UnittestExtensions.UnpackedInt32Extension, UnittestExtensions.UnpackedInt64Extension, UnittestExtensions.UnpackedUint32Extension, UnittestExtensions.UnpackedUint64Extension, UnittestExtensions.UnpackedSint32Extension, UnittestExtensions.UnpackedSint64Extension, UnittestExtensions.UnpackedFixed32Extension, UnittestExtensions.UnpackedFixed64Extension, UnittestExtensions.UnpackedSfixed32Extension, UnittestExtensions.UnpackedSfixed64Extension, UnittestExtensions.UnpackedFloatExtension, UnittestExtensions.UnpackedDoubleExtension, UnittestExtensions.UnpackedBoolExtension, UnittestExtensions.UnpackedEnumExtension, UnittestExtensions.TestAllTypes, UnittestExtensions.TestExtensionInsideTableExtension }, new pbr::GeneratedClrTypeInfo[] {
672             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestAllTypes), global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser, new[]{ "OptionalInt32", "OptionalInt64", "OptionalUint32", "OptionalUint64", "OptionalSint32", "OptionalSint64", "OptionalFixed32", "OptionalFixed64", "OptionalSfixed32", "OptionalSfixed64", "OptionalFloat", "OptionalDouble", "OptionalBool", "OptionalString", "OptionalBytes", "OptionalGroup", "OptionalNestedMessage", "OptionalForeignMessage", "OptionalImportMessage", "OptionalNestedEnum", "OptionalForeignEnum", "OptionalImportEnum", "OptionalStringPiece", "OptionalCord", "OptionalPublicImportMessage", "OptionalLazyMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedGroup", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedStringPiece", "RepeatedCord", "RepeatedLazyMessage", "DefaultInt32", "DefaultInt64", "DefaultUint32", "DefaultUint64", "DefaultSint32", "DefaultSint64", "DefaultFixed32", "DefaultFixed64", "DefaultSfixed32", "DefaultSfixed64", "DefaultFloat", "DefaultDouble", "DefaultBool", "DefaultString", "DefaultBytes", "DefaultNestedEnum", "DefaultForeignEnum", "DefaultImportEnum", "DefaultStringPiece", "DefaultCord", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofBytes" }, new[]{ "OneofField" }, new[]{ typeof(global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage), global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser, new[]{ "Bb" }, null, null, null, null),
673             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup), global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup.Parser, new[]{ "A" }, null, null, null, null),
674             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup), global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup.Parser, new[]{ "A" }, null, null, null, null)}),
675             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes), global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes.Parser, new[]{ "Child", "Payload", "RepeatedChild" }, null, null, null, null),
676             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDeprecatedFields), global::Google.Protobuf.TestProtos.Proto2.TestDeprecatedFields.Parser, new[]{ "DeprecatedInt32", "DeprecatedInt32InOneof" }, new[]{ "OneofFields" }, null, null, null),
677             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDeprecatedMessage), global::Google.Protobuf.TestProtos.Proto2.TestDeprecatedMessage.Parser, null, null, null, null, null),
678             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.ForeignMessage), global::Google.Protobuf.TestProtos.Proto2.ForeignMessage.Parser, new[]{ "C", "D" }, null, null, null, null),
679             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestReservedFields), global::Google.Protobuf.TestProtos.Proto2.TestReservedFields.Parser, null, null, null, null, null),
680             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions), global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions.Parser, null, null, null, null, null),
681             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.OptionalGroup_extension), global::Google.Protobuf.TestProtos.Proto2.OptionalGroup_extension.Parser, new[]{ "A" }, null, null, null, null),
682             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.RepeatedGroup_extension), global::Google.Protobuf.TestProtos.Proto2.RepeatedGroup_extension.Parser, new[]{ "A" }, null, null, null, null),
683             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestGroup), global::Google.Protobuf.TestProtos.Proto2.TestGroup.Parser, new[]{ "OptionalGroup", "OptionalForeignEnum" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup), global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup.Parser, new[]{ "A" }, null, null, null, null)}),
684             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestGroupExtension), global::Google.Protobuf.TestProtos.Proto2.TestGroupExtension.Parser, null, null, null, null, null),
685             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension), global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Parser, null, null, null, new pb::Extension[] { global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Extensions.Test, global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Extensions.NestedStringExtension, global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Extensions.OptionalGroupExtension, global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Extensions.OptionalForeignEnumExtension }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Types.OptionalGroup_extension), global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Types.OptionalGroup_extension.Parser, new[]{ "A" }, null, null, null, null)}),
686             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequired), global::Google.Protobuf.TestProtos.Proto2.TestRequired.Parser, new[]{ "A", "Dummy2", "B", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy20", "Dummy21", "Dummy22", "Dummy23", "Dummy24", "Dummy25", "Dummy26", "Dummy27", "Dummy28", "Dummy29", "Dummy30", "Dummy31", "Dummy32", "C" }, null, null, new pb::Extension[] { global::Google.Protobuf.TestProtos.Proto2.TestRequired.Extensions.Single, global::Google.Protobuf.TestProtos.Proto2.TestRequired.Extensions.Multi }, null),
687             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequiredForeign), global::Google.Protobuf.TestProtos.Proto2.TestRequiredForeign.Parser, new[]{ "OptionalMessage", "RepeatedMessage", "Dummy" }, null, null, null, null),
688             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequiredMessage), global::Google.Protobuf.TestProtos.Proto2.TestRequiredMessage.Parser, new[]{ "OptionalMessage", "RepeatedMessage", "RequiredMessage" }, null, null, null, null),
689             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestForeignNested), global::Google.Protobuf.TestProtos.Proto2.TestForeignNested.Parser, new[]{ "ForeignNested" }, null, null, null, null),
690             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestEmptyMessage), global::Google.Protobuf.TestProtos.Proto2.TestEmptyMessage.Parser, null, null, null, null, null),
691             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestEmptyMessageWithExtensions), global::Google.Protobuf.TestProtos.Proto2.TestEmptyMessageWithExtensions.Parser, null, null, null, null, null),
692             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestMultipleExtensionRanges), global::Google.Protobuf.TestProtos.Proto2.TestMultipleExtensionRanges.Parser, null, null, null, null, null),
693             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestReallyLargeTagNumber), global::Google.Protobuf.TestProtos.Proto2.TestReallyLargeTagNumber.Parser, new[]{ "A", "Bb" }, null, null, null, null),
694             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage), global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage.Parser, new[]{ "A", "I" }, null, null, null, null),
695             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA), global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Parser, new[]{ "Bb", "SubGroup" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage), global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage.Parser, new[]{ "B" }, null, null, null, null),
696             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup), global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup.Parser, new[]{ "SubMessage", "NotInThisScc" }, null, null, null, null)}),
697             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB), global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB.Parser, new[]{ "A", "OptionalInt32" }, null, null, null, null),
698             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized), global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Parser, new[]{ "SubMessage" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage), global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Parser, new[]{ "SubGroup" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup), global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup.Parser, new[]{ "I" }, null, null, null, null)})}),
699             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber), global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Parser, new[]{ "A", "Foo", "Bar" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo), global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo.Parser, new[]{ "A" }, null, null, null, null),
700             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar), global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar.Parser, new[]{ "A" }, null, null, null, null)}),
701             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestEagerMessage), global::Google.Protobuf.TestProtos.Proto2.TestEagerMessage.Parser, new[]{ "SubMessage" }, null, null, null, null),
702             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestLazyMessage), global::Google.Protobuf.TestProtos.Proto2.TestLazyMessage.Parser, new[]{ "SubMessage" }, null, null, null, null),
703             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits), global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Parser, new[]{ "OptionalNestedMessage" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage), global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage.Parser, new[]{ "NestedmessageRepeatedInt32", "NestedmessageRepeatedForeignmessage" }, null, null, null, null)}),
704             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestCamelCaseFieldNames), global::Google.Protobuf.TestProtos.Proto2.TestCamelCaseFieldNames.Parser, new[]{ "PrimitiveField", "StringField", "EnumField", "MessageField", "StringPieceField", "CordField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedStringPieceField", "RepeatedCordField" }, null, null, null, null),
705             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings), global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Parser, new[]{ "MyString", "MyInt", "MyFloat", "OptionalNestedMessage" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage), global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage.Parser, new[]{ "Oo", "Bb" }, null, null, null, null)}),
706             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings1), global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings1.Parser, new[]{ "MyString" }, null, null, new pb::Extension[] { global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings1.Extensions.TestExtOrderings1 }, null),
707             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2), global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Parser, new[]{ "MyString" }, null, null, new pb::Extension[] { global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Extensions.TestExtOrderings2 }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Types.TestExtensionOrderings3), global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Types.TestExtensionOrderings3.Parser, new[]{ "MyString" }, null, null, new pb::Extension[] { global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Types.TestExtensionOrderings3.Extensions.TestExtOrderings3 }, null)}),
708             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestExtremeDefaultValues), global::Google.Protobuf.TestProtos.Proto2.TestExtremeDefaultValues.Parser, new[]{ "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "ReallySmallInt32", "ReallySmallInt64", "Utf8String", "ZeroFloat", "OneFloat", "SmallFloat", "NegativeOneFloat", "NegativeFloat", "LargeFloat", "SmallNegativeFloat", "InfDouble", "NegInfDouble", "NanDouble", "InfFloat", "NegInfFloat", "NanFloat", "CppTrigraph", "StringWithZero", "BytesWithZero", "StringPieceWithZero", "CordWithZero", "ReplacementString" }, null, null, null, null),
709             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.SparseEnumMessage), global::Google.Protobuf.TestProtos.Proto2.SparseEnumMessage.Parser, new[]{ "SparseEnum" }, null, null, null, null),
710             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.OneString), global::Google.Protobuf.TestProtos.Proto2.OneString.Parser, new[]{ "Data" }, null, null, null, null),
711             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.MoreString), global::Google.Protobuf.TestProtos.Proto2.MoreString.Parser, new[]{ "Data" }, null, null, null, null),
712             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.OneBytes), global::Google.Protobuf.TestProtos.Proto2.OneBytes.Parser, new[]{ "Data" }, null, null, null, null),
713             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.MoreBytes), global::Google.Protobuf.TestProtos.Proto2.MoreBytes.Parser, new[]{ "Data" }, null, null, null, null),
714             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.Int32Message), global::Google.Protobuf.TestProtos.Proto2.Int32Message.Parser, new[]{ "Data" }, null, null, null, null),
715             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.Uint32Message), global::Google.Protobuf.TestProtos.Proto2.Uint32Message.Parser, new[]{ "Data" }, null, null, null, null),
716             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.Int64Message), global::Google.Protobuf.TestProtos.Proto2.Int64Message.Parser, new[]{ "Data" }, null, null, null, null),
717             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.Uint64Message), global::Google.Protobuf.TestProtos.Proto2.Uint64Message.Parser, new[]{ "Data" }, null, null, null, null),
718             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.BoolMessage), global::Google.Protobuf.TestProtos.Proto2.BoolMessage.Parser, new[]{ "Data" }, null, null, null, null),
719             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneof), global::Google.Protobuf.TestProtos.Proto2.TestOneof.Parser, new[]{ "FooInt", "FooString", "FooMessage", "FooGroup" }, new[]{ "Foo" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup), global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup.Parser, new[]{ "A", "B" }, null, null, null, null)}),
720             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible), global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Parser, new[]{ "FooInt", "FooString", "FooMessage", "FooGroup" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup), global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup.Parser, new[]{ "A", "B" }, null, null, null, null)}),
721             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneof2), global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Parser, new[]{ "FooInt", "FooString", "FooCord", "FooStringPiece", "FooBytes", "FooEnum", "FooMessage", "FooGroup", "FooLazyMessage", "BarInt", "BarString", "BarCord", "BarStringPiece", "BarBytes", "BarEnum", "BazInt", "BazString" }, new[]{ "Foo", "Bar" }, new[]{ typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup), global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup.Parser, new[]{ "A", "B" }, null, null, null, null),
722             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage), global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage.Parser, new[]{ "QuxInt", "CorgeInt" }, null, null, null, null)}),
723             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof), global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Parser, new[]{ "FooInt", "FooString", "FooMessage" }, new[]{ "Foo" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage), global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage.Parser, new[]{ "RequiredDouble" }, null, null, null, null)}),
724             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap), global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Parser, new[]{ "Foo" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage), global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage.Parser, new[]{ "RequiredInt32" }, null, null, null, null)}),
725             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestPackedTypes), global::Google.Protobuf.TestProtos.Proto2.TestPackedTypes.Parser, new[]{ "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum" }, null, null, null, null),
726             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestUnpackedTypes), global::Google.Protobuf.TestProtos.Proto2.TestUnpackedTypes.Parser, new[]{ "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum" }, null, null, null, null),
727             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions), global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions.Parser, null, null, null, null, null),
728             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions), global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions.Parser, null, null, null, null, null),
729             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions), global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Parser, new[]{ "ScalarExtension", "EnumExtension", "DynamicEnumExtension", "MessageExtension", "DynamicMessageExtension", "RepeatedExtension", "PackedExtension" }, null, new[]{ typeof(global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType), global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType.Parser, new[]{ "DynamicField" }, null, null, null, null)}),
730             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestRepeatedScalarDifferentTagSizes), global::Google.Protobuf.TestProtos.Proto2.TestRepeatedScalarDifferentTagSizes.Parser, new[]{ "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64" }, null, null, null, null),
731             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge), global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Parser, new[]{ "RequiredAllTypes", "OptionalAllTypes", "RepeatedAllTypes", "OptionalGroup", "RepeatedGroup" }, null, null, new pb::Extension[] { global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Extensions.OptionalExt, global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Extensions.RepeatedExt }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator), global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Parser, new[]{ "Field1", "Field2", "Field3", "Group1", "Group2", "Ext1", "Ext2" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1), global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Parser, new[]{ "Field1" }, null, null, null, null),
732             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2), global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Parser, new[]{ "Field1" }, null, null, null, null)}),
733             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup), global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup.Parser, new[]{ "OptionalGroupAllTypes" }, null, null, null, null),
734             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup), global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup.Parser, new[]{ "RepeatedGroupAllTypes" }, null, null, null, null)}),
735             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestCommentInjectionMessage), global::Google.Protobuf.TestProtos.Proto2.TestCommentInjectionMessage.Parser, new[]{ "A" }, null, null, null, null),
736             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.FooRequest), global::Google.Protobuf.TestProtos.Proto2.FooRequest.Parser, null, null, null, null, null),
737             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.FooResponse), global::Google.Protobuf.TestProtos.Proto2.FooResponse.Parser, null, null, null, null, null),
738             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.FooClientMessage), global::Google.Protobuf.TestProtos.Proto2.FooClientMessage.Parser, null, null, null, null, null),
739             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.FooServerMessage), global::Google.Protobuf.TestProtos.Proto2.FooServerMessage.Parser, null, null, null, null, null),
740             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.BarRequest), global::Google.Protobuf.TestProtos.Proto2.BarRequest.Parser, null, null, null, null, null),
741             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.BarResponse), global::Google.Protobuf.TestProtos.Proto2.BarResponse.Parser, null, null, null, null, null),
742             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestJsonName), global::Google.Protobuf.TestProtos.Proto2.TestJsonName.Parser, new[]{ "FieldName1", "FieldName2", "FieldName3", "FieldName4", "FIELDNAME5", "FieldName6" }, null, null, null, null),
743             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers), global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Parser, new[]{ "OptionalInt32", "Fixed32", "RepeatedInt32", "PackedInt32", "OptionalEnum", "OptionalString", "OptionalBytes", "OptionalMessage", "OptionalGroup", "StringStringMap", "OneofUint32", "OneofTestAllTypes", "OneofString", "OneofBytes" }, new[]{ "OneofField" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup), global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup.Parser, new[]{ "GroupA" }, null, null, null, null),
744             null, }),
745             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.TestProtos.Proto2.TestExtensionInsideTable), global::Google.Protobuf.TestProtos.Proto2.TestExtensionInsideTable.Parser, new[]{ "Field1", "Field2", "Field3", "Field4", "Field6", "Field7", "Field8", "Field9", "Field10" }, null, null, null, null)
746           }));
747     }
748     #endregion
749 
750   }
751   /// <summary>Holder for extension identifiers generated from the top level of unittest.proto</summary>
752   public static partial class UnittestExtensions {
753     /// <summary>
754     /// Singular
755     /// </summary>
756     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> OptionalInt32Extension =
757       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(1, pb::FieldCodec.ForInt32(8, 0));
758     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> OptionalInt64Extension =
759       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(2, pb::FieldCodec.ForInt64(16, 0L));
760     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> OptionalUint32Extension =
761       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(3, pb::FieldCodec.ForUInt32(24, 0));
762     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong> OptionalUint64Extension =
763       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong>(4, pb::FieldCodec.ForUInt64(32, 0UL));
764     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> OptionalSint32Extension =
765       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(5, pb::FieldCodec.ForSInt32(40, 0));
766     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> OptionalSint64Extension =
767       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(6, pb::FieldCodec.ForSInt64(48, 0L));
768     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> OptionalFixed32Extension =
769       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(7, pb::FieldCodec.ForFixed32(61, 0));
770     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong> OptionalFixed64Extension =
771       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong>(8, pb::FieldCodec.ForFixed64(65, 0UL));
772     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> OptionalSfixed32Extension =
773       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(9, pb::FieldCodec.ForSFixed32(77, 0));
774     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> OptionalSfixed64Extension =
775       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(10, pb::FieldCodec.ForSFixed64(81, 0L));
776     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, float> OptionalFloatExtension =
777       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, float>(11, pb::FieldCodec.ForFloat(93, 0F));
778     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, double> OptionalDoubleExtension =
779       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, double>(12, pb::FieldCodec.ForDouble(97, 0D));
780     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, bool> OptionalBoolExtension =
781       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, bool>(13, pb::FieldCodec.ForBool(104, false));
782     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> OptionalStringExtension =
783       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(14, pb::FieldCodec.ForString(114, ""));
784     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString> OptionalBytesExtension =
785       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString>(15, pb::FieldCodec.ForBytes(122, pb::ByteString.Empty));
786     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.OptionalGroup_extension> OptionalGroupExtension =
787       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.OptionalGroup_extension>(16, pb::FieldCodec.ForGroup(131, 132, global::Google.Protobuf.TestProtos.Proto2.OptionalGroup_extension.Parser));
788     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> OptionalNestedMessageExtension =
789       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>(18, pb::FieldCodec.ForMessage(146, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser));
790     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> OptionalForeignMessageExtension =
791       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage>(19, pb::FieldCodec.ForMessage(154, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage.Parser));
792     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportMessage> OptionalImportMessageExtension =
793       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportMessage>(20, pb::FieldCodec.ForMessage(162, global::Google.Protobuf.TestProtos.Proto2.ImportMessage.Parser));
794     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum> OptionalNestedEnumExtension =
795       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum>(21, pb::FieldCodec.ForEnum(168, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) x, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum.Foo));
796     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> OptionalForeignEnumExtension =
797       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>(22, pb::FieldCodec.ForEnum(176, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo));
798     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportEnum> OptionalImportEnumExtension =
799       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportEnum>(23, pb::FieldCodec.ForEnum(184, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) x, global::Google.Protobuf.TestProtos.Proto2.ImportEnum.ImportFoo));
800     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> OptionalStringPieceExtension =
801       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(24, pb::FieldCodec.ForString(194, ""));
802     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> OptionalCordExtension =
803       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(25, pb::FieldCodec.ForString(202, ""));
804     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage> OptionalPublicImportMessageExtension =
805       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage>(26, pb::FieldCodec.ForMessage(210, global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage.Parser));
806     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> OptionalLazyMessageExtension =
807       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>(27, pb::FieldCodec.ForMessage(218, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser));
808     /// <summary>
809     /// Repeated
810     /// </summary>
811     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> RepeatedInt32Extension =
812       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(31, pb::FieldCodec.ForInt32(248));
813     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> RepeatedInt64Extension =
814       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(32, pb::FieldCodec.ForInt64(256));
815     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> RepeatedUint32Extension =
816       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(33, pb::FieldCodec.ForUInt32(264));
817     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong> RepeatedUint64Extension =
818       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong>(34, pb::FieldCodec.ForUInt64(272));
819     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> RepeatedSint32Extension =
820       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(35, pb::FieldCodec.ForSInt32(280));
821     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> RepeatedSint64Extension =
822       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(36, pb::FieldCodec.ForSInt64(288));
823     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> RepeatedFixed32Extension =
824       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(37, pb::FieldCodec.ForFixed32(301));
825     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong> RepeatedFixed64Extension =
826       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong>(38, pb::FieldCodec.ForFixed64(305));
827     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> RepeatedSfixed32Extension =
828       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(39, pb::FieldCodec.ForSFixed32(317));
829     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> RepeatedSfixed64Extension =
830       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(40, pb::FieldCodec.ForSFixed64(321));
831     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, float> RepeatedFloatExtension =
832       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, float>(41, pb::FieldCodec.ForFloat(333));
833     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, double> RepeatedDoubleExtension =
834       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, double>(42, pb::FieldCodec.ForDouble(337));
835     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, bool> RepeatedBoolExtension =
836       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, bool>(43, pb::FieldCodec.ForBool(344));
837     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> RepeatedStringExtension =
838       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(44, pb::FieldCodec.ForString(354));
839     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString> RepeatedBytesExtension =
840       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString>(45, pb::FieldCodec.ForBytes(362));
841     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.RepeatedGroup_extension> RepeatedGroupExtension =
842       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.RepeatedGroup_extension>(46, pb::FieldCodec.ForGroup(371, 372, global::Google.Protobuf.TestProtos.Proto2.RepeatedGroup_extension.Parser));
843     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageExtension =
844       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>(48, pb::FieldCodec.ForMessage(386, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser));
845     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> RepeatedForeignMessageExtension =
846       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage>(49, pb::FieldCodec.ForMessage(394, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage.Parser));
847     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportMessage> RepeatedImportMessageExtension =
848       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportMessage>(50, pb::FieldCodec.ForMessage(402, global::Google.Protobuf.TestProtos.Proto2.ImportMessage.Parser));
849     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumExtension =
850       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum>(51, pb::FieldCodec.ForEnum(408, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) x));
851     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> RepeatedForeignEnumExtension =
852       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>(52, pb::FieldCodec.ForEnum(416, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x));
853     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportEnum> RepeatedImportEnumExtension =
854       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportEnum>(53, pb::FieldCodec.ForEnum(424, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) x));
855     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> RepeatedStringPieceExtension =
856       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(54, pb::FieldCodec.ForString(434));
857     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> RepeatedCordExtension =
858       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(55, pb::FieldCodec.ForString(442));
859     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageExtension =
860       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>(57, pb::FieldCodec.ForMessage(458, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser));
861     /// <summary>
862     /// Singular with defaults
863     /// </summary>
864     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> DefaultInt32Extension =
865       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(61, pb::FieldCodec.ForInt32(488, 41));
866     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> DefaultInt64Extension =
867       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(62, pb::FieldCodec.ForInt64(496, 42L));
868     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> DefaultUint32Extension =
869       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(63, pb::FieldCodec.ForUInt32(504, 43));
870     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong> DefaultUint64Extension =
871       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong>(64, pb::FieldCodec.ForUInt64(512, 44UL));
872     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> DefaultSint32Extension =
873       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(65, pb::FieldCodec.ForSInt32(520, -45));
874     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> DefaultSint64Extension =
875       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(66, pb::FieldCodec.ForSInt64(528, 46L));
876     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> DefaultFixed32Extension =
877       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(67, pb::FieldCodec.ForFixed32(541, 47));
878     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong> DefaultFixed64Extension =
879       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, ulong>(68, pb::FieldCodec.ForFixed64(545, 48UL));
880     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int> DefaultSfixed32Extension =
881       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, int>(69, pb::FieldCodec.ForSFixed32(557, 49));
882     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long> DefaultSfixed64Extension =
883       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, long>(70, pb::FieldCodec.ForSFixed64(561, -50L));
884     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, float> DefaultFloatExtension =
885       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, float>(71, pb::FieldCodec.ForFloat(573, 51.5F));
886     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, double> DefaultDoubleExtension =
887       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, double>(72, pb::FieldCodec.ForDouble(577, 52000D));
888     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, bool> DefaultBoolExtension =
889       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, bool>(73, pb::FieldCodec.ForBool(584, true));
890     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> DefaultStringExtension =
891       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(74, pb::FieldCodec.ForString(594, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsbG8="), 0, 5)));
892     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString> DefaultBytesExtension =
893       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString>(75, pb::FieldCodec.ForBytes(602, pb::ByteString.FromBase64("d29ybGQ=")));
894     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum> DefaultNestedEnumExtension =
895       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum>(81, pb::FieldCodec.ForEnum(648, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) x, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum.Bar));
896     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> DefaultForeignEnumExtension =
897       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>(82, pb::FieldCodec.ForEnum(656, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignBar));
898     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportEnum> DefaultImportEnumExtension =
899       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.ImportEnum>(83, pb::FieldCodec.ForEnum(664, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) x, global::Google.Protobuf.TestProtos.Proto2.ImportEnum.ImportBar));
900     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> DefaultStringPieceExtension =
901       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(84, pb::FieldCodec.ForString(674, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWJj"), 0, 3)));
902     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> DefaultCordExtension =
903       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(85, pb::FieldCodec.ForString(682, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIz"), 0, 3)));
904     /// <summary>
905     /// For oneof test
906     /// </summary>
907     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint> OneofUint32Extension =
908       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, uint>(111, pb::FieldCodec.ForUInt32(888, 0));
909     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> OneofNestedMessageExtension =
910       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>(112, pb::FieldCodec.ForMessage(898, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser));
911     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> OneofStringExtension =
912       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(113, pb::FieldCodec.ForString(906, ""));
913     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString> OneofBytesExtension =
914       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, pb::ByteString>(114, pb::FieldCodec.ForBytes(914, pb::ByteString.Empty));
915     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, string> MyExtensionString =
916       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, string>(50, pb::FieldCodec.ForString(402, ""));
917     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, int> MyExtensionInt =
918       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, int>(5, pb::FieldCodec.ForInt32(40, 0));
919     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, int> PackedInt32Extension =
920       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, int>(90, pb::FieldCodec.ForInt32(722));
921     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, long> PackedInt64Extension =
922       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, long>(91, pb::FieldCodec.ForInt64(730));
923     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, uint> PackedUint32Extension =
924       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, uint>(92, pb::FieldCodec.ForUInt32(738));
925     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, ulong> PackedUint64Extension =
926       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, ulong>(93, pb::FieldCodec.ForUInt64(746));
927     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, int> PackedSint32Extension =
928       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, int>(94, pb::FieldCodec.ForSInt32(754));
929     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, long> PackedSint64Extension =
930       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, long>(95, pb::FieldCodec.ForSInt64(762));
931     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, uint> PackedFixed32Extension =
932       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, uint>(96, pb::FieldCodec.ForFixed32(770));
933     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, ulong> PackedFixed64Extension =
934       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, ulong>(97, pb::FieldCodec.ForFixed64(778));
935     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, int> PackedSfixed32Extension =
936       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, int>(98, pb::FieldCodec.ForSFixed32(786));
937     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, long> PackedSfixed64Extension =
938       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, long>(99, pb::FieldCodec.ForSFixed64(794));
939     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, float> PackedFloatExtension =
940       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, float>(100, pb::FieldCodec.ForFloat(802));
941     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, double> PackedDoubleExtension =
942       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, double>(101, pb::FieldCodec.ForDouble(810));
943     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, bool> PackedBoolExtension =
944       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, bool>(102, pb::FieldCodec.ForBool(818));
945     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> PackedEnumExtension =
946       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestPackedExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>(103, pb::FieldCodec.ForEnum(826, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x));
947     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, int> UnpackedInt32Extension =
948       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, int>(90, pb::FieldCodec.ForInt32(720));
949     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, long> UnpackedInt64Extension =
950       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, long>(91, pb::FieldCodec.ForInt64(728));
951     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, uint> UnpackedUint32Extension =
952       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, uint>(92, pb::FieldCodec.ForUInt32(736));
953     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, ulong> UnpackedUint64Extension =
954       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, ulong>(93, pb::FieldCodec.ForUInt64(744));
955     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, int> UnpackedSint32Extension =
956       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, int>(94, pb::FieldCodec.ForSInt32(752));
957     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, long> UnpackedSint64Extension =
958       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, long>(95, pb::FieldCodec.ForSInt64(760));
959     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, uint> UnpackedFixed32Extension =
960       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, uint>(96, pb::FieldCodec.ForFixed32(773));
961     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, ulong> UnpackedFixed64Extension =
962       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, ulong>(97, pb::FieldCodec.ForFixed64(777));
963     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, int> UnpackedSfixed32Extension =
964       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, int>(98, pb::FieldCodec.ForSFixed32(789));
965     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, long> UnpackedSfixed64Extension =
966       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, long>(99, pb::FieldCodec.ForSFixed64(793));
967     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, float> UnpackedFloatExtension =
968       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, float>(100, pb::FieldCodec.ForFloat(805));
969     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, double> UnpackedDoubleExtension =
970       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, double>(101, pb::FieldCodec.ForDouble(809));
971     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, bool> UnpackedBoolExtension =
972       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, bool>(102, pb::FieldCodec.ForBool(816));
973     public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> UnpackedEnumExtension =
974       new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestUnpackedExtensions, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>(103, pb::FieldCodec.ForEnum(824, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x));
975     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> TestAllTypes =
976       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>(536860000, pb::FieldCodec.ForMessage(4294880002, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser));
977     public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestExtensionInsideTable, int> TestExtensionInsideTableExtension =
978       new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestExtensionInsideTable, int>(5, pb::FieldCodec.ForInt32(40, 0));
979   }
980 
981   #region Enums
982   public enum ForeignEnum {
983     [pbr::OriginalName("FOREIGN_FOO")] ForeignFoo = 4,
984     [pbr::OriginalName("FOREIGN_BAR")] ForeignBar = 5,
985     [pbr::OriginalName("FOREIGN_BAZ")] ForeignBaz = 6,
986   }
987 
988   /// <summary>
989   /// Test an enum that has multiple values with the same number.
990   /// </summary>
991   public enum TestEnumWithDupValue {
992     [pbr::OriginalName("FOO1")] Foo1 = 1,
993     [pbr::OriginalName("BAR1")] Bar1 = 2,
994     [pbr::OriginalName("BAZ")] Baz = 3,
995     [pbr::OriginalName("FOO2", PreferredAlias = false)] Foo2 = 1,
996     [pbr::OriginalName("BAR2", PreferredAlias = false)] Bar2 = 2,
997   }
998 
999   /// <summary>
1000   /// Test an enum with large, unordered values.
1001   /// </summary>
1002   public enum TestSparseEnum {
1003     [pbr::OriginalName("SPARSE_A")] SparseA = 123,
1004     [pbr::OriginalName("SPARSE_B")] SparseB = 62374,
1005     [pbr::OriginalName("SPARSE_C")] SparseC = 12589234,
1006     [pbr::OriginalName("SPARSE_D")] SparseD = -15,
1007     [pbr::OriginalName("SPARSE_E")] SparseE = -53452,
1008     [pbr::OriginalName("SPARSE_F")] SparseF = 0,
1009     [pbr::OriginalName("SPARSE_G")] SparseG = 2,
1010   }
1011 
1012   public enum VeryLargeEnum {
1013     [pbr::OriginalName("ENUM_LABEL_DEFAULT")] EnumLabelDefault = 0,
1014     [pbr::OriginalName("ENUM_LABEL_1")] EnumLabel1 = 1,
1015     [pbr::OriginalName("ENUM_LABEL_2")] EnumLabel2 = 2,
1016     [pbr::OriginalName("ENUM_LABEL_3")] EnumLabel3 = 3,
1017     [pbr::OriginalName("ENUM_LABEL_4")] EnumLabel4 = 4,
1018     [pbr::OriginalName("ENUM_LABEL_5")] EnumLabel5 = 5,
1019     [pbr::OriginalName("ENUM_LABEL_6")] EnumLabel6 = 6,
1020     [pbr::OriginalName("ENUM_LABEL_7")] EnumLabel7 = 7,
1021     [pbr::OriginalName("ENUM_LABEL_8")] EnumLabel8 = 8,
1022     [pbr::OriginalName("ENUM_LABEL_9")] EnumLabel9 = 9,
1023     [pbr::OriginalName("ENUM_LABEL_10")] EnumLabel10 = 10,
1024     [pbr::OriginalName("ENUM_LABEL_11")] EnumLabel11 = 11,
1025     [pbr::OriginalName("ENUM_LABEL_12")] EnumLabel12 = 12,
1026     [pbr::OriginalName("ENUM_LABEL_13")] EnumLabel13 = 13,
1027     [pbr::OriginalName("ENUM_LABEL_14")] EnumLabel14 = 14,
1028     [pbr::OriginalName("ENUM_LABEL_15")] EnumLabel15 = 15,
1029     [pbr::OriginalName("ENUM_LABEL_16")] EnumLabel16 = 16,
1030     [pbr::OriginalName("ENUM_LABEL_17")] EnumLabel17 = 17,
1031     [pbr::OriginalName("ENUM_LABEL_18")] EnumLabel18 = 18,
1032     [pbr::OriginalName("ENUM_LABEL_19")] EnumLabel19 = 19,
1033     [pbr::OriginalName("ENUM_LABEL_20")] EnumLabel20 = 20,
1034     [pbr::OriginalName("ENUM_LABEL_21")] EnumLabel21 = 21,
1035     [pbr::OriginalName("ENUM_LABEL_22")] EnumLabel22 = 22,
1036     [pbr::OriginalName("ENUM_LABEL_23")] EnumLabel23 = 23,
1037     [pbr::OriginalName("ENUM_LABEL_24")] EnumLabel24 = 24,
1038     [pbr::OriginalName("ENUM_LABEL_25")] EnumLabel25 = 25,
1039     [pbr::OriginalName("ENUM_LABEL_26")] EnumLabel26 = 26,
1040     [pbr::OriginalName("ENUM_LABEL_27")] EnumLabel27 = 27,
1041     [pbr::OriginalName("ENUM_LABEL_28")] EnumLabel28 = 28,
1042     [pbr::OriginalName("ENUM_LABEL_29")] EnumLabel29 = 29,
1043     [pbr::OriginalName("ENUM_LABEL_30")] EnumLabel30 = 30,
1044     [pbr::OriginalName("ENUM_LABEL_31")] EnumLabel31 = 31,
1045     [pbr::OriginalName("ENUM_LABEL_32")] EnumLabel32 = 32,
1046     [pbr::OriginalName("ENUM_LABEL_33")] EnumLabel33 = 33,
1047     [pbr::OriginalName("ENUM_LABEL_34")] EnumLabel34 = 34,
1048     [pbr::OriginalName("ENUM_LABEL_35")] EnumLabel35 = 35,
1049     [pbr::OriginalName("ENUM_LABEL_36")] EnumLabel36 = 36,
1050     [pbr::OriginalName("ENUM_LABEL_37")] EnumLabel37 = 37,
1051     [pbr::OriginalName("ENUM_LABEL_38")] EnumLabel38 = 38,
1052     [pbr::OriginalName("ENUM_LABEL_39")] EnumLabel39 = 39,
1053     [pbr::OriginalName("ENUM_LABEL_40")] EnumLabel40 = 40,
1054     [pbr::OriginalName("ENUM_LABEL_41")] EnumLabel41 = 41,
1055     [pbr::OriginalName("ENUM_LABEL_42")] EnumLabel42 = 42,
1056     [pbr::OriginalName("ENUM_LABEL_43")] EnumLabel43 = 43,
1057     [pbr::OriginalName("ENUM_LABEL_44")] EnumLabel44 = 44,
1058     [pbr::OriginalName("ENUM_LABEL_45")] EnumLabel45 = 45,
1059     [pbr::OriginalName("ENUM_LABEL_46")] EnumLabel46 = 46,
1060     [pbr::OriginalName("ENUM_LABEL_47")] EnumLabel47 = 47,
1061     [pbr::OriginalName("ENUM_LABEL_48")] EnumLabel48 = 48,
1062     [pbr::OriginalName("ENUM_LABEL_49")] EnumLabel49 = 49,
1063     [pbr::OriginalName("ENUM_LABEL_50")] EnumLabel50 = 50,
1064     [pbr::OriginalName("ENUM_LABEL_51")] EnumLabel51 = 51,
1065     [pbr::OriginalName("ENUM_LABEL_52")] EnumLabel52 = 52,
1066     [pbr::OriginalName("ENUM_LABEL_53")] EnumLabel53 = 53,
1067     [pbr::OriginalName("ENUM_LABEL_54")] EnumLabel54 = 54,
1068     [pbr::OriginalName("ENUM_LABEL_55")] EnumLabel55 = 55,
1069     [pbr::OriginalName("ENUM_LABEL_56")] EnumLabel56 = 56,
1070     [pbr::OriginalName("ENUM_LABEL_57")] EnumLabel57 = 57,
1071     [pbr::OriginalName("ENUM_LABEL_58")] EnumLabel58 = 58,
1072     [pbr::OriginalName("ENUM_LABEL_59")] EnumLabel59 = 59,
1073     [pbr::OriginalName("ENUM_LABEL_60")] EnumLabel60 = 60,
1074     [pbr::OriginalName("ENUM_LABEL_61")] EnumLabel61 = 61,
1075     [pbr::OriginalName("ENUM_LABEL_62")] EnumLabel62 = 62,
1076     [pbr::OriginalName("ENUM_LABEL_63")] EnumLabel63 = 63,
1077     [pbr::OriginalName("ENUM_LABEL_64")] EnumLabel64 = 64,
1078     [pbr::OriginalName("ENUM_LABEL_65")] EnumLabel65 = 65,
1079     [pbr::OriginalName("ENUM_LABEL_66")] EnumLabel66 = 66,
1080     [pbr::OriginalName("ENUM_LABEL_67")] EnumLabel67 = 67,
1081     [pbr::OriginalName("ENUM_LABEL_68")] EnumLabel68 = 68,
1082     [pbr::OriginalName("ENUM_LABEL_69")] EnumLabel69 = 69,
1083     [pbr::OriginalName("ENUM_LABEL_70")] EnumLabel70 = 70,
1084     [pbr::OriginalName("ENUM_LABEL_71")] EnumLabel71 = 71,
1085     [pbr::OriginalName("ENUM_LABEL_72")] EnumLabel72 = 72,
1086     [pbr::OriginalName("ENUM_LABEL_73")] EnumLabel73 = 73,
1087     [pbr::OriginalName("ENUM_LABEL_74")] EnumLabel74 = 74,
1088     [pbr::OriginalName("ENUM_LABEL_75")] EnumLabel75 = 75,
1089     [pbr::OriginalName("ENUM_LABEL_76")] EnumLabel76 = 76,
1090     [pbr::OriginalName("ENUM_LABEL_77")] EnumLabel77 = 77,
1091     [pbr::OriginalName("ENUM_LABEL_78")] EnumLabel78 = 78,
1092     [pbr::OriginalName("ENUM_LABEL_79")] EnumLabel79 = 79,
1093     [pbr::OriginalName("ENUM_LABEL_80")] EnumLabel80 = 80,
1094     [pbr::OriginalName("ENUM_LABEL_81")] EnumLabel81 = 81,
1095     [pbr::OriginalName("ENUM_LABEL_82")] EnumLabel82 = 82,
1096     [pbr::OriginalName("ENUM_LABEL_83")] EnumLabel83 = 83,
1097     [pbr::OriginalName("ENUM_LABEL_84")] EnumLabel84 = 84,
1098     [pbr::OriginalName("ENUM_LABEL_85")] EnumLabel85 = 85,
1099     [pbr::OriginalName("ENUM_LABEL_86")] EnumLabel86 = 86,
1100     [pbr::OriginalName("ENUM_LABEL_87")] EnumLabel87 = 87,
1101     [pbr::OriginalName("ENUM_LABEL_88")] EnumLabel88 = 88,
1102     [pbr::OriginalName("ENUM_LABEL_89")] EnumLabel89 = 89,
1103     [pbr::OriginalName("ENUM_LABEL_90")] EnumLabel90 = 90,
1104     [pbr::OriginalName("ENUM_LABEL_91")] EnumLabel91 = 91,
1105     [pbr::OriginalName("ENUM_LABEL_92")] EnumLabel92 = 92,
1106     [pbr::OriginalName("ENUM_LABEL_93")] EnumLabel93 = 93,
1107     [pbr::OriginalName("ENUM_LABEL_94")] EnumLabel94 = 94,
1108     [pbr::OriginalName("ENUM_LABEL_95")] EnumLabel95 = 95,
1109     [pbr::OriginalName("ENUM_LABEL_96")] EnumLabel96 = 96,
1110     [pbr::OriginalName("ENUM_LABEL_97")] EnumLabel97 = 97,
1111     [pbr::OriginalName("ENUM_LABEL_98")] EnumLabel98 = 98,
1112     [pbr::OriginalName("ENUM_LABEL_99")] EnumLabel99 = 99,
1113     [pbr::OriginalName("ENUM_LABEL_100")] EnumLabel100 = 100,
1114   }
1115 
1116   #endregion
1117 
1118   #region Messages
1119   /// <summary>
1120   /// This proto includes every type of field in both singular and repeated
1121   /// forms.
1122   /// </summary>
1123   public sealed partial class TestAllTypes : pb::IMessage<TestAllTypes>
1124   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1125       , pb::IBufferMessage
1126   #endif
1127   {
1128     private static readonly pb::MessageParser<TestAllTypes> _parser = new pb::MessageParser<TestAllTypes>(() => new TestAllTypes());
1129     private pb::UnknownFieldSet _unknownFields;
1130     private int _hasBits0;
1131     private int _hasBits1;
1132     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1133     public static pb::MessageParser<TestAllTypes> Parser { get { return _parser; } }
1134 
1135     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1136     public static pbr::MessageDescriptor Descriptor {
1137       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[0]; }
1138     }
1139 
1140     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1141     pbr::MessageDescriptor pb::IMessage.Descriptor {
1142       get { return Descriptor; }
1143     }
1144 
1145     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestAllTypes()1146     public TestAllTypes() {
1147       OnConstruction();
1148     }
1149 
OnConstruction()1150     partial void OnConstruction();
1151 
1152     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestAllTypes(TestAllTypes other)1153     public TestAllTypes(TestAllTypes other) : this() {
1154       _hasBits0 = other._hasBits0;
1155       _hasBits1 = other._hasBits1;
1156       optionalInt32_ = other.optionalInt32_;
1157       optionalInt64_ = other.optionalInt64_;
1158       optionalUint32_ = other.optionalUint32_;
1159       optionalUint64_ = other.optionalUint64_;
1160       optionalSint32_ = other.optionalSint32_;
1161       optionalSint64_ = other.optionalSint64_;
1162       optionalFixed32_ = other.optionalFixed32_;
1163       optionalFixed64_ = other.optionalFixed64_;
1164       optionalSfixed32_ = other.optionalSfixed32_;
1165       optionalSfixed64_ = other.optionalSfixed64_;
1166       optionalFloat_ = other.optionalFloat_;
1167       optionalDouble_ = other.optionalDouble_;
1168       optionalBool_ = other.optionalBool_;
1169       optionalString_ = other.optionalString_;
1170       optionalBytes_ = other.optionalBytes_;
1171       optionalGroup_ = other.HasOptionalGroup ? other.optionalGroup_.Clone() : null;
1172       optionalNestedMessage_ = other.optionalNestedMessage_ != null ? other.optionalNestedMessage_.Clone() : null;
1173       optionalForeignMessage_ = other.optionalForeignMessage_ != null ? other.optionalForeignMessage_.Clone() : null;
1174       optionalImportMessage_ = other.optionalImportMessage_ != null ? other.optionalImportMessage_.Clone() : null;
1175       optionalNestedEnum_ = other.optionalNestedEnum_;
1176       optionalForeignEnum_ = other.optionalForeignEnum_;
1177       optionalImportEnum_ = other.optionalImportEnum_;
1178       optionalStringPiece_ = other.optionalStringPiece_;
1179       optionalCord_ = other.optionalCord_;
1180       optionalPublicImportMessage_ = other.optionalPublicImportMessage_ != null ? other.optionalPublicImportMessage_.Clone() : null;
1181       optionalLazyMessage_ = other.optionalLazyMessage_ != null ? other.optionalLazyMessage_.Clone() : null;
1182       repeatedInt32_ = other.repeatedInt32_.Clone();
1183       repeatedInt64_ = other.repeatedInt64_.Clone();
1184       repeatedUint32_ = other.repeatedUint32_.Clone();
1185       repeatedUint64_ = other.repeatedUint64_.Clone();
1186       repeatedSint32_ = other.repeatedSint32_.Clone();
1187       repeatedSint64_ = other.repeatedSint64_.Clone();
1188       repeatedFixed32_ = other.repeatedFixed32_.Clone();
1189       repeatedFixed64_ = other.repeatedFixed64_.Clone();
1190       repeatedSfixed32_ = other.repeatedSfixed32_.Clone();
1191       repeatedSfixed64_ = other.repeatedSfixed64_.Clone();
1192       repeatedFloat_ = other.repeatedFloat_.Clone();
1193       repeatedDouble_ = other.repeatedDouble_.Clone();
1194       repeatedBool_ = other.repeatedBool_.Clone();
1195       repeatedString_ = other.repeatedString_.Clone();
1196       repeatedBytes_ = other.repeatedBytes_.Clone();
1197       repeatedGroup_ = other.repeatedGroup_.Clone();
1198       repeatedNestedMessage_ = other.repeatedNestedMessage_.Clone();
1199       repeatedForeignMessage_ = other.repeatedForeignMessage_.Clone();
1200       repeatedImportMessage_ = other.repeatedImportMessage_.Clone();
1201       repeatedNestedEnum_ = other.repeatedNestedEnum_.Clone();
1202       repeatedForeignEnum_ = other.repeatedForeignEnum_.Clone();
1203       repeatedImportEnum_ = other.repeatedImportEnum_.Clone();
1204       repeatedStringPiece_ = other.repeatedStringPiece_.Clone();
1205       repeatedCord_ = other.repeatedCord_.Clone();
1206       repeatedLazyMessage_ = other.repeatedLazyMessage_.Clone();
1207       defaultInt32_ = other.defaultInt32_;
1208       defaultInt64_ = other.defaultInt64_;
1209       defaultUint32_ = other.defaultUint32_;
1210       defaultUint64_ = other.defaultUint64_;
1211       defaultSint32_ = other.defaultSint32_;
1212       defaultSint64_ = other.defaultSint64_;
1213       defaultFixed32_ = other.defaultFixed32_;
1214       defaultFixed64_ = other.defaultFixed64_;
1215       defaultSfixed32_ = other.defaultSfixed32_;
1216       defaultSfixed64_ = other.defaultSfixed64_;
1217       defaultFloat_ = other.defaultFloat_;
1218       defaultDouble_ = other.defaultDouble_;
1219       defaultBool_ = other.defaultBool_;
1220       defaultString_ = other.defaultString_;
1221       defaultBytes_ = other.defaultBytes_;
1222       defaultNestedEnum_ = other.defaultNestedEnum_;
1223       defaultForeignEnum_ = other.defaultForeignEnum_;
1224       defaultImportEnum_ = other.defaultImportEnum_;
1225       defaultStringPiece_ = other.defaultStringPiece_;
1226       defaultCord_ = other.defaultCord_;
1227       switch (other.OneofFieldCase) {
1228         case OneofFieldOneofCase.OneofUint32:
1229           OneofUint32 = other.OneofUint32;
1230           break;
1231         case OneofFieldOneofCase.OneofNestedMessage:
1232           OneofNestedMessage = other.OneofNestedMessage.Clone();
1233           break;
1234         case OneofFieldOneofCase.OneofString:
1235           OneofString = other.OneofString;
1236           break;
1237         case OneofFieldOneofCase.OneofBytes:
1238           OneofBytes = other.OneofBytes;
1239           break;
1240       }
1241 
1242       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1243     }
1244 
1245     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()1246     public TestAllTypes Clone() {
1247       return new TestAllTypes(this);
1248     }
1249 
1250     /// <summary>Field number for the "optional_int32" field.</summary>
1251     public const int OptionalInt32FieldNumber = 1;
1252     private readonly static int OptionalInt32DefaultValue = 0;
1253 
1254     private int optionalInt32_;
1255     /// <summary>
1256     /// Singular
1257     /// </summary>
1258     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1259     public int OptionalInt32 {
1260       get { if ((_hasBits0 & 1) != 0) { return optionalInt32_; } else { return OptionalInt32DefaultValue; } }
1261       set {
1262         _hasBits0 |= 1;
1263         optionalInt32_ = value;
1264       }
1265     }
1266     /// <summary>Gets whether the "optional_int32" field is set</summary>
1267     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1268     public bool HasOptionalInt32 {
1269       get { return (_hasBits0 & 1) != 0; }
1270     }
1271     /// <summary>Clears the value of the "optional_int32" field</summary>
1272     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalInt32()1273     public void ClearOptionalInt32() {
1274       _hasBits0 &= ~1;
1275     }
1276 
1277     /// <summary>Field number for the "optional_int64" field.</summary>
1278     public const int OptionalInt64FieldNumber = 2;
1279     private readonly static long OptionalInt64DefaultValue = 0L;
1280 
1281     private long optionalInt64_;
1282     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1283     public long OptionalInt64 {
1284       get { if ((_hasBits0 & 2) != 0) { return optionalInt64_; } else { return OptionalInt64DefaultValue; } }
1285       set {
1286         _hasBits0 |= 2;
1287         optionalInt64_ = value;
1288       }
1289     }
1290     /// <summary>Gets whether the "optional_int64" field is set</summary>
1291     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1292     public bool HasOptionalInt64 {
1293       get { return (_hasBits0 & 2) != 0; }
1294     }
1295     /// <summary>Clears the value of the "optional_int64" field</summary>
1296     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalInt64()1297     public void ClearOptionalInt64() {
1298       _hasBits0 &= ~2;
1299     }
1300 
1301     /// <summary>Field number for the "optional_uint32" field.</summary>
1302     public const int OptionalUint32FieldNumber = 3;
1303     private readonly static uint OptionalUint32DefaultValue = 0;
1304 
1305     private uint optionalUint32_;
1306     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1307     public uint OptionalUint32 {
1308       get { if ((_hasBits0 & 4) != 0) { return optionalUint32_; } else { return OptionalUint32DefaultValue; } }
1309       set {
1310         _hasBits0 |= 4;
1311         optionalUint32_ = value;
1312       }
1313     }
1314     /// <summary>Gets whether the "optional_uint32" field is set</summary>
1315     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1316     public bool HasOptionalUint32 {
1317       get { return (_hasBits0 & 4) != 0; }
1318     }
1319     /// <summary>Clears the value of the "optional_uint32" field</summary>
1320     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalUint32()1321     public void ClearOptionalUint32() {
1322       _hasBits0 &= ~4;
1323     }
1324 
1325     /// <summary>Field number for the "optional_uint64" field.</summary>
1326     public const int OptionalUint64FieldNumber = 4;
1327     private readonly static ulong OptionalUint64DefaultValue = 0UL;
1328 
1329     private ulong optionalUint64_;
1330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1331     public ulong OptionalUint64 {
1332       get { if ((_hasBits0 & 8) != 0) { return optionalUint64_; } else { return OptionalUint64DefaultValue; } }
1333       set {
1334         _hasBits0 |= 8;
1335         optionalUint64_ = value;
1336       }
1337     }
1338     /// <summary>Gets whether the "optional_uint64" field is set</summary>
1339     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1340     public bool HasOptionalUint64 {
1341       get { return (_hasBits0 & 8) != 0; }
1342     }
1343     /// <summary>Clears the value of the "optional_uint64" field</summary>
1344     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalUint64()1345     public void ClearOptionalUint64() {
1346       _hasBits0 &= ~8;
1347     }
1348 
1349     /// <summary>Field number for the "optional_sint32" field.</summary>
1350     public const int OptionalSint32FieldNumber = 5;
1351     private readonly static int OptionalSint32DefaultValue = 0;
1352 
1353     private int optionalSint32_;
1354     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1355     public int OptionalSint32 {
1356       get { if ((_hasBits0 & 16) != 0) { return optionalSint32_; } else { return OptionalSint32DefaultValue; } }
1357       set {
1358         _hasBits0 |= 16;
1359         optionalSint32_ = value;
1360       }
1361     }
1362     /// <summary>Gets whether the "optional_sint32" field is set</summary>
1363     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1364     public bool HasOptionalSint32 {
1365       get { return (_hasBits0 & 16) != 0; }
1366     }
1367     /// <summary>Clears the value of the "optional_sint32" field</summary>
1368     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalSint32()1369     public void ClearOptionalSint32() {
1370       _hasBits0 &= ~16;
1371     }
1372 
1373     /// <summary>Field number for the "optional_sint64" field.</summary>
1374     public const int OptionalSint64FieldNumber = 6;
1375     private readonly static long OptionalSint64DefaultValue = 0L;
1376 
1377     private long optionalSint64_;
1378     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1379     public long OptionalSint64 {
1380       get { if ((_hasBits0 & 32) != 0) { return optionalSint64_; } else { return OptionalSint64DefaultValue; } }
1381       set {
1382         _hasBits0 |= 32;
1383         optionalSint64_ = value;
1384       }
1385     }
1386     /// <summary>Gets whether the "optional_sint64" field is set</summary>
1387     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1388     public bool HasOptionalSint64 {
1389       get { return (_hasBits0 & 32) != 0; }
1390     }
1391     /// <summary>Clears the value of the "optional_sint64" field</summary>
1392     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalSint64()1393     public void ClearOptionalSint64() {
1394       _hasBits0 &= ~32;
1395     }
1396 
1397     /// <summary>Field number for the "optional_fixed32" field.</summary>
1398     public const int OptionalFixed32FieldNumber = 7;
1399     private readonly static uint OptionalFixed32DefaultValue = 0;
1400 
1401     private uint optionalFixed32_;
1402     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1403     public uint OptionalFixed32 {
1404       get { if ((_hasBits0 & 64) != 0) { return optionalFixed32_; } else { return OptionalFixed32DefaultValue; } }
1405       set {
1406         _hasBits0 |= 64;
1407         optionalFixed32_ = value;
1408       }
1409     }
1410     /// <summary>Gets whether the "optional_fixed32" field is set</summary>
1411     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1412     public bool HasOptionalFixed32 {
1413       get { return (_hasBits0 & 64) != 0; }
1414     }
1415     /// <summary>Clears the value of the "optional_fixed32" field</summary>
1416     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalFixed32()1417     public void ClearOptionalFixed32() {
1418       _hasBits0 &= ~64;
1419     }
1420 
1421     /// <summary>Field number for the "optional_fixed64" field.</summary>
1422     public const int OptionalFixed64FieldNumber = 8;
1423     private readonly static ulong OptionalFixed64DefaultValue = 0UL;
1424 
1425     private ulong optionalFixed64_;
1426     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1427     public ulong OptionalFixed64 {
1428       get { if ((_hasBits0 & 128) != 0) { return optionalFixed64_; } else { return OptionalFixed64DefaultValue; } }
1429       set {
1430         _hasBits0 |= 128;
1431         optionalFixed64_ = value;
1432       }
1433     }
1434     /// <summary>Gets whether the "optional_fixed64" field is set</summary>
1435     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1436     public bool HasOptionalFixed64 {
1437       get { return (_hasBits0 & 128) != 0; }
1438     }
1439     /// <summary>Clears the value of the "optional_fixed64" field</summary>
1440     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalFixed64()1441     public void ClearOptionalFixed64() {
1442       _hasBits0 &= ~128;
1443     }
1444 
1445     /// <summary>Field number for the "optional_sfixed32" field.</summary>
1446     public const int OptionalSfixed32FieldNumber = 9;
1447     private readonly static int OptionalSfixed32DefaultValue = 0;
1448 
1449     private int optionalSfixed32_;
1450     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1451     public int OptionalSfixed32 {
1452       get { if ((_hasBits0 & 256) != 0) { return optionalSfixed32_; } else { return OptionalSfixed32DefaultValue; } }
1453       set {
1454         _hasBits0 |= 256;
1455         optionalSfixed32_ = value;
1456       }
1457     }
1458     /// <summary>Gets whether the "optional_sfixed32" field is set</summary>
1459     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1460     public bool HasOptionalSfixed32 {
1461       get { return (_hasBits0 & 256) != 0; }
1462     }
1463     /// <summary>Clears the value of the "optional_sfixed32" field</summary>
1464     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalSfixed32()1465     public void ClearOptionalSfixed32() {
1466       _hasBits0 &= ~256;
1467     }
1468 
1469     /// <summary>Field number for the "optional_sfixed64" field.</summary>
1470     public const int OptionalSfixed64FieldNumber = 10;
1471     private readonly static long OptionalSfixed64DefaultValue = 0L;
1472 
1473     private long optionalSfixed64_;
1474     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1475     public long OptionalSfixed64 {
1476       get { if ((_hasBits0 & 512) != 0) { return optionalSfixed64_; } else { return OptionalSfixed64DefaultValue; } }
1477       set {
1478         _hasBits0 |= 512;
1479         optionalSfixed64_ = value;
1480       }
1481     }
1482     /// <summary>Gets whether the "optional_sfixed64" field is set</summary>
1483     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1484     public bool HasOptionalSfixed64 {
1485       get { return (_hasBits0 & 512) != 0; }
1486     }
1487     /// <summary>Clears the value of the "optional_sfixed64" field</summary>
1488     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalSfixed64()1489     public void ClearOptionalSfixed64() {
1490       _hasBits0 &= ~512;
1491     }
1492 
1493     /// <summary>Field number for the "optional_float" field.</summary>
1494     public const int OptionalFloatFieldNumber = 11;
1495     private readonly static float OptionalFloatDefaultValue = 0F;
1496 
1497     private float optionalFloat_;
1498     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1499     public float OptionalFloat {
1500       get { if ((_hasBits0 & 1024) != 0) { return optionalFloat_; } else { return OptionalFloatDefaultValue; } }
1501       set {
1502         _hasBits0 |= 1024;
1503         optionalFloat_ = value;
1504       }
1505     }
1506     /// <summary>Gets whether the "optional_float" field is set</summary>
1507     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1508     public bool HasOptionalFloat {
1509       get { return (_hasBits0 & 1024) != 0; }
1510     }
1511     /// <summary>Clears the value of the "optional_float" field</summary>
1512     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalFloat()1513     public void ClearOptionalFloat() {
1514       _hasBits0 &= ~1024;
1515     }
1516 
1517     /// <summary>Field number for the "optional_double" field.</summary>
1518     public const int OptionalDoubleFieldNumber = 12;
1519     private readonly static double OptionalDoubleDefaultValue = 0D;
1520 
1521     private double optionalDouble_;
1522     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1523     public double OptionalDouble {
1524       get { if ((_hasBits0 & 2048) != 0) { return optionalDouble_; } else { return OptionalDoubleDefaultValue; } }
1525       set {
1526         _hasBits0 |= 2048;
1527         optionalDouble_ = value;
1528       }
1529     }
1530     /// <summary>Gets whether the "optional_double" field is set</summary>
1531     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1532     public bool HasOptionalDouble {
1533       get { return (_hasBits0 & 2048) != 0; }
1534     }
1535     /// <summary>Clears the value of the "optional_double" field</summary>
1536     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalDouble()1537     public void ClearOptionalDouble() {
1538       _hasBits0 &= ~2048;
1539     }
1540 
1541     /// <summary>Field number for the "optional_bool" field.</summary>
1542     public const int OptionalBoolFieldNumber = 13;
1543     private readonly static bool OptionalBoolDefaultValue = false;
1544 
1545     private bool optionalBool_;
1546     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1547     public bool OptionalBool {
1548       get { if ((_hasBits0 & 4096) != 0) { return optionalBool_; } else { return OptionalBoolDefaultValue; } }
1549       set {
1550         _hasBits0 |= 4096;
1551         optionalBool_ = value;
1552       }
1553     }
1554     /// <summary>Gets whether the "optional_bool" field is set</summary>
1555     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1556     public bool HasOptionalBool {
1557       get { return (_hasBits0 & 4096) != 0; }
1558     }
1559     /// <summary>Clears the value of the "optional_bool" field</summary>
1560     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalBool()1561     public void ClearOptionalBool() {
1562       _hasBits0 &= ~4096;
1563     }
1564 
1565     /// <summary>Field number for the "optional_string" field.</summary>
1566     public const int OptionalStringFieldNumber = 14;
1567     private readonly static string OptionalStringDefaultValue = "";
1568 
1569     private string optionalString_;
1570     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1571     public string OptionalString {
1572       get { return optionalString_ ?? OptionalStringDefaultValue; }
1573       set {
1574         optionalString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1575       }
1576     }
1577     /// <summary>Gets whether the "optional_string" field is set</summary>
1578     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1579     public bool HasOptionalString {
1580       get { return optionalString_ != null; }
1581     }
1582     /// <summary>Clears the value of the "optional_string" field</summary>
1583     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalString()1584     public void ClearOptionalString() {
1585       optionalString_ = null;
1586     }
1587 
1588     /// <summary>Field number for the "optional_bytes" field.</summary>
1589     public const int OptionalBytesFieldNumber = 15;
1590     private readonly static pb::ByteString OptionalBytesDefaultValue = pb::ByteString.Empty;
1591 
1592     private pb::ByteString optionalBytes_;
1593     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1594     public pb::ByteString OptionalBytes {
1595       get { return optionalBytes_ ?? OptionalBytesDefaultValue; }
1596       set {
1597         optionalBytes_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1598       }
1599     }
1600     /// <summary>Gets whether the "optional_bytes" field is set</summary>
1601     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1602     public bool HasOptionalBytes {
1603       get { return optionalBytes_ != null; }
1604     }
1605     /// <summary>Clears the value of the "optional_bytes" field</summary>
1606     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalBytes()1607     public void ClearOptionalBytes() {
1608       optionalBytes_ = null;
1609     }
1610 
1611     /// <summary>Field number for the "optionalgroup" field.</summary>
1612     public const int OptionalGroupFieldNumber = 16;
1613     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup optionalGroup_;
1614     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1615     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup OptionalGroup {
1616       get { return optionalGroup_; }
1617       set {
1618         optionalGroup_ = value;
1619       }
1620     }
1621     /// <summary>Gets whether the optionalgroup field is set</summary>
1622     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1623     public bool HasOptionalGroup {
1624       get { return optionalGroup_ != null; }
1625     }
1626     /// <summary>Clears the value of the optionalgroup field</summary>
1627     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalGroup()1628     public void ClearOptionalGroup() {
1629       optionalGroup_ = null;
1630     }
1631 
1632     /// <summary>Field number for the "optional_nested_message" field.</summary>
1633     public const int OptionalNestedMessageFieldNumber = 18;
1634     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
1635     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1636     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
1637       get { return optionalNestedMessage_; }
1638       set {
1639         optionalNestedMessage_ = value;
1640       }
1641     }
1642 
1643     /// <summary>Field number for the "optional_foreign_message" field.</summary>
1644     public const int OptionalForeignMessageFieldNumber = 19;
1645     private global::Google.Protobuf.TestProtos.Proto2.ForeignMessage optionalForeignMessage_;
1646     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1647     public global::Google.Protobuf.TestProtos.Proto2.ForeignMessage OptionalForeignMessage {
1648       get { return optionalForeignMessage_; }
1649       set {
1650         optionalForeignMessage_ = value;
1651       }
1652     }
1653 
1654     /// <summary>Field number for the "optional_import_message" field.</summary>
1655     public const int OptionalImportMessageFieldNumber = 20;
1656     private global::Google.Protobuf.TestProtos.Proto2.ImportMessage optionalImportMessage_;
1657     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1658     public global::Google.Protobuf.TestProtos.Proto2.ImportMessage OptionalImportMessage {
1659       get { return optionalImportMessage_; }
1660       set {
1661         optionalImportMessage_ = value;
1662       }
1663     }
1664 
1665     /// <summary>Field number for the "optional_nested_enum" field.</summary>
1666     public const int OptionalNestedEnumFieldNumber = 21;
1667     private readonly static global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum OptionalNestedEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum.Foo;
1668 
1669     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum optionalNestedEnum_;
1670     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1671     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
1672       get { if ((_hasBits0 & 8192) != 0) { return optionalNestedEnum_; } else { return OptionalNestedEnumDefaultValue; } }
1673       set {
1674         _hasBits0 |= 8192;
1675         optionalNestedEnum_ = value;
1676       }
1677     }
1678     /// <summary>Gets whether the "optional_nested_enum" field is set</summary>
1679     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1680     public bool HasOptionalNestedEnum {
1681       get { return (_hasBits0 & 8192) != 0; }
1682     }
1683     /// <summary>Clears the value of the "optional_nested_enum" field</summary>
1684     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalNestedEnum()1685     public void ClearOptionalNestedEnum() {
1686       _hasBits0 &= ~8192;
1687     }
1688 
1689     /// <summary>Field number for the "optional_foreign_enum" field.</summary>
1690     public const int OptionalForeignEnumFieldNumber = 22;
1691     private readonly static global::Google.Protobuf.TestProtos.Proto2.ForeignEnum OptionalForeignEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo;
1692 
1693     private global::Google.Protobuf.TestProtos.Proto2.ForeignEnum optionalForeignEnum_;
1694     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1695     public global::Google.Protobuf.TestProtos.Proto2.ForeignEnum OptionalForeignEnum {
1696       get { if ((_hasBits0 & 16384) != 0) { return optionalForeignEnum_; } else { return OptionalForeignEnumDefaultValue; } }
1697       set {
1698         _hasBits0 |= 16384;
1699         optionalForeignEnum_ = value;
1700       }
1701     }
1702     /// <summary>Gets whether the "optional_foreign_enum" field is set</summary>
1703     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1704     public bool HasOptionalForeignEnum {
1705       get { return (_hasBits0 & 16384) != 0; }
1706     }
1707     /// <summary>Clears the value of the "optional_foreign_enum" field</summary>
1708     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalForeignEnum()1709     public void ClearOptionalForeignEnum() {
1710       _hasBits0 &= ~16384;
1711     }
1712 
1713     /// <summary>Field number for the "optional_import_enum" field.</summary>
1714     public const int OptionalImportEnumFieldNumber = 23;
1715     private readonly static global::Google.Protobuf.TestProtos.Proto2.ImportEnum OptionalImportEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ImportEnum.ImportFoo;
1716 
1717     private global::Google.Protobuf.TestProtos.Proto2.ImportEnum optionalImportEnum_;
1718     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1719     public global::Google.Protobuf.TestProtos.Proto2.ImportEnum OptionalImportEnum {
1720       get { if ((_hasBits0 & 32768) != 0) { return optionalImportEnum_; } else { return OptionalImportEnumDefaultValue; } }
1721       set {
1722         _hasBits0 |= 32768;
1723         optionalImportEnum_ = value;
1724       }
1725     }
1726     /// <summary>Gets whether the "optional_import_enum" field is set</summary>
1727     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1728     public bool HasOptionalImportEnum {
1729       get { return (_hasBits0 & 32768) != 0; }
1730     }
1731     /// <summary>Clears the value of the "optional_import_enum" field</summary>
1732     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalImportEnum()1733     public void ClearOptionalImportEnum() {
1734       _hasBits0 &= ~32768;
1735     }
1736 
1737     /// <summary>Field number for the "optional_string_piece" field.</summary>
1738     public const int OptionalStringPieceFieldNumber = 24;
1739     private readonly static string OptionalStringPieceDefaultValue = "";
1740 
1741     private string optionalStringPiece_;
1742     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1743     public string OptionalStringPiece {
1744       get { return optionalStringPiece_ ?? OptionalStringPieceDefaultValue; }
1745       set {
1746         optionalStringPiece_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1747       }
1748     }
1749     /// <summary>Gets whether the "optional_string_piece" field is set</summary>
1750     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1751     public bool HasOptionalStringPiece {
1752       get { return optionalStringPiece_ != null; }
1753     }
1754     /// <summary>Clears the value of the "optional_string_piece" field</summary>
1755     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalStringPiece()1756     public void ClearOptionalStringPiece() {
1757       optionalStringPiece_ = null;
1758     }
1759 
1760     /// <summary>Field number for the "optional_cord" field.</summary>
1761     public const int OptionalCordFieldNumber = 25;
1762     private readonly static string OptionalCordDefaultValue = "";
1763 
1764     private string optionalCord_;
1765     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1766     public string OptionalCord {
1767       get { return optionalCord_ ?? OptionalCordDefaultValue; }
1768       set {
1769         optionalCord_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1770       }
1771     }
1772     /// <summary>Gets whether the "optional_cord" field is set</summary>
1773     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1774     public bool HasOptionalCord {
1775       get { return optionalCord_ != null; }
1776     }
1777     /// <summary>Clears the value of the "optional_cord" field</summary>
1778     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalCord()1779     public void ClearOptionalCord() {
1780       optionalCord_ = null;
1781     }
1782 
1783     /// <summary>Field number for the "optional_public_import_message" field.</summary>
1784     public const int OptionalPublicImportMessageFieldNumber = 26;
1785     private global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage optionalPublicImportMessage_;
1786     /// <summary>
1787     /// Defined in unittest_import_public.proto
1788     /// </summary>
1789     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1790     public global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage OptionalPublicImportMessage {
1791       get { return optionalPublicImportMessage_; }
1792       set {
1793         optionalPublicImportMessage_ = value;
1794       }
1795     }
1796 
1797     /// <summary>Field number for the "optional_lazy_message" field.</summary>
1798     public const int OptionalLazyMessageFieldNumber = 27;
1799     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage optionalLazyMessage_;
1800     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1801     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
1802       get { return optionalLazyMessage_; }
1803       set {
1804         optionalLazyMessage_ = value;
1805       }
1806     }
1807 
1808     /// <summary>Field number for the "repeated_int32" field.</summary>
1809     public const int RepeatedInt32FieldNumber = 31;
1810     private static readonly pb::FieldCodec<int> _repeated_repeatedInt32_codec
1811         = pb::FieldCodec.ForInt32(248);
1812     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
1813     /// <summary>
1814     /// Repeated
1815     /// </summary>
1816     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1817     public pbc::RepeatedField<int> RepeatedInt32 {
1818       get { return repeatedInt32_; }
1819     }
1820 
1821     /// <summary>Field number for the "repeated_int64" field.</summary>
1822     public const int RepeatedInt64FieldNumber = 32;
1823     private static readonly pb::FieldCodec<long> _repeated_repeatedInt64_codec
1824         = pb::FieldCodec.ForInt64(256);
1825     private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();
1826     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1827     public pbc::RepeatedField<long> RepeatedInt64 {
1828       get { return repeatedInt64_; }
1829     }
1830 
1831     /// <summary>Field number for the "repeated_uint32" field.</summary>
1832     public const int RepeatedUint32FieldNumber = 33;
1833     private static readonly pb::FieldCodec<uint> _repeated_repeatedUint32_codec
1834         = pb::FieldCodec.ForUInt32(264);
1835     private readonly pbc::RepeatedField<uint> repeatedUint32_ = new pbc::RepeatedField<uint>();
1836     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1837     public pbc::RepeatedField<uint> RepeatedUint32 {
1838       get { return repeatedUint32_; }
1839     }
1840 
1841     /// <summary>Field number for the "repeated_uint64" field.</summary>
1842     public const int RepeatedUint64FieldNumber = 34;
1843     private static readonly pb::FieldCodec<ulong> _repeated_repeatedUint64_codec
1844         = pb::FieldCodec.ForUInt64(272);
1845     private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();
1846     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1847     public pbc::RepeatedField<ulong> RepeatedUint64 {
1848       get { return repeatedUint64_; }
1849     }
1850 
1851     /// <summary>Field number for the "repeated_sint32" field.</summary>
1852     public const int RepeatedSint32FieldNumber = 35;
1853     private static readonly pb::FieldCodec<int> _repeated_repeatedSint32_codec
1854         = pb::FieldCodec.ForSInt32(280);
1855     private readonly pbc::RepeatedField<int> repeatedSint32_ = new pbc::RepeatedField<int>();
1856     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1857     public pbc::RepeatedField<int> RepeatedSint32 {
1858       get { return repeatedSint32_; }
1859     }
1860 
1861     /// <summary>Field number for the "repeated_sint64" field.</summary>
1862     public const int RepeatedSint64FieldNumber = 36;
1863     private static readonly pb::FieldCodec<long> _repeated_repeatedSint64_codec
1864         = pb::FieldCodec.ForSInt64(288);
1865     private readonly pbc::RepeatedField<long> repeatedSint64_ = new pbc::RepeatedField<long>();
1866     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1867     public pbc::RepeatedField<long> RepeatedSint64 {
1868       get { return repeatedSint64_; }
1869     }
1870 
1871     /// <summary>Field number for the "repeated_fixed32" field.</summary>
1872     public const int RepeatedFixed32FieldNumber = 37;
1873     private static readonly pb::FieldCodec<uint> _repeated_repeatedFixed32_codec
1874         = pb::FieldCodec.ForFixed32(301);
1875     private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();
1876     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1877     public pbc::RepeatedField<uint> RepeatedFixed32 {
1878       get { return repeatedFixed32_; }
1879     }
1880 
1881     /// <summary>Field number for the "repeated_fixed64" field.</summary>
1882     public const int RepeatedFixed64FieldNumber = 38;
1883     private static readonly pb::FieldCodec<ulong> _repeated_repeatedFixed64_codec
1884         = pb::FieldCodec.ForFixed64(305);
1885     private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();
1886     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1887     public pbc::RepeatedField<ulong> RepeatedFixed64 {
1888       get { return repeatedFixed64_; }
1889     }
1890 
1891     /// <summary>Field number for the "repeated_sfixed32" field.</summary>
1892     public const int RepeatedSfixed32FieldNumber = 39;
1893     private static readonly pb::FieldCodec<int> _repeated_repeatedSfixed32_codec
1894         = pb::FieldCodec.ForSFixed32(317);
1895     private readonly pbc::RepeatedField<int> repeatedSfixed32_ = new pbc::RepeatedField<int>();
1896     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1897     public pbc::RepeatedField<int> RepeatedSfixed32 {
1898       get { return repeatedSfixed32_; }
1899     }
1900 
1901     /// <summary>Field number for the "repeated_sfixed64" field.</summary>
1902     public const int RepeatedSfixed64FieldNumber = 40;
1903     private static readonly pb::FieldCodec<long> _repeated_repeatedSfixed64_codec
1904         = pb::FieldCodec.ForSFixed64(321);
1905     private readonly pbc::RepeatedField<long> repeatedSfixed64_ = new pbc::RepeatedField<long>();
1906     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1907     public pbc::RepeatedField<long> RepeatedSfixed64 {
1908       get { return repeatedSfixed64_; }
1909     }
1910 
1911     /// <summary>Field number for the "repeated_float" field.</summary>
1912     public const int RepeatedFloatFieldNumber = 41;
1913     private static readonly pb::FieldCodec<float> _repeated_repeatedFloat_codec
1914         = pb::FieldCodec.ForFloat(333);
1915     private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();
1916     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1917     public pbc::RepeatedField<float> RepeatedFloat {
1918       get { return repeatedFloat_; }
1919     }
1920 
1921     /// <summary>Field number for the "repeated_double" field.</summary>
1922     public const int RepeatedDoubleFieldNumber = 42;
1923     private static readonly pb::FieldCodec<double> _repeated_repeatedDouble_codec
1924         = pb::FieldCodec.ForDouble(337);
1925     private readonly pbc::RepeatedField<double> repeatedDouble_ = new pbc::RepeatedField<double>();
1926     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1927     public pbc::RepeatedField<double> RepeatedDouble {
1928       get { return repeatedDouble_; }
1929     }
1930 
1931     /// <summary>Field number for the "repeated_bool" field.</summary>
1932     public const int RepeatedBoolFieldNumber = 43;
1933     private static readonly pb::FieldCodec<bool> _repeated_repeatedBool_codec
1934         = pb::FieldCodec.ForBool(344);
1935     private readonly pbc::RepeatedField<bool> repeatedBool_ = new pbc::RepeatedField<bool>();
1936     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1937     public pbc::RepeatedField<bool> RepeatedBool {
1938       get { return repeatedBool_; }
1939     }
1940 
1941     /// <summary>Field number for the "repeated_string" field.</summary>
1942     public const int RepeatedStringFieldNumber = 44;
1943     private static readonly pb::FieldCodec<string> _repeated_repeatedString_codec
1944         = pb::FieldCodec.ForString(354);
1945     private readonly pbc::RepeatedField<string> repeatedString_ = new pbc::RepeatedField<string>();
1946     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1947     public pbc::RepeatedField<string> RepeatedString {
1948       get { return repeatedString_; }
1949     }
1950 
1951     /// <summary>Field number for the "repeated_bytes" field.</summary>
1952     public const int RepeatedBytesFieldNumber = 45;
1953     private static readonly pb::FieldCodec<pb::ByteString> _repeated_repeatedBytes_codec
1954         = pb::FieldCodec.ForBytes(362);
1955     private readonly pbc::RepeatedField<pb::ByteString> repeatedBytes_ = new pbc::RepeatedField<pb::ByteString>();
1956     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1957     public pbc::RepeatedField<pb::ByteString> RepeatedBytes {
1958       get { return repeatedBytes_; }
1959     }
1960 
1961     /// <summary>Field number for the "repeatedgroup" field.</summary>
1962     public const int RepeatedGroupFieldNumber = 46;
1963     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup> _repeated_repeatedGroup_codec
1964         = pb::FieldCodec.ForGroup(371, 372, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup.Parser);
1965     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup> repeatedGroup_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup>();
1966     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1967     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.RepeatedGroup> RepeatedGroup {
1968       get { return repeatedGroup_; }
1969     }
1970 
1971     /// <summary>Field number for the "repeated_nested_message" field.</summary>
1972     public const int RepeatedNestedMessageFieldNumber = 48;
1973     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> _repeated_repeatedNestedMessage_codec
1974         = pb::FieldCodec.ForMessage(386, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser);
1975     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>();
1976     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1977     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> RepeatedNestedMessage {
1978       get { return repeatedNestedMessage_; }
1979     }
1980 
1981     /// <summary>Field number for the "repeated_foreign_message" field.</summary>
1982     public const int RepeatedForeignMessageFieldNumber = 49;
1983     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> _repeated_repeatedForeignMessage_codec
1984         = pb::FieldCodec.ForMessage(394, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage.Parser);
1985     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> repeatedForeignMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage>();
1986     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1987     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> RepeatedForeignMessage {
1988       get { return repeatedForeignMessage_; }
1989     }
1990 
1991     /// <summary>Field number for the "repeated_import_message" field.</summary>
1992     public const int RepeatedImportMessageFieldNumber = 50;
1993     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ImportMessage> _repeated_repeatedImportMessage_codec
1994         = pb::FieldCodec.ForMessage(402, global::Google.Protobuf.TestProtos.Proto2.ImportMessage.Parser);
1995     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ImportMessage> repeatedImportMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ImportMessage>();
1996     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1997     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ImportMessage> RepeatedImportMessage {
1998       get { return repeatedImportMessage_; }
1999     }
2000 
2001     /// <summary>Field number for the "repeated_nested_enum" field.</summary>
2002     public const int RepeatedNestedEnumFieldNumber = 51;
2003     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum> _repeated_repeatedNestedEnum_codec
2004         = pb::FieldCodec.ForEnum(408, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) x);
2005     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum>();
2006     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2007     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum> RepeatedNestedEnum {
2008       get { return repeatedNestedEnum_; }
2009     }
2010 
2011     /// <summary>Field number for the "repeated_foreign_enum" field.</summary>
2012     public const int RepeatedForeignEnumFieldNumber = 52;
2013     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> _repeated_repeatedForeignEnum_codec
2014         = pb::FieldCodec.ForEnum(416, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x);
2015     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> repeatedForeignEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>();
2016     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2017     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> RepeatedForeignEnum {
2018       get { return repeatedForeignEnum_; }
2019     }
2020 
2021     /// <summary>Field number for the "repeated_import_enum" field.</summary>
2022     public const int RepeatedImportEnumFieldNumber = 53;
2023     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ImportEnum> _repeated_repeatedImportEnum_codec
2024         = pb::FieldCodec.ForEnum(424, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) x);
2025     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ImportEnum> repeatedImportEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ImportEnum>();
2026     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2027     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ImportEnum> RepeatedImportEnum {
2028       get { return repeatedImportEnum_; }
2029     }
2030 
2031     /// <summary>Field number for the "repeated_string_piece" field.</summary>
2032     public const int RepeatedStringPieceFieldNumber = 54;
2033     private static readonly pb::FieldCodec<string> _repeated_repeatedStringPiece_codec
2034         = pb::FieldCodec.ForString(434);
2035     private readonly pbc::RepeatedField<string> repeatedStringPiece_ = new pbc::RepeatedField<string>();
2036     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2037     public pbc::RepeatedField<string> RepeatedStringPiece {
2038       get { return repeatedStringPiece_; }
2039     }
2040 
2041     /// <summary>Field number for the "repeated_cord" field.</summary>
2042     public const int RepeatedCordFieldNumber = 55;
2043     private static readonly pb::FieldCodec<string> _repeated_repeatedCord_codec
2044         = pb::FieldCodec.ForString(442);
2045     private readonly pbc::RepeatedField<string> repeatedCord_ = new pbc::RepeatedField<string>();
2046     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2047     public pbc::RepeatedField<string> RepeatedCord {
2048       get { return repeatedCord_; }
2049     }
2050 
2051     /// <summary>Field number for the "repeated_lazy_message" field.</summary>
2052     public const int RepeatedLazyMessageFieldNumber = 57;
2053     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> _repeated_repeatedLazyMessage_codec
2054         = pb::FieldCodec.ForMessage(458, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage.Parser);
2055     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> repeatedLazyMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage>();
2056     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2057     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage> RepeatedLazyMessage {
2058       get { return repeatedLazyMessage_; }
2059     }
2060 
2061     /// <summary>Field number for the "default_int32" field.</summary>
2062     public const int DefaultInt32FieldNumber = 61;
2063     private readonly static int DefaultInt32DefaultValue = 41;
2064 
2065     private int defaultInt32_;
2066     /// <summary>
2067     /// Singular with defaults
2068     /// </summary>
2069     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2070     public int DefaultInt32 {
2071       get { if ((_hasBits0 & 65536) != 0) { return defaultInt32_; } else { return DefaultInt32DefaultValue; } }
2072       set {
2073         _hasBits0 |= 65536;
2074         defaultInt32_ = value;
2075       }
2076     }
2077     /// <summary>Gets whether the "default_int32" field is set</summary>
2078     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2079     public bool HasDefaultInt32 {
2080       get { return (_hasBits0 & 65536) != 0; }
2081     }
2082     /// <summary>Clears the value of the "default_int32" field</summary>
2083     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultInt32()2084     public void ClearDefaultInt32() {
2085       _hasBits0 &= ~65536;
2086     }
2087 
2088     /// <summary>Field number for the "default_int64" field.</summary>
2089     public const int DefaultInt64FieldNumber = 62;
2090     private readonly static long DefaultInt64DefaultValue = 42L;
2091 
2092     private long defaultInt64_;
2093     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2094     public long DefaultInt64 {
2095       get { if ((_hasBits0 & 131072) != 0) { return defaultInt64_; } else { return DefaultInt64DefaultValue; } }
2096       set {
2097         _hasBits0 |= 131072;
2098         defaultInt64_ = value;
2099       }
2100     }
2101     /// <summary>Gets whether the "default_int64" field is set</summary>
2102     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2103     public bool HasDefaultInt64 {
2104       get { return (_hasBits0 & 131072) != 0; }
2105     }
2106     /// <summary>Clears the value of the "default_int64" field</summary>
2107     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultInt64()2108     public void ClearDefaultInt64() {
2109       _hasBits0 &= ~131072;
2110     }
2111 
2112     /// <summary>Field number for the "default_uint32" field.</summary>
2113     public const int DefaultUint32FieldNumber = 63;
2114     private readonly static uint DefaultUint32DefaultValue = 43;
2115 
2116     private uint defaultUint32_;
2117     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2118     public uint DefaultUint32 {
2119       get { if ((_hasBits0 & 262144) != 0) { return defaultUint32_; } else { return DefaultUint32DefaultValue; } }
2120       set {
2121         _hasBits0 |= 262144;
2122         defaultUint32_ = value;
2123       }
2124     }
2125     /// <summary>Gets whether the "default_uint32" field is set</summary>
2126     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2127     public bool HasDefaultUint32 {
2128       get { return (_hasBits0 & 262144) != 0; }
2129     }
2130     /// <summary>Clears the value of the "default_uint32" field</summary>
2131     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultUint32()2132     public void ClearDefaultUint32() {
2133       _hasBits0 &= ~262144;
2134     }
2135 
2136     /// <summary>Field number for the "default_uint64" field.</summary>
2137     public const int DefaultUint64FieldNumber = 64;
2138     private readonly static ulong DefaultUint64DefaultValue = 44UL;
2139 
2140     private ulong defaultUint64_;
2141     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2142     public ulong DefaultUint64 {
2143       get { if ((_hasBits0 & 524288) != 0) { return defaultUint64_; } else { return DefaultUint64DefaultValue; } }
2144       set {
2145         _hasBits0 |= 524288;
2146         defaultUint64_ = value;
2147       }
2148     }
2149     /// <summary>Gets whether the "default_uint64" field is set</summary>
2150     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2151     public bool HasDefaultUint64 {
2152       get { return (_hasBits0 & 524288) != 0; }
2153     }
2154     /// <summary>Clears the value of the "default_uint64" field</summary>
2155     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultUint64()2156     public void ClearDefaultUint64() {
2157       _hasBits0 &= ~524288;
2158     }
2159 
2160     /// <summary>Field number for the "default_sint32" field.</summary>
2161     public const int DefaultSint32FieldNumber = 65;
2162     private readonly static int DefaultSint32DefaultValue = -45;
2163 
2164     private int defaultSint32_;
2165     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2166     public int DefaultSint32 {
2167       get { if ((_hasBits0 & 1048576) != 0) { return defaultSint32_; } else { return DefaultSint32DefaultValue; } }
2168       set {
2169         _hasBits0 |= 1048576;
2170         defaultSint32_ = value;
2171       }
2172     }
2173     /// <summary>Gets whether the "default_sint32" field is set</summary>
2174     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2175     public bool HasDefaultSint32 {
2176       get { return (_hasBits0 & 1048576) != 0; }
2177     }
2178     /// <summary>Clears the value of the "default_sint32" field</summary>
2179     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultSint32()2180     public void ClearDefaultSint32() {
2181       _hasBits0 &= ~1048576;
2182     }
2183 
2184     /// <summary>Field number for the "default_sint64" field.</summary>
2185     public const int DefaultSint64FieldNumber = 66;
2186     private readonly static long DefaultSint64DefaultValue = 46L;
2187 
2188     private long defaultSint64_;
2189     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2190     public long DefaultSint64 {
2191       get { if ((_hasBits0 & 2097152) != 0) { return defaultSint64_; } else { return DefaultSint64DefaultValue; } }
2192       set {
2193         _hasBits0 |= 2097152;
2194         defaultSint64_ = value;
2195       }
2196     }
2197     /// <summary>Gets whether the "default_sint64" field is set</summary>
2198     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2199     public bool HasDefaultSint64 {
2200       get { return (_hasBits0 & 2097152) != 0; }
2201     }
2202     /// <summary>Clears the value of the "default_sint64" field</summary>
2203     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultSint64()2204     public void ClearDefaultSint64() {
2205       _hasBits0 &= ~2097152;
2206     }
2207 
2208     /// <summary>Field number for the "default_fixed32" field.</summary>
2209     public const int DefaultFixed32FieldNumber = 67;
2210     private readonly static uint DefaultFixed32DefaultValue = 47;
2211 
2212     private uint defaultFixed32_;
2213     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2214     public uint DefaultFixed32 {
2215       get { if ((_hasBits0 & 4194304) != 0) { return defaultFixed32_; } else { return DefaultFixed32DefaultValue; } }
2216       set {
2217         _hasBits0 |= 4194304;
2218         defaultFixed32_ = value;
2219       }
2220     }
2221     /// <summary>Gets whether the "default_fixed32" field is set</summary>
2222     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2223     public bool HasDefaultFixed32 {
2224       get { return (_hasBits0 & 4194304) != 0; }
2225     }
2226     /// <summary>Clears the value of the "default_fixed32" field</summary>
2227     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultFixed32()2228     public void ClearDefaultFixed32() {
2229       _hasBits0 &= ~4194304;
2230     }
2231 
2232     /// <summary>Field number for the "default_fixed64" field.</summary>
2233     public const int DefaultFixed64FieldNumber = 68;
2234     private readonly static ulong DefaultFixed64DefaultValue = 48UL;
2235 
2236     private ulong defaultFixed64_;
2237     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2238     public ulong DefaultFixed64 {
2239       get { if ((_hasBits0 & 8388608) != 0) { return defaultFixed64_; } else { return DefaultFixed64DefaultValue; } }
2240       set {
2241         _hasBits0 |= 8388608;
2242         defaultFixed64_ = value;
2243       }
2244     }
2245     /// <summary>Gets whether the "default_fixed64" field is set</summary>
2246     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2247     public bool HasDefaultFixed64 {
2248       get { return (_hasBits0 & 8388608) != 0; }
2249     }
2250     /// <summary>Clears the value of the "default_fixed64" field</summary>
2251     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultFixed64()2252     public void ClearDefaultFixed64() {
2253       _hasBits0 &= ~8388608;
2254     }
2255 
2256     /// <summary>Field number for the "default_sfixed32" field.</summary>
2257     public const int DefaultSfixed32FieldNumber = 69;
2258     private readonly static int DefaultSfixed32DefaultValue = 49;
2259 
2260     private int defaultSfixed32_;
2261     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2262     public int DefaultSfixed32 {
2263       get { if ((_hasBits0 & 16777216) != 0) { return defaultSfixed32_; } else { return DefaultSfixed32DefaultValue; } }
2264       set {
2265         _hasBits0 |= 16777216;
2266         defaultSfixed32_ = value;
2267       }
2268     }
2269     /// <summary>Gets whether the "default_sfixed32" field is set</summary>
2270     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2271     public bool HasDefaultSfixed32 {
2272       get { return (_hasBits0 & 16777216) != 0; }
2273     }
2274     /// <summary>Clears the value of the "default_sfixed32" field</summary>
2275     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultSfixed32()2276     public void ClearDefaultSfixed32() {
2277       _hasBits0 &= ~16777216;
2278     }
2279 
2280     /// <summary>Field number for the "default_sfixed64" field.</summary>
2281     public const int DefaultSfixed64FieldNumber = 70;
2282     private readonly static long DefaultSfixed64DefaultValue = -50L;
2283 
2284     private long defaultSfixed64_;
2285     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2286     public long DefaultSfixed64 {
2287       get { if ((_hasBits0 & 33554432) != 0) { return defaultSfixed64_; } else { return DefaultSfixed64DefaultValue; } }
2288       set {
2289         _hasBits0 |= 33554432;
2290         defaultSfixed64_ = value;
2291       }
2292     }
2293     /// <summary>Gets whether the "default_sfixed64" field is set</summary>
2294     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2295     public bool HasDefaultSfixed64 {
2296       get { return (_hasBits0 & 33554432) != 0; }
2297     }
2298     /// <summary>Clears the value of the "default_sfixed64" field</summary>
2299     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultSfixed64()2300     public void ClearDefaultSfixed64() {
2301       _hasBits0 &= ~33554432;
2302     }
2303 
2304     /// <summary>Field number for the "default_float" field.</summary>
2305     public const int DefaultFloatFieldNumber = 71;
2306     private readonly static float DefaultFloatDefaultValue = 51.5F;
2307 
2308     private float defaultFloat_;
2309     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2310     public float DefaultFloat {
2311       get { if ((_hasBits0 & 67108864) != 0) { return defaultFloat_; } else { return DefaultFloatDefaultValue; } }
2312       set {
2313         _hasBits0 |= 67108864;
2314         defaultFloat_ = value;
2315       }
2316     }
2317     /// <summary>Gets whether the "default_float" field is set</summary>
2318     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2319     public bool HasDefaultFloat {
2320       get { return (_hasBits0 & 67108864) != 0; }
2321     }
2322     /// <summary>Clears the value of the "default_float" field</summary>
2323     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultFloat()2324     public void ClearDefaultFloat() {
2325       _hasBits0 &= ~67108864;
2326     }
2327 
2328     /// <summary>Field number for the "default_double" field.</summary>
2329     public const int DefaultDoubleFieldNumber = 72;
2330     private readonly static double DefaultDoubleDefaultValue = 52000D;
2331 
2332     private double defaultDouble_;
2333     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2334     public double DefaultDouble {
2335       get { if ((_hasBits0 & 134217728) != 0) { return defaultDouble_; } else { return DefaultDoubleDefaultValue; } }
2336       set {
2337         _hasBits0 |= 134217728;
2338         defaultDouble_ = value;
2339       }
2340     }
2341     /// <summary>Gets whether the "default_double" field is set</summary>
2342     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2343     public bool HasDefaultDouble {
2344       get { return (_hasBits0 & 134217728) != 0; }
2345     }
2346     /// <summary>Clears the value of the "default_double" field</summary>
2347     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultDouble()2348     public void ClearDefaultDouble() {
2349       _hasBits0 &= ~134217728;
2350     }
2351 
2352     /// <summary>Field number for the "default_bool" field.</summary>
2353     public const int DefaultBoolFieldNumber = 73;
2354     private readonly static bool DefaultBoolDefaultValue = true;
2355 
2356     private bool defaultBool_;
2357     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2358     public bool DefaultBool {
2359       get { if ((_hasBits0 & 268435456) != 0) { return defaultBool_; } else { return DefaultBoolDefaultValue; } }
2360       set {
2361         _hasBits0 |= 268435456;
2362         defaultBool_ = value;
2363       }
2364     }
2365     /// <summary>Gets whether the "default_bool" field is set</summary>
2366     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2367     public bool HasDefaultBool {
2368       get { return (_hasBits0 & 268435456) != 0; }
2369     }
2370     /// <summary>Clears the value of the "default_bool" field</summary>
2371     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultBool()2372     public void ClearDefaultBool() {
2373       _hasBits0 &= ~268435456;
2374     }
2375 
2376     /// <summary>Field number for the "default_string" field.</summary>
2377     public const int DefaultStringFieldNumber = 74;
2378     private readonly static string DefaultStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsbG8="), 0, 5);
2379 
2380     private string defaultString_;
2381     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2382     public string DefaultString {
2383       get { return defaultString_ ?? DefaultStringDefaultValue; }
2384       set {
2385         defaultString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2386       }
2387     }
2388     /// <summary>Gets whether the "default_string" field is set</summary>
2389     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2390     public bool HasDefaultString {
2391       get { return defaultString_ != null; }
2392     }
2393     /// <summary>Clears the value of the "default_string" field</summary>
2394     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultString()2395     public void ClearDefaultString() {
2396       defaultString_ = null;
2397     }
2398 
2399     /// <summary>Field number for the "default_bytes" field.</summary>
2400     public const int DefaultBytesFieldNumber = 75;
2401     private readonly static pb::ByteString DefaultBytesDefaultValue = pb::ByteString.FromBase64("d29ybGQ=");
2402 
2403     private pb::ByteString defaultBytes_;
2404     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2405     public pb::ByteString DefaultBytes {
2406       get { return defaultBytes_ ?? DefaultBytesDefaultValue; }
2407       set {
2408         defaultBytes_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2409       }
2410     }
2411     /// <summary>Gets whether the "default_bytes" field is set</summary>
2412     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2413     public bool HasDefaultBytes {
2414       get { return defaultBytes_ != null; }
2415     }
2416     /// <summary>Clears the value of the "default_bytes" field</summary>
2417     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultBytes()2418     public void ClearDefaultBytes() {
2419       defaultBytes_ = null;
2420     }
2421 
2422     /// <summary>Field number for the "default_nested_enum" field.</summary>
2423     public const int DefaultNestedEnumFieldNumber = 81;
2424     private readonly static global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum DefaultNestedEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum.Bar;
2425 
2426     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum defaultNestedEnum_;
2427     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2428     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
2429       get { if ((_hasBits0 & 536870912) != 0) { return defaultNestedEnum_; } else { return DefaultNestedEnumDefaultValue; } }
2430       set {
2431         _hasBits0 |= 536870912;
2432         defaultNestedEnum_ = value;
2433       }
2434     }
2435     /// <summary>Gets whether the "default_nested_enum" field is set</summary>
2436     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2437     public bool HasDefaultNestedEnum {
2438       get { return (_hasBits0 & 536870912) != 0; }
2439     }
2440     /// <summary>Clears the value of the "default_nested_enum" field</summary>
2441     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultNestedEnum()2442     public void ClearDefaultNestedEnum() {
2443       _hasBits0 &= ~536870912;
2444     }
2445 
2446     /// <summary>Field number for the "default_foreign_enum" field.</summary>
2447     public const int DefaultForeignEnumFieldNumber = 82;
2448     private readonly static global::Google.Protobuf.TestProtos.Proto2.ForeignEnum DefaultForeignEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignBar;
2449 
2450     private global::Google.Protobuf.TestProtos.Proto2.ForeignEnum defaultForeignEnum_;
2451     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2452     public global::Google.Protobuf.TestProtos.Proto2.ForeignEnum DefaultForeignEnum {
2453       get { if ((_hasBits0 & 1073741824) != 0) { return defaultForeignEnum_; } else { return DefaultForeignEnumDefaultValue; } }
2454       set {
2455         _hasBits0 |= 1073741824;
2456         defaultForeignEnum_ = value;
2457       }
2458     }
2459     /// <summary>Gets whether the "default_foreign_enum" field is set</summary>
2460     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2461     public bool HasDefaultForeignEnum {
2462       get { return (_hasBits0 & 1073741824) != 0; }
2463     }
2464     /// <summary>Clears the value of the "default_foreign_enum" field</summary>
2465     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultForeignEnum()2466     public void ClearDefaultForeignEnum() {
2467       _hasBits0 &= ~1073741824;
2468     }
2469 
2470     /// <summary>Field number for the "default_import_enum" field.</summary>
2471     public const int DefaultImportEnumFieldNumber = 83;
2472     private readonly static global::Google.Protobuf.TestProtos.Proto2.ImportEnum DefaultImportEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ImportEnum.ImportBar;
2473 
2474     private global::Google.Protobuf.TestProtos.Proto2.ImportEnum defaultImportEnum_;
2475     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2476     public global::Google.Protobuf.TestProtos.Proto2.ImportEnum DefaultImportEnum {
2477       get { if ((_hasBits0 & -2147483648) != 0) { return defaultImportEnum_; } else { return DefaultImportEnumDefaultValue; } }
2478       set {
2479         _hasBits0 |= -2147483648;
2480         defaultImportEnum_ = value;
2481       }
2482     }
2483     /// <summary>Gets whether the "default_import_enum" field is set</summary>
2484     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2485     public bool HasDefaultImportEnum {
2486       get { return (_hasBits0 & -2147483648) != 0; }
2487     }
2488     /// <summary>Clears the value of the "default_import_enum" field</summary>
2489     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultImportEnum()2490     public void ClearDefaultImportEnum() {
2491       _hasBits0 &= ~-2147483648;
2492     }
2493 
2494     /// <summary>Field number for the "default_string_piece" field.</summary>
2495     public const int DefaultStringPieceFieldNumber = 84;
2496     private readonly static string DefaultStringPieceDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWJj"), 0, 3);
2497 
2498     private string defaultStringPiece_;
2499     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2500     public string DefaultStringPiece {
2501       get { return defaultStringPiece_ ?? DefaultStringPieceDefaultValue; }
2502       set {
2503         defaultStringPiece_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2504       }
2505     }
2506     /// <summary>Gets whether the "default_string_piece" field is set</summary>
2507     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2508     public bool HasDefaultStringPiece {
2509       get { return defaultStringPiece_ != null; }
2510     }
2511     /// <summary>Clears the value of the "default_string_piece" field</summary>
2512     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultStringPiece()2513     public void ClearDefaultStringPiece() {
2514       defaultStringPiece_ = null;
2515     }
2516 
2517     /// <summary>Field number for the "default_cord" field.</summary>
2518     public const int DefaultCordFieldNumber = 85;
2519     private readonly static string DefaultCordDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIz"), 0, 3);
2520 
2521     private string defaultCord_;
2522     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2523     public string DefaultCord {
2524       get { return defaultCord_ ?? DefaultCordDefaultValue; }
2525       set {
2526         defaultCord_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2527       }
2528     }
2529     /// <summary>Gets whether the "default_cord" field is set</summary>
2530     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2531     public bool HasDefaultCord {
2532       get { return defaultCord_ != null; }
2533     }
2534     /// <summary>Clears the value of the "default_cord" field</summary>
2535     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDefaultCord()2536     public void ClearDefaultCord() {
2537       defaultCord_ = null;
2538     }
2539 
2540     /// <summary>Field number for the "oneof_uint32" field.</summary>
2541     public const int OneofUint32FieldNumber = 111;
2542     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2543     public uint OneofUint32 {
2544       get { return HasOneofUint32 ? (uint) oneofField_ : 0; }
2545       set {
2546         oneofField_ = value;
2547         oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
2548       }
2549     }
2550     /// <summary>Gets whether the "oneof_uint32" field is set</summary>
2551     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2552     public bool HasOneofUint32 {
2553       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
2554     }
2555     /// <summary> Clears the value of the oneof if it's currently set to "oneof_uint32" </summary>
2556     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofUint32()2557     public void ClearOneofUint32() {
2558       if (HasOneofUint32) {
2559         ClearOneofField();
2560       }
2561     }
2562 
2563     /// <summary>Field number for the "oneof_nested_message" field.</summary>
2564     public const int OneofNestedMessageFieldNumber = 112;
2565     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2566     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage OneofNestedMessage {
2567       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage) oneofField_ : null; }
2568       set {
2569         oneofField_ = value;
2570         oneofFieldCase_ = value == null ? OneofFieldOneofCase.None : OneofFieldOneofCase.OneofNestedMessage;
2571       }
2572     }
2573 
2574     /// <summary>Field number for the "oneof_string" field.</summary>
2575     public const int OneofStringFieldNumber = 113;
2576     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2577     public string OneofString {
2578       get { return HasOneofString ? (string) oneofField_ : ""; }
2579       set {
2580         oneofField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2581         oneofFieldCase_ = OneofFieldOneofCase.OneofString;
2582       }
2583     }
2584     /// <summary>Gets whether the "oneof_string" field is set</summary>
2585     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2586     public bool HasOneofString {
2587       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
2588     }
2589     /// <summary> Clears the value of the oneof if it's currently set to "oneof_string" </summary>
2590     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofString()2591     public void ClearOneofString() {
2592       if (HasOneofString) {
2593         ClearOneofField();
2594       }
2595     }
2596 
2597     /// <summary>Field number for the "oneof_bytes" field.</summary>
2598     public const int OneofBytesFieldNumber = 114;
2599     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2600     public pb::ByteString OneofBytes {
2601       get { return HasOneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
2602       set {
2603         oneofField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2604         oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
2605       }
2606     }
2607     /// <summary>Gets whether the "oneof_bytes" field is set</summary>
2608     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2609     public bool HasOneofBytes {
2610       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
2611     }
2612     /// <summary> Clears the value of the oneof if it's currently set to "oneof_bytes" </summary>
2613     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofBytes()2614     public void ClearOneofBytes() {
2615       if (HasOneofBytes) {
2616         ClearOneofField();
2617       }
2618     }
2619 
2620     private object oneofField_;
2621     /// <summary>Enum of possible cases for the "oneof_field" oneof.</summary>
2622     public enum OneofFieldOneofCase {
2623       None = 0,
2624       OneofUint32 = 111,
2625       OneofNestedMessage = 112,
2626       OneofString = 113,
2627       OneofBytes = 114,
2628     }
2629     private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
2630     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2631     public OneofFieldOneofCase OneofFieldCase {
2632       get { return oneofFieldCase_; }
2633     }
2634 
2635     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofField()2636     public void ClearOneofField() {
2637       oneofFieldCase_ = OneofFieldOneofCase.None;
2638       oneofField_ = null;
2639     }
2640 
2641     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)2642     public override bool Equals(object other) {
2643       return Equals(other as TestAllTypes);
2644     }
2645 
2646     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestAllTypes other)2647     public bool Equals(TestAllTypes other) {
2648       if (ReferenceEquals(other, null)) {
2649         return false;
2650       }
2651       if (ReferenceEquals(other, this)) {
2652         return true;
2653       }
2654       if (OptionalInt32 != other.OptionalInt32) return false;
2655       if (OptionalInt64 != other.OptionalInt64) return false;
2656       if (OptionalUint32 != other.OptionalUint32) return false;
2657       if (OptionalUint64 != other.OptionalUint64) return false;
2658       if (OptionalSint32 != other.OptionalSint32) return false;
2659       if (OptionalSint64 != other.OptionalSint64) return false;
2660       if (OptionalFixed32 != other.OptionalFixed32) return false;
2661       if (OptionalFixed64 != other.OptionalFixed64) return false;
2662       if (OptionalSfixed32 != other.OptionalSfixed32) return false;
2663       if (OptionalSfixed64 != other.OptionalSfixed64) return false;
2664       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(OptionalFloat, other.OptionalFloat)) return false;
2665       if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(OptionalDouble, other.OptionalDouble)) return false;
2666       if (OptionalBool != other.OptionalBool) return false;
2667       if (OptionalString != other.OptionalString) return false;
2668       if (OptionalBytes != other.OptionalBytes) return false;
2669       if (!object.Equals(OptionalGroup, other.OptionalGroup)) return false;
2670       if (!object.Equals(OptionalNestedMessage, other.OptionalNestedMessage)) return false;
2671       if (!object.Equals(OptionalForeignMessage, other.OptionalForeignMessage)) return false;
2672       if (!object.Equals(OptionalImportMessage, other.OptionalImportMessage)) return false;
2673       if (OptionalNestedEnum != other.OptionalNestedEnum) return false;
2674       if (OptionalForeignEnum != other.OptionalForeignEnum) return false;
2675       if (OptionalImportEnum != other.OptionalImportEnum) return false;
2676       if (OptionalStringPiece != other.OptionalStringPiece) return false;
2677       if (OptionalCord != other.OptionalCord) return false;
2678       if (!object.Equals(OptionalPublicImportMessage, other.OptionalPublicImportMessage)) return false;
2679       if (!object.Equals(OptionalLazyMessage, other.OptionalLazyMessage)) return false;
2680       if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;
2681       if(!repeatedInt64_.Equals(other.repeatedInt64_)) return false;
2682       if(!repeatedUint32_.Equals(other.repeatedUint32_)) return false;
2683       if(!repeatedUint64_.Equals(other.repeatedUint64_)) return false;
2684       if(!repeatedSint32_.Equals(other.repeatedSint32_)) return false;
2685       if(!repeatedSint64_.Equals(other.repeatedSint64_)) return false;
2686       if(!repeatedFixed32_.Equals(other.repeatedFixed32_)) return false;
2687       if(!repeatedFixed64_.Equals(other.repeatedFixed64_)) return false;
2688       if(!repeatedSfixed32_.Equals(other.repeatedSfixed32_)) return false;
2689       if(!repeatedSfixed64_.Equals(other.repeatedSfixed64_)) return false;
2690       if(!repeatedFloat_.Equals(other.repeatedFloat_)) return false;
2691       if(!repeatedDouble_.Equals(other.repeatedDouble_)) return false;
2692       if(!repeatedBool_.Equals(other.repeatedBool_)) return false;
2693       if(!repeatedString_.Equals(other.repeatedString_)) return false;
2694       if(!repeatedBytes_.Equals(other.repeatedBytes_)) return false;
2695       if(!repeatedGroup_.Equals(other.repeatedGroup_)) return false;
2696       if(!repeatedNestedMessage_.Equals(other.repeatedNestedMessage_)) return false;
2697       if(!repeatedForeignMessage_.Equals(other.repeatedForeignMessage_)) return false;
2698       if(!repeatedImportMessage_.Equals(other.repeatedImportMessage_)) return false;
2699       if(!repeatedNestedEnum_.Equals(other.repeatedNestedEnum_)) return false;
2700       if(!repeatedForeignEnum_.Equals(other.repeatedForeignEnum_)) return false;
2701       if(!repeatedImportEnum_.Equals(other.repeatedImportEnum_)) return false;
2702       if(!repeatedStringPiece_.Equals(other.repeatedStringPiece_)) return false;
2703       if(!repeatedCord_.Equals(other.repeatedCord_)) return false;
2704       if(!repeatedLazyMessage_.Equals(other.repeatedLazyMessage_)) return false;
2705       if (DefaultInt32 != other.DefaultInt32) return false;
2706       if (DefaultInt64 != other.DefaultInt64) return false;
2707       if (DefaultUint32 != other.DefaultUint32) return false;
2708       if (DefaultUint64 != other.DefaultUint64) return false;
2709       if (DefaultSint32 != other.DefaultSint32) return false;
2710       if (DefaultSint64 != other.DefaultSint64) return false;
2711       if (DefaultFixed32 != other.DefaultFixed32) return false;
2712       if (DefaultFixed64 != other.DefaultFixed64) return false;
2713       if (DefaultSfixed32 != other.DefaultSfixed32) return false;
2714       if (DefaultSfixed64 != other.DefaultSfixed64) return false;
2715       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DefaultFloat, other.DefaultFloat)) return false;
2716       if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(DefaultDouble, other.DefaultDouble)) return false;
2717       if (DefaultBool != other.DefaultBool) return false;
2718       if (DefaultString != other.DefaultString) return false;
2719       if (DefaultBytes != other.DefaultBytes) return false;
2720       if (DefaultNestedEnum != other.DefaultNestedEnum) return false;
2721       if (DefaultForeignEnum != other.DefaultForeignEnum) return false;
2722       if (DefaultImportEnum != other.DefaultImportEnum) return false;
2723       if (DefaultStringPiece != other.DefaultStringPiece) return false;
2724       if (DefaultCord != other.DefaultCord) return false;
2725       if (OneofUint32 != other.OneofUint32) return false;
2726       if (!object.Equals(OneofNestedMessage, other.OneofNestedMessage)) return false;
2727       if (OneofString != other.OneofString) return false;
2728       if (OneofBytes != other.OneofBytes) return false;
2729       if (OneofFieldCase != other.OneofFieldCase) return false;
2730       return Equals(_unknownFields, other._unknownFields);
2731     }
2732 
2733     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()2734     public override int GetHashCode() {
2735       int hash = 1;
2736       if (HasOptionalInt32) hash ^= OptionalInt32.GetHashCode();
2737       if (HasOptionalInt64) hash ^= OptionalInt64.GetHashCode();
2738       if (HasOptionalUint32) hash ^= OptionalUint32.GetHashCode();
2739       if (HasOptionalUint64) hash ^= OptionalUint64.GetHashCode();
2740       if (HasOptionalSint32) hash ^= OptionalSint32.GetHashCode();
2741       if (HasOptionalSint64) hash ^= OptionalSint64.GetHashCode();
2742       if (HasOptionalFixed32) hash ^= OptionalFixed32.GetHashCode();
2743       if (HasOptionalFixed64) hash ^= OptionalFixed64.GetHashCode();
2744       if (HasOptionalSfixed32) hash ^= OptionalSfixed32.GetHashCode();
2745       if (HasOptionalSfixed64) hash ^= OptionalSfixed64.GetHashCode();
2746       if (HasOptionalFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(OptionalFloat);
2747       if (HasOptionalDouble) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(OptionalDouble);
2748       if (HasOptionalBool) hash ^= OptionalBool.GetHashCode();
2749       if (HasOptionalString) hash ^= OptionalString.GetHashCode();
2750       if (HasOptionalBytes) hash ^= OptionalBytes.GetHashCode();
2751       if (HasOptionalGroup) hash ^= OptionalGroup.GetHashCode();
2752       if (optionalNestedMessage_ != null) hash ^= OptionalNestedMessage.GetHashCode();
2753       if (optionalForeignMessage_ != null) hash ^= OptionalForeignMessage.GetHashCode();
2754       if (optionalImportMessage_ != null) hash ^= OptionalImportMessage.GetHashCode();
2755       if (HasOptionalNestedEnum) hash ^= OptionalNestedEnum.GetHashCode();
2756       if (HasOptionalForeignEnum) hash ^= OptionalForeignEnum.GetHashCode();
2757       if (HasOptionalImportEnum) hash ^= OptionalImportEnum.GetHashCode();
2758       if (HasOptionalStringPiece) hash ^= OptionalStringPiece.GetHashCode();
2759       if (HasOptionalCord) hash ^= OptionalCord.GetHashCode();
2760       if (optionalPublicImportMessage_ != null) hash ^= OptionalPublicImportMessage.GetHashCode();
2761       if (optionalLazyMessage_ != null) hash ^= OptionalLazyMessage.GetHashCode();
2762       hash ^= repeatedInt32_.GetHashCode();
2763       hash ^= repeatedInt64_.GetHashCode();
2764       hash ^= repeatedUint32_.GetHashCode();
2765       hash ^= repeatedUint64_.GetHashCode();
2766       hash ^= repeatedSint32_.GetHashCode();
2767       hash ^= repeatedSint64_.GetHashCode();
2768       hash ^= repeatedFixed32_.GetHashCode();
2769       hash ^= repeatedFixed64_.GetHashCode();
2770       hash ^= repeatedSfixed32_.GetHashCode();
2771       hash ^= repeatedSfixed64_.GetHashCode();
2772       hash ^= repeatedFloat_.GetHashCode();
2773       hash ^= repeatedDouble_.GetHashCode();
2774       hash ^= repeatedBool_.GetHashCode();
2775       hash ^= repeatedString_.GetHashCode();
2776       hash ^= repeatedBytes_.GetHashCode();
2777       hash ^= repeatedGroup_.GetHashCode();
2778       hash ^= repeatedNestedMessage_.GetHashCode();
2779       hash ^= repeatedForeignMessage_.GetHashCode();
2780       hash ^= repeatedImportMessage_.GetHashCode();
2781       hash ^= repeatedNestedEnum_.GetHashCode();
2782       hash ^= repeatedForeignEnum_.GetHashCode();
2783       hash ^= repeatedImportEnum_.GetHashCode();
2784       hash ^= repeatedStringPiece_.GetHashCode();
2785       hash ^= repeatedCord_.GetHashCode();
2786       hash ^= repeatedLazyMessage_.GetHashCode();
2787       if (HasDefaultInt32) hash ^= DefaultInt32.GetHashCode();
2788       if (HasDefaultInt64) hash ^= DefaultInt64.GetHashCode();
2789       if (HasDefaultUint32) hash ^= DefaultUint32.GetHashCode();
2790       if (HasDefaultUint64) hash ^= DefaultUint64.GetHashCode();
2791       if (HasDefaultSint32) hash ^= DefaultSint32.GetHashCode();
2792       if (HasDefaultSint64) hash ^= DefaultSint64.GetHashCode();
2793       if (HasDefaultFixed32) hash ^= DefaultFixed32.GetHashCode();
2794       if (HasDefaultFixed64) hash ^= DefaultFixed64.GetHashCode();
2795       if (HasDefaultSfixed32) hash ^= DefaultSfixed32.GetHashCode();
2796       if (HasDefaultSfixed64) hash ^= DefaultSfixed64.GetHashCode();
2797       if (HasDefaultFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DefaultFloat);
2798       if (HasDefaultDouble) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(DefaultDouble);
2799       if (HasDefaultBool) hash ^= DefaultBool.GetHashCode();
2800       if (HasDefaultString) hash ^= DefaultString.GetHashCode();
2801       if (HasDefaultBytes) hash ^= DefaultBytes.GetHashCode();
2802       if (HasDefaultNestedEnum) hash ^= DefaultNestedEnum.GetHashCode();
2803       if (HasDefaultForeignEnum) hash ^= DefaultForeignEnum.GetHashCode();
2804       if (HasDefaultImportEnum) hash ^= DefaultImportEnum.GetHashCode();
2805       if (HasDefaultStringPiece) hash ^= DefaultStringPiece.GetHashCode();
2806       if (HasDefaultCord) hash ^= DefaultCord.GetHashCode();
2807       if (HasOneofUint32) hash ^= OneofUint32.GetHashCode();
2808       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) hash ^= OneofNestedMessage.GetHashCode();
2809       if (HasOneofString) hash ^= OneofString.GetHashCode();
2810       if (HasOneofBytes) hash ^= OneofBytes.GetHashCode();
2811       hash ^= (int) oneofFieldCase_;
2812       if (_unknownFields != null) {
2813         hash ^= _unknownFields.GetHashCode();
2814       }
2815       return hash;
2816     }
2817 
2818     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()2819     public override string ToString() {
2820       return pb::JsonFormatter.ToDiagnosticString(this);
2821     }
2822 
2823     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)2824     public void WriteTo(pb::CodedOutputStream output) {
2825     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2826       output.WriteRawMessage(this);
2827     #else
2828       if (HasOptionalInt32) {
2829         output.WriteRawTag(8);
2830         output.WriteInt32(OptionalInt32);
2831       }
2832       if (HasOptionalInt64) {
2833         output.WriteRawTag(16);
2834         output.WriteInt64(OptionalInt64);
2835       }
2836       if (HasOptionalUint32) {
2837         output.WriteRawTag(24);
2838         output.WriteUInt32(OptionalUint32);
2839       }
2840       if (HasOptionalUint64) {
2841         output.WriteRawTag(32);
2842         output.WriteUInt64(OptionalUint64);
2843       }
2844       if (HasOptionalSint32) {
2845         output.WriteRawTag(40);
2846         output.WriteSInt32(OptionalSint32);
2847       }
2848       if (HasOptionalSint64) {
2849         output.WriteRawTag(48);
2850         output.WriteSInt64(OptionalSint64);
2851       }
2852       if (HasOptionalFixed32) {
2853         output.WriteRawTag(61);
2854         output.WriteFixed32(OptionalFixed32);
2855       }
2856       if (HasOptionalFixed64) {
2857         output.WriteRawTag(65);
2858         output.WriteFixed64(OptionalFixed64);
2859       }
2860       if (HasOptionalSfixed32) {
2861         output.WriteRawTag(77);
2862         output.WriteSFixed32(OptionalSfixed32);
2863       }
2864       if (HasOptionalSfixed64) {
2865         output.WriteRawTag(81);
2866         output.WriteSFixed64(OptionalSfixed64);
2867       }
2868       if (HasOptionalFloat) {
2869         output.WriteRawTag(93);
2870         output.WriteFloat(OptionalFloat);
2871       }
2872       if (HasOptionalDouble) {
2873         output.WriteRawTag(97);
2874         output.WriteDouble(OptionalDouble);
2875       }
2876       if (HasOptionalBool) {
2877         output.WriteRawTag(104);
2878         output.WriteBool(OptionalBool);
2879       }
2880       if (HasOptionalString) {
2881         output.WriteRawTag(114);
2882         output.WriteString(OptionalString);
2883       }
2884       if (HasOptionalBytes) {
2885         output.WriteRawTag(122);
2886         output.WriteBytes(OptionalBytes);
2887       }
2888       if (HasOptionalGroup) {
2889         output.WriteRawTag(131, 1);
2890         output.WriteGroup(OptionalGroup);
2891         output.WriteRawTag(132, 1);
2892       }
2893       if (optionalNestedMessage_ != null) {
2894         output.WriteRawTag(146, 1);
2895         output.WriteMessage(OptionalNestedMessage);
2896       }
2897       if (optionalForeignMessage_ != null) {
2898         output.WriteRawTag(154, 1);
2899         output.WriteMessage(OptionalForeignMessage);
2900       }
2901       if (optionalImportMessage_ != null) {
2902         output.WriteRawTag(162, 1);
2903         output.WriteMessage(OptionalImportMessage);
2904       }
2905       if (HasOptionalNestedEnum) {
2906         output.WriteRawTag(168, 1);
2907         output.WriteEnum((int) OptionalNestedEnum);
2908       }
2909       if (HasOptionalForeignEnum) {
2910         output.WriteRawTag(176, 1);
2911         output.WriteEnum((int) OptionalForeignEnum);
2912       }
2913       if (HasOptionalImportEnum) {
2914         output.WriteRawTag(184, 1);
2915         output.WriteEnum((int) OptionalImportEnum);
2916       }
2917       if (HasOptionalStringPiece) {
2918         output.WriteRawTag(194, 1);
2919         output.WriteString(OptionalStringPiece);
2920       }
2921       if (HasOptionalCord) {
2922         output.WriteRawTag(202, 1);
2923         output.WriteString(OptionalCord);
2924       }
2925       if (optionalPublicImportMessage_ != null) {
2926         output.WriteRawTag(210, 1);
2927         output.WriteMessage(OptionalPublicImportMessage);
2928       }
2929       if (optionalLazyMessage_ != null) {
2930         output.WriteRawTag(218, 1);
2931         output.WriteMessage(OptionalLazyMessage);
2932       }
2933       repeatedInt32_.WriteTo(output, _repeated_repeatedInt32_codec);
2934       repeatedInt64_.WriteTo(output, _repeated_repeatedInt64_codec);
2935       repeatedUint32_.WriteTo(output, _repeated_repeatedUint32_codec);
2936       repeatedUint64_.WriteTo(output, _repeated_repeatedUint64_codec);
2937       repeatedSint32_.WriteTo(output, _repeated_repeatedSint32_codec);
2938       repeatedSint64_.WriteTo(output, _repeated_repeatedSint64_codec);
2939       repeatedFixed32_.WriteTo(output, _repeated_repeatedFixed32_codec);
2940       repeatedFixed64_.WriteTo(output, _repeated_repeatedFixed64_codec);
2941       repeatedSfixed32_.WriteTo(output, _repeated_repeatedSfixed32_codec);
2942       repeatedSfixed64_.WriteTo(output, _repeated_repeatedSfixed64_codec);
2943       repeatedFloat_.WriteTo(output, _repeated_repeatedFloat_codec);
2944       repeatedDouble_.WriteTo(output, _repeated_repeatedDouble_codec);
2945       repeatedBool_.WriteTo(output, _repeated_repeatedBool_codec);
2946       repeatedString_.WriteTo(output, _repeated_repeatedString_codec);
2947       repeatedBytes_.WriteTo(output, _repeated_repeatedBytes_codec);
2948       repeatedGroup_.WriteTo(output, _repeated_repeatedGroup_codec);
2949       repeatedNestedMessage_.WriteTo(output, _repeated_repeatedNestedMessage_codec);
2950       repeatedForeignMessage_.WriteTo(output, _repeated_repeatedForeignMessage_codec);
2951       repeatedImportMessage_.WriteTo(output, _repeated_repeatedImportMessage_codec);
2952       repeatedNestedEnum_.WriteTo(output, _repeated_repeatedNestedEnum_codec);
2953       repeatedForeignEnum_.WriteTo(output, _repeated_repeatedForeignEnum_codec);
2954       repeatedImportEnum_.WriteTo(output, _repeated_repeatedImportEnum_codec);
2955       repeatedStringPiece_.WriteTo(output, _repeated_repeatedStringPiece_codec);
2956       repeatedCord_.WriteTo(output, _repeated_repeatedCord_codec);
2957       repeatedLazyMessage_.WriteTo(output, _repeated_repeatedLazyMessage_codec);
2958       if (HasDefaultInt32) {
2959         output.WriteRawTag(232, 3);
2960         output.WriteInt32(DefaultInt32);
2961       }
2962       if (HasDefaultInt64) {
2963         output.WriteRawTag(240, 3);
2964         output.WriteInt64(DefaultInt64);
2965       }
2966       if (HasDefaultUint32) {
2967         output.WriteRawTag(248, 3);
2968         output.WriteUInt32(DefaultUint32);
2969       }
2970       if (HasDefaultUint64) {
2971         output.WriteRawTag(128, 4);
2972         output.WriteUInt64(DefaultUint64);
2973       }
2974       if (HasDefaultSint32) {
2975         output.WriteRawTag(136, 4);
2976         output.WriteSInt32(DefaultSint32);
2977       }
2978       if (HasDefaultSint64) {
2979         output.WriteRawTag(144, 4);
2980         output.WriteSInt64(DefaultSint64);
2981       }
2982       if (HasDefaultFixed32) {
2983         output.WriteRawTag(157, 4);
2984         output.WriteFixed32(DefaultFixed32);
2985       }
2986       if (HasDefaultFixed64) {
2987         output.WriteRawTag(161, 4);
2988         output.WriteFixed64(DefaultFixed64);
2989       }
2990       if (HasDefaultSfixed32) {
2991         output.WriteRawTag(173, 4);
2992         output.WriteSFixed32(DefaultSfixed32);
2993       }
2994       if (HasDefaultSfixed64) {
2995         output.WriteRawTag(177, 4);
2996         output.WriteSFixed64(DefaultSfixed64);
2997       }
2998       if (HasDefaultFloat) {
2999         output.WriteRawTag(189, 4);
3000         output.WriteFloat(DefaultFloat);
3001       }
3002       if (HasDefaultDouble) {
3003         output.WriteRawTag(193, 4);
3004         output.WriteDouble(DefaultDouble);
3005       }
3006       if (HasDefaultBool) {
3007         output.WriteRawTag(200, 4);
3008         output.WriteBool(DefaultBool);
3009       }
3010       if (HasDefaultString) {
3011         output.WriteRawTag(210, 4);
3012         output.WriteString(DefaultString);
3013       }
3014       if (HasDefaultBytes) {
3015         output.WriteRawTag(218, 4);
3016         output.WriteBytes(DefaultBytes);
3017       }
3018       if (HasDefaultNestedEnum) {
3019         output.WriteRawTag(136, 5);
3020         output.WriteEnum((int) DefaultNestedEnum);
3021       }
3022       if (HasDefaultForeignEnum) {
3023         output.WriteRawTag(144, 5);
3024         output.WriteEnum((int) DefaultForeignEnum);
3025       }
3026       if (HasDefaultImportEnum) {
3027         output.WriteRawTag(152, 5);
3028         output.WriteEnum((int) DefaultImportEnum);
3029       }
3030       if (HasDefaultStringPiece) {
3031         output.WriteRawTag(162, 5);
3032         output.WriteString(DefaultStringPiece);
3033       }
3034       if (HasDefaultCord) {
3035         output.WriteRawTag(170, 5);
3036         output.WriteString(DefaultCord);
3037       }
3038       if (HasOneofUint32) {
3039         output.WriteRawTag(248, 6);
3040         output.WriteUInt32(OneofUint32);
3041       }
3042       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
3043         output.WriteRawTag(130, 7);
3044         output.WriteMessage(OneofNestedMessage);
3045       }
3046       if (HasOneofString) {
3047         output.WriteRawTag(138, 7);
3048         output.WriteString(OneofString);
3049       }
3050       if (HasOneofBytes) {
3051         output.WriteRawTag(146, 7);
3052         output.WriteBytes(OneofBytes);
3053       }
3054       if (_unknownFields != null) {
3055         _unknownFields.WriteTo(output);
3056       }
3057     #endif
3058     }
3059 
3060     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3061     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)3062     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3063       if (HasOptionalInt32) {
3064         output.WriteRawTag(8);
3065         output.WriteInt32(OptionalInt32);
3066       }
3067       if (HasOptionalInt64) {
3068         output.WriteRawTag(16);
3069         output.WriteInt64(OptionalInt64);
3070       }
3071       if (HasOptionalUint32) {
3072         output.WriteRawTag(24);
3073         output.WriteUInt32(OptionalUint32);
3074       }
3075       if (HasOptionalUint64) {
3076         output.WriteRawTag(32);
3077         output.WriteUInt64(OptionalUint64);
3078       }
3079       if (HasOptionalSint32) {
3080         output.WriteRawTag(40);
3081         output.WriteSInt32(OptionalSint32);
3082       }
3083       if (HasOptionalSint64) {
3084         output.WriteRawTag(48);
3085         output.WriteSInt64(OptionalSint64);
3086       }
3087       if (HasOptionalFixed32) {
3088         output.WriteRawTag(61);
3089         output.WriteFixed32(OptionalFixed32);
3090       }
3091       if (HasOptionalFixed64) {
3092         output.WriteRawTag(65);
3093         output.WriteFixed64(OptionalFixed64);
3094       }
3095       if (HasOptionalSfixed32) {
3096         output.WriteRawTag(77);
3097         output.WriteSFixed32(OptionalSfixed32);
3098       }
3099       if (HasOptionalSfixed64) {
3100         output.WriteRawTag(81);
3101         output.WriteSFixed64(OptionalSfixed64);
3102       }
3103       if (HasOptionalFloat) {
3104         output.WriteRawTag(93);
3105         output.WriteFloat(OptionalFloat);
3106       }
3107       if (HasOptionalDouble) {
3108         output.WriteRawTag(97);
3109         output.WriteDouble(OptionalDouble);
3110       }
3111       if (HasOptionalBool) {
3112         output.WriteRawTag(104);
3113         output.WriteBool(OptionalBool);
3114       }
3115       if (HasOptionalString) {
3116         output.WriteRawTag(114);
3117         output.WriteString(OptionalString);
3118       }
3119       if (HasOptionalBytes) {
3120         output.WriteRawTag(122);
3121         output.WriteBytes(OptionalBytes);
3122       }
3123       if (HasOptionalGroup) {
3124         output.WriteRawTag(131, 1);
3125         output.WriteGroup(OptionalGroup);
3126         output.WriteRawTag(132, 1);
3127       }
3128       if (optionalNestedMessage_ != null) {
3129         output.WriteRawTag(146, 1);
3130         output.WriteMessage(OptionalNestedMessage);
3131       }
3132       if (optionalForeignMessage_ != null) {
3133         output.WriteRawTag(154, 1);
3134         output.WriteMessage(OptionalForeignMessage);
3135       }
3136       if (optionalImportMessage_ != null) {
3137         output.WriteRawTag(162, 1);
3138         output.WriteMessage(OptionalImportMessage);
3139       }
3140       if (HasOptionalNestedEnum) {
3141         output.WriteRawTag(168, 1);
3142         output.WriteEnum((int) OptionalNestedEnum);
3143       }
3144       if (HasOptionalForeignEnum) {
3145         output.WriteRawTag(176, 1);
3146         output.WriteEnum((int) OptionalForeignEnum);
3147       }
3148       if (HasOptionalImportEnum) {
3149         output.WriteRawTag(184, 1);
3150         output.WriteEnum((int) OptionalImportEnum);
3151       }
3152       if (HasOptionalStringPiece) {
3153         output.WriteRawTag(194, 1);
3154         output.WriteString(OptionalStringPiece);
3155       }
3156       if (HasOptionalCord) {
3157         output.WriteRawTag(202, 1);
3158         output.WriteString(OptionalCord);
3159       }
3160       if (optionalPublicImportMessage_ != null) {
3161         output.WriteRawTag(210, 1);
3162         output.WriteMessage(OptionalPublicImportMessage);
3163       }
3164       if (optionalLazyMessage_ != null) {
3165         output.WriteRawTag(218, 1);
3166         output.WriteMessage(OptionalLazyMessage);
3167       }
3168       repeatedInt32_.WriteTo(ref output, _repeated_repeatedInt32_codec);
3169       repeatedInt64_.WriteTo(ref output, _repeated_repeatedInt64_codec);
3170       repeatedUint32_.WriteTo(ref output, _repeated_repeatedUint32_codec);
3171       repeatedUint64_.WriteTo(ref output, _repeated_repeatedUint64_codec);
3172       repeatedSint32_.WriteTo(ref output, _repeated_repeatedSint32_codec);
3173       repeatedSint64_.WriteTo(ref output, _repeated_repeatedSint64_codec);
3174       repeatedFixed32_.WriteTo(ref output, _repeated_repeatedFixed32_codec);
3175       repeatedFixed64_.WriteTo(ref output, _repeated_repeatedFixed64_codec);
3176       repeatedSfixed32_.WriteTo(ref output, _repeated_repeatedSfixed32_codec);
3177       repeatedSfixed64_.WriteTo(ref output, _repeated_repeatedSfixed64_codec);
3178       repeatedFloat_.WriteTo(ref output, _repeated_repeatedFloat_codec);
3179       repeatedDouble_.WriteTo(ref output, _repeated_repeatedDouble_codec);
3180       repeatedBool_.WriteTo(ref output, _repeated_repeatedBool_codec);
3181       repeatedString_.WriteTo(ref output, _repeated_repeatedString_codec);
3182       repeatedBytes_.WriteTo(ref output, _repeated_repeatedBytes_codec);
3183       repeatedGroup_.WriteTo(ref output, _repeated_repeatedGroup_codec);
3184       repeatedNestedMessage_.WriteTo(ref output, _repeated_repeatedNestedMessage_codec);
3185       repeatedForeignMessage_.WriteTo(ref output, _repeated_repeatedForeignMessage_codec);
3186       repeatedImportMessage_.WriteTo(ref output, _repeated_repeatedImportMessage_codec);
3187       repeatedNestedEnum_.WriteTo(ref output, _repeated_repeatedNestedEnum_codec);
3188       repeatedForeignEnum_.WriteTo(ref output, _repeated_repeatedForeignEnum_codec);
3189       repeatedImportEnum_.WriteTo(ref output, _repeated_repeatedImportEnum_codec);
3190       repeatedStringPiece_.WriteTo(ref output, _repeated_repeatedStringPiece_codec);
3191       repeatedCord_.WriteTo(ref output, _repeated_repeatedCord_codec);
3192       repeatedLazyMessage_.WriteTo(ref output, _repeated_repeatedLazyMessage_codec);
3193       if (HasDefaultInt32) {
3194         output.WriteRawTag(232, 3);
3195         output.WriteInt32(DefaultInt32);
3196       }
3197       if (HasDefaultInt64) {
3198         output.WriteRawTag(240, 3);
3199         output.WriteInt64(DefaultInt64);
3200       }
3201       if (HasDefaultUint32) {
3202         output.WriteRawTag(248, 3);
3203         output.WriteUInt32(DefaultUint32);
3204       }
3205       if (HasDefaultUint64) {
3206         output.WriteRawTag(128, 4);
3207         output.WriteUInt64(DefaultUint64);
3208       }
3209       if (HasDefaultSint32) {
3210         output.WriteRawTag(136, 4);
3211         output.WriteSInt32(DefaultSint32);
3212       }
3213       if (HasDefaultSint64) {
3214         output.WriteRawTag(144, 4);
3215         output.WriteSInt64(DefaultSint64);
3216       }
3217       if (HasDefaultFixed32) {
3218         output.WriteRawTag(157, 4);
3219         output.WriteFixed32(DefaultFixed32);
3220       }
3221       if (HasDefaultFixed64) {
3222         output.WriteRawTag(161, 4);
3223         output.WriteFixed64(DefaultFixed64);
3224       }
3225       if (HasDefaultSfixed32) {
3226         output.WriteRawTag(173, 4);
3227         output.WriteSFixed32(DefaultSfixed32);
3228       }
3229       if (HasDefaultSfixed64) {
3230         output.WriteRawTag(177, 4);
3231         output.WriteSFixed64(DefaultSfixed64);
3232       }
3233       if (HasDefaultFloat) {
3234         output.WriteRawTag(189, 4);
3235         output.WriteFloat(DefaultFloat);
3236       }
3237       if (HasDefaultDouble) {
3238         output.WriteRawTag(193, 4);
3239         output.WriteDouble(DefaultDouble);
3240       }
3241       if (HasDefaultBool) {
3242         output.WriteRawTag(200, 4);
3243         output.WriteBool(DefaultBool);
3244       }
3245       if (HasDefaultString) {
3246         output.WriteRawTag(210, 4);
3247         output.WriteString(DefaultString);
3248       }
3249       if (HasDefaultBytes) {
3250         output.WriteRawTag(218, 4);
3251         output.WriteBytes(DefaultBytes);
3252       }
3253       if (HasDefaultNestedEnum) {
3254         output.WriteRawTag(136, 5);
3255         output.WriteEnum((int) DefaultNestedEnum);
3256       }
3257       if (HasDefaultForeignEnum) {
3258         output.WriteRawTag(144, 5);
3259         output.WriteEnum((int) DefaultForeignEnum);
3260       }
3261       if (HasDefaultImportEnum) {
3262         output.WriteRawTag(152, 5);
3263         output.WriteEnum((int) DefaultImportEnum);
3264       }
3265       if (HasDefaultStringPiece) {
3266         output.WriteRawTag(162, 5);
3267         output.WriteString(DefaultStringPiece);
3268       }
3269       if (HasDefaultCord) {
3270         output.WriteRawTag(170, 5);
3271         output.WriteString(DefaultCord);
3272       }
3273       if (HasOneofUint32) {
3274         output.WriteRawTag(248, 6);
3275         output.WriteUInt32(OneofUint32);
3276       }
3277       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
3278         output.WriteRawTag(130, 7);
3279         output.WriteMessage(OneofNestedMessage);
3280       }
3281       if (HasOneofString) {
3282         output.WriteRawTag(138, 7);
3283         output.WriteString(OneofString);
3284       }
3285       if (HasOneofBytes) {
3286         output.WriteRawTag(146, 7);
3287         output.WriteBytes(OneofBytes);
3288       }
3289       if (_unknownFields != null) {
3290         _unknownFields.WriteTo(ref output);
3291       }
3292     }
3293     #endif
3294 
3295     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()3296     public int CalculateSize() {
3297       int size = 0;
3298       if (HasOptionalInt32) {
3299         size += 1 + pb::CodedOutputStream.ComputeInt32Size(OptionalInt32);
3300       }
3301       if (HasOptionalInt64) {
3302         size += 1 + pb::CodedOutputStream.ComputeInt64Size(OptionalInt64);
3303       }
3304       if (HasOptionalUint32) {
3305         size += 1 + pb::CodedOutputStream.ComputeUInt32Size(OptionalUint32);
3306       }
3307       if (HasOptionalUint64) {
3308         size += 1 + pb::CodedOutputStream.ComputeUInt64Size(OptionalUint64);
3309       }
3310       if (HasOptionalSint32) {
3311         size += 1 + pb::CodedOutputStream.ComputeSInt32Size(OptionalSint32);
3312       }
3313       if (HasOptionalSint64) {
3314         size += 1 + pb::CodedOutputStream.ComputeSInt64Size(OptionalSint64);
3315       }
3316       if (HasOptionalFixed32) {
3317         size += 1 + 4;
3318       }
3319       if (HasOptionalFixed64) {
3320         size += 1 + 8;
3321       }
3322       if (HasOptionalSfixed32) {
3323         size += 1 + 4;
3324       }
3325       if (HasOptionalSfixed64) {
3326         size += 1 + 8;
3327       }
3328       if (HasOptionalFloat) {
3329         size += 1 + 4;
3330       }
3331       if (HasOptionalDouble) {
3332         size += 1 + 8;
3333       }
3334       if (HasOptionalBool) {
3335         size += 1 + 1;
3336       }
3337       if (HasOptionalString) {
3338         size += 1 + pb::CodedOutputStream.ComputeStringSize(OptionalString);
3339       }
3340       if (HasOptionalBytes) {
3341         size += 1 + pb::CodedOutputStream.ComputeBytesSize(OptionalBytes);
3342       }
3343       if (HasOptionalGroup) {
3344         size += 4 + pb::CodedOutputStream.ComputeGroupSize(OptionalGroup);
3345       }
3346       if (optionalNestedMessage_ != null) {
3347         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OptionalNestedMessage);
3348       }
3349       if (optionalForeignMessage_ != null) {
3350         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OptionalForeignMessage);
3351       }
3352       if (optionalImportMessage_ != null) {
3353         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OptionalImportMessage);
3354       }
3355       if (HasOptionalNestedEnum) {
3356         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) OptionalNestedEnum);
3357       }
3358       if (HasOptionalForeignEnum) {
3359         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) OptionalForeignEnum);
3360       }
3361       if (HasOptionalImportEnum) {
3362         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) OptionalImportEnum);
3363       }
3364       if (HasOptionalStringPiece) {
3365         size += 2 + pb::CodedOutputStream.ComputeStringSize(OptionalStringPiece);
3366       }
3367       if (HasOptionalCord) {
3368         size += 2 + pb::CodedOutputStream.ComputeStringSize(OptionalCord);
3369       }
3370       if (optionalPublicImportMessage_ != null) {
3371         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OptionalPublicImportMessage);
3372       }
3373       if (optionalLazyMessage_ != null) {
3374         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OptionalLazyMessage);
3375       }
3376       size += repeatedInt32_.CalculateSize(_repeated_repeatedInt32_codec);
3377       size += repeatedInt64_.CalculateSize(_repeated_repeatedInt64_codec);
3378       size += repeatedUint32_.CalculateSize(_repeated_repeatedUint32_codec);
3379       size += repeatedUint64_.CalculateSize(_repeated_repeatedUint64_codec);
3380       size += repeatedSint32_.CalculateSize(_repeated_repeatedSint32_codec);
3381       size += repeatedSint64_.CalculateSize(_repeated_repeatedSint64_codec);
3382       size += repeatedFixed32_.CalculateSize(_repeated_repeatedFixed32_codec);
3383       size += repeatedFixed64_.CalculateSize(_repeated_repeatedFixed64_codec);
3384       size += repeatedSfixed32_.CalculateSize(_repeated_repeatedSfixed32_codec);
3385       size += repeatedSfixed64_.CalculateSize(_repeated_repeatedSfixed64_codec);
3386       size += repeatedFloat_.CalculateSize(_repeated_repeatedFloat_codec);
3387       size += repeatedDouble_.CalculateSize(_repeated_repeatedDouble_codec);
3388       size += repeatedBool_.CalculateSize(_repeated_repeatedBool_codec);
3389       size += repeatedString_.CalculateSize(_repeated_repeatedString_codec);
3390       size += repeatedBytes_.CalculateSize(_repeated_repeatedBytes_codec);
3391       size += repeatedGroup_.CalculateSize(_repeated_repeatedGroup_codec);
3392       size += repeatedNestedMessage_.CalculateSize(_repeated_repeatedNestedMessage_codec);
3393       size += repeatedForeignMessage_.CalculateSize(_repeated_repeatedForeignMessage_codec);
3394       size += repeatedImportMessage_.CalculateSize(_repeated_repeatedImportMessage_codec);
3395       size += repeatedNestedEnum_.CalculateSize(_repeated_repeatedNestedEnum_codec);
3396       size += repeatedForeignEnum_.CalculateSize(_repeated_repeatedForeignEnum_codec);
3397       size += repeatedImportEnum_.CalculateSize(_repeated_repeatedImportEnum_codec);
3398       size += repeatedStringPiece_.CalculateSize(_repeated_repeatedStringPiece_codec);
3399       size += repeatedCord_.CalculateSize(_repeated_repeatedCord_codec);
3400       size += repeatedLazyMessage_.CalculateSize(_repeated_repeatedLazyMessage_codec);
3401       if (HasDefaultInt32) {
3402         size += 2 + pb::CodedOutputStream.ComputeInt32Size(DefaultInt32);
3403       }
3404       if (HasDefaultInt64) {
3405         size += 2 + pb::CodedOutputStream.ComputeInt64Size(DefaultInt64);
3406       }
3407       if (HasDefaultUint32) {
3408         size += 2 + pb::CodedOutputStream.ComputeUInt32Size(DefaultUint32);
3409       }
3410       if (HasDefaultUint64) {
3411         size += 2 + pb::CodedOutputStream.ComputeUInt64Size(DefaultUint64);
3412       }
3413       if (HasDefaultSint32) {
3414         size += 2 + pb::CodedOutputStream.ComputeSInt32Size(DefaultSint32);
3415       }
3416       if (HasDefaultSint64) {
3417         size += 2 + pb::CodedOutputStream.ComputeSInt64Size(DefaultSint64);
3418       }
3419       if (HasDefaultFixed32) {
3420         size += 2 + 4;
3421       }
3422       if (HasDefaultFixed64) {
3423         size += 2 + 8;
3424       }
3425       if (HasDefaultSfixed32) {
3426         size += 2 + 4;
3427       }
3428       if (HasDefaultSfixed64) {
3429         size += 2 + 8;
3430       }
3431       if (HasDefaultFloat) {
3432         size += 2 + 4;
3433       }
3434       if (HasDefaultDouble) {
3435         size += 2 + 8;
3436       }
3437       if (HasDefaultBool) {
3438         size += 2 + 1;
3439       }
3440       if (HasDefaultString) {
3441         size += 2 + pb::CodedOutputStream.ComputeStringSize(DefaultString);
3442       }
3443       if (HasDefaultBytes) {
3444         size += 2 + pb::CodedOutputStream.ComputeBytesSize(DefaultBytes);
3445       }
3446       if (HasDefaultNestedEnum) {
3447         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) DefaultNestedEnum);
3448       }
3449       if (HasDefaultForeignEnum) {
3450         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) DefaultForeignEnum);
3451       }
3452       if (HasDefaultImportEnum) {
3453         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) DefaultImportEnum);
3454       }
3455       if (HasDefaultStringPiece) {
3456         size += 2 + pb::CodedOutputStream.ComputeStringSize(DefaultStringPiece);
3457       }
3458       if (HasDefaultCord) {
3459         size += 2 + pb::CodedOutputStream.ComputeStringSize(DefaultCord);
3460       }
3461       if (HasOneofUint32) {
3462         size += 2 + pb::CodedOutputStream.ComputeUInt32Size(OneofUint32);
3463       }
3464       if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
3465         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OneofNestedMessage);
3466       }
3467       if (HasOneofString) {
3468         size += 2 + pb::CodedOutputStream.ComputeStringSize(OneofString);
3469       }
3470       if (HasOneofBytes) {
3471         size += 2 + pb::CodedOutputStream.ComputeBytesSize(OneofBytes);
3472       }
3473       if (_unknownFields != null) {
3474         size += _unknownFields.CalculateSize();
3475       }
3476       return size;
3477     }
3478 
3479     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestAllTypes other)3480     public void MergeFrom(TestAllTypes other) {
3481       if (other == null) {
3482         return;
3483       }
3484       if (other.HasOptionalInt32) {
3485         OptionalInt32 = other.OptionalInt32;
3486       }
3487       if (other.HasOptionalInt64) {
3488         OptionalInt64 = other.OptionalInt64;
3489       }
3490       if (other.HasOptionalUint32) {
3491         OptionalUint32 = other.OptionalUint32;
3492       }
3493       if (other.HasOptionalUint64) {
3494         OptionalUint64 = other.OptionalUint64;
3495       }
3496       if (other.HasOptionalSint32) {
3497         OptionalSint32 = other.OptionalSint32;
3498       }
3499       if (other.HasOptionalSint64) {
3500         OptionalSint64 = other.OptionalSint64;
3501       }
3502       if (other.HasOptionalFixed32) {
3503         OptionalFixed32 = other.OptionalFixed32;
3504       }
3505       if (other.HasOptionalFixed64) {
3506         OptionalFixed64 = other.OptionalFixed64;
3507       }
3508       if (other.HasOptionalSfixed32) {
3509         OptionalSfixed32 = other.OptionalSfixed32;
3510       }
3511       if (other.HasOptionalSfixed64) {
3512         OptionalSfixed64 = other.OptionalSfixed64;
3513       }
3514       if (other.HasOptionalFloat) {
3515         OptionalFloat = other.OptionalFloat;
3516       }
3517       if (other.HasOptionalDouble) {
3518         OptionalDouble = other.OptionalDouble;
3519       }
3520       if (other.HasOptionalBool) {
3521         OptionalBool = other.OptionalBool;
3522       }
3523       if (other.HasOptionalString) {
3524         OptionalString = other.OptionalString;
3525       }
3526       if (other.HasOptionalBytes) {
3527         OptionalBytes = other.OptionalBytes;
3528       }
3529       if (other.HasOptionalGroup) {
3530         if (!HasOptionalGroup) {
3531           OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup();
3532         }
3533         OptionalGroup.MergeFrom(other.OptionalGroup);
3534       }
3535       if (other.optionalNestedMessage_ != null) {
3536         if (optionalNestedMessage_ == null) {
3537           OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
3538         }
3539         OptionalNestedMessage.MergeFrom(other.OptionalNestedMessage);
3540       }
3541       if (other.optionalForeignMessage_ != null) {
3542         if (optionalForeignMessage_ == null) {
3543           OptionalForeignMessage = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
3544         }
3545         OptionalForeignMessage.MergeFrom(other.OptionalForeignMessage);
3546       }
3547       if (other.optionalImportMessage_ != null) {
3548         if (optionalImportMessage_ == null) {
3549           OptionalImportMessage = new global::Google.Protobuf.TestProtos.Proto2.ImportMessage();
3550         }
3551         OptionalImportMessage.MergeFrom(other.OptionalImportMessage);
3552       }
3553       if (other.HasOptionalNestedEnum) {
3554         OptionalNestedEnum = other.OptionalNestedEnum;
3555       }
3556       if (other.HasOptionalForeignEnum) {
3557         OptionalForeignEnum = other.OptionalForeignEnum;
3558       }
3559       if (other.HasOptionalImportEnum) {
3560         OptionalImportEnum = other.OptionalImportEnum;
3561       }
3562       if (other.HasOptionalStringPiece) {
3563         OptionalStringPiece = other.OptionalStringPiece;
3564       }
3565       if (other.HasOptionalCord) {
3566         OptionalCord = other.OptionalCord;
3567       }
3568       if (other.optionalPublicImportMessage_ != null) {
3569         if (optionalPublicImportMessage_ == null) {
3570           OptionalPublicImportMessage = new global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage();
3571         }
3572         OptionalPublicImportMessage.MergeFrom(other.OptionalPublicImportMessage);
3573       }
3574       if (other.optionalLazyMessage_ != null) {
3575         if (optionalLazyMessage_ == null) {
3576           OptionalLazyMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
3577         }
3578         OptionalLazyMessage.MergeFrom(other.OptionalLazyMessage);
3579       }
3580       repeatedInt32_.Add(other.repeatedInt32_);
3581       repeatedInt64_.Add(other.repeatedInt64_);
3582       repeatedUint32_.Add(other.repeatedUint32_);
3583       repeatedUint64_.Add(other.repeatedUint64_);
3584       repeatedSint32_.Add(other.repeatedSint32_);
3585       repeatedSint64_.Add(other.repeatedSint64_);
3586       repeatedFixed32_.Add(other.repeatedFixed32_);
3587       repeatedFixed64_.Add(other.repeatedFixed64_);
3588       repeatedSfixed32_.Add(other.repeatedSfixed32_);
3589       repeatedSfixed64_.Add(other.repeatedSfixed64_);
3590       repeatedFloat_.Add(other.repeatedFloat_);
3591       repeatedDouble_.Add(other.repeatedDouble_);
3592       repeatedBool_.Add(other.repeatedBool_);
3593       repeatedString_.Add(other.repeatedString_);
3594       repeatedBytes_.Add(other.repeatedBytes_);
3595       repeatedGroup_.Add(other.repeatedGroup_);
3596       repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
3597       repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
3598       repeatedImportMessage_.Add(other.repeatedImportMessage_);
3599       repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
3600       repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
3601       repeatedImportEnum_.Add(other.repeatedImportEnum_);
3602       repeatedStringPiece_.Add(other.repeatedStringPiece_);
3603       repeatedCord_.Add(other.repeatedCord_);
3604       repeatedLazyMessage_.Add(other.repeatedLazyMessage_);
3605       if (other.HasDefaultInt32) {
3606         DefaultInt32 = other.DefaultInt32;
3607       }
3608       if (other.HasDefaultInt64) {
3609         DefaultInt64 = other.DefaultInt64;
3610       }
3611       if (other.HasDefaultUint32) {
3612         DefaultUint32 = other.DefaultUint32;
3613       }
3614       if (other.HasDefaultUint64) {
3615         DefaultUint64 = other.DefaultUint64;
3616       }
3617       if (other.HasDefaultSint32) {
3618         DefaultSint32 = other.DefaultSint32;
3619       }
3620       if (other.HasDefaultSint64) {
3621         DefaultSint64 = other.DefaultSint64;
3622       }
3623       if (other.HasDefaultFixed32) {
3624         DefaultFixed32 = other.DefaultFixed32;
3625       }
3626       if (other.HasDefaultFixed64) {
3627         DefaultFixed64 = other.DefaultFixed64;
3628       }
3629       if (other.HasDefaultSfixed32) {
3630         DefaultSfixed32 = other.DefaultSfixed32;
3631       }
3632       if (other.HasDefaultSfixed64) {
3633         DefaultSfixed64 = other.DefaultSfixed64;
3634       }
3635       if (other.HasDefaultFloat) {
3636         DefaultFloat = other.DefaultFloat;
3637       }
3638       if (other.HasDefaultDouble) {
3639         DefaultDouble = other.DefaultDouble;
3640       }
3641       if (other.HasDefaultBool) {
3642         DefaultBool = other.DefaultBool;
3643       }
3644       if (other.HasDefaultString) {
3645         DefaultString = other.DefaultString;
3646       }
3647       if (other.HasDefaultBytes) {
3648         DefaultBytes = other.DefaultBytes;
3649       }
3650       if (other.HasDefaultNestedEnum) {
3651         DefaultNestedEnum = other.DefaultNestedEnum;
3652       }
3653       if (other.HasDefaultForeignEnum) {
3654         DefaultForeignEnum = other.DefaultForeignEnum;
3655       }
3656       if (other.HasDefaultImportEnum) {
3657         DefaultImportEnum = other.DefaultImportEnum;
3658       }
3659       if (other.HasDefaultStringPiece) {
3660         DefaultStringPiece = other.DefaultStringPiece;
3661       }
3662       if (other.HasDefaultCord) {
3663         DefaultCord = other.DefaultCord;
3664       }
3665       switch (other.OneofFieldCase) {
3666         case OneofFieldOneofCase.OneofUint32:
3667           OneofUint32 = other.OneofUint32;
3668           break;
3669         case OneofFieldOneofCase.OneofNestedMessage:
3670           if (OneofNestedMessage == null) {
3671             OneofNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
3672           }
3673           OneofNestedMessage.MergeFrom(other.OneofNestedMessage);
3674           break;
3675         case OneofFieldOneofCase.OneofString:
3676           OneofString = other.OneofString;
3677           break;
3678         case OneofFieldOneofCase.OneofBytes:
3679           OneofBytes = other.OneofBytes;
3680           break;
3681       }
3682 
3683       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3684     }
3685 
3686     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)3687     public void MergeFrom(pb::CodedInputStream input) {
3688     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3689       input.ReadRawMessage(this);
3690     #else
3691       uint tag;
3692       while ((tag = input.ReadTag()) != 0) {
3693         switch(tag) {
3694           default:
3695             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3696             break;
3697           case 8: {
3698             OptionalInt32 = input.ReadInt32();
3699             break;
3700           }
3701           case 16: {
3702             OptionalInt64 = input.ReadInt64();
3703             break;
3704           }
3705           case 24: {
3706             OptionalUint32 = input.ReadUInt32();
3707             break;
3708           }
3709           case 32: {
3710             OptionalUint64 = input.ReadUInt64();
3711             break;
3712           }
3713           case 40: {
3714             OptionalSint32 = input.ReadSInt32();
3715             break;
3716           }
3717           case 48: {
3718             OptionalSint64 = input.ReadSInt64();
3719             break;
3720           }
3721           case 61: {
3722             OptionalFixed32 = input.ReadFixed32();
3723             break;
3724           }
3725           case 65: {
3726             OptionalFixed64 = input.ReadFixed64();
3727             break;
3728           }
3729           case 77: {
3730             OptionalSfixed32 = input.ReadSFixed32();
3731             break;
3732           }
3733           case 81: {
3734             OptionalSfixed64 = input.ReadSFixed64();
3735             break;
3736           }
3737           case 93: {
3738             OptionalFloat = input.ReadFloat();
3739             break;
3740           }
3741           case 97: {
3742             OptionalDouble = input.ReadDouble();
3743             break;
3744           }
3745           case 104: {
3746             OptionalBool = input.ReadBool();
3747             break;
3748           }
3749           case 114: {
3750             OptionalString = input.ReadString();
3751             break;
3752           }
3753           case 122: {
3754             OptionalBytes = input.ReadBytes();
3755             break;
3756           }
3757           case 131: {
3758             if (!HasOptionalGroup) {
3759               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup();
3760             }
3761             input.ReadGroup(OptionalGroup);
3762             break;
3763           }
3764           case 146: {
3765             if (optionalNestedMessage_ == null) {
3766               OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
3767             }
3768             input.ReadMessage(OptionalNestedMessage);
3769             break;
3770           }
3771           case 154: {
3772             if (optionalForeignMessage_ == null) {
3773               OptionalForeignMessage = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
3774             }
3775             input.ReadMessage(OptionalForeignMessage);
3776             break;
3777           }
3778           case 162: {
3779             if (optionalImportMessage_ == null) {
3780               OptionalImportMessage = new global::Google.Protobuf.TestProtos.Proto2.ImportMessage();
3781             }
3782             input.ReadMessage(OptionalImportMessage);
3783             break;
3784           }
3785           case 168: {
3786             OptionalNestedEnum = (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) input.ReadEnum();
3787             break;
3788           }
3789           case 176: {
3790             OptionalForeignEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
3791             break;
3792           }
3793           case 184: {
3794             OptionalImportEnum = (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) input.ReadEnum();
3795             break;
3796           }
3797           case 194: {
3798             OptionalStringPiece = input.ReadString();
3799             break;
3800           }
3801           case 202: {
3802             OptionalCord = input.ReadString();
3803             break;
3804           }
3805           case 210: {
3806             if (optionalPublicImportMessage_ == null) {
3807               OptionalPublicImportMessage = new global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage();
3808             }
3809             input.ReadMessage(OptionalPublicImportMessage);
3810             break;
3811           }
3812           case 218: {
3813             if (optionalLazyMessage_ == null) {
3814               OptionalLazyMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
3815             }
3816             input.ReadMessage(OptionalLazyMessage);
3817             break;
3818           }
3819           case 250:
3820           case 248: {
3821             repeatedInt32_.AddEntriesFrom(input, _repeated_repeatedInt32_codec);
3822             break;
3823           }
3824           case 258:
3825           case 256: {
3826             repeatedInt64_.AddEntriesFrom(input, _repeated_repeatedInt64_codec);
3827             break;
3828           }
3829           case 266:
3830           case 264: {
3831             repeatedUint32_.AddEntriesFrom(input, _repeated_repeatedUint32_codec);
3832             break;
3833           }
3834           case 274:
3835           case 272: {
3836             repeatedUint64_.AddEntriesFrom(input, _repeated_repeatedUint64_codec);
3837             break;
3838           }
3839           case 282:
3840           case 280: {
3841             repeatedSint32_.AddEntriesFrom(input, _repeated_repeatedSint32_codec);
3842             break;
3843           }
3844           case 290:
3845           case 288: {
3846             repeatedSint64_.AddEntriesFrom(input, _repeated_repeatedSint64_codec);
3847             break;
3848           }
3849           case 298:
3850           case 301: {
3851             repeatedFixed32_.AddEntriesFrom(input, _repeated_repeatedFixed32_codec);
3852             break;
3853           }
3854           case 306:
3855           case 305: {
3856             repeatedFixed64_.AddEntriesFrom(input, _repeated_repeatedFixed64_codec);
3857             break;
3858           }
3859           case 314:
3860           case 317: {
3861             repeatedSfixed32_.AddEntriesFrom(input, _repeated_repeatedSfixed32_codec);
3862             break;
3863           }
3864           case 322:
3865           case 321: {
3866             repeatedSfixed64_.AddEntriesFrom(input, _repeated_repeatedSfixed64_codec);
3867             break;
3868           }
3869           case 330:
3870           case 333: {
3871             repeatedFloat_.AddEntriesFrom(input, _repeated_repeatedFloat_codec);
3872             break;
3873           }
3874           case 338:
3875           case 337: {
3876             repeatedDouble_.AddEntriesFrom(input, _repeated_repeatedDouble_codec);
3877             break;
3878           }
3879           case 346:
3880           case 344: {
3881             repeatedBool_.AddEntriesFrom(input, _repeated_repeatedBool_codec);
3882             break;
3883           }
3884           case 354: {
3885             repeatedString_.AddEntriesFrom(input, _repeated_repeatedString_codec);
3886             break;
3887           }
3888           case 362: {
3889             repeatedBytes_.AddEntriesFrom(input, _repeated_repeatedBytes_codec);
3890             break;
3891           }
3892           case 371: {
3893             repeatedGroup_.AddEntriesFrom(input, _repeated_repeatedGroup_codec);
3894             break;
3895           }
3896           case 386: {
3897             repeatedNestedMessage_.AddEntriesFrom(input, _repeated_repeatedNestedMessage_codec);
3898             break;
3899           }
3900           case 394: {
3901             repeatedForeignMessage_.AddEntriesFrom(input, _repeated_repeatedForeignMessage_codec);
3902             break;
3903           }
3904           case 402: {
3905             repeatedImportMessage_.AddEntriesFrom(input, _repeated_repeatedImportMessage_codec);
3906             break;
3907           }
3908           case 410:
3909           case 408: {
3910             repeatedNestedEnum_.AddEntriesFrom(input, _repeated_repeatedNestedEnum_codec);
3911             break;
3912           }
3913           case 418:
3914           case 416: {
3915             repeatedForeignEnum_.AddEntriesFrom(input, _repeated_repeatedForeignEnum_codec);
3916             break;
3917           }
3918           case 426:
3919           case 424: {
3920             repeatedImportEnum_.AddEntriesFrom(input, _repeated_repeatedImportEnum_codec);
3921             break;
3922           }
3923           case 434: {
3924             repeatedStringPiece_.AddEntriesFrom(input, _repeated_repeatedStringPiece_codec);
3925             break;
3926           }
3927           case 442: {
3928             repeatedCord_.AddEntriesFrom(input, _repeated_repeatedCord_codec);
3929             break;
3930           }
3931           case 458: {
3932             repeatedLazyMessage_.AddEntriesFrom(input, _repeated_repeatedLazyMessage_codec);
3933             break;
3934           }
3935           case 488: {
3936             DefaultInt32 = input.ReadInt32();
3937             break;
3938           }
3939           case 496: {
3940             DefaultInt64 = input.ReadInt64();
3941             break;
3942           }
3943           case 504: {
3944             DefaultUint32 = input.ReadUInt32();
3945             break;
3946           }
3947           case 512: {
3948             DefaultUint64 = input.ReadUInt64();
3949             break;
3950           }
3951           case 520: {
3952             DefaultSint32 = input.ReadSInt32();
3953             break;
3954           }
3955           case 528: {
3956             DefaultSint64 = input.ReadSInt64();
3957             break;
3958           }
3959           case 541: {
3960             DefaultFixed32 = input.ReadFixed32();
3961             break;
3962           }
3963           case 545: {
3964             DefaultFixed64 = input.ReadFixed64();
3965             break;
3966           }
3967           case 557: {
3968             DefaultSfixed32 = input.ReadSFixed32();
3969             break;
3970           }
3971           case 561: {
3972             DefaultSfixed64 = input.ReadSFixed64();
3973             break;
3974           }
3975           case 573: {
3976             DefaultFloat = input.ReadFloat();
3977             break;
3978           }
3979           case 577: {
3980             DefaultDouble = input.ReadDouble();
3981             break;
3982           }
3983           case 584: {
3984             DefaultBool = input.ReadBool();
3985             break;
3986           }
3987           case 594: {
3988             DefaultString = input.ReadString();
3989             break;
3990           }
3991           case 602: {
3992             DefaultBytes = input.ReadBytes();
3993             break;
3994           }
3995           case 648: {
3996             DefaultNestedEnum = (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) input.ReadEnum();
3997             break;
3998           }
3999           case 656: {
4000             DefaultForeignEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
4001             break;
4002           }
4003           case 664: {
4004             DefaultImportEnum = (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) input.ReadEnum();
4005             break;
4006           }
4007           case 674: {
4008             DefaultStringPiece = input.ReadString();
4009             break;
4010           }
4011           case 682: {
4012             DefaultCord = input.ReadString();
4013             break;
4014           }
4015           case 888: {
4016             OneofUint32 = input.ReadUInt32();
4017             break;
4018           }
4019           case 898: {
4020             global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
4021             if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
4022               subBuilder.MergeFrom(OneofNestedMessage);
4023             }
4024             input.ReadMessage(subBuilder);
4025             OneofNestedMessage = subBuilder;
4026             break;
4027           }
4028           case 906: {
4029             OneofString = input.ReadString();
4030             break;
4031           }
4032           case 914: {
4033             OneofBytes = input.ReadBytes();
4034             break;
4035           }
4036         }
4037       }
4038     #endif
4039     }
4040 
4041     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4042     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)4043     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4044       uint tag;
4045       while ((tag = input.ReadTag()) != 0) {
4046         switch(tag) {
4047           default:
4048             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4049             break;
4050           case 8: {
4051             OptionalInt32 = input.ReadInt32();
4052             break;
4053           }
4054           case 16: {
4055             OptionalInt64 = input.ReadInt64();
4056             break;
4057           }
4058           case 24: {
4059             OptionalUint32 = input.ReadUInt32();
4060             break;
4061           }
4062           case 32: {
4063             OptionalUint64 = input.ReadUInt64();
4064             break;
4065           }
4066           case 40: {
4067             OptionalSint32 = input.ReadSInt32();
4068             break;
4069           }
4070           case 48: {
4071             OptionalSint64 = input.ReadSInt64();
4072             break;
4073           }
4074           case 61: {
4075             OptionalFixed32 = input.ReadFixed32();
4076             break;
4077           }
4078           case 65: {
4079             OptionalFixed64 = input.ReadFixed64();
4080             break;
4081           }
4082           case 77: {
4083             OptionalSfixed32 = input.ReadSFixed32();
4084             break;
4085           }
4086           case 81: {
4087             OptionalSfixed64 = input.ReadSFixed64();
4088             break;
4089           }
4090           case 93: {
4091             OptionalFloat = input.ReadFloat();
4092             break;
4093           }
4094           case 97: {
4095             OptionalDouble = input.ReadDouble();
4096             break;
4097           }
4098           case 104: {
4099             OptionalBool = input.ReadBool();
4100             break;
4101           }
4102           case 114: {
4103             OptionalString = input.ReadString();
4104             break;
4105           }
4106           case 122: {
4107             OptionalBytes = input.ReadBytes();
4108             break;
4109           }
4110           case 131: {
4111             if (!HasOptionalGroup) {
4112               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.OptionalGroup();
4113             }
4114             input.ReadGroup(OptionalGroup);
4115             break;
4116           }
4117           case 146: {
4118             if (optionalNestedMessage_ == null) {
4119               OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
4120             }
4121             input.ReadMessage(OptionalNestedMessage);
4122             break;
4123           }
4124           case 154: {
4125             if (optionalForeignMessage_ == null) {
4126               OptionalForeignMessage = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
4127             }
4128             input.ReadMessage(OptionalForeignMessage);
4129             break;
4130           }
4131           case 162: {
4132             if (optionalImportMessage_ == null) {
4133               OptionalImportMessage = new global::Google.Protobuf.TestProtos.Proto2.ImportMessage();
4134             }
4135             input.ReadMessage(OptionalImportMessage);
4136             break;
4137           }
4138           case 168: {
4139             OptionalNestedEnum = (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) input.ReadEnum();
4140             break;
4141           }
4142           case 176: {
4143             OptionalForeignEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
4144             break;
4145           }
4146           case 184: {
4147             OptionalImportEnum = (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) input.ReadEnum();
4148             break;
4149           }
4150           case 194: {
4151             OptionalStringPiece = input.ReadString();
4152             break;
4153           }
4154           case 202: {
4155             OptionalCord = input.ReadString();
4156             break;
4157           }
4158           case 210: {
4159             if (optionalPublicImportMessage_ == null) {
4160               OptionalPublicImportMessage = new global::Google.Protobuf.TestProtos.Proto2.PublicImportMessage();
4161             }
4162             input.ReadMessage(OptionalPublicImportMessage);
4163             break;
4164           }
4165           case 218: {
4166             if (optionalLazyMessage_ == null) {
4167               OptionalLazyMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
4168             }
4169             input.ReadMessage(OptionalLazyMessage);
4170             break;
4171           }
4172           case 250:
4173           case 248: {
4174             repeatedInt32_.AddEntriesFrom(ref input, _repeated_repeatedInt32_codec);
4175             break;
4176           }
4177           case 258:
4178           case 256: {
4179             repeatedInt64_.AddEntriesFrom(ref input, _repeated_repeatedInt64_codec);
4180             break;
4181           }
4182           case 266:
4183           case 264: {
4184             repeatedUint32_.AddEntriesFrom(ref input, _repeated_repeatedUint32_codec);
4185             break;
4186           }
4187           case 274:
4188           case 272: {
4189             repeatedUint64_.AddEntriesFrom(ref input, _repeated_repeatedUint64_codec);
4190             break;
4191           }
4192           case 282:
4193           case 280: {
4194             repeatedSint32_.AddEntriesFrom(ref input, _repeated_repeatedSint32_codec);
4195             break;
4196           }
4197           case 290:
4198           case 288: {
4199             repeatedSint64_.AddEntriesFrom(ref input, _repeated_repeatedSint64_codec);
4200             break;
4201           }
4202           case 298:
4203           case 301: {
4204             repeatedFixed32_.AddEntriesFrom(ref input, _repeated_repeatedFixed32_codec);
4205             break;
4206           }
4207           case 306:
4208           case 305: {
4209             repeatedFixed64_.AddEntriesFrom(ref input, _repeated_repeatedFixed64_codec);
4210             break;
4211           }
4212           case 314:
4213           case 317: {
4214             repeatedSfixed32_.AddEntriesFrom(ref input, _repeated_repeatedSfixed32_codec);
4215             break;
4216           }
4217           case 322:
4218           case 321: {
4219             repeatedSfixed64_.AddEntriesFrom(ref input, _repeated_repeatedSfixed64_codec);
4220             break;
4221           }
4222           case 330:
4223           case 333: {
4224             repeatedFloat_.AddEntriesFrom(ref input, _repeated_repeatedFloat_codec);
4225             break;
4226           }
4227           case 338:
4228           case 337: {
4229             repeatedDouble_.AddEntriesFrom(ref input, _repeated_repeatedDouble_codec);
4230             break;
4231           }
4232           case 346:
4233           case 344: {
4234             repeatedBool_.AddEntriesFrom(ref input, _repeated_repeatedBool_codec);
4235             break;
4236           }
4237           case 354: {
4238             repeatedString_.AddEntriesFrom(ref input, _repeated_repeatedString_codec);
4239             break;
4240           }
4241           case 362: {
4242             repeatedBytes_.AddEntriesFrom(ref input, _repeated_repeatedBytes_codec);
4243             break;
4244           }
4245           case 371: {
4246             repeatedGroup_.AddEntriesFrom(ref input, _repeated_repeatedGroup_codec);
4247             break;
4248           }
4249           case 386: {
4250             repeatedNestedMessage_.AddEntriesFrom(ref input, _repeated_repeatedNestedMessage_codec);
4251             break;
4252           }
4253           case 394: {
4254             repeatedForeignMessage_.AddEntriesFrom(ref input, _repeated_repeatedForeignMessage_codec);
4255             break;
4256           }
4257           case 402: {
4258             repeatedImportMessage_.AddEntriesFrom(ref input, _repeated_repeatedImportMessage_codec);
4259             break;
4260           }
4261           case 410:
4262           case 408: {
4263             repeatedNestedEnum_.AddEntriesFrom(ref input, _repeated_repeatedNestedEnum_codec);
4264             break;
4265           }
4266           case 418:
4267           case 416: {
4268             repeatedForeignEnum_.AddEntriesFrom(ref input, _repeated_repeatedForeignEnum_codec);
4269             break;
4270           }
4271           case 426:
4272           case 424: {
4273             repeatedImportEnum_.AddEntriesFrom(ref input, _repeated_repeatedImportEnum_codec);
4274             break;
4275           }
4276           case 434: {
4277             repeatedStringPiece_.AddEntriesFrom(ref input, _repeated_repeatedStringPiece_codec);
4278             break;
4279           }
4280           case 442: {
4281             repeatedCord_.AddEntriesFrom(ref input, _repeated_repeatedCord_codec);
4282             break;
4283           }
4284           case 458: {
4285             repeatedLazyMessage_.AddEntriesFrom(ref input, _repeated_repeatedLazyMessage_codec);
4286             break;
4287           }
4288           case 488: {
4289             DefaultInt32 = input.ReadInt32();
4290             break;
4291           }
4292           case 496: {
4293             DefaultInt64 = input.ReadInt64();
4294             break;
4295           }
4296           case 504: {
4297             DefaultUint32 = input.ReadUInt32();
4298             break;
4299           }
4300           case 512: {
4301             DefaultUint64 = input.ReadUInt64();
4302             break;
4303           }
4304           case 520: {
4305             DefaultSint32 = input.ReadSInt32();
4306             break;
4307           }
4308           case 528: {
4309             DefaultSint64 = input.ReadSInt64();
4310             break;
4311           }
4312           case 541: {
4313             DefaultFixed32 = input.ReadFixed32();
4314             break;
4315           }
4316           case 545: {
4317             DefaultFixed64 = input.ReadFixed64();
4318             break;
4319           }
4320           case 557: {
4321             DefaultSfixed32 = input.ReadSFixed32();
4322             break;
4323           }
4324           case 561: {
4325             DefaultSfixed64 = input.ReadSFixed64();
4326             break;
4327           }
4328           case 573: {
4329             DefaultFloat = input.ReadFloat();
4330             break;
4331           }
4332           case 577: {
4333             DefaultDouble = input.ReadDouble();
4334             break;
4335           }
4336           case 584: {
4337             DefaultBool = input.ReadBool();
4338             break;
4339           }
4340           case 594: {
4341             DefaultString = input.ReadString();
4342             break;
4343           }
4344           case 602: {
4345             DefaultBytes = input.ReadBytes();
4346             break;
4347           }
4348           case 648: {
4349             DefaultNestedEnum = (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedEnum) input.ReadEnum();
4350             break;
4351           }
4352           case 656: {
4353             DefaultForeignEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
4354             break;
4355           }
4356           case 664: {
4357             DefaultImportEnum = (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) input.ReadEnum();
4358             break;
4359           }
4360           case 674: {
4361             DefaultStringPiece = input.ReadString();
4362             break;
4363           }
4364           case 682: {
4365             DefaultCord = input.ReadString();
4366             break;
4367           }
4368           case 888: {
4369             OneofUint32 = input.ReadUInt32();
4370             break;
4371           }
4372           case 898: {
4373             global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
4374             if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
4375               subBuilder.MergeFrom(OneofNestedMessage);
4376             }
4377             input.ReadMessage(subBuilder);
4378             OneofNestedMessage = subBuilder;
4379             break;
4380           }
4381           case 906: {
4382             OneofString = input.ReadString();
4383             break;
4384           }
4385           case 914: {
4386             OneofBytes = input.ReadBytes();
4387             break;
4388           }
4389         }
4390       }
4391     }
4392     #endif
4393 
4394     #region Nested types
4395     /// <summary>Container for nested types declared in the TestAllTypes message type.</summary>
4396     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4397     public static partial class Types {
4398       public enum NestedEnum {
4399         [pbr::OriginalName("FOO")] Foo = 1,
4400         [pbr::OriginalName("BAR")] Bar = 2,
4401         [pbr::OriginalName("BAZ")] Baz = 3,
4402         /// <summary>
4403         /// Intentionally negative.
4404         /// </summary>
4405         [pbr::OriginalName("NEG")] Neg = -1,
4406       }
4407 
4408       public sealed partial class NestedMessage : pb::IMessage<NestedMessage>
4409       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4410           , pb::IBufferMessage
4411       #endif
4412       {
4413         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
4414         private pb::UnknownFieldSet _unknownFields;
4415         private int _hasBits0;
4416         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4417         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
4418 
4419         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4420         public static pbr::MessageDescriptor Descriptor {
4421           get { return global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Descriptor.NestedTypes[0]; }
4422         }
4423 
4424         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4425         pbr::MessageDescriptor pb::IMessage.Descriptor {
4426           get { return Descriptor; }
4427         }
4428 
4429         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage()4430         public NestedMessage() {
4431           OnConstruction();
4432         }
4433 
OnConstruction()4434         partial void OnConstruction();
4435 
4436         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage(NestedMessage other)4437         public NestedMessage(NestedMessage other) : this() {
4438           _hasBits0 = other._hasBits0;
4439           bb_ = other.bb_;
4440           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4441         }
4442 
4443         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()4444         public NestedMessage Clone() {
4445           return new NestedMessage(this);
4446         }
4447 
4448         /// <summary>Field number for the "bb" field.</summary>
4449         public const int BbFieldNumber = 1;
4450         private readonly static int BbDefaultValue = 0;
4451 
4452         private int bb_;
4453         /// <summary>
4454         /// The field name "b" fails to compile in proto1 because it conflicts with
4455         /// a local variable named "b" in one of the generated methods.  Doh.
4456         /// This file needs to compile in proto1 to test backwards-compatibility.
4457         /// </summary>
4458         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4459         public int Bb {
4460           get { if ((_hasBits0 & 1) != 0) { return bb_; } else { return BbDefaultValue; } }
4461           set {
4462             _hasBits0 |= 1;
4463             bb_ = value;
4464           }
4465         }
4466         /// <summary>Gets whether the "bb" field is set</summary>
4467         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4468         public bool HasBb {
4469           get { return (_hasBits0 & 1) != 0; }
4470         }
4471         /// <summary>Clears the value of the "bb" field</summary>
4472         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBb()4473         public void ClearBb() {
4474           _hasBits0 &= ~1;
4475         }
4476 
4477         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)4478         public override bool Equals(object other) {
4479           return Equals(other as NestedMessage);
4480         }
4481 
4482         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedMessage other)4483         public bool Equals(NestedMessage other) {
4484           if (ReferenceEquals(other, null)) {
4485             return false;
4486           }
4487           if (ReferenceEquals(other, this)) {
4488             return true;
4489           }
4490           if (Bb != other.Bb) return false;
4491           return Equals(_unknownFields, other._unknownFields);
4492         }
4493 
4494         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()4495         public override int GetHashCode() {
4496           int hash = 1;
4497           if (HasBb) hash ^= Bb.GetHashCode();
4498           if (_unknownFields != null) {
4499             hash ^= _unknownFields.GetHashCode();
4500           }
4501           return hash;
4502         }
4503 
4504         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()4505         public override string ToString() {
4506           return pb::JsonFormatter.ToDiagnosticString(this);
4507         }
4508 
4509         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)4510         public void WriteTo(pb::CodedOutputStream output) {
4511         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4512           output.WriteRawMessage(this);
4513         #else
4514           if (HasBb) {
4515             output.WriteRawTag(8);
4516             output.WriteInt32(Bb);
4517           }
4518           if (_unknownFields != null) {
4519             _unknownFields.WriteTo(output);
4520           }
4521         #endif
4522         }
4523 
4524         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4525         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)4526         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4527           if (HasBb) {
4528             output.WriteRawTag(8);
4529             output.WriteInt32(Bb);
4530           }
4531           if (_unknownFields != null) {
4532             _unknownFields.WriteTo(ref output);
4533           }
4534         }
4535         #endif
4536 
4537         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()4538         public int CalculateSize() {
4539           int size = 0;
4540           if (HasBb) {
4541             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);
4542           }
4543           if (_unknownFields != null) {
4544             size += _unknownFields.CalculateSize();
4545           }
4546           return size;
4547         }
4548 
4549         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedMessage other)4550         public void MergeFrom(NestedMessage other) {
4551           if (other == null) {
4552             return;
4553           }
4554           if (other.HasBb) {
4555             Bb = other.Bb;
4556           }
4557           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4558         }
4559 
4560         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)4561         public void MergeFrom(pb::CodedInputStream input) {
4562         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4563           input.ReadRawMessage(this);
4564         #else
4565           uint tag;
4566           while ((tag = input.ReadTag()) != 0) {
4567             switch(tag) {
4568               default:
4569                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4570                 break;
4571               case 8: {
4572                 Bb = input.ReadInt32();
4573                 break;
4574               }
4575             }
4576           }
4577         #endif
4578         }
4579 
4580         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4581         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)4582         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4583           uint tag;
4584           while ((tag = input.ReadTag()) != 0) {
4585             switch(tag) {
4586               default:
4587                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4588                 break;
4589               case 8: {
4590                 Bb = input.ReadInt32();
4591                 break;
4592               }
4593             }
4594           }
4595         }
4596         #endif
4597 
4598       }
4599 
4600       public sealed partial class OptionalGroup : pb::IMessage<OptionalGroup>
4601       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4602           , pb::IBufferMessage
4603       #endif
4604       {
4605         private static readonly pb::MessageParser<OptionalGroup> _parser = new pb::MessageParser<OptionalGroup>(() => new OptionalGroup());
4606         private pb::UnknownFieldSet _unknownFields;
4607         private int _hasBits0;
4608         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4609         public static pb::MessageParser<OptionalGroup> Parser { get { return _parser; } }
4610 
4611         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4612         public static pbr::MessageDescriptor Descriptor {
4613           get { return global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Descriptor.NestedTypes[1]; }
4614         }
4615 
4616         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4617         pbr::MessageDescriptor pb::IMessage.Descriptor {
4618           get { return Descriptor; }
4619         }
4620 
4621         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup()4622         public OptionalGroup() {
4623           OnConstruction();
4624         }
4625 
OnConstruction()4626         partial void OnConstruction();
4627 
4628         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup(OptionalGroup other)4629         public OptionalGroup(OptionalGroup other) : this() {
4630           _hasBits0 = other._hasBits0;
4631           a_ = other.a_;
4632           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4633         }
4634 
4635         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()4636         public OptionalGroup Clone() {
4637           return new OptionalGroup(this);
4638         }
4639 
4640         /// <summary>Field number for the "a" field.</summary>
4641         public const int AFieldNumber = 17;
4642         private readonly static int ADefaultValue = 0;
4643 
4644         private int a_;
4645         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4646         public int A {
4647           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
4648           set {
4649             _hasBits0 |= 1;
4650             a_ = value;
4651           }
4652         }
4653         /// <summary>Gets whether the "a" field is set</summary>
4654         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4655         public bool HasA {
4656           get { return (_hasBits0 & 1) != 0; }
4657         }
4658         /// <summary>Clears the value of the "a" field</summary>
4659         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()4660         public void ClearA() {
4661           _hasBits0 &= ~1;
4662         }
4663 
4664         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)4665         public override bool Equals(object other) {
4666           return Equals(other as OptionalGroup);
4667         }
4668 
4669         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OptionalGroup other)4670         public bool Equals(OptionalGroup other) {
4671           if (ReferenceEquals(other, null)) {
4672             return false;
4673           }
4674           if (ReferenceEquals(other, this)) {
4675             return true;
4676           }
4677           if (A != other.A) return false;
4678           return Equals(_unknownFields, other._unknownFields);
4679         }
4680 
4681         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()4682         public override int GetHashCode() {
4683           int hash = 1;
4684           if (HasA) hash ^= A.GetHashCode();
4685           if (_unknownFields != null) {
4686             hash ^= _unknownFields.GetHashCode();
4687           }
4688           return hash;
4689         }
4690 
4691         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()4692         public override string ToString() {
4693           return pb::JsonFormatter.ToDiagnosticString(this);
4694         }
4695 
4696         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)4697         public void WriteTo(pb::CodedOutputStream output) {
4698         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4699           output.WriteRawMessage(this);
4700         #else
4701           if (HasA) {
4702             output.WriteRawTag(136, 1);
4703             output.WriteInt32(A);
4704           }
4705           if (_unknownFields != null) {
4706             _unknownFields.WriteTo(output);
4707           }
4708         #endif
4709         }
4710 
4711         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4712         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)4713         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4714           if (HasA) {
4715             output.WriteRawTag(136, 1);
4716             output.WriteInt32(A);
4717           }
4718           if (_unknownFields != null) {
4719             _unknownFields.WriteTo(ref output);
4720           }
4721         }
4722         #endif
4723 
4724         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()4725         public int CalculateSize() {
4726           int size = 0;
4727           if (HasA) {
4728             size += 2 + pb::CodedOutputStream.ComputeInt32Size(A);
4729           }
4730           if (_unknownFields != null) {
4731             size += _unknownFields.CalculateSize();
4732           }
4733           return size;
4734         }
4735 
4736         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OptionalGroup other)4737         public void MergeFrom(OptionalGroup other) {
4738           if (other == null) {
4739             return;
4740           }
4741           if (other.HasA) {
4742             A = other.A;
4743           }
4744           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4745         }
4746 
4747         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)4748         public void MergeFrom(pb::CodedInputStream input) {
4749         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4750           input.ReadRawMessage(this);
4751         #else
4752           uint tag;
4753           while ((tag = input.ReadTag()) != 0) {
4754             switch(tag) {
4755               case 132:
4756                 return;
4757               default:
4758                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4759                 break;
4760               case 136: {
4761                 A = input.ReadInt32();
4762                 break;
4763               }
4764             }
4765           }
4766         #endif
4767         }
4768 
4769         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4770         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)4771         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4772           uint tag;
4773           while ((tag = input.ReadTag()) != 0) {
4774             switch(tag) {
4775               case 132:
4776                 return;
4777               default:
4778                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4779                 break;
4780               case 136: {
4781                 A = input.ReadInt32();
4782                 break;
4783               }
4784             }
4785           }
4786         }
4787         #endif
4788 
4789       }
4790 
4791       public sealed partial class RepeatedGroup : pb::IMessage<RepeatedGroup>
4792       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4793           , pb::IBufferMessage
4794       #endif
4795       {
4796         private static readonly pb::MessageParser<RepeatedGroup> _parser = new pb::MessageParser<RepeatedGroup>(() => new RepeatedGroup());
4797         private pb::UnknownFieldSet _unknownFields;
4798         private int _hasBits0;
4799         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4800         public static pb::MessageParser<RepeatedGroup> Parser { get { return _parser; } }
4801 
4802         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4803         public static pbr::MessageDescriptor Descriptor {
4804           get { return global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Descriptor.NestedTypes[2]; }
4805         }
4806 
4807         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4808         pbr::MessageDescriptor pb::IMessage.Descriptor {
4809           get { return Descriptor; }
4810         }
4811 
4812         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedGroup()4813         public RepeatedGroup() {
4814           OnConstruction();
4815         }
4816 
OnConstruction()4817         partial void OnConstruction();
4818 
4819         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedGroup(RepeatedGroup other)4820         public RepeatedGroup(RepeatedGroup other) : this() {
4821           _hasBits0 = other._hasBits0;
4822           a_ = other.a_;
4823           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4824         }
4825 
4826         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()4827         public RepeatedGroup Clone() {
4828           return new RepeatedGroup(this);
4829         }
4830 
4831         /// <summary>Field number for the "a" field.</summary>
4832         public const int AFieldNumber = 47;
4833         private readonly static int ADefaultValue = 0;
4834 
4835         private int a_;
4836         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4837         public int A {
4838           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
4839           set {
4840             _hasBits0 |= 1;
4841             a_ = value;
4842           }
4843         }
4844         /// <summary>Gets whether the "a" field is set</summary>
4845         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4846         public bool HasA {
4847           get { return (_hasBits0 & 1) != 0; }
4848         }
4849         /// <summary>Clears the value of the "a" field</summary>
4850         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()4851         public void ClearA() {
4852           _hasBits0 &= ~1;
4853         }
4854 
4855         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)4856         public override bool Equals(object other) {
4857           return Equals(other as RepeatedGroup);
4858         }
4859 
4860         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(RepeatedGroup other)4861         public bool Equals(RepeatedGroup other) {
4862           if (ReferenceEquals(other, null)) {
4863             return false;
4864           }
4865           if (ReferenceEquals(other, this)) {
4866             return true;
4867           }
4868           if (A != other.A) return false;
4869           return Equals(_unknownFields, other._unknownFields);
4870         }
4871 
4872         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()4873         public override int GetHashCode() {
4874           int hash = 1;
4875           if (HasA) hash ^= A.GetHashCode();
4876           if (_unknownFields != null) {
4877             hash ^= _unknownFields.GetHashCode();
4878           }
4879           return hash;
4880         }
4881 
4882         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()4883         public override string ToString() {
4884           return pb::JsonFormatter.ToDiagnosticString(this);
4885         }
4886 
4887         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)4888         public void WriteTo(pb::CodedOutputStream output) {
4889         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4890           output.WriteRawMessage(this);
4891         #else
4892           if (HasA) {
4893             output.WriteRawTag(248, 2);
4894             output.WriteInt32(A);
4895           }
4896           if (_unknownFields != null) {
4897             _unknownFields.WriteTo(output);
4898           }
4899         #endif
4900         }
4901 
4902         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4903         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)4904         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4905           if (HasA) {
4906             output.WriteRawTag(248, 2);
4907             output.WriteInt32(A);
4908           }
4909           if (_unknownFields != null) {
4910             _unknownFields.WriteTo(ref output);
4911           }
4912         }
4913         #endif
4914 
4915         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()4916         public int CalculateSize() {
4917           int size = 0;
4918           if (HasA) {
4919             size += 2 + pb::CodedOutputStream.ComputeInt32Size(A);
4920           }
4921           if (_unknownFields != null) {
4922             size += _unknownFields.CalculateSize();
4923           }
4924           return size;
4925         }
4926 
4927         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(RepeatedGroup other)4928         public void MergeFrom(RepeatedGroup other) {
4929           if (other == null) {
4930             return;
4931           }
4932           if (other.HasA) {
4933             A = other.A;
4934           }
4935           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4936         }
4937 
4938         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)4939         public void MergeFrom(pb::CodedInputStream input) {
4940         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4941           input.ReadRawMessage(this);
4942         #else
4943           uint tag;
4944           while ((tag = input.ReadTag()) != 0) {
4945             switch(tag) {
4946               case 372:
4947                 return;
4948               default:
4949                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4950                 break;
4951               case 376: {
4952                 A = input.ReadInt32();
4953                 break;
4954               }
4955             }
4956           }
4957         #endif
4958         }
4959 
4960         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4961         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)4962         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4963           uint tag;
4964           while ((tag = input.ReadTag()) != 0) {
4965             switch(tag) {
4966               case 372:
4967                 return;
4968               default:
4969                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4970                 break;
4971               case 376: {
4972                 A = input.ReadInt32();
4973                 break;
4974               }
4975             }
4976           }
4977         }
4978         #endif
4979 
4980       }
4981 
4982     }
4983     #endregion
4984 
4985   }
4986 
4987   /// <summary>
4988   /// This proto includes a recursively nested message.
4989   /// </summary>
4990   public sealed partial class NestedTestAllTypes : pb::IMessage<NestedTestAllTypes>
4991   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4992       , pb::IBufferMessage
4993   #endif
4994   {
4995     private static readonly pb::MessageParser<NestedTestAllTypes> _parser = new pb::MessageParser<NestedTestAllTypes>(() => new NestedTestAllTypes());
4996     private pb::UnknownFieldSet _unknownFields;
4997     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4998     public static pb::MessageParser<NestedTestAllTypes> Parser { get { return _parser; } }
4999 
5000     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5001     public static pbr::MessageDescriptor Descriptor {
5002       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[1]; }
5003     }
5004 
5005     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5006     pbr::MessageDescriptor pb::IMessage.Descriptor {
5007       get { return Descriptor; }
5008     }
5009 
5010     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedTestAllTypes()5011     public NestedTestAllTypes() {
5012       OnConstruction();
5013     }
5014 
OnConstruction()5015     partial void OnConstruction();
5016 
5017     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedTestAllTypes(NestedTestAllTypes other)5018     public NestedTestAllTypes(NestedTestAllTypes other) : this() {
5019       child_ = other.child_ != null ? other.child_.Clone() : null;
5020       payload_ = other.payload_ != null ? other.payload_.Clone() : null;
5021       repeatedChild_ = other.repeatedChild_.Clone();
5022       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5023     }
5024 
5025     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()5026     public NestedTestAllTypes Clone() {
5027       return new NestedTestAllTypes(this);
5028     }
5029 
5030     /// <summary>Field number for the "child" field.</summary>
5031     public const int ChildFieldNumber = 1;
5032     private global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes child_;
5033     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5034     public global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes Child {
5035       get { return child_; }
5036       set {
5037         child_ = value;
5038       }
5039     }
5040 
5041     /// <summary>Field number for the "payload" field.</summary>
5042     public const int PayloadFieldNumber = 2;
5043     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes payload_;
5044     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5045     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes Payload {
5046       get { return payload_; }
5047       set {
5048         payload_ = value;
5049       }
5050     }
5051 
5052     /// <summary>Field number for the "repeated_child" field.</summary>
5053     public const int RepeatedChildFieldNumber = 3;
5054     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes> _repeated_repeatedChild_codec
5055         = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes.Parser);
5056     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes> repeatedChild_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes>();
5057     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5058     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes> RepeatedChild {
5059       get { return repeatedChild_; }
5060     }
5061 
5062     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)5063     public override bool Equals(object other) {
5064       return Equals(other as NestedTestAllTypes);
5065     }
5066 
5067     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedTestAllTypes other)5068     public bool Equals(NestedTestAllTypes other) {
5069       if (ReferenceEquals(other, null)) {
5070         return false;
5071       }
5072       if (ReferenceEquals(other, this)) {
5073         return true;
5074       }
5075       if (!object.Equals(Child, other.Child)) return false;
5076       if (!object.Equals(Payload, other.Payload)) return false;
5077       if(!repeatedChild_.Equals(other.repeatedChild_)) return false;
5078       return Equals(_unknownFields, other._unknownFields);
5079     }
5080 
5081     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()5082     public override int GetHashCode() {
5083       int hash = 1;
5084       if (child_ != null) hash ^= Child.GetHashCode();
5085       if (payload_ != null) hash ^= Payload.GetHashCode();
5086       hash ^= repeatedChild_.GetHashCode();
5087       if (_unknownFields != null) {
5088         hash ^= _unknownFields.GetHashCode();
5089       }
5090       return hash;
5091     }
5092 
5093     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()5094     public override string ToString() {
5095       return pb::JsonFormatter.ToDiagnosticString(this);
5096     }
5097 
5098     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)5099     public void WriteTo(pb::CodedOutputStream output) {
5100     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5101       output.WriteRawMessage(this);
5102     #else
5103       if (child_ != null) {
5104         output.WriteRawTag(10);
5105         output.WriteMessage(Child);
5106       }
5107       if (payload_ != null) {
5108         output.WriteRawTag(18);
5109         output.WriteMessage(Payload);
5110       }
5111       repeatedChild_.WriteTo(output, _repeated_repeatedChild_codec);
5112       if (_unknownFields != null) {
5113         _unknownFields.WriteTo(output);
5114       }
5115     #endif
5116     }
5117 
5118     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5119     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)5120     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5121       if (child_ != null) {
5122         output.WriteRawTag(10);
5123         output.WriteMessage(Child);
5124       }
5125       if (payload_ != null) {
5126         output.WriteRawTag(18);
5127         output.WriteMessage(Payload);
5128       }
5129       repeatedChild_.WriteTo(ref output, _repeated_repeatedChild_codec);
5130       if (_unknownFields != null) {
5131         _unknownFields.WriteTo(ref output);
5132       }
5133     }
5134     #endif
5135 
5136     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()5137     public int CalculateSize() {
5138       int size = 0;
5139       if (child_ != null) {
5140         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Child);
5141       }
5142       if (payload_ != null) {
5143         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Payload);
5144       }
5145       size += repeatedChild_.CalculateSize(_repeated_repeatedChild_codec);
5146       if (_unknownFields != null) {
5147         size += _unknownFields.CalculateSize();
5148       }
5149       return size;
5150     }
5151 
5152     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedTestAllTypes other)5153     public void MergeFrom(NestedTestAllTypes other) {
5154       if (other == null) {
5155         return;
5156       }
5157       if (other.child_ != null) {
5158         if (child_ == null) {
5159           Child = new global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes();
5160         }
5161         Child.MergeFrom(other.Child);
5162       }
5163       if (other.payload_ != null) {
5164         if (payload_ == null) {
5165           Payload = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
5166         }
5167         Payload.MergeFrom(other.Payload);
5168       }
5169       repeatedChild_.Add(other.repeatedChild_);
5170       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5171     }
5172 
5173     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)5174     public void MergeFrom(pb::CodedInputStream input) {
5175     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5176       input.ReadRawMessage(this);
5177     #else
5178       uint tag;
5179       while ((tag = input.ReadTag()) != 0) {
5180         switch(tag) {
5181           default:
5182             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5183             break;
5184           case 10: {
5185             if (child_ == null) {
5186               Child = new global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes();
5187             }
5188             input.ReadMessage(Child);
5189             break;
5190           }
5191           case 18: {
5192             if (payload_ == null) {
5193               Payload = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
5194             }
5195             input.ReadMessage(Payload);
5196             break;
5197           }
5198           case 26: {
5199             repeatedChild_.AddEntriesFrom(input, _repeated_repeatedChild_codec);
5200             break;
5201           }
5202         }
5203       }
5204     #endif
5205     }
5206 
5207     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5208     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)5209     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5210       uint tag;
5211       while ((tag = input.ReadTag()) != 0) {
5212         switch(tag) {
5213           default:
5214             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5215             break;
5216           case 10: {
5217             if (child_ == null) {
5218               Child = new global::Google.Protobuf.TestProtos.Proto2.NestedTestAllTypes();
5219             }
5220             input.ReadMessage(Child);
5221             break;
5222           }
5223           case 18: {
5224             if (payload_ == null) {
5225               Payload = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
5226             }
5227             input.ReadMessage(Payload);
5228             break;
5229           }
5230           case 26: {
5231             repeatedChild_.AddEntriesFrom(ref input, _repeated_repeatedChild_codec);
5232             break;
5233           }
5234         }
5235       }
5236     }
5237     #endif
5238 
5239   }
5240 
5241   public sealed partial class TestDeprecatedFields : pb::IMessage<TestDeprecatedFields>
5242   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5243       , pb::IBufferMessage
5244   #endif
5245   {
5246     private static readonly pb::MessageParser<TestDeprecatedFields> _parser = new pb::MessageParser<TestDeprecatedFields>(() => new TestDeprecatedFields());
5247     private pb::UnknownFieldSet _unknownFields;
5248     private int _hasBits0;
5249     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5250     public static pb::MessageParser<TestDeprecatedFields> Parser { get { return _parser; } }
5251 
5252     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5253     public static pbr::MessageDescriptor Descriptor {
5254       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[2]; }
5255     }
5256 
5257     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5258     pbr::MessageDescriptor pb::IMessage.Descriptor {
5259       get { return Descriptor; }
5260     }
5261 
5262     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDeprecatedFields()5263     public TestDeprecatedFields() {
5264       OnConstruction();
5265     }
5266 
OnConstruction()5267     partial void OnConstruction();
5268 
5269     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDeprecatedFields(TestDeprecatedFields other)5270     public TestDeprecatedFields(TestDeprecatedFields other) : this() {
5271       _hasBits0 = other._hasBits0;
5272       deprecatedInt32_ = other.deprecatedInt32_;
5273       switch (other.OneofFieldsCase) {
5274         case OneofFieldsOneofCase.DeprecatedInt32InOneof:
5275           DeprecatedInt32InOneof = other.DeprecatedInt32InOneof;
5276           break;
5277       }
5278 
5279       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5280     }
5281 
5282     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()5283     public TestDeprecatedFields Clone() {
5284       return new TestDeprecatedFields(this);
5285     }
5286 
5287     /// <summary>Field number for the "deprecated_int32" field.</summary>
5288     public const int DeprecatedInt32FieldNumber = 1;
5289     private readonly static int DeprecatedInt32DefaultValue = 0;
5290 
5291     private int deprecatedInt32_;
5292     [global::System.ObsoleteAttribute]
5293     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5294     public int DeprecatedInt32 {
5295       get { if ((_hasBits0 & 1) != 0) { return deprecatedInt32_; } else { return DeprecatedInt32DefaultValue; } }
5296       set {
5297         _hasBits0 |= 1;
5298         deprecatedInt32_ = value;
5299       }
5300     }
5301     /// <summary>Gets whether the "deprecated_int32" field is set</summary>
5302     [global::System.ObsoleteAttribute]
5303     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5304     public bool HasDeprecatedInt32 {
5305       get { return (_hasBits0 & 1) != 0; }
5306     }
5307     /// <summary>Clears the value of the "deprecated_int32" field</summary>
5308     [global::System.ObsoleteAttribute]
5309     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDeprecatedInt32()5310     public void ClearDeprecatedInt32() {
5311       _hasBits0 &= ~1;
5312     }
5313 
5314     /// <summary>Field number for the "deprecated_int32_in_oneof" field.</summary>
5315     public const int DeprecatedInt32InOneofFieldNumber = 2;
5316     [global::System.ObsoleteAttribute]
5317     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5318     public int DeprecatedInt32InOneof {
5319       get { return HasDeprecatedInt32InOneof ? (int) oneofFields_ : 0; }
5320       set {
5321         oneofFields_ = value;
5322         oneofFieldsCase_ = OneofFieldsOneofCase.DeprecatedInt32InOneof;
5323       }
5324     }
5325     /// <summary>Gets whether the "deprecated_int32_in_oneof" field is set</summary>
5326     [global::System.ObsoleteAttribute]
5327     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5328     public bool HasDeprecatedInt32InOneof {
5329       get { return oneofFieldsCase_ == OneofFieldsOneofCase.DeprecatedInt32InOneof; }
5330     }
5331     /// <summary> Clears the value of the oneof if it's currently set to "deprecated_int32_in_oneof" </summary>
5332     [global::System.ObsoleteAttribute]
5333     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDeprecatedInt32InOneof()5334     public void ClearDeprecatedInt32InOneof() {
5335       if (HasDeprecatedInt32InOneof) {
5336         ClearOneofFields();
5337       }
5338     }
5339 
5340     private object oneofFields_;
5341     /// <summary>Enum of possible cases for the "oneof_fields" oneof.</summary>
5342     public enum OneofFieldsOneofCase {
5343       None = 0,
5344       DeprecatedInt32InOneof = 2,
5345     }
5346     private OneofFieldsOneofCase oneofFieldsCase_ = OneofFieldsOneofCase.None;
5347     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5348     public OneofFieldsOneofCase OneofFieldsCase {
5349       get { return oneofFieldsCase_; }
5350     }
5351 
5352     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofFields()5353     public void ClearOneofFields() {
5354       oneofFieldsCase_ = OneofFieldsOneofCase.None;
5355       oneofFields_ = null;
5356     }
5357 
5358     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)5359     public override bool Equals(object other) {
5360       return Equals(other as TestDeprecatedFields);
5361     }
5362 
5363     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestDeprecatedFields other)5364     public bool Equals(TestDeprecatedFields other) {
5365       if (ReferenceEquals(other, null)) {
5366         return false;
5367       }
5368       if (ReferenceEquals(other, this)) {
5369         return true;
5370       }
5371       if (DeprecatedInt32 != other.DeprecatedInt32) return false;
5372       if (DeprecatedInt32InOneof != other.DeprecatedInt32InOneof) return false;
5373       if (OneofFieldsCase != other.OneofFieldsCase) return false;
5374       return Equals(_unknownFields, other._unknownFields);
5375     }
5376 
5377     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()5378     public override int GetHashCode() {
5379       int hash = 1;
5380       if (HasDeprecatedInt32) hash ^= DeprecatedInt32.GetHashCode();
5381       if (HasDeprecatedInt32InOneof) hash ^= DeprecatedInt32InOneof.GetHashCode();
5382       hash ^= (int) oneofFieldsCase_;
5383       if (_unknownFields != null) {
5384         hash ^= _unknownFields.GetHashCode();
5385       }
5386       return hash;
5387     }
5388 
5389     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()5390     public override string ToString() {
5391       return pb::JsonFormatter.ToDiagnosticString(this);
5392     }
5393 
5394     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)5395     public void WriteTo(pb::CodedOutputStream output) {
5396     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5397       output.WriteRawMessage(this);
5398     #else
5399       if (HasDeprecatedInt32) {
5400         output.WriteRawTag(8);
5401         output.WriteInt32(DeprecatedInt32);
5402       }
5403       if (HasDeprecatedInt32InOneof) {
5404         output.WriteRawTag(16);
5405         output.WriteInt32(DeprecatedInt32InOneof);
5406       }
5407       if (_unknownFields != null) {
5408         _unknownFields.WriteTo(output);
5409       }
5410     #endif
5411     }
5412 
5413     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5414     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)5415     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5416       if (HasDeprecatedInt32) {
5417         output.WriteRawTag(8);
5418         output.WriteInt32(DeprecatedInt32);
5419       }
5420       if (HasDeprecatedInt32InOneof) {
5421         output.WriteRawTag(16);
5422         output.WriteInt32(DeprecatedInt32InOneof);
5423       }
5424       if (_unknownFields != null) {
5425         _unknownFields.WriteTo(ref output);
5426       }
5427     }
5428     #endif
5429 
5430     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()5431     public int CalculateSize() {
5432       int size = 0;
5433       if (HasDeprecatedInt32) {
5434         size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeprecatedInt32);
5435       }
5436       if (HasDeprecatedInt32InOneof) {
5437         size += 1 + pb::CodedOutputStream.ComputeInt32Size(DeprecatedInt32InOneof);
5438       }
5439       if (_unknownFields != null) {
5440         size += _unknownFields.CalculateSize();
5441       }
5442       return size;
5443     }
5444 
5445     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestDeprecatedFields other)5446     public void MergeFrom(TestDeprecatedFields other) {
5447       if (other == null) {
5448         return;
5449       }
5450       if (other.HasDeprecatedInt32) {
5451         DeprecatedInt32 = other.DeprecatedInt32;
5452       }
5453       switch (other.OneofFieldsCase) {
5454         case OneofFieldsOneofCase.DeprecatedInt32InOneof:
5455           DeprecatedInt32InOneof = other.DeprecatedInt32InOneof;
5456           break;
5457       }
5458 
5459       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5460     }
5461 
5462     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)5463     public void MergeFrom(pb::CodedInputStream input) {
5464     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5465       input.ReadRawMessage(this);
5466     #else
5467       uint tag;
5468       while ((tag = input.ReadTag()) != 0) {
5469         switch(tag) {
5470           default:
5471             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5472             break;
5473           case 8: {
5474             DeprecatedInt32 = input.ReadInt32();
5475             break;
5476           }
5477           case 16: {
5478             DeprecatedInt32InOneof = input.ReadInt32();
5479             break;
5480           }
5481         }
5482       }
5483     #endif
5484     }
5485 
5486     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5487     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)5488     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5489       uint tag;
5490       while ((tag = input.ReadTag()) != 0) {
5491         switch(tag) {
5492           default:
5493             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5494             break;
5495           case 8: {
5496             DeprecatedInt32 = input.ReadInt32();
5497             break;
5498           }
5499           case 16: {
5500             DeprecatedInt32InOneof = input.ReadInt32();
5501             break;
5502           }
5503         }
5504       }
5505     }
5506     #endif
5507 
5508   }
5509 
5510   [global::System.ObsoleteAttribute]
5511   public sealed partial class TestDeprecatedMessage : pb::IMessage<TestDeprecatedMessage>
5512   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5513       , pb::IBufferMessage
5514   #endif
5515   {
5516     private static readonly pb::MessageParser<TestDeprecatedMessage> _parser = new pb::MessageParser<TestDeprecatedMessage>(() => new TestDeprecatedMessage());
5517     private pb::UnknownFieldSet _unknownFields;
5518     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5519     public static pb::MessageParser<TestDeprecatedMessage> Parser { get { return _parser; } }
5520 
5521     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5522     public static pbr::MessageDescriptor Descriptor {
5523       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[3]; }
5524     }
5525 
5526     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5527     pbr::MessageDescriptor pb::IMessage.Descriptor {
5528       get { return Descriptor; }
5529     }
5530 
5531     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDeprecatedMessage()5532     public TestDeprecatedMessage() {
5533       OnConstruction();
5534     }
5535 
OnConstruction()5536     partial void OnConstruction();
5537 
5538     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDeprecatedMessage(TestDeprecatedMessage other)5539     public TestDeprecatedMessage(TestDeprecatedMessage other) : this() {
5540       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5541     }
5542 
5543     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()5544     public TestDeprecatedMessage Clone() {
5545       return new TestDeprecatedMessage(this);
5546     }
5547 
5548     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)5549     public override bool Equals(object other) {
5550       return Equals(other as TestDeprecatedMessage);
5551     }
5552 
5553     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestDeprecatedMessage other)5554     public bool Equals(TestDeprecatedMessage other) {
5555       if (ReferenceEquals(other, null)) {
5556         return false;
5557       }
5558       if (ReferenceEquals(other, this)) {
5559         return true;
5560       }
5561       return Equals(_unknownFields, other._unknownFields);
5562     }
5563 
5564     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()5565     public override int GetHashCode() {
5566       int hash = 1;
5567       if (_unknownFields != null) {
5568         hash ^= _unknownFields.GetHashCode();
5569       }
5570       return hash;
5571     }
5572 
5573     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()5574     public override string ToString() {
5575       return pb::JsonFormatter.ToDiagnosticString(this);
5576     }
5577 
5578     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)5579     public void WriteTo(pb::CodedOutputStream output) {
5580     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5581       output.WriteRawMessage(this);
5582     #else
5583       if (_unknownFields != null) {
5584         _unknownFields.WriteTo(output);
5585       }
5586     #endif
5587     }
5588 
5589     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5590     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)5591     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5592       if (_unknownFields != null) {
5593         _unknownFields.WriteTo(ref output);
5594       }
5595     }
5596     #endif
5597 
5598     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()5599     public int CalculateSize() {
5600       int size = 0;
5601       if (_unknownFields != null) {
5602         size += _unknownFields.CalculateSize();
5603       }
5604       return size;
5605     }
5606 
5607     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestDeprecatedMessage other)5608     public void MergeFrom(TestDeprecatedMessage other) {
5609       if (other == null) {
5610         return;
5611       }
5612       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5613     }
5614 
5615     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)5616     public void MergeFrom(pb::CodedInputStream input) {
5617     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5618       input.ReadRawMessage(this);
5619     #else
5620       uint tag;
5621       while ((tag = input.ReadTag()) != 0) {
5622         switch(tag) {
5623           default:
5624             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5625             break;
5626         }
5627       }
5628     #endif
5629     }
5630 
5631     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5632     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)5633     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5634       uint tag;
5635       while ((tag = input.ReadTag()) != 0) {
5636         switch(tag) {
5637           default:
5638             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5639             break;
5640         }
5641       }
5642     }
5643     #endif
5644 
5645   }
5646 
5647   /// <summary>
5648   /// Define these after TestAllTypes to make sure the compiler can handle
5649   /// that.
5650   /// </summary>
5651   public sealed partial class ForeignMessage : pb::IMessage<ForeignMessage>
5652   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5653       , pb::IBufferMessage
5654   #endif
5655   {
5656     private static readonly pb::MessageParser<ForeignMessage> _parser = new pb::MessageParser<ForeignMessage>(() => new ForeignMessage());
5657     private pb::UnknownFieldSet _unknownFields;
5658     private int _hasBits0;
5659     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5660     public static pb::MessageParser<ForeignMessage> Parser { get { return _parser; } }
5661 
5662     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5663     public static pbr::MessageDescriptor Descriptor {
5664       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[4]; }
5665     }
5666 
5667     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5668     pbr::MessageDescriptor pb::IMessage.Descriptor {
5669       get { return Descriptor; }
5670     }
5671 
5672     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ForeignMessage()5673     public ForeignMessage() {
5674       OnConstruction();
5675     }
5676 
OnConstruction()5677     partial void OnConstruction();
5678 
5679     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ForeignMessage(ForeignMessage other)5680     public ForeignMessage(ForeignMessage other) : this() {
5681       _hasBits0 = other._hasBits0;
5682       c_ = other.c_;
5683       d_ = other.d_;
5684       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5685     }
5686 
5687     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()5688     public ForeignMessage Clone() {
5689       return new ForeignMessage(this);
5690     }
5691 
5692     /// <summary>Field number for the "c" field.</summary>
5693     public const int CFieldNumber = 1;
5694     private readonly static int CDefaultValue = 0;
5695 
5696     private int c_;
5697     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5698     public int C {
5699       get { if ((_hasBits0 & 1) != 0) { return c_; } else { return CDefaultValue; } }
5700       set {
5701         _hasBits0 |= 1;
5702         c_ = value;
5703       }
5704     }
5705     /// <summary>Gets whether the "c" field is set</summary>
5706     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5707     public bool HasC {
5708       get { return (_hasBits0 & 1) != 0; }
5709     }
5710     /// <summary>Clears the value of the "c" field</summary>
5711     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearC()5712     public void ClearC() {
5713       _hasBits0 &= ~1;
5714     }
5715 
5716     /// <summary>Field number for the "d" field.</summary>
5717     public const int DFieldNumber = 2;
5718     private readonly static int DDefaultValue = 0;
5719 
5720     private int d_;
5721     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5722     public int D {
5723       get { if ((_hasBits0 & 2) != 0) { return d_; } else { return DDefaultValue; } }
5724       set {
5725         _hasBits0 |= 2;
5726         d_ = value;
5727       }
5728     }
5729     /// <summary>Gets whether the "d" field is set</summary>
5730     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5731     public bool HasD {
5732       get { return (_hasBits0 & 2) != 0; }
5733     }
5734     /// <summary>Clears the value of the "d" field</summary>
5735     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearD()5736     public void ClearD() {
5737       _hasBits0 &= ~2;
5738     }
5739 
5740     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)5741     public override bool Equals(object other) {
5742       return Equals(other as ForeignMessage);
5743     }
5744 
5745     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(ForeignMessage other)5746     public bool Equals(ForeignMessage other) {
5747       if (ReferenceEquals(other, null)) {
5748         return false;
5749       }
5750       if (ReferenceEquals(other, this)) {
5751         return true;
5752       }
5753       if (C != other.C) return false;
5754       if (D != other.D) return false;
5755       return Equals(_unknownFields, other._unknownFields);
5756     }
5757 
5758     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()5759     public override int GetHashCode() {
5760       int hash = 1;
5761       if (HasC) hash ^= C.GetHashCode();
5762       if (HasD) hash ^= D.GetHashCode();
5763       if (_unknownFields != null) {
5764         hash ^= _unknownFields.GetHashCode();
5765       }
5766       return hash;
5767     }
5768 
5769     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()5770     public override string ToString() {
5771       return pb::JsonFormatter.ToDiagnosticString(this);
5772     }
5773 
5774     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)5775     public void WriteTo(pb::CodedOutputStream output) {
5776     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5777       output.WriteRawMessage(this);
5778     #else
5779       if (HasC) {
5780         output.WriteRawTag(8);
5781         output.WriteInt32(C);
5782       }
5783       if (HasD) {
5784         output.WriteRawTag(16);
5785         output.WriteInt32(D);
5786       }
5787       if (_unknownFields != null) {
5788         _unknownFields.WriteTo(output);
5789       }
5790     #endif
5791     }
5792 
5793     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5794     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)5795     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5796       if (HasC) {
5797         output.WriteRawTag(8);
5798         output.WriteInt32(C);
5799       }
5800       if (HasD) {
5801         output.WriteRawTag(16);
5802         output.WriteInt32(D);
5803       }
5804       if (_unknownFields != null) {
5805         _unknownFields.WriteTo(ref output);
5806       }
5807     }
5808     #endif
5809 
5810     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()5811     public int CalculateSize() {
5812       int size = 0;
5813       if (HasC) {
5814         size += 1 + pb::CodedOutputStream.ComputeInt32Size(C);
5815       }
5816       if (HasD) {
5817         size += 1 + pb::CodedOutputStream.ComputeInt32Size(D);
5818       }
5819       if (_unknownFields != null) {
5820         size += _unknownFields.CalculateSize();
5821       }
5822       return size;
5823     }
5824 
5825     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(ForeignMessage other)5826     public void MergeFrom(ForeignMessage other) {
5827       if (other == null) {
5828         return;
5829       }
5830       if (other.HasC) {
5831         C = other.C;
5832       }
5833       if (other.HasD) {
5834         D = other.D;
5835       }
5836       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5837     }
5838 
5839     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)5840     public void MergeFrom(pb::CodedInputStream input) {
5841     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5842       input.ReadRawMessage(this);
5843     #else
5844       uint tag;
5845       while ((tag = input.ReadTag()) != 0) {
5846         switch(tag) {
5847           default:
5848             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5849             break;
5850           case 8: {
5851             C = input.ReadInt32();
5852             break;
5853           }
5854           case 16: {
5855             D = input.ReadInt32();
5856             break;
5857           }
5858         }
5859       }
5860     #endif
5861     }
5862 
5863     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5864     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)5865     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
5866       uint tag;
5867       while ((tag = input.ReadTag()) != 0) {
5868         switch(tag) {
5869           default:
5870             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
5871             break;
5872           case 8: {
5873             C = input.ReadInt32();
5874             break;
5875           }
5876           case 16: {
5877             D = input.ReadInt32();
5878             break;
5879           }
5880         }
5881       }
5882     }
5883     #endif
5884 
5885   }
5886 
5887   public sealed partial class TestReservedFields : pb::IMessage<TestReservedFields>
5888   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5889       , pb::IBufferMessage
5890   #endif
5891   {
5892     private static readonly pb::MessageParser<TestReservedFields> _parser = new pb::MessageParser<TestReservedFields>(() => new TestReservedFields());
5893     private pb::UnknownFieldSet _unknownFields;
5894     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5895     public static pb::MessageParser<TestReservedFields> Parser { get { return _parser; } }
5896 
5897     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5898     public static pbr::MessageDescriptor Descriptor {
5899       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[5]; }
5900     }
5901 
5902     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5903     pbr::MessageDescriptor pb::IMessage.Descriptor {
5904       get { return Descriptor; }
5905     }
5906 
5907     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestReservedFields()5908     public TestReservedFields() {
5909       OnConstruction();
5910     }
5911 
OnConstruction()5912     partial void OnConstruction();
5913 
5914     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestReservedFields(TestReservedFields other)5915     public TestReservedFields(TestReservedFields other) : this() {
5916       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5917     }
5918 
5919     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()5920     public TestReservedFields Clone() {
5921       return new TestReservedFields(this);
5922     }
5923 
5924     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)5925     public override bool Equals(object other) {
5926       return Equals(other as TestReservedFields);
5927     }
5928 
5929     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestReservedFields other)5930     public bool Equals(TestReservedFields other) {
5931       if (ReferenceEquals(other, null)) {
5932         return false;
5933       }
5934       if (ReferenceEquals(other, this)) {
5935         return true;
5936       }
5937       return Equals(_unknownFields, other._unknownFields);
5938     }
5939 
5940     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()5941     public override int GetHashCode() {
5942       int hash = 1;
5943       if (_unknownFields != null) {
5944         hash ^= _unknownFields.GetHashCode();
5945       }
5946       return hash;
5947     }
5948 
5949     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()5950     public override string ToString() {
5951       return pb::JsonFormatter.ToDiagnosticString(this);
5952     }
5953 
5954     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)5955     public void WriteTo(pb::CodedOutputStream output) {
5956     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5957       output.WriteRawMessage(this);
5958     #else
5959       if (_unknownFields != null) {
5960         _unknownFields.WriteTo(output);
5961       }
5962     #endif
5963     }
5964 
5965     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5966     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)5967     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
5968       if (_unknownFields != null) {
5969         _unknownFields.WriteTo(ref output);
5970       }
5971     }
5972     #endif
5973 
5974     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()5975     public int CalculateSize() {
5976       int size = 0;
5977       if (_unknownFields != null) {
5978         size += _unknownFields.CalculateSize();
5979       }
5980       return size;
5981     }
5982 
5983     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestReservedFields other)5984     public void MergeFrom(TestReservedFields other) {
5985       if (other == null) {
5986         return;
5987       }
5988       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5989     }
5990 
5991     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)5992     public void MergeFrom(pb::CodedInputStream input) {
5993     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
5994       input.ReadRawMessage(this);
5995     #else
5996       uint tag;
5997       while ((tag = input.ReadTag()) != 0) {
5998         switch(tag) {
5999           default:
6000             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6001             break;
6002         }
6003       }
6004     #endif
6005     }
6006 
6007     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6008     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)6009     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6010       uint tag;
6011       while ((tag = input.ReadTag()) != 0) {
6012         switch(tag) {
6013           default:
6014             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6015             break;
6016         }
6017       }
6018     }
6019     #endif
6020 
6021   }
6022 
6023   public sealed partial class TestAllExtensions : pb::IExtendableMessage<TestAllExtensions>
6024   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6025       , pb::IBufferMessage
6026   #endif
6027   {
6028     private static readonly pb::MessageParser<TestAllExtensions> _parser = new pb::MessageParser<TestAllExtensions>(() => new TestAllExtensions());
6029     private pb::UnknownFieldSet _unknownFields;
6030     private pb::ExtensionSet<TestAllExtensions> _extensions;
6031     private pb::ExtensionSet<TestAllExtensions> _Extensions { get { return _extensions; } }
6032     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6033     public static pb::MessageParser<TestAllExtensions> Parser { get { return _parser; } }
6034 
6035     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6036     public static pbr::MessageDescriptor Descriptor {
6037       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[6]; }
6038     }
6039 
6040     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6041     pbr::MessageDescriptor pb::IMessage.Descriptor {
6042       get { return Descriptor; }
6043     }
6044 
6045     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestAllExtensions()6046     public TestAllExtensions() {
6047       OnConstruction();
6048     }
6049 
OnConstruction()6050     partial void OnConstruction();
6051 
6052     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestAllExtensions(TestAllExtensions other)6053     public TestAllExtensions(TestAllExtensions other) : this() {
6054       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6055       _extensions = pb::ExtensionSet.Clone(other._extensions);
6056     }
6057 
6058     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()6059     public TestAllExtensions Clone() {
6060       return new TestAllExtensions(this);
6061     }
6062 
6063     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)6064     public override bool Equals(object other) {
6065       return Equals(other as TestAllExtensions);
6066     }
6067 
6068     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestAllExtensions other)6069     public bool Equals(TestAllExtensions other) {
6070       if (ReferenceEquals(other, null)) {
6071         return false;
6072       }
6073       if (ReferenceEquals(other, this)) {
6074         return true;
6075       }
6076       if (!Equals(_extensions, other._extensions)) {
6077         return false;
6078       }
6079       return Equals(_unknownFields, other._unknownFields);
6080     }
6081 
6082     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()6083     public override int GetHashCode() {
6084       int hash = 1;
6085       if (_extensions != null) {
6086         hash ^= _extensions.GetHashCode();
6087       }
6088       if (_unknownFields != null) {
6089         hash ^= _unknownFields.GetHashCode();
6090       }
6091       return hash;
6092     }
6093 
6094     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()6095     public override string ToString() {
6096       return pb::JsonFormatter.ToDiagnosticString(this);
6097     }
6098 
6099     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)6100     public void WriteTo(pb::CodedOutputStream output) {
6101     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6102       output.WriteRawMessage(this);
6103     #else
6104       if (_extensions != null) {
6105         _extensions.WriteTo(output);
6106       }
6107       if (_unknownFields != null) {
6108         _unknownFields.WriteTo(output);
6109       }
6110     #endif
6111     }
6112 
6113     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6114     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)6115     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6116       if (_extensions != null) {
6117         _extensions.WriteTo(ref output);
6118       }
6119       if (_unknownFields != null) {
6120         _unknownFields.WriteTo(ref output);
6121       }
6122     }
6123     #endif
6124 
6125     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()6126     public int CalculateSize() {
6127       int size = 0;
6128       if (_extensions != null) {
6129         size += _extensions.CalculateSize();
6130       }
6131       if (_unknownFields != null) {
6132         size += _unknownFields.CalculateSize();
6133       }
6134       return size;
6135     }
6136 
6137     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestAllExtensions other)6138     public void MergeFrom(TestAllExtensions other) {
6139       if (other == null) {
6140         return;
6141       }
6142       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
6143       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6144     }
6145 
6146     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)6147     public void MergeFrom(pb::CodedInputStream input) {
6148     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6149       input.ReadRawMessage(this);
6150     #else
6151       uint tag;
6152       while ((tag = input.ReadTag()) != 0) {
6153         switch(tag) {
6154           default:
6155             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
6156               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6157             }
6158             break;
6159         }
6160       }
6161     #endif
6162     }
6163 
6164     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6165     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)6166     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6167       uint tag;
6168       while ((tag = input.ReadTag()) != 0) {
6169         switch(tag) {
6170           default:
6171             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
6172               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6173             }
6174             break;
6175         }
6176       }
6177     }
6178     #endif
6179 
GetExtension(pb::Extension<TestAllExtensions, TValue> extension)6180     public TValue GetExtension<TValue>(pb::Extension<TestAllExtensions, TValue> extension) {
6181       return pb::ExtensionSet.Get(ref _extensions, extension);
6182     }
GetExtension(pb::RepeatedExtension<TestAllExtensions, TValue> extension)6183     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestAllExtensions, TValue> extension) {
6184       return pb::ExtensionSet.Get(ref _extensions, extension);
6185     }
GetOrInitializeExtension(pb::RepeatedExtension<TestAllExtensions, TValue> extension)6186     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestAllExtensions, TValue> extension) {
6187       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
6188     }
SetExtension(pb::Extension<TestAllExtensions, TValue> extension, TValue value)6189     public void SetExtension<TValue>(pb::Extension<TestAllExtensions, TValue> extension, TValue value) {
6190       pb::ExtensionSet.Set(ref _extensions, extension, value);
6191     }
HasExtension(pb::Extension<TestAllExtensions, TValue> extension)6192     public bool HasExtension<TValue>(pb::Extension<TestAllExtensions, TValue> extension) {
6193       return pb::ExtensionSet.Has(ref _extensions, extension);
6194     }
ClearExtension(pb::Extension<TestAllExtensions, TValue> extension)6195     public void ClearExtension<TValue>(pb::Extension<TestAllExtensions, TValue> extension) {
6196       pb::ExtensionSet.Clear(ref _extensions, extension);
6197     }
ClearExtension(pb::RepeatedExtension<TestAllExtensions, TValue> extension)6198     public void ClearExtension<TValue>(pb::RepeatedExtension<TestAllExtensions, TValue> extension) {
6199       pb::ExtensionSet.Clear(ref _extensions, extension);
6200     }
6201 
6202   }
6203 
6204   public sealed partial class OptionalGroup_extension : pb::IMessage<OptionalGroup_extension>
6205   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6206       , pb::IBufferMessage
6207   #endif
6208   {
6209     private static readonly pb::MessageParser<OptionalGroup_extension> _parser = new pb::MessageParser<OptionalGroup_extension>(() => new OptionalGroup_extension());
6210     private pb::UnknownFieldSet _unknownFields;
6211     private int _hasBits0;
6212     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6213     public static pb::MessageParser<OptionalGroup_extension> Parser { get { return _parser; } }
6214 
6215     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6216     public static pbr::MessageDescriptor Descriptor {
6217       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[7]; }
6218     }
6219 
6220     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6221     pbr::MessageDescriptor pb::IMessage.Descriptor {
6222       get { return Descriptor; }
6223     }
6224 
6225     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup_extension()6226     public OptionalGroup_extension() {
6227       OnConstruction();
6228     }
6229 
OnConstruction()6230     partial void OnConstruction();
6231 
6232     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup_extension(OptionalGroup_extension other)6233     public OptionalGroup_extension(OptionalGroup_extension other) : this() {
6234       _hasBits0 = other._hasBits0;
6235       a_ = other.a_;
6236       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6237     }
6238 
6239     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()6240     public OptionalGroup_extension Clone() {
6241       return new OptionalGroup_extension(this);
6242     }
6243 
6244     /// <summary>Field number for the "a" field.</summary>
6245     public const int AFieldNumber = 17;
6246     private readonly static int ADefaultValue = 0;
6247 
6248     private int a_;
6249     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6250     public int A {
6251       get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
6252       set {
6253         _hasBits0 |= 1;
6254         a_ = value;
6255       }
6256     }
6257     /// <summary>Gets whether the "a" field is set</summary>
6258     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6259     public bool HasA {
6260       get { return (_hasBits0 & 1) != 0; }
6261     }
6262     /// <summary>Clears the value of the "a" field</summary>
6263     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()6264     public void ClearA() {
6265       _hasBits0 &= ~1;
6266     }
6267 
6268     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)6269     public override bool Equals(object other) {
6270       return Equals(other as OptionalGroup_extension);
6271     }
6272 
6273     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OptionalGroup_extension other)6274     public bool Equals(OptionalGroup_extension other) {
6275       if (ReferenceEquals(other, null)) {
6276         return false;
6277       }
6278       if (ReferenceEquals(other, this)) {
6279         return true;
6280       }
6281       if (A != other.A) return false;
6282       return Equals(_unknownFields, other._unknownFields);
6283     }
6284 
6285     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()6286     public override int GetHashCode() {
6287       int hash = 1;
6288       if (HasA) hash ^= A.GetHashCode();
6289       if (_unknownFields != null) {
6290         hash ^= _unknownFields.GetHashCode();
6291       }
6292       return hash;
6293     }
6294 
6295     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()6296     public override string ToString() {
6297       return pb::JsonFormatter.ToDiagnosticString(this);
6298     }
6299 
6300     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)6301     public void WriteTo(pb::CodedOutputStream output) {
6302     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6303       output.WriteRawMessage(this);
6304     #else
6305       if (HasA) {
6306         output.WriteRawTag(136, 1);
6307         output.WriteInt32(A);
6308       }
6309       if (_unknownFields != null) {
6310         _unknownFields.WriteTo(output);
6311       }
6312     #endif
6313     }
6314 
6315     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6316     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)6317     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6318       if (HasA) {
6319         output.WriteRawTag(136, 1);
6320         output.WriteInt32(A);
6321       }
6322       if (_unknownFields != null) {
6323         _unknownFields.WriteTo(ref output);
6324       }
6325     }
6326     #endif
6327 
6328     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()6329     public int CalculateSize() {
6330       int size = 0;
6331       if (HasA) {
6332         size += 2 + pb::CodedOutputStream.ComputeInt32Size(A);
6333       }
6334       if (_unknownFields != null) {
6335         size += _unknownFields.CalculateSize();
6336       }
6337       return size;
6338     }
6339 
6340     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OptionalGroup_extension other)6341     public void MergeFrom(OptionalGroup_extension other) {
6342       if (other == null) {
6343         return;
6344       }
6345       if (other.HasA) {
6346         A = other.A;
6347       }
6348       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6349     }
6350 
6351     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)6352     public void MergeFrom(pb::CodedInputStream input) {
6353     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6354       input.ReadRawMessage(this);
6355     #else
6356       uint tag;
6357       while ((tag = input.ReadTag()) != 0) {
6358         switch(tag) {
6359           case 132:
6360             return;
6361           default:
6362             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6363             break;
6364           case 136: {
6365             A = input.ReadInt32();
6366             break;
6367           }
6368         }
6369       }
6370     #endif
6371     }
6372 
6373     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6374     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)6375     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6376       uint tag;
6377       while ((tag = input.ReadTag()) != 0) {
6378         switch(tag) {
6379           case 132:
6380             return;
6381           default:
6382             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6383             break;
6384           case 136: {
6385             A = input.ReadInt32();
6386             break;
6387           }
6388         }
6389       }
6390     }
6391     #endif
6392 
6393   }
6394 
6395   public sealed partial class RepeatedGroup_extension : pb::IMessage<RepeatedGroup_extension>
6396   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6397       , pb::IBufferMessage
6398   #endif
6399   {
6400     private static readonly pb::MessageParser<RepeatedGroup_extension> _parser = new pb::MessageParser<RepeatedGroup_extension>(() => new RepeatedGroup_extension());
6401     private pb::UnknownFieldSet _unknownFields;
6402     private int _hasBits0;
6403     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6404     public static pb::MessageParser<RepeatedGroup_extension> Parser { get { return _parser; } }
6405 
6406     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6407     public static pbr::MessageDescriptor Descriptor {
6408       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[8]; }
6409     }
6410 
6411     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6412     pbr::MessageDescriptor pb::IMessage.Descriptor {
6413       get { return Descriptor; }
6414     }
6415 
6416     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedGroup_extension()6417     public RepeatedGroup_extension() {
6418       OnConstruction();
6419     }
6420 
OnConstruction()6421     partial void OnConstruction();
6422 
6423     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedGroup_extension(RepeatedGroup_extension other)6424     public RepeatedGroup_extension(RepeatedGroup_extension other) : this() {
6425       _hasBits0 = other._hasBits0;
6426       a_ = other.a_;
6427       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6428     }
6429 
6430     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()6431     public RepeatedGroup_extension Clone() {
6432       return new RepeatedGroup_extension(this);
6433     }
6434 
6435     /// <summary>Field number for the "a" field.</summary>
6436     public const int AFieldNumber = 47;
6437     private readonly static int ADefaultValue = 0;
6438 
6439     private int a_;
6440     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6441     public int A {
6442       get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
6443       set {
6444         _hasBits0 |= 1;
6445         a_ = value;
6446       }
6447     }
6448     /// <summary>Gets whether the "a" field is set</summary>
6449     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6450     public bool HasA {
6451       get { return (_hasBits0 & 1) != 0; }
6452     }
6453     /// <summary>Clears the value of the "a" field</summary>
6454     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()6455     public void ClearA() {
6456       _hasBits0 &= ~1;
6457     }
6458 
6459     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)6460     public override bool Equals(object other) {
6461       return Equals(other as RepeatedGroup_extension);
6462     }
6463 
6464     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(RepeatedGroup_extension other)6465     public bool Equals(RepeatedGroup_extension other) {
6466       if (ReferenceEquals(other, null)) {
6467         return false;
6468       }
6469       if (ReferenceEquals(other, this)) {
6470         return true;
6471       }
6472       if (A != other.A) return false;
6473       return Equals(_unknownFields, other._unknownFields);
6474     }
6475 
6476     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()6477     public override int GetHashCode() {
6478       int hash = 1;
6479       if (HasA) hash ^= A.GetHashCode();
6480       if (_unknownFields != null) {
6481         hash ^= _unknownFields.GetHashCode();
6482       }
6483       return hash;
6484     }
6485 
6486     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()6487     public override string ToString() {
6488       return pb::JsonFormatter.ToDiagnosticString(this);
6489     }
6490 
6491     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)6492     public void WriteTo(pb::CodedOutputStream output) {
6493     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6494       output.WriteRawMessage(this);
6495     #else
6496       if (HasA) {
6497         output.WriteRawTag(248, 2);
6498         output.WriteInt32(A);
6499       }
6500       if (_unknownFields != null) {
6501         _unknownFields.WriteTo(output);
6502       }
6503     #endif
6504     }
6505 
6506     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6507     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)6508     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6509       if (HasA) {
6510         output.WriteRawTag(248, 2);
6511         output.WriteInt32(A);
6512       }
6513       if (_unknownFields != null) {
6514         _unknownFields.WriteTo(ref output);
6515       }
6516     }
6517     #endif
6518 
6519     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()6520     public int CalculateSize() {
6521       int size = 0;
6522       if (HasA) {
6523         size += 2 + pb::CodedOutputStream.ComputeInt32Size(A);
6524       }
6525       if (_unknownFields != null) {
6526         size += _unknownFields.CalculateSize();
6527       }
6528       return size;
6529     }
6530 
6531     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(RepeatedGroup_extension other)6532     public void MergeFrom(RepeatedGroup_extension other) {
6533       if (other == null) {
6534         return;
6535       }
6536       if (other.HasA) {
6537         A = other.A;
6538       }
6539       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6540     }
6541 
6542     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)6543     public void MergeFrom(pb::CodedInputStream input) {
6544     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6545       input.ReadRawMessage(this);
6546     #else
6547       uint tag;
6548       while ((tag = input.ReadTag()) != 0) {
6549         switch(tag) {
6550           case 372:
6551             return;
6552           default:
6553             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6554             break;
6555           case 376: {
6556             A = input.ReadInt32();
6557             break;
6558           }
6559         }
6560       }
6561     #endif
6562     }
6563 
6564     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6565     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)6566     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6567       uint tag;
6568       while ((tag = input.ReadTag()) != 0) {
6569         switch(tag) {
6570           case 372:
6571             return;
6572           default:
6573             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6574             break;
6575           case 376: {
6576             A = input.ReadInt32();
6577             break;
6578           }
6579         }
6580       }
6581     }
6582     #endif
6583 
6584   }
6585 
6586   public sealed partial class TestGroup : pb::IMessage<TestGroup>
6587   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6588       , pb::IBufferMessage
6589   #endif
6590   {
6591     private static readonly pb::MessageParser<TestGroup> _parser = new pb::MessageParser<TestGroup>(() => new TestGroup());
6592     private pb::UnknownFieldSet _unknownFields;
6593     private int _hasBits0;
6594     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6595     public static pb::MessageParser<TestGroup> Parser { get { return _parser; } }
6596 
6597     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6598     public static pbr::MessageDescriptor Descriptor {
6599       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[9]; }
6600     }
6601 
6602     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6603     pbr::MessageDescriptor pb::IMessage.Descriptor {
6604       get { return Descriptor; }
6605     }
6606 
6607     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestGroup()6608     public TestGroup() {
6609       OnConstruction();
6610     }
6611 
OnConstruction()6612     partial void OnConstruction();
6613 
6614     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestGroup(TestGroup other)6615     public TestGroup(TestGroup other) : this() {
6616       _hasBits0 = other._hasBits0;
6617       optionalGroup_ = other.HasOptionalGroup ? other.optionalGroup_.Clone() : null;
6618       optionalForeignEnum_ = other.optionalForeignEnum_;
6619       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6620     }
6621 
6622     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()6623     public TestGroup Clone() {
6624       return new TestGroup(this);
6625     }
6626 
6627     /// <summary>Field number for the "optionalgroup" field.</summary>
6628     public const int OptionalGroupFieldNumber = 16;
6629     private global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup optionalGroup_;
6630     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6631     public global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup OptionalGroup {
6632       get { return optionalGroup_; }
6633       set {
6634         optionalGroup_ = value;
6635       }
6636     }
6637     /// <summary>Gets whether the optionalgroup field is set</summary>
6638     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6639     public bool HasOptionalGroup {
6640       get { return optionalGroup_ != null; }
6641     }
6642     /// <summary>Clears the value of the optionalgroup field</summary>
6643     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalGroup()6644     public void ClearOptionalGroup() {
6645       optionalGroup_ = null;
6646     }
6647 
6648     /// <summary>Field number for the "optional_foreign_enum" field.</summary>
6649     public const int OptionalForeignEnumFieldNumber = 22;
6650     private readonly static global::Google.Protobuf.TestProtos.Proto2.ForeignEnum OptionalForeignEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo;
6651 
6652     private global::Google.Protobuf.TestProtos.Proto2.ForeignEnum optionalForeignEnum_;
6653     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6654     public global::Google.Protobuf.TestProtos.Proto2.ForeignEnum OptionalForeignEnum {
6655       get { if ((_hasBits0 & 1) != 0) { return optionalForeignEnum_; } else { return OptionalForeignEnumDefaultValue; } }
6656       set {
6657         _hasBits0 |= 1;
6658         optionalForeignEnum_ = value;
6659       }
6660     }
6661     /// <summary>Gets whether the "optional_foreign_enum" field is set</summary>
6662     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6663     public bool HasOptionalForeignEnum {
6664       get { return (_hasBits0 & 1) != 0; }
6665     }
6666     /// <summary>Clears the value of the "optional_foreign_enum" field</summary>
6667     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalForeignEnum()6668     public void ClearOptionalForeignEnum() {
6669       _hasBits0 &= ~1;
6670     }
6671 
6672     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)6673     public override bool Equals(object other) {
6674       return Equals(other as TestGroup);
6675     }
6676 
6677     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestGroup other)6678     public bool Equals(TestGroup other) {
6679       if (ReferenceEquals(other, null)) {
6680         return false;
6681       }
6682       if (ReferenceEquals(other, this)) {
6683         return true;
6684       }
6685       if (!object.Equals(OptionalGroup, other.OptionalGroup)) return false;
6686       if (OptionalForeignEnum != other.OptionalForeignEnum) return false;
6687       return Equals(_unknownFields, other._unknownFields);
6688     }
6689 
6690     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()6691     public override int GetHashCode() {
6692       int hash = 1;
6693       if (HasOptionalGroup) hash ^= OptionalGroup.GetHashCode();
6694       if (HasOptionalForeignEnum) hash ^= OptionalForeignEnum.GetHashCode();
6695       if (_unknownFields != null) {
6696         hash ^= _unknownFields.GetHashCode();
6697       }
6698       return hash;
6699     }
6700 
6701     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()6702     public override string ToString() {
6703       return pb::JsonFormatter.ToDiagnosticString(this);
6704     }
6705 
6706     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)6707     public void WriteTo(pb::CodedOutputStream output) {
6708     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6709       output.WriteRawMessage(this);
6710     #else
6711       if (HasOptionalGroup) {
6712         output.WriteRawTag(131, 1);
6713         output.WriteGroup(OptionalGroup);
6714         output.WriteRawTag(132, 1);
6715       }
6716       if (HasOptionalForeignEnum) {
6717         output.WriteRawTag(176, 1);
6718         output.WriteEnum((int) OptionalForeignEnum);
6719       }
6720       if (_unknownFields != null) {
6721         _unknownFields.WriteTo(output);
6722       }
6723     #endif
6724     }
6725 
6726     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6727     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)6728     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6729       if (HasOptionalGroup) {
6730         output.WriteRawTag(131, 1);
6731         output.WriteGroup(OptionalGroup);
6732         output.WriteRawTag(132, 1);
6733       }
6734       if (HasOptionalForeignEnum) {
6735         output.WriteRawTag(176, 1);
6736         output.WriteEnum((int) OptionalForeignEnum);
6737       }
6738       if (_unknownFields != null) {
6739         _unknownFields.WriteTo(ref output);
6740       }
6741     }
6742     #endif
6743 
6744     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()6745     public int CalculateSize() {
6746       int size = 0;
6747       if (HasOptionalGroup) {
6748         size += 4 + pb::CodedOutputStream.ComputeGroupSize(OptionalGroup);
6749       }
6750       if (HasOptionalForeignEnum) {
6751         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) OptionalForeignEnum);
6752       }
6753       if (_unknownFields != null) {
6754         size += _unknownFields.CalculateSize();
6755       }
6756       return size;
6757     }
6758 
6759     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestGroup other)6760     public void MergeFrom(TestGroup other) {
6761       if (other == null) {
6762         return;
6763       }
6764       if (other.HasOptionalGroup) {
6765         if (!HasOptionalGroup) {
6766           OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup();
6767         }
6768         OptionalGroup.MergeFrom(other.OptionalGroup);
6769       }
6770       if (other.HasOptionalForeignEnum) {
6771         OptionalForeignEnum = other.OptionalForeignEnum;
6772       }
6773       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6774     }
6775 
6776     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)6777     public void MergeFrom(pb::CodedInputStream input) {
6778     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6779       input.ReadRawMessage(this);
6780     #else
6781       uint tag;
6782       while ((tag = input.ReadTag()) != 0) {
6783         switch(tag) {
6784           default:
6785             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6786             break;
6787           case 131: {
6788             if (!HasOptionalGroup) {
6789               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup();
6790             }
6791             input.ReadGroup(OptionalGroup);
6792             break;
6793           }
6794           case 176: {
6795             OptionalForeignEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
6796             break;
6797           }
6798         }
6799       }
6800     #endif
6801     }
6802 
6803     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6804     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)6805     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
6806       uint tag;
6807       while ((tag = input.ReadTag()) != 0) {
6808         switch(tag) {
6809           default:
6810             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
6811             break;
6812           case 131: {
6813             if (!HasOptionalGroup) {
6814               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestGroup.Types.OptionalGroup();
6815             }
6816             input.ReadGroup(OptionalGroup);
6817             break;
6818           }
6819           case 176: {
6820             OptionalForeignEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
6821             break;
6822           }
6823         }
6824       }
6825     }
6826     #endif
6827 
6828     #region Nested types
6829     /// <summary>Container for nested types declared in the TestGroup message type.</summary>
6830     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6831     public static partial class Types {
6832       public sealed partial class OptionalGroup : pb::IMessage<OptionalGroup>
6833       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6834           , pb::IBufferMessage
6835       #endif
6836       {
6837         private static readonly pb::MessageParser<OptionalGroup> _parser = new pb::MessageParser<OptionalGroup>(() => new OptionalGroup());
6838         private pb::UnknownFieldSet _unknownFields;
6839         private int _hasBits0;
6840         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6841         public static pb::MessageParser<OptionalGroup> Parser { get { return _parser; } }
6842 
6843         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6844         public static pbr::MessageDescriptor Descriptor {
6845           get { return global::Google.Protobuf.TestProtos.Proto2.TestGroup.Descriptor.NestedTypes[0]; }
6846         }
6847 
6848         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6849         pbr::MessageDescriptor pb::IMessage.Descriptor {
6850           get { return Descriptor; }
6851         }
6852 
6853         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup()6854         public OptionalGroup() {
6855           OnConstruction();
6856         }
6857 
OnConstruction()6858         partial void OnConstruction();
6859 
6860         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup(OptionalGroup other)6861         public OptionalGroup(OptionalGroup other) : this() {
6862           _hasBits0 = other._hasBits0;
6863           a_ = other.a_;
6864           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6865         }
6866 
6867         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()6868         public OptionalGroup Clone() {
6869           return new OptionalGroup(this);
6870         }
6871 
6872         /// <summary>Field number for the "a" field.</summary>
6873         public const int AFieldNumber = 17;
6874         private readonly static int ADefaultValue = 0;
6875 
6876         private int a_;
6877         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6878         public int A {
6879           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
6880           set {
6881             _hasBits0 |= 1;
6882             a_ = value;
6883           }
6884         }
6885         /// <summary>Gets whether the "a" field is set</summary>
6886         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6887         public bool HasA {
6888           get { return (_hasBits0 & 1) != 0; }
6889         }
6890         /// <summary>Clears the value of the "a" field</summary>
6891         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()6892         public void ClearA() {
6893           _hasBits0 &= ~1;
6894         }
6895 
6896         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)6897         public override bool Equals(object other) {
6898           return Equals(other as OptionalGroup);
6899         }
6900 
6901         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OptionalGroup other)6902         public bool Equals(OptionalGroup other) {
6903           if (ReferenceEquals(other, null)) {
6904             return false;
6905           }
6906           if (ReferenceEquals(other, this)) {
6907             return true;
6908           }
6909           if (A != other.A) return false;
6910           return Equals(_unknownFields, other._unknownFields);
6911         }
6912 
6913         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()6914         public override int GetHashCode() {
6915           int hash = 1;
6916           if (HasA) hash ^= A.GetHashCode();
6917           if (_unknownFields != null) {
6918             hash ^= _unknownFields.GetHashCode();
6919           }
6920           return hash;
6921         }
6922 
6923         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()6924         public override string ToString() {
6925           return pb::JsonFormatter.ToDiagnosticString(this);
6926         }
6927 
6928         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)6929         public void WriteTo(pb::CodedOutputStream output) {
6930         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6931           output.WriteRawMessage(this);
6932         #else
6933           if (HasA) {
6934             output.WriteRawTag(136, 1);
6935             output.WriteInt32(A);
6936           }
6937           if (_unknownFields != null) {
6938             _unknownFields.WriteTo(output);
6939           }
6940         #endif
6941         }
6942 
6943         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6944         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)6945         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
6946           if (HasA) {
6947             output.WriteRawTag(136, 1);
6948             output.WriteInt32(A);
6949           }
6950           if (_unknownFields != null) {
6951             _unknownFields.WriteTo(ref output);
6952           }
6953         }
6954         #endif
6955 
6956         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()6957         public int CalculateSize() {
6958           int size = 0;
6959           if (HasA) {
6960             size += 2 + pb::CodedOutputStream.ComputeInt32Size(A);
6961           }
6962           if (_unknownFields != null) {
6963             size += _unknownFields.CalculateSize();
6964           }
6965           return size;
6966         }
6967 
6968         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OptionalGroup other)6969         public void MergeFrom(OptionalGroup other) {
6970           if (other == null) {
6971             return;
6972           }
6973           if (other.HasA) {
6974             A = other.A;
6975           }
6976           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6977         }
6978 
6979         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)6980         public void MergeFrom(pb::CodedInputStream input) {
6981         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
6982           input.ReadRawMessage(this);
6983         #else
6984           uint tag;
6985           while ((tag = input.ReadTag()) != 0) {
6986             switch(tag) {
6987               case 132:
6988                 return;
6989               default:
6990                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6991                 break;
6992               case 136: {
6993                 A = input.ReadInt32();
6994                 break;
6995               }
6996             }
6997           }
6998         #endif
6999         }
7000 
7001         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7002         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)7003         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7004           uint tag;
7005           while ((tag = input.ReadTag()) != 0) {
7006             switch(tag) {
7007               case 132:
7008                 return;
7009               default:
7010                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7011                 break;
7012               case 136: {
7013                 A = input.ReadInt32();
7014                 break;
7015               }
7016             }
7017           }
7018         }
7019         #endif
7020 
7021       }
7022 
7023     }
7024     #endregion
7025 
7026   }
7027 
7028   public sealed partial class TestGroupExtension : pb::IExtendableMessage<TestGroupExtension>
7029   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7030       , pb::IBufferMessage
7031   #endif
7032   {
7033     private static readonly pb::MessageParser<TestGroupExtension> _parser = new pb::MessageParser<TestGroupExtension>(() => new TestGroupExtension());
7034     private pb::UnknownFieldSet _unknownFields;
7035     private pb::ExtensionSet<TestGroupExtension> _extensions;
7036     private pb::ExtensionSet<TestGroupExtension> _Extensions { get { return _extensions; } }
7037     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7038     public static pb::MessageParser<TestGroupExtension> Parser { get { return _parser; } }
7039 
7040     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7041     public static pbr::MessageDescriptor Descriptor {
7042       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[10]; }
7043     }
7044 
7045     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7046     pbr::MessageDescriptor pb::IMessage.Descriptor {
7047       get { return Descriptor; }
7048     }
7049 
7050     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestGroupExtension()7051     public TestGroupExtension() {
7052       OnConstruction();
7053     }
7054 
OnConstruction()7055     partial void OnConstruction();
7056 
7057     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestGroupExtension(TestGroupExtension other)7058     public TestGroupExtension(TestGroupExtension other) : this() {
7059       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7060       _extensions = pb::ExtensionSet.Clone(other._extensions);
7061     }
7062 
7063     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()7064     public TestGroupExtension Clone() {
7065       return new TestGroupExtension(this);
7066     }
7067 
7068     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)7069     public override bool Equals(object other) {
7070       return Equals(other as TestGroupExtension);
7071     }
7072 
7073     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestGroupExtension other)7074     public bool Equals(TestGroupExtension other) {
7075       if (ReferenceEquals(other, null)) {
7076         return false;
7077       }
7078       if (ReferenceEquals(other, this)) {
7079         return true;
7080       }
7081       if (!Equals(_extensions, other._extensions)) {
7082         return false;
7083       }
7084       return Equals(_unknownFields, other._unknownFields);
7085     }
7086 
7087     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()7088     public override int GetHashCode() {
7089       int hash = 1;
7090       if (_extensions != null) {
7091         hash ^= _extensions.GetHashCode();
7092       }
7093       if (_unknownFields != null) {
7094         hash ^= _unknownFields.GetHashCode();
7095       }
7096       return hash;
7097     }
7098 
7099     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()7100     public override string ToString() {
7101       return pb::JsonFormatter.ToDiagnosticString(this);
7102     }
7103 
7104     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)7105     public void WriteTo(pb::CodedOutputStream output) {
7106     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7107       output.WriteRawMessage(this);
7108     #else
7109       if (_extensions != null) {
7110         _extensions.WriteTo(output);
7111       }
7112       if (_unknownFields != null) {
7113         _unknownFields.WriteTo(output);
7114       }
7115     #endif
7116     }
7117 
7118     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7119     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)7120     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
7121       if (_extensions != null) {
7122         _extensions.WriteTo(ref output);
7123       }
7124       if (_unknownFields != null) {
7125         _unknownFields.WriteTo(ref output);
7126       }
7127     }
7128     #endif
7129 
7130     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()7131     public int CalculateSize() {
7132       int size = 0;
7133       if (_extensions != null) {
7134         size += _extensions.CalculateSize();
7135       }
7136       if (_unknownFields != null) {
7137         size += _unknownFields.CalculateSize();
7138       }
7139       return size;
7140     }
7141 
7142     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestGroupExtension other)7143     public void MergeFrom(TestGroupExtension other) {
7144       if (other == null) {
7145         return;
7146       }
7147       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
7148       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
7149     }
7150 
7151     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)7152     public void MergeFrom(pb::CodedInputStream input) {
7153     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7154       input.ReadRawMessage(this);
7155     #else
7156       uint tag;
7157       while ((tag = input.ReadTag()) != 0) {
7158         switch(tag) {
7159           default:
7160             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
7161               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
7162             }
7163             break;
7164         }
7165       }
7166     #endif
7167     }
7168 
7169     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7170     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)7171     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7172       uint tag;
7173       while ((tag = input.ReadTag()) != 0) {
7174         switch(tag) {
7175           default:
7176             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
7177               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7178             }
7179             break;
7180         }
7181       }
7182     }
7183     #endif
7184 
GetExtension(pb::Extension<TestGroupExtension, TValue> extension)7185     public TValue GetExtension<TValue>(pb::Extension<TestGroupExtension, TValue> extension) {
7186       return pb::ExtensionSet.Get(ref _extensions, extension);
7187     }
GetExtension(pb::RepeatedExtension<TestGroupExtension, TValue> extension)7188     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestGroupExtension, TValue> extension) {
7189       return pb::ExtensionSet.Get(ref _extensions, extension);
7190     }
GetOrInitializeExtension(pb::RepeatedExtension<TestGroupExtension, TValue> extension)7191     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestGroupExtension, TValue> extension) {
7192       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
7193     }
SetExtension(pb::Extension<TestGroupExtension, TValue> extension, TValue value)7194     public void SetExtension<TValue>(pb::Extension<TestGroupExtension, TValue> extension, TValue value) {
7195       pb::ExtensionSet.Set(ref _extensions, extension, value);
7196     }
HasExtension(pb::Extension<TestGroupExtension, TValue> extension)7197     public bool HasExtension<TValue>(pb::Extension<TestGroupExtension, TValue> extension) {
7198       return pb::ExtensionSet.Has(ref _extensions, extension);
7199     }
ClearExtension(pb::Extension<TestGroupExtension, TValue> extension)7200     public void ClearExtension<TValue>(pb::Extension<TestGroupExtension, TValue> extension) {
7201       pb::ExtensionSet.Clear(ref _extensions, extension);
7202     }
ClearExtension(pb::RepeatedExtension<TestGroupExtension, TValue> extension)7203     public void ClearExtension<TValue>(pb::RepeatedExtension<TestGroupExtension, TValue> extension) {
7204       pb::ExtensionSet.Clear(ref _extensions, extension);
7205     }
7206 
7207   }
7208 
7209   public sealed partial class TestNestedExtension : pb::IMessage<TestNestedExtension>
7210   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7211       , pb::IBufferMessage
7212   #endif
7213   {
7214     private static readonly pb::MessageParser<TestNestedExtension> _parser = new pb::MessageParser<TestNestedExtension>(() => new TestNestedExtension());
7215     private pb::UnknownFieldSet _unknownFields;
7216     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7217     public static pb::MessageParser<TestNestedExtension> Parser { get { return _parser; } }
7218 
7219     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7220     public static pbr::MessageDescriptor Descriptor {
7221       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[11]; }
7222     }
7223 
7224     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7225     pbr::MessageDescriptor pb::IMessage.Descriptor {
7226       get { return Descriptor; }
7227     }
7228 
7229     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestNestedExtension()7230     public TestNestedExtension() {
7231       OnConstruction();
7232     }
7233 
OnConstruction()7234     partial void OnConstruction();
7235 
7236     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestNestedExtension(TestNestedExtension other)7237     public TestNestedExtension(TestNestedExtension other) : this() {
7238       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7239     }
7240 
7241     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()7242     public TestNestedExtension Clone() {
7243       return new TestNestedExtension(this);
7244     }
7245 
7246     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)7247     public override bool Equals(object other) {
7248       return Equals(other as TestNestedExtension);
7249     }
7250 
7251     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestNestedExtension other)7252     public bool Equals(TestNestedExtension other) {
7253       if (ReferenceEquals(other, null)) {
7254         return false;
7255       }
7256       if (ReferenceEquals(other, this)) {
7257         return true;
7258       }
7259       return Equals(_unknownFields, other._unknownFields);
7260     }
7261 
7262     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()7263     public override int GetHashCode() {
7264       int hash = 1;
7265       if (_unknownFields != null) {
7266         hash ^= _unknownFields.GetHashCode();
7267       }
7268       return hash;
7269     }
7270 
7271     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()7272     public override string ToString() {
7273       return pb::JsonFormatter.ToDiagnosticString(this);
7274     }
7275 
7276     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)7277     public void WriteTo(pb::CodedOutputStream output) {
7278     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7279       output.WriteRawMessage(this);
7280     #else
7281       if (_unknownFields != null) {
7282         _unknownFields.WriteTo(output);
7283       }
7284     #endif
7285     }
7286 
7287     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7288     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)7289     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
7290       if (_unknownFields != null) {
7291         _unknownFields.WriteTo(ref output);
7292       }
7293     }
7294     #endif
7295 
7296     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()7297     public int CalculateSize() {
7298       int size = 0;
7299       if (_unknownFields != null) {
7300         size += _unknownFields.CalculateSize();
7301       }
7302       return size;
7303     }
7304 
7305     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestNestedExtension other)7306     public void MergeFrom(TestNestedExtension other) {
7307       if (other == null) {
7308         return;
7309       }
7310       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
7311     }
7312 
7313     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)7314     public void MergeFrom(pb::CodedInputStream input) {
7315     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7316       input.ReadRawMessage(this);
7317     #else
7318       uint tag;
7319       while ((tag = input.ReadTag()) != 0) {
7320         switch(tag) {
7321           default:
7322             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
7323             break;
7324         }
7325       }
7326     #endif
7327     }
7328 
7329     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)7331     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7332       uint tag;
7333       while ((tag = input.ReadTag()) != 0) {
7334         switch(tag) {
7335           default:
7336             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7337             break;
7338         }
7339       }
7340     }
7341     #endif
7342 
7343     #region Nested types
7344     /// <summary>Container for nested types declared in the TestNestedExtension message type.</summary>
7345     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7346     public static partial class Types {
7347       public sealed partial class OptionalGroup_extension : pb::IMessage<OptionalGroup_extension>
7348       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7349           , pb::IBufferMessage
7350       #endif
7351       {
7352         private static readonly pb::MessageParser<OptionalGroup_extension> _parser = new pb::MessageParser<OptionalGroup_extension>(() => new OptionalGroup_extension());
7353         private pb::UnknownFieldSet _unknownFields;
7354         private int _hasBits0;
7355         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7356         public static pb::MessageParser<OptionalGroup_extension> Parser { get { return _parser; } }
7357 
7358         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7359         public static pbr::MessageDescriptor Descriptor {
7360           get { return global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Descriptor.NestedTypes[0]; }
7361         }
7362 
7363         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7364         pbr::MessageDescriptor pb::IMessage.Descriptor {
7365           get { return Descriptor; }
7366         }
7367 
7368         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup_extension()7369         public OptionalGroup_extension() {
7370           OnConstruction();
7371         }
7372 
OnConstruction()7373         partial void OnConstruction();
7374 
7375         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup_extension(OptionalGroup_extension other)7376         public OptionalGroup_extension(OptionalGroup_extension other) : this() {
7377           _hasBits0 = other._hasBits0;
7378           a_ = other.a_;
7379           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7380         }
7381 
7382         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()7383         public OptionalGroup_extension Clone() {
7384           return new OptionalGroup_extension(this);
7385         }
7386 
7387         /// <summary>Field number for the "a" field.</summary>
7388         public const int AFieldNumber = 17;
7389         private readonly static int ADefaultValue = 0;
7390 
7391         private int a_;
7392         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7393         public int A {
7394           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
7395           set {
7396             _hasBits0 |= 1;
7397             a_ = value;
7398           }
7399         }
7400         /// <summary>Gets whether the "a" field is set</summary>
7401         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7402         public bool HasA {
7403           get { return (_hasBits0 & 1) != 0; }
7404         }
7405         /// <summary>Clears the value of the "a" field</summary>
7406         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()7407         public void ClearA() {
7408           _hasBits0 &= ~1;
7409         }
7410 
7411         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)7412         public override bool Equals(object other) {
7413           return Equals(other as OptionalGroup_extension);
7414         }
7415 
7416         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OptionalGroup_extension other)7417         public bool Equals(OptionalGroup_extension other) {
7418           if (ReferenceEquals(other, null)) {
7419             return false;
7420           }
7421           if (ReferenceEquals(other, this)) {
7422             return true;
7423           }
7424           if (A != other.A) return false;
7425           return Equals(_unknownFields, other._unknownFields);
7426         }
7427 
7428         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()7429         public override int GetHashCode() {
7430           int hash = 1;
7431           if (HasA) hash ^= A.GetHashCode();
7432           if (_unknownFields != null) {
7433             hash ^= _unknownFields.GetHashCode();
7434           }
7435           return hash;
7436         }
7437 
7438         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()7439         public override string ToString() {
7440           return pb::JsonFormatter.ToDiagnosticString(this);
7441         }
7442 
7443         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)7444         public void WriteTo(pb::CodedOutputStream output) {
7445         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7446           output.WriteRawMessage(this);
7447         #else
7448           if (HasA) {
7449             output.WriteRawTag(136, 1);
7450             output.WriteInt32(A);
7451           }
7452           if (_unknownFields != null) {
7453             _unknownFields.WriteTo(output);
7454           }
7455         #endif
7456         }
7457 
7458         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7459         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)7460         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
7461           if (HasA) {
7462             output.WriteRawTag(136, 1);
7463             output.WriteInt32(A);
7464           }
7465           if (_unknownFields != null) {
7466             _unknownFields.WriteTo(ref output);
7467           }
7468         }
7469         #endif
7470 
7471         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()7472         public int CalculateSize() {
7473           int size = 0;
7474           if (HasA) {
7475             size += 2 + pb::CodedOutputStream.ComputeInt32Size(A);
7476           }
7477           if (_unknownFields != null) {
7478             size += _unknownFields.CalculateSize();
7479           }
7480           return size;
7481         }
7482 
7483         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OptionalGroup_extension other)7484         public void MergeFrom(OptionalGroup_extension other) {
7485           if (other == null) {
7486             return;
7487           }
7488           if (other.HasA) {
7489             A = other.A;
7490           }
7491           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
7492         }
7493 
7494         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)7495         public void MergeFrom(pb::CodedInputStream input) {
7496         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7497           input.ReadRawMessage(this);
7498         #else
7499           uint tag;
7500           while ((tag = input.ReadTag()) != 0) {
7501             switch(tag) {
7502               case 132:
7503                 return;
7504               default:
7505                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
7506                 break;
7507               case 136: {
7508                 A = input.ReadInt32();
7509                 break;
7510               }
7511             }
7512           }
7513         #endif
7514         }
7515 
7516         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7517         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)7518         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
7519           uint tag;
7520           while ((tag = input.ReadTag()) != 0) {
7521             switch(tag) {
7522               case 132:
7523                 return;
7524               default:
7525                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
7526                 break;
7527               case 136: {
7528                 A = input.ReadInt32();
7529                 break;
7530               }
7531             }
7532           }
7533         }
7534         #endif
7535 
7536       }
7537 
7538     }
7539     #endregion
7540 
7541     #region Extensions
7542     /// <summary>Container for extensions for other messages declared in the TestNestedExtension message type.</summary>
7543     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7544     public static partial class Extensions {
7545       /// <summary>
7546       /// Check for bug where string extensions declared in tested scope did not
7547       /// compile.
7548       /// </summary>
7549       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> Test =
7550         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(1002, pb::FieldCodec.ForString(8018, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("dGVzdA=="), 0, 4)));
7551       /// <summary>
7552       /// Used to test if generated extension name is correct when there are
7553       /// underscores.
7554       /// </summary>
7555       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string> NestedStringExtension =
7556         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, string>(1003, pb::FieldCodec.ForString(8026, ""));
7557       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestGroupExtension, global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Types.OptionalGroup_extension> OptionalGroupExtension =
7558         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestGroupExtension, global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Types.OptionalGroup_extension>(16, pb::FieldCodec.ForGroup(131, 132, global::Google.Protobuf.TestProtos.Proto2.TestNestedExtension.Types.OptionalGroup_extension.Parser));
7559       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestGroupExtension, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> OptionalForeignEnumExtension =
7560         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestGroupExtension, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>(22, pb::FieldCodec.ForEnum(176, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x, global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo));
7561     }
7562     #endregion
7563 
7564   }
7565 
7566   /// <summary>
7567   /// We have separate messages for testing required fields because it's
7568   /// annoying to have to fill in required fields in TestProto in order to
7569   /// do anything with it.  Note that we don't need to test every type of
7570   /// required filed because the code output is basically identical to
7571   /// optional fields for all types.
7572   /// </summary>
7573   public sealed partial class TestRequired : pb::IMessage<TestRequired>
7574   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
7575       , pb::IBufferMessage
7576   #endif
7577   {
7578     private static readonly pb::MessageParser<TestRequired> _parser = new pb::MessageParser<TestRequired>(() => new TestRequired());
7579     private pb::UnknownFieldSet _unknownFields;
7580     private int _hasBits0;
7581     private int _hasBits1;
7582     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7583     public static pb::MessageParser<TestRequired> Parser { get { return _parser; } }
7584 
7585     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7586     public static pbr::MessageDescriptor Descriptor {
7587       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[12]; }
7588     }
7589 
7590     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7591     pbr::MessageDescriptor pb::IMessage.Descriptor {
7592       get { return Descriptor; }
7593     }
7594 
7595     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequired()7596     public TestRequired() {
7597       OnConstruction();
7598     }
7599 
OnConstruction()7600     partial void OnConstruction();
7601 
7602     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequired(TestRequired other)7603     public TestRequired(TestRequired other) : this() {
7604       _hasBits0 = other._hasBits0;
7605       _hasBits1 = other._hasBits1;
7606       a_ = other.a_;
7607       dummy2_ = other.dummy2_;
7608       b_ = other.b_;
7609       dummy4_ = other.dummy4_;
7610       dummy5_ = other.dummy5_;
7611       dummy6_ = other.dummy6_;
7612       dummy7_ = other.dummy7_;
7613       dummy8_ = other.dummy8_;
7614       dummy9_ = other.dummy9_;
7615       dummy10_ = other.dummy10_;
7616       dummy11_ = other.dummy11_;
7617       dummy12_ = other.dummy12_;
7618       dummy13_ = other.dummy13_;
7619       dummy14_ = other.dummy14_;
7620       dummy15_ = other.dummy15_;
7621       dummy16_ = other.dummy16_;
7622       dummy17_ = other.dummy17_;
7623       dummy18_ = other.dummy18_;
7624       dummy19_ = other.dummy19_;
7625       dummy20_ = other.dummy20_;
7626       dummy21_ = other.dummy21_;
7627       dummy22_ = other.dummy22_;
7628       dummy23_ = other.dummy23_;
7629       dummy24_ = other.dummy24_;
7630       dummy25_ = other.dummy25_;
7631       dummy26_ = other.dummy26_;
7632       dummy27_ = other.dummy27_;
7633       dummy28_ = other.dummy28_;
7634       dummy29_ = other.dummy29_;
7635       dummy30_ = other.dummy30_;
7636       dummy31_ = other.dummy31_;
7637       dummy32_ = other.dummy32_;
7638       c_ = other.c_;
7639       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
7640     }
7641 
7642     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()7643     public TestRequired Clone() {
7644       return new TestRequired(this);
7645     }
7646 
7647     /// <summary>Field number for the "a" field.</summary>
7648     public const int AFieldNumber = 1;
7649     private readonly static int ADefaultValue = 0;
7650 
7651     private int a_;
7652     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7653     public int A {
7654       get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
7655       set {
7656         _hasBits0 |= 1;
7657         a_ = value;
7658       }
7659     }
7660     /// <summary>Gets whether the "a" field is set</summary>
7661     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7662     public bool HasA {
7663       get { return (_hasBits0 & 1) != 0; }
7664     }
7665     /// <summary>Clears the value of the "a" field</summary>
7666     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()7667     public void ClearA() {
7668       _hasBits0 &= ~1;
7669     }
7670 
7671     /// <summary>Field number for the "dummy2" field.</summary>
7672     public const int Dummy2FieldNumber = 2;
7673     private readonly static int Dummy2DefaultValue = 0;
7674 
7675     private int dummy2_;
7676     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7677     public int Dummy2 {
7678       get { if ((_hasBits0 & 2) != 0) { return dummy2_; } else { return Dummy2DefaultValue; } }
7679       set {
7680         _hasBits0 |= 2;
7681         dummy2_ = value;
7682       }
7683     }
7684     /// <summary>Gets whether the "dummy2" field is set</summary>
7685     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7686     public bool HasDummy2 {
7687       get { return (_hasBits0 & 2) != 0; }
7688     }
7689     /// <summary>Clears the value of the "dummy2" field</summary>
7690     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy2()7691     public void ClearDummy2() {
7692       _hasBits0 &= ~2;
7693     }
7694 
7695     /// <summary>Field number for the "b" field.</summary>
7696     public const int BFieldNumber = 3;
7697     private readonly static int BDefaultValue = 0;
7698 
7699     private int b_;
7700     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7701     public int B {
7702       get { if ((_hasBits0 & 4) != 0) { return b_; } else { return BDefaultValue; } }
7703       set {
7704         _hasBits0 |= 4;
7705         b_ = value;
7706       }
7707     }
7708     /// <summary>Gets whether the "b" field is set</summary>
7709     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7710     public bool HasB {
7711       get { return (_hasBits0 & 4) != 0; }
7712     }
7713     /// <summary>Clears the value of the "b" field</summary>
7714     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearB()7715     public void ClearB() {
7716       _hasBits0 &= ~4;
7717     }
7718 
7719     /// <summary>Field number for the "dummy4" field.</summary>
7720     public const int Dummy4FieldNumber = 4;
7721     private readonly static int Dummy4DefaultValue = 0;
7722 
7723     private int dummy4_;
7724     /// <summary>
7725     /// Pad the field count to 32 so that we can test that IsInitialized()
7726     /// properly checks multiple elements of has_bits_.
7727     /// </summary>
7728     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7729     public int Dummy4 {
7730       get { if ((_hasBits0 & 8) != 0) { return dummy4_; } else { return Dummy4DefaultValue; } }
7731       set {
7732         _hasBits0 |= 8;
7733         dummy4_ = value;
7734       }
7735     }
7736     /// <summary>Gets whether the "dummy4" field is set</summary>
7737     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7738     public bool HasDummy4 {
7739       get { return (_hasBits0 & 8) != 0; }
7740     }
7741     /// <summary>Clears the value of the "dummy4" field</summary>
7742     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy4()7743     public void ClearDummy4() {
7744       _hasBits0 &= ~8;
7745     }
7746 
7747     /// <summary>Field number for the "dummy5" field.</summary>
7748     public const int Dummy5FieldNumber = 5;
7749     private readonly static int Dummy5DefaultValue = 0;
7750 
7751     private int dummy5_;
7752     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7753     public int Dummy5 {
7754       get { if ((_hasBits0 & 16) != 0) { return dummy5_; } else { return Dummy5DefaultValue; } }
7755       set {
7756         _hasBits0 |= 16;
7757         dummy5_ = value;
7758       }
7759     }
7760     /// <summary>Gets whether the "dummy5" field is set</summary>
7761     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7762     public bool HasDummy5 {
7763       get { return (_hasBits0 & 16) != 0; }
7764     }
7765     /// <summary>Clears the value of the "dummy5" field</summary>
7766     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy5()7767     public void ClearDummy5() {
7768       _hasBits0 &= ~16;
7769     }
7770 
7771     /// <summary>Field number for the "dummy6" field.</summary>
7772     public const int Dummy6FieldNumber = 6;
7773     private readonly static int Dummy6DefaultValue = 0;
7774 
7775     private int dummy6_;
7776     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7777     public int Dummy6 {
7778       get { if ((_hasBits0 & 32) != 0) { return dummy6_; } else { return Dummy6DefaultValue; } }
7779       set {
7780         _hasBits0 |= 32;
7781         dummy6_ = value;
7782       }
7783     }
7784     /// <summary>Gets whether the "dummy6" field is set</summary>
7785     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7786     public bool HasDummy6 {
7787       get { return (_hasBits0 & 32) != 0; }
7788     }
7789     /// <summary>Clears the value of the "dummy6" field</summary>
7790     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy6()7791     public void ClearDummy6() {
7792       _hasBits0 &= ~32;
7793     }
7794 
7795     /// <summary>Field number for the "dummy7" field.</summary>
7796     public const int Dummy7FieldNumber = 7;
7797     private readonly static int Dummy7DefaultValue = 0;
7798 
7799     private int dummy7_;
7800     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7801     public int Dummy7 {
7802       get { if ((_hasBits0 & 64) != 0) { return dummy7_; } else { return Dummy7DefaultValue; } }
7803       set {
7804         _hasBits0 |= 64;
7805         dummy7_ = value;
7806       }
7807     }
7808     /// <summary>Gets whether the "dummy7" field is set</summary>
7809     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7810     public bool HasDummy7 {
7811       get { return (_hasBits0 & 64) != 0; }
7812     }
7813     /// <summary>Clears the value of the "dummy7" field</summary>
7814     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy7()7815     public void ClearDummy7() {
7816       _hasBits0 &= ~64;
7817     }
7818 
7819     /// <summary>Field number for the "dummy8" field.</summary>
7820     public const int Dummy8FieldNumber = 8;
7821     private readonly static int Dummy8DefaultValue = 0;
7822 
7823     private int dummy8_;
7824     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7825     public int Dummy8 {
7826       get { if ((_hasBits0 & 128) != 0) { return dummy8_; } else { return Dummy8DefaultValue; } }
7827       set {
7828         _hasBits0 |= 128;
7829         dummy8_ = value;
7830       }
7831     }
7832     /// <summary>Gets whether the "dummy8" field is set</summary>
7833     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7834     public bool HasDummy8 {
7835       get { return (_hasBits0 & 128) != 0; }
7836     }
7837     /// <summary>Clears the value of the "dummy8" field</summary>
7838     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy8()7839     public void ClearDummy8() {
7840       _hasBits0 &= ~128;
7841     }
7842 
7843     /// <summary>Field number for the "dummy9" field.</summary>
7844     public const int Dummy9FieldNumber = 9;
7845     private readonly static int Dummy9DefaultValue = 0;
7846 
7847     private int dummy9_;
7848     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7849     public int Dummy9 {
7850       get { if ((_hasBits0 & 256) != 0) { return dummy9_; } else { return Dummy9DefaultValue; } }
7851       set {
7852         _hasBits0 |= 256;
7853         dummy9_ = value;
7854       }
7855     }
7856     /// <summary>Gets whether the "dummy9" field is set</summary>
7857     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7858     public bool HasDummy9 {
7859       get { return (_hasBits0 & 256) != 0; }
7860     }
7861     /// <summary>Clears the value of the "dummy9" field</summary>
7862     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy9()7863     public void ClearDummy9() {
7864       _hasBits0 &= ~256;
7865     }
7866 
7867     /// <summary>Field number for the "dummy10" field.</summary>
7868     public const int Dummy10FieldNumber = 10;
7869     private readonly static int Dummy10DefaultValue = 0;
7870 
7871     private int dummy10_;
7872     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7873     public int Dummy10 {
7874       get { if ((_hasBits0 & 512) != 0) { return dummy10_; } else { return Dummy10DefaultValue; } }
7875       set {
7876         _hasBits0 |= 512;
7877         dummy10_ = value;
7878       }
7879     }
7880     /// <summary>Gets whether the "dummy10" field is set</summary>
7881     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7882     public bool HasDummy10 {
7883       get { return (_hasBits0 & 512) != 0; }
7884     }
7885     /// <summary>Clears the value of the "dummy10" field</summary>
7886     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy10()7887     public void ClearDummy10() {
7888       _hasBits0 &= ~512;
7889     }
7890 
7891     /// <summary>Field number for the "dummy11" field.</summary>
7892     public const int Dummy11FieldNumber = 11;
7893     private readonly static int Dummy11DefaultValue = 0;
7894 
7895     private int dummy11_;
7896     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7897     public int Dummy11 {
7898       get { if ((_hasBits0 & 1024) != 0) { return dummy11_; } else { return Dummy11DefaultValue; } }
7899       set {
7900         _hasBits0 |= 1024;
7901         dummy11_ = value;
7902       }
7903     }
7904     /// <summary>Gets whether the "dummy11" field is set</summary>
7905     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7906     public bool HasDummy11 {
7907       get { return (_hasBits0 & 1024) != 0; }
7908     }
7909     /// <summary>Clears the value of the "dummy11" field</summary>
7910     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy11()7911     public void ClearDummy11() {
7912       _hasBits0 &= ~1024;
7913     }
7914 
7915     /// <summary>Field number for the "dummy12" field.</summary>
7916     public const int Dummy12FieldNumber = 12;
7917     private readonly static int Dummy12DefaultValue = 0;
7918 
7919     private int dummy12_;
7920     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7921     public int Dummy12 {
7922       get { if ((_hasBits0 & 2048) != 0) { return dummy12_; } else { return Dummy12DefaultValue; } }
7923       set {
7924         _hasBits0 |= 2048;
7925         dummy12_ = value;
7926       }
7927     }
7928     /// <summary>Gets whether the "dummy12" field is set</summary>
7929     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7930     public bool HasDummy12 {
7931       get { return (_hasBits0 & 2048) != 0; }
7932     }
7933     /// <summary>Clears the value of the "dummy12" field</summary>
7934     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy12()7935     public void ClearDummy12() {
7936       _hasBits0 &= ~2048;
7937     }
7938 
7939     /// <summary>Field number for the "dummy13" field.</summary>
7940     public const int Dummy13FieldNumber = 13;
7941     private readonly static int Dummy13DefaultValue = 0;
7942 
7943     private int dummy13_;
7944     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7945     public int Dummy13 {
7946       get { if ((_hasBits0 & 4096) != 0) { return dummy13_; } else { return Dummy13DefaultValue; } }
7947       set {
7948         _hasBits0 |= 4096;
7949         dummy13_ = value;
7950       }
7951     }
7952     /// <summary>Gets whether the "dummy13" field is set</summary>
7953     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7954     public bool HasDummy13 {
7955       get { return (_hasBits0 & 4096) != 0; }
7956     }
7957     /// <summary>Clears the value of the "dummy13" field</summary>
7958     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy13()7959     public void ClearDummy13() {
7960       _hasBits0 &= ~4096;
7961     }
7962 
7963     /// <summary>Field number for the "dummy14" field.</summary>
7964     public const int Dummy14FieldNumber = 14;
7965     private readonly static int Dummy14DefaultValue = 0;
7966 
7967     private int dummy14_;
7968     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7969     public int Dummy14 {
7970       get { if ((_hasBits0 & 8192) != 0) { return dummy14_; } else { return Dummy14DefaultValue; } }
7971       set {
7972         _hasBits0 |= 8192;
7973         dummy14_ = value;
7974       }
7975     }
7976     /// <summary>Gets whether the "dummy14" field is set</summary>
7977     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7978     public bool HasDummy14 {
7979       get { return (_hasBits0 & 8192) != 0; }
7980     }
7981     /// <summary>Clears the value of the "dummy14" field</summary>
7982     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy14()7983     public void ClearDummy14() {
7984       _hasBits0 &= ~8192;
7985     }
7986 
7987     /// <summary>Field number for the "dummy15" field.</summary>
7988     public const int Dummy15FieldNumber = 15;
7989     private readonly static int Dummy15DefaultValue = 0;
7990 
7991     private int dummy15_;
7992     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7993     public int Dummy15 {
7994       get { if ((_hasBits0 & 16384) != 0) { return dummy15_; } else { return Dummy15DefaultValue; } }
7995       set {
7996         _hasBits0 |= 16384;
7997         dummy15_ = value;
7998       }
7999     }
8000     /// <summary>Gets whether the "dummy15" field is set</summary>
8001     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8002     public bool HasDummy15 {
8003       get { return (_hasBits0 & 16384) != 0; }
8004     }
8005     /// <summary>Clears the value of the "dummy15" field</summary>
8006     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy15()8007     public void ClearDummy15() {
8008       _hasBits0 &= ~16384;
8009     }
8010 
8011     /// <summary>Field number for the "dummy16" field.</summary>
8012     public const int Dummy16FieldNumber = 16;
8013     private readonly static int Dummy16DefaultValue = 0;
8014 
8015     private int dummy16_;
8016     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8017     public int Dummy16 {
8018       get { if ((_hasBits0 & 32768) != 0) { return dummy16_; } else { return Dummy16DefaultValue; } }
8019       set {
8020         _hasBits0 |= 32768;
8021         dummy16_ = value;
8022       }
8023     }
8024     /// <summary>Gets whether the "dummy16" field is set</summary>
8025     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8026     public bool HasDummy16 {
8027       get { return (_hasBits0 & 32768) != 0; }
8028     }
8029     /// <summary>Clears the value of the "dummy16" field</summary>
8030     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy16()8031     public void ClearDummy16() {
8032       _hasBits0 &= ~32768;
8033     }
8034 
8035     /// <summary>Field number for the "dummy17" field.</summary>
8036     public const int Dummy17FieldNumber = 17;
8037     private readonly static int Dummy17DefaultValue = 0;
8038 
8039     private int dummy17_;
8040     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8041     public int Dummy17 {
8042       get { if ((_hasBits0 & 65536) != 0) { return dummy17_; } else { return Dummy17DefaultValue; } }
8043       set {
8044         _hasBits0 |= 65536;
8045         dummy17_ = value;
8046       }
8047     }
8048     /// <summary>Gets whether the "dummy17" field is set</summary>
8049     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8050     public bool HasDummy17 {
8051       get { return (_hasBits0 & 65536) != 0; }
8052     }
8053     /// <summary>Clears the value of the "dummy17" field</summary>
8054     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy17()8055     public void ClearDummy17() {
8056       _hasBits0 &= ~65536;
8057     }
8058 
8059     /// <summary>Field number for the "dummy18" field.</summary>
8060     public const int Dummy18FieldNumber = 18;
8061     private readonly static int Dummy18DefaultValue = 0;
8062 
8063     private int dummy18_;
8064     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8065     public int Dummy18 {
8066       get { if ((_hasBits0 & 131072) != 0) { return dummy18_; } else { return Dummy18DefaultValue; } }
8067       set {
8068         _hasBits0 |= 131072;
8069         dummy18_ = value;
8070       }
8071     }
8072     /// <summary>Gets whether the "dummy18" field is set</summary>
8073     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8074     public bool HasDummy18 {
8075       get { return (_hasBits0 & 131072) != 0; }
8076     }
8077     /// <summary>Clears the value of the "dummy18" field</summary>
8078     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy18()8079     public void ClearDummy18() {
8080       _hasBits0 &= ~131072;
8081     }
8082 
8083     /// <summary>Field number for the "dummy19" field.</summary>
8084     public const int Dummy19FieldNumber = 19;
8085     private readonly static int Dummy19DefaultValue = 0;
8086 
8087     private int dummy19_;
8088     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8089     public int Dummy19 {
8090       get { if ((_hasBits0 & 262144) != 0) { return dummy19_; } else { return Dummy19DefaultValue; } }
8091       set {
8092         _hasBits0 |= 262144;
8093         dummy19_ = value;
8094       }
8095     }
8096     /// <summary>Gets whether the "dummy19" field is set</summary>
8097     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8098     public bool HasDummy19 {
8099       get { return (_hasBits0 & 262144) != 0; }
8100     }
8101     /// <summary>Clears the value of the "dummy19" field</summary>
8102     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy19()8103     public void ClearDummy19() {
8104       _hasBits0 &= ~262144;
8105     }
8106 
8107     /// <summary>Field number for the "dummy20" field.</summary>
8108     public const int Dummy20FieldNumber = 20;
8109     private readonly static int Dummy20DefaultValue = 0;
8110 
8111     private int dummy20_;
8112     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8113     public int Dummy20 {
8114       get { if ((_hasBits0 & 524288) != 0) { return dummy20_; } else { return Dummy20DefaultValue; } }
8115       set {
8116         _hasBits0 |= 524288;
8117         dummy20_ = value;
8118       }
8119     }
8120     /// <summary>Gets whether the "dummy20" field is set</summary>
8121     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8122     public bool HasDummy20 {
8123       get { return (_hasBits0 & 524288) != 0; }
8124     }
8125     /// <summary>Clears the value of the "dummy20" field</summary>
8126     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy20()8127     public void ClearDummy20() {
8128       _hasBits0 &= ~524288;
8129     }
8130 
8131     /// <summary>Field number for the "dummy21" field.</summary>
8132     public const int Dummy21FieldNumber = 21;
8133     private readonly static int Dummy21DefaultValue = 0;
8134 
8135     private int dummy21_;
8136     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8137     public int Dummy21 {
8138       get { if ((_hasBits0 & 1048576) != 0) { return dummy21_; } else { return Dummy21DefaultValue; } }
8139       set {
8140         _hasBits0 |= 1048576;
8141         dummy21_ = value;
8142       }
8143     }
8144     /// <summary>Gets whether the "dummy21" field is set</summary>
8145     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8146     public bool HasDummy21 {
8147       get { return (_hasBits0 & 1048576) != 0; }
8148     }
8149     /// <summary>Clears the value of the "dummy21" field</summary>
8150     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy21()8151     public void ClearDummy21() {
8152       _hasBits0 &= ~1048576;
8153     }
8154 
8155     /// <summary>Field number for the "dummy22" field.</summary>
8156     public const int Dummy22FieldNumber = 22;
8157     private readonly static int Dummy22DefaultValue = 0;
8158 
8159     private int dummy22_;
8160     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8161     public int Dummy22 {
8162       get { if ((_hasBits0 & 2097152) != 0) { return dummy22_; } else { return Dummy22DefaultValue; } }
8163       set {
8164         _hasBits0 |= 2097152;
8165         dummy22_ = value;
8166       }
8167     }
8168     /// <summary>Gets whether the "dummy22" field is set</summary>
8169     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8170     public bool HasDummy22 {
8171       get { return (_hasBits0 & 2097152) != 0; }
8172     }
8173     /// <summary>Clears the value of the "dummy22" field</summary>
8174     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy22()8175     public void ClearDummy22() {
8176       _hasBits0 &= ~2097152;
8177     }
8178 
8179     /// <summary>Field number for the "dummy23" field.</summary>
8180     public const int Dummy23FieldNumber = 23;
8181     private readonly static int Dummy23DefaultValue = 0;
8182 
8183     private int dummy23_;
8184     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8185     public int Dummy23 {
8186       get { if ((_hasBits0 & 4194304) != 0) { return dummy23_; } else { return Dummy23DefaultValue; } }
8187       set {
8188         _hasBits0 |= 4194304;
8189         dummy23_ = value;
8190       }
8191     }
8192     /// <summary>Gets whether the "dummy23" field is set</summary>
8193     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8194     public bool HasDummy23 {
8195       get { return (_hasBits0 & 4194304) != 0; }
8196     }
8197     /// <summary>Clears the value of the "dummy23" field</summary>
8198     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy23()8199     public void ClearDummy23() {
8200       _hasBits0 &= ~4194304;
8201     }
8202 
8203     /// <summary>Field number for the "dummy24" field.</summary>
8204     public const int Dummy24FieldNumber = 24;
8205     private readonly static int Dummy24DefaultValue = 0;
8206 
8207     private int dummy24_;
8208     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8209     public int Dummy24 {
8210       get { if ((_hasBits0 & 8388608) != 0) { return dummy24_; } else { return Dummy24DefaultValue; } }
8211       set {
8212         _hasBits0 |= 8388608;
8213         dummy24_ = value;
8214       }
8215     }
8216     /// <summary>Gets whether the "dummy24" field is set</summary>
8217     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8218     public bool HasDummy24 {
8219       get { return (_hasBits0 & 8388608) != 0; }
8220     }
8221     /// <summary>Clears the value of the "dummy24" field</summary>
8222     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy24()8223     public void ClearDummy24() {
8224       _hasBits0 &= ~8388608;
8225     }
8226 
8227     /// <summary>Field number for the "dummy25" field.</summary>
8228     public const int Dummy25FieldNumber = 25;
8229     private readonly static int Dummy25DefaultValue = 0;
8230 
8231     private int dummy25_;
8232     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8233     public int Dummy25 {
8234       get { if ((_hasBits0 & 16777216) != 0) { return dummy25_; } else { return Dummy25DefaultValue; } }
8235       set {
8236         _hasBits0 |= 16777216;
8237         dummy25_ = value;
8238       }
8239     }
8240     /// <summary>Gets whether the "dummy25" field is set</summary>
8241     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8242     public bool HasDummy25 {
8243       get { return (_hasBits0 & 16777216) != 0; }
8244     }
8245     /// <summary>Clears the value of the "dummy25" field</summary>
8246     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy25()8247     public void ClearDummy25() {
8248       _hasBits0 &= ~16777216;
8249     }
8250 
8251     /// <summary>Field number for the "dummy26" field.</summary>
8252     public const int Dummy26FieldNumber = 26;
8253     private readonly static int Dummy26DefaultValue = 0;
8254 
8255     private int dummy26_;
8256     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8257     public int Dummy26 {
8258       get { if ((_hasBits0 & 33554432) != 0) { return dummy26_; } else { return Dummy26DefaultValue; } }
8259       set {
8260         _hasBits0 |= 33554432;
8261         dummy26_ = value;
8262       }
8263     }
8264     /// <summary>Gets whether the "dummy26" field is set</summary>
8265     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8266     public bool HasDummy26 {
8267       get { return (_hasBits0 & 33554432) != 0; }
8268     }
8269     /// <summary>Clears the value of the "dummy26" field</summary>
8270     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy26()8271     public void ClearDummy26() {
8272       _hasBits0 &= ~33554432;
8273     }
8274 
8275     /// <summary>Field number for the "dummy27" field.</summary>
8276     public const int Dummy27FieldNumber = 27;
8277     private readonly static int Dummy27DefaultValue = 0;
8278 
8279     private int dummy27_;
8280     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8281     public int Dummy27 {
8282       get { if ((_hasBits0 & 67108864) != 0) { return dummy27_; } else { return Dummy27DefaultValue; } }
8283       set {
8284         _hasBits0 |= 67108864;
8285         dummy27_ = value;
8286       }
8287     }
8288     /// <summary>Gets whether the "dummy27" field is set</summary>
8289     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8290     public bool HasDummy27 {
8291       get { return (_hasBits0 & 67108864) != 0; }
8292     }
8293     /// <summary>Clears the value of the "dummy27" field</summary>
8294     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy27()8295     public void ClearDummy27() {
8296       _hasBits0 &= ~67108864;
8297     }
8298 
8299     /// <summary>Field number for the "dummy28" field.</summary>
8300     public const int Dummy28FieldNumber = 28;
8301     private readonly static int Dummy28DefaultValue = 0;
8302 
8303     private int dummy28_;
8304     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8305     public int Dummy28 {
8306       get { if ((_hasBits0 & 134217728) != 0) { return dummy28_; } else { return Dummy28DefaultValue; } }
8307       set {
8308         _hasBits0 |= 134217728;
8309         dummy28_ = value;
8310       }
8311     }
8312     /// <summary>Gets whether the "dummy28" field is set</summary>
8313     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8314     public bool HasDummy28 {
8315       get { return (_hasBits0 & 134217728) != 0; }
8316     }
8317     /// <summary>Clears the value of the "dummy28" field</summary>
8318     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy28()8319     public void ClearDummy28() {
8320       _hasBits0 &= ~134217728;
8321     }
8322 
8323     /// <summary>Field number for the "dummy29" field.</summary>
8324     public const int Dummy29FieldNumber = 29;
8325     private readonly static int Dummy29DefaultValue = 0;
8326 
8327     private int dummy29_;
8328     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8329     public int Dummy29 {
8330       get { if ((_hasBits0 & 268435456) != 0) { return dummy29_; } else { return Dummy29DefaultValue; } }
8331       set {
8332         _hasBits0 |= 268435456;
8333         dummy29_ = value;
8334       }
8335     }
8336     /// <summary>Gets whether the "dummy29" field is set</summary>
8337     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8338     public bool HasDummy29 {
8339       get { return (_hasBits0 & 268435456) != 0; }
8340     }
8341     /// <summary>Clears the value of the "dummy29" field</summary>
8342     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy29()8343     public void ClearDummy29() {
8344       _hasBits0 &= ~268435456;
8345     }
8346 
8347     /// <summary>Field number for the "dummy30" field.</summary>
8348     public const int Dummy30FieldNumber = 30;
8349     private readonly static int Dummy30DefaultValue = 0;
8350 
8351     private int dummy30_;
8352     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8353     public int Dummy30 {
8354       get { if ((_hasBits0 & 536870912) != 0) { return dummy30_; } else { return Dummy30DefaultValue; } }
8355       set {
8356         _hasBits0 |= 536870912;
8357         dummy30_ = value;
8358       }
8359     }
8360     /// <summary>Gets whether the "dummy30" field is set</summary>
8361     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8362     public bool HasDummy30 {
8363       get { return (_hasBits0 & 536870912) != 0; }
8364     }
8365     /// <summary>Clears the value of the "dummy30" field</summary>
8366     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy30()8367     public void ClearDummy30() {
8368       _hasBits0 &= ~536870912;
8369     }
8370 
8371     /// <summary>Field number for the "dummy31" field.</summary>
8372     public const int Dummy31FieldNumber = 31;
8373     private readonly static int Dummy31DefaultValue = 0;
8374 
8375     private int dummy31_;
8376     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8377     public int Dummy31 {
8378       get { if ((_hasBits0 & 1073741824) != 0) { return dummy31_; } else { return Dummy31DefaultValue; } }
8379       set {
8380         _hasBits0 |= 1073741824;
8381         dummy31_ = value;
8382       }
8383     }
8384     /// <summary>Gets whether the "dummy31" field is set</summary>
8385     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8386     public bool HasDummy31 {
8387       get { return (_hasBits0 & 1073741824) != 0; }
8388     }
8389     /// <summary>Clears the value of the "dummy31" field</summary>
8390     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy31()8391     public void ClearDummy31() {
8392       _hasBits0 &= ~1073741824;
8393     }
8394 
8395     /// <summary>Field number for the "dummy32" field.</summary>
8396     public const int Dummy32FieldNumber = 32;
8397     private readonly static int Dummy32DefaultValue = 0;
8398 
8399     private int dummy32_;
8400     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8401     public int Dummy32 {
8402       get { if ((_hasBits0 & -2147483648) != 0) { return dummy32_; } else { return Dummy32DefaultValue; } }
8403       set {
8404         _hasBits0 |= -2147483648;
8405         dummy32_ = value;
8406       }
8407     }
8408     /// <summary>Gets whether the "dummy32" field is set</summary>
8409     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8410     public bool HasDummy32 {
8411       get { return (_hasBits0 & -2147483648) != 0; }
8412     }
8413     /// <summary>Clears the value of the "dummy32" field</summary>
8414     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy32()8415     public void ClearDummy32() {
8416       _hasBits0 &= ~-2147483648;
8417     }
8418 
8419     /// <summary>Field number for the "c" field.</summary>
8420     public const int CFieldNumber = 33;
8421     private readonly static int CDefaultValue = 0;
8422 
8423     private int c_;
8424     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8425     public int C {
8426       get { if ((_hasBits1 & 1) != 0) { return c_; } else { return CDefaultValue; } }
8427       set {
8428         _hasBits1 |= 1;
8429         c_ = value;
8430       }
8431     }
8432     /// <summary>Gets whether the "c" field is set</summary>
8433     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8434     public bool HasC {
8435       get { return (_hasBits1 & 1) != 0; }
8436     }
8437     /// <summary>Clears the value of the "c" field</summary>
8438     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearC()8439     public void ClearC() {
8440       _hasBits1 &= ~1;
8441     }
8442 
8443     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)8444     public override bool Equals(object other) {
8445       return Equals(other as TestRequired);
8446     }
8447 
8448     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRequired other)8449     public bool Equals(TestRequired other) {
8450       if (ReferenceEquals(other, null)) {
8451         return false;
8452       }
8453       if (ReferenceEquals(other, this)) {
8454         return true;
8455       }
8456       if (A != other.A) return false;
8457       if (Dummy2 != other.Dummy2) return false;
8458       if (B != other.B) return false;
8459       if (Dummy4 != other.Dummy4) return false;
8460       if (Dummy5 != other.Dummy5) return false;
8461       if (Dummy6 != other.Dummy6) return false;
8462       if (Dummy7 != other.Dummy7) return false;
8463       if (Dummy8 != other.Dummy8) return false;
8464       if (Dummy9 != other.Dummy9) return false;
8465       if (Dummy10 != other.Dummy10) return false;
8466       if (Dummy11 != other.Dummy11) return false;
8467       if (Dummy12 != other.Dummy12) return false;
8468       if (Dummy13 != other.Dummy13) return false;
8469       if (Dummy14 != other.Dummy14) return false;
8470       if (Dummy15 != other.Dummy15) return false;
8471       if (Dummy16 != other.Dummy16) return false;
8472       if (Dummy17 != other.Dummy17) return false;
8473       if (Dummy18 != other.Dummy18) return false;
8474       if (Dummy19 != other.Dummy19) return false;
8475       if (Dummy20 != other.Dummy20) return false;
8476       if (Dummy21 != other.Dummy21) return false;
8477       if (Dummy22 != other.Dummy22) return false;
8478       if (Dummy23 != other.Dummy23) return false;
8479       if (Dummy24 != other.Dummy24) return false;
8480       if (Dummy25 != other.Dummy25) return false;
8481       if (Dummy26 != other.Dummy26) return false;
8482       if (Dummy27 != other.Dummy27) return false;
8483       if (Dummy28 != other.Dummy28) return false;
8484       if (Dummy29 != other.Dummy29) return false;
8485       if (Dummy30 != other.Dummy30) return false;
8486       if (Dummy31 != other.Dummy31) return false;
8487       if (Dummy32 != other.Dummy32) return false;
8488       if (C != other.C) return false;
8489       return Equals(_unknownFields, other._unknownFields);
8490     }
8491 
8492     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()8493     public override int GetHashCode() {
8494       int hash = 1;
8495       if (HasA) hash ^= A.GetHashCode();
8496       if (HasDummy2) hash ^= Dummy2.GetHashCode();
8497       if (HasB) hash ^= B.GetHashCode();
8498       if (HasDummy4) hash ^= Dummy4.GetHashCode();
8499       if (HasDummy5) hash ^= Dummy5.GetHashCode();
8500       if (HasDummy6) hash ^= Dummy6.GetHashCode();
8501       if (HasDummy7) hash ^= Dummy7.GetHashCode();
8502       if (HasDummy8) hash ^= Dummy8.GetHashCode();
8503       if (HasDummy9) hash ^= Dummy9.GetHashCode();
8504       if (HasDummy10) hash ^= Dummy10.GetHashCode();
8505       if (HasDummy11) hash ^= Dummy11.GetHashCode();
8506       if (HasDummy12) hash ^= Dummy12.GetHashCode();
8507       if (HasDummy13) hash ^= Dummy13.GetHashCode();
8508       if (HasDummy14) hash ^= Dummy14.GetHashCode();
8509       if (HasDummy15) hash ^= Dummy15.GetHashCode();
8510       if (HasDummy16) hash ^= Dummy16.GetHashCode();
8511       if (HasDummy17) hash ^= Dummy17.GetHashCode();
8512       if (HasDummy18) hash ^= Dummy18.GetHashCode();
8513       if (HasDummy19) hash ^= Dummy19.GetHashCode();
8514       if (HasDummy20) hash ^= Dummy20.GetHashCode();
8515       if (HasDummy21) hash ^= Dummy21.GetHashCode();
8516       if (HasDummy22) hash ^= Dummy22.GetHashCode();
8517       if (HasDummy23) hash ^= Dummy23.GetHashCode();
8518       if (HasDummy24) hash ^= Dummy24.GetHashCode();
8519       if (HasDummy25) hash ^= Dummy25.GetHashCode();
8520       if (HasDummy26) hash ^= Dummy26.GetHashCode();
8521       if (HasDummy27) hash ^= Dummy27.GetHashCode();
8522       if (HasDummy28) hash ^= Dummy28.GetHashCode();
8523       if (HasDummy29) hash ^= Dummy29.GetHashCode();
8524       if (HasDummy30) hash ^= Dummy30.GetHashCode();
8525       if (HasDummy31) hash ^= Dummy31.GetHashCode();
8526       if (HasDummy32) hash ^= Dummy32.GetHashCode();
8527       if (HasC) hash ^= C.GetHashCode();
8528       if (_unknownFields != null) {
8529         hash ^= _unknownFields.GetHashCode();
8530       }
8531       return hash;
8532     }
8533 
8534     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()8535     public override string ToString() {
8536       return pb::JsonFormatter.ToDiagnosticString(this);
8537     }
8538 
8539     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)8540     public void WriteTo(pb::CodedOutputStream output) {
8541     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8542       output.WriteRawMessage(this);
8543     #else
8544       if (HasA) {
8545         output.WriteRawTag(8);
8546         output.WriteInt32(A);
8547       }
8548       if (HasDummy2) {
8549         output.WriteRawTag(16);
8550         output.WriteInt32(Dummy2);
8551       }
8552       if (HasB) {
8553         output.WriteRawTag(24);
8554         output.WriteInt32(B);
8555       }
8556       if (HasDummy4) {
8557         output.WriteRawTag(32);
8558         output.WriteInt32(Dummy4);
8559       }
8560       if (HasDummy5) {
8561         output.WriteRawTag(40);
8562         output.WriteInt32(Dummy5);
8563       }
8564       if (HasDummy6) {
8565         output.WriteRawTag(48);
8566         output.WriteInt32(Dummy6);
8567       }
8568       if (HasDummy7) {
8569         output.WriteRawTag(56);
8570         output.WriteInt32(Dummy7);
8571       }
8572       if (HasDummy8) {
8573         output.WriteRawTag(64);
8574         output.WriteInt32(Dummy8);
8575       }
8576       if (HasDummy9) {
8577         output.WriteRawTag(72);
8578         output.WriteInt32(Dummy9);
8579       }
8580       if (HasDummy10) {
8581         output.WriteRawTag(80);
8582         output.WriteInt32(Dummy10);
8583       }
8584       if (HasDummy11) {
8585         output.WriteRawTag(88);
8586         output.WriteInt32(Dummy11);
8587       }
8588       if (HasDummy12) {
8589         output.WriteRawTag(96);
8590         output.WriteInt32(Dummy12);
8591       }
8592       if (HasDummy13) {
8593         output.WriteRawTag(104);
8594         output.WriteInt32(Dummy13);
8595       }
8596       if (HasDummy14) {
8597         output.WriteRawTag(112);
8598         output.WriteInt32(Dummy14);
8599       }
8600       if (HasDummy15) {
8601         output.WriteRawTag(120);
8602         output.WriteInt32(Dummy15);
8603       }
8604       if (HasDummy16) {
8605         output.WriteRawTag(128, 1);
8606         output.WriteInt32(Dummy16);
8607       }
8608       if (HasDummy17) {
8609         output.WriteRawTag(136, 1);
8610         output.WriteInt32(Dummy17);
8611       }
8612       if (HasDummy18) {
8613         output.WriteRawTag(144, 1);
8614         output.WriteInt32(Dummy18);
8615       }
8616       if (HasDummy19) {
8617         output.WriteRawTag(152, 1);
8618         output.WriteInt32(Dummy19);
8619       }
8620       if (HasDummy20) {
8621         output.WriteRawTag(160, 1);
8622         output.WriteInt32(Dummy20);
8623       }
8624       if (HasDummy21) {
8625         output.WriteRawTag(168, 1);
8626         output.WriteInt32(Dummy21);
8627       }
8628       if (HasDummy22) {
8629         output.WriteRawTag(176, 1);
8630         output.WriteInt32(Dummy22);
8631       }
8632       if (HasDummy23) {
8633         output.WriteRawTag(184, 1);
8634         output.WriteInt32(Dummy23);
8635       }
8636       if (HasDummy24) {
8637         output.WriteRawTag(192, 1);
8638         output.WriteInt32(Dummy24);
8639       }
8640       if (HasDummy25) {
8641         output.WriteRawTag(200, 1);
8642         output.WriteInt32(Dummy25);
8643       }
8644       if (HasDummy26) {
8645         output.WriteRawTag(208, 1);
8646         output.WriteInt32(Dummy26);
8647       }
8648       if (HasDummy27) {
8649         output.WriteRawTag(216, 1);
8650         output.WriteInt32(Dummy27);
8651       }
8652       if (HasDummy28) {
8653         output.WriteRawTag(224, 1);
8654         output.WriteInt32(Dummy28);
8655       }
8656       if (HasDummy29) {
8657         output.WriteRawTag(232, 1);
8658         output.WriteInt32(Dummy29);
8659       }
8660       if (HasDummy30) {
8661         output.WriteRawTag(240, 1);
8662         output.WriteInt32(Dummy30);
8663       }
8664       if (HasDummy31) {
8665         output.WriteRawTag(248, 1);
8666         output.WriteInt32(Dummy31);
8667       }
8668       if (HasDummy32) {
8669         output.WriteRawTag(128, 2);
8670         output.WriteInt32(Dummy32);
8671       }
8672       if (HasC) {
8673         output.WriteRawTag(136, 2);
8674         output.WriteInt32(C);
8675       }
8676       if (_unknownFields != null) {
8677         _unknownFields.WriteTo(output);
8678       }
8679     #endif
8680     }
8681 
8682     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
8683     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)8684     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
8685       if (HasA) {
8686         output.WriteRawTag(8);
8687         output.WriteInt32(A);
8688       }
8689       if (HasDummy2) {
8690         output.WriteRawTag(16);
8691         output.WriteInt32(Dummy2);
8692       }
8693       if (HasB) {
8694         output.WriteRawTag(24);
8695         output.WriteInt32(B);
8696       }
8697       if (HasDummy4) {
8698         output.WriteRawTag(32);
8699         output.WriteInt32(Dummy4);
8700       }
8701       if (HasDummy5) {
8702         output.WriteRawTag(40);
8703         output.WriteInt32(Dummy5);
8704       }
8705       if (HasDummy6) {
8706         output.WriteRawTag(48);
8707         output.WriteInt32(Dummy6);
8708       }
8709       if (HasDummy7) {
8710         output.WriteRawTag(56);
8711         output.WriteInt32(Dummy7);
8712       }
8713       if (HasDummy8) {
8714         output.WriteRawTag(64);
8715         output.WriteInt32(Dummy8);
8716       }
8717       if (HasDummy9) {
8718         output.WriteRawTag(72);
8719         output.WriteInt32(Dummy9);
8720       }
8721       if (HasDummy10) {
8722         output.WriteRawTag(80);
8723         output.WriteInt32(Dummy10);
8724       }
8725       if (HasDummy11) {
8726         output.WriteRawTag(88);
8727         output.WriteInt32(Dummy11);
8728       }
8729       if (HasDummy12) {
8730         output.WriteRawTag(96);
8731         output.WriteInt32(Dummy12);
8732       }
8733       if (HasDummy13) {
8734         output.WriteRawTag(104);
8735         output.WriteInt32(Dummy13);
8736       }
8737       if (HasDummy14) {
8738         output.WriteRawTag(112);
8739         output.WriteInt32(Dummy14);
8740       }
8741       if (HasDummy15) {
8742         output.WriteRawTag(120);
8743         output.WriteInt32(Dummy15);
8744       }
8745       if (HasDummy16) {
8746         output.WriteRawTag(128, 1);
8747         output.WriteInt32(Dummy16);
8748       }
8749       if (HasDummy17) {
8750         output.WriteRawTag(136, 1);
8751         output.WriteInt32(Dummy17);
8752       }
8753       if (HasDummy18) {
8754         output.WriteRawTag(144, 1);
8755         output.WriteInt32(Dummy18);
8756       }
8757       if (HasDummy19) {
8758         output.WriteRawTag(152, 1);
8759         output.WriteInt32(Dummy19);
8760       }
8761       if (HasDummy20) {
8762         output.WriteRawTag(160, 1);
8763         output.WriteInt32(Dummy20);
8764       }
8765       if (HasDummy21) {
8766         output.WriteRawTag(168, 1);
8767         output.WriteInt32(Dummy21);
8768       }
8769       if (HasDummy22) {
8770         output.WriteRawTag(176, 1);
8771         output.WriteInt32(Dummy22);
8772       }
8773       if (HasDummy23) {
8774         output.WriteRawTag(184, 1);
8775         output.WriteInt32(Dummy23);
8776       }
8777       if (HasDummy24) {
8778         output.WriteRawTag(192, 1);
8779         output.WriteInt32(Dummy24);
8780       }
8781       if (HasDummy25) {
8782         output.WriteRawTag(200, 1);
8783         output.WriteInt32(Dummy25);
8784       }
8785       if (HasDummy26) {
8786         output.WriteRawTag(208, 1);
8787         output.WriteInt32(Dummy26);
8788       }
8789       if (HasDummy27) {
8790         output.WriteRawTag(216, 1);
8791         output.WriteInt32(Dummy27);
8792       }
8793       if (HasDummy28) {
8794         output.WriteRawTag(224, 1);
8795         output.WriteInt32(Dummy28);
8796       }
8797       if (HasDummy29) {
8798         output.WriteRawTag(232, 1);
8799         output.WriteInt32(Dummy29);
8800       }
8801       if (HasDummy30) {
8802         output.WriteRawTag(240, 1);
8803         output.WriteInt32(Dummy30);
8804       }
8805       if (HasDummy31) {
8806         output.WriteRawTag(248, 1);
8807         output.WriteInt32(Dummy31);
8808       }
8809       if (HasDummy32) {
8810         output.WriteRawTag(128, 2);
8811         output.WriteInt32(Dummy32);
8812       }
8813       if (HasC) {
8814         output.WriteRawTag(136, 2);
8815         output.WriteInt32(C);
8816       }
8817       if (_unknownFields != null) {
8818         _unknownFields.WriteTo(ref output);
8819       }
8820     }
8821     #endif
8822 
8823     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()8824     public int CalculateSize() {
8825       int size = 0;
8826       if (HasA) {
8827         size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
8828       }
8829       if (HasDummy2) {
8830         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy2);
8831       }
8832       if (HasB) {
8833         size += 1 + pb::CodedOutputStream.ComputeInt32Size(B);
8834       }
8835       if (HasDummy4) {
8836         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy4);
8837       }
8838       if (HasDummy5) {
8839         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy5);
8840       }
8841       if (HasDummy6) {
8842         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy6);
8843       }
8844       if (HasDummy7) {
8845         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy7);
8846       }
8847       if (HasDummy8) {
8848         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy8);
8849       }
8850       if (HasDummy9) {
8851         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy9);
8852       }
8853       if (HasDummy10) {
8854         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy10);
8855       }
8856       if (HasDummy11) {
8857         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy11);
8858       }
8859       if (HasDummy12) {
8860         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy12);
8861       }
8862       if (HasDummy13) {
8863         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy13);
8864       }
8865       if (HasDummy14) {
8866         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy14);
8867       }
8868       if (HasDummy15) {
8869         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy15);
8870       }
8871       if (HasDummy16) {
8872         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy16);
8873       }
8874       if (HasDummy17) {
8875         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy17);
8876       }
8877       if (HasDummy18) {
8878         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy18);
8879       }
8880       if (HasDummy19) {
8881         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy19);
8882       }
8883       if (HasDummy20) {
8884         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy20);
8885       }
8886       if (HasDummy21) {
8887         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy21);
8888       }
8889       if (HasDummy22) {
8890         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy22);
8891       }
8892       if (HasDummy23) {
8893         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy23);
8894       }
8895       if (HasDummy24) {
8896         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy24);
8897       }
8898       if (HasDummy25) {
8899         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy25);
8900       }
8901       if (HasDummy26) {
8902         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy26);
8903       }
8904       if (HasDummy27) {
8905         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy27);
8906       }
8907       if (HasDummy28) {
8908         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy28);
8909       }
8910       if (HasDummy29) {
8911         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy29);
8912       }
8913       if (HasDummy30) {
8914         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy30);
8915       }
8916       if (HasDummy31) {
8917         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy31);
8918       }
8919       if (HasDummy32) {
8920         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Dummy32);
8921       }
8922       if (HasC) {
8923         size += 2 + pb::CodedOutputStream.ComputeInt32Size(C);
8924       }
8925       if (_unknownFields != null) {
8926         size += _unknownFields.CalculateSize();
8927       }
8928       return size;
8929     }
8930 
8931     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRequired other)8932     public void MergeFrom(TestRequired other) {
8933       if (other == null) {
8934         return;
8935       }
8936       if (other.HasA) {
8937         A = other.A;
8938       }
8939       if (other.HasDummy2) {
8940         Dummy2 = other.Dummy2;
8941       }
8942       if (other.HasB) {
8943         B = other.B;
8944       }
8945       if (other.HasDummy4) {
8946         Dummy4 = other.Dummy4;
8947       }
8948       if (other.HasDummy5) {
8949         Dummy5 = other.Dummy5;
8950       }
8951       if (other.HasDummy6) {
8952         Dummy6 = other.Dummy6;
8953       }
8954       if (other.HasDummy7) {
8955         Dummy7 = other.Dummy7;
8956       }
8957       if (other.HasDummy8) {
8958         Dummy8 = other.Dummy8;
8959       }
8960       if (other.HasDummy9) {
8961         Dummy9 = other.Dummy9;
8962       }
8963       if (other.HasDummy10) {
8964         Dummy10 = other.Dummy10;
8965       }
8966       if (other.HasDummy11) {
8967         Dummy11 = other.Dummy11;
8968       }
8969       if (other.HasDummy12) {
8970         Dummy12 = other.Dummy12;
8971       }
8972       if (other.HasDummy13) {
8973         Dummy13 = other.Dummy13;
8974       }
8975       if (other.HasDummy14) {
8976         Dummy14 = other.Dummy14;
8977       }
8978       if (other.HasDummy15) {
8979         Dummy15 = other.Dummy15;
8980       }
8981       if (other.HasDummy16) {
8982         Dummy16 = other.Dummy16;
8983       }
8984       if (other.HasDummy17) {
8985         Dummy17 = other.Dummy17;
8986       }
8987       if (other.HasDummy18) {
8988         Dummy18 = other.Dummy18;
8989       }
8990       if (other.HasDummy19) {
8991         Dummy19 = other.Dummy19;
8992       }
8993       if (other.HasDummy20) {
8994         Dummy20 = other.Dummy20;
8995       }
8996       if (other.HasDummy21) {
8997         Dummy21 = other.Dummy21;
8998       }
8999       if (other.HasDummy22) {
9000         Dummy22 = other.Dummy22;
9001       }
9002       if (other.HasDummy23) {
9003         Dummy23 = other.Dummy23;
9004       }
9005       if (other.HasDummy24) {
9006         Dummy24 = other.Dummy24;
9007       }
9008       if (other.HasDummy25) {
9009         Dummy25 = other.Dummy25;
9010       }
9011       if (other.HasDummy26) {
9012         Dummy26 = other.Dummy26;
9013       }
9014       if (other.HasDummy27) {
9015         Dummy27 = other.Dummy27;
9016       }
9017       if (other.HasDummy28) {
9018         Dummy28 = other.Dummy28;
9019       }
9020       if (other.HasDummy29) {
9021         Dummy29 = other.Dummy29;
9022       }
9023       if (other.HasDummy30) {
9024         Dummy30 = other.Dummy30;
9025       }
9026       if (other.HasDummy31) {
9027         Dummy31 = other.Dummy31;
9028       }
9029       if (other.HasDummy32) {
9030         Dummy32 = other.Dummy32;
9031       }
9032       if (other.HasC) {
9033         C = other.C;
9034       }
9035       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9036     }
9037 
9038     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)9039     public void MergeFrom(pb::CodedInputStream input) {
9040     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9041       input.ReadRawMessage(this);
9042     #else
9043       uint tag;
9044       while ((tag = input.ReadTag()) != 0) {
9045         switch(tag) {
9046           default:
9047             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9048             break;
9049           case 8: {
9050             A = input.ReadInt32();
9051             break;
9052           }
9053           case 16: {
9054             Dummy2 = input.ReadInt32();
9055             break;
9056           }
9057           case 24: {
9058             B = input.ReadInt32();
9059             break;
9060           }
9061           case 32: {
9062             Dummy4 = input.ReadInt32();
9063             break;
9064           }
9065           case 40: {
9066             Dummy5 = input.ReadInt32();
9067             break;
9068           }
9069           case 48: {
9070             Dummy6 = input.ReadInt32();
9071             break;
9072           }
9073           case 56: {
9074             Dummy7 = input.ReadInt32();
9075             break;
9076           }
9077           case 64: {
9078             Dummy8 = input.ReadInt32();
9079             break;
9080           }
9081           case 72: {
9082             Dummy9 = input.ReadInt32();
9083             break;
9084           }
9085           case 80: {
9086             Dummy10 = input.ReadInt32();
9087             break;
9088           }
9089           case 88: {
9090             Dummy11 = input.ReadInt32();
9091             break;
9092           }
9093           case 96: {
9094             Dummy12 = input.ReadInt32();
9095             break;
9096           }
9097           case 104: {
9098             Dummy13 = input.ReadInt32();
9099             break;
9100           }
9101           case 112: {
9102             Dummy14 = input.ReadInt32();
9103             break;
9104           }
9105           case 120: {
9106             Dummy15 = input.ReadInt32();
9107             break;
9108           }
9109           case 128: {
9110             Dummy16 = input.ReadInt32();
9111             break;
9112           }
9113           case 136: {
9114             Dummy17 = input.ReadInt32();
9115             break;
9116           }
9117           case 144: {
9118             Dummy18 = input.ReadInt32();
9119             break;
9120           }
9121           case 152: {
9122             Dummy19 = input.ReadInt32();
9123             break;
9124           }
9125           case 160: {
9126             Dummy20 = input.ReadInt32();
9127             break;
9128           }
9129           case 168: {
9130             Dummy21 = input.ReadInt32();
9131             break;
9132           }
9133           case 176: {
9134             Dummy22 = input.ReadInt32();
9135             break;
9136           }
9137           case 184: {
9138             Dummy23 = input.ReadInt32();
9139             break;
9140           }
9141           case 192: {
9142             Dummy24 = input.ReadInt32();
9143             break;
9144           }
9145           case 200: {
9146             Dummy25 = input.ReadInt32();
9147             break;
9148           }
9149           case 208: {
9150             Dummy26 = input.ReadInt32();
9151             break;
9152           }
9153           case 216: {
9154             Dummy27 = input.ReadInt32();
9155             break;
9156           }
9157           case 224: {
9158             Dummy28 = input.ReadInt32();
9159             break;
9160           }
9161           case 232: {
9162             Dummy29 = input.ReadInt32();
9163             break;
9164           }
9165           case 240: {
9166             Dummy30 = input.ReadInt32();
9167             break;
9168           }
9169           case 248: {
9170             Dummy31 = input.ReadInt32();
9171             break;
9172           }
9173           case 256: {
9174             Dummy32 = input.ReadInt32();
9175             break;
9176           }
9177           case 264: {
9178             C = input.ReadInt32();
9179             break;
9180           }
9181         }
9182       }
9183     #endif
9184     }
9185 
9186     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9187     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)9188     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9189       uint tag;
9190       while ((tag = input.ReadTag()) != 0) {
9191         switch(tag) {
9192           default:
9193             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9194             break;
9195           case 8: {
9196             A = input.ReadInt32();
9197             break;
9198           }
9199           case 16: {
9200             Dummy2 = input.ReadInt32();
9201             break;
9202           }
9203           case 24: {
9204             B = input.ReadInt32();
9205             break;
9206           }
9207           case 32: {
9208             Dummy4 = input.ReadInt32();
9209             break;
9210           }
9211           case 40: {
9212             Dummy5 = input.ReadInt32();
9213             break;
9214           }
9215           case 48: {
9216             Dummy6 = input.ReadInt32();
9217             break;
9218           }
9219           case 56: {
9220             Dummy7 = input.ReadInt32();
9221             break;
9222           }
9223           case 64: {
9224             Dummy8 = input.ReadInt32();
9225             break;
9226           }
9227           case 72: {
9228             Dummy9 = input.ReadInt32();
9229             break;
9230           }
9231           case 80: {
9232             Dummy10 = input.ReadInt32();
9233             break;
9234           }
9235           case 88: {
9236             Dummy11 = input.ReadInt32();
9237             break;
9238           }
9239           case 96: {
9240             Dummy12 = input.ReadInt32();
9241             break;
9242           }
9243           case 104: {
9244             Dummy13 = input.ReadInt32();
9245             break;
9246           }
9247           case 112: {
9248             Dummy14 = input.ReadInt32();
9249             break;
9250           }
9251           case 120: {
9252             Dummy15 = input.ReadInt32();
9253             break;
9254           }
9255           case 128: {
9256             Dummy16 = input.ReadInt32();
9257             break;
9258           }
9259           case 136: {
9260             Dummy17 = input.ReadInt32();
9261             break;
9262           }
9263           case 144: {
9264             Dummy18 = input.ReadInt32();
9265             break;
9266           }
9267           case 152: {
9268             Dummy19 = input.ReadInt32();
9269             break;
9270           }
9271           case 160: {
9272             Dummy20 = input.ReadInt32();
9273             break;
9274           }
9275           case 168: {
9276             Dummy21 = input.ReadInt32();
9277             break;
9278           }
9279           case 176: {
9280             Dummy22 = input.ReadInt32();
9281             break;
9282           }
9283           case 184: {
9284             Dummy23 = input.ReadInt32();
9285             break;
9286           }
9287           case 192: {
9288             Dummy24 = input.ReadInt32();
9289             break;
9290           }
9291           case 200: {
9292             Dummy25 = input.ReadInt32();
9293             break;
9294           }
9295           case 208: {
9296             Dummy26 = input.ReadInt32();
9297             break;
9298           }
9299           case 216: {
9300             Dummy27 = input.ReadInt32();
9301             break;
9302           }
9303           case 224: {
9304             Dummy28 = input.ReadInt32();
9305             break;
9306           }
9307           case 232: {
9308             Dummy29 = input.ReadInt32();
9309             break;
9310           }
9311           case 240: {
9312             Dummy30 = input.ReadInt32();
9313             break;
9314           }
9315           case 248: {
9316             Dummy31 = input.ReadInt32();
9317             break;
9318           }
9319           case 256: {
9320             Dummy32 = input.ReadInt32();
9321             break;
9322           }
9323           case 264: {
9324             C = input.ReadInt32();
9325             break;
9326           }
9327         }
9328       }
9329     }
9330     #endif
9331 
9332     #region Extensions
9333     /// <summary>Container for extensions for other messages declared in the TestRequired message type.</summary>
9334     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9335     public static partial class Extensions {
9336       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestRequired> Single =
9337         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestRequired>(1000, pb::FieldCodec.ForMessage(8002, global::Google.Protobuf.TestProtos.Proto2.TestRequired.Parser));
9338       public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestRequired> Multi =
9339         new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestAllExtensions, global::Google.Protobuf.TestProtos.Proto2.TestRequired>(1001, pb::FieldCodec.ForMessage(8010, global::Google.Protobuf.TestProtos.Proto2.TestRequired.Parser));
9340     }
9341     #endregion
9342 
9343   }
9344 
9345   public sealed partial class TestRequiredForeign : pb::IMessage<TestRequiredForeign>
9346   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9347       , pb::IBufferMessage
9348   #endif
9349   {
9350     private static readonly pb::MessageParser<TestRequiredForeign> _parser = new pb::MessageParser<TestRequiredForeign>(() => new TestRequiredForeign());
9351     private pb::UnknownFieldSet _unknownFields;
9352     private int _hasBits0;
9353     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9354     public static pb::MessageParser<TestRequiredForeign> Parser { get { return _parser; } }
9355 
9356     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9357     public static pbr::MessageDescriptor Descriptor {
9358       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[13]; }
9359     }
9360 
9361     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9362     pbr::MessageDescriptor pb::IMessage.Descriptor {
9363       get { return Descriptor; }
9364     }
9365 
9366     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredForeign()9367     public TestRequiredForeign() {
9368       OnConstruction();
9369     }
9370 
OnConstruction()9371     partial void OnConstruction();
9372 
9373     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredForeign(TestRequiredForeign other)9374     public TestRequiredForeign(TestRequiredForeign other) : this() {
9375       _hasBits0 = other._hasBits0;
9376       optionalMessage_ = other.optionalMessage_ != null ? other.optionalMessage_.Clone() : null;
9377       repeatedMessage_ = other.repeatedMessage_.Clone();
9378       dummy_ = other.dummy_;
9379       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9380     }
9381 
9382     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()9383     public TestRequiredForeign Clone() {
9384       return new TestRequiredForeign(this);
9385     }
9386 
9387     /// <summary>Field number for the "optional_message" field.</summary>
9388     public const int OptionalMessageFieldNumber = 1;
9389     private global::Google.Protobuf.TestProtos.Proto2.TestRequired optionalMessage_;
9390     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9391     public global::Google.Protobuf.TestProtos.Proto2.TestRequired OptionalMessage {
9392       get { return optionalMessage_; }
9393       set {
9394         optionalMessage_ = value;
9395       }
9396     }
9397 
9398     /// <summary>Field number for the "repeated_message" field.</summary>
9399     public const int RepeatedMessageFieldNumber = 2;
9400     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestRequired> _repeated_repeatedMessage_codec
9401         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.TestProtos.Proto2.TestRequired.Parser);
9402     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestRequired> repeatedMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestRequired>();
9403     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9404     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestRequired> RepeatedMessage {
9405       get { return repeatedMessage_; }
9406     }
9407 
9408     /// <summary>Field number for the "dummy" field.</summary>
9409     public const int DummyFieldNumber = 3;
9410     private readonly static int DummyDefaultValue = 0;
9411 
9412     private int dummy_;
9413     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9414     public int Dummy {
9415       get { if ((_hasBits0 & 1) != 0) { return dummy_; } else { return DummyDefaultValue; } }
9416       set {
9417         _hasBits0 |= 1;
9418         dummy_ = value;
9419       }
9420     }
9421     /// <summary>Gets whether the "dummy" field is set</summary>
9422     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9423     public bool HasDummy {
9424       get { return (_hasBits0 & 1) != 0; }
9425     }
9426     /// <summary>Clears the value of the "dummy" field</summary>
9427     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDummy()9428     public void ClearDummy() {
9429       _hasBits0 &= ~1;
9430     }
9431 
9432     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)9433     public override bool Equals(object other) {
9434       return Equals(other as TestRequiredForeign);
9435     }
9436 
9437     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRequiredForeign other)9438     public bool Equals(TestRequiredForeign other) {
9439       if (ReferenceEquals(other, null)) {
9440         return false;
9441       }
9442       if (ReferenceEquals(other, this)) {
9443         return true;
9444       }
9445       if (!object.Equals(OptionalMessage, other.OptionalMessage)) return false;
9446       if(!repeatedMessage_.Equals(other.repeatedMessage_)) return false;
9447       if (Dummy != other.Dummy) return false;
9448       return Equals(_unknownFields, other._unknownFields);
9449     }
9450 
9451     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()9452     public override int GetHashCode() {
9453       int hash = 1;
9454       if (optionalMessage_ != null) hash ^= OptionalMessage.GetHashCode();
9455       hash ^= repeatedMessage_.GetHashCode();
9456       if (HasDummy) hash ^= Dummy.GetHashCode();
9457       if (_unknownFields != null) {
9458         hash ^= _unknownFields.GetHashCode();
9459       }
9460       return hash;
9461     }
9462 
9463     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()9464     public override string ToString() {
9465       return pb::JsonFormatter.ToDiagnosticString(this);
9466     }
9467 
9468     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)9469     public void WriteTo(pb::CodedOutputStream output) {
9470     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9471       output.WriteRawMessage(this);
9472     #else
9473       if (optionalMessage_ != null) {
9474         output.WriteRawTag(10);
9475         output.WriteMessage(OptionalMessage);
9476       }
9477       repeatedMessage_.WriteTo(output, _repeated_repeatedMessage_codec);
9478       if (HasDummy) {
9479         output.WriteRawTag(24);
9480         output.WriteInt32(Dummy);
9481       }
9482       if (_unknownFields != null) {
9483         _unknownFields.WriteTo(output);
9484       }
9485     #endif
9486     }
9487 
9488     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9489     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)9490     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9491       if (optionalMessage_ != null) {
9492         output.WriteRawTag(10);
9493         output.WriteMessage(OptionalMessage);
9494       }
9495       repeatedMessage_.WriteTo(ref output, _repeated_repeatedMessage_codec);
9496       if (HasDummy) {
9497         output.WriteRawTag(24);
9498         output.WriteInt32(Dummy);
9499       }
9500       if (_unknownFields != null) {
9501         _unknownFields.WriteTo(ref output);
9502       }
9503     }
9504     #endif
9505 
9506     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()9507     public int CalculateSize() {
9508       int size = 0;
9509       if (optionalMessage_ != null) {
9510         size += 1 + pb::CodedOutputStream.ComputeMessageSize(OptionalMessage);
9511       }
9512       size += repeatedMessage_.CalculateSize(_repeated_repeatedMessage_codec);
9513       if (HasDummy) {
9514         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Dummy);
9515       }
9516       if (_unknownFields != null) {
9517         size += _unknownFields.CalculateSize();
9518       }
9519       return size;
9520     }
9521 
9522     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRequiredForeign other)9523     public void MergeFrom(TestRequiredForeign other) {
9524       if (other == null) {
9525         return;
9526       }
9527       if (other.optionalMessage_ != null) {
9528         if (optionalMessage_ == null) {
9529           OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9530         }
9531         OptionalMessage.MergeFrom(other.OptionalMessage);
9532       }
9533       repeatedMessage_.Add(other.repeatedMessage_);
9534       if (other.HasDummy) {
9535         Dummy = other.Dummy;
9536       }
9537       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9538     }
9539 
9540     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)9541     public void MergeFrom(pb::CodedInputStream input) {
9542     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9543       input.ReadRawMessage(this);
9544     #else
9545       uint tag;
9546       while ((tag = input.ReadTag()) != 0) {
9547         switch(tag) {
9548           default:
9549             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9550             break;
9551           case 10: {
9552             if (optionalMessage_ == null) {
9553               OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9554             }
9555             input.ReadMessage(OptionalMessage);
9556             break;
9557           }
9558           case 18: {
9559             repeatedMessage_.AddEntriesFrom(input, _repeated_repeatedMessage_codec);
9560             break;
9561           }
9562           case 24: {
9563             Dummy = input.ReadInt32();
9564             break;
9565           }
9566         }
9567       }
9568     #endif
9569     }
9570 
9571     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9572     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)9573     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9574       uint tag;
9575       while ((tag = input.ReadTag()) != 0) {
9576         switch(tag) {
9577           default:
9578             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9579             break;
9580           case 10: {
9581             if (optionalMessage_ == null) {
9582               OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9583             }
9584             input.ReadMessage(OptionalMessage);
9585             break;
9586           }
9587           case 18: {
9588             repeatedMessage_.AddEntriesFrom(ref input, _repeated_repeatedMessage_codec);
9589             break;
9590           }
9591           case 24: {
9592             Dummy = input.ReadInt32();
9593             break;
9594           }
9595         }
9596       }
9597     }
9598     #endif
9599 
9600   }
9601 
9602   public sealed partial class TestRequiredMessage : pb::IMessage<TestRequiredMessage>
9603   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9604       , pb::IBufferMessage
9605   #endif
9606   {
9607     private static readonly pb::MessageParser<TestRequiredMessage> _parser = new pb::MessageParser<TestRequiredMessage>(() => new TestRequiredMessage());
9608     private pb::UnknownFieldSet _unknownFields;
9609     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9610     public static pb::MessageParser<TestRequiredMessage> Parser { get { return _parser; } }
9611 
9612     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9613     public static pbr::MessageDescriptor Descriptor {
9614       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[14]; }
9615     }
9616 
9617     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9618     pbr::MessageDescriptor pb::IMessage.Descriptor {
9619       get { return Descriptor; }
9620     }
9621 
9622     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredMessage()9623     public TestRequiredMessage() {
9624       OnConstruction();
9625     }
9626 
OnConstruction()9627     partial void OnConstruction();
9628 
9629     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredMessage(TestRequiredMessage other)9630     public TestRequiredMessage(TestRequiredMessage other) : this() {
9631       optionalMessage_ = other.optionalMessage_ != null ? other.optionalMessage_.Clone() : null;
9632       repeatedMessage_ = other.repeatedMessage_.Clone();
9633       requiredMessage_ = other.requiredMessage_ != null ? other.requiredMessage_.Clone() : null;
9634       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9635     }
9636 
9637     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()9638     public TestRequiredMessage Clone() {
9639       return new TestRequiredMessage(this);
9640     }
9641 
9642     /// <summary>Field number for the "optional_message" field.</summary>
9643     public const int OptionalMessageFieldNumber = 1;
9644     private global::Google.Protobuf.TestProtos.Proto2.TestRequired optionalMessage_;
9645     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9646     public global::Google.Protobuf.TestProtos.Proto2.TestRequired OptionalMessage {
9647       get { return optionalMessage_; }
9648       set {
9649         optionalMessage_ = value;
9650       }
9651     }
9652 
9653     /// <summary>Field number for the "repeated_message" field.</summary>
9654     public const int RepeatedMessageFieldNumber = 2;
9655     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestRequired> _repeated_repeatedMessage_codec
9656         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.TestProtos.Proto2.TestRequired.Parser);
9657     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestRequired> repeatedMessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestRequired>();
9658     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9659     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestRequired> RepeatedMessage {
9660       get { return repeatedMessage_; }
9661     }
9662 
9663     /// <summary>Field number for the "required_message" field.</summary>
9664     public const int RequiredMessageFieldNumber = 3;
9665     private global::Google.Protobuf.TestProtos.Proto2.TestRequired requiredMessage_;
9666     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9667     public global::Google.Protobuf.TestProtos.Proto2.TestRequired RequiredMessage {
9668       get { return requiredMessage_; }
9669       set {
9670         requiredMessage_ = value;
9671       }
9672     }
9673 
9674     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)9675     public override bool Equals(object other) {
9676       return Equals(other as TestRequiredMessage);
9677     }
9678 
9679     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRequiredMessage other)9680     public bool Equals(TestRequiredMessage other) {
9681       if (ReferenceEquals(other, null)) {
9682         return false;
9683       }
9684       if (ReferenceEquals(other, this)) {
9685         return true;
9686       }
9687       if (!object.Equals(OptionalMessage, other.OptionalMessage)) return false;
9688       if(!repeatedMessage_.Equals(other.repeatedMessage_)) return false;
9689       if (!object.Equals(RequiredMessage, other.RequiredMessage)) return false;
9690       return Equals(_unknownFields, other._unknownFields);
9691     }
9692 
9693     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()9694     public override int GetHashCode() {
9695       int hash = 1;
9696       if (optionalMessage_ != null) hash ^= OptionalMessage.GetHashCode();
9697       hash ^= repeatedMessage_.GetHashCode();
9698       if (requiredMessage_ != null) hash ^= RequiredMessage.GetHashCode();
9699       if (_unknownFields != null) {
9700         hash ^= _unknownFields.GetHashCode();
9701       }
9702       return hash;
9703     }
9704 
9705     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()9706     public override string ToString() {
9707       return pb::JsonFormatter.ToDiagnosticString(this);
9708     }
9709 
9710     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)9711     public void WriteTo(pb::CodedOutputStream output) {
9712     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9713       output.WriteRawMessage(this);
9714     #else
9715       if (optionalMessage_ != null) {
9716         output.WriteRawTag(10);
9717         output.WriteMessage(OptionalMessage);
9718       }
9719       repeatedMessage_.WriteTo(output, _repeated_repeatedMessage_codec);
9720       if (requiredMessage_ != null) {
9721         output.WriteRawTag(26);
9722         output.WriteMessage(RequiredMessage);
9723       }
9724       if (_unknownFields != null) {
9725         _unknownFields.WriteTo(output);
9726       }
9727     #endif
9728     }
9729 
9730     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9731     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)9732     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9733       if (optionalMessage_ != null) {
9734         output.WriteRawTag(10);
9735         output.WriteMessage(OptionalMessage);
9736       }
9737       repeatedMessage_.WriteTo(ref output, _repeated_repeatedMessage_codec);
9738       if (requiredMessage_ != null) {
9739         output.WriteRawTag(26);
9740         output.WriteMessage(RequiredMessage);
9741       }
9742       if (_unknownFields != null) {
9743         _unknownFields.WriteTo(ref output);
9744       }
9745     }
9746     #endif
9747 
9748     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()9749     public int CalculateSize() {
9750       int size = 0;
9751       if (optionalMessage_ != null) {
9752         size += 1 + pb::CodedOutputStream.ComputeMessageSize(OptionalMessage);
9753       }
9754       size += repeatedMessage_.CalculateSize(_repeated_repeatedMessage_codec);
9755       if (requiredMessage_ != null) {
9756         size += 1 + pb::CodedOutputStream.ComputeMessageSize(RequiredMessage);
9757       }
9758       if (_unknownFields != null) {
9759         size += _unknownFields.CalculateSize();
9760       }
9761       return size;
9762     }
9763 
9764     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRequiredMessage other)9765     public void MergeFrom(TestRequiredMessage other) {
9766       if (other == null) {
9767         return;
9768       }
9769       if (other.optionalMessage_ != null) {
9770         if (optionalMessage_ == null) {
9771           OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9772         }
9773         OptionalMessage.MergeFrom(other.OptionalMessage);
9774       }
9775       repeatedMessage_.Add(other.repeatedMessage_);
9776       if (other.requiredMessage_ != null) {
9777         if (requiredMessage_ == null) {
9778           RequiredMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9779         }
9780         RequiredMessage.MergeFrom(other.RequiredMessage);
9781       }
9782       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9783     }
9784 
9785     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)9786     public void MergeFrom(pb::CodedInputStream input) {
9787     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9788       input.ReadRawMessage(this);
9789     #else
9790       uint tag;
9791       while ((tag = input.ReadTag()) != 0) {
9792         switch(tag) {
9793           default:
9794             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
9795             break;
9796           case 10: {
9797             if (optionalMessage_ == null) {
9798               OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9799             }
9800             input.ReadMessage(OptionalMessage);
9801             break;
9802           }
9803           case 18: {
9804             repeatedMessage_.AddEntriesFrom(input, _repeated_repeatedMessage_codec);
9805             break;
9806           }
9807           case 26: {
9808             if (requiredMessage_ == null) {
9809               RequiredMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9810             }
9811             input.ReadMessage(RequiredMessage);
9812             break;
9813           }
9814         }
9815       }
9816     #endif
9817     }
9818 
9819     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9820     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)9821     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
9822       uint tag;
9823       while ((tag = input.ReadTag()) != 0) {
9824         switch(tag) {
9825           default:
9826             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
9827             break;
9828           case 10: {
9829             if (optionalMessage_ == null) {
9830               OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9831             }
9832             input.ReadMessage(OptionalMessage);
9833             break;
9834           }
9835           case 18: {
9836             repeatedMessage_.AddEntriesFrom(ref input, _repeated_repeatedMessage_codec);
9837             break;
9838           }
9839           case 26: {
9840             if (requiredMessage_ == null) {
9841               RequiredMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequired();
9842             }
9843             input.ReadMessage(RequiredMessage);
9844             break;
9845           }
9846         }
9847       }
9848     }
9849     #endif
9850 
9851   }
9852 
9853   /// <summary>
9854   /// Test that we can use NestedMessage from outside TestAllTypes.
9855   /// </summary>
9856   public sealed partial class TestForeignNested : pb::IMessage<TestForeignNested>
9857   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9858       , pb::IBufferMessage
9859   #endif
9860   {
9861     private static readonly pb::MessageParser<TestForeignNested> _parser = new pb::MessageParser<TestForeignNested>(() => new TestForeignNested());
9862     private pb::UnknownFieldSet _unknownFields;
9863     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9864     public static pb::MessageParser<TestForeignNested> Parser { get { return _parser; } }
9865 
9866     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9867     public static pbr::MessageDescriptor Descriptor {
9868       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[15]; }
9869     }
9870 
9871     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9872     pbr::MessageDescriptor pb::IMessage.Descriptor {
9873       get { return Descriptor; }
9874     }
9875 
9876     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestForeignNested()9877     public TestForeignNested() {
9878       OnConstruction();
9879     }
9880 
OnConstruction()9881     partial void OnConstruction();
9882 
9883     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestForeignNested(TestForeignNested other)9884     public TestForeignNested(TestForeignNested other) : this() {
9885       foreignNested_ = other.foreignNested_ != null ? other.foreignNested_.Clone() : null;
9886       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
9887     }
9888 
9889     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()9890     public TestForeignNested Clone() {
9891       return new TestForeignNested(this);
9892     }
9893 
9894     /// <summary>Field number for the "foreign_nested" field.</summary>
9895     public const int ForeignNestedFieldNumber = 1;
9896     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage foreignNested_;
9897     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9898     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage ForeignNested {
9899       get { return foreignNested_; }
9900       set {
9901         foreignNested_ = value;
9902       }
9903     }
9904 
9905     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)9906     public override bool Equals(object other) {
9907       return Equals(other as TestForeignNested);
9908     }
9909 
9910     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestForeignNested other)9911     public bool Equals(TestForeignNested other) {
9912       if (ReferenceEquals(other, null)) {
9913         return false;
9914       }
9915       if (ReferenceEquals(other, this)) {
9916         return true;
9917       }
9918       if (!object.Equals(ForeignNested, other.ForeignNested)) return false;
9919       return Equals(_unknownFields, other._unknownFields);
9920     }
9921 
9922     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()9923     public override int GetHashCode() {
9924       int hash = 1;
9925       if (foreignNested_ != null) hash ^= ForeignNested.GetHashCode();
9926       if (_unknownFields != null) {
9927         hash ^= _unknownFields.GetHashCode();
9928       }
9929       return hash;
9930     }
9931 
9932     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()9933     public override string ToString() {
9934       return pb::JsonFormatter.ToDiagnosticString(this);
9935     }
9936 
9937     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)9938     public void WriteTo(pb::CodedOutputStream output) {
9939     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9940       output.WriteRawMessage(this);
9941     #else
9942       if (foreignNested_ != null) {
9943         output.WriteRawTag(10);
9944         output.WriteMessage(ForeignNested);
9945       }
9946       if (_unknownFields != null) {
9947         _unknownFields.WriteTo(output);
9948       }
9949     #endif
9950     }
9951 
9952     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9953     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)9954     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
9955       if (foreignNested_ != null) {
9956         output.WriteRawTag(10);
9957         output.WriteMessage(ForeignNested);
9958       }
9959       if (_unknownFields != null) {
9960         _unknownFields.WriteTo(ref output);
9961       }
9962     }
9963     #endif
9964 
9965     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()9966     public int CalculateSize() {
9967       int size = 0;
9968       if (foreignNested_ != null) {
9969         size += 1 + pb::CodedOutputStream.ComputeMessageSize(ForeignNested);
9970       }
9971       if (_unknownFields != null) {
9972         size += _unknownFields.CalculateSize();
9973       }
9974       return size;
9975     }
9976 
9977     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestForeignNested other)9978     public void MergeFrom(TestForeignNested other) {
9979       if (other == null) {
9980         return;
9981       }
9982       if (other.foreignNested_ != null) {
9983         if (foreignNested_ == null) {
9984           ForeignNested = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
9985         }
9986         ForeignNested.MergeFrom(other.ForeignNested);
9987       }
9988       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
9989     }
9990 
9991     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)9992     public void MergeFrom(pb::CodedInputStream input) {
9993     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
9994       input.ReadRawMessage(this);
9995     #else
9996       uint tag;
9997       while ((tag = input.ReadTag()) != 0) {
9998         switch(tag) {
9999           default:
10000             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10001             break;
10002           case 10: {
10003             if (foreignNested_ == null) {
10004               ForeignNested = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
10005             }
10006             input.ReadMessage(ForeignNested);
10007             break;
10008           }
10009         }
10010       }
10011     #endif
10012     }
10013 
10014     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10015     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)10016     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10017       uint tag;
10018       while ((tag = input.ReadTag()) != 0) {
10019         switch(tag) {
10020           default:
10021             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10022             break;
10023           case 10: {
10024             if (foreignNested_ == null) {
10025               ForeignNested = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Types.NestedMessage();
10026             }
10027             input.ReadMessage(ForeignNested);
10028             break;
10029           }
10030         }
10031       }
10032     }
10033     #endif
10034 
10035   }
10036 
10037   /// <summary>
10038   /// TestEmptyMessage is used to test unknown field support.
10039   /// </summary>
10040   public sealed partial class TestEmptyMessage : pb::IMessage<TestEmptyMessage>
10041   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10042       , pb::IBufferMessage
10043   #endif
10044   {
10045     private static readonly pb::MessageParser<TestEmptyMessage> _parser = new pb::MessageParser<TestEmptyMessage>(() => new TestEmptyMessage());
10046     private pb::UnknownFieldSet _unknownFields;
10047     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10048     public static pb::MessageParser<TestEmptyMessage> Parser { get { return _parser; } }
10049 
10050     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10051     public static pbr::MessageDescriptor Descriptor {
10052       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[16]; }
10053     }
10054 
10055     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10056     pbr::MessageDescriptor pb::IMessage.Descriptor {
10057       get { return Descriptor; }
10058     }
10059 
10060     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestEmptyMessage()10061     public TestEmptyMessage() {
10062       OnConstruction();
10063     }
10064 
OnConstruction()10065     partial void OnConstruction();
10066 
10067     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestEmptyMessage(TestEmptyMessage other)10068     public TestEmptyMessage(TestEmptyMessage other) : this() {
10069       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
10070     }
10071 
10072     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()10073     public TestEmptyMessage Clone() {
10074       return new TestEmptyMessage(this);
10075     }
10076 
10077     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)10078     public override bool Equals(object other) {
10079       return Equals(other as TestEmptyMessage);
10080     }
10081 
10082     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestEmptyMessage other)10083     public bool Equals(TestEmptyMessage other) {
10084       if (ReferenceEquals(other, null)) {
10085         return false;
10086       }
10087       if (ReferenceEquals(other, this)) {
10088         return true;
10089       }
10090       return Equals(_unknownFields, other._unknownFields);
10091     }
10092 
10093     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()10094     public override int GetHashCode() {
10095       int hash = 1;
10096       if (_unknownFields != null) {
10097         hash ^= _unknownFields.GetHashCode();
10098       }
10099       return hash;
10100     }
10101 
10102     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()10103     public override string ToString() {
10104       return pb::JsonFormatter.ToDiagnosticString(this);
10105     }
10106 
10107     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)10108     public void WriteTo(pb::CodedOutputStream output) {
10109     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10110       output.WriteRawMessage(this);
10111     #else
10112       if (_unknownFields != null) {
10113         _unknownFields.WriteTo(output);
10114       }
10115     #endif
10116     }
10117 
10118     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10119     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)10120     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10121       if (_unknownFields != null) {
10122         _unknownFields.WriteTo(ref output);
10123       }
10124     }
10125     #endif
10126 
10127     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()10128     public int CalculateSize() {
10129       int size = 0;
10130       if (_unknownFields != null) {
10131         size += _unknownFields.CalculateSize();
10132       }
10133       return size;
10134     }
10135 
10136     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestEmptyMessage other)10137     public void MergeFrom(TestEmptyMessage other) {
10138       if (other == null) {
10139         return;
10140       }
10141       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
10142     }
10143 
10144     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)10145     public void MergeFrom(pb::CodedInputStream input) {
10146     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10147       input.ReadRawMessage(this);
10148     #else
10149       uint tag;
10150       while ((tag = input.ReadTag()) != 0) {
10151         switch(tag) {
10152           default:
10153             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10154             break;
10155         }
10156       }
10157     #endif
10158     }
10159 
10160     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10161     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)10162     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10163       uint tag;
10164       while ((tag = input.ReadTag()) != 0) {
10165         switch(tag) {
10166           default:
10167             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10168             break;
10169         }
10170       }
10171     }
10172     #endif
10173 
10174   }
10175 
10176   /// <summary>
10177   /// Like above, but declare all field numbers as potential extensions.  No
10178   /// actual extensions should ever be defined for this type.
10179   /// </summary>
10180   public sealed partial class TestEmptyMessageWithExtensions : pb::IExtendableMessage<TestEmptyMessageWithExtensions>
10181   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10182       , pb::IBufferMessage
10183   #endif
10184   {
10185     private static readonly pb::MessageParser<TestEmptyMessageWithExtensions> _parser = new pb::MessageParser<TestEmptyMessageWithExtensions>(() => new TestEmptyMessageWithExtensions());
10186     private pb::UnknownFieldSet _unknownFields;
10187     private pb::ExtensionSet<TestEmptyMessageWithExtensions> _extensions;
10188     private pb::ExtensionSet<TestEmptyMessageWithExtensions> _Extensions { get { return _extensions; } }
10189     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10190     public static pb::MessageParser<TestEmptyMessageWithExtensions> Parser { get { return _parser; } }
10191 
10192     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10193     public static pbr::MessageDescriptor Descriptor {
10194       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[17]; }
10195     }
10196 
10197     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10198     pbr::MessageDescriptor pb::IMessage.Descriptor {
10199       get { return Descriptor; }
10200     }
10201 
10202     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestEmptyMessageWithExtensions()10203     public TestEmptyMessageWithExtensions() {
10204       OnConstruction();
10205     }
10206 
OnConstruction()10207     partial void OnConstruction();
10208 
10209     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestEmptyMessageWithExtensions(TestEmptyMessageWithExtensions other)10210     public TestEmptyMessageWithExtensions(TestEmptyMessageWithExtensions other) : this() {
10211       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
10212       _extensions = pb::ExtensionSet.Clone(other._extensions);
10213     }
10214 
10215     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()10216     public TestEmptyMessageWithExtensions Clone() {
10217       return new TestEmptyMessageWithExtensions(this);
10218     }
10219 
10220     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)10221     public override bool Equals(object other) {
10222       return Equals(other as TestEmptyMessageWithExtensions);
10223     }
10224 
10225     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestEmptyMessageWithExtensions other)10226     public bool Equals(TestEmptyMessageWithExtensions other) {
10227       if (ReferenceEquals(other, null)) {
10228         return false;
10229       }
10230       if (ReferenceEquals(other, this)) {
10231         return true;
10232       }
10233       if (!Equals(_extensions, other._extensions)) {
10234         return false;
10235       }
10236       return Equals(_unknownFields, other._unknownFields);
10237     }
10238 
10239     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()10240     public override int GetHashCode() {
10241       int hash = 1;
10242       if (_extensions != null) {
10243         hash ^= _extensions.GetHashCode();
10244       }
10245       if (_unknownFields != null) {
10246         hash ^= _unknownFields.GetHashCode();
10247       }
10248       return hash;
10249     }
10250 
10251     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()10252     public override string ToString() {
10253       return pb::JsonFormatter.ToDiagnosticString(this);
10254     }
10255 
10256     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)10257     public void WriteTo(pb::CodedOutputStream output) {
10258     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10259       output.WriteRawMessage(this);
10260     #else
10261       if (_extensions != null) {
10262         _extensions.WriteTo(output);
10263       }
10264       if (_unknownFields != null) {
10265         _unknownFields.WriteTo(output);
10266       }
10267     #endif
10268     }
10269 
10270     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10271     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)10272     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10273       if (_extensions != null) {
10274         _extensions.WriteTo(ref output);
10275       }
10276       if (_unknownFields != null) {
10277         _unknownFields.WriteTo(ref output);
10278       }
10279     }
10280     #endif
10281 
10282     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()10283     public int CalculateSize() {
10284       int size = 0;
10285       if (_extensions != null) {
10286         size += _extensions.CalculateSize();
10287       }
10288       if (_unknownFields != null) {
10289         size += _unknownFields.CalculateSize();
10290       }
10291       return size;
10292     }
10293 
10294     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestEmptyMessageWithExtensions other)10295     public void MergeFrom(TestEmptyMessageWithExtensions other) {
10296       if (other == null) {
10297         return;
10298       }
10299       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
10300       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
10301     }
10302 
10303     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)10304     public void MergeFrom(pb::CodedInputStream input) {
10305     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10306       input.ReadRawMessage(this);
10307     #else
10308       uint tag;
10309       while ((tag = input.ReadTag()) != 0) {
10310         switch(tag) {
10311           default:
10312             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
10313               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10314             }
10315             break;
10316         }
10317       }
10318     #endif
10319     }
10320 
10321     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10322     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)10323     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10324       uint tag;
10325       while ((tag = input.ReadTag()) != 0) {
10326         switch(tag) {
10327           default:
10328             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
10329               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10330             }
10331             break;
10332         }
10333       }
10334     }
10335     #endif
10336 
GetExtension(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension)10337     public TValue GetExtension<TValue>(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension) {
10338       return pb::ExtensionSet.Get(ref _extensions, extension);
10339     }
GetExtension(pb::RepeatedExtension<TestEmptyMessageWithExtensions, TValue> extension)10340     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestEmptyMessageWithExtensions, TValue> extension) {
10341       return pb::ExtensionSet.Get(ref _extensions, extension);
10342     }
GetOrInitializeExtension(pb::RepeatedExtension<TestEmptyMessageWithExtensions, TValue> extension)10343     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestEmptyMessageWithExtensions, TValue> extension) {
10344       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
10345     }
SetExtension(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension, TValue value)10346     public void SetExtension<TValue>(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension, TValue value) {
10347       pb::ExtensionSet.Set(ref _extensions, extension, value);
10348     }
HasExtension(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension)10349     public bool HasExtension<TValue>(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension) {
10350       return pb::ExtensionSet.Has(ref _extensions, extension);
10351     }
ClearExtension(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension)10352     public void ClearExtension<TValue>(pb::Extension<TestEmptyMessageWithExtensions, TValue> extension) {
10353       pb::ExtensionSet.Clear(ref _extensions, extension);
10354     }
ClearExtension(pb::RepeatedExtension<TestEmptyMessageWithExtensions, TValue> extension)10355     public void ClearExtension<TValue>(pb::RepeatedExtension<TestEmptyMessageWithExtensions, TValue> extension) {
10356       pb::ExtensionSet.Clear(ref _extensions, extension);
10357     }
10358 
10359   }
10360 
10361   public sealed partial class TestMultipleExtensionRanges : pb::IExtendableMessage<TestMultipleExtensionRanges>
10362   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10363       , pb::IBufferMessage
10364   #endif
10365   {
10366     private static readonly pb::MessageParser<TestMultipleExtensionRanges> _parser = new pb::MessageParser<TestMultipleExtensionRanges>(() => new TestMultipleExtensionRanges());
10367     private pb::UnknownFieldSet _unknownFields;
10368     private pb::ExtensionSet<TestMultipleExtensionRanges> _extensions;
10369     private pb::ExtensionSet<TestMultipleExtensionRanges> _Extensions { get { return _extensions; } }
10370     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10371     public static pb::MessageParser<TestMultipleExtensionRanges> Parser { get { return _parser; } }
10372 
10373     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10374     public static pbr::MessageDescriptor Descriptor {
10375       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[18]; }
10376     }
10377 
10378     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10379     pbr::MessageDescriptor pb::IMessage.Descriptor {
10380       get { return Descriptor; }
10381     }
10382 
10383     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestMultipleExtensionRanges()10384     public TestMultipleExtensionRanges() {
10385       OnConstruction();
10386     }
10387 
OnConstruction()10388     partial void OnConstruction();
10389 
10390     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestMultipleExtensionRanges(TestMultipleExtensionRanges other)10391     public TestMultipleExtensionRanges(TestMultipleExtensionRanges other) : this() {
10392       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
10393       _extensions = pb::ExtensionSet.Clone(other._extensions);
10394     }
10395 
10396     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()10397     public TestMultipleExtensionRanges Clone() {
10398       return new TestMultipleExtensionRanges(this);
10399     }
10400 
10401     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)10402     public override bool Equals(object other) {
10403       return Equals(other as TestMultipleExtensionRanges);
10404     }
10405 
10406     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestMultipleExtensionRanges other)10407     public bool Equals(TestMultipleExtensionRanges other) {
10408       if (ReferenceEquals(other, null)) {
10409         return false;
10410       }
10411       if (ReferenceEquals(other, this)) {
10412         return true;
10413       }
10414       if (!Equals(_extensions, other._extensions)) {
10415         return false;
10416       }
10417       return Equals(_unknownFields, other._unknownFields);
10418     }
10419 
10420     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()10421     public override int GetHashCode() {
10422       int hash = 1;
10423       if (_extensions != null) {
10424         hash ^= _extensions.GetHashCode();
10425       }
10426       if (_unknownFields != null) {
10427         hash ^= _unknownFields.GetHashCode();
10428       }
10429       return hash;
10430     }
10431 
10432     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()10433     public override string ToString() {
10434       return pb::JsonFormatter.ToDiagnosticString(this);
10435     }
10436 
10437     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)10438     public void WriteTo(pb::CodedOutputStream output) {
10439     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10440       output.WriteRawMessage(this);
10441     #else
10442       if (_extensions != null) {
10443         _extensions.WriteTo(output);
10444       }
10445       if (_unknownFields != null) {
10446         _unknownFields.WriteTo(output);
10447       }
10448     #endif
10449     }
10450 
10451     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10452     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)10453     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10454       if (_extensions != null) {
10455         _extensions.WriteTo(ref output);
10456       }
10457       if (_unknownFields != null) {
10458         _unknownFields.WriteTo(ref output);
10459       }
10460     }
10461     #endif
10462 
10463     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()10464     public int CalculateSize() {
10465       int size = 0;
10466       if (_extensions != null) {
10467         size += _extensions.CalculateSize();
10468       }
10469       if (_unknownFields != null) {
10470         size += _unknownFields.CalculateSize();
10471       }
10472       return size;
10473     }
10474 
10475     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestMultipleExtensionRanges other)10476     public void MergeFrom(TestMultipleExtensionRanges other) {
10477       if (other == null) {
10478         return;
10479       }
10480       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
10481       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
10482     }
10483 
10484     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)10485     public void MergeFrom(pb::CodedInputStream input) {
10486     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10487       input.ReadRawMessage(this);
10488     #else
10489       uint tag;
10490       while ((tag = input.ReadTag()) != 0) {
10491         switch(tag) {
10492           default:
10493             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
10494               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10495             }
10496             break;
10497         }
10498       }
10499     #endif
10500     }
10501 
10502     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10503     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)10504     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10505       uint tag;
10506       while ((tag = input.ReadTag()) != 0) {
10507         switch(tag) {
10508           default:
10509             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
10510               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10511             }
10512             break;
10513         }
10514       }
10515     }
10516     #endif
10517 
GetExtension(pb::Extension<TestMultipleExtensionRanges, TValue> extension)10518     public TValue GetExtension<TValue>(pb::Extension<TestMultipleExtensionRanges, TValue> extension) {
10519       return pb::ExtensionSet.Get(ref _extensions, extension);
10520     }
GetExtension(pb::RepeatedExtension<TestMultipleExtensionRanges, TValue> extension)10521     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestMultipleExtensionRanges, TValue> extension) {
10522       return pb::ExtensionSet.Get(ref _extensions, extension);
10523     }
GetOrInitializeExtension(pb::RepeatedExtension<TestMultipleExtensionRanges, TValue> extension)10524     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestMultipleExtensionRanges, TValue> extension) {
10525       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
10526     }
SetExtension(pb::Extension<TestMultipleExtensionRanges, TValue> extension, TValue value)10527     public void SetExtension<TValue>(pb::Extension<TestMultipleExtensionRanges, TValue> extension, TValue value) {
10528       pb::ExtensionSet.Set(ref _extensions, extension, value);
10529     }
HasExtension(pb::Extension<TestMultipleExtensionRanges, TValue> extension)10530     public bool HasExtension<TValue>(pb::Extension<TestMultipleExtensionRanges, TValue> extension) {
10531       return pb::ExtensionSet.Has(ref _extensions, extension);
10532     }
ClearExtension(pb::Extension<TestMultipleExtensionRanges, TValue> extension)10533     public void ClearExtension<TValue>(pb::Extension<TestMultipleExtensionRanges, TValue> extension) {
10534       pb::ExtensionSet.Clear(ref _extensions, extension);
10535     }
ClearExtension(pb::RepeatedExtension<TestMultipleExtensionRanges, TValue> extension)10536     public void ClearExtension<TValue>(pb::RepeatedExtension<TestMultipleExtensionRanges, TValue> extension) {
10537       pb::ExtensionSet.Clear(ref _extensions, extension);
10538     }
10539 
10540   }
10541 
10542   /// <summary>
10543   /// Test that really large tag numbers don't break anything.
10544   /// </summary>
10545   public sealed partial class TestReallyLargeTagNumber : pb::IMessage<TestReallyLargeTagNumber>
10546   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10547       , pb::IBufferMessage
10548   #endif
10549   {
10550     private static readonly pb::MessageParser<TestReallyLargeTagNumber> _parser = new pb::MessageParser<TestReallyLargeTagNumber>(() => new TestReallyLargeTagNumber());
10551     private pb::UnknownFieldSet _unknownFields;
10552     private int _hasBits0;
10553     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10554     public static pb::MessageParser<TestReallyLargeTagNumber> Parser { get { return _parser; } }
10555 
10556     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10557     public static pbr::MessageDescriptor Descriptor {
10558       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[19]; }
10559     }
10560 
10561     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10562     pbr::MessageDescriptor pb::IMessage.Descriptor {
10563       get { return Descriptor; }
10564     }
10565 
10566     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestReallyLargeTagNumber()10567     public TestReallyLargeTagNumber() {
10568       OnConstruction();
10569     }
10570 
OnConstruction()10571     partial void OnConstruction();
10572 
10573     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestReallyLargeTagNumber(TestReallyLargeTagNumber other)10574     public TestReallyLargeTagNumber(TestReallyLargeTagNumber other) : this() {
10575       _hasBits0 = other._hasBits0;
10576       a_ = other.a_;
10577       bb_ = other.bb_;
10578       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
10579     }
10580 
10581     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()10582     public TestReallyLargeTagNumber Clone() {
10583       return new TestReallyLargeTagNumber(this);
10584     }
10585 
10586     /// <summary>Field number for the "a" field.</summary>
10587     public const int AFieldNumber = 1;
10588     private readonly static int ADefaultValue = 0;
10589 
10590     private int a_;
10591     /// <summary>
10592     /// The largest possible tag number is 2^28 - 1, since the wire format uses
10593     /// three bits to communicate wire type.
10594     /// </summary>
10595     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10596     public int A {
10597       get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
10598       set {
10599         _hasBits0 |= 1;
10600         a_ = value;
10601       }
10602     }
10603     /// <summary>Gets whether the "a" field is set</summary>
10604     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10605     public bool HasA {
10606       get { return (_hasBits0 & 1) != 0; }
10607     }
10608     /// <summary>Clears the value of the "a" field</summary>
10609     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()10610     public void ClearA() {
10611       _hasBits0 &= ~1;
10612     }
10613 
10614     /// <summary>Field number for the "bb" field.</summary>
10615     public const int BbFieldNumber = 268435455;
10616     private readonly static int BbDefaultValue = 0;
10617 
10618     private int bb_;
10619     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10620     public int Bb {
10621       get { if ((_hasBits0 & 2) != 0) { return bb_; } else { return BbDefaultValue; } }
10622       set {
10623         _hasBits0 |= 2;
10624         bb_ = value;
10625       }
10626     }
10627     /// <summary>Gets whether the "bb" field is set</summary>
10628     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10629     public bool HasBb {
10630       get { return (_hasBits0 & 2) != 0; }
10631     }
10632     /// <summary>Clears the value of the "bb" field</summary>
10633     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBb()10634     public void ClearBb() {
10635       _hasBits0 &= ~2;
10636     }
10637 
10638     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)10639     public override bool Equals(object other) {
10640       return Equals(other as TestReallyLargeTagNumber);
10641     }
10642 
10643     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestReallyLargeTagNumber other)10644     public bool Equals(TestReallyLargeTagNumber other) {
10645       if (ReferenceEquals(other, null)) {
10646         return false;
10647       }
10648       if (ReferenceEquals(other, this)) {
10649         return true;
10650       }
10651       if (A != other.A) return false;
10652       if (Bb != other.Bb) return false;
10653       return Equals(_unknownFields, other._unknownFields);
10654     }
10655 
10656     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()10657     public override int GetHashCode() {
10658       int hash = 1;
10659       if (HasA) hash ^= A.GetHashCode();
10660       if (HasBb) hash ^= Bb.GetHashCode();
10661       if (_unknownFields != null) {
10662         hash ^= _unknownFields.GetHashCode();
10663       }
10664       return hash;
10665     }
10666 
10667     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()10668     public override string ToString() {
10669       return pb::JsonFormatter.ToDiagnosticString(this);
10670     }
10671 
10672     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)10673     public void WriteTo(pb::CodedOutputStream output) {
10674     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10675       output.WriteRawMessage(this);
10676     #else
10677       if (HasA) {
10678         output.WriteRawTag(8);
10679         output.WriteInt32(A);
10680       }
10681       if (HasBb) {
10682         output.WriteRawTag(248, 255, 255, 255, 7);
10683         output.WriteInt32(Bb);
10684       }
10685       if (_unknownFields != null) {
10686         _unknownFields.WriteTo(output);
10687       }
10688     #endif
10689     }
10690 
10691     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10692     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)10693     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10694       if (HasA) {
10695         output.WriteRawTag(8);
10696         output.WriteInt32(A);
10697       }
10698       if (HasBb) {
10699         output.WriteRawTag(248, 255, 255, 255, 7);
10700         output.WriteInt32(Bb);
10701       }
10702       if (_unknownFields != null) {
10703         _unknownFields.WriteTo(ref output);
10704       }
10705     }
10706     #endif
10707 
10708     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()10709     public int CalculateSize() {
10710       int size = 0;
10711       if (HasA) {
10712         size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
10713       }
10714       if (HasBb) {
10715         size += 5 + pb::CodedOutputStream.ComputeInt32Size(Bb);
10716       }
10717       if (_unknownFields != null) {
10718         size += _unknownFields.CalculateSize();
10719       }
10720       return size;
10721     }
10722 
10723     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestReallyLargeTagNumber other)10724     public void MergeFrom(TestReallyLargeTagNumber other) {
10725       if (other == null) {
10726         return;
10727       }
10728       if (other.HasA) {
10729         A = other.A;
10730       }
10731       if (other.HasBb) {
10732         Bb = other.Bb;
10733       }
10734       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
10735     }
10736 
10737     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)10738     public void MergeFrom(pb::CodedInputStream input) {
10739     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10740       input.ReadRawMessage(this);
10741     #else
10742       uint tag;
10743       while ((tag = input.ReadTag()) != 0) {
10744         switch(tag) {
10745           default:
10746             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10747             break;
10748           case 8: {
10749             A = input.ReadInt32();
10750             break;
10751           }
10752           case 2147483640: {
10753             Bb = input.ReadInt32();
10754             break;
10755           }
10756         }
10757       }
10758     #endif
10759     }
10760 
10761     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10762     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)10763     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10764       uint tag;
10765       while ((tag = input.ReadTag()) != 0) {
10766         switch(tag) {
10767           default:
10768             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10769             break;
10770           case 8: {
10771             A = input.ReadInt32();
10772             break;
10773           }
10774           case 2147483640: {
10775             Bb = input.ReadInt32();
10776             break;
10777           }
10778         }
10779       }
10780     }
10781     #endif
10782 
10783   }
10784 
10785   public sealed partial class TestRecursiveMessage : pb::IMessage<TestRecursiveMessage>
10786   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10787       , pb::IBufferMessage
10788   #endif
10789   {
10790     private static readonly pb::MessageParser<TestRecursiveMessage> _parser = new pb::MessageParser<TestRecursiveMessage>(() => new TestRecursiveMessage());
10791     private pb::UnknownFieldSet _unknownFields;
10792     private int _hasBits0;
10793     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10794     public static pb::MessageParser<TestRecursiveMessage> Parser { get { return _parser; } }
10795 
10796     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10797     public static pbr::MessageDescriptor Descriptor {
10798       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[20]; }
10799     }
10800 
10801     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10802     pbr::MessageDescriptor pb::IMessage.Descriptor {
10803       get { return Descriptor; }
10804     }
10805 
10806     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRecursiveMessage()10807     public TestRecursiveMessage() {
10808       OnConstruction();
10809     }
10810 
OnConstruction()10811     partial void OnConstruction();
10812 
10813     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRecursiveMessage(TestRecursiveMessage other)10814     public TestRecursiveMessage(TestRecursiveMessage other) : this() {
10815       _hasBits0 = other._hasBits0;
10816       a_ = other.a_ != null ? other.a_.Clone() : null;
10817       i_ = other.i_;
10818       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
10819     }
10820 
10821     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()10822     public TestRecursiveMessage Clone() {
10823       return new TestRecursiveMessage(this);
10824     }
10825 
10826     /// <summary>Field number for the "a" field.</summary>
10827     public const int AFieldNumber = 1;
10828     private global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage a_;
10829     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10830     public global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage A {
10831       get { return a_; }
10832       set {
10833         a_ = value;
10834       }
10835     }
10836 
10837     /// <summary>Field number for the "i" field.</summary>
10838     public const int IFieldNumber = 2;
10839     private readonly static int IDefaultValue = 0;
10840 
10841     private int i_;
10842     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10843     public int I {
10844       get { if ((_hasBits0 & 1) != 0) { return i_; } else { return IDefaultValue; } }
10845       set {
10846         _hasBits0 |= 1;
10847         i_ = value;
10848       }
10849     }
10850     /// <summary>Gets whether the "i" field is set</summary>
10851     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10852     public bool HasI {
10853       get { return (_hasBits0 & 1) != 0; }
10854     }
10855     /// <summary>Clears the value of the "i" field</summary>
10856     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearI()10857     public void ClearI() {
10858       _hasBits0 &= ~1;
10859     }
10860 
10861     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)10862     public override bool Equals(object other) {
10863       return Equals(other as TestRecursiveMessage);
10864     }
10865 
10866     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRecursiveMessage other)10867     public bool Equals(TestRecursiveMessage other) {
10868       if (ReferenceEquals(other, null)) {
10869         return false;
10870       }
10871       if (ReferenceEquals(other, this)) {
10872         return true;
10873       }
10874       if (!object.Equals(A, other.A)) return false;
10875       if (I != other.I) return false;
10876       return Equals(_unknownFields, other._unknownFields);
10877     }
10878 
10879     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()10880     public override int GetHashCode() {
10881       int hash = 1;
10882       if (a_ != null) hash ^= A.GetHashCode();
10883       if (HasI) hash ^= I.GetHashCode();
10884       if (_unknownFields != null) {
10885         hash ^= _unknownFields.GetHashCode();
10886       }
10887       return hash;
10888     }
10889 
10890     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()10891     public override string ToString() {
10892       return pb::JsonFormatter.ToDiagnosticString(this);
10893     }
10894 
10895     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)10896     public void WriteTo(pb::CodedOutputStream output) {
10897     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10898       output.WriteRawMessage(this);
10899     #else
10900       if (a_ != null) {
10901         output.WriteRawTag(10);
10902         output.WriteMessage(A);
10903       }
10904       if (HasI) {
10905         output.WriteRawTag(16);
10906         output.WriteInt32(I);
10907       }
10908       if (_unknownFields != null) {
10909         _unknownFields.WriteTo(output);
10910       }
10911     #endif
10912     }
10913 
10914     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10915     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)10916     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
10917       if (a_ != null) {
10918         output.WriteRawTag(10);
10919         output.WriteMessage(A);
10920       }
10921       if (HasI) {
10922         output.WriteRawTag(16);
10923         output.WriteInt32(I);
10924       }
10925       if (_unknownFields != null) {
10926         _unknownFields.WriteTo(ref output);
10927       }
10928     }
10929     #endif
10930 
10931     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()10932     public int CalculateSize() {
10933       int size = 0;
10934       if (a_ != null) {
10935         size += 1 + pb::CodedOutputStream.ComputeMessageSize(A);
10936       }
10937       if (HasI) {
10938         size += 1 + pb::CodedOutputStream.ComputeInt32Size(I);
10939       }
10940       if (_unknownFields != null) {
10941         size += _unknownFields.CalculateSize();
10942       }
10943       return size;
10944     }
10945 
10946     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRecursiveMessage other)10947     public void MergeFrom(TestRecursiveMessage other) {
10948       if (other == null) {
10949         return;
10950       }
10951       if (other.a_ != null) {
10952         if (a_ == null) {
10953           A = new global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage();
10954         }
10955         A.MergeFrom(other.A);
10956       }
10957       if (other.HasI) {
10958         I = other.I;
10959       }
10960       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
10961     }
10962 
10963     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)10964     public void MergeFrom(pb::CodedInputStream input) {
10965     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10966       input.ReadRawMessage(this);
10967     #else
10968       uint tag;
10969       while ((tag = input.ReadTag()) != 0) {
10970         switch(tag) {
10971           default:
10972             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
10973             break;
10974           case 10: {
10975             if (a_ == null) {
10976               A = new global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage();
10977             }
10978             input.ReadMessage(A);
10979             break;
10980           }
10981           case 16: {
10982             I = input.ReadInt32();
10983             break;
10984           }
10985         }
10986       }
10987     #endif
10988     }
10989 
10990     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
10991     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)10992     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
10993       uint tag;
10994       while ((tag = input.ReadTag()) != 0) {
10995         switch(tag) {
10996           default:
10997             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
10998             break;
10999           case 10: {
11000             if (a_ == null) {
11001               A = new global::Google.Protobuf.TestProtos.Proto2.TestRecursiveMessage();
11002             }
11003             input.ReadMessage(A);
11004             break;
11005           }
11006           case 16: {
11007             I = input.ReadInt32();
11008             break;
11009           }
11010         }
11011       }
11012     }
11013     #endif
11014 
11015   }
11016 
11017   /// <summary>
11018   /// Test that mutual recursion works.
11019   /// </summary>
11020   public sealed partial class TestMutualRecursionA : pb::IMessage<TestMutualRecursionA>
11021   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11022       , pb::IBufferMessage
11023   #endif
11024   {
11025     private static readonly pb::MessageParser<TestMutualRecursionA> _parser = new pb::MessageParser<TestMutualRecursionA>(() => new TestMutualRecursionA());
11026     private pb::UnknownFieldSet _unknownFields;
11027     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11028     public static pb::MessageParser<TestMutualRecursionA> Parser { get { return _parser; } }
11029 
11030     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11031     public static pbr::MessageDescriptor Descriptor {
11032       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[21]; }
11033     }
11034 
11035     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11036     pbr::MessageDescriptor pb::IMessage.Descriptor {
11037       get { return Descriptor; }
11038     }
11039 
11040     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestMutualRecursionA()11041     public TestMutualRecursionA() {
11042       OnConstruction();
11043     }
11044 
OnConstruction()11045     partial void OnConstruction();
11046 
11047     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestMutualRecursionA(TestMutualRecursionA other)11048     public TestMutualRecursionA(TestMutualRecursionA other) : this() {
11049       bb_ = other.bb_ != null ? other.bb_.Clone() : null;
11050       subGroup_ = other.HasSubGroup ? other.subGroup_.Clone() : null;
11051       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
11052     }
11053 
11054     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()11055     public TestMutualRecursionA Clone() {
11056       return new TestMutualRecursionA(this);
11057     }
11058 
11059     /// <summary>Field number for the "bb" field.</summary>
11060     public const int BbFieldNumber = 1;
11061     private global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB bb_;
11062     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11063     public global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB Bb {
11064       get { return bb_; }
11065       set {
11066         bb_ = value;
11067       }
11068     }
11069 
11070     /// <summary>Field number for the "subgroup" field.</summary>
11071     public const int SubGroupFieldNumber = 2;
11072     private global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup subGroup_;
11073     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11074     public global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup SubGroup {
11075       get { return subGroup_; }
11076       set {
11077         subGroup_ = value;
11078       }
11079     }
11080     /// <summary>Gets whether the subgroup field is set</summary>
11081     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11082     public bool HasSubGroup {
11083       get { return subGroup_ != null; }
11084     }
11085     /// <summary>Clears the value of the subgroup field</summary>
11086     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSubGroup()11087     public void ClearSubGroup() {
11088       subGroup_ = null;
11089     }
11090 
11091     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)11092     public override bool Equals(object other) {
11093       return Equals(other as TestMutualRecursionA);
11094     }
11095 
11096     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestMutualRecursionA other)11097     public bool Equals(TestMutualRecursionA other) {
11098       if (ReferenceEquals(other, null)) {
11099         return false;
11100       }
11101       if (ReferenceEquals(other, this)) {
11102         return true;
11103       }
11104       if (!object.Equals(Bb, other.Bb)) return false;
11105       if (!object.Equals(SubGroup, other.SubGroup)) return false;
11106       return Equals(_unknownFields, other._unknownFields);
11107     }
11108 
11109     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()11110     public override int GetHashCode() {
11111       int hash = 1;
11112       if (bb_ != null) hash ^= Bb.GetHashCode();
11113       if (HasSubGroup) hash ^= SubGroup.GetHashCode();
11114       if (_unknownFields != null) {
11115         hash ^= _unknownFields.GetHashCode();
11116       }
11117       return hash;
11118     }
11119 
11120     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()11121     public override string ToString() {
11122       return pb::JsonFormatter.ToDiagnosticString(this);
11123     }
11124 
11125     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)11126     public void WriteTo(pb::CodedOutputStream output) {
11127     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11128       output.WriteRawMessage(this);
11129     #else
11130       if (bb_ != null) {
11131         output.WriteRawTag(10);
11132         output.WriteMessage(Bb);
11133       }
11134       if (HasSubGroup) {
11135         output.WriteRawTag(19);
11136         output.WriteGroup(SubGroup);
11137         output.WriteRawTag(20);
11138       }
11139       if (_unknownFields != null) {
11140         _unknownFields.WriteTo(output);
11141       }
11142     #endif
11143     }
11144 
11145     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11146     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)11147     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
11148       if (bb_ != null) {
11149         output.WriteRawTag(10);
11150         output.WriteMessage(Bb);
11151       }
11152       if (HasSubGroup) {
11153         output.WriteRawTag(19);
11154         output.WriteGroup(SubGroup);
11155         output.WriteRawTag(20);
11156       }
11157       if (_unknownFields != null) {
11158         _unknownFields.WriteTo(ref output);
11159       }
11160     }
11161     #endif
11162 
11163     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()11164     public int CalculateSize() {
11165       int size = 0;
11166       if (bb_ != null) {
11167         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bb);
11168       }
11169       if (HasSubGroup) {
11170         size += 2 + pb::CodedOutputStream.ComputeGroupSize(SubGroup);
11171       }
11172       if (_unknownFields != null) {
11173         size += _unknownFields.CalculateSize();
11174       }
11175       return size;
11176     }
11177 
11178     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestMutualRecursionA other)11179     public void MergeFrom(TestMutualRecursionA other) {
11180       if (other == null) {
11181         return;
11182       }
11183       if (other.bb_ != null) {
11184         if (bb_ == null) {
11185           Bb = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB();
11186         }
11187         Bb.MergeFrom(other.Bb);
11188       }
11189       if (other.HasSubGroup) {
11190         if (!HasSubGroup) {
11191           SubGroup = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup();
11192         }
11193         SubGroup.MergeFrom(other.SubGroup);
11194       }
11195       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
11196     }
11197 
11198     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)11199     public void MergeFrom(pb::CodedInputStream input) {
11200     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11201       input.ReadRawMessage(this);
11202     #else
11203       uint tag;
11204       while ((tag = input.ReadTag()) != 0) {
11205         switch(tag) {
11206           default:
11207             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
11208             break;
11209           case 10: {
11210             if (bb_ == null) {
11211               Bb = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB();
11212             }
11213             input.ReadMessage(Bb);
11214             break;
11215           }
11216           case 19: {
11217             if (!HasSubGroup) {
11218               SubGroup = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup();
11219             }
11220             input.ReadGroup(SubGroup);
11221             break;
11222           }
11223         }
11224       }
11225     #endif
11226     }
11227 
11228     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11229     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)11230     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
11231       uint tag;
11232       while ((tag = input.ReadTag()) != 0) {
11233         switch(tag) {
11234           default:
11235             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
11236             break;
11237           case 10: {
11238             if (bb_ == null) {
11239               Bb = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB();
11240             }
11241             input.ReadMessage(Bb);
11242             break;
11243           }
11244           case 19: {
11245             if (!HasSubGroup) {
11246               SubGroup = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubGroup();
11247             }
11248             input.ReadGroup(SubGroup);
11249             break;
11250           }
11251         }
11252       }
11253     }
11254     #endif
11255 
11256     #region Nested types
11257     /// <summary>Container for nested types declared in the TestMutualRecursionA message type.</summary>
11258     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11259     public static partial class Types {
11260       public sealed partial class SubMessage : pb::IMessage<SubMessage>
11261       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11262           , pb::IBufferMessage
11263       #endif
11264       {
11265         private static readonly pb::MessageParser<SubMessage> _parser = new pb::MessageParser<SubMessage>(() => new SubMessage());
11266         private pb::UnknownFieldSet _unknownFields;
11267         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11268         public static pb::MessageParser<SubMessage> Parser { get { return _parser; } }
11269 
11270         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11271         public static pbr::MessageDescriptor Descriptor {
11272           get { return global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Descriptor.NestedTypes[0]; }
11273         }
11274 
11275         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11276         pbr::MessageDescriptor pb::IMessage.Descriptor {
11277           get { return Descriptor; }
11278         }
11279 
11280         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubMessage()11281         public SubMessage() {
11282           OnConstruction();
11283         }
11284 
OnConstruction()11285         partial void OnConstruction();
11286 
11287         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubMessage(SubMessage other)11288         public SubMessage(SubMessage other) : this() {
11289           b_ = other.b_ != null ? other.b_.Clone() : null;
11290           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
11291         }
11292 
11293         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()11294         public SubMessage Clone() {
11295           return new SubMessage(this);
11296         }
11297 
11298         /// <summary>Field number for the "b" field.</summary>
11299         public const int BFieldNumber = 1;
11300         private global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB b_;
11301         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11302         public global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB B {
11303           get { return b_; }
11304           set {
11305             b_ = value;
11306           }
11307         }
11308 
11309         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)11310         public override bool Equals(object other) {
11311           return Equals(other as SubMessage);
11312         }
11313 
11314         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(SubMessage other)11315         public bool Equals(SubMessage other) {
11316           if (ReferenceEquals(other, null)) {
11317             return false;
11318           }
11319           if (ReferenceEquals(other, this)) {
11320             return true;
11321           }
11322           if (!object.Equals(B, other.B)) return false;
11323           return Equals(_unknownFields, other._unknownFields);
11324         }
11325 
11326         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()11327         public override int GetHashCode() {
11328           int hash = 1;
11329           if (b_ != null) hash ^= B.GetHashCode();
11330           if (_unknownFields != null) {
11331             hash ^= _unknownFields.GetHashCode();
11332           }
11333           return hash;
11334         }
11335 
11336         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()11337         public override string ToString() {
11338           return pb::JsonFormatter.ToDiagnosticString(this);
11339         }
11340 
11341         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)11342         public void WriteTo(pb::CodedOutputStream output) {
11343         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11344           output.WriteRawMessage(this);
11345         #else
11346           if (b_ != null) {
11347             output.WriteRawTag(10);
11348             output.WriteMessage(B);
11349           }
11350           if (_unknownFields != null) {
11351             _unknownFields.WriteTo(output);
11352           }
11353         #endif
11354         }
11355 
11356         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11357         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)11358         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
11359           if (b_ != null) {
11360             output.WriteRawTag(10);
11361             output.WriteMessage(B);
11362           }
11363           if (_unknownFields != null) {
11364             _unknownFields.WriteTo(ref output);
11365           }
11366         }
11367         #endif
11368 
11369         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()11370         public int CalculateSize() {
11371           int size = 0;
11372           if (b_ != null) {
11373             size += 1 + pb::CodedOutputStream.ComputeMessageSize(B);
11374           }
11375           if (_unknownFields != null) {
11376             size += _unknownFields.CalculateSize();
11377           }
11378           return size;
11379         }
11380 
11381         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(SubMessage other)11382         public void MergeFrom(SubMessage other) {
11383           if (other == null) {
11384             return;
11385           }
11386           if (other.b_ != null) {
11387             if (b_ == null) {
11388               B = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB();
11389             }
11390             B.MergeFrom(other.B);
11391           }
11392           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
11393         }
11394 
11395         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)11396         public void MergeFrom(pb::CodedInputStream input) {
11397         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11398           input.ReadRawMessage(this);
11399         #else
11400           uint tag;
11401           while ((tag = input.ReadTag()) != 0) {
11402             switch(tag) {
11403               default:
11404                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
11405                 break;
11406               case 10: {
11407                 if (b_ == null) {
11408                   B = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB();
11409                 }
11410                 input.ReadMessage(B);
11411                 break;
11412               }
11413             }
11414           }
11415         #endif
11416         }
11417 
11418         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11419         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)11420         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
11421           uint tag;
11422           while ((tag = input.ReadTag()) != 0) {
11423             switch(tag) {
11424               default:
11425                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
11426                 break;
11427               case 10: {
11428                 if (b_ == null) {
11429                   B = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionB();
11430                 }
11431                 input.ReadMessage(B);
11432                 break;
11433               }
11434             }
11435           }
11436         }
11437         #endif
11438 
11439       }
11440 
11441       public sealed partial class SubGroup : pb::IMessage<SubGroup>
11442       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11443           , pb::IBufferMessage
11444       #endif
11445       {
11446         private static readonly pb::MessageParser<SubGroup> _parser = new pb::MessageParser<SubGroup>(() => new SubGroup());
11447         private pb::UnknownFieldSet _unknownFields;
11448         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11449         public static pb::MessageParser<SubGroup> Parser { get { return _parser; } }
11450 
11451         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11452         public static pbr::MessageDescriptor Descriptor {
11453           get { return global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Descriptor.NestedTypes[1]; }
11454         }
11455 
11456         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11457         pbr::MessageDescriptor pb::IMessage.Descriptor {
11458           get { return Descriptor; }
11459         }
11460 
11461         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubGroup()11462         public SubGroup() {
11463           OnConstruction();
11464         }
11465 
OnConstruction()11466         partial void OnConstruction();
11467 
11468         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubGroup(SubGroup other)11469         public SubGroup(SubGroup other) : this() {
11470           subMessage_ = other.subMessage_ != null ? other.subMessage_.Clone() : null;
11471           notInThisScc_ = other.notInThisScc_ != null ? other.notInThisScc_.Clone() : null;
11472           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
11473         }
11474 
11475         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()11476         public SubGroup Clone() {
11477           return new SubGroup(this);
11478         }
11479 
11480         /// <summary>Field number for the "sub_message" field.</summary>
11481         public const int SubMessageFieldNumber = 3;
11482         private global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage subMessage_;
11483         /// <summary>
11484         /// Needed because of bug in javatest
11485         /// </summary>
11486         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11487         public global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage SubMessage {
11488           get { return subMessage_; }
11489           set {
11490             subMessage_ = value;
11491           }
11492         }
11493 
11494         /// <summary>Field number for the "not_in_this_scc" field.</summary>
11495         public const int NotInThisSccFieldNumber = 4;
11496         private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes notInThisScc_;
11497         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11498         public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes NotInThisScc {
11499           get { return notInThisScc_; }
11500           set {
11501             notInThisScc_ = value;
11502           }
11503         }
11504 
11505         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)11506         public override bool Equals(object other) {
11507           return Equals(other as SubGroup);
11508         }
11509 
11510         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(SubGroup other)11511         public bool Equals(SubGroup other) {
11512           if (ReferenceEquals(other, null)) {
11513             return false;
11514           }
11515           if (ReferenceEquals(other, this)) {
11516             return true;
11517           }
11518           if (!object.Equals(SubMessage, other.SubMessage)) return false;
11519           if (!object.Equals(NotInThisScc, other.NotInThisScc)) return false;
11520           return Equals(_unknownFields, other._unknownFields);
11521         }
11522 
11523         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()11524         public override int GetHashCode() {
11525           int hash = 1;
11526           if (subMessage_ != null) hash ^= SubMessage.GetHashCode();
11527           if (notInThisScc_ != null) hash ^= NotInThisScc.GetHashCode();
11528           if (_unknownFields != null) {
11529             hash ^= _unknownFields.GetHashCode();
11530           }
11531           return hash;
11532         }
11533 
11534         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()11535         public override string ToString() {
11536           return pb::JsonFormatter.ToDiagnosticString(this);
11537         }
11538 
11539         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)11540         public void WriteTo(pb::CodedOutputStream output) {
11541         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11542           output.WriteRawMessage(this);
11543         #else
11544           if (subMessage_ != null) {
11545             output.WriteRawTag(26);
11546             output.WriteMessage(SubMessage);
11547           }
11548           if (notInThisScc_ != null) {
11549             output.WriteRawTag(34);
11550             output.WriteMessage(NotInThisScc);
11551           }
11552           if (_unknownFields != null) {
11553             _unknownFields.WriteTo(output);
11554           }
11555         #endif
11556         }
11557 
11558         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11559         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)11560         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
11561           if (subMessage_ != null) {
11562             output.WriteRawTag(26);
11563             output.WriteMessage(SubMessage);
11564           }
11565           if (notInThisScc_ != null) {
11566             output.WriteRawTag(34);
11567             output.WriteMessage(NotInThisScc);
11568           }
11569           if (_unknownFields != null) {
11570             _unknownFields.WriteTo(ref output);
11571           }
11572         }
11573         #endif
11574 
11575         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()11576         public int CalculateSize() {
11577           int size = 0;
11578           if (subMessage_ != null) {
11579             size += 1 + pb::CodedOutputStream.ComputeMessageSize(SubMessage);
11580           }
11581           if (notInThisScc_ != null) {
11582             size += 1 + pb::CodedOutputStream.ComputeMessageSize(NotInThisScc);
11583           }
11584           if (_unknownFields != null) {
11585             size += _unknownFields.CalculateSize();
11586           }
11587           return size;
11588         }
11589 
11590         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(SubGroup other)11591         public void MergeFrom(SubGroup other) {
11592           if (other == null) {
11593             return;
11594           }
11595           if (other.subMessage_ != null) {
11596             if (subMessage_ == null) {
11597               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage();
11598             }
11599             SubMessage.MergeFrom(other.SubMessage);
11600           }
11601           if (other.notInThisScc_ != null) {
11602             if (notInThisScc_ == null) {
11603               NotInThisScc = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
11604             }
11605             NotInThisScc.MergeFrom(other.NotInThisScc);
11606           }
11607           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
11608         }
11609 
11610         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)11611         public void MergeFrom(pb::CodedInputStream input) {
11612         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11613           input.ReadRawMessage(this);
11614         #else
11615           uint tag;
11616           while ((tag = input.ReadTag()) != 0) {
11617             switch(tag) {
11618               case 20:
11619                 return;
11620               default:
11621                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
11622                 break;
11623               case 26: {
11624                 if (subMessage_ == null) {
11625                   SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage();
11626                 }
11627                 input.ReadMessage(SubMessage);
11628                 break;
11629               }
11630               case 34: {
11631                 if (notInThisScc_ == null) {
11632                   NotInThisScc = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
11633                 }
11634                 input.ReadMessage(NotInThisScc);
11635                 break;
11636               }
11637             }
11638           }
11639         #endif
11640         }
11641 
11642         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11643         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)11644         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
11645           uint tag;
11646           while ((tag = input.ReadTag()) != 0) {
11647             switch(tag) {
11648               case 20:
11649                 return;
11650               default:
11651                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
11652                 break;
11653               case 26: {
11654                 if (subMessage_ == null) {
11655                   SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA.Types.SubMessage();
11656                 }
11657                 input.ReadMessage(SubMessage);
11658                 break;
11659               }
11660               case 34: {
11661                 if (notInThisScc_ == null) {
11662                   NotInThisScc = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
11663                 }
11664                 input.ReadMessage(NotInThisScc);
11665                 break;
11666               }
11667             }
11668           }
11669         }
11670         #endif
11671 
11672       }
11673 
11674     }
11675     #endregion
11676 
11677   }
11678 
11679   public sealed partial class TestMutualRecursionB : pb::IMessage<TestMutualRecursionB>
11680   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11681       , pb::IBufferMessage
11682   #endif
11683   {
11684     private static readonly pb::MessageParser<TestMutualRecursionB> _parser = new pb::MessageParser<TestMutualRecursionB>(() => new TestMutualRecursionB());
11685     private pb::UnknownFieldSet _unknownFields;
11686     private int _hasBits0;
11687     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11688     public static pb::MessageParser<TestMutualRecursionB> Parser { get { return _parser; } }
11689 
11690     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11691     public static pbr::MessageDescriptor Descriptor {
11692       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[22]; }
11693     }
11694 
11695     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11696     pbr::MessageDescriptor pb::IMessage.Descriptor {
11697       get { return Descriptor; }
11698     }
11699 
11700     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestMutualRecursionB()11701     public TestMutualRecursionB() {
11702       OnConstruction();
11703     }
11704 
OnConstruction()11705     partial void OnConstruction();
11706 
11707     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestMutualRecursionB(TestMutualRecursionB other)11708     public TestMutualRecursionB(TestMutualRecursionB other) : this() {
11709       _hasBits0 = other._hasBits0;
11710       a_ = other.a_ != null ? other.a_.Clone() : null;
11711       optionalInt32_ = other.optionalInt32_;
11712       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
11713     }
11714 
11715     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()11716     public TestMutualRecursionB Clone() {
11717       return new TestMutualRecursionB(this);
11718     }
11719 
11720     /// <summary>Field number for the "a" field.</summary>
11721     public const int AFieldNumber = 1;
11722     private global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA a_;
11723     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11724     public global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA A {
11725       get { return a_; }
11726       set {
11727         a_ = value;
11728       }
11729     }
11730 
11731     /// <summary>Field number for the "optional_int32" field.</summary>
11732     public const int OptionalInt32FieldNumber = 2;
11733     private readonly static int OptionalInt32DefaultValue = 0;
11734 
11735     private int optionalInt32_;
11736     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11737     public int OptionalInt32 {
11738       get { if ((_hasBits0 & 1) != 0) { return optionalInt32_; } else { return OptionalInt32DefaultValue; } }
11739       set {
11740         _hasBits0 |= 1;
11741         optionalInt32_ = value;
11742       }
11743     }
11744     /// <summary>Gets whether the "optional_int32" field is set</summary>
11745     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11746     public bool HasOptionalInt32 {
11747       get { return (_hasBits0 & 1) != 0; }
11748     }
11749     /// <summary>Clears the value of the "optional_int32" field</summary>
11750     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalInt32()11751     public void ClearOptionalInt32() {
11752       _hasBits0 &= ~1;
11753     }
11754 
11755     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)11756     public override bool Equals(object other) {
11757       return Equals(other as TestMutualRecursionB);
11758     }
11759 
11760     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestMutualRecursionB other)11761     public bool Equals(TestMutualRecursionB other) {
11762       if (ReferenceEquals(other, null)) {
11763         return false;
11764       }
11765       if (ReferenceEquals(other, this)) {
11766         return true;
11767       }
11768       if (!object.Equals(A, other.A)) return false;
11769       if (OptionalInt32 != other.OptionalInt32) return false;
11770       return Equals(_unknownFields, other._unknownFields);
11771     }
11772 
11773     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()11774     public override int GetHashCode() {
11775       int hash = 1;
11776       if (a_ != null) hash ^= A.GetHashCode();
11777       if (HasOptionalInt32) hash ^= OptionalInt32.GetHashCode();
11778       if (_unknownFields != null) {
11779         hash ^= _unknownFields.GetHashCode();
11780       }
11781       return hash;
11782     }
11783 
11784     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()11785     public override string ToString() {
11786       return pb::JsonFormatter.ToDiagnosticString(this);
11787     }
11788 
11789     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)11790     public void WriteTo(pb::CodedOutputStream output) {
11791     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11792       output.WriteRawMessage(this);
11793     #else
11794       if (a_ != null) {
11795         output.WriteRawTag(10);
11796         output.WriteMessage(A);
11797       }
11798       if (HasOptionalInt32) {
11799         output.WriteRawTag(16);
11800         output.WriteInt32(OptionalInt32);
11801       }
11802       if (_unknownFields != null) {
11803         _unknownFields.WriteTo(output);
11804       }
11805     #endif
11806     }
11807 
11808     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11809     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)11810     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
11811       if (a_ != null) {
11812         output.WriteRawTag(10);
11813         output.WriteMessage(A);
11814       }
11815       if (HasOptionalInt32) {
11816         output.WriteRawTag(16);
11817         output.WriteInt32(OptionalInt32);
11818       }
11819       if (_unknownFields != null) {
11820         _unknownFields.WriteTo(ref output);
11821       }
11822     }
11823     #endif
11824 
11825     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()11826     public int CalculateSize() {
11827       int size = 0;
11828       if (a_ != null) {
11829         size += 1 + pb::CodedOutputStream.ComputeMessageSize(A);
11830       }
11831       if (HasOptionalInt32) {
11832         size += 1 + pb::CodedOutputStream.ComputeInt32Size(OptionalInt32);
11833       }
11834       if (_unknownFields != null) {
11835         size += _unknownFields.CalculateSize();
11836       }
11837       return size;
11838     }
11839 
11840     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestMutualRecursionB other)11841     public void MergeFrom(TestMutualRecursionB other) {
11842       if (other == null) {
11843         return;
11844       }
11845       if (other.a_ != null) {
11846         if (a_ == null) {
11847           A = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA();
11848         }
11849         A.MergeFrom(other.A);
11850       }
11851       if (other.HasOptionalInt32) {
11852         OptionalInt32 = other.OptionalInt32;
11853       }
11854       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
11855     }
11856 
11857     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)11858     public void MergeFrom(pb::CodedInputStream input) {
11859     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11860       input.ReadRawMessage(this);
11861     #else
11862       uint tag;
11863       while ((tag = input.ReadTag()) != 0) {
11864         switch(tag) {
11865           default:
11866             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
11867             break;
11868           case 10: {
11869             if (a_ == null) {
11870               A = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA();
11871             }
11872             input.ReadMessage(A);
11873             break;
11874           }
11875           case 16: {
11876             OptionalInt32 = input.ReadInt32();
11877             break;
11878           }
11879         }
11880       }
11881     #endif
11882     }
11883 
11884     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11885     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)11886     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
11887       uint tag;
11888       while ((tag = input.ReadTag()) != 0) {
11889         switch(tag) {
11890           default:
11891             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
11892             break;
11893           case 10: {
11894             if (a_ == null) {
11895               A = new global::Google.Protobuf.TestProtos.Proto2.TestMutualRecursionA();
11896             }
11897             input.ReadMessage(A);
11898             break;
11899           }
11900           case 16: {
11901             OptionalInt32 = input.ReadInt32();
11902             break;
11903           }
11904         }
11905       }
11906     }
11907     #endif
11908 
11909   }
11910 
11911   public sealed partial class TestIsInitialized : pb::IMessage<TestIsInitialized>
11912   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11913       , pb::IBufferMessage
11914   #endif
11915   {
11916     private static readonly pb::MessageParser<TestIsInitialized> _parser = new pb::MessageParser<TestIsInitialized>(() => new TestIsInitialized());
11917     private pb::UnknownFieldSet _unknownFields;
11918     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11919     public static pb::MessageParser<TestIsInitialized> Parser { get { return _parser; } }
11920 
11921     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11922     public static pbr::MessageDescriptor Descriptor {
11923       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[23]; }
11924     }
11925 
11926     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11927     pbr::MessageDescriptor pb::IMessage.Descriptor {
11928       get { return Descriptor; }
11929     }
11930 
11931     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestIsInitialized()11932     public TestIsInitialized() {
11933       OnConstruction();
11934     }
11935 
OnConstruction()11936     partial void OnConstruction();
11937 
11938     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestIsInitialized(TestIsInitialized other)11939     public TestIsInitialized(TestIsInitialized other) : this() {
11940       subMessage_ = other.subMessage_ != null ? other.subMessage_.Clone() : null;
11941       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
11942     }
11943 
11944     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()11945     public TestIsInitialized Clone() {
11946       return new TestIsInitialized(this);
11947     }
11948 
11949     /// <summary>Field number for the "sub_message" field.</summary>
11950     public const int SubMessageFieldNumber = 1;
11951     private global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage subMessage_;
11952     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11953     public global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage SubMessage {
11954       get { return subMessage_; }
11955       set {
11956         subMessage_ = value;
11957       }
11958     }
11959 
11960     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)11961     public override bool Equals(object other) {
11962       return Equals(other as TestIsInitialized);
11963     }
11964 
11965     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestIsInitialized other)11966     public bool Equals(TestIsInitialized other) {
11967       if (ReferenceEquals(other, null)) {
11968         return false;
11969       }
11970       if (ReferenceEquals(other, this)) {
11971         return true;
11972       }
11973       if (!object.Equals(SubMessage, other.SubMessage)) return false;
11974       return Equals(_unknownFields, other._unknownFields);
11975     }
11976 
11977     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()11978     public override int GetHashCode() {
11979       int hash = 1;
11980       if (subMessage_ != null) hash ^= SubMessage.GetHashCode();
11981       if (_unknownFields != null) {
11982         hash ^= _unknownFields.GetHashCode();
11983       }
11984       return hash;
11985     }
11986 
11987     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()11988     public override string ToString() {
11989       return pb::JsonFormatter.ToDiagnosticString(this);
11990     }
11991 
11992     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)11993     public void WriteTo(pb::CodedOutputStream output) {
11994     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11995       output.WriteRawMessage(this);
11996     #else
11997       if (subMessage_ != null) {
11998         output.WriteRawTag(10);
11999         output.WriteMessage(SubMessage);
12000       }
12001       if (_unknownFields != null) {
12002         _unknownFields.WriteTo(output);
12003       }
12004     #endif
12005     }
12006 
12007     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12008     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)12009     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
12010       if (subMessage_ != null) {
12011         output.WriteRawTag(10);
12012         output.WriteMessage(SubMessage);
12013       }
12014       if (_unknownFields != null) {
12015         _unknownFields.WriteTo(ref output);
12016       }
12017     }
12018     #endif
12019 
12020     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()12021     public int CalculateSize() {
12022       int size = 0;
12023       if (subMessage_ != null) {
12024         size += 1 + pb::CodedOutputStream.ComputeMessageSize(SubMessage);
12025       }
12026       if (_unknownFields != null) {
12027         size += _unknownFields.CalculateSize();
12028       }
12029       return size;
12030     }
12031 
12032     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestIsInitialized other)12033     public void MergeFrom(TestIsInitialized other) {
12034       if (other == null) {
12035         return;
12036       }
12037       if (other.subMessage_ != null) {
12038         if (subMessage_ == null) {
12039           SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage();
12040         }
12041         SubMessage.MergeFrom(other.SubMessage);
12042       }
12043       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
12044     }
12045 
12046     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)12047     public void MergeFrom(pb::CodedInputStream input) {
12048     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12049       input.ReadRawMessage(this);
12050     #else
12051       uint tag;
12052       while ((tag = input.ReadTag()) != 0) {
12053         switch(tag) {
12054           default:
12055             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
12056             break;
12057           case 10: {
12058             if (subMessage_ == null) {
12059               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage();
12060             }
12061             input.ReadMessage(SubMessage);
12062             break;
12063           }
12064         }
12065       }
12066     #endif
12067     }
12068 
12069     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12070     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)12071     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
12072       uint tag;
12073       while ((tag = input.ReadTag()) != 0) {
12074         switch(tag) {
12075           default:
12076             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
12077             break;
12078           case 10: {
12079             if (subMessage_ == null) {
12080               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage();
12081             }
12082             input.ReadMessage(SubMessage);
12083             break;
12084           }
12085         }
12086       }
12087     }
12088     #endif
12089 
12090     #region Nested types
12091     /// <summary>Container for nested types declared in the TestIsInitialized message type.</summary>
12092     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12093     public static partial class Types {
12094       public sealed partial class SubMessage : pb::IMessage<SubMessage>
12095       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12096           , pb::IBufferMessage
12097       #endif
12098       {
12099         private static readonly pb::MessageParser<SubMessage> _parser = new pb::MessageParser<SubMessage>(() => new SubMessage());
12100         private pb::UnknownFieldSet _unknownFields;
12101         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12102         public static pb::MessageParser<SubMessage> Parser { get { return _parser; } }
12103 
12104         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12105         public static pbr::MessageDescriptor Descriptor {
12106           get { return global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Descriptor.NestedTypes[0]; }
12107         }
12108 
12109         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12110         pbr::MessageDescriptor pb::IMessage.Descriptor {
12111           get { return Descriptor; }
12112         }
12113 
12114         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubMessage()12115         public SubMessage() {
12116           OnConstruction();
12117         }
12118 
OnConstruction()12119         partial void OnConstruction();
12120 
12121         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubMessage(SubMessage other)12122         public SubMessage(SubMessage other) : this() {
12123           subGroup_ = other.HasSubGroup ? other.subGroup_.Clone() : null;
12124           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
12125         }
12126 
12127         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()12128         public SubMessage Clone() {
12129           return new SubMessage(this);
12130         }
12131 
12132         /// <summary>Field number for the "subgroup" field.</summary>
12133         public const int SubGroupFieldNumber = 1;
12134         private global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup subGroup_;
12135         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12136         public global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup SubGroup {
12137           get { return subGroup_; }
12138           set {
12139             subGroup_ = value;
12140           }
12141         }
12142         /// <summary>Gets whether the subgroup field is set</summary>
12143         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12144         public bool HasSubGroup {
12145           get { return subGroup_ != null; }
12146         }
12147         /// <summary>Clears the value of the subgroup field</summary>
12148         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSubGroup()12149         public void ClearSubGroup() {
12150           subGroup_ = null;
12151         }
12152 
12153         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)12154         public override bool Equals(object other) {
12155           return Equals(other as SubMessage);
12156         }
12157 
12158         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(SubMessage other)12159         public bool Equals(SubMessage other) {
12160           if (ReferenceEquals(other, null)) {
12161             return false;
12162           }
12163           if (ReferenceEquals(other, this)) {
12164             return true;
12165           }
12166           if (!object.Equals(SubGroup, other.SubGroup)) return false;
12167           return Equals(_unknownFields, other._unknownFields);
12168         }
12169 
12170         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()12171         public override int GetHashCode() {
12172           int hash = 1;
12173           if (HasSubGroup) hash ^= SubGroup.GetHashCode();
12174           if (_unknownFields != null) {
12175             hash ^= _unknownFields.GetHashCode();
12176           }
12177           return hash;
12178         }
12179 
12180         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()12181         public override string ToString() {
12182           return pb::JsonFormatter.ToDiagnosticString(this);
12183         }
12184 
12185         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)12186         public void WriteTo(pb::CodedOutputStream output) {
12187         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12188           output.WriteRawMessage(this);
12189         #else
12190           if (HasSubGroup) {
12191             output.WriteRawTag(11);
12192             output.WriteGroup(SubGroup);
12193             output.WriteRawTag(12);
12194           }
12195           if (_unknownFields != null) {
12196             _unknownFields.WriteTo(output);
12197           }
12198         #endif
12199         }
12200 
12201         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12202         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)12203         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
12204           if (HasSubGroup) {
12205             output.WriteRawTag(11);
12206             output.WriteGroup(SubGroup);
12207             output.WriteRawTag(12);
12208           }
12209           if (_unknownFields != null) {
12210             _unknownFields.WriteTo(ref output);
12211           }
12212         }
12213         #endif
12214 
12215         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()12216         public int CalculateSize() {
12217           int size = 0;
12218           if (HasSubGroup) {
12219             size += 2 + pb::CodedOutputStream.ComputeGroupSize(SubGroup);
12220           }
12221           if (_unknownFields != null) {
12222             size += _unknownFields.CalculateSize();
12223           }
12224           return size;
12225         }
12226 
12227         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(SubMessage other)12228         public void MergeFrom(SubMessage other) {
12229           if (other == null) {
12230             return;
12231           }
12232           if (other.HasSubGroup) {
12233             if (!HasSubGroup) {
12234               SubGroup = new global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup();
12235             }
12236             SubGroup.MergeFrom(other.SubGroup);
12237           }
12238           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
12239         }
12240 
12241         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)12242         public void MergeFrom(pb::CodedInputStream input) {
12243         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12244           input.ReadRawMessage(this);
12245         #else
12246           uint tag;
12247           while ((tag = input.ReadTag()) != 0) {
12248             switch(tag) {
12249               default:
12250                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
12251                 break;
12252               case 11: {
12253                 if (!HasSubGroup) {
12254                   SubGroup = new global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup();
12255                 }
12256                 input.ReadGroup(SubGroup);
12257                 break;
12258               }
12259             }
12260           }
12261         #endif
12262         }
12263 
12264         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12265         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)12266         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
12267           uint tag;
12268           while ((tag = input.ReadTag()) != 0) {
12269             switch(tag) {
12270               default:
12271                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
12272                 break;
12273               case 11: {
12274                 if (!HasSubGroup) {
12275                   SubGroup = new global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Types.SubGroup();
12276                 }
12277                 input.ReadGroup(SubGroup);
12278                 break;
12279               }
12280             }
12281           }
12282         }
12283         #endif
12284 
12285         #region Nested types
12286         /// <summary>Container for nested types declared in the SubMessage message type.</summary>
12287         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12288         public static partial class Types {
12289           public sealed partial class SubGroup : pb::IMessage<SubGroup>
12290           #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12291               , pb::IBufferMessage
12292           #endif
12293           {
12294             private static readonly pb::MessageParser<SubGroup> _parser = new pb::MessageParser<SubGroup>(() => new SubGroup());
12295             private pb::UnknownFieldSet _unknownFields;
12296             private int _hasBits0;
12297             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12298             public static pb::MessageParser<SubGroup> Parser { get { return _parser; } }
12299 
12300             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12301             public static pbr::MessageDescriptor Descriptor {
12302               get { return global::Google.Protobuf.TestProtos.Proto2.TestIsInitialized.Types.SubMessage.Descriptor.NestedTypes[0]; }
12303             }
12304 
12305             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12306             pbr::MessageDescriptor pb::IMessage.Descriptor {
12307               get { return Descriptor; }
12308             }
12309 
12310             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubGroup()12311             public SubGroup() {
12312               OnConstruction();
12313             }
12314 
OnConstruction()12315             partial void OnConstruction();
12316 
12317             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SubGroup(SubGroup other)12318             public SubGroup(SubGroup other) : this() {
12319               _hasBits0 = other._hasBits0;
12320               i_ = other.i_;
12321               _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
12322             }
12323 
12324             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()12325             public SubGroup Clone() {
12326               return new SubGroup(this);
12327             }
12328 
12329             /// <summary>Field number for the "i" field.</summary>
12330             public const int IFieldNumber = 2;
12331             private readonly static int IDefaultValue = 0;
12332 
12333             private int i_;
12334             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12335             public int I {
12336               get { if ((_hasBits0 & 1) != 0) { return i_; } else { return IDefaultValue; } }
12337               set {
12338                 _hasBits0 |= 1;
12339                 i_ = value;
12340               }
12341             }
12342             /// <summary>Gets whether the "i" field is set</summary>
12343             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12344             public bool HasI {
12345               get { return (_hasBits0 & 1) != 0; }
12346             }
12347             /// <summary>Clears the value of the "i" field</summary>
12348             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearI()12349             public void ClearI() {
12350               _hasBits0 &= ~1;
12351             }
12352 
12353             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)12354             public override bool Equals(object other) {
12355               return Equals(other as SubGroup);
12356             }
12357 
12358             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(SubGroup other)12359             public bool Equals(SubGroup other) {
12360               if (ReferenceEquals(other, null)) {
12361                 return false;
12362               }
12363               if (ReferenceEquals(other, this)) {
12364                 return true;
12365               }
12366               if (I != other.I) return false;
12367               return Equals(_unknownFields, other._unknownFields);
12368             }
12369 
12370             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()12371             public override int GetHashCode() {
12372               int hash = 1;
12373               if (HasI) hash ^= I.GetHashCode();
12374               if (_unknownFields != null) {
12375                 hash ^= _unknownFields.GetHashCode();
12376               }
12377               return hash;
12378             }
12379 
12380             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()12381             public override string ToString() {
12382               return pb::JsonFormatter.ToDiagnosticString(this);
12383             }
12384 
12385             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)12386             public void WriteTo(pb::CodedOutputStream output) {
12387             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12388               output.WriteRawMessage(this);
12389             #else
12390               if (HasI) {
12391                 output.WriteRawTag(16);
12392                 output.WriteInt32(I);
12393               }
12394               if (_unknownFields != null) {
12395                 _unknownFields.WriteTo(output);
12396               }
12397             #endif
12398             }
12399 
12400             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12401             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)12402             void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
12403               if (HasI) {
12404                 output.WriteRawTag(16);
12405                 output.WriteInt32(I);
12406               }
12407               if (_unknownFields != null) {
12408                 _unknownFields.WriteTo(ref output);
12409               }
12410             }
12411             #endif
12412 
12413             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()12414             public int CalculateSize() {
12415               int size = 0;
12416               if (HasI) {
12417                 size += 1 + pb::CodedOutputStream.ComputeInt32Size(I);
12418               }
12419               if (_unknownFields != null) {
12420                 size += _unknownFields.CalculateSize();
12421               }
12422               return size;
12423             }
12424 
12425             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(SubGroup other)12426             public void MergeFrom(SubGroup other) {
12427               if (other == null) {
12428                 return;
12429               }
12430               if (other.HasI) {
12431                 I = other.I;
12432               }
12433               _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
12434             }
12435 
12436             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)12437             public void MergeFrom(pb::CodedInputStream input) {
12438             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12439               input.ReadRawMessage(this);
12440             #else
12441               uint tag;
12442               while ((tag = input.ReadTag()) != 0) {
12443                 switch(tag) {
12444                   case 12:
12445                     return;
12446                   default:
12447                     _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
12448                     break;
12449                   case 16: {
12450                     I = input.ReadInt32();
12451                     break;
12452                   }
12453                 }
12454               }
12455             #endif
12456             }
12457 
12458             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12459             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)12460             void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
12461               uint tag;
12462               while ((tag = input.ReadTag()) != 0) {
12463                 switch(tag) {
12464                   case 12:
12465                     return;
12466                   default:
12467                     _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
12468                     break;
12469                   case 16: {
12470                     I = input.ReadInt32();
12471                     break;
12472                   }
12473                 }
12474               }
12475             }
12476             #endif
12477 
12478           }
12479 
12480         }
12481         #endregion
12482 
12483       }
12484 
12485     }
12486     #endregion
12487 
12488   }
12489 
12490   /// <summary>
12491   /// Test that groups have disjoint field numbers from their siblings and
12492   /// parents.  This is NOT possible in proto1; only google.protobuf.  When attempting
12493   /// to compile with proto1, this will emit an error; so we only include it
12494   /// in protobuf_unittest_proto.
12495   /// </summary>
12496   public sealed partial class TestDupFieldNumber : pb::IMessage<TestDupFieldNumber>
12497   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12498       , pb::IBufferMessage
12499   #endif
12500   {
12501     private static readonly pb::MessageParser<TestDupFieldNumber> _parser = new pb::MessageParser<TestDupFieldNumber>(() => new TestDupFieldNumber());
12502     private pb::UnknownFieldSet _unknownFields;
12503     private int _hasBits0;
12504     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12505     public static pb::MessageParser<TestDupFieldNumber> Parser { get { return _parser; } }
12506 
12507     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12508     public static pbr::MessageDescriptor Descriptor {
12509       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[24]; }
12510     }
12511 
12512     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12513     pbr::MessageDescriptor pb::IMessage.Descriptor {
12514       get { return Descriptor; }
12515     }
12516 
12517     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDupFieldNumber()12518     public TestDupFieldNumber() {
12519       OnConstruction();
12520     }
12521 
OnConstruction()12522     partial void OnConstruction();
12523 
12524     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDupFieldNumber(TestDupFieldNumber other)12525     public TestDupFieldNumber(TestDupFieldNumber other) : this() {
12526       _hasBits0 = other._hasBits0;
12527       a_ = other.a_;
12528       foo_ = other.HasFoo ? other.foo_.Clone() : null;
12529       bar_ = other.HasBar ? other.bar_.Clone() : null;
12530       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
12531     }
12532 
12533     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()12534     public TestDupFieldNumber Clone() {
12535       return new TestDupFieldNumber(this);
12536     }
12537 
12538     /// <summary>Field number for the "a" field.</summary>
12539     public const int AFieldNumber = 1;
12540     private readonly static int ADefaultValue = 0;
12541 
12542     private int a_;
12543     /// <summary>
12544     /// NO_PROTO1
12545     /// </summary>
12546     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12547     public int A {
12548       get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
12549       set {
12550         _hasBits0 |= 1;
12551         a_ = value;
12552       }
12553     }
12554     /// <summary>Gets whether the "a" field is set</summary>
12555     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12556     public bool HasA {
12557       get { return (_hasBits0 & 1) != 0; }
12558     }
12559     /// <summary>Clears the value of the "a" field</summary>
12560     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()12561     public void ClearA() {
12562       _hasBits0 &= ~1;
12563     }
12564 
12565     /// <summary>Field number for the "foo" field.</summary>
12566     public const int FooFieldNumber = 2;
12567     private global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo foo_;
12568     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12569     public global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo Foo {
12570       get { return foo_; }
12571       set {
12572         foo_ = value;
12573       }
12574     }
12575     /// <summary>Gets whether the foo field is set</summary>
12576     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12577     public bool HasFoo {
12578       get { return foo_ != null; }
12579     }
12580     /// <summary>Clears the value of the foo field</summary>
12581     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFoo()12582     public void ClearFoo() {
12583       foo_ = null;
12584     }
12585 
12586     /// <summary>Field number for the "bar" field.</summary>
12587     public const int BarFieldNumber = 3;
12588     private global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar bar_;
12589     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12590     public global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar Bar {
12591       get { return bar_; }
12592       set {
12593         bar_ = value;
12594       }
12595     }
12596     /// <summary>Gets whether the bar field is set</summary>
12597     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12598     public bool HasBar {
12599       get { return bar_ != null; }
12600     }
12601     /// <summary>Clears the value of the bar field</summary>
12602     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBar()12603     public void ClearBar() {
12604       bar_ = null;
12605     }
12606 
12607     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)12608     public override bool Equals(object other) {
12609       return Equals(other as TestDupFieldNumber);
12610     }
12611 
12612     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestDupFieldNumber other)12613     public bool Equals(TestDupFieldNumber other) {
12614       if (ReferenceEquals(other, null)) {
12615         return false;
12616       }
12617       if (ReferenceEquals(other, this)) {
12618         return true;
12619       }
12620       if (A != other.A) return false;
12621       if (!object.Equals(Foo, other.Foo)) return false;
12622       if (!object.Equals(Bar, other.Bar)) return false;
12623       return Equals(_unknownFields, other._unknownFields);
12624     }
12625 
12626     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()12627     public override int GetHashCode() {
12628       int hash = 1;
12629       if (HasA) hash ^= A.GetHashCode();
12630       if (HasFoo) hash ^= Foo.GetHashCode();
12631       if (HasBar) hash ^= Bar.GetHashCode();
12632       if (_unknownFields != null) {
12633         hash ^= _unknownFields.GetHashCode();
12634       }
12635       return hash;
12636     }
12637 
12638     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()12639     public override string ToString() {
12640       return pb::JsonFormatter.ToDiagnosticString(this);
12641     }
12642 
12643     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)12644     public void WriteTo(pb::CodedOutputStream output) {
12645     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12646       output.WriteRawMessage(this);
12647     #else
12648       if (HasA) {
12649         output.WriteRawTag(8);
12650         output.WriteInt32(A);
12651       }
12652       if (HasFoo) {
12653         output.WriteRawTag(19);
12654         output.WriteGroup(Foo);
12655         output.WriteRawTag(20);
12656       }
12657       if (HasBar) {
12658         output.WriteRawTag(27);
12659         output.WriteGroup(Bar);
12660         output.WriteRawTag(28);
12661       }
12662       if (_unknownFields != null) {
12663         _unknownFields.WriteTo(output);
12664       }
12665     #endif
12666     }
12667 
12668     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12669     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)12670     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
12671       if (HasA) {
12672         output.WriteRawTag(8);
12673         output.WriteInt32(A);
12674       }
12675       if (HasFoo) {
12676         output.WriteRawTag(19);
12677         output.WriteGroup(Foo);
12678         output.WriteRawTag(20);
12679       }
12680       if (HasBar) {
12681         output.WriteRawTag(27);
12682         output.WriteGroup(Bar);
12683         output.WriteRawTag(28);
12684       }
12685       if (_unknownFields != null) {
12686         _unknownFields.WriteTo(ref output);
12687       }
12688     }
12689     #endif
12690 
12691     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()12692     public int CalculateSize() {
12693       int size = 0;
12694       if (HasA) {
12695         size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
12696       }
12697       if (HasFoo) {
12698         size += 2 + pb::CodedOutputStream.ComputeGroupSize(Foo);
12699       }
12700       if (HasBar) {
12701         size += 2 + pb::CodedOutputStream.ComputeGroupSize(Bar);
12702       }
12703       if (_unknownFields != null) {
12704         size += _unknownFields.CalculateSize();
12705       }
12706       return size;
12707     }
12708 
12709     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestDupFieldNumber other)12710     public void MergeFrom(TestDupFieldNumber other) {
12711       if (other == null) {
12712         return;
12713       }
12714       if (other.HasA) {
12715         A = other.A;
12716       }
12717       if (other.HasFoo) {
12718         if (!HasFoo) {
12719           Foo = new global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo();
12720         }
12721         Foo.MergeFrom(other.Foo);
12722       }
12723       if (other.HasBar) {
12724         if (!HasBar) {
12725           Bar = new global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar();
12726         }
12727         Bar.MergeFrom(other.Bar);
12728       }
12729       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
12730     }
12731 
12732     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)12733     public void MergeFrom(pb::CodedInputStream input) {
12734     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12735       input.ReadRawMessage(this);
12736     #else
12737       uint tag;
12738       while ((tag = input.ReadTag()) != 0) {
12739         switch(tag) {
12740           default:
12741             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
12742             break;
12743           case 8: {
12744             A = input.ReadInt32();
12745             break;
12746           }
12747           case 19: {
12748             if (!HasFoo) {
12749               Foo = new global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo();
12750             }
12751             input.ReadGroup(Foo);
12752             break;
12753           }
12754           case 27: {
12755             if (!HasBar) {
12756               Bar = new global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar();
12757             }
12758             input.ReadGroup(Bar);
12759             break;
12760           }
12761         }
12762       }
12763     #endif
12764     }
12765 
12766     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12767     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)12768     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
12769       uint tag;
12770       while ((tag = input.ReadTag()) != 0) {
12771         switch(tag) {
12772           default:
12773             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
12774             break;
12775           case 8: {
12776             A = input.ReadInt32();
12777             break;
12778           }
12779           case 19: {
12780             if (!HasFoo) {
12781               Foo = new global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Foo();
12782             }
12783             input.ReadGroup(Foo);
12784             break;
12785           }
12786           case 27: {
12787             if (!HasBar) {
12788               Bar = new global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Types.Bar();
12789             }
12790             input.ReadGroup(Bar);
12791             break;
12792           }
12793         }
12794       }
12795     }
12796     #endif
12797 
12798     #region Nested types
12799     /// <summary>Container for nested types declared in the TestDupFieldNumber message type.</summary>
12800     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12801     public static partial class Types {
12802       public sealed partial class Foo : pb::IMessage<Foo>
12803       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12804           , pb::IBufferMessage
12805       #endif
12806       {
12807         private static readonly pb::MessageParser<Foo> _parser = new pb::MessageParser<Foo>(() => new Foo());
12808         private pb::UnknownFieldSet _unknownFields;
12809         private int _hasBits0;
12810         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12811         public static pb::MessageParser<Foo> Parser { get { return _parser; } }
12812 
12813         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12814         public static pbr::MessageDescriptor Descriptor {
12815           get { return global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Descriptor.NestedTypes[0]; }
12816         }
12817 
12818         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12819         pbr::MessageDescriptor pb::IMessage.Descriptor {
12820           get { return Descriptor; }
12821         }
12822 
12823         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Foo()12824         public Foo() {
12825           OnConstruction();
12826         }
12827 
OnConstruction()12828         partial void OnConstruction();
12829 
12830         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Foo(Foo other)12831         public Foo(Foo other) : this() {
12832           _hasBits0 = other._hasBits0;
12833           a_ = other.a_;
12834           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
12835         }
12836 
12837         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()12838         public Foo Clone() {
12839           return new Foo(this);
12840         }
12841 
12842         /// <summary>Field number for the "a" field.</summary>
12843         public const int AFieldNumber = 1;
12844         private readonly static int ADefaultValue = 0;
12845 
12846         private int a_;
12847         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12848         public int A {
12849           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
12850           set {
12851             _hasBits0 |= 1;
12852             a_ = value;
12853           }
12854         }
12855         /// <summary>Gets whether the "a" field is set</summary>
12856         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12857         public bool HasA {
12858           get { return (_hasBits0 & 1) != 0; }
12859         }
12860         /// <summary>Clears the value of the "a" field</summary>
12861         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()12862         public void ClearA() {
12863           _hasBits0 &= ~1;
12864         }
12865 
12866         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)12867         public override bool Equals(object other) {
12868           return Equals(other as Foo);
12869         }
12870 
12871         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Foo other)12872         public bool Equals(Foo other) {
12873           if (ReferenceEquals(other, null)) {
12874             return false;
12875           }
12876           if (ReferenceEquals(other, this)) {
12877             return true;
12878           }
12879           if (A != other.A) return false;
12880           return Equals(_unknownFields, other._unknownFields);
12881         }
12882 
12883         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()12884         public override int GetHashCode() {
12885           int hash = 1;
12886           if (HasA) hash ^= A.GetHashCode();
12887           if (_unknownFields != null) {
12888             hash ^= _unknownFields.GetHashCode();
12889           }
12890           return hash;
12891         }
12892 
12893         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()12894         public override string ToString() {
12895           return pb::JsonFormatter.ToDiagnosticString(this);
12896         }
12897 
12898         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)12899         public void WriteTo(pb::CodedOutputStream output) {
12900         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12901           output.WriteRawMessage(this);
12902         #else
12903           if (HasA) {
12904             output.WriteRawTag(8);
12905             output.WriteInt32(A);
12906           }
12907           if (_unknownFields != null) {
12908             _unknownFields.WriteTo(output);
12909           }
12910         #endif
12911         }
12912 
12913         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12914         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)12915         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
12916           if (HasA) {
12917             output.WriteRawTag(8);
12918             output.WriteInt32(A);
12919           }
12920           if (_unknownFields != null) {
12921             _unknownFields.WriteTo(ref output);
12922           }
12923         }
12924         #endif
12925 
12926         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()12927         public int CalculateSize() {
12928           int size = 0;
12929           if (HasA) {
12930             size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
12931           }
12932           if (_unknownFields != null) {
12933             size += _unknownFields.CalculateSize();
12934           }
12935           return size;
12936         }
12937 
12938         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Foo other)12939         public void MergeFrom(Foo other) {
12940           if (other == null) {
12941             return;
12942           }
12943           if (other.HasA) {
12944             A = other.A;
12945           }
12946           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
12947         }
12948 
12949         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)12950         public void MergeFrom(pb::CodedInputStream input) {
12951         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12952           input.ReadRawMessage(this);
12953         #else
12954           uint tag;
12955           while ((tag = input.ReadTag()) != 0) {
12956             switch(tag) {
12957               case 20:
12958                 return;
12959               default:
12960                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
12961                 break;
12962               case 8: {
12963                 A = input.ReadInt32();
12964                 break;
12965               }
12966             }
12967           }
12968         #endif
12969         }
12970 
12971         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12972         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)12973         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
12974           uint tag;
12975           while ((tag = input.ReadTag()) != 0) {
12976             switch(tag) {
12977               case 20:
12978                 return;
12979               default:
12980                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
12981                 break;
12982               case 8: {
12983                 A = input.ReadInt32();
12984                 break;
12985               }
12986             }
12987           }
12988         }
12989         #endif
12990 
12991       }
12992 
12993       public sealed partial class Bar : pb::IMessage<Bar>
12994       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12995           , pb::IBufferMessage
12996       #endif
12997       {
12998         private static readonly pb::MessageParser<Bar> _parser = new pb::MessageParser<Bar>(() => new Bar());
12999         private pb::UnknownFieldSet _unknownFields;
13000         private int _hasBits0;
13001         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13002         public static pb::MessageParser<Bar> Parser { get { return _parser; } }
13003 
13004         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13005         public static pbr::MessageDescriptor Descriptor {
13006           get { return global::Google.Protobuf.TestProtos.Proto2.TestDupFieldNumber.Descriptor.NestedTypes[1]; }
13007         }
13008 
13009         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13010         pbr::MessageDescriptor pb::IMessage.Descriptor {
13011           get { return Descriptor; }
13012         }
13013 
13014         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Bar()13015         public Bar() {
13016           OnConstruction();
13017         }
13018 
OnConstruction()13019         partial void OnConstruction();
13020 
13021         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Bar(Bar other)13022         public Bar(Bar other) : this() {
13023           _hasBits0 = other._hasBits0;
13024           a_ = other.a_;
13025           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
13026         }
13027 
13028         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()13029         public Bar Clone() {
13030           return new Bar(this);
13031         }
13032 
13033         /// <summary>Field number for the "a" field.</summary>
13034         public const int AFieldNumber = 1;
13035         private readonly static int ADefaultValue = 0;
13036 
13037         private int a_;
13038         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13039         public int A {
13040           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
13041           set {
13042             _hasBits0 |= 1;
13043             a_ = value;
13044           }
13045         }
13046         /// <summary>Gets whether the "a" field is set</summary>
13047         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13048         public bool HasA {
13049           get { return (_hasBits0 & 1) != 0; }
13050         }
13051         /// <summary>Clears the value of the "a" field</summary>
13052         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()13053         public void ClearA() {
13054           _hasBits0 &= ~1;
13055         }
13056 
13057         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)13058         public override bool Equals(object other) {
13059           return Equals(other as Bar);
13060         }
13061 
13062         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Bar other)13063         public bool Equals(Bar other) {
13064           if (ReferenceEquals(other, null)) {
13065             return false;
13066           }
13067           if (ReferenceEquals(other, this)) {
13068             return true;
13069           }
13070           if (A != other.A) return false;
13071           return Equals(_unknownFields, other._unknownFields);
13072         }
13073 
13074         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()13075         public override int GetHashCode() {
13076           int hash = 1;
13077           if (HasA) hash ^= A.GetHashCode();
13078           if (_unknownFields != null) {
13079             hash ^= _unknownFields.GetHashCode();
13080           }
13081           return hash;
13082         }
13083 
13084         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()13085         public override string ToString() {
13086           return pb::JsonFormatter.ToDiagnosticString(this);
13087         }
13088 
13089         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)13090         public void WriteTo(pb::CodedOutputStream output) {
13091         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13092           output.WriteRawMessage(this);
13093         #else
13094           if (HasA) {
13095             output.WriteRawTag(8);
13096             output.WriteInt32(A);
13097           }
13098           if (_unknownFields != null) {
13099             _unknownFields.WriteTo(output);
13100           }
13101         #endif
13102         }
13103 
13104         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13105         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)13106         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
13107           if (HasA) {
13108             output.WriteRawTag(8);
13109             output.WriteInt32(A);
13110           }
13111           if (_unknownFields != null) {
13112             _unknownFields.WriteTo(ref output);
13113           }
13114         }
13115         #endif
13116 
13117         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()13118         public int CalculateSize() {
13119           int size = 0;
13120           if (HasA) {
13121             size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
13122           }
13123           if (_unknownFields != null) {
13124             size += _unknownFields.CalculateSize();
13125           }
13126           return size;
13127         }
13128 
13129         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Bar other)13130         public void MergeFrom(Bar other) {
13131           if (other == null) {
13132             return;
13133           }
13134           if (other.HasA) {
13135             A = other.A;
13136           }
13137           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13138         }
13139 
13140         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)13141         public void MergeFrom(pb::CodedInputStream input) {
13142         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13143           input.ReadRawMessage(this);
13144         #else
13145           uint tag;
13146           while ((tag = input.ReadTag()) != 0) {
13147             switch(tag) {
13148               case 28:
13149                 return;
13150               default:
13151                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13152                 break;
13153               case 8: {
13154                 A = input.ReadInt32();
13155                 break;
13156               }
13157             }
13158           }
13159         #endif
13160         }
13161 
13162         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13163         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)13164         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
13165           uint tag;
13166           while ((tag = input.ReadTag()) != 0) {
13167             switch(tag) {
13168               case 28:
13169                 return;
13170               default:
13171                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
13172                 break;
13173               case 8: {
13174                 A = input.ReadInt32();
13175                 break;
13176               }
13177             }
13178           }
13179         }
13180         #endif
13181 
13182       }
13183 
13184     }
13185     #endregion
13186 
13187   }
13188 
13189   /// <summary>
13190   /// Additional messages for testing lazy fields.
13191   /// </summary>
13192   public sealed partial class TestEagerMessage : pb::IMessage<TestEagerMessage>
13193   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13194       , pb::IBufferMessage
13195   #endif
13196   {
13197     private static readonly pb::MessageParser<TestEagerMessage> _parser = new pb::MessageParser<TestEagerMessage>(() => new TestEagerMessage());
13198     private pb::UnknownFieldSet _unknownFields;
13199     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13200     public static pb::MessageParser<TestEagerMessage> Parser { get { return _parser; } }
13201 
13202     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13203     public static pbr::MessageDescriptor Descriptor {
13204       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[25]; }
13205     }
13206 
13207     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13208     pbr::MessageDescriptor pb::IMessage.Descriptor {
13209       get { return Descriptor; }
13210     }
13211 
13212     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestEagerMessage()13213     public TestEagerMessage() {
13214       OnConstruction();
13215     }
13216 
OnConstruction()13217     partial void OnConstruction();
13218 
13219     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestEagerMessage(TestEagerMessage other)13220     public TestEagerMessage(TestEagerMessage other) : this() {
13221       subMessage_ = other.subMessage_ != null ? other.subMessage_.Clone() : null;
13222       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
13223     }
13224 
13225     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()13226     public TestEagerMessage Clone() {
13227       return new TestEagerMessage(this);
13228     }
13229 
13230     /// <summary>Field number for the "sub_message" field.</summary>
13231     public const int SubMessageFieldNumber = 1;
13232     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes subMessage_;
13233     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13234     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes SubMessage {
13235       get { return subMessage_; }
13236       set {
13237         subMessage_ = value;
13238       }
13239     }
13240 
13241     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)13242     public override bool Equals(object other) {
13243       return Equals(other as TestEagerMessage);
13244     }
13245 
13246     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestEagerMessage other)13247     public bool Equals(TestEagerMessage other) {
13248       if (ReferenceEquals(other, null)) {
13249         return false;
13250       }
13251       if (ReferenceEquals(other, this)) {
13252         return true;
13253       }
13254       if (!object.Equals(SubMessage, other.SubMessage)) return false;
13255       return Equals(_unknownFields, other._unknownFields);
13256     }
13257 
13258     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()13259     public override int GetHashCode() {
13260       int hash = 1;
13261       if (subMessage_ != null) hash ^= SubMessage.GetHashCode();
13262       if (_unknownFields != null) {
13263         hash ^= _unknownFields.GetHashCode();
13264       }
13265       return hash;
13266     }
13267 
13268     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()13269     public override string ToString() {
13270       return pb::JsonFormatter.ToDiagnosticString(this);
13271     }
13272 
13273     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)13274     public void WriteTo(pb::CodedOutputStream output) {
13275     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13276       output.WriteRawMessage(this);
13277     #else
13278       if (subMessage_ != null) {
13279         output.WriteRawTag(10);
13280         output.WriteMessage(SubMessage);
13281       }
13282       if (_unknownFields != null) {
13283         _unknownFields.WriteTo(output);
13284       }
13285     #endif
13286     }
13287 
13288     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13289     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)13290     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
13291       if (subMessage_ != null) {
13292         output.WriteRawTag(10);
13293         output.WriteMessage(SubMessage);
13294       }
13295       if (_unknownFields != null) {
13296         _unknownFields.WriteTo(ref output);
13297       }
13298     }
13299     #endif
13300 
13301     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()13302     public int CalculateSize() {
13303       int size = 0;
13304       if (subMessage_ != null) {
13305         size += 1 + pb::CodedOutputStream.ComputeMessageSize(SubMessage);
13306       }
13307       if (_unknownFields != null) {
13308         size += _unknownFields.CalculateSize();
13309       }
13310       return size;
13311     }
13312 
13313     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestEagerMessage other)13314     public void MergeFrom(TestEagerMessage other) {
13315       if (other == null) {
13316         return;
13317       }
13318       if (other.subMessage_ != null) {
13319         if (subMessage_ == null) {
13320           SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
13321         }
13322         SubMessage.MergeFrom(other.SubMessage);
13323       }
13324       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13325     }
13326 
13327     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)13328     public void MergeFrom(pb::CodedInputStream input) {
13329     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13330       input.ReadRawMessage(this);
13331     #else
13332       uint tag;
13333       while ((tag = input.ReadTag()) != 0) {
13334         switch(tag) {
13335           default:
13336             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13337             break;
13338           case 10: {
13339             if (subMessage_ == null) {
13340               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
13341             }
13342             input.ReadMessage(SubMessage);
13343             break;
13344           }
13345         }
13346       }
13347     #endif
13348     }
13349 
13350     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13351     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)13352     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
13353       uint tag;
13354       while ((tag = input.ReadTag()) != 0) {
13355         switch(tag) {
13356           default:
13357             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
13358             break;
13359           case 10: {
13360             if (subMessage_ == null) {
13361               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
13362             }
13363             input.ReadMessage(SubMessage);
13364             break;
13365           }
13366         }
13367       }
13368     }
13369     #endif
13370 
13371   }
13372 
13373   public sealed partial class TestLazyMessage : pb::IMessage<TestLazyMessage>
13374   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13375       , pb::IBufferMessage
13376   #endif
13377   {
13378     private static readonly pb::MessageParser<TestLazyMessage> _parser = new pb::MessageParser<TestLazyMessage>(() => new TestLazyMessage());
13379     private pb::UnknownFieldSet _unknownFields;
13380     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13381     public static pb::MessageParser<TestLazyMessage> Parser { get { return _parser; } }
13382 
13383     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13384     public static pbr::MessageDescriptor Descriptor {
13385       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[26]; }
13386     }
13387 
13388     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13389     pbr::MessageDescriptor pb::IMessage.Descriptor {
13390       get { return Descriptor; }
13391     }
13392 
13393     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestLazyMessage()13394     public TestLazyMessage() {
13395       OnConstruction();
13396     }
13397 
OnConstruction()13398     partial void OnConstruction();
13399 
13400     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestLazyMessage(TestLazyMessage other)13401     public TestLazyMessage(TestLazyMessage other) : this() {
13402       subMessage_ = other.subMessage_ != null ? other.subMessage_.Clone() : null;
13403       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
13404     }
13405 
13406     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()13407     public TestLazyMessage Clone() {
13408       return new TestLazyMessage(this);
13409     }
13410 
13411     /// <summary>Field number for the "sub_message" field.</summary>
13412     public const int SubMessageFieldNumber = 1;
13413     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes subMessage_;
13414     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13415     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes SubMessage {
13416       get { return subMessage_; }
13417       set {
13418         subMessage_ = value;
13419       }
13420     }
13421 
13422     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)13423     public override bool Equals(object other) {
13424       return Equals(other as TestLazyMessage);
13425     }
13426 
13427     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestLazyMessage other)13428     public bool Equals(TestLazyMessage other) {
13429       if (ReferenceEquals(other, null)) {
13430         return false;
13431       }
13432       if (ReferenceEquals(other, this)) {
13433         return true;
13434       }
13435       if (!object.Equals(SubMessage, other.SubMessage)) return false;
13436       return Equals(_unknownFields, other._unknownFields);
13437     }
13438 
13439     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()13440     public override int GetHashCode() {
13441       int hash = 1;
13442       if (subMessage_ != null) hash ^= SubMessage.GetHashCode();
13443       if (_unknownFields != null) {
13444         hash ^= _unknownFields.GetHashCode();
13445       }
13446       return hash;
13447     }
13448 
13449     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()13450     public override string ToString() {
13451       return pb::JsonFormatter.ToDiagnosticString(this);
13452     }
13453 
13454     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)13455     public void WriteTo(pb::CodedOutputStream output) {
13456     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13457       output.WriteRawMessage(this);
13458     #else
13459       if (subMessage_ != null) {
13460         output.WriteRawTag(10);
13461         output.WriteMessage(SubMessage);
13462       }
13463       if (_unknownFields != null) {
13464         _unknownFields.WriteTo(output);
13465       }
13466     #endif
13467     }
13468 
13469     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13470     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)13471     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
13472       if (subMessage_ != null) {
13473         output.WriteRawTag(10);
13474         output.WriteMessage(SubMessage);
13475       }
13476       if (_unknownFields != null) {
13477         _unknownFields.WriteTo(ref output);
13478       }
13479     }
13480     #endif
13481 
13482     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()13483     public int CalculateSize() {
13484       int size = 0;
13485       if (subMessage_ != null) {
13486         size += 1 + pb::CodedOutputStream.ComputeMessageSize(SubMessage);
13487       }
13488       if (_unknownFields != null) {
13489         size += _unknownFields.CalculateSize();
13490       }
13491       return size;
13492     }
13493 
13494     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestLazyMessage other)13495     public void MergeFrom(TestLazyMessage other) {
13496       if (other == null) {
13497         return;
13498       }
13499       if (other.subMessage_ != null) {
13500         if (subMessage_ == null) {
13501           SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
13502         }
13503         SubMessage.MergeFrom(other.SubMessage);
13504       }
13505       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13506     }
13507 
13508     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)13509     public void MergeFrom(pb::CodedInputStream input) {
13510     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13511       input.ReadRawMessage(this);
13512     #else
13513       uint tag;
13514       while ((tag = input.ReadTag()) != 0) {
13515         switch(tag) {
13516           default:
13517             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13518             break;
13519           case 10: {
13520             if (subMessage_ == null) {
13521               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
13522             }
13523             input.ReadMessage(SubMessage);
13524             break;
13525           }
13526         }
13527       }
13528     #endif
13529     }
13530 
13531     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13532     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)13533     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
13534       uint tag;
13535       while ((tag = input.ReadTag()) != 0) {
13536         switch(tag) {
13537           default:
13538             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
13539             break;
13540           case 10: {
13541             if (subMessage_ == null) {
13542               SubMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
13543             }
13544             input.ReadMessage(SubMessage);
13545             break;
13546           }
13547         }
13548       }
13549     }
13550     #endif
13551 
13552   }
13553 
13554   /// <summary>
13555   /// Needed for a Python test.
13556   /// </summary>
13557   public sealed partial class TestNestedMessageHasBits : pb::IMessage<TestNestedMessageHasBits>
13558   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13559       , pb::IBufferMessage
13560   #endif
13561   {
13562     private static readonly pb::MessageParser<TestNestedMessageHasBits> _parser = new pb::MessageParser<TestNestedMessageHasBits>(() => new TestNestedMessageHasBits());
13563     private pb::UnknownFieldSet _unknownFields;
13564     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13565     public static pb::MessageParser<TestNestedMessageHasBits> Parser { get { return _parser; } }
13566 
13567     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13568     public static pbr::MessageDescriptor Descriptor {
13569       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[27]; }
13570     }
13571 
13572     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13573     pbr::MessageDescriptor pb::IMessage.Descriptor {
13574       get { return Descriptor; }
13575     }
13576 
13577     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestNestedMessageHasBits()13578     public TestNestedMessageHasBits() {
13579       OnConstruction();
13580     }
13581 
OnConstruction()13582     partial void OnConstruction();
13583 
13584     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestNestedMessageHasBits(TestNestedMessageHasBits other)13585     public TestNestedMessageHasBits(TestNestedMessageHasBits other) : this() {
13586       optionalNestedMessage_ = other.optionalNestedMessage_ != null ? other.optionalNestedMessage_.Clone() : null;
13587       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
13588     }
13589 
13590     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()13591     public TestNestedMessageHasBits Clone() {
13592       return new TestNestedMessageHasBits(this);
13593     }
13594 
13595     /// <summary>Field number for the "optional_nested_message" field.</summary>
13596     public const int OptionalNestedMessageFieldNumber = 1;
13597     private global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_;
13598     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13599     public global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
13600       get { return optionalNestedMessage_; }
13601       set {
13602         optionalNestedMessage_ = value;
13603       }
13604     }
13605 
13606     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)13607     public override bool Equals(object other) {
13608       return Equals(other as TestNestedMessageHasBits);
13609     }
13610 
13611     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestNestedMessageHasBits other)13612     public bool Equals(TestNestedMessageHasBits other) {
13613       if (ReferenceEquals(other, null)) {
13614         return false;
13615       }
13616       if (ReferenceEquals(other, this)) {
13617         return true;
13618       }
13619       if (!object.Equals(OptionalNestedMessage, other.OptionalNestedMessage)) return false;
13620       return Equals(_unknownFields, other._unknownFields);
13621     }
13622 
13623     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()13624     public override int GetHashCode() {
13625       int hash = 1;
13626       if (optionalNestedMessage_ != null) hash ^= OptionalNestedMessage.GetHashCode();
13627       if (_unknownFields != null) {
13628         hash ^= _unknownFields.GetHashCode();
13629       }
13630       return hash;
13631     }
13632 
13633     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()13634     public override string ToString() {
13635       return pb::JsonFormatter.ToDiagnosticString(this);
13636     }
13637 
13638     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)13639     public void WriteTo(pb::CodedOutputStream output) {
13640     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13641       output.WriteRawMessage(this);
13642     #else
13643       if (optionalNestedMessage_ != null) {
13644         output.WriteRawTag(10);
13645         output.WriteMessage(OptionalNestedMessage);
13646       }
13647       if (_unknownFields != null) {
13648         _unknownFields.WriteTo(output);
13649       }
13650     #endif
13651     }
13652 
13653     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13654     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)13655     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
13656       if (optionalNestedMessage_ != null) {
13657         output.WriteRawTag(10);
13658         output.WriteMessage(OptionalNestedMessage);
13659       }
13660       if (_unknownFields != null) {
13661         _unknownFields.WriteTo(ref output);
13662       }
13663     }
13664     #endif
13665 
13666     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()13667     public int CalculateSize() {
13668       int size = 0;
13669       if (optionalNestedMessage_ != null) {
13670         size += 1 + pb::CodedOutputStream.ComputeMessageSize(OptionalNestedMessage);
13671       }
13672       if (_unknownFields != null) {
13673         size += _unknownFields.CalculateSize();
13674       }
13675       return size;
13676     }
13677 
13678     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestNestedMessageHasBits other)13679     public void MergeFrom(TestNestedMessageHasBits other) {
13680       if (other == null) {
13681         return;
13682       }
13683       if (other.optionalNestedMessage_ != null) {
13684         if (optionalNestedMessage_ == null) {
13685           OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage();
13686         }
13687         OptionalNestedMessage.MergeFrom(other.OptionalNestedMessage);
13688       }
13689       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13690     }
13691 
13692     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)13693     public void MergeFrom(pb::CodedInputStream input) {
13694     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13695       input.ReadRawMessage(this);
13696     #else
13697       uint tag;
13698       while ((tag = input.ReadTag()) != 0) {
13699         switch(tag) {
13700           default:
13701             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13702             break;
13703           case 10: {
13704             if (optionalNestedMessage_ == null) {
13705               OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage();
13706             }
13707             input.ReadMessage(OptionalNestedMessage);
13708             break;
13709           }
13710         }
13711       }
13712     #endif
13713     }
13714 
13715     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13716     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)13717     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
13718       uint tag;
13719       while ((tag = input.ReadTag()) != 0) {
13720         switch(tag) {
13721           default:
13722             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
13723             break;
13724           case 10: {
13725             if (optionalNestedMessage_ == null) {
13726               OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Types.NestedMessage();
13727             }
13728             input.ReadMessage(OptionalNestedMessage);
13729             break;
13730           }
13731         }
13732       }
13733     }
13734     #endif
13735 
13736     #region Nested types
13737     /// <summary>Container for nested types declared in the TestNestedMessageHasBits message type.</summary>
13738     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13739     public static partial class Types {
13740       public sealed partial class NestedMessage : pb::IMessage<NestedMessage>
13741       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13742           , pb::IBufferMessage
13743       #endif
13744       {
13745         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
13746         private pb::UnknownFieldSet _unknownFields;
13747         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13748         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
13749 
13750         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13751         public static pbr::MessageDescriptor Descriptor {
13752           get { return global::Google.Protobuf.TestProtos.Proto2.TestNestedMessageHasBits.Descriptor.NestedTypes[0]; }
13753         }
13754 
13755         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13756         pbr::MessageDescriptor pb::IMessage.Descriptor {
13757           get { return Descriptor; }
13758         }
13759 
13760         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage()13761         public NestedMessage() {
13762           OnConstruction();
13763         }
13764 
OnConstruction()13765         partial void OnConstruction();
13766 
13767         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage(NestedMessage other)13768         public NestedMessage(NestedMessage other) : this() {
13769           nestedmessageRepeatedInt32_ = other.nestedmessageRepeatedInt32_.Clone();
13770           nestedmessageRepeatedForeignmessage_ = other.nestedmessageRepeatedForeignmessage_.Clone();
13771           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
13772         }
13773 
13774         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()13775         public NestedMessage Clone() {
13776           return new NestedMessage(this);
13777         }
13778 
13779         /// <summary>Field number for the "nestedmessage_repeated_int32" field.</summary>
13780         public const int NestedmessageRepeatedInt32FieldNumber = 1;
13781         private static readonly pb::FieldCodec<int> _repeated_nestedmessageRepeatedInt32_codec
13782             = pb::FieldCodec.ForInt32(8);
13783         private readonly pbc::RepeatedField<int> nestedmessageRepeatedInt32_ = new pbc::RepeatedField<int>();
13784         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13785         public pbc::RepeatedField<int> NestedmessageRepeatedInt32 {
13786           get { return nestedmessageRepeatedInt32_; }
13787         }
13788 
13789         /// <summary>Field number for the "nestedmessage_repeated_foreignmessage" field.</summary>
13790         public const int NestedmessageRepeatedForeignmessageFieldNumber = 2;
13791         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> _repeated_nestedmessageRepeatedForeignmessage_codec
13792             = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage.Parser);
13793         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> nestedmessageRepeatedForeignmessage_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage>();
13794         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13795         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> NestedmessageRepeatedForeignmessage {
13796           get { return nestedmessageRepeatedForeignmessage_; }
13797         }
13798 
13799         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)13800         public override bool Equals(object other) {
13801           return Equals(other as NestedMessage);
13802         }
13803 
13804         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedMessage other)13805         public bool Equals(NestedMessage other) {
13806           if (ReferenceEquals(other, null)) {
13807             return false;
13808           }
13809           if (ReferenceEquals(other, this)) {
13810             return true;
13811           }
13812           if(!nestedmessageRepeatedInt32_.Equals(other.nestedmessageRepeatedInt32_)) return false;
13813           if(!nestedmessageRepeatedForeignmessage_.Equals(other.nestedmessageRepeatedForeignmessage_)) return false;
13814           return Equals(_unknownFields, other._unknownFields);
13815         }
13816 
13817         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()13818         public override int GetHashCode() {
13819           int hash = 1;
13820           hash ^= nestedmessageRepeatedInt32_.GetHashCode();
13821           hash ^= nestedmessageRepeatedForeignmessage_.GetHashCode();
13822           if (_unknownFields != null) {
13823             hash ^= _unknownFields.GetHashCode();
13824           }
13825           return hash;
13826         }
13827 
13828         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()13829         public override string ToString() {
13830           return pb::JsonFormatter.ToDiagnosticString(this);
13831         }
13832 
13833         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)13834         public void WriteTo(pb::CodedOutputStream output) {
13835         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13836           output.WriteRawMessage(this);
13837         #else
13838           nestedmessageRepeatedInt32_.WriteTo(output, _repeated_nestedmessageRepeatedInt32_codec);
13839           nestedmessageRepeatedForeignmessage_.WriteTo(output, _repeated_nestedmessageRepeatedForeignmessage_codec);
13840           if (_unknownFields != null) {
13841             _unknownFields.WriteTo(output);
13842           }
13843         #endif
13844         }
13845 
13846         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13847         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)13848         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
13849           nestedmessageRepeatedInt32_.WriteTo(ref output, _repeated_nestedmessageRepeatedInt32_codec);
13850           nestedmessageRepeatedForeignmessage_.WriteTo(ref output, _repeated_nestedmessageRepeatedForeignmessage_codec);
13851           if (_unknownFields != null) {
13852             _unknownFields.WriteTo(ref output);
13853           }
13854         }
13855         #endif
13856 
13857         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()13858         public int CalculateSize() {
13859           int size = 0;
13860           size += nestedmessageRepeatedInt32_.CalculateSize(_repeated_nestedmessageRepeatedInt32_codec);
13861           size += nestedmessageRepeatedForeignmessage_.CalculateSize(_repeated_nestedmessageRepeatedForeignmessage_codec);
13862           if (_unknownFields != null) {
13863             size += _unknownFields.CalculateSize();
13864           }
13865           return size;
13866         }
13867 
13868         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedMessage other)13869         public void MergeFrom(NestedMessage other) {
13870           if (other == null) {
13871             return;
13872           }
13873           nestedmessageRepeatedInt32_.Add(other.nestedmessageRepeatedInt32_);
13874           nestedmessageRepeatedForeignmessage_.Add(other.nestedmessageRepeatedForeignmessage_);
13875           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
13876         }
13877 
13878         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)13879         public void MergeFrom(pb::CodedInputStream input) {
13880         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13881           input.ReadRawMessage(this);
13882         #else
13883           uint tag;
13884           while ((tag = input.ReadTag()) != 0) {
13885             switch(tag) {
13886               default:
13887                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
13888                 break;
13889               case 10:
13890               case 8: {
13891                 nestedmessageRepeatedInt32_.AddEntriesFrom(input, _repeated_nestedmessageRepeatedInt32_codec);
13892                 break;
13893               }
13894               case 18: {
13895                 nestedmessageRepeatedForeignmessage_.AddEntriesFrom(input, _repeated_nestedmessageRepeatedForeignmessage_codec);
13896                 break;
13897               }
13898             }
13899           }
13900         #endif
13901         }
13902 
13903         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13904         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)13905         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
13906           uint tag;
13907           while ((tag = input.ReadTag()) != 0) {
13908             switch(tag) {
13909               default:
13910                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
13911                 break;
13912               case 10:
13913               case 8: {
13914                 nestedmessageRepeatedInt32_.AddEntriesFrom(ref input, _repeated_nestedmessageRepeatedInt32_codec);
13915                 break;
13916               }
13917               case 18: {
13918                 nestedmessageRepeatedForeignmessage_.AddEntriesFrom(ref input, _repeated_nestedmessageRepeatedForeignmessage_codec);
13919                 break;
13920               }
13921             }
13922           }
13923         }
13924         #endif
13925 
13926       }
13927 
13928     }
13929     #endregion
13930 
13931   }
13932 
13933   /// <summary>
13934   /// Test message with CamelCase field names.  This violates Protocol Buffer
13935   /// standard style.
13936   /// </summary>
13937   public sealed partial class TestCamelCaseFieldNames : pb::IMessage<TestCamelCaseFieldNames>
13938   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
13939       , pb::IBufferMessage
13940   #endif
13941   {
13942     private static readonly pb::MessageParser<TestCamelCaseFieldNames> _parser = new pb::MessageParser<TestCamelCaseFieldNames>(() => new TestCamelCaseFieldNames());
13943     private pb::UnknownFieldSet _unknownFields;
13944     private int _hasBits0;
13945     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13946     public static pb::MessageParser<TestCamelCaseFieldNames> Parser { get { return _parser; } }
13947 
13948     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13949     public static pbr::MessageDescriptor Descriptor {
13950       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[28]; }
13951     }
13952 
13953     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13954     pbr::MessageDescriptor pb::IMessage.Descriptor {
13955       get { return Descriptor; }
13956     }
13957 
13958     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestCamelCaseFieldNames()13959     public TestCamelCaseFieldNames() {
13960       OnConstruction();
13961     }
13962 
OnConstruction()13963     partial void OnConstruction();
13964 
13965     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestCamelCaseFieldNames(TestCamelCaseFieldNames other)13966     public TestCamelCaseFieldNames(TestCamelCaseFieldNames other) : this() {
13967       _hasBits0 = other._hasBits0;
13968       primitiveField_ = other.primitiveField_;
13969       stringField_ = other.stringField_;
13970       enumField_ = other.enumField_;
13971       messageField_ = other.messageField_ != null ? other.messageField_.Clone() : null;
13972       stringPieceField_ = other.stringPieceField_;
13973       cordField_ = other.cordField_;
13974       repeatedPrimitiveField_ = other.repeatedPrimitiveField_.Clone();
13975       repeatedStringField_ = other.repeatedStringField_.Clone();
13976       repeatedEnumField_ = other.repeatedEnumField_.Clone();
13977       repeatedMessageField_ = other.repeatedMessageField_.Clone();
13978       repeatedStringPieceField_ = other.repeatedStringPieceField_.Clone();
13979       repeatedCordField_ = other.repeatedCordField_.Clone();
13980       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
13981     }
13982 
13983     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()13984     public TestCamelCaseFieldNames Clone() {
13985       return new TestCamelCaseFieldNames(this);
13986     }
13987 
13988     /// <summary>Field number for the "PrimitiveField" field.</summary>
13989     public const int PrimitiveFieldFieldNumber = 1;
13990     private readonly static int PrimitiveFieldDefaultValue = 0;
13991 
13992     private int primitiveField_;
13993     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13994     public int PrimitiveField {
13995       get { if ((_hasBits0 & 1) != 0) { return primitiveField_; } else { return PrimitiveFieldDefaultValue; } }
13996       set {
13997         _hasBits0 |= 1;
13998         primitiveField_ = value;
13999       }
14000     }
14001     /// <summary>Gets whether the "PrimitiveField" field is set</summary>
14002     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14003     public bool HasPrimitiveField {
14004       get { return (_hasBits0 & 1) != 0; }
14005     }
14006     /// <summary>Clears the value of the "PrimitiveField" field</summary>
14007     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearPrimitiveField()14008     public void ClearPrimitiveField() {
14009       _hasBits0 &= ~1;
14010     }
14011 
14012     /// <summary>Field number for the "StringField" field.</summary>
14013     public const int StringFieldFieldNumber = 2;
14014     private readonly static string StringFieldDefaultValue = "";
14015 
14016     private string stringField_;
14017     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14018     public string StringField {
14019       get { return stringField_ ?? StringFieldDefaultValue; }
14020       set {
14021         stringField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
14022       }
14023     }
14024     /// <summary>Gets whether the "StringField" field is set</summary>
14025     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14026     public bool HasStringField {
14027       get { return stringField_ != null; }
14028     }
14029     /// <summary>Clears the value of the "StringField" field</summary>
14030     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearStringField()14031     public void ClearStringField() {
14032       stringField_ = null;
14033     }
14034 
14035     /// <summary>Field number for the "EnumField" field.</summary>
14036     public const int EnumFieldFieldNumber = 3;
14037     private readonly static global::Google.Protobuf.TestProtos.Proto2.ForeignEnum EnumFieldDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo;
14038 
14039     private global::Google.Protobuf.TestProtos.Proto2.ForeignEnum enumField_;
14040     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14041     public global::Google.Protobuf.TestProtos.Proto2.ForeignEnum EnumField {
14042       get { if ((_hasBits0 & 2) != 0) { return enumField_; } else { return EnumFieldDefaultValue; } }
14043       set {
14044         _hasBits0 |= 2;
14045         enumField_ = value;
14046       }
14047     }
14048     /// <summary>Gets whether the "EnumField" field is set</summary>
14049     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14050     public bool HasEnumField {
14051       get { return (_hasBits0 & 2) != 0; }
14052     }
14053     /// <summary>Clears the value of the "EnumField" field</summary>
14054     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearEnumField()14055     public void ClearEnumField() {
14056       _hasBits0 &= ~2;
14057     }
14058 
14059     /// <summary>Field number for the "MessageField" field.</summary>
14060     public const int MessageFieldFieldNumber = 4;
14061     private global::Google.Protobuf.TestProtos.Proto2.ForeignMessage messageField_;
14062     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14063     public global::Google.Protobuf.TestProtos.Proto2.ForeignMessage MessageField {
14064       get { return messageField_; }
14065       set {
14066         messageField_ = value;
14067       }
14068     }
14069 
14070     /// <summary>Field number for the "StringPieceField" field.</summary>
14071     public const int StringPieceFieldFieldNumber = 5;
14072     private readonly static string StringPieceFieldDefaultValue = "";
14073 
14074     private string stringPieceField_;
14075     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14076     public string StringPieceField {
14077       get { return stringPieceField_ ?? StringPieceFieldDefaultValue; }
14078       set {
14079         stringPieceField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
14080       }
14081     }
14082     /// <summary>Gets whether the "StringPieceField" field is set</summary>
14083     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14084     public bool HasStringPieceField {
14085       get { return stringPieceField_ != null; }
14086     }
14087     /// <summary>Clears the value of the "StringPieceField" field</summary>
14088     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearStringPieceField()14089     public void ClearStringPieceField() {
14090       stringPieceField_ = null;
14091     }
14092 
14093     /// <summary>Field number for the "CordField" field.</summary>
14094     public const int CordFieldFieldNumber = 6;
14095     private readonly static string CordFieldDefaultValue = "";
14096 
14097     private string cordField_;
14098     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14099     public string CordField {
14100       get { return cordField_ ?? CordFieldDefaultValue; }
14101       set {
14102         cordField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
14103       }
14104     }
14105     /// <summary>Gets whether the "CordField" field is set</summary>
14106     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14107     public bool HasCordField {
14108       get { return cordField_ != null; }
14109     }
14110     /// <summary>Clears the value of the "CordField" field</summary>
14111     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearCordField()14112     public void ClearCordField() {
14113       cordField_ = null;
14114     }
14115 
14116     /// <summary>Field number for the "RepeatedPrimitiveField" field.</summary>
14117     public const int RepeatedPrimitiveFieldFieldNumber = 7;
14118     private static readonly pb::FieldCodec<int> _repeated_repeatedPrimitiveField_codec
14119         = pb::FieldCodec.ForInt32(56);
14120     private readonly pbc::RepeatedField<int> repeatedPrimitiveField_ = new pbc::RepeatedField<int>();
14121     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14122     public pbc::RepeatedField<int> RepeatedPrimitiveField {
14123       get { return repeatedPrimitiveField_; }
14124     }
14125 
14126     /// <summary>Field number for the "RepeatedStringField" field.</summary>
14127     public const int RepeatedStringFieldFieldNumber = 8;
14128     private static readonly pb::FieldCodec<string> _repeated_repeatedStringField_codec
14129         = pb::FieldCodec.ForString(66);
14130     private readonly pbc::RepeatedField<string> repeatedStringField_ = new pbc::RepeatedField<string>();
14131     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14132     public pbc::RepeatedField<string> RepeatedStringField {
14133       get { return repeatedStringField_; }
14134     }
14135 
14136     /// <summary>Field number for the "RepeatedEnumField" field.</summary>
14137     public const int RepeatedEnumFieldFieldNumber = 9;
14138     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> _repeated_repeatedEnumField_codec
14139         = pb::FieldCodec.ForEnum(72, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x);
14140     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> repeatedEnumField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>();
14141     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14142     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> RepeatedEnumField {
14143       get { return repeatedEnumField_; }
14144     }
14145 
14146     /// <summary>Field number for the "RepeatedMessageField" field.</summary>
14147     public const int RepeatedMessageFieldFieldNumber = 10;
14148     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> _repeated_repeatedMessageField_codec
14149         = pb::FieldCodec.ForMessage(82, global::Google.Protobuf.TestProtos.Proto2.ForeignMessage.Parser);
14150     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> repeatedMessageField_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage>();
14151     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14152     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignMessage> RepeatedMessageField {
14153       get { return repeatedMessageField_; }
14154     }
14155 
14156     /// <summary>Field number for the "RepeatedStringPieceField" field.</summary>
14157     public const int RepeatedStringPieceFieldFieldNumber = 11;
14158     private static readonly pb::FieldCodec<string> _repeated_repeatedStringPieceField_codec
14159         = pb::FieldCodec.ForString(90);
14160     private readonly pbc::RepeatedField<string> repeatedStringPieceField_ = new pbc::RepeatedField<string>();
14161     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14162     public pbc::RepeatedField<string> RepeatedStringPieceField {
14163       get { return repeatedStringPieceField_; }
14164     }
14165 
14166     /// <summary>Field number for the "RepeatedCordField" field.</summary>
14167     public const int RepeatedCordFieldFieldNumber = 12;
14168     private static readonly pb::FieldCodec<string> _repeated_repeatedCordField_codec
14169         = pb::FieldCodec.ForString(98);
14170     private readonly pbc::RepeatedField<string> repeatedCordField_ = new pbc::RepeatedField<string>();
14171     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14172     public pbc::RepeatedField<string> RepeatedCordField {
14173       get { return repeatedCordField_; }
14174     }
14175 
14176     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)14177     public override bool Equals(object other) {
14178       return Equals(other as TestCamelCaseFieldNames);
14179     }
14180 
14181     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestCamelCaseFieldNames other)14182     public bool Equals(TestCamelCaseFieldNames other) {
14183       if (ReferenceEquals(other, null)) {
14184         return false;
14185       }
14186       if (ReferenceEquals(other, this)) {
14187         return true;
14188       }
14189       if (PrimitiveField != other.PrimitiveField) return false;
14190       if (StringField != other.StringField) return false;
14191       if (EnumField != other.EnumField) return false;
14192       if (!object.Equals(MessageField, other.MessageField)) return false;
14193       if (StringPieceField != other.StringPieceField) return false;
14194       if (CordField != other.CordField) return false;
14195       if(!repeatedPrimitiveField_.Equals(other.repeatedPrimitiveField_)) return false;
14196       if(!repeatedStringField_.Equals(other.repeatedStringField_)) return false;
14197       if(!repeatedEnumField_.Equals(other.repeatedEnumField_)) return false;
14198       if(!repeatedMessageField_.Equals(other.repeatedMessageField_)) return false;
14199       if(!repeatedStringPieceField_.Equals(other.repeatedStringPieceField_)) return false;
14200       if(!repeatedCordField_.Equals(other.repeatedCordField_)) return false;
14201       return Equals(_unknownFields, other._unknownFields);
14202     }
14203 
14204     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()14205     public override int GetHashCode() {
14206       int hash = 1;
14207       if (HasPrimitiveField) hash ^= PrimitiveField.GetHashCode();
14208       if (HasStringField) hash ^= StringField.GetHashCode();
14209       if (HasEnumField) hash ^= EnumField.GetHashCode();
14210       if (messageField_ != null) hash ^= MessageField.GetHashCode();
14211       if (HasStringPieceField) hash ^= StringPieceField.GetHashCode();
14212       if (HasCordField) hash ^= CordField.GetHashCode();
14213       hash ^= repeatedPrimitiveField_.GetHashCode();
14214       hash ^= repeatedStringField_.GetHashCode();
14215       hash ^= repeatedEnumField_.GetHashCode();
14216       hash ^= repeatedMessageField_.GetHashCode();
14217       hash ^= repeatedStringPieceField_.GetHashCode();
14218       hash ^= repeatedCordField_.GetHashCode();
14219       if (_unknownFields != null) {
14220         hash ^= _unknownFields.GetHashCode();
14221       }
14222       return hash;
14223     }
14224 
14225     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()14226     public override string ToString() {
14227       return pb::JsonFormatter.ToDiagnosticString(this);
14228     }
14229 
14230     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)14231     public void WriteTo(pb::CodedOutputStream output) {
14232     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14233       output.WriteRawMessage(this);
14234     #else
14235       if (HasPrimitiveField) {
14236         output.WriteRawTag(8);
14237         output.WriteInt32(PrimitiveField);
14238       }
14239       if (HasStringField) {
14240         output.WriteRawTag(18);
14241         output.WriteString(StringField);
14242       }
14243       if (HasEnumField) {
14244         output.WriteRawTag(24);
14245         output.WriteEnum((int) EnumField);
14246       }
14247       if (messageField_ != null) {
14248         output.WriteRawTag(34);
14249         output.WriteMessage(MessageField);
14250       }
14251       if (HasStringPieceField) {
14252         output.WriteRawTag(42);
14253         output.WriteString(StringPieceField);
14254       }
14255       if (HasCordField) {
14256         output.WriteRawTag(50);
14257         output.WriteString(CordField);
14258       }
14259       repeatedPrimitiveField_.WriteTo(output, _repeated_repeatedPrimitiveField_codec);
14260       repeatedStringField_.WriteTo(output, _repeated_repeatedStringField_codec);
14261       repeatedEnumField_.WriteTo(output, _repeated_repeatedEnumField_codec);
14262       repeatedMessageField_.WriteTo(output, _repeated_repeatedMessageField_codec);
14263       repeatedStringPieceField_.WriteTo(output, _repeated_repeatedStringPieceField_codec);
14264       repeatedCordField_.WriteTo(output, _repeated_repeatedCordField_codec);
14265       if (_unknownFields != null) {
14266         _unknownFields.WriteTo(output);
14267       }
14268     #endif
14269     }
14270 
14271     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14272     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)14273     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
14274       if (HasPrimitiveField) {
14275         output.WriteRawTag(8);
14276         output.WriteInt32(PrimitiveField);
14277       }
14278       if (HasStringField) {
14279         output.WriteRawTag(18);
14280         output.WriteString(StringField);
14281       }
14282       if (HasEnumField) {
14283         output.WriteRawTag(24);
14284         output.WriteEnum((int) EnumField);
14285       }
14286       if (messageField_ != null) {
14287         output.WriteRawTag(34);
14288         output.WriteMessage(MessageField);
14289       }
14290       if (HasStringPieceField) {
14291         output.WriteRawTag(42);
14292         output.WriteString(StringPieceField);
14293       }
14294       if (HasCordField) {
14295         output.WriteRawTag(50);
14296         output.WriteString(CordField);
14297       }
14298       repeatedPrimitiveField_.WriteTo(ref output, _repeated_repeatedPrimitiveField_codec);
14299       repeatedStringField_.WriteTo(ref output, _repeated_repeatedStringField_codec);
14300       repeatedEnumField_.WriteTo(ref output, _repeated_repeatedEnumField_codec);
14301       repeatedMessageField_.WriteTo(ref output, _repeated_repeatedMessageField_codec);
14302       repeatedStringPieceField_.WriteTo(ref output, _repeated_repeatedStringPieceField_codec);
14303       repeatedCordField_.WriteTo(ref output, _repeated_repeatedCordField_codec);
14304       if (_unknownFields != null) {
14305         _unknownFields.WriteTo(ref output);
14306       }
14307     }
14308     #endif
14309 
14310     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()14311     public int CalculateSize() {
14312       int size = 0;
14313       if (HasPrimitiveField) {
14314         size += 1 + pb::CodedOutputStream.ComputeInt32Size(PrimitiveField);
14315       }
14316       if (HasStringField) {
14317         size += 1 + pb::CodedOutputStream.ComputeStringSize(StringField);
14318       }
14319       if (HasEnumField) {
14320         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) EnumField);
14321       }
14322       if (messageField_ != null) {
14323         size += 1 + pb::CodedOutputStream.ComputeMessageSize(MessageField);
14324       }
14325       if (HasStringPieceField) {
14326         size += 1 + pb::CodedOutputStream.ComputeStringSize(StringPieceField);
14327       }
14328       if (HasCordField) {
14329         size += 1 + pb::CodedOutputStream.ComputeStringSize(CordField);
14330       }
14331       size += repeatedPrimitiveField_.CalculateSize(_repeated_repeatedPrimitiveField_codec);
14332       size += repeatedStringField_.CalculateSize(_repeated_repeatedStringField_codec);
14333       size += repeatedEnumField_.CalculateSize(_repeated_repeatedEnumField_codec);
14334       size += repeatedMessageField_.CalculateSize(_repeated_repeatedMessageField_codec);
14335       size += repeatedStringPieceField_.CalculateSize(_repeated_repeatedStringPieceField_codec);
14336       size += repeatedCordField_.CalculateSize(_repeated_repeatedCordField_codec);
14337       if (_unknownFields != null) {
14338         size += _unknownFields.CalculateSize();
14339       }
14340       return size;
14341     }
14342 
14343     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestCamelCaseFieldNames other)14344     public void MergeFrom(TestCamelCaseFieldNames other) {
14345       if (other == null) {
14346         return;
14347       }
14348       if (other.HasPrimitiveField) {
14349         PrimitiveField = other.PrimitiveField;
14350       }
14351       if (other.HasStringField) {
14352         StringField = other.StringField;
14353       }
14354       if (other.HasEnumField) {
14355         EnumField = other.EnumField;
14356       }
14357       if (other.messageField_ != null) {
14358         if (messageField_ == null) {
14359           MessageField = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
14360         }
14361         MessageField.MergeFrom(other.MessageField);
14362       }
14363       if (other.HasStringPieceField) {
14364         StringPieceField = other.StringPieceField;
14365       }
14366       if (other.HasCordField) {
14367         CordField = other.CordField;
14368       }
14369       repeatedPrimitiveField_.Add(other.repeatedPrimitiveField_);
14370       repeatedStringField_.Add(other.repeatedStringField_);
14371       repeatedEnumField_.Add(other.repeatedEnumField_);
14372       repeatedMessageField_.Add(other.repeatedMessageField_);
14373       repeatedStringPieceField_.Add(other.repeatedStringPieceField_);
14374       repeatedCordField_.Add(other.repeatedCordField_);
14375       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
14376     }
14377 
14378     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)14379     public void MergeFrom(pb::CodedInputStream input) {
14380     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14381       input.ReadRawMessage(this);
14382     #else
14383       uint tag;
14384       while ((tag = input.ReadTag()) != 0) {
14385         switch(tag) {
14386           default:
14387             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
14388             break;
14389           case 8: {
14390             PrimitiveField = input.ReadInt32();
14391             break;
14392           }
14393           case 18: {
14394             StringField = input.ReadString();
14395             break;
14396           }
14397           case 24: {
14398             EnumField = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
14399             break;
14400           }
14401           case 34: {
14402             if (messageField_ == null) {
14403               MessageField = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
14404             }
14405             input.ReadMessage(MessageField);
14406             break;
14407           }
14408           case 42: {
14409             StringPieceField = input.ReadString();
14410             break;
14411           }
14412           case 50: {
14413             CordField = input.ReadString();
14414             break;
14415           }
14416           case 58:
14417           case 56: {
14418             repeatedPrimitiveField_.AddEntriesFrom(input, _repeated_repeatedPrimitiveField_codec);
14419             break;
14420           }
14421           case 66: {
14422             repeatedStringField_.AddEntriesFrom(input, _repeated_repeatedStringField_codec);
14423             break;
14424           }
14425           case 74:
14426           case 72: {
14427             repeatedEnumField_.AddEntriesFrom(input, _repeated_repeatedEnumField_codec);
14428             break;
14429           }
14430           case 82: {
14431             repeatedMessageField_.AddEntriesFrom(input, _repeated_repeatedMessageField_codec);
14432             break;
14433           }
14434           case 90: {
14435             repeatedStringPieceField_.AddEntriesFrom(input, _repeated_repeatedStringPieceField_codec);
14436             break;
14437           }
14438           case 98: {
14439             repeatedCordField_.AddEntriesFrom(input, _repeated_repeatedCordField_codec);
14440             break;
14441           }
14442         }
14443       }
14444     #endif
14445     }
14446 
14447     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14448     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)14449     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
14450       uint tag;
14451       while ((tag = input.ReadTag()) != 0) {
14452         switch(tag) {
14453           default:
14454             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
14455             break;
14456           case 8: {
14457             PrimitiveField = input.ReadInt32();
14458             break;
14459           }
14460           case 18: {
14461             StringField = input.ReadString();
14462             break;
14463           }
14464           case 24: {
14465             EnumField = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
14466             break;
14467           }
14468           case 34: {
14469             if (messageField_ == null) {
14470               MessageField = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
14471             }
14472             input.ReadMessage(MessageField);
14473             break;
14474           }
14475           case 42: {
14476             StringPieceField = input.ReadString();
14477             break;
14478           }
14479           case 50: {
14480             CordField = input.ReadString();
14481             break;
14482           }
14483           case 58:
14484           case 56: {
14485             repeatedPrimitiveField_.AddEntriesFrom(ref input, _repeated_repeatedPrimitiveField_codec);
14486             break;
14487           }
14488           case 66: {
14489             repeatedStringField_.AddEntriesFrom(ref input, _repeated_repeatedStringField_codec);
14490             break;
14491           }
14492           case 74:
14493           case 72: {
14494             repeatedEnumField_.AddEntriesFrom(ref input, _repeated_repeatedEnumField_codec);
14495             break;
14496           }
14497           case 82: {
14498             repeatedMessageField_.AddEntriesFrom(ref input, _repeated_repeatedMessageField_codec);
14499             break;
14500           }
14501           case 90: {
14502             repeatedStringPieceField_.AddEntriesFrom(ref input, _repeated_repeatedStringPieceField_codec);
14503             break;
14504           }
14505           case 98: {
14506             repeatedCordField_.AddEntriesFrom(ref input, _repeated_repeatedCordField_codec);
14507             break;
14508           }
14509         }
14510       }
14511     }
14512     #endif
14513 
14514   }
14515 
14516   /// <summary>
14517   /// We list fields out of order, to ensure that we're using field number and not
14518   /// field index to determine serialization order.
14519   /// </summary>
14520   public sealed partial class TestFieldOrderings : pb::IExtendableMessage<TestFieldOrderings>
14521   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14522       , pb::IBufferMessage
14523   #endif
14524   {
14525     private static readonly pb::MessageParser<TestFieldOrderings> _parser = new pb::MessageParser<TestFieldOrderings>(() => new TestFieldOrderings());
14526     private pb::UnknownFieldSet _unknownFields;
14527     private pb::ExtensionSet<TestFieldOrderings> _extensions;
14528     private pb::ExtensionSet<TestFieldOrderings> _Extensions { get { return _extensions; } }
14529     private int _hasBits0;
14530     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14531     public static pb::MessageParser<TestFieldOrderings> Parser { get { return _parser; } }
14532 
14533     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14534     public static pbr::MessageDescriptor Descriptor {
14535       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[29]; }
14536     }
14537 
14538     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14539     pbr::MessageDescriptor pb::IMessage.Descriptor {
14540       get { return Descriptor; }
14541     }
14542 
14543     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestFieldOrderings()14544     public TestFieldOrderings() {
14545       OnConstruction();
14546     }
14547 
OnConstruction()14548     partial void OnConstruction();
14549 
14550     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestFieldOrderings(TestFieldOrderings other)14551     public TestFieldOrderings(TestFieldOrderings other) : this() {
14552       _hasBits0 = other._hasBits0;
14553       myString_ = other.myString_;
14554       myInt_ = other.myInt_;
14555       myFloat_ = other.myFloat_;
14556       optionalNestedMessage_ = other.optionalNestedMessage_ != null ? other.optionalNestedMessage_.Clone() : null;
14557       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
14558       _extensions = pb::ExtensionSet.Clone(other._extensions);
14559     }
14560 
14561     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()14562     public TestFieldOrderings Clone() {
14563       return new TestFieldOrderings(this);
14564     }
14565 
14566     /// <summary>Field number for the "my_string" field.</summary>
14567     public const int MyStringFieldNumber = 11;
14568     private readonly static string MyStringDefaultValue = "";
14569 
14570     private string myString_;
14571     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14572     public string MyString {
14573       get { return myString_ ?? MyStringDefaultValue; }
14574       set {
14575         myString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
14576       }
14577     }
14578     /// <summary>Gets whether the "my_string" field is set</summary>
14579     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14580     public bool HasMyString {
14581       get { return myString_ != null; }
14582     }
14583     /// <summary>Clears the value of the "my_string" field</summary>
14584     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearMyString()14585     public void ClearMyString() {
14586       myString_ = null;
14587     }
14588 
14589     /// <summary>Field number for the "my_int" field.</summary>
14590     public const int MyIntFieldNumber = 1;
14591     private readonly static long MyIntDefaultValue = 0L;
14592 
14593     private long myInt_;
14594     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14595     public long MyInt {
14596       get { if ((_hasBits0 & 1) != 0) { return myInt_; } else { return MyIntDefaultValue; } }
14597       set {
14598         _hasBits0 |= 1;
14599         myInt_ = value;
14600       }
14601     }
14602     /// <summary>Gets whether the "my_int" field is set</summary>
14603     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14604     public bool HasMyInt {
14605       get { return (_hasBits0 & 1) != 0; }
14606     }
14607     /// <summary>Clears the value of the "my_int" field</summary>
14608     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearMyInt()14609     public void ClearMyInt() {
14610       _hasBits0 &= ~1;
14611     }
14612 
14613     /// <summary>Field number for the "my_float" field.</summary>
14614     public const int MyFloatFieldNumber = 101;
14615     private readonly static float MyFloatDefaultValue = 0F;
14616 
14617     private float myFloat_;
14618     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14619     public float MyFloat {
14620       get { if ((_hasBits0 & 2) != 0) { return myFloat_; } else { return MyFloatDefaultValue; } }
14621       set {
14622         _hasBits0 |= 2;
14623         myFloat_ = value;
14624       }
14625     }
14626     /// <summary>Gets whether the "my_float" field is set</summary>
14627     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14628     public bool HasMyFloat {
14629       get { return (_hasBits0 & 2) != 0; }
14630     }
14631     /// <summary>Clears the value of the "my_float" field</summary>
14632     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearMyFloat()14633     public void ClearMyFloat() {
14634       _hasBits0 &= ~2;
14635     }
14636 
14637     /// <summary>Field number for the "optional_nested_message" field.</summary>
14638     public const int OptionalNestedMessageFieldNumber = 200;
14639     private global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage optionalNestedMessage_;
14640     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14641     public global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
14642       get { return optionalNestedMessage_; }
14643       set {
14644         optionalNestedMessage_ = value;
14645       }
14646     }
14647 
14648     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)14649     public override bool Equals(object other) {
14650       return Equals(other as TestFieldOrderings);
14651     }
14652 
14653     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestFieldOrderings other)14654     public bool Equals(TestFieldOrderings other) {
14655       if (ReferenceEquals(other, null)) {
14656         return false;
14657       }
14658       if (ReferenceEquals(other, this)) {
14659         return true;
14660       }
14661       if (MyString != other.MyString) return false;
14662       if (MyInt != other.MyInt) return false;
14663       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MyFloat, other.MyFloat)) return false;
14664       if (!object.Equals(OptionalNestedMessage, other.OptionalNestedMessage)) return false;
14665       if (!Equals(_extensions, other._extensions)) {
14666         return false;
14667       }
14668       return Equals(_unknownFields, other._unknownFields);
14669     }
14670 
14671     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()14672     public override int GetHashCode() {
14673       int hash = 1;
14674       if (HasMyString) hash ^= MyString.GetHashCode();
14675       if (HasMyInt) hash ^= MyInt.GetHashCode();
14676       if (HasMyFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MyFloat);
14677       if (optionalNestedMessage_ != null) hash ^= OptionalNestedMessage.GetHashCode();
14678       if (_extensions != null) {
14679         hash ^= _extensions.GetHashCode();
14680       }
14681       if (_unknownFields != null) {
14682         hash ^= _unknownFields.GetHashCode();
14683       }
14684       return hash;
14685     }
14686 
14687     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()14688     public override string ToString() {
14689       return pb::JsonFormatter.ToDiagnosticString(this);
14690     }
14691 
14692     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)14693     public void WriteTo(pb::CodedOutputStream output) {
14694     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14695       output.WriteRawMessage(this);
14696     #else
14697       if (HasMyInt) {
14698         output.WriteRawTag(8);
14699         output.WriteInt64(MyInt);
14700       }
14701       if (HasMyString) {
14702         output.WriteRawTag(90);
14703         output.WriteString(MyString);
14704       }
14705       if (HasMyFloat) {
14706         output.WriteRawTag(173, 6);
14707         output.WriteFloat(MyFloat);
14708       }
14709       if (optionalNestedMessage_ != null) {
14710         output.WriteRawTag(194, 12);
14711         output.WriteMessage(OptionalNestedMessage);
14712       }
14713       if (_extensions != null) {
14714         _extensions.WriteTo(output);
14715       }
14716       if (_unknownFields != null) {
14717         _unknownFields.WriteTo(output);
14718       }
14719     #endif
14720     }
14721 
14722     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14723     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)14724     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
14725       if (HasMyInt) {
14726         output.WriteRawTag(8);
14727         output.WriteInt64(MyInt);
14728       }
14729       if (HasMyString) {
14730         output.WriteRawTag(90);
14731         output.WriteString(MyString);
14732       }
14733       if (HasMyFloat) {
14734         output.WriteRawTag(173, 6);
14735         output.WriteFloat(MyFloat);
14736       }
14737       if (optionalNestedMessage_ != null) {
14738         output.WriteRawTag(194, 12);
14739         output.WriteMessage(OptionalNestedMessage);
14740       }
14741       if (_extensions != null) {
14742         _extensions.WriteTo(ref output);
14743       }
14744       if (_unknownFields != null) {
14745         _unknownFields.WriteTo(ref output);
14746       }
14747     }
14748     #endif
14749 
14750     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()14751     public int CalculateSize() {
14752       int size = 0;
14753       if (HasMyString) {
14754         size += 1 + pb::CodedOutputStream.ComputeStringSize(MyString);
14755       }
14756       if (HasMyInt) {
14757         size += 1 + pb::CodedOutputStream.ComputeInt64Size(MyInt);
14758       }
14759       if (HasMyFloat) {
14760         size += 2 + 4;
14761       }
14762       if (optionalNestedMessage_ != null) {
14763         size += 2 + pb::CodedOutputStream.ComputeMessageSize(OptionalNestedMessage);
14764       }
14765       if (_extensions != null) {
14766         size += _extensions.CalculateSize();
14767       }
14768       if (_unknownFields != null) {
14769         size += _unknownFields.CalculateSize();
14770       }
14771       return size;
14772     }
14773 
14774     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestFieldOrderings other)14775     public void MergeFrom(TestFieldOrderings other) {
14776       if (other == null) {
14777         return;
14778       }
14779       if (other.HasMyString) {
14780         MyString = other.MyString;
14781       }
14782       if (other.HasMyInt) {
14783         MyInt = other.MyInt;
14784       }
14785       if (other.HasMyFloat) {
14786         MyFloat = other.MyFloat;
14787       }
14788       if (other.optionalNestedMessage_ != null) {
14789         if (optionalNestedMessage_ == null) {
14790           OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage();
14791         }
14792         OptionalNestedMessage.MergeFrom(other.OptionalNestedMessage);
14793       }
14794       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
14795       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
14796     }
14797 
14798     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)14799     public void MergeFrom(pb::CodedInputStream input) {
14800     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14801       input.ReadRawMessage(this);
14802     #else
14803       uint tag;
14804       while ((tag = input.ReadTag()) != 0) {
14805         switch(tag) {
14806           default:
14807             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
14808               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
14809             }
14810             break;
14811           case 8: {
14812             MyInt = input.ReadInt64();
14813             break;
14814           }
14815           case 90: {
14816             MyString = input.ReadString();
14817             break;
14818           }
14819           case 813: {
14820             MyFloat = input.ReadFloat();
14821             break;
14822           }
14823           case 1602: {
14824             if (optionalNestedMessage_ == null) {
14825               OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage();
14826             }
14827             input.ReadMessage(OptionalNestedMessage);
14828             break;
14829           }
14830         }
14831       }
14832     #endif
14833     }
14834 
14835     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14836     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)14837     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
14838       uint tag;
14839       while ((tag = input.ReadTag()) != 0) {
14840         switch(tag) {
14841           default:
14842             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
14843               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
14844             }
14845             break;
14846           case 8: {
14847             MyInt = input.ReadInt64();
14848             break;
14849           }
14850           case 90: {
14851             MyString = input.ReadString();
14852             break;
14853           }
14854           case 813: {
14855             MyFloat = input.ReadFloat();
14856             break;
14857           }
14858           case 1602: {
14859             if (optionalNestedMessage_ == null) {
14860               OptionalNestedMessage = new global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Types.NestedMessage();
14861             }
14862             input.ReadMessage(OptionalNestedMessage);
14863             break;
14864           }
14865         }
14866       }
14867     }
14868     #endif
14869 
GetExtension(pb::Extension<TestFieldOrderings, TValue> extension)14870     public TValue GetExtension<TValue>(pb::Extension<TestFieldOrderings, TValue> extension) {
14871       return pb::ExtensionSet.Get(ref _extensions, extension);
14872     }
GetExtension(pb::RepeatedExtension<TestFieldOrderings, TValue> extension)14873     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestFieldOrderings, TValue> extension) {
14874       return pb::ExtensionSet.Get(ref _extensions, extension);
14875     }
GetOrInitializeExtension(pb::RepeatedExtension<TestFieldOrderings, TValue> extension)14876     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestFieldOrderings, TValue> extension) {
14877       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
14878     }
SetExtension(pb::Extension<TestFieldOrderings, TValue> extension, TValue value)14879     public void SetExtension<TValue>(pb::Extension<TestFieldOrderings, TValue> extension, TValue value) {
14880       pb::ExtensionSet.Set(ref _extensions, extension, value);
14881     }
HasExtension(pb::Extension<TestFieldOrderings, TValue> extension)14882     public bool HasExtension<TValue>(pb::Extension<TestFieldOrderings, TValue> extension) {
14883       return pb::ExtensionSet.Has(ref _extensions, extension);
14884     }
ClearExtension(pb::Extension<TestFieldOrderings, TValue> extension)14885     public void ClearExtension<TValue>(pb::Extension<TestFieldOrderings, TValue> extension) {
14886       pb::ExtensionSet.Clear(ref _extensions, extension);
14887     }
ClearExtension(pb::RepeatedExtension<TestFieldOrderings, TValue> extension)14888     public void ClearExtension<TValue>(pb::RepeatedExtension<TestFieldOrderings, TValue> extension) {
14889       pb::ExtensionSet.Clear(ref _extensions, extension);
14890     }
14891 
14892     #region Nested types
14893     /// <summary>Container for nested types declared in the TestFieldOrderings message type.</summary>
14894     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14895     public static partial class Types {
14896       public sealed partial class NestedMessage : pb::IMessage<NestedMessage>
14897       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
14898           , pb::IBufferMessage
14899       #endif
14900       {
14901         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
14902         private pb::UnknownFieldSet _unknownFields;
14903         private int _hasBits0;
14904         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14905         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
14906 
14907         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14908         public static pbr::MessageDescriptor Descriptor {
14909           get { return global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings.Descriptor.NestedTypes[0]; }
14910         }
14911 
14912         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14913         pbr::MessageDescriptor pb::IMessage.Descriptor {
14914           get { return Descriptor; }
14915         }
14916 
14917         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage()14918         public NestedMessage() {
14919           OnConstruction();
14920         }
14921 
OnConstruction()14922         partial void OnConstruction();
14923 
14924         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage(NestedMessage other)14925         public NestedMessage(NestedMessage other) : this() {
14926           _hasBits0 = other._hasBits0;
14927           oo_ = other.oo_;
14928           bb_ = other.bb_;
14929           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
14930         }
14931 
14932         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()14933         public NestedMessage Clone() {
14934           return new NestedMessage(this);
14935         }
14936 
14937         /// <summary>Field number for the "oo" field.</summary>
14938         public const int OoFieldNumber = 2;
14939         private readonly static long OoDefaultValue = 0L;
14940 
14941         private long oo_;
14942         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14943         public long Oo {
14944           get { if ((_hasBits0 & 2) != 0) { return oo_; } else { return OoDefaultValue; } }
14945           set {
14946             _hasBits0 |= 2;
14947             oo_ = value;
14948           }
14949         }
14950         /// <summary>Gets whether the "oo" field is set</summary>
14951         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14952         public bool HasOo {
14953           get { return (_hasBits0 & 2) != 0; }
14954         }
14955         /// <summary>Clears the value of the "oo" field</summary>
14956         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOo()14957         public void ClearOo() {
14958           _hasBits0 &= ~2;
14959         }
14960 
14961         /// <summary>Field number for the "bb" field.</summary>
14962         public const int BbFieldNumber = 1;
14963         private readonly static int BbDefaultValue = 0;
14964 
14965         private int bb_;
14966         /// <summary>
14967         /// The field name "b" fails to compile in proto1 because it conflicts with
14968         /// a local variable named "b" in one of the generated methods.  Doh.
14969         /// This file needs to compile in proto1 to test backwards-compatibility.
14970         /// </summary>
14971         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14972         public int Bb {
14973           get { if ((_hasBits0 & 1) != 0) { return bb_; } else { return BbDefaultValue; } }
14974           set {
14975             _hasBits0 |= 1;
14976             bb_ = value;
14977           }
14978         }
14979         /// <summary>Gets whether the "bb" field is set</summary>
14980         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14981         public bool HasBb {
14982           get { return (_hasBits0 & 1) != 0; }
14983         }
14984         /// <summary>Clears the value of the "bb" field</summary>
14985         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBb()14986         public void ClearBb() {
14987           _hasBits0 &= ~1;
14988         }
14989 
14990         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)14991         public override bool Equals(object other) {
14992           return Equals(other as NestedMessage);
14993         }
14994 
14995         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedMessage other)14996         public bool Equals(NestedMessage other) {
14997           if (ReferenceEquals(other, null)) {
14998             return false;
14999           }
15000           if (ReferenceEquals(other, this)) {
15001             return true;
15002           }
15003           if (Oo != other.Oo) return false;
15004           if (Bb != other.Bb) return false;
15005           return Equals(_unknownFields, other._unknownFields);
15006         }
15007 
15008         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()15009         public override int GetHashCode() {
15010           int hash = 1;
15011           if (HasOo) hash ^= Oo.GetHashCode();
15012           if (HasBb) hash ^= Bb.GetHashCode();
15013           if (_unknownFields != null) {
15014             hash ^= _unknownFields.GetHashCode();
15015           }
15016           return hash;
15017         }
15018 
15019         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()15020         public override string ToString() {
15021           return pb::JsonFormatter.ToDiagnosticString(this);
15022         }
15023 
15024         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)15025         public void WriteTo(pb::CodedOutputStream output) {
15026         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15027           output.WriteRawMessage(this);
15028         #else
15029           if (HasBb) {
15030             output.WriteRawTag(8);
15031             output.WriteInt32(Bb);
15032           }
15033           if (HasOo) {
15034             output.WriteRawTag(16);
15035             output.WriteInt64(Oo);
15036           }
15037           if (_unknownFields != null) {
15038             _unknownFields.WriteTo(output);
15039           }
15040         #endif
15041         }
15042 
15043         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15044         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)15045         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
15046           if (HasBb) {
15047             output.WriteRawTag(8);
15048             output.WriteInt32(Bb);
15049           }
15050           if (HasOo) {
15051             output.WriteRawTag(16);
15052             output.WriteInt64(Oo);
15053           }
15054           if (_unknownFields != null) {
15055             _unknownFields.WriteTo(ref output);
15056           }
15057         }
15058         #endif
15059 
15060         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()15061         public int CalculateSize() {
15062           int size = 0;
15063           if (HasOo) {
15064             size += 1 + pb::CodedOutputStream.ComputeInt64Size(Oo);
15065           }
15066           if (HasBb) {
15067             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Bb);
15068           }
15069           if (_unknownFields != null) {
15070             size += _unknownFields.CalculateSize();
15071           }
15072           return size;
15073         }
15074 
15075         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedMessage other)15076         public void MergeFrom(NestedMessage other) {
15077           if (other == null) {
15078             return;
15079           }
15080           if (other.HasOo) {
15081             Oo = other.Oo;
15082           }
15083           if (other.HasBb) {
15084             Bb = other.Bb;
15085           }
15086           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
15087         }
15088 
15089         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)15090         public void MergeFrom(pb::CodedInputStream input) {
15091         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15092           input.ReadRawMessage(this);
15093         #else
15094           uint tag;
15095           while ((tag = input.ReadTag()) != 0) {
15096             switch(tag) {
15097               default:
15098                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
15099                 break;
15100               case 8: {
15101                 Bb = input.ReadInt32();
15102                 break;
15103               }
15104               case 16: {
15105                 Oo = input.ReadInt64();
15106                 break;
15107               }
15108             }
15109           }
15110         #endif
15111         }
15112 
15113         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15114         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)15115         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
15116           uint tag;
15117           while ((tag = input.ReadTag()) != 0) {
15118             switch(tag) {
15119               default:
15120                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
15121                 break;
15122               case 8: {
15123                 Bb = input.ReadInt32();
15124                 break;
15125               }
15126               case 16: {
15127                 Oo = input.ReadInt64();
15128                 break;
15129               }
15130             }
15131           }
15132         }
15133         #endif
15134 
15135       }
15136 
15137     }
15138     #endregion
15139 
15140   }
15141 
15142   public sealed partial class TestExtensionOrderings1 : pb::IMessage<TestExtensionOrderings1>
15143   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15144       , pb::IBufferMessage
15145   #endif
15146   {
15147     private static readonly pb::MessageParser<TestExtensionOrderings1> _parser = new pb::MessageParser<TestExtensionOrderings1>(() => new TestExtensionOrderings1());
15148     private pb::UnknownFieldSet _unknownFields;
15149     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15150     public static pb::MessageParser<TestExtensionOrderings1> Parser { get { return _parser; } }
15151 
15152     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15153     public static pbr::MessageDescriptor Descriptor {
15154       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[30]; }
15155     }
15156 
15157     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15158     pbr::MessageDescriptor pb::IMessage.Descriptor {
15159       get { return Descriptor; }
15160     }
15161 
15162     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionOrderings1()15163     public TestExtensionOrderings1() {
15164       OnConstruction();
15165     }
15166 
OnConstruction()15167     partial void OnConstruction();
15168 
15169     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionOrderings1(TestExtensionOrderings1 other)15170     public TestExtensionOrderings1(TestExtensionOrderings1 other) : this() {
15171       myString_ = other.myString_;
15172       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
15173     }
15174 
15175     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()15176     public TestExtensionOrderings1 Clone() {
15177       return new TestExtensionOrderings1(this);
15178     }
15179 
15180     /// <summary>Field number for the "my_string" field.</summary>
15181     public const int MyStringFieldNumber = 1;
15182     private readonly static string MyStringDefaultValue = "";
15183 
15184     private string myString_;
15185     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15186     public string MyString {
15187       get { return myString_ ?? MyStringDefaultValue; }
15188       set {
15189         myString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
15190       }
15191     }
15192     /// <summary>Gets whether the "my_string" field is set</summary>
15193     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15194     public bool HasMyString {
15195       get { return myString_ != null; }
15196     }
15197     /// <summary>Clears the value of the "my_string" field</summary>
15198     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearMyString()15199     public void ClearMyString() {
15200       myString_ = null;
15201     }
15202 
15203     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)15204     public override bool Equals(object other) {
15205       return Equals(other as TestExtensionOrderings1);
15206     }
15207 
15208     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestExtensionOrderings1 other)15209     public bool Equals(TestExtensionOrderings1 other) {
15210       if (ReferenceEquals(other, null)) {
15211         return false;
15212       }
15213       if (ReferenceEquals(other, this)) {
15214         return true;
15215       }
15216       if (MyString != other.MyString) return false;
15217       return Equals(_unknownFields, other._unknownFields);
15218     }
15219 
15220     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()15221     public override int GetHashCode() {
15222       int hash = 1;
15223       if (HasMyString) hash ^= MyString.GetHashCode();
15224       if (_unknownFields != null) {
15225         hash ^= _unknownFields.GetHashCode();
15226       }
15227       return hash;
15228     }
15229 
15230     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()15231     public override string ToString() {
15232       return pb::JsonFormatter.ToDiagnosticString(this);
15233     }
15234 
15235     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)15236     public void WriteTo(pb::CodedOutputStream output) {
15237     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15238       output.WriteRawMessage(this);
15239     #else
15240       if (HasMyString) {
15241         output.WriteRawTag(10);
15242         output.WriteString(MyString);
15243       }
15244       if (_unknownFields != null) {
15245         _unknownFields.WriteTo(output);
15246       }
15247     #endif
15248     }
15249 
15250     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15251     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)15252     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
15253       if (HasMyString) {
15254         output.WriteRawTag(10);
15255         output.WriteString(MyString);
15256       }
15257       if (_unknownFields != null) {
15258         _unknownFields.WriteTo(ref output);
15259       }
15260     }
15261     #endif
15262 
15263     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()15264     public int CalculateSize() {
15265       int size = 0;
15266       if (HasMyString) {
15267         size += 1 + pb::CodedOutputStream.ComputeStringSize(MyString);
15268       }
15269       if (_unknownFields != null) {
15270         size += _unknownFields.CalculateSize();
15271       }
15272       return size;
15273     }
15274 
15275     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestExtensionOrderings1 other)15276     public void MergeFrom(TestExtensionOrderings1 other) {
15277       if (other == null) {
15278         return;
15279       }
15280       if (other.HasMyString) {
15281         MyString = other.MyString;
15282       }
15283       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
15284     }
15285 
15286     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)15287     public void MergeFrom(pb::CodedInputStream input) {
15288     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15289       input.ReadRawMessage(this);
15290     #else
15291       uint tag;
15292       while ((tag = input.ReadTag()) != 0) {
15293         switch(tag) {
15294           default:
15295             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
15296             break;
15297           case 10: {
15298             MyString = input.ReadString();
15299             break;
15300           }
15301         }
15302       }
15303     #endif
15304     }
15305 
15306     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15307     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)15308     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
15309       uint tag;
15310       while ((tag = input.ReadTag()) != 0) {
15311         switch(tag) {
15312           default:
15313             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
15314             break;
15315           case 10: {
15316             MyString = input.ReadString();
15317             break;
15318           }
15319         }
15320       }
15321     }
15322     #endif
15323 
15324     #region Extensions
15325     /// <summary>Container for extensions for other messages declared in the TestExtensionOrderings1 message type.</summary>
15326     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15327     public static partial class Extensions {
15328       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings1> TestExtOrderings1 =
15329         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings1>(13, pb::FieldCodec.ForMessage(106, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings1.Parser));
15330     }
15331     #endregion
15332 
15333   }
15334 
15335   public sealed partial class TestExtensionOrderings2 : pb::IMessage<TestExtensionOrderings2>
15336   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15337       , pb::IBufferMessage
15338   #endif
15339   {
15340     private static readonly pb::MessageParser<TestExtensionOrderings2> _parser = new pb::MessageParser<TestExtensionOrderings2>(() => new TestExtensionOrderings2());
15341     private pb::UnknownFieldSet _unknownFields;
15342     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15343     public static pb::MessageParser<TestExtensionOrderings2> Parser { get { return _parser; } }
15344 
15345     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15346     public static pbr::MessageDescriptor Descriptor {
15347       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[31]; }
15348     }
15349 
15350     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15351     pbr::MessageDescriptor pb::IMessage.Descriptor {
15352       get { return Descriptor; }
15353     }
15354 
15355     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionOrderings2()15356     public TestExtensionOrderings2() {
15357       OnConstruction();
15358     }
15359 
OnConstruction()15360     partial void OnConstruction();
15361 
15362     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionOrderings2(TestExtensionOrderings2 other)15363     public TestExtensionOrderings2(TestExtensionOrderings2 other) : this() {
15364       myString_ = other.myString_;
15365       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
15366     }
15367 
15368     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()15369     public TestExtensionOrderings2 Clone() {
15370       return new TestExtensionOrderings2(this);
15371     }
15372 
15373     /// <summary>Field number for the "my_string" field.</summary>
15374     public const int MyStringFieldNumber = 1;
15375     private readonly static string MyStringDefaultValue = "";
15376 
15377     private string myString_;
15378     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15379     public string MyString {
15380       get { return myString_ ?? MyStringDefaultValue; }
15381       set {
15382         myString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
15383       }
15384     }
15385     /// <summary>Gets whether the "my_string" field is set</summary>
15386     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15387     public bool HasMyString {
15388       get { return myString_ != null; }
15389     }
15390     /// <summary>Clears the value of the "my_string" field</summary>
15391     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearMyString()15392     public void ClearMyString() {
15393       myString_ = null;
15394     }
15395 
15396     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)15397     public override bool Equals(object other) {
15398       return Equals(other as TestExtensionOrderings2);
15399     }
15400 
15401     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestExtensionOrderings2 other)15402     public bool Equals(TestExtensionOrderings2 other) {
15403       if (ReferenceEquals(other, null)) {
15404         return false;
15405       }
15406       if (ReferenceEquals(other, this)) {
15407         return true;
15408       }
15409       if (MyString != other.MyString) return false;
15410       return Equals(_unknownFields, other._unknownFields);
15411     }
15412 
15413     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()15414     public override int GetHashCode() {
15415       int hash = 1;
15416       if (HasMyString) hash ^= MyString.GetHashCode();
15417       if (_unknownFields != null) {
15418         hash ^= _unknownFields.GetHashCode();
15419       }
15420       return hash;
15421     }
15422 
15423     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()15424     public override string ToString() {
15425       return pb::JsonFormatter.ToDiagnosticString(this);
15426     }
15427 
15428     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)15429     public void WriteTo(pb::CodedOutputStream output) {
15430     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15431       output.WriteRawMessage(this);
15432     #else
15433       if (HasMyString) {
15434         output.WriteRawTag(10);
15435         output.WriteString(MyString);
15436       }
15437       if (_unknownFields != null) {
15438         _unknownFields.WriteTo(output);
15439       }
15440     #endif
15441     }
15442 
15443     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15444     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)15445     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
15446       if (HasMyString) {
15447         output.WriteRawTag(10);
15448         output.WriteString(MyString);
15449       }
15450       if (_unknownFields != null) {
15451         _unknownFields.WriteTo(ref output);
15452       }
15453     }
15454     #endif
15455 
15456     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()15457     public int CalculateSize() {
15458       int size = 0;
15459       if (HasMyString) {
15460         size += 1 + pb::CodedOutputStream.ComputeStringSize(MyString);
15461       }
15462       if (_unknownFields != null) {
15463         size += _unknownFields.CalculateSize();
15464       }
15465       return size;
15466     }
15467 
15468     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestExtensionOrderings2 other)15469     public void MergeFrom(TestExtensionOrderings2 other) {
15470       if (other == null) {
15471         return;
15472       }
15473       if (other.HasMyString) {
15474         MyString = other.MyString;
15475       }
15476       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
15477     }
15478 
15479     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)15480     public void MergeFrom(pb::CodedInputStream input) {
15481     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15482       input.ReadRawMessage(this);
15483     #else
15484       uint tag;
15485       while ((tag = input.ReadTag()) != 0) {
15486         switch(tag) {
15487           default:
15488             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
15489             break;
15490           case 10: {
15491             MyString = input.ReadString();
15492             break;
15493           }
15494         }
15495       }
15496     #endif
15497     }
15498 
15499     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15500     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)15501     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
15502       uint tag;
15503       while ((tag = input.ReadTag()) != 0) {
15504         switch(tag) {
15505           default:
15506             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
15507             break;
15508           case 10: {
15509             MyString = input.ReadString();
15510             break;
15511           }
15512         }
15513       }
15514     }
15515     #endif
15516 
15517     #region Nested types
15518     /// <summary>Container for nested types declared in the TestExtensionOrderings2 message type.</summary>
15519     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15520     public static partial class Types {
15521       public sealed partial class TestExtensionOrderings3 : pb::IMessage<TestExtensionOrderings3>
15522       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15523           , pb::IBufferMessage
15524       #endif
15525       {
15526         private static readonly pb::MessageParser<TestExtensionOrderings3> _parser = new pb::MessageParser<TestExtensionOrderings3>(() => new TestExtensionOrderings3());
15527         private pb::UnknownFieldSet _unknownFields;
15528         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15529         public static pb::MessageParser<TestExtensionOrderings3> Parser { get { return _parser; } }
15530 
15531         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15532         public static pbr::MessageDescriptor Descriptor {
15533           get { return global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Descriptor.NestedTypes[0]; }
15534         }
15535 
15536         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15537         pbr::MessageDescriptor pb::IMessage.Descriptor {
15538           get { return Descriptor; }
15539         }
15540 
15541         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionOrderings3()15542         public TestExtensionOrderings3() {
15543           OnConstruction();
15544         }
15545 
OnConstruction()15546         partial void OnConstruction();
15547 
15548         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionOrderings3(TestExtensionOrderings3 other)15549         public TestExtensionOrderings3(TestExtensionOrderings3 other) : this() {
15550           myString_ = other.myString_;
15551           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
15552         }
15553 
15554         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()15555         public TestExtensionOrderings3 Clone() {
15556           return new TestExtensionOrderings3(this);
15557         }
15558 
15559         /// <summary>Field number for the "my_string" field.</summary>
15560         public const int MyStringFieldNumber = 1;
15561         private readonly static string MyStringDefaultValue = "";
15562 
15563         private string myString_;
15564         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15565         public string MyString {
15566           get { return myString_ ?? MyStringDefaultValue; }
15567           set {
15568             myString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
15569           }
15570         }
15571         /// <summary>Gets whether the "my_string" field is set</summary>
15572         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15573         public bool HasMyString {
15574           get { return myString_ != null; }
15575         }
15576         /// <summary>Clears the value of the "my_string" field</summary>
15577         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearMyString()15578         public void ClearMyString() {
15579           myString_ = null;
15580         }
15581 
15582         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)15583         public override bool Equals(object other) {
15584           return Equals(other as TestExtensionOrderings3);
15585         }
15586 
15587         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestExtensionOrderings3 other)15588         public bool Equals(TestExtensionOrderings3 other) {
15589           if (ReferenceEquals(other, null)) {
15590             return false;
15591           }
15592           if (ReferenceEquals(other, this)) {
15593             return true;
15594           }
15595           if (MyString != other.MyString) return false;
15596           return Equals(_unknownFields, other._unknownFields);
15597         }
15598 
15599         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()15600         public override int GetHashCode() {
15601           int hash = 1;
15602           if (HasMyString) hash ^= MyString.GetHashCode();
15603           if (_unknownFields != null) {
15604             hash ^= _unknownFields.GetHashCode();
15605           }
15606           return hash;
15607         }
15608 
15609         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()15610         public override string ToString() {
15611           return pb::JsonFormatter.ToDiagnosticString(this);
15612         }
15613 
15614         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)15615         public void WriteTo(pb::CodedOutputStream output) {
15616         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15617           output.WriteRawMessage(this);
15618         #else
15619           if (HasMyString) {
15620             output.WriteRawTag(10);
15621             output.WriteString(MyString);
15622           }
15623           if (_unknownFields != null) {
15624             _unknownFields.WriteTo(output);
15625           }
15626         #endif
15627         }
15628 
15629         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15630         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)15631         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
15632           if (HasMyString) {
15633             output.WriteRawTag(10);
15634             output.WriteString(MyString);
15635           }
15636           if (_unknownFields != null) {
15637             _unknownFields.WriteTo(ref output);
15638           }
15639         }
15640         #endif
15641 
15642         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()15643         public int CalculateSize() {
15644           int size = 0;
15645           if (HasMyString) {
15646             size += 1 + pb::CodedOutputStream.ComputeStringSize(MyString);
15647           }
15648           if (_unknownFields != null) {
15649             size += _unknownFields.CalculateSize();
15650           }
15651           return size;
15652         }
15653 
15654         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestExtensionOrderings3 other)15655         public void MergeFrom(TestExtensionOrderings3 other) {
15656           if (other == null) {
15657             return;
15658           }
15659           if (other.HasMyString) {
15660             MyString = other.MyString;
15661           }
15662           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
15663         }
15664 
15665         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)15666         public void MergeFrom(pb::CodedInputStream input) {
15667         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15668           input.ReadRawMessage(this);
15669         #else
15670           uint tag;
15671           while ((tag = input.ReadTag()) != 0) {
15672             switch(tag) {
15673               default:
15674                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
15675                 break;
15676               case 10: {
15677                 MyString = input.ReadString();
15678                 break;
15679               }
15680             }
15681           }
15682         #endif
15683         }
15684 
15685         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15686         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)15687         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
15688           uint tag;
15689           while ((tag = input.ReadTag()) != 0) {
15690             switch(tag) {
15691               default:
15692                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
15693                 break;
15694               case 10: {
15695                 MyString = input.ReadString();
15696                 break;
15697               }
15698             }
15699           }
15700         }
15701         #endif
15702 
15703         #region Extensions
15704         /// <summary>Container for extensions for other messages declared in the TestExtensionOrderings3 message type.</summary>
15705         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15706         public static partial class Extensions {
15707           public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Types.TestExtensionOrderings3> TestExtOrderings3 =
15708             new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Types.TestExtensionOrderings3>(14, pb::FieldCodec.ForMessage(114, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Types.TestExtensionOrderings3.Parser));
15709         }
15710         #endregion
15711 
15712       }
15713 
15714     }
15715     #endregion
15716 
15717     #region Extensions
15718     /// <summary>Container for extensions for other messages declared in the TestExtensionOrderings2 message type.</summary>
15719     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15720     public static partial class Extensions {
15721       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2> TestExtOrderings2 =
15722         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestFieldOrderings, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2>(12, pb::FieldCodec.ForMessage(98, global::Google.Protobuf.TestProtos.Proto2.TestExtensionOrderings2.Parser));
15723     }
15724     #endregion
15725 
15726   }
15727 
15728   public sealed partial class TestExtremeDefaultValues : pb::IMessage<TestExtremeDefaultValues>
15729   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15730       , pb::IBufferMessage
15731   #endif
15732   {
15733     private static readonly pb::MessageParser<TestExtremeDefaultValues> _parser = new pb::MessageParser<TestExtremeDefaultValues>(() => new TestExtremeDefaultValues());
15734     private pb::UnknownFieldSet _unknownFields;
15735     private int _hasBits0;
15736     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15737     public static pb::MessageParser<TestExtremeDefaultValues> Parser { get { return _parser; } }
15738 
15739     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15740     public static pbr::MessageDescriptor Descriptor {
15741       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[32]; }
15742     }
15743 
15744     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15745     pbr::MessageDescriptor pb::IMessage.Descriptor {
15746       get { return Descriptor; }
15747     }
15748 
15749     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtremeDefaultValues()15750     public TestExtremeDefaultValues() {
15751       OnConstruction();
15752     }
15753 
OnConstruction()15754     partial void OnConstruction();
15755 
15756     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtremeDefaultValues(TestExtremeDefaultValues other)15757     public TestExtremeDefaultValues(TestExtremeDefaultValues other) : this() {
15758       _hasBits0 = other._hasBits0;
15759       escapedBytes_ = other.escapedBytes_;
15760       largeUint32_ = other.largeUint32_;
15761       largeUint64_ = other.largeUint64_;
15762       smallInt32_ = other.smallInt32_;
15763       smallInt64_ = other.smallInt64_;
15764       reallySmallInt32_ = other.reallySmallInt32_;
15765       reallySmallInt64_ = other.reallySmallInt64_;
15766       utf8String_ = other.utf8String_;
15767       zeroFloat_ = other.zeroFloat_;
15768       oneFloat_ = other.oneFloat_;
15769       smallFloat_ = other.smallFloat_;
15770       negativeOneFloat_ = other.negativeOneFloat_;
15771       negativeFloat_ = other.negativeFloat_;
15772       largeFloat_ = other.largeFloat_;
15773       smallNegativeFloat_ = other.smallNegativeFloat_;
15774       infDouble_ = other.infDouble_;
15775       negInfDouble_ = other.negInfDouble_;
15776       nanDouble_ = other.nanDouble_;
15777       infFloat_ = other.infFloat_;
15778       negInfFloat_ = other.negInfFloat_;
15779       nanFloat_ = other.nanFloat_;
15780       cppTrigraph_ = other.cppTrigraph_;
15781       stringWithZero_ = other.stringWithZero_;
15782       bytesWithZero_ = other.bytesWithZero_;
15783       stringPieceWithZero_ = other.stringPieceWithZero_;
15784       cordWithZero_ = other.cordWithZero_;
15785       replacementString_ = other.replacementString_;
15786       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
15787     }
15788 
15789     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()15790     public TestExtremeDefaultValues Clone() {
15791       return new TestExtremeDefaultValues(this);
15792     }
15793 
15794     /// <summary>Field number for the "escaped_bytes" field.</summary>
15795     public const int EscapedBytesFieldNumber = 1;
15796     private readonly static pb::ByteString EscapedBytesDefaultValue = pb::ByteString.FromBase64("AAEHCAwKDQkLXCci/g==");
15797 
15798     private pb::ByteString escapedBytes_;
15799     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15800     public pb::ByteString EscapedBytes {
15801       get { return escapedBytes_ ?? EscapedBytesDefaultValue; }
15802       set {
15803         escapedBytes_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
15804       }
15805     }
15806     /// <summary>Gets whether the "escaped_bytes" field is set</summary>
15807     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15808     public bool HasEscapedBytes {
15809       get { return escapedBytes_ != null; }
15810     }
15811     /// <summary>Clears the value of the "escaped_bytes" field</summary>
15812     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearEscapedBytes()15813     public void ClearEscapedBytes() {
15814       escapedBytes_ = null;
15815     }
15816 
15817     /// <summary>Field number for the "large_uint32" field.</summary>
15818     public const int LargeUint32FieldNumber = 2;
15819     private readonly static uint LargeUint32DefaultValue = 4294967295;
15820 
15821     private uint largeUint32_;
15822     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15823     public uint LargeUint32 {
15824       get { if ((_hasBits0 & 1) != 0) { return largeUint32_; } else { return LargeUint32DefaultValue; } }
15825       set {
15826         _hasBits0 |= 1;
15827         largeUint32_ = value;
15828       }
15829     }
15830     /// <summary>Gets whether the "large_uint32" field is set</summary>
15831     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15832     public bool HasLargeUint32 {
15833       get { return (_hasBits0 & 1) != 0; }
15834     }
15835     /// <summary>Clears the value of the "large_uint32" field</summary>
15836     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearLargeUint32()15837     public void ClearLargeUint32() {
15838       _hasBits0 &= ~1;
15839     }
15840 
15841     /// <summary>Field number for the "large_uint64" field.</summary>
15842     public const int LargeUint64FieldNumber = 3;
15843     private readonly static ulong LargeUint64DefaultValue = 18446744073709551615UL;
15844 
15845     private ulong largeUint64_;
15846     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15847     public ulong LargeUint64 {
15848       get { if ((_hasBits0 & 2) != 0) { return largeUint64_; } else { return LargeUint64DefaultValue; } }
15849       set {
15850         _hasBits0 |= 2;
15851         largeUint64_ = value;
15852       }
15853     }
15854     /// <summary>Gets whether the "large_uint64" field is set</summary>
15855     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15856     public bool HasLargeUint64 {
15857       get { return (_hasBits0 & 2) != 0; }
15858     }
15859     /// <summary>Clears the value of the "large_uint64" field</summary>
15860     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearLargeUint64()15861     public void ClearLargeUint64() {
15862       _hasBits0 &= ~2;
15863     }
15864 
15865     /// <summary>Field number for the "small_int32" field.</summary>
15866     public const int SmallInt32FieldNumber = 4;
15867     private readonly static int SmallInt32DefaultValue = -2147483647;
15868 
15869     private int smallInt32_;
15870     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15871     public int SmallInt32 {
15872       get { if ((_hasBits0 & 4) != 0) { return smallInt32_; } else { return SmallInt32DefaultValue; } }
15873       set {
15874         _hasBits0 |= 4;
15875         smallInt32_ = value;
15876       }
15877     }
15878     /// <summary>Gets whether the "small_int32" field is set</summary>
15879     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15880     public bool HasSmallInt32 {
15881       get { return (_hasBits0 & 4) != 0; }
15882     }
15883     /// <summary>Clears the value of the "small_int32" field</summary>
15884     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSmallInt32()15885     public void ClearSmallInt32() {
15886       _hasBits0 &= ~4;
15887     }
15888 
15889     /// <summary>Field number for the "small_int64" field.</summary>
15890     public const int SmallInt64FieldNumber = 5;
15891     private readonly static long SmallInt64DefaultValue = -9223372036854775807L;
15892 
15893     private long smallInt64_;
15894     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15895     public long SmallInt64 {
15896       get { if ((_hasBits0 & 8) != 0) { return smallInt64_; } else { return SmallInt64DefaultValue; } }
15897       set {
15898         _hasBits0 |= 8;
15899         smallInt64_ = value;
15900       }
15901     }
15902     /// <summary>Gets whether the "small_int64" field is set</summary>
15903     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15904     public bool HasSmallInt64 {
15905       get { return (_hasBits0 & 8) != 0; }
15906     }
15907     /// <summary>Clears the value of the "small_int64" field</summary>
15908     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSmallInt64()15909     public void ClearSmallInt64() {
15910       _hasBits0 &= ~8;
15911     }
15912 
15913     /// <summary>Field number for the "really_small_int32" field.</summary>
15914     public const int ReallySmallInt32FieldNumber = 21;
15915     private readonly static int ReallySmallInt32DefaultValue = -2147483648;
15916 
15917     private int reallySmallInt32_;
15918     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15919     public int ReallySmallInt32 {
15920       get { if ((_hasBits0 & 131072) != 0) { return reallySmallInt32_; } else { return ReallySmallInt32DefaultValue; } }
15921       set {
15922         _hasBits0 |= 131072;
15923         reallySmallInt32_ = value;
15924       }
15925     }
15926     /// <summary>Gets whether the "really_small_int32" field is set</summary>
15927     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15928     public bool HasReallySmallInt32 {
15929       get { return (_hasBits0 & 131072) != 0; }
15930     }
15931     /// <summary>Clears the value of the "really_small_int32" field</summary>
15932     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearReallySmallInt32()15933     public void ClearReallySmallInt32() {
15934       _hasBits0 &= ~131072;
15935     }
15936 
15937     /// <summary>Field number for the "really_small_int64" field.</summary>
15938     public const int ReallySmallInt64FieldNumber = 22;
15939     private readonly static long ReallySmallInt64DefaultValue = -9223372036854775808L;
15940 
15941     private long reallySmallInt64_;
15942     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15943     public long ReallySmallInt64 {
15944       get { if ((_hasBits0 & 262144) != 0) { return reallySmallInt64_; } else { return ReallySmallInt64DefaultValue; } }
15945       set {
15946         _hasBits0 |= 262144;
15947         reallySmallInt64_ = value;
15948       }
15949     }
15950     /// <summary>Gets whether the "really_small_int64" field is set</summary>
15951     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15952     public bool HasReallySmallInt64 {
15953       get { return (_hasBits0 & 262144) != 0; }
15954     }
15955     /// <summary>Clears the value of the "really_small_int64" field</summary>
15956     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearReallySmallInt64()15957     public void ClearReallySmallInt64() {
15958       _hasBits0 &= ~262144;
15959     }
15960 
15961     /// <summary>Field number for the "utf8_string" field.</summary>
15962     public const int Utf8StringFieldNumber = 6;
15963     private readonly static string Utf8StringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("4Yi0"), 0, 3);
15964 
15965     private string utf8String_;
15966     /// <summary>
15967     /// The default value here is UTF-8 for "\u1234".  (We could also just type
15968     /// the UTF-8 text directly into this text file rather than escape it, but
15969     /// lots of people use editors that would be confused by this.)
15970     /// </summary>
15971     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15972     public string Utf8String {
15973       get { return utf8String_ ?? Utf8StringDefaultValue; }
15974       set {
15975         utf8String_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
15976       }
15977     }
15978     /// <summary>Gets whether the "utf8_string" field is set</summary>
15979     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15980     public bool HasUtf8String {
15981       get { return utf8String_ != null; }
15982     }
15983     /// <summary>Clears the value of the "utf8_string" field</summary>
15984     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearUtf8String()15985     public void ClearUtf8String() {
15986       utf8String_ = null;
15987     }
15988 
15989     /// <summary>Field number for the "zero_float" field.</summary>
15990     public const int ZeroFloatFieldNumber = 7;
15991     private readonly static float ZeroFloatDefaultValue = 0F;
15992 
15993     private float zeroFloat_;
15994     /// <summary>
15995     /// Tests for single-precision floating-point values.
15996     /// </summary>
15997     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15998     public float ZeroFloat {
15999       get { if ((_hasBits0 & 16) != 0) { return zeroFloat_; } else { return ZeroFloatDefaultValue; } }
16000       set {
16001         _hasBits0 |= 16;
16002         zeroFloat_ = value;
16003       }
16004     }
16005     /// <summary>Gets whether the "zero_float" field is set</summary>
16006     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16007     public bool HasZeroFloat {
16008       get { return (_hasBits0 & 16) != 0; }
16009     }
16010     /// <summary>Clears the value of the "zero_float" field</summary>
16011     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearZeroFloat()16012     public void ClearZeroFloat() {
16013       _hasBits0 &= ~16;
16014     }
16015 
16016     /// <summary>Field number for the "one_float" field.</summary>
16017     public const int OneFloatFieldNumber = 8;
16018     private readonly static float OneFloatDefaultValue = 1F;
16019 
16020     private float oneFloat_;
16021     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16022     public float OneFloat {
16023       get { if ((_hasBits0 & 32) != 0) { return oneFloat_; } else { return OneFloatDefaultValue; } }
16024       set {
16025         _hasBits0 |= 32;
16026         oneFloat_ = value;
16027       }
16028     }
16029     /// <summary>Gets whether the "one_float" field is set</summary>
16030     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16031     public bool HasOneFloat {
16032       get { return (_hasBits0 & 32) != 0; }
16033     }
16034     /// <summary>Clears the value of the "one_float" field</summary>
16035     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneFloat()16036     public void ClearOneFloat() {
16037       _hasBits0 &= ~32;
16038     }
16039 
16040     /// <summary>Field number for the "small_float" field.</summary>
16041     public const int SmallFloatFieldNumber = 9;
16042     private readonly static float SmallFloatDefaultValue = 1.5F;
16043 
16044     private float smallFloat_;
16045     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16046     public float SmallFloat {
16047       get { if ((_hasBits0 & 64) != 0) { return smallFloat_; } else { return SmallFloatDefaultValue; } }
16048       set {
16049         _hasBits0 |= 64;
16050         smallFloat_ = value;
16051       }
16052     }
16053     /// <summary>Gets whether the "small_float" field is set</summary>
16054     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16055     public bool HasSmallFloat {
16056       get { return (_hasBits0 & 64) != 0; }
16057     }
16058     /// <summary>Clears the value of the "small_float" field</summary>
16059     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSmallFloat()16060     public void ClearSmallFloat() {
16061       _hasBits0 &= ~64;
16062     }
16063 
16064     /// <summary>Field number for the "negative_one_float" field.</summary>
16065     public const int NegativeOneFloatFieldNumber = 10;
16066     private readonly static float NegativeOneFloatDefaultValue = -1F;
16067 
16068     private float negativeOneFloat_;
16069     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16070     public float NegativeOneFloat {
16071       get { if ((_hasBits0 & 128) != 0) { return negativeOneFloat_; } else { return NegativeOneFloatDefaultValue; } }
16072       set {
16073         _hasBits0 |= 128;
16074         negativeOneFloat_ = value;
16075       }
16076     }
16077     /// <summary>Gets whether the "negative_one_float" field is set</summary>
16078     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16079     public bool HasNegativeOneFloat {
16080       get { return (_hasBits0 & 128) != 0; }
16081     }
16082     /// <summary>Clears the value of the "negative_one_float" field</summary>
16083     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearNegativeOneFloat()16084     public void ClearNegativeOneFloat() {
16085       _hasBits0 &= ~128;
16086     }
16087 
16088     /// <summary>Field number for the "negative_float" field.</summary>
16089     public const int NegativeFloatFieldNumber = 11;
16090     private readonly static float NegativeFloatDefaultValue = -1.5F;
16091 
16092     private float negativeFloat_;
16093     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16094     public float NegativeFloat {
16095       get { if ((_hasBits0 & 256) != 0) { return negativeFloat_; } else { return NegativeFloatDefaultValue; } }
16096       set {
16097         _hasBits0 |= 256;
16098         negativeFloat_ = value;
16099       }
16100     }
16101     /// <summary>Gets whether the "negative_float" field is set</summary>
16102     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16103     public bool HasNegativeFloat {
16104       get { return (_hasBits0 & 256) != 0; }
16105     }
16106     /// <summary>Clears the value of the "negative_float" field</summary>
16107     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearNegativeFloat()16108     public void ClearNegativeFloat() {
16109       _hasBits0 &= ~256;
16110     }
16111 
16112     /// <summary>Field number for the "large_float" field.</summary>
16113     public const int LargeFloatFieldNumber = 12;
16114     private readonly static float LargeFloatDefaultValue = 2e+08F;
16115 
16116     private float largeFloat_;
16117     /// <summary>
16118     /// Using exponents
16119     /// </summary>
16120     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16121     public float LargeFloat {
16122       get { if ((_hasBits0 & 512) != 0) { return largeFloat_; } else { return LargeFloatDefaultValue; } }
16123       set {
16124         _hasBits0 |= 512;
16125         largeFloat_ = value;
16126       }
16127     }
16128     /// <summary>Gets whether the "large_float" field is set</summary>
16129     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16130     public bool HasLargeFloat {
16131       get { return (_hasBits0 & 512) != 0; }
16132     }
16133     /// <summary>Clears the value of the "large_float" field</summary>
16134     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearLargeFloat()16135     public void ClearLargeFloat() {
16136       _hasBits0 &= ~512;
16137     }
16138 
16139     /// <summary>Field number for the "small_negative_float" field.</summary>
16140     public const int SmallNegativeFloatFieldNumber = 13;
16141     private readonly static float SmallNegativeFloatDefaultValue = -8e-28F;
16142 
16143     private float smallNegativeFloat_;
16144     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16145     public float SmallNegativeFloat {
16146       get { if ((_hasBits0 & 1024) != 0) { return smallNegativeFloat_; } else { return SmallNegativeFloatDefaultValue; } }
16147       set {
16148         _hasBits0 |= 1024;
16149         smallNegativeFloat_ = value;
16150       }
16151     }
16152     /// <summary>Gets whether the "small_negative_float" field is set</summary>
16153     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16154     public bool HasSmallNegativeFloat {
16155       get { return (_hasBits0 & 1024) != 0; }
16156     }
16157     /// <summary>Clears the value of the "small_negative_float" field</summary>
16158     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSmallNegativeFloat()16159     public void ClearSmallNegativeFloat() {
16160       _hasBits0 &= ~1024;
16161     }
16162 
16163     /// <summary>Field number for the "inf_double" field.</summary>
16164     public const int InfDoubleFieldNumber = 14;
16165     private readonly static double InfDoubleDefaultValue = double.PositiveInfinity;
16166 
16167     private double infDouble_;
16168     /// <summary>
16169     /// Text for nonfinite floating-point values.
16170     /// </summary>
16171     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16172     public double InfDouble {
16173       get { if ((_hasBits0 & 2048) != 0) { return infDouble_; } else { return InfDoubleDefaultValue; } }
16174       set {
16175         _hasBits0 |= 2048;
16176         infDouble_ = value;
16177       }
16178     }
16179     /// <summary>Gets whether the "inf_double" field is set</summary>
16180     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16181     public bool HasInfDouble {
16182       get { return (_hasBits0 & 2048) != 0; }
16183     }
16184     /// <summary>Clears the value of the "inf_double" field</summary>
16185     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearInfDouble()16186     public void ClearInfDouble() {
16187       _hasBits0 &= ~2048;
16188     }
16189 
16190     /// <summary>Field number for the "neg_inf_double" field.</summary>
16191     public const int NegInfDoubleFieldNumber = 15;
16192     private readonly static double NegInfDoubleDefaultValue = double.NegativeInfinity;
16193 
16194     private double negInfDouble_;
16195     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16196     public double NegInfDouble {
16197       get { if ((_hasBits0 & 4096) != 0) { return negInfDouble_; } else { return NegInfDoubleDefaultValue; } }
16198       set {
16199         _hasBits0 |= 4096;
16200         negInfDouble_ = value;
16201       }
16202     }
16203     /// <summary>Gets whether the "neg_inf_double" field is set</summary>
16204     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16205     public bool HasNegInfDouble {
16206       get { return (_hasBits0 & 4096) != 0; }
16207     }
16208     /// <summary>Clears the value of the "neg_inf_double" field</summary>
16209     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearNegInfDouble()16210     public void ClearNegInfDouble() {
16211       _hasBits0 &= ~4096;
16212     }
16213 
16214     /// <summary>Field number for the "nan_double" field.</summary>
16215     public const int NanDoubleFieldNumber = 16;
16216     private readonly static double NanDoubleDefaultValue = double.NaN;
16217 
16218     private double nanDouble_;
16219     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16220     public double NanDouble {
16221       get { if ((_hasBits0 & 8192) != 0) { return nanDouble_; } else { return NanDoubleDefaultValue; } }
16222       set {
16223         _hasBits0 |= 8192;
16224         nanDouble_ = value;
16225       }
16226     }
16227     /// <summary>Gets whether the "nan_double" field is set</summary>
16228     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16229     public bool HasNanDouble {
16230       get { return (_hasBits0 & 8192) != 0; }
16231     }
16232     /// <summary>Clears the value of the "nan_double" field</summary>
16233     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearNanDouble()16234     public void ClearNanDouble() {
16235       _hasBits0 &= ~8192;
16236     }
16237 
16238     /// <summary>Field number for the "inf_float" field.</summary>
16239     public const int InfFloatFieldNumber = 17;
16240     private readonly static float InfFloatDefaultValue = float.PositiveInfinity;
16241 
16242     private float infFloat_;
16243     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16244     public float InfFloat {
16245       get { if ((_hasBits0 & 16384) != 0) { return infFloat_; } else { return InfFloatDefaultValue; } }
16246       set {
16247         _hasBits0 |= 16384;
16248         infFloat_ = value;
16249       }
16250     }
16251     /// <summary>Gets whether the "inf_float" field is set</summary>
16252     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16253     public bool HasInfFloat {
16254       get { return (_hasBits0 & 16384) != 0; }
16255     }
16256     /// <summary>Clears the value of the "inf_float" field</summary>
16257     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearInfFloat()16258     public void ClearInfFloat() {
16259       _hasBits0 &= ~16384;
16260     }
16261 
16262     /// <summary>Field number for the "neg_inf_float" field.</summary>
16263     public const int NegInfFloatFieldNumber = 18;
16264     private readonly static float NegInfFloatDefaultValue = float.NegativeInfinity;
16265 
16266     private float negInfFloat_;
16267     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16268     public float NegInfFloat {
16269       get { if ((_hasBits0 & 32768) != 0) { return negInfFloat_; } else { return NegInfFloatDefaultValue; } }
16270       set {
16271         _hasBits0 |= 32768;
16272         negInfFloat_ = value;
16273       }
16274     }
16275     /// <summary>Gets whether the "neg_inf_float" field is set</summary>
16276     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16277     public bool HasNegInfFloat {
16278       get { return (_hasBits0 & 32768) != 0; }
16279     }
16280     /// <summary>Clears the value of the "neg_inf_float" field</summary>
16281     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearNegInfFloat()16282     public void ClearNegInfFloat() {
16283       _hasBits0 &= ~32768;
16284     }
16285 
16286     /// <summary>Field number for the "nan_float" field.</summary>
16287     public const int NanFloatFieldNumber = 19;
16288     private readonly static float NanFloatDefaultValue = float.NaN;
16289 
16290     private float nanFloat_;
16291     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16292     public float NanFloat {
16293       get { if ((_hasBits0 & 65536) != 0) { return nanFloat_; } else { return NanFloatDefaultValue; } }
16294       set {
16295         _hasBits0 |= 65536;
16296         nanFloat_ = value;
16297       }
16298     }
16299     /// <summary>Gets whether the "nan_float" field is set</summary>
16300     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16301     public bool HasNanFloat {
16302       get { return (_hasBits0 & 65536) != 0; }
16303     }
16304     /// <summary>Clears the value of the "nan_float" field</summary>
16305     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearNanFloat()16306     public void ClearNanFloat() {
16307       _hasBits0 &= ~65536;
16308     }
16309 
16310     /// <summary>Field number for the "cpp_trigraph" field.</summary>
16311     public const int CppTrigraphFieldNumber = 20;
16312     private readonly static string CppTrigraphDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("PyA/ID8/ID8/ID8/PyA/Py8gPz8t"), 0, 21);
16313 
16314     private string cppTrigraph_;
16315     /// <summary>
16316     /// Tests for C++ trigraphs.
16317     /// Trigraphs should be escaped in C++ generated files, but they should not be
16318     /// escaped for other languages.
16319     /// Note that in .proto file, "\?" is a valid way to escape ? in string
16320     /// literals.
16321     /// </summary>
16322     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16323     public string CppTrigraph {
16324       get { return cppTrigraph_ ?? CppTrigraphDefaultValue; }
16325       set {
16326         cppTrigraph_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
16327       }
16328     }
16329     /// <summary>Gets whether the "cpp_trigraph" field is set</summary>
16330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16331     public bool HasCppTrigraph {
16332       get { return cppTrigraph_ != null; }
16333     }
16334     /// <summary>Clears the value of the "cpp_trigraph" field</summary>
16335     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearCppTrigraph()16336     public void ClearCppTrigraph() {
16337       cppTrigraph_ = null;
16338     }
16339 
16340     /// <summary>Field number for the "string_with_zero" field.</summary>
16341     public const int StringWithZeroFieldNumber = 23;
16342     private readonly static string StringWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsAGxv"), 0, 6);
16343 
16344     private string stringWithZero_;
16345     /// <summary>
16346     /// String defaults containing the character '\000'
16347     /// </summary>
16348     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16349     public string StringWithZero {
16350       get { return stringWithZero_ ?? StringWithZeroDefaultValue; }
16351       set {
16352         stringWithZero_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
16353       }
16354     }
16355     /// <summary>Gets whether the "string_with_zero" field is set</summary>
16356     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16357     public bool HasStringWithZero {
16358       get { return stringWithZero_ != null; }
16359     }
16360     /// <summary>Clears the value of the "string_with_zero" field</summary>
16361     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearStringWithZero()16362     public void ClearStringWithZero() {
16363       stringWithZero_ = null;
16364     }
16365 
16366     /// <summary>Field number for the "bytes_with_zero" field.</summary>
16367     public const int BytesWithZeroFieldNumber = 24;
16368     private readonly static pb::ByteString BytesWithZeroDefaultValue = pb::ByteString.FromBase64("d29yAGxk");
16369 
16370     private pb::ByteString bytesWithZero_;
16371     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16372     public pb::ByteString BytesWithZero {
16373       get { return bytesWithZero_ ?? BytesWithZeroDefaultValue; }
16374       set {
16375         bytesWithZero_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
16376       }
16377     }
16378     /// <summary>Gets whether the "bytes_with_zero" field is set</summary>
16379     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16380     public bool HasBytesWithZero {
16381       get { return bytesWithZero_ != null; }
16382     }
16383     /// <summary>Clears the value of the "bytes_with_zero" field</summary>
16384     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBytesWithZero()16385     public void ClearBytesWithZero() {
16386       bytesWithZero_ = null;
16387     }
16388 
16389     /// <summary>Field number for the "string_piece_with_zero" field.</summary>
16390     public const int StringPieceWithZeroFieldNumber = 25;
16391     private readonly static string StringPieceWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWIAYw=="), 0, 4);
16392 
16393     private string stringPieceWithZero_;
16394     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16395     public string StringPieceWithZero {
16396       get { return stringPieceWithZero_ ?? StringPieceWithZeroDefaultValue; }
16397       set {
16398         stringPieceWithZero_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
16399       }
16400     }
16401     /// <summary>Gets whether the "string_piece_with_zero" field is set</summary>
16402     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16403     public bool HasStringPieceWithZero {
16404       get { return stringPieceWithZero_ != null; }
16405     }
16406     /// <summary>Clears the value of the "string_piece_with_zero" field</summary>
16407     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearStringPieceWithZero()16408     public void ClearStringPieceWithZero() {
16409       stringPieceWithZero_ = null;
16410     }
16411 
16412     /// <summary>Field number for the "cord_with_zero" field.</summary>
16413     public const int CordWithZeroFieldNumber = 26;
16414     private readonly static string CordWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIAMw=="), 0, 4);
16415 
16416     private string cordWithZero_;
16417     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16418     public string CordWithZero {
16419       get { return cordWithZero_ ?? CordWithZeroDefaultValue; }
16420       set {
16421         cordWithZero_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
16422       }
16423     }
16424     /// <summary>Gets whether the "cord_with_zero" field is set</summary>
16425     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16426     public bool HasCordWithZero {
16427       get { return cordWithZero_ != null; }
16428     }
16429     /// <summary>Clears the value of the "cord_with_zero" field</summary>
16430     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearCordWithZero()16431     public void ClearCordWithZero() {
16432       cordWithZero_ = null;
16433     }
16434 
16435     /// <summary>Field number for the "replacement_string" field.</summary>
16436     public const int ReplacementStringFieldNumber = 27;
16437     private readonly static string ReplacementStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("JHt1bmtub3dufQ=="), 0, 10);
16438 
16439     private string replacementString_;
16440     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16441     public string ReplacementString {
16442       get { return replacementString_ ?? ReplacementStringDefaultValue; }
16443       set {
16444         replacementString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
16445       }
16446     }
16447     /// <summary>Gets whether the "replacement_string" field is set</summary>
16448     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16449     public bool HasReplacementString {
16450       get { return replacementString_ != null; }
16451     }
16452     /// <summary>Clears the value of the "replacement_string" field</summary>
16453     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearReplacementString()16454     public void ClearReplacementString() {
16455       replacementString_ = null;
16456     }
16457 
16458     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)16459     public override bool Equals(object other) {
16460       return Equals(other as TestExtremeDefaultValues);
16461     }
16462 
16463     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestExtremeDefaultValues other)16464     public bool Equals(TestExtremeDefaultValues other) {
16465       if (ReferenceEquals(other, null)) {
16466         return false;
16467       }
16468       if (ReferenceEquals(other, this)) {
16469         return true;
16470       }
16471       if (EscapedBytes != other.EscapedBytes) return false;
16472       if (LargeUint32 != other.LargeUint32) return false;
16473       if (LargeUint64 != other.LargeUint64) return false;
16474       if (SmallInt32 != other.SmallInt32) return false;
16475       if (SmallInt64 != other.SmallInt64) return false;
16476       if (ReallySmallInt32 != other.ReallySmallInt32) return false;
16477       if (ReallySmallInt64 != other.ReallySmallInt64) return false;
16478       if (Utf8String != other.Utf8String) return false;
16479       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ZeroFloat, other.ZeroFloat)) return false;
16480       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(OneFloat, other.OneFloat)) return false;
16481       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SmallFloat, other.SmallFloat)) return false;
16482       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(NegativeOneFloat, other.NegativeOneFloat)) return false;
16483       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(NegativeFloat, other.NegativeFloat)) return false;
16484       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LargeFloat, other.LargeFloat)) return false;
16485       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SmallNegativeFloat, other.SmallNegativeFloat)) return false;
16486       if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InfDouble, other.InfDouble)) return false;
16487       if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(NegInfDouble, other.NegInfDouble)) return false;
16488       if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(NanDouble, other.NanDouble)) return false;
16489       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(InfFloat, other.InfFloat)) return false;
16490       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(NegInfFloat, other.NegInfFloat)) return false;
16491       if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(NanFloat, other.NanFloat)) return false;
16492       if (CppTrigraph != other.CppTrigraph) return false;
16493       if (StringWithZero != other.StringWithZero) return false;
16494       if (BytesWithZero != other.BytesWithZero) return false;
16495       if (StringPieceWithZero != other.StringPieceWithZero) return false;
16496       if (CordWithZero != other.CordWithZero) return false;
16497       if (ReplacementString != other.ReplacementString) return false;
16498       return Equals(_unknownFields, other._unknownFields);
16499     }
16500 
16501     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()16502     public override int GetHashCode() {
16503       int hash = 1;
16504       if (HasEscapedBytes) hash ^= EscapedBytes.GetHashCode();
16505       if (HasLargeUint32) hash ^= LargeUint32.GetHashCode();
16506       if (HasLargeUint64) hash ^= LargeUint64.GetHashCode();
16507       if (HasSmallInt32) hash ^= SmallInt32.GetHashCode();
16508       if (HasSmallInt64) hash ^= SmallInt64.GetHashCode();
16509       if (HasReallySmallInt32) hash ^= ReallySmallInt32.GetHashCode();
16510       if (HasReallySmallInt64) hash ^= ReallySmallInt64.GetHashCode();
16511       if (HasUtf8String) hash ^= Utf8String.GetHashCode();
16512       if (HasZeroFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ZeroFloat);
16513       if (HasOneFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(OneFloat);
16514       if (HasSmallFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SmallFloat);
16515       if (HasNegativeOneFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(NegativeOneFloat);
16516       if (HasNegativeFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(NegativeFloat);
16517       if (HasLargeFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LargeFloat);
16518       if (HasSmallNegativeFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SmallNegativeFloat);
16519       if (HasInfDouble) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InfDouble);
16520       if (HasNegInfDouble) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(NegInfDouble);
16521       if (HasNanDouble) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(NanDouble);
16522       if (HasInfFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(InfFloat);
16523       if (HasNegInfFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(NegInfFloat);
16524       if (HasNanFloat) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(NanFloat);
16525       if (HasCppTrigraph) hash ^= CppTrigraph.GetHashCode();
16526       if (HasStringWithZero) hash ^= StringWithZero.GetHashCode();
16527       if (HasBytesWithZero) hash ^= BytesWithZero.GetHashCode();
16528       if (HasStringPieceWithZero) hash ^= StringPieceWithZero.GetHashCode();
16529       if (HasCordWithZero) hash ^= CordWithZero.GetHashCode();
16530       if (HasReplacementString) hash ^= ReplacementString.GetHashCode();
16531       if (_unknownFields != null) {
16532         hash ^= _unknownFields.GetHashCode();
16533       }
16534       return hash;
16535     }
16536 
16537     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()16538     public override string ToString() {
16539       return pb::JsonFormatter.ToDiagnosticString(this);
16540     }
16541 
16542     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)16543     public void WriteTo(pb::CodedOutputStream output) {
16544     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
16545       output.WriteRawMessage(this);
16546     #else
16547       if (HasEscapedBytes) {
16548         output.WriteRawTag(10);
16549         output.WriteBytes(EscapedBytes);
16550       }
16551       if (HasLargeUint32) {
16552         output.WriteRawTag(16);
16553         output.WriteUInt32(LargeUint32);
16554       }
16555       if (HasLargeUint64) {
16556         output.WriteRawTag(24);
16557         output.WriteUInt64(LargeUint64);
16558       }
16559       if (HasSmallInt32) {
16560         output.WriteRawTag(32);
16561         output.WriteInt32(SmallInt32);
16562       }
16563       if (HasSmallInt64) {
16564         output.WriteRawTag(40);
16565         output.WriteInt64(SmallInt64);
16566       }
16567       if (HasUtf8String) {
16568         output.WriteRawTag(50);
16569         output.WriteString(Utf8String);
16570       }
16571       if (HasZeroFloat) {
16572         output.WriteRawTag(61);
16573         output.WriteFloat(ZeroFloat);
16574       }
16575       if (HasOneFloat) {
16576         output.WriteRawTag(69);
16577         output.WriteFloat(OneFloat);
16578       }
16579       if (HasSmallFloat) {
16580         output.WriteRawTag(77);
16581         output.WriteFloat(SmallFloat);
16582       }
16583       if (HasNegativeOneFloat) {
16584         output.WriteRawTag(85);
16585         output.WriteFloat(NegativeOneFloat);
16586       }
16587       if (HasNegativeFloat) {
16588         output.WriteRawTag(93);
16589         output.WriteFloat(NegativeFloat);
16590       }
16591       if (HasLargeFloat) {
16592         output.WriteRawTag(101);
16593         output.WriteFloat(LargeFloat);
16594       }
16595       if (HasSmallNegativeFloat) {
16596         output.WriteRawTag(109);
16597         output.WriteFloat(SmallNegativeFloat);
16598       }
16599       if (HasInfDouble) {
16600         output.WriteRawTag(113);
16601         output.WriteDouble(InfDouble);
16602       }
16603       if (HasNegInfDouble) {
16604         output.WriteRawTag(121);
16605         output.WriteDouble(NegInfDouble);
16606       }
16607       if (HasNanDouble) {
16608         output.WriteRawTag(129, 1);
16609         output.WriteDouble(NanDouble);
16610       }
16611       if (HasInfFloat) {
16612         output.WriteRawTag(141, 1);
16613         output.WriteFloat(InfFloat);
16614       }
16615       if (HasNegInfFloat) {
16616         output.WriteRawTag(149, 1);
16617         output.WriteFloat(NegInfFloat);
16618       }
16619       if (HasNanFloat) {
16620         output.WriteRawTag(157, 1);
16621         output.WriteFloat(NanFloat);
16622       }
16623       if (HasCppTrigraph) {
16624         output.WriteRawTag(162, 1);
16625         output.WriteString(CppTrigraph);
16626       }
16627       if (HasReallySmallInt32) {
16628         output.WriteRawTag(168, 1);
16629         output.WriteInt32(ReallySmallInt32);
16630       }
16631       if (HasReallySmallInt64) {
16632         output.WriteRawTag(176, 1);
16633         output.WriteInt64(ReallySmallInt64);
16634       }
16635       if (HasStringWithZero) {
16636         output.WriteRawTag(186, 1);
16637         output.WriteString(StringWithZero);
16638       }
16639       if (HasBytesWithZero) {
16640         output.WriteRawTag(194, 1);
16641         output.WriteBytes(BytesWithZero);
16642       }
16643       if (HasStringPieceWithZero) {
16644         output.WriteRawTag(202, 1);
16645         output.WriteString(StringPieceWithZero);
16646       }
16647       if (HasCordWithZero) {
16648         output.WriteRawTag(210, 1);
16649         output.WriteString(CordWithZero);
16650       }
16651       if (HasReplacementString) {
16652         output.WriteRawTag(218, 1);
16653         output.WriteString(ReplacementString);
16654       }
16655       if (_unknownFields != null) {
16656         _unknownFields.WriteTo(output);
16657       }
16658     #endif
16659     }
16660 
16661     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
16662     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)16663     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
16664       if (HasEscapedBytes) {
16665         output.WriteRawTag(10);
16666         output.WriteBytes(EscapedBytes);
16667       }
16668       if (HasLargeUint32) {
16669         output.WriteRawTag(16);
16670         output.WriteUInt32(LargeUint32);
16671       }
16672       if (HasLargeUint64) {
16673         output.WriteRawTag(24);
16674         output.WriteUInt64(LargeUint64);
16675       }
16676       if (HasSmallInt32) {
16677         output.WriteRawTag(32);
16678         output.WriteInt32(SmallInt32);
16679       }
16680       if (HasSmallInt64) {
16681         output.WriteRawTag(40);
16682         output.WriteInt64(SmallInt64);
16683       }
16684       if (HasUtf8String) {
16685         output.WriteRawTag(50);
16686         output.WriteString(Utf8String);
16687       }
16688       if (HasZeroFloat) {
16689         output.WriteRawTag(61);
16690         output.WriteFloat(ZeroFloat);
16691       }
16692       if (HasOneFloat) {
16693         output.WriteRawTag(69);
16694         output.WriteFloat(OneFloat);
16695       }
16696       if (HasSmallFloat) {
16697         output.WriteRawTag(77);
16698         output.WriteFloat(SmallFloat);
16699       }
16700       if (HasNegativeOneFloat) {
16701         output.WriteRawTag(85);
16702         output.WriteFloat(NegativeOneFloat);
16703       }
16704       if (HasNegativeFloat) {
16705         output.WriteRawTag(93);
16706         output.WriteFloat(NegativeFloat);
16707       }
16708       if (HasLargeFloat) {
16709         output.WriteRawTag(101);
16710         output.WriteFloat(LargeFloat);
16711       }
16712       if (HasSmallNegativeFloat) {
16713         output.WriteRawTag(109);
16714         output.WriteFloat(SmallNegativeFloat);
16715       }
16716       if (HasInfDouble) {
16717         output.WriteRawTag(113);
16718         output.WriteDouble(InfDouble);
16719       }
16720       if (HasNegInfDouble) {
16721         output.WriteRawTag(121);
16722         output.WriteDouble(NegInfDouble);
16723       }
16724       if (HasNanDouble) {
16725         output.WriteRawTag(129, 1);
16726         output.WriteDouble(NanDouble);
16727       }
16728       if (HasInfFloat) {
16729         output.WriteRawTag(141, 1);
16730         output.WriteFloat(InfFloat);
16731       }
16732       if (HasNegInfFloat) {
16733         output.WriteRawTag(149, 1);
16734         output.WriteFloat(NegInfFloat);
16735       }
16736       if (HasNanFloat) {
16737         output.WriteRawTag(157, 1);
16738         output.WriteFloat(NanFloat);
16739       }
16740       if (HasCppTrigraph) {
16741         output.WriteRawTag(162, 1);
16742         output.WriteString(CppTrigraph);
16743       }
16744       if (HasReallySmallInt32) {
16745         output.WriteRawTag(168, 1);
16746         output.WriteInt32(ReallySmallInt32);
16747       }
16748       if (HasReallySmallInt64) {
16749         output.WriteRawTag(176, 1);
16750         output.WriteInt64(ReallySmallInt64);
16751       }
16752       if (HasStringWithZero) {
16753         output.WriteRawTag(186, 1);
16754         output.WriteString(StringWithZero);
16755       }
16756       if (HasBytesWithZero) {
16757         output.WriteRawTag(194, 1);
16758         output.WriteBytes(BytesWithZero);
16759       }
16760       if (HasStringPieceWithZero) {
16761         output.WriteRawTag(202, 1);
16762         output.WriteString(StringPieceWithZero);
16763       }
16764       if (HasCordWithZero) {
16765         output.WriteRawTag(210, 1);
16766         output.WriteString(CordWithZero);
16767       }
16768       if (HasReplacementString) {
16769         output.WriteRawTag(218, 1);
16770         output.WriteString(ReplacementString);
16771       }
16772       if (_unknownFields != null) {
16773         _unknownFields.WriteTo(ref output);
16774       }
16775     }
16776     #endif
16777 
16778     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()16779     public int CalculateSize() {
16780       int size = 0;
16781       if (HasEscapedBytes) {
16782         size += 1 + pb::CodedOutputStream.ComputeBytesSize(EscapedBytes);
16783       }
16784       if (HasLargeUint32) {
16785         size += 1 + pb::CodedOutputStream.ComputeUInt32Size(LargeUint32);
16786       }
16787       if (HasLargeUint64) {
16788         size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LargeUint64);
16789       }
16790       if (HasSmallInt32) {
16791         size += 1 + pb::CodedOutputStream.ComputeInt32Size(SmallInt32);
16792       }
16793       if (HasSmallInt64) {
16794         size += 1 + pb::CodedOutputStream.ComputeInt64Size(SmallInt64);
16795       }
16796       if (HasReallySmallInt32) {
16797         size += 2 + pb::CodedOutputStream.ComputeInt32Size(ReallySmallInt32);
16798       }
16799       if (HasReallySmallInt64) {
16800         size += 2 + pb::CodedOutputStream.ComputeInt64Size(ReallySmallInt64);
16801       }
16802       if (HasUtf8String) {
16803         size += 1 + pb::CodedOutputStream.ComputeStringSize(Utf8String);
16804       }
16805       if (HasZeroFloat) {
16806         size += 1 + 4;
16807       }
16808       if (HasOneFloat) {
16809         size += 1 + 4;
16810       }
16811       if (HasSmallFloat) {
16812         size += 1 + 4;
16813       }
16814       if (HasNegativeOneFloat) {
16815         size += 1 + 4;
16816       }
16817       if (HasNegativeFloat) {
16818         size += 1 + 4;
16819       }
16820       if (HasLargeFloat) {
16821         size += 1 + 4;
16822       }
16823       if (HasSmallNegativeFloat) {
16824         size += 1 + 4;
16825       }
16826       if (HasInfDouble) {
16827         size += 1 + 8;
16828       }
16829       if (HasNegInfDouble) {
16830         size += 1 + 8;
16831       }
16832       if (HasNanDouble) {
16833         size += 2 + 8;
16834       }
16835       if (HasInfFloat) {
16836         size += 2 + 4;
16837       }
16838       if (HasNegInfFloat) {
16839         size += 2 + 4;
16840       }
16841       if (HasNanFloat) {
16842         size += 2 + 4;
16843       }
16844       if (HasCppTrigraph) {
16845         size += 2 + pb::CodedOutputStream.ComputeStringSize(CppTrigraph);
16846       }
16847       if (HasStringWithZero) {
16848         size += 2 + pb::CodedOutputStream.ComputeStringSize(StringWithZero);
16849       }
16850       if (HasBytesWithZero) {
16851         size += 2 + pb::CodedOutputStream.ComputeBytesSize(BytesWithZero);
16852       }
16853       if (HasStringPieceWithZero) {
16854         size += 2 + pb::CodedOutputStream.ComputeStringSize(StringPieceWithZero);
16855       }
16856       if (HasCordWithZero) {
16857         size += 2 + pb::CodedOutputStream.ComputeStringSize(CordWithZero);
16858       }
16859       if (HasReplacementString) {
16860         size += 2 + pb::CodedOutputStream.ComputeStringSize(ReplacementString);
16861       }
16862       if (_unknownFields != null) {
16863         size += _unknownFields.CalculateSize();
16864       }
16865       return size;
16866     }
16867 
16868     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestExtremeDefaultValues other)16869     public void MergeFrom(TestExtremeDefaultValues other) {
16870       if (other == null) {
16871         return;
16872       }
16873       if (other.HasEscapedBytes) {
16874         EscapedBytes = other.EscapedBytes;
16875       }
16876       if (other.HasLargeUint32) {
16877         LargeUint32 = other.LargeUint32;
16878       }
16879       if (other.HasLargeUint64) {
16880         LargeUint64 = other.LargeUint64;
16881       }
16882       if (other.HasSmallInt32) {
16883         SmallInt32 = other.SmallInt32;
16884       }
16885       if (other.HasSmallInt64) {
16886         SmallInt64 = other.SmallInt64;
16887       }
16888       if (other.HasReallySmallInt32) {
16889         ReallySmallInt32 = other.ReallySmallInt32;
16890       }
16891       if (other.HasReallySmallInt64) {
16892         ReallySmallInt64 = other.ReallySmallInt64;
16893       }
16894       if (other.HasUtf8String) {
16895         Utf8String = other.Utf8String;
16896       }
16897       if (other.HasZeroFloat) {
16898         ZeroFloat = other.ZeroFloat;
16899       }
16900       if (other.HasOneFloat) {
16901         OneFloat = other.OneFloat;
16902       }
16903       if (other.HasSmallFloat) {
16904         SmallFloat = other.SmallFloat;
16905       }
16906       if (other.HasNegativeOneFloat) {
16907         NegativeOneFloat = other.NegativeOneFloat;
16908       }
16909       if (other.HasNegativeFloat) {
16910         NegativeFloat = other.NegativeFloat;
16911       }
16912       if (other.HasLargeFloat) {
16913         LargeFloat = other.LargeFloat;
16914       }
16915       if (other.HasSmallNegativeFloat) {
16916         SmallNegativeFloat = other.SmallNegativeFloat;
16917       }
16918       if (other.HasInfDouble) {
16919         InfDouble = other.InfDouble;
16920       }
16921       if (other.HasNegInfDouble) {
16922         NegInfDouble = other.NegInfDouble;
16923       }
16924       if (other.HasNanDouble) {
16925         NanDouble = other.NanDouble;
16926       }
16927       if (other.HasInfFloat) {
16928         InfFloat = other.InfFloat;
16929       }
16930       if (other.HasNegInfFloat) {
16931         NegInfFloat = other.NegInfFloat;
16932       }
16933       if (other.HasNanFloat) {
16934         NanFloat = other.NanFloat;
16935       }
16936       if (other.HasCppTrigraph) {
16937         CppTrigraph = other.CppTrigraph;
16938       }
16939       if (other.HasStringWithZero) {
16940         StringWithZero = other.StringWithZero;
16941       }
16942       if (other.HasBytesWithZero) {
16943         BytesWithZero = other.BytesWithZero;
16944       }
16945       if (other.HasStringPieceWithZero) {
16946         StringPieceWithZero = other.StringPieceWithZero;
16947       }
16948       if (other.HasCordWithZero) {
16949         CordWithZero = other.CordWithZero;
16950       }
16951       if (other.HasReplacementString) {
16952         ReplacementString = other.ReplacementString;
16953       }
16954       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
16955     }
16956 
16957     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)16958     public void MergeFrom(pb::CodedInputStream input) {
16959     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
16960       input.ReadRawMessage(this);
16961     #else
16962       uint tag;
16963       while ((tag = input.ReadTag()) != 0) {
16964         switch(tag) {
16965           default:
16966             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
16967             break;
16968           case 10: {
16969             EscapedBytes = input.ReadBytes();
16970             break;
16971           }
16972           case 16: {
16973             LargeUint32 = input.ReadUInt32();
16974             break;
16975           }
16976           case 24: {
16977             LargeUint64 = input.ReadUInt64();
16978             break;
16979           }
16980           case 32: {
16981             SmallInt32 = input.ReadInt32();
16982             break;
16983           }
16984           case 40: {
16985             SmallInt64 = input.ReadInt64();
16986             break;
16987           }
16988           case 50: {
16989             Utf8String = input.ReadString();
16990             break;
16991           }
16992           case 61: {
16993             ZeroFloat = input.ReadFloat();
16994             break;
16995           }
16996           case 69: {
16997             OneFloat = input.ReadFloat();
16998             break;
16999           }
17000           case 77: {
17001             SmallFloat = input.ReadFloat();
17002             break;
17003           }
17004           case 85: {
17005             NegativeOneFloat = input.ReadFloat();
17006             break;
17007           }
17008           case 93: {
17009             NegativeFloat = input.ReadFloat();
17010             break;
17011           }
17012           case 101: {
17013             LargeFloat = input.ReadFloat();
17014             break;
17015           }
17016           case 109: {
17017             SmallNegativeFloat = input.ReadFloat();
17018             break;
17019           }
17020           case 113: {
17021             InfDouble = input.ReadDouble();
17022             break;
17023           }
17024           case 121: {
17025             NegInfDouble = input.ReadDouble();
17026             break;
17027           }
17028           case 129: {
17029             NanDouble = input.ReadDouble();
17030             break;
17031           }
17032           case 141: {
17033             InfFloat = input.ReadFloat();
17034             break;
17035           }
17036           case 149: {
17037             NegInfFloat = input.ReadFloat();
17038             break;
17039           }
17040           case 157: {
17041             NanFloat = input.ReadFloat();
17042             break;
17043           }
17044           case 162: {
17045             CppTrigraph = input.ReadString();
17046             break;
17047           }
17048           case 168: {
17049             ReallySmallInt32 = input.ReadInt32();
17050             break;
17051           }
17052           case 176: {
17053             ReallySmallInt64 = input.ReadInt64();
17054             break;
17055           }
17056           case 186: {
17057             StringWithZero = input.ReadString();
17058             break;
17059           }
17060           case 194: {
17061             BytesWithZero = input.ReadBytes();
17062             break;
17063           }
17064           case 202: {
17065             StringPieceWithZero = input.ReadString();
17066             break;
17067           }
17068           case 210: {
17069             CordWithZero = input.ReadString();
17070             break;
17071           }
17072           case 218: {
17073             ReplacementString = input.ReadString();
17074             break;
17075           }
17076         }
17077       }
17078     #endif
17079     }
17080 
17081     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17082     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)17083     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
17084       uint tag;
17085       while ((tag = input.ReadTag()) != 0) {
17086         switch(tag) {
17087           default:
17088             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
17089             break;
17090           case 10: {
17091             EscapedBytes = input.ReadBytes();
17092             break;
17093           }
17094           case 16: {
17095             LargeUint32 = input.ReadUInt32();
17096             break;
17097           }
17098           case 24: {
17099             LargeUint64 = input.ReadUInt64();
17100             break;
17101           }
17102           case 32: {
17103             SmallInt32 = input.ReadInt32();
17104             break;
17105           }
17106           case 40: {
17107             SmallInt64 = input.ReadInt64();
17108             break;
17109           }
17110           case 50: {
17111             Utf8String = input.ReadString();
17112             break;
17113           }
17114           case 61: {
17115             ZeroFloat = input.ReadFloat();
17116             break;
17117           }
17118           case 69: {
17119             OneFloat = input.ReadFloat();
17120             break;
17121           }
17122           case 77: {
17123             SmallFloat = input.ReadFloat();
17124             break;
17125           }
17126           case 85: {
17127             NegativeOneFloat = input.ReadFloat();
17128             break;
17129           }
17130           case 93: {
17131             NegativeFloat = input.ReadFloat();
17132             break;
17133           }
17134           case 101: {
17135             LargeFloat = input.ReadFloat();
17136             break;
17137           }
17138           case 109: {
17139             SmallNegativeFloat = input.ReadFloat();
17140             break;
17141           }
17142           case 113: {
17143             InfDouble = input.ReadDouble();
17144             break;
17145           }
17146           case 121: {
17147             NegInfDouble = input.ReadDouble();
17148             break;
17149           }
17150           case 129: {
17151             NanDouble = input.ReadDouble();
17152             break;
17153           }
17154           case 141: {
17155             InfFloat = input.ReadFloat();
17156             break;
17157           }
17158           case 149: {
17159             NegInfFloat = input.ReadFloat();
17160             break;
17161           }
17162           case 157: {
17163             NanFloat = input.ReadFloat();
17164             break;
17165           }
17166           case 162: {
17167             CppTrigraph = input.ReadString();
17168             break;
17169           }
17170           case 168: {
17171             ReallySmallInt32 = input.ReadInt32();
17172             break;
17173           }
17174           case 176: {
17175             ReallySmallInt64 = input.ReadInt64();
17176             break;
17177           }
17178           case 186: {
17179             StringWithZero = input.ReadString();
17180             break;
17181           }
17182           case 194: {
17183             BytesWithZero = input.ReadBytes();
17184             break;
17185           }
17186           case 202: {
17187             StringPieceWithZero = input.ReadString();
17188             break;
17189           }
17190           case 210: {
17191             CordWithZero = input.ReadString();
17192             break;
17193           }
17194           case 218: {
17195             ReplacementString = input.ReadString();
17196             break;
17197           }
17198         }
17199       }
17200     }
17201     #endif
17202 
17203   }
17204 
17205   public sealed partial class SparseEnumMessage : pb::IMessage<SparseEnumMessage>
17206   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17207       , pb::IBufferMessage
17208   #endif
17209   {
17210     private static readonly pb::MessageParser<SparseEnumMessage> _parser = new pb::MessageParser<SparseEnumMessage>(() => new SparseEnumMessage());
17211     private pb::UnknownFieldSet _unknownFields;
17212     private int _hasBits0;
17213     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17214     public static pb::MessageParser<SparseEnumMessage> Parser { get { return _parser; } }
17215 
17216     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17217     public static pbr::MessageDescriptor Descriptor {
17218       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[33]; }
17219     }
17220 
17221     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17222     pbr::MessageDescriptor pb::IMessage.Descriptor {
17223       get { return Descriptor; }
17224     }
17225 
17226     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SparseEnumMessage()17227     public SparseEnumMessage() {
17228       OnConstruction();
17229     }
17230 
OnConstruction()17231     partial void OnConstruction();
17232 
17233     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
SparseEnumMessage(SparseEnumMessage other)17234     public SparseEnumMessage(SparseEnumMessage other) : this() {
17235       _hasBits0 = other._hasBits0;
17236       sparseEnum_ = other.sparseEnum_;
17237       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
17238     }
17239 
17240     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()17241     public SparseEnumMessage Clone() {
17242       return new SparseEnumMessage(this);
17243     }
17244 
17245     /// <summary>Field number for the "sparse_enum" field.</summary>
17246     public const int SparseEnumFieldNumber = 1;
17247     private readonly static global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum SparseEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum.SparseA;
17248 
17249     private global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum sparseEnum_;
17250     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17251     public global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum SparseEnum {
17252       get { if ((_hasBits0 & 1) != 0) { return sparseEnum_; } else { return SparseEnumDefaultValue; } }
17253       set {
17254         _hasBits0 |= 1;
17255         sparseEnum_ = value;
17256       }
17257     }
17258     /// <summary>Gets whether the "sparse_enum" field is set</summary>
17259     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17260     public bool HasSparseEnum {
17261       get { return (_hasBits0 & 1) != 0; }
17262     }
17263     /// <summary>Clears the value of the "sparse_enum" field</summary>
17264     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearSparseEnum()17265     public void ClearSparseEnum() {
17266       _hasBits0 &= ~1;
17267     }
17268 
17269     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)17270     public override bool Equals(object other) {
17271       return Equals(other as SparseEnumMessage);
17272     }
17273 
17274     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(SparseEnumMessage other)17275     public bool Equals(SparseEnumMessage other) {
17276       if (ReferenceEquals(other, null)) {
17277         return false;
17278       }
17279       if (ReferenceEquals(other, this)) {
17280         return true;
17281       }
17282       if (SparseEnum != other.SparseEnum) return false;
17283       return Equals(_unknownFields, other._unknownFields);
17284     }
17285 
17286     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()17287     public override int GetHashCode() {
17288       int hash = 1;
17289       if (HasSparseEnum) hash ^= SparseEnum.GetHashCode();
17290       if (_unknownFields != null) {
17291         hash ^= _unknownFields.GetHashCode();
17292       }
17293       return hash;
17294     }
17295 
17296     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()17297     public override string ToString() {
17298       return pb::JsonFormatter.ToDiagnosticString(this);
17299     }
17300 
17301     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)17302     public void WriteTo(pb::CodedOutputStream output) {
17303     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17304       output.WriteRawMessage(this);
17305     #else
17306       if (HasSparseEnum) {
17307         output.WriteRawTag(8);
17308         output.WriteEnum((int) SparseEnum);
17309       }
17310       if (_unknownFields != null) {
17311         _unknownFields.WriteTo(output);
17312       }
17313     #endif
17314     }
17315 
17316     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17317     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)17318     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
17319       if (HasSparseEnum) {
17320         output.WriteRawTag(8);
17321         output.WriteEnum((int) SparseEnum);
17322       }
17323       if (_unknownFields != null) {
17324         _unknownFields.WriteTo(ref output);
17325       }
17326     }
17327     #endif
17328 
17329     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()17330     public int CalculateSize() {
17331       int size = 0;
17332       if (HasSparseEnum) {
17333         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SparseEnum);
17334       }
17335       if (_unknownFields != null) {
17336         size += _unknownFields.CalculateSize();
17337       }
17338       return size;
17339     }
17340 
17341     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(SparseEnumMessage other)17342     public void MergeFrom(SparseEnumMessage other) {
17343       if (other == null) {
17344         return;
17345       }
17346       if (other.HasSparseEnum) {
17347         SparseEnum = other.SparseEnum;
17348       }
17349       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
17350     }
17351 
17352     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)17353     public void MergeFrom(pb::CodedInputStream input) {
17354     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17355       input.ReadRawMessage(this);
17356     #else
17357       uint tag;
17358       while ((tag = input.ReadTag()) != 0) {
17359         switch(tag) {
17360           default:
17361             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
17362             break;
17363           case 8: {
17364             SparseEnum = (global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum) input.ReadEnum();
17365             break;
17366           }
17367         }
17368       }
17369     #endif
17370     }
17371 
17372     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17373     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)17374     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
17375       uint tag;
17376       while ((tag = input.ReadTag()) != 0) {
17377         switch(tag) {
17378           default:
17379             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
17380             break;
17381           case 8: {
17382             SparseEnum = (global::Google.Protobuf.TestProtos.Proto2.TestSparseEnum) input.ReadEnum();
17383             break;
17384           }
17385         }
17386       }
17387     }
17388     #endif
17389 
17390   }
17391 
17392   /// <summary>
17393   /// Test String and Bytes: string is for valid UTF-8 strings
17394   /// </summary>
17395   public sealed partial class OneString : pb::IMessage<OneString>
17396   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17397       , pb::IBufferMessage
17398   #endif
17399   {
17400     private static readonly pb::MessageParser<OneString> _parser = new pb::MessageParser<OneString>(() => new OneString());
17401     private pb::UnknownFieldSet _unknownFields;
17402     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17403     public static pb::MessageParser<OneString> Parser { get { return _parser; } }
17404 
17405     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17406     public static pbr::MessageDescriptor Descriptor {
17407       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[34]; }
17408     }
17409 
17410     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17411     pbr::MessageDescriptor pb::IMessage.Descriptor {
17412       get { return Descriptor; }
17413     }
17414 
17415     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OneString()17416     public OneString() {
17417       OnConstruction();
17418     }
17419 
OnConstruction()17420     partial void OnConstruction();
17421 
17422     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OneString(OneString other)17423     public OneString(OneString other) : this() {
17424       data_ = other.data_;
17425       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
17426     }
17427 
17428     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()17429     public OneString Clone() {
17430       return new OneString(this);
17431     }
17432 
17433     /// <summary>Field number for the "data" field.</summary>
17434     public const int DataFieldNumber = 1;
17435     private readonly static string DataDefaultValue = "";
17436 
17437     private string data_;
17438     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17439     public string Data {
17440       get { return data_ ?? DataDefaultValue; }
17441       set {
17442         data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
17443       }
17444     }
17445     /// <summary>Gets whether the "data" field is set</summary>
17446     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17447     public bool HasData {
17448       get { return data_ != null; }
17449     }
17450     /// <summary>Clears the value of the "data" field</summary>
17451     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()17452     public void ClearData() {
17453       data_ = null;
17454     }
17455 
17456     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)17457     public override bool Equals(object other) {
17458       return Equals(other as OneString);
17459     }
17460 
17461     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OneString other)17462     public bool Equals(OneString other) {
17463       if (ReferenceEquals(other, null)) {
17464         return false;
17465       }
17466       if (ReferenceEquals(other, this)) {
17467         return true;
17468       }
17469       if (Data != other.Data) return false;
17470       return Equals(_unknownFields, other._unknownFields);
17471     }
17472 
17473     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()17474     public override int GetHashCode() {
17475       int hash = 1;
17476       if (HasData) hash ^= Data.GetHashCode();
17477       if (_unknownFields != null) {
17478         hash ^= _unknownFields.GetHashCode();
17479       }
17480       return hash;
17481     }
17482 
17483     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()17484     public override string ToString() {
17485       return pb::JsonFormatter.ToDiagnosticString(this);
17486     }
17487 
17488     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)17489     public void WriteTo(pb::CodedOutputStream output) {
17490     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17491       output.WriteRawMessage(this);
17492     #else
17493       if (HasData) {
17494         output.WriteRawTag(10);
17495         output.WriteString(Data);
17496       }
17497       if (_unknownFields != null) {
17498         _unknownFields.WriteTo(output);
17499       }
17500     #endif
17501     }
17502 
17503     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17504     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)17505     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
17506       if (HasData) {
17507         output.WriteRawTag(10);
17508         output.WriteString(Data);
17509       }
17510       if (_unknownFields != null) {
17511         _unknownFields.WriteTo(ref output);
17512       }
17513     }
17514     #endif
17515 
17516     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()17517     public int CalculateSize() {
17518       int size = 0;
17519       if (HasData) {
17520         size += 1 + pb::CodedOutputStream.ComputeStringSize(Data);
17521       }
17522       if (_unknownFields != null) {
17523         size += _unknownFields.CalculateSize();
17524       }
17525       return size;
17526     }
17527 
17528     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OneString other)17529     public void MergeFrom(OneString other) {
17530       if (other == null) {
17531         return;
17532       }
17533       if (other.HasData) {
17534         Data = other.Data;
17535       }
17536       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
17537     }
17538 
17539     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)17540     public void MergeFrom(pb::CodedInputStream input) {
17541     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17542       input.ReadRawMessage(this);
17543     #else
17544       uint tag;
17545       while ((tag = input.ReadTag()) != 0) {
17546         switch(tag) {
17547           default:
17548             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
17549             break;
17550           case 10: {
17551             Data = input.ReadString();
17552             break;
17553           }
17554         }
17555       }
17556     #endif
17557     }
17558 
17559     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17560     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)17561     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
17562       uint tag;
17563       while ((tag = input.ReadTag()) != 0) {
17564         switch(tag) {
17565           default:
17566             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
17567             break;
17568           case 10: {
17569             Data = input.ReadString();
17570             break;
17571           }
17572         }
17573       }
17574     }
17575     #endif
17576 
17577   }
17578 
17579   public sealed partial class MoreString : pb::IMessage<MoreString>
17580   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17581       , pb::IBufferMessage
17582   #endif
17583   {
17584     private static readonly pb::MessageParser<MoreString> _parser = new pb::MessageParser<MoreString>(() => new MoreString());
17585     private pb::UnknownFieldSet _unknownFields;
17586     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17587     public static pb::MessageParser<MoreString> Parser { get { return _parser; } }
17588 
17589     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17590     public static pbr::MessageDescriptor Descriptor {
17591       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[35]; }
17592     }
17593 
17594     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17595     pbr::MessageDescriptor pb::IMessage.Descriptor {
17596       get { return Descriptor; }
17597     }
17598 
17599     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MoreString()17600     public MoreString() {
17601       OnConstruction();
17602     }
17603 
OnConstruction()17604     partial void OnConstruction();
17605 
17606     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MoreString(MoreString other)17607     public MoreString(MoreString other) : this() {
17608       data_ = other.data_.Clone();
17609       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
17610     }
17611 
17612     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()17613     public MoreString Clone() {
17614       return new MoreString(this);
17615     }
17616 
17617     /// <summary>Field number for the "data" field.</summary>
17618     public const int DataFieldNumber = 1;
17619     private static readonly pb::FieldCodec<string> _repeated_data_codec
17620         = pb::FieldCodec.ForString(10);
17621     private readonly pbc::RepeatedField<string> data_ = new pbc::RepeatedField<string>();
17622     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17623     public pbc::RepeatedField<string> Data {
17624       get { return data_; }
17625     }
17626 
17627     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)17628     public override bool Equals(object other) {
17629       return Equals(other as MoreString);
17630     }
17631 
17632     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(MoreString other)17633     public bool Equals(MoreString other) {
17634       if (ReferenceEquals(other, null)) {
17635         return false;
17636       }
17637       if (ReferenceEquals(other, this)) {
17638         return true;
17639       }
17640       if(!data_.Equals(other.data_)) return false;
17641       return Equals(_unknownFields, other._unknownFields);
17642     }
17643 
17644     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()17645     public override int GetHashCode() {
17646       int hash = 1;
17647       hash ^= data_.GetHashCode();
17648       if (_unknownFields != null) {
17649         hash ^= _unknownFields.GetHashCode();
17650       }
17651       return hash;
17652     }
17653 
17654     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()17655     public override string ToString() {
17656       return pb::JsonFormatter.ToDiagnosticString(this);
17657     }
17658 
17659     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)17660     public void WriteTo(pb::CodedOutputStream output) {
17661     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17662       output.WriteRawMessage(this);
17663     #else
17664       data_.WriteTo(output, _repeated_data_codec);
17665       if (_unknownFields != null) {
17666         _unknownFields.WriteTo(output);
17667       }
17668     #endif
17669     }
17670 
17671     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17672     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)17673     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
17674       data_.WriteTo(ref output, _repeated_data_codec);
17675       if (_unknownFields != null) {
17676         _unknownFields.WriteTo(ref output);
17677       }
17678     }
17679     #endif
17680 
17681     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()17682     public int CalculateSize() {
17683       int size = 0;
17684       size += data_.CalculateSize(_repeated_data_codec);
17685       if (_unknownFields != null) {
17686         size += _unknownFields.CalculateSize();
17687       }
17688       return size;
17689     }
17690 
17691     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(MoreString other)17692     public void MergeFrom(MoreString other) {
17693       if (other == null) {
17694         return;
17695       }
17696       data_.Add(other.data_);
17697       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
17698     }
17699 
17700     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)17701     public void MergeFrom(pb::CodedInputStream input) {
17702     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17703       input.ReadRawMessage(this);
17704     #else
17705       uint tag;
17706       while ((tag = input.ReadTag()) != 0) {
17707         switch(tag) {
17708           default:
17709             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
17710             break;
17711           case 10: {
17712             data_.AddEntriesFrom(input, _repeated_data_codec);
17713             break;
17714           }
17715         }
17716       }
17717     #endif
17718     }
17719 
17720     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17721     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)17722     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
17723       uint tag;
17724       while ((tag = input.ReadTag()) != 0) {
17725         switch(tag) {
17726           default:
17727             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
17728             break;
17729           case 10: {
17730             data_.AddEntriesFrom(ref input, _repeated_data_codec);
17731             break;
17732           }
17733         }
17734       }
17735     }
17736     #endif
17737 
17738   }
17739 
17740   public sealed partial class OneBytes : pb::IMessage<OneBytes>
17741   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17742       , pb::IBufferMessage
17743   #endif
17744   {
17745     private static readonly pb::MessageParser<OneBytes> _parser = new pb::MessageParser<OneBytes>(() => new OneBytes());
17746     private pb::UnknownFieldSet _unknownFields;
17747     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17748     public static pb::MessageParser<OneBytes> Parser { get { return _parser; } }
17749 
17750     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17751     public static pbr::MessageDescriptor Descriptor {
17752       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[36]; }
17753     }
17754 
17755     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17756     pbr::MessageDescriptor pb::IMessage.Descriptor {
17757       get { return Descriptor; }
17758     }
17759 
17760     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OneBytes()17761     public OneBytes() {
17762       OnConstruction();
17763     }
17764 
OnConstruction()17765     partial void OnConstruction();
17766 
17767     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OneBytes(OneBytes other)17768     public OneBytes(OneBytes other) : this() {
17769       data_ = other.data_;
17770       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
17771     }
17772 
17773     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()17774     public OneBytes Clone() {
17775       return new OneBytes(this);
17776     }
17777 
17778     /// <summary>Field number for the "data" field.</summary>
17779     public const int DataFieldNumber = 1;
17780     private readonly static pb::ByteString DataDefaultValue = pb::ByteString.Empty;
17781 
17782     private pb::ByteString data_;
17783     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17784     public pb::ByteString Data {
17785       get { return data_ ?? DataDefaultValue; }
17786       set {
17787         data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
17788       }
17789     }
17790     /// <summary>Gets whether the "data" field is set</summary>
17791     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17792     public bool HasData {
17793       get { return data_ != null; }
17794     }
17795     /// <summary>Clears the value of the "data" field</summary>
17796     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()17797     public void ClearData() {
17798       data_ = null;
17799     }
17800 
17801     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)17802     public override bool Equals(object other) {
17803       return Equals(other as OneBytes);
17804     }
17805 
17806     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OneBytes other)17807     public bool Equals(OneBytes other) {
17808       if (ReferenceEquals(other, null)) {
17809         return false;
17810       }
17811       if (ReferenceEquals(other, this)) {
17812         return true;
17813       }
17814       if (Data != other.Data) return false;
17815       return Equals(_unknownFields, other._unknownFields);
17816     }
17817 
17818     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()17819     public override int GetHashCode() {
17820       int hash = 1;
17821       if (HasData) hash ^= Data.GetHashCode();
17822       if (_unknownFields != null) {
17823         hash ^= _unknownFields.GetHashCode();
17824       }
17825       return hash;
17826     }
17827 
17828     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()17829     public override string ToString() {
17830       return pb::JsonFormatter.ToDiagnosticString(this);
17831     }
17832 
17833     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)17834     public void WriteTo(pb::CodedOutputStream output) {
17835     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17836       output.WriteRawMessage(this);
17837     #else
17838       if (HasData) {
17839         output.WriteRawTag(10);
17840         output.WriteBytes(Data);
17841       }
17842       if (_unknownFields != null) {
17843         _unknownFields.WriteTo(output);
17844       }
17845     #endif
17846     }
17847 
17848     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17849     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)17850     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
17851       if (HasData) {
17852         output.WriteRawTag(10);
17853         output.WriteBytes(Data);
17854       }
17855       if (_unknownFields != null) {
17856         _unknownFields.WriteTo(ref output);
17857       }
17858     }
17859     #endif
17860 
17861     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()17862     public int CalculateSize() {
17863       int size = 0;
17864       if (HasData) {
17865         size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
17866       }
17867       if (_unknownFields != null) {
17868         size += _unknownFields.CalculateSize();
17869       }
17870       return size;
17871     }
17872 
17873     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OneBytes other)17874     public void MergeFrom(OneBytes other) {
17875       if (other == null) {
17876         return;
17877       }
17878       if (other.HasData) {
17879         Data = other.Data;
17880       }
17881       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
17882     }
17883 
17884     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)17885     public void MergeFrom(pb::CodedInputStream input) {
17886     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17887       input.ReadRawMessage(this);
17888     #else
17889       uint tag;
17890       while ((tag = input.ReadTag()) != 0) {
17891         switch(tag) {
17892           default:
17893             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
17894             break;
17895           case 10: {
17896             Data = input.ReadBytes();
17897             break;
17898           }
17899         }
17900       }
17901     #endif
17902     }
17903 
17904     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17905     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)17906     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
17907       uint tag;
17908       while ((tag = input.ReadTag()) != 0) {
17909         switch(tag) {
17910           default:
17911             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
17912             break;
17913           case 10: {
17914             Data = input.ReadBytes();
17915             break;
17916           }
17917         }
17918       }
17919     }
17920     #endif
17921 
17922   }
17923 
17924   public sealed partial class MoreBytes : pb::IMessage<MoreBytes>
17925   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
17926       , pb::IBufferMessage
17927   #endif
17928   {
17929     private static readonly pb::MessageParser<MoreBytes> _parser = new pb::MessageParser<MoreBytes>(() => new MoreBytes());
17930     private pb::UnknownFieldSet _unknownFields;
17931     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17932     public static pb::MessageParser<MoreBytes> Parser { get { return _parser; } }
17933 
17934     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17935     public static pbr::MessageDescriptor Descriptor {
17936       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[37]; }
17937     }
17938 
17939     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17940     pbr::MessageDescriptor pb::IMessage.Descriptor {
17941       get { return Descriptor; }
17942     }
17943 
17944     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MoreBytes()17945     public MoreBytes() {
17946       OnConstruction();
17947     }
17948 
OnConstruction()17949     partial void OnConstruction();
17950 
17951     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MoreBytes(MoreBytes other)17952     public MoreBytes(MoreBytes other) : this() {
17953       data_ = other.data_.Clone();
17954       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
17955     }
17956 
17957     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()17958     public MoreBytes Clone() {
17959       return new MoreBytes(this);
17960     }
17961 
17962     /// <summary>Field number for the "data" field.</summary>
17963     public const int DataFieldNumber = 1;
17964     private static readonly pb::FieldCodec<pb::ByteString> _repeated_data_codec
17965         = pb::FieldCodec.ForBytes(10);
17966     private readonly pbc::RepeatedField<pb::ByteString> data_ = new pbc::RepeatedField<pb::ByteString>();
17967     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17968     public pbc::RepeatedField<pb::ByteString> Data {
17969       get { return data_; }
17970     }
17971 
17972     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)17973     public override bool Equals(object other) {
17974       return Equals(other as MoreBytes);
17975     }
17976 
17977     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(MoreBytes other)17978     public bool Equals(MoreBytes other) {
17979       if (ReferenceEquals(other, null)) {
17980         return false;
17981       }
17982       if (ReferenceEquals(other, this)) {
17983         return true;
17984       }
17985       if(!data_.Equals(other.data_)) return false;
17986       return Equals(_unknownFields, other._unknownFields);
17987     }
17988 
17989     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()17990     public override int GetHashCode() {
17991       int hash = 1;
17992       hash ^= data_.GetHashCode();
17993       if (_unknownFields != null) {
17994         hash ^= _unknownFields.GetHashCode();
17995       }
17996       return hash;
17997     }
17998 
17999     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()18000     public override string ToString() {
18001       return pb::JsonFormatter.ToDiagnosticString(this);
18002     }
18003 
18004     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)18005     public void WriteTo(pb::CodedOutputStream output) {
18006     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18007       output.WriteRawMessage(this);
18008     #else
18009       data_.WriteTo(output, _repeated_data_codec);
18010       if (_unknownFields != null) {
18011         _unknownFields.WriteTo(output);
18012       }
18013     #endif
18014     }
18015 
18016     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18017     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)18018     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
18019       data_.WriteTo(ref output, _repeated_data_codec);
18020       if (_unknownFields != null) {
18021         _unknownFields.WriteTo(ref output);
18022       }
18023     }
18024     #endif
18025 
18026     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()18027     public int CalculateSize() {
18028       int size = 0;
18029       size += data_.CalculateSize(_repeated_data_codec);
18030       if (_unknownFields != null) {
18031         size += _unknownFields.CalculateSize();
18032       }
18033       return size;
18034     }
18035 
18036     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(MoreBytes other)18037     public void MergeFrom(MoreBytes other) {
18038       if (other == null) {
18039         return;
18040       }
18041       data_.Add(other.data_);
18042       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
18043     }
18044 
18045     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)18046     public void MergeFrom(pb::CodedInputStream input) {
18047     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18048       input.ReadRawMessage(this);
18049     #else
18050       uint tag;
18051       while ((tag = input.ReadTag()) != 0) {
18052         switch(tag) {
18053           default:
18054             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
18055             break;
18056           case 10: {
18057             data_.AddEntriesFrom(input, _repeated_data_codec);
18058             break;
18059           }
18060         }
18061       }
18062     #endif
18063     }
18064 
18065     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18066     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)18067     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
18068       uint tag;
18069       while ((tag = input.ReadTag()) != 0) {
18070         switch(tag) {
18071           default:
18072             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
18073             break;
18074           case 10: {
18075             data_.AddEntriesFrom(ref input, _repeated_data_codec);
18076             break;
18077           }
18078         }
18079       }
18080     }
18081     #endif
18082 
18083   }
18084 
18085   /// <summary>
18086   /// Test int32, uint32, int64, uint64, and bool are all compatible
18087   /// </summary>
18088   public sealed partial class Int32Message : pb::IMessage<Int32Message>
18089   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18090       , pb::IBufferMessage
18091   #endif
18092   {
18093     private static readonly pb::MessageParser<Int32Message> _parser = new pb::MessageParser<Int32Message>(() => new Int32Message());
18094     private pb::UnknownFieldSet _unknownFields;
18095     private int _hasBits0;
18096     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18097     public static pb::MessageParser<Int32Message> Parser { get { return _parser; } }
18098 
18099     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18100     public static pbr::MessageDescriptor Descriptor {
18101       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[38]; }
18102     }
18103 
18104     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18105     pbr::MessageDescriptor pb::IMessage.Descriptor {
18106       get { return Descriptor; }
18107     }
18108 
18109     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Int32Message()18110     public Int32Message() {
18111       OnConstruction();
18112     }
18113 
OnConstruction()18114     partial void OnConstruction();
18115 
18116     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Int32Message(Int32Message other)18117     public Int32Message(Int32Message other) : this() {
18118       _hasBits0 = other._hasBits0;
18119       data_ = other.data_;
18120       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
18121     }
18122 
18123     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()18124     public Int32Message Clone() {
18125       return new Int32Message(this);
18126     }
18127 
18128     /// <summary>Field number for the "data" field.</summary>
18129     public const int DataFieldNumber = 1;
18130     private readonly static int DataDefaultValue = 0;
18131 
18132     private int data_;
18133     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18134     public int Data {
18135       get { if ((_hasBits0 & 1) != 0) { return data_; } else { return DataDefaultValue; } }
18136       set {
18137         _hasBits0 |= 1;
18138         data_ = value;
18139       }
18140     }
18141     /// <summary>Gets whether the "data" field is set</summary>
18142     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18143     public bool HasData {
18144       get { return (_hasBits0 & 1) != 0; }
18145     }
18146     /// <summary>Clears the value of the "data" field</summary>
18147     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()18148     public void ClearData() {
18149       _hasBits0 &= ~1;
18150     }
18151 
18152     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)18153     public override bool Equals(object other) {
18154       return Equals(other as Int32Message);
18155     }
18156 
18157     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Int32Message other)18158     public bool Equals(Int32Message other) {
18159       if (ReferenceEquals(other, null)) {
18160         return false;
18161       }
18162       if (ReferenceEquals(other, this)) {
18163         return true;
18164       }
18165       if (Data != other.Data) return false;
18166       return Equals(_unknownFields, other._unknownFields);
18167     }
18168 
18169     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()18170     public override int GetHashCode() {
18171       int hash = 1;
18172       if (HasData) hash ^= Data.GetHashCode();
18173       if (_unknownFields != null) {
18174         hash ^= _unknownFields.GetHashCode();
18175       }
18176       return hash;
18177     }
18178 
18179     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()18180     public override string ToString() {
18181       return pb::JsonFormatter.ToDiagnosticString(this);
18182     }
18183 
18184     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)18185     public void WriteTo(pb::CodedOutputStream output) {
18186     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18187       output.WriteRawMessage(this);
18188     #else
18189       if (HasData) {
18190         output.WriteRawTag(8);
18191         output.WriteInt32(Data);
18192       }
18193       if (_unknownFields != null) {
18194         _unknownFields.WriteTo(output);
18195       }
18196     #endif
18197     }
18198 
18199     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18200     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)18201     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
18202       if (HasData) {
18203         output.WriteRawTag(8);
18204         output.WriteInt32(Data);
18205       }
18206       if (_unknownFields != null) {
18207         _unknownFields.WriteTo(ref output);
18208       }
18209     }
18210     #endif
18211 
18212     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()18213     public int CalculateSize() {
18214       int size = 0;
18215       if (HasData) {
18216         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Data);
18217       }
18218       if (_unknownFields != null) {
18219         size += _unknownFields.CalculateSize();
18220       }
18221       return size;
18222     }
18223 
18224     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Int32Message other)18225     public void MergeFrom(Int32Message other) {
18226       if (other == null) {
18227         return;
18228       }
18229       if (other.HasData) {
18230         Data = other.Data;
18231       }
18232       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
18233     }
18234 
18235     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)18236     public void MergeFrom(pb::CodedInputStream input) {
18237     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18238       input.ReadRawMessage(this);
18239     #else
18240       uint tag;
18241       while ((tag = input.ReadTag()) != 0) {
18242         switch(tag) {
18243           default:
18244             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
18245             break;
18246           case 8: {
18247             Data = input.ReadInt32();
18248             break;
18249           }
18250         }
18251       }
18252     #endif
18253     }
18254 
18255     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18256     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)18257     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
18258       uint tag;
18259       while ((tag = input.ReadTag()) != 0) {
18260         switch(tag) {
18261           default:
18262             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
18263             break;
18264           case 8: {
18265             Data = input.ReadInt32();
18266             break;
18267           }
18268         }
18269       }
18270     }
18271     #endif
18272 
18273   }
18274 
18275   public sealed partial class Uint32Message : pb::IMessage<Uint32Message>
18276   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18277       , pb::IBufferMessage
18278   #endif
18279   {
18280     private static readonly pb::MessageParser<Uint32Message> _parser = new pb::MessageParser<Uint32Message>(() => new Uint32Message());
18281     private pb::UnknownFieldSet _unknownFields;
18282     private int _hasBits0;
18283     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18284     public static pb::MessageParser<Uint32Message> Parser { get { return _parser; } }
18285 
18286     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18287     public static pbr::MessageDescriptor Descriptor {
18288       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[39]; }
18289     }
18290 
18291     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18292     pbr::MessageDescriptor pb::IMessage.Descriptor {
18293       get { return Descriptor; }
18294     }
18295 
18296     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Uint32Message()18297     public Uint32Message() {
18298       OnConstruction();
18299     }
18300 
OnConstruction()18301     partial void OnConstruction();
18302 
18303     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Uint32Message(Uint32Message other)18304     public Uint32Message(Uint32Message other) : this() {
18305       _hasBits0 = other._hasBits0;
18306       data_ = other.data_;
18307       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
18308     }
18309 
18310     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()18311     public Uint32Message Clone() {
18312       return new Uint32Message(this);
18313     }
18314 
18315     /// <summary>Field number for the "data" field.</summary>
18316     public const int DataFieldNumber = 1;
18317     private readonly static uint DataDefaultValue = 0;
18318 
18319     private uint data_;
18320     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18321     public uint Data {
18322       get { if ((_hasBits0 & 1) != 0) { return data_; } else { return DataDefaultValue; } }
18323       set {
18324         _hasBits0 |= 1;
18325         data_ = value;
18326       }
18327     }
18328     /// <summary>Gets whether the "data" field is set</summary>
18329     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18330     public bool HasData {
18331       get { return (_hasBits0 & 1) != 0; }
18332     }
18333     /// <summary>Clears the value of the "data" field</summary>
18334     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()18335     public void ClearData() {
18336       _hasBits0 &= ~1;
18337     }
18338 
18339     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)18340     public override bool Equals(object other) {
18341       return Equals(other as Uint32Message);
18342     }
18343 
18344     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Uint32Message other)18345     public bool Equals(Uint32Message other) {
18346       if (ReferenceEquals(other, null)) {
18347         return false;
18348       }
18349       if (ReferenceEquals(other, this)) {
18350         return true;
18351       }
18352       if (Data != other.Data) return false;
18353       return Equals(_unknownFields, other._unknownFields);
18354     }
18355 
18356     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()18357     public override int GetHashCode() {
18358       int hash = 1;
18359       if (HasData) hash ^= Data.GetHashCode();
18360       if (_unknownFields != null) {
18361         hash ^= _unknownFields.GetHashCode();
18362       }
18363       return hash;
18364     }
18365 
18366     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()18367     public override string ToString() {
18368       return pb::JsonFormatter.ToDiagnosticString(this);
18369     }
18370 
18371     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)18372     public void WriteTo(pb::CodedOutputStream output) {
18373     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18374       output.WriteRawMessage(this);
18375     #else
18376       if (HasData) {
18377         output.WriteRawTag(8);
18378         output.WriteUInt32(Data);
18379       }
18380       if (_unknownFields != null) {
18381         _unknownFields.WriteTo(output);
18382       }
18383     #endif
18384     }
18385 
18386     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18387     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)18388     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
18389       if (HasData) {
18390         output.WriteRawTag(8);
18391         output.WriteUInt32(Data);
18392       }
18393       if (_unknownFields != null) {
18394         _unknownFields.WriteTo(ref output);
18395       }
18396     }
18397     #endif
18398 
18399     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()18400     public int CalculateSize() {
18401       int size = 0;
18402       if (HasData) {
18403         size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Data);
18404       }
18405       if (_unknownFields != null) {
18406         size += _unknownFields.CalculateSize();
18407       }
18408       return size;
18409     }
18410 
18411     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Uint32Message other)18412     public void MergeFrom(Uint32Message other) {
18413       if (other == null) {
18414         return;
18415       }
18416       if (other.HasData) {
18417         Data = other.Data;
18418       }
18419       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
18420     }
18421 
18422     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)18423     public void MergeFrom(pb::CodedInputStream input) {
18424     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18425       input.ReadRawMessage(this);
18426     #else
18427       uint tag;
18428       while ((tag = input.ReadTag()) != 0) {
18429         switch(tag) {
18430           default:
18431             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
18432             break;
18433           case 8: {
18434             Data = input.ReadUInt32();
18435             break;
18436           }
18437         }
18438       }
18439     #endif
18440     }
18441 
18442     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18443     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)18444     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
18445       uint tag;
18446       while ((tag = input.ReadTag()) != 0) {
18447         switch(tag) {
18448           default:
18449             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
18450             break;
18451           case 8: {
18452             Data = input.ReadUInt32();
18453             break;
18454           }
18455         }
18456       }
18457     }
18458     #endif
18459 
18460   }
18461 
18462   public sealed partial class Int64Message : pb::IMessage<Int64Message>
18463   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18464       , pb::IBufferMessage
18465   #endif
18466   {
18467     private static readonly pb::MessageParser<Int64Message> _parser = new pb::MessageParser<Int64Message>(() => new Int64Message());
18468     private pb::UnknownFieldSet _unknownFields;
18469     private int _hasBits0;
18470     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18471     public static pb::MessageParser<Int64Message> Parser { get { return _parser; } }
18472 
18473     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18474     public static pbr::MessageDescriptor Descriptor {
18475       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[40]; }
18476     }
18477 
18478     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18479     pbr::MessageDescriptor pb::IMessage.Descriptor {
18480       get { return Descriptor; }
18481     }
18482 
18483     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Int64Message()18484     public Int64Message() {
18485       OnConstruction();
18486     }
18487 
OnConstruction()18488     partial void OnConstruction();
18489 
18490     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Int64Message(Int64Message other)18491     public Int64Message(Int64Message other) : this() {
18492       _hasBits0 = other._hasBits0;
18493       data_ = other.data_;
18494       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
18495     }
18496 
18497     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()18498     public Int64Message Clone() {
18499       return new Int64Message(this);
18500     }
18501 
18502     /// <summary>Field number for the "data" field.</summary>
18503     public const int DataFieldNumber = 1;
18504     private readonly static long DataDefaultValue = 0L;
18505 
18506     private long data_;
18507     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18508     public long Data {
18509       get { if ((_hasBits0 & 1) != 0) { return data_; } else { return DataDefaultValue; } }
18510       set {
18511         _hasBits0 |= 1;
18512         data_ = value;
18513       }
18514     }
18515     /// <summary>Gets whether the "data" field is set</summary>
18516     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18517     public bool HasData {
18518       get { return (_hasBits0 & 1) != 0; }
18519     }
18520     /// <summary>Clears the value of the "data" field</summary>
18521     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()18522     public void ClearData() {
18523       _hasBits0 &= ~1;
18524     }
18525 
18526     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)18527     public override bool Equals(object other) {
18528       return Equals(other as Int64Message);
18529     }
18530 
18531     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Int64Message other)18532     public bool Equals(Int64Message other) {
18533       if (ReferenceEquals(other, null)) {
18534         return false;
18535       }
18536       if (ReferenceEquals(other, this)) {
18537         return true;
18538       }
18539       if (Data != other.Data) return false;
18540       return Equals(_unknownFields, other._unknownFields);
18541     }
18542 
18543     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()18544     public override int GetHashCode() {
18545       int hash = 1;
18546       if (HasData) hash ^= Data.GetHashCode();
18547       if (_unknownFields != null) {
18548         hash ^= _unknownFields.GetHashCode();
18549       }
18550       return hash;
18551     }
18552 
18553     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()18554     public override string ToString() {
18555       return pb::JsonFormatter.ToDiagnosticString(this);
18556     }
18557 
18558     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)18559     public void WriteTo(pb::CodedOutputStream output) {
18560     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18561       output.WriteRawMessage(this);
18562     #else
18563       if (HasData) {
18564         output.WriteRawTag(8);
18565         output.WriteInt64(Data);
18566       }
18567       if (_unknownFields != null) {
18568         _unknownFields.WriteTo(output);
18569       }
18570     #endif
18571     }
18572 
18573     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18574     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)18575     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
18576       if (HasData) {
18577         output.WriteRawTag(8);
18578         output.WriteInt64(Data);
18579       }
18580       if (_unknownFields != null) {
18581         _unknownFields.WriteTo(ref output);
18582       }
18583     }
18584     #endif
18585 
18586     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()18587     public int CalculateSize() {
18588       int size = 0;
18589       if (HasData) {
18590         size += 1 + pb::CodedOutputStream.ComputeInt64Size(Data);
18591       }
18592       if (_unknownFields != null) {
18593         size += _unknownFields.CalculateSize();
18594       }
18595       return size;
18596     }
18597 
18598     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Int64Message other)18599     public void MergeFrom(Int64Message other) {
18600       if (other == null) {
18601         return;
18602       }
18603       if (other.HasData) {
18604         Data = other.Data;
18605       }
18606       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
18607     }
18608 
18609     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)18610     public void MergeFrom(pb::CodedInputStream input) {
18611     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18612       input.ReadRawMessage(this);
18613     #else
18614       uint tag;
18615       while ((tag = input.ReadTag()) != 0) {
18616         switch(tag) {
18617           default:
18618             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
18619             break;
18620           case 8: {
18621             Data = input.ReadInt64();
18622             break;
18623           }
18624         }
18625       }
18626     #endif
18627     }
18628 
18629     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18630     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)18631     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
18632       uint tag;
18633       while ((tag = input.ReadTag()) != 0) {
18634         switch(tag) {
18635           default:
18636             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
18637             break;
18638           case 8: {
18639             Data = input.ReadInt64();
18640             break;
18641           }
18642         }
18643       }
18644     }
18645     #endif
18646 
18647   }
18648 
18649   public sealed partial class Uint64Message : pb::IMessage<Uint64Message>
18650   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18651       , pb::IBufferMessage
18652   #endif
18653   {
18654     private static readonly pb::MessageParser<Uint64Message> _parser = new pb::MessageParser<Uint64Message>(() => new Uint64Message());
18655     private pb::UnknownFieldSet _unknownFields;
18656     private int _hasBits0;
18657     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18658     public static pb::MessageParser<Uint64Message> Parser { get { return _parser; } }
18659 
18660     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18661     public static pbr::MessageDescriptor Descriptor {
18662       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[41]; }
18663     }
18664 
18665     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18666     pbr::MessageDescriptor pb::IMessage.Descriptor {
18667       get { return Descriptor; }
18668     }
18669 
18670     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Uint64Message()18671     public Uint64Message() {
18672       OnConstruction();
18673     }
18674 
OnConstruction()18675     partial void OnConstruction();
18676 
18677     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Uint64Message(Uint64Message other)18678     public Uint64Message(Uint64Message other) : this() {
18679       _hasBits0 = other._hasBits0;
18680       data_ = other.data_;
18681       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
18682     }
18683 
18684     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()18685     public Uint64Message Clone() {
18686       return new Uint64Message(this);
18687     }
18688 
18689     /// <summary>Field number for the "data" field.</summary>
18690     public const int DataFieldNumber = 1;
18691     private readonly static ulong DataDefaultValue = 0UL;
18692 
18693     private ulong data_;
18694     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18695     public ulong Data {
18696       get { if ((_hasBits0 & 1) != 0) { return data_; } else { return DataDefaultValue; } }
18697       set {
18698         _hasBits0 |= 1;
18699         data_ = value;
18700       }
18701     }
18702     /// <summary>Gets whether the "data" field is set</summary>
18703     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18704     public bool HasData {
18705       get { return (_hasBits0 & 1) != 0; }
18706     }
18707     /// <summary>Clears the value of the "data" field</summary>
18708     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()18709     public void ClearData() {
18710       _hasBits0 &= ~1;
18711     }
18712 
18713     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)18714     public override bool Equals(object other) {
18715       return Equals(other as Uint64Message);
18716     }
18717 
18718     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Uint64Message other)18719     public bool Equals(Uint64Message other) {
18720       if (ReferenceEquals(other, null)) {
18721         return false;
18722       }
18723       if (ReferenceEquals(other, this)) {
18724         return true;
18725       }
18726       if (Data != other.Data) return false;
18727       return Equals(_unknownFields, other._unknownFields);
18728     }
18729 
18730     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()18731     public override int GetHashCode() {
18732       int hash = 1;
18733       if (HasData) hash ^= Data.GetHashCode();
18734       if (_unknownFields != null) {
18735         hash ^= _unknownFields.GetHashCode();
18736       }
18737       return hash;
18738     }
18739 
18740     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()18741     public override string ToString() {
18742       return pb::JsonFormatter.ToDiagnosticString(this);
18743     }
18744 
18745     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)18746     public void WriteTo(pb::CodedOutputStream output) {
18747     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18748       output.WriteRawMessage(this);
18749     #else
18750       if (HasData) {
18751         output.WriteRawTag(8);
18752         output.WriteUInt64(Data);
18753       }
18754       if (_unknownFields != null) {
18755         _unknownFields.WriteTo(output);
18756       }
18757     #endif
18758     }
18759 
18760     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18761     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)18762     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
18763       if (HasData) {
18764         output.WriteRawTag(8);
18765         output.WriteUInt64(Data);
18766       }
18767       if (_unknownFields != null) {
18768         _unknownFields.WriteTo(ref output);
18769       }
18770     }
18771     #endif
18772 
18773     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()18774     public int CalculateSize() {
18775       int size = 0;
18776       if (HasData) {
18777         size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Data);
18778       }
18779       if (_unknownFields != null) {
18780         size += _unknownFields.CalculateSize();
18781       }
18782       return size;
18783     }
18784 
18785     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Uint64Message other)18786     public void MergeFrom(Uint64Message other) {
18787       if (other == null) {
18788         return;
18789       }
18790       if (other.HasData) {
18791         Data = other.Data;
18792       }
18793       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
18794     }
18795 
18796     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)18797     public void MergeFrom(pb::CodedInputStream input) {
18798     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18799       input.ReadRawMessage(this);
18800     #else
18801       uint tag;
18802       while ((tag = input.ReadTag()) != 0) {
18803         switch(tag) {
18804           default:
18805             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
18806             break;
18807           case 8: {
18808             Data = input.ReadUInt64();
18809             break;
18810           }
18811         }
18812       }
18813     #endif
18814     }
18815 
18816     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18817     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)18818     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
18819       uint tag;
18820       while ((tag = input.ReadTag()) != 0) {
18821         switch(tag) {
18822           default:
18823             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
18824             break;
18825           case 8: {
18826             Data = input.ReadUInt64();
18827             break;
18828           }
18829         }
18830       }
18831     }
18832     #endif
18833 
18834   }
18835 
18836   public sealed partial class BoolMessage : pb::IMessage<BoolMessage>
18837   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18838       , pb::IBufferMessage
18839   #endif
18840   {
18841     private static readonly pb::MessageParser<BoolMessage> _parser = new pb::MessageParser<BoolMessage>(() => new BoolMessage());
18842     private pb::UnknownFieldSet _unknownFields;
18843     private int _hasBits0;
18844     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18845     public static pb::MessageParser<BoolMessage> Parser { get { return _parser; } }
18846 
18847     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18848     public static pbr::MessageDescriptor Descriptor {
18849       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[42]; }
18850     }
18851 
18852     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18853     pbr::MessageDescriptor pb::IMessage.Descriptor {
18854       get { return Descriptor; }
18855     }
18856 
18857     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
BoolMessage()18858     public BoolMessage() {
18859       OnConstruction();
18860     }
18861 
OnConstruction()18862     partial void OnConstruction();
18863 
18864     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
BoolMessage(BoolMessage other)18865     public BoolMessage(BoolMessage other) : this() {
18866       _hasBits0 = other._hasBits0;
18867       data_ = other.data_;
18868       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
18869     }
18870 
18871     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()18872     public BoolMessage Clone() {
18873       return new BoolMessage(this);
18874     }
18875 
18876     /// <summary>Field number for the "data" field.</summary>
18877     public const int DataFieldNumber = 1;
18878     private readonly static bool DataDefaultValue = false;
18879 
18880     private bool data_;
18881     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18882     public bool Data {
18883       get { if ((_hasBits0 & 1) != 0) { return data_; } else { return DataDefaultValue; } }
18884       set {
18885         _hasBits0 |= 1;
18886         data_ = value;
18887       }
18888     }
18889     /// <summary>Gets whether the "data" field is set</summary>
18890     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
18891     public bool HasData {
18892       get { return (_hasBits0 & 1) != 0; }
18893     }
18894     /// <summary>Clears the value of the "data" field</summary>
18895     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearData()18896     public void ClearData() {
18897       _hasBits0 &= ~1;
18898     }
18899 
18900     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)18901     public override bool Equals(object other) {
18902       return Equals(other as BoolMessage);
18903     }
18904 
18905     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(BoolMessage other)18906     public bool Equals(BoolMessage other) {
18907       if (ReferenceEquals(other, null)) {
18908         return false;
18909       }
18910       if (ReferenceEquals(other, this)) {
18911         return true;
18912       }
18913       if (Data != other.Data) return false;
18914       return Equals(_unknownFields, other._unknownFields);
18915     }
18916 
18917     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()18918     public override int GetHashCode() {
18919       int hash = 1;
18920       if (HasData) hash ^= Data.GetHashCode();
18921       if (_unknownFields != null) {
18922         hash ^= _unknownFields.GetHashCode();
18923       }
18924       return hash;
18925     }
18926 
18927     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()18928     public override string ToString() {
18929       return pb::JsonFormatter.ToDiagnosticString(this);
18930     }
18931 
18932     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)18933     public void WriteTo(pb::CodedOutputStream output) {
18934     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18935       output.WriteRawMessage(this);
18936     #else
18937       if (HasData) {
18938         output.WriteRawTag(8);
18939         output.WriteBool(Data);
18940       }
18941       if (_unknownFields != null) {
18942         _unknownFields.WriteTo(output);
18943       }
18944     #endif
18945     }
18946 
18947     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18948     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)18949     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
18950       if (HasData) {
18951         output.WriteRawTag(8);
18952         output.WriteBool(Data);
18953       }
18954       if (_unknownFields != null) {
18955         _unknownFields.WriteTo(ref output);
18956       }
18957     }
18958     #endif
18959 
18960     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()18961     public int CalculateSize() {
18962       int size = 0;
18963       if (HasData) {
18964         size += 1 + 1;
18965       }
18966       if (_unknownFields != null) {
18967         size += _unknownFields.CalculateSize();
18968       }
18969       return size;
18970     }
18971 
18972     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(BoolMessage other)18973     public void MergeFrom(BoolMessage other) {
18974       if (other == null) {
18975         return;
18976       }
18977       if (other.HasData) {
18978         Data = other.Data;
18979       }
18980       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
18981     }
18982 
18983     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)18984     public void MergeFrom(pb::CodedInputStream input) {
18985     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
18986       input.ReadRawMessage(this);
18987     #else
18988       uint tag;
18989       while ((tag = input.ReadTag()) != 0) {
18990         switch(tag) {
18991           default:
18992             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
18993             break;
18994           case 8: {
18995             Data = input.ReadBool();
18996             break;
18997           }
18998         }
18999       }
19000     #endif
19001     }
19002 
19003     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19004     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)19005     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
19006       uint tag;
19007       while ((tag = input.ReadTag()) != 0) {
19008         switch(tag) {
19009           default:
19010             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
19011             break;
19012           case 8: {
19013             Data = input.ReadBool();
19014             break;
19015           }
19016         }
19017       }
19018     }
19019     #endif
19020 
19021   }
19022 
19023   /// <summary>
19024   /// Test oneofs.
19025   /// </summary>
19026   public sealed partial class TestOneof : pb::IMessage<TestOneof>
19027   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19028       , pb::IBufferMessage
19029   #endif
19030   {
19031     private static readonly pb::MessageParser<TestOneof> _parser = new pb::MessageParser<TestOneof>(() => new TestOneof());
19032     private pb::UnknownFieldSet _unknownFields;
19033     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19034     public static pb::MessageParser<TestOneof> Parser { get { return _parser; } }
19035 
19036     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19037     public static pbr::MessageDescriptor Descriptor {
19038       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[43]; }
19039     }
19040 
19041     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19042     pbr::MessageDescriptor pb::IMessage.Descriptor {
19043       get { return Descriptor; }
19044     }
19045 
19046     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestOneof()19047     public TestOneof() {
19048       OnConstruction();
19049     }
19050 
OnConstruction()19051     partial void OnConstruction();
19052 
19053     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestOneof(TestOneof other)19054     public TestOneof(TestOneof other) : this() {
19055       switch (other.FooCase) {
19056         case FooOneofCase.FooInt:
19057           FooInt = other.FooInt;
19058           break;
19059         case FooOneofCase.FooString:
19060           FooString = other.FooString;
19061           break;
19062         case FooOneofCase.FooMessage:
19063           FooMessage = other.FooMessage.Clone();
19064           break;
19065         case FooOneofCase.FooGroup:
19066           FooGroup = other.FooGroup.Clone();
19067           break;
19068       }
19069 
19070       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
19071     }
19072 
19073     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()19074     public TestOneof Clone() {
19075       return new TestOneof(this);
19076     }
19077 
19078     /// <summary>Field number for the "foo_int" field.</summary>
19079     public const int FooIntFieldNumber = 1;
19080     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19081     public int FooInt {
19082       get { return HasFooInt ? (int) foo_ : 0; }
19083       set {
19084         foo_ = value;
19085         fooCase_ = FooOneofCase.FooInt;
19086       }
19087     }
19088     /// <summary>Gets whether the "foo_int" field is set</summary>
19089     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19090     public bool HasFooInt {
19091       get { return fooCase_ == FooOneofCase.FooInt; }
19092     }
19093     /// <summary> Clears the value of the oneof if it's currently set to "foo_int" </summary>
19094     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooInt()19095     public void ClearFooInt() {
19096       if (HasFooInt) {
19097         ClearFoo();
19098       }
19099     }
19100 
19101     /// <summary>Field number for the "foo_string" field.</summary>
19102     public const int FooStringFieldNumber = 2;
19103     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19104     public string FooString {
19105       get { return HasFooString ? (string) foo_ : ""; }
19106       set {
19107         foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
19108         fooCase_ = FooOneofCase.FooString;
19109       }
19110     }
19111     /// <summary>Gets whether the "foo_string" field is set</summary>
19112     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19113     public bool HasFooString {
19114       get { return fooCase_ == FooOneofCase.FooString; }
19115     }
19116     /// <summary> Clears the value of the oneof if it's currently set to "foo_string" </summary>
19117     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooString()19118     public void ClearFooString() {
19119       if (HasFooString) {
19120         ClearFoo();
19121       }
19122     }
19123 
19124     /// <summary>Field number for the "foo_message" field.</summary>
19125     public const int FooMessageFieldNumber = 3;
19126     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19127     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes FooMessage {
19128       get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes) foo_ : null; }
19129       set {
19130         foo_ = value;
19131         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooMessage;
19132       }
19133     }
19134 
19135     /// <summary>Field number for the "foogroup" field.</summary>
19136     public const int FooGroupFieldNumber = 4;
19137     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19138     public global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup FooGroup {
19139       get { return HasFooGroup ? (global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup) foo_ : null; }
19140       set {
19141         foo_ = value;
19142         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooGroup;
19143       }
19144     }
19145     /// <summary>Gets whether the "foogroup" field is set</summary>
19146     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19147     public bool HasFooGroup {
19148       get { return fooCase_ == FooOneofCase.FooGroup; }
19149     }
19150     /// <summary> Clears the value of the oneof if it's currently set to "foogroup" </summary>
19151     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooGroup()19152     public void ClearFooGroup() {
19153       if (HasFooGroup) {
19154         ClearFoo();
19155       }
19156     }
19157 
19158     private object foo_;
19159     /// <summary>Enum of possible cases for the "foo" oneof.</summary>
19160     public enum FooOneofCase {
19161       None = 0,
19162       FooInt = 1,
19163       FooString = 2,
19164       FooMessage = 3,
19165       FooGroup = 4,
19166     }
19167     private FooOneofCase fooCase_ = FooOneofCase.None;
19168     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19169     public FooOneofCase FooCase {
19170       get { return fooCase_; }
19171     }
19172 
19173     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFoo()19174     public void ClearFoo() {
19175       fooCase_ = FooOneofCase.None;
19176       foo_ = null;
19177     }
19178 
19179     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)19180     public override bool Equals(object other) {
19181       return Equals(other as TestOneof);
19182     }
19183 
19184     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestOneof other)19185     public bool Equals(TestOneof other) {
19186       if (ReferenceEquals(other, null)) {
19187         return false;
19188       }
19189       if (ReferenceEquals(other, this)) {
19190         return true;
19191       }
19192       if (FooInt != other.FooInt) return false;
19193       if (FooString != other.FooString) return false;
19194       if (!object.Equals(FooMessage, other.FooMessage)) return false;
19195       if (!object.Equals(FooGroup, other.FooGroup)) return false;
19196       if (FooCase != other.FooCase) return false;
19197       return Equals(_unknownFields, other._unknownFields);
19198     }
19199 
19200     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()19201     public override int GetHashCode() {
19202       int hash = 1;
19203       if (HasFooInt) hash ^= FooInt.GetHashCode();
19204       if (HasFooString) hash ^= FooString.GetHashCode();
19205       if (fooCase_ == FooOneofCase.FooMessage) hash ^= FooMessage.GetHashCode();
19206       if (HasFooGroup) hash ^= FooGroup.GetHashCode();
19207       hash ^= (int) fooCase_;
19208       if (_unknownFields != null) {
19209         hash ^= _unknownFields.GetHashCode();
19210       }
19211       return hash;
19212     }
19213 
19214     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()19215     public override string ToString() {
19216       return pb::JsonFormatter.ToDiagnosticString(this);
19217     }
19218 
19219     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)19220     public void WriteTo(pb::CodedOutputStream output) {
19221     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19222       output.WriteRawMessage(this);
19223     #else
19224       if (HasFooInt) {
19225         output.WriteRawTag(8);
19226         output.WriteInt32(FooInt);
19227       }
19228       if (HasFooString) {
19229         output.WriteRawTag(18);
19230         output.WriteString(FooString);
19231       }
19232       if (fooCase_ == FooOneofCase.FooMessage) {
19233         output.WriteRawTag(26);
19234         output.WriteMessage(FooMessage);
19235       }
19236       if (HasFooGroup) {
19237         output.WriteRawTag(35);
19238         output.WriteGroup(FooGroup);
19239         output.WriteRawTag(36);
19240       }
19241       if (_unknownFields != null) {
19242         _unknownFields.WriteTo(output);
19243       }
19244     #endif
19245     }
19246 
19247     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19248     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)19249     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
19250       if (HasFooInt) {
19251         output.WriteRawTag(8);
19252         output.WriteInt32(FooInt);
19253       }
19254       if (HasFooString) {
19255         output.WriteRawTag(18);
19256         output.WriteString(FooString);
19257       }
19258       if (fooCase_ == FooOneofCase.FooMessage) {
19259         output.WriteRawTag(26);
19260         output.WriteMessage(FooMessage);
19261       }
19262       if (HasFooGroup) {
19263         output.WriteRawTag(35);
19264         output.WriteGroup(FooGroup);
19265         output.WriteRawTag(36);
19266       }
19267       if (_unknownFields != null) {
19268         _unknownFields.WriteTo(ref output);
19269       }
19270     }
19271     #endif
19272 
19273     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()19274     public int CalculateSize() {
19275       int size = 0;
19276       if (HasFooInt) {
19277         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FooInt);
19278       }
19279       if (HasFooString) {
19280         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooString);
19281       }
19282       if (fooCase_ == FooOneofCase.FooMessage) {
19283         size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooMessage);
19284       }
19285       if (HasFooGroup) {
19286         size += 2 + pb::CodedOutputStream.ComputeGroupSize(FooGroup);
19287       }
19288       if (_unknownFields != null) {
19289         size += _unknownFields.CalculateSize();
19290       }
19291       return size;
19292     }
19293 
19294     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestOneof other)19295     public void MergeFrom(TestOneof other) {
19296       if (other == null) {
19297         return;
19298       }
19299       switch (other.FooCase) {
19300         case FooOneofCase.FooInt:
19301           FooInt = other.FooInt;
19302           break;
19303         case FooOneofCase.FooString:
19304           FooString = other.FooString;
19305           break;
19306         case FooOneofCase.FooMessage:
19307           if (FooMessage == null) {
19308             FooMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
19309           }
19310           FooMessage.MergeFrom(other.FooMessage);
19311           break;
19312         case FooOneofCase.FooGroup:
19313           if (FooGroup == null) {
19314             FooGroup = new global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup();
19315           }
19316           FooGroup.MergeFrom(other.FooGroup);
19317           break;
19318       }
19319 
19320       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
19321     }
19322 
19323     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)19324     public void MergeFrom(pb::CodedInputStream input) {
19325     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19326       input.ReadRawMessage(this);
19327     #else
19328       uint tag;
19329       while ((tag = input.ReadTag()) != 0) {
19330         switch(tag) {
19331           default:
19332             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
19333             break;
19334           case 8: {
19335             FooInt = input.ReadInt32();
19336             break;
19337           }
19338           case 18: {
19339             FooString = input.ReadString();
19340             break;
19341           }
19342           case 26: {
19343             global::Google.Protobuf.TestProtos.Proto2.TestAllTypes subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
19344             if (fooCase_ == FooOneofCase.FooMessage) {
19345               subBuilder.MergeFrom(FooMessage);
19346             }
19347             input.ReadMessage(subBuilder);
19348             FooMessage = subBuilder;
19349             break;
19350           }
19351           case 35: {
19352             global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup();
19353             if (HasFooGroup) {
19354               subBuilder.MergeFrom(FooGroup);
19355             }
19356             input.ReadGroup(subBuilder);
19357             FooGroup = subBuilder;
19358             break;
19359           }
19360         }
19361       }
19362     #endif
19363     }
19364 
19365     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19366     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)19367     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
19368       uint tag;
19369       while ((tag = input.ReadTag()) != 0) {
19370         switch(tag) {
19371           default:
19372             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
19373             break;
19374           case 8: {
19375             FooInt = input.ReadInt32();
19376             break;
19377           }
19378           case 18: {
19379             FooString = input.ReadString();
19380             break;
19381           }
19382           case 26: {
19383             global::Google.Protobuf.TestProtos.Proto2.TestAllTypes subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
19384             if (fooCase_ == FooOneofCase.FooMessage) {
19385               subBuilder.MergeFrom(FooMessage);
19386             }
19387             input.ReadMessage(subBuilder);
19388             FooMessage = subBuilder;
19389             break;
19390           }
19391           case 35: {
19392             global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof.Types.FooGroup();
19393             if (HasFooGroup) {
19394               subBuilder.MergeFrom(FooGroup);
19395             }
19396             input.ReadGroup(subBuilder);
19397             FooGroup = subBuilder;
19398             break;
19399           }
19400         }
19401       }
19402     }
19403     #endif
19404 
19405     #region Nested types
19406     /// <summary>Container for nested types declared in the TestOneof message type.</summary>
19407     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19408     public static partial class Types {
19409       public sealed partial class FooGroup : pb::IMessage<FooGroup>
19410       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19411           , pb::IBufferMessage
19412       #endif
19413       {
19414         private static readonly pb::MessageParser<FooGroup> _parser = new pb::MessageParser<FooGroup>(() => new FooGroup());
19415         private pb::UnknownFieldSet _unknownFields;
19416         private int _hasBits0;
19417         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19418         public static pb::MessageParser<FooGroup> Parser { get { return _parser; } }
19419 
19420         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19421         public static pbr::MessageDescriptor Descriptor {
19422           get { return global::Google.Protobuf.TestProtos.Proto2.TestOneof.Descriptor.NestedTypes[0]; }
19423         }
19424 
19425         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19426         pbr::MessageDescriptor pb::IMessage.Descriptor {
19427           get { return Descriptor; }
19428         }
19429 
19430         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooGroup()19431         public FooGroup() {
19432           OnConstruction();
19433         }
19434 
OnConstruction()19435         partial void OnConstruction();
19436 
19437         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooGroup(FooGroup other)19438         public FooGroup(FooGroup other) : this() {
19439           _hasBits0 = other._hasBits0;
19440           a_ = other.a_;
19441           b_ = other.b_;
19442           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
19443         }
19444 
19445         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()19446         public FooGroup Clone() {
19447           return new FooGroup(this);
19448         }
19449 
19450         /// <summary>Field number for the "a" field.</summary>
19451         public const int AFieldNumber = 5;
19452         private readonly static int ADefaultValue = 0;
19453 
19454         private int a_;
19455         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19456         public int A {
19457           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
19458           set {
19459             _hasBits0 |= 1;
19460             a_ = value;
19461           }
19462         }
19463         /// <summary>Gets whether the "a" field is set</summary>
19464         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19465         public bool HasA {
19466           get { return (_hasBits0 & 1) != 0; }
19467         }
19468         /// <summary>Clears the value of the "a" field</summary>
19469         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()19470         public void ClearA() {
19471           _hasBits0 &= ~1;
19472         }
19473 
19474         /// <summary>Field number for the "b" field.</summary>
19475         public const int BFieldNumber = 6;
19476         private readonly static string BDefaultValue = "";
19477 
19478         private string b_;
19479         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19480         public string B {
19481           get { return b_ ?? BDefaultValue; }
19482           set {
19483             b_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
19484           }
19485         }
19486         /// <summary>Gets whether the "b" field is set</summary>
19487         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19488         public bool HasB {
19489           get { return b_ != null; }
19490         }
19491         /// <summary>Clears the value of the "b" field</summary>
19492         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearB()19493         public void ClearB() {
19494           b_ = null;
19495         }
19496 
19497         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)19498         public override bool Equals(object other) {
19499           return Equals(other as FooGroup);
19500         }
19501 
19502         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooGroup other)19503         public bool Equals(FooGroup other) {
19504           if (ReferenceEquals(other, null)) {
19505             return false;
19506           }
19507           if (ReferenceEquals(other, this)) {
19508             return true;
19509           }
19510           if (A != other.A) return false;
19511           if (B != other.B) return false;
19512           return Equals(_unknownFields, other._unknownFields);
19513         }
19514 
19515         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()19516         public override int GetHashCode() {
19517           int hash = 1;
19518           if (HasA) hash ^= A.GetHashCode();
19519           if (HasB) hash ^= B.GetHashCode();
19520           if (_unknownFields != null) {
19521             hash ^= _unknownFields.GetHashCode();
19522           }
19523           return hash;
19524         }
19525 
19526         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()19527         public override string ToString() {
19528           return pb::JsonFormatter.ToDiagnosticString(this);
19529         }
19530 
19531         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)19532         public void WriteTo(pb::CodedOutputStream output) {
19533         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19534           output.WriteRawMessage(this);
19535         #else
19536           if (HasA) {
19537             output.WriteRawTag(40);
19538             output.WriteInt32(A);
19539           }
19540           if (HasB) {
19541             output.WriteRawTag(50);
19542             output.WriteString(B);
19543           }
19544           if (_unknownFields != null) {
19545             _unknownFields.WriteTo(output);
19546           }
19547         #endif
19548         }
19549 
19550         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19551         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)19552         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
19553           if (HasA) {
19554             output.WriteRawTag(40);
19555             output.WriteInt32(A);
19556           }
19557           if (HasB) {
19558             output.WriteRawTag(50);
19559             output.WriteString(B);
19560           }
19561           if (_unknownFields != null) {
19562             _unknownFields.WriteTo(ref output);
19563           }
19564         }
19565         #endif
19566 
19567         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()19568         public int CalculateSize() {
19569           int size = 0;
19570           if (HasA) {
19571             size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
19572           }
19573           if (HasB) {
19574             size += 1 + pb::CodedOutputStream.ComputeStringSize(B);
19575           }
19576           if (_unknownFields != null) {
19577             size += _unknownFields.CalculateSize();
19578           }
19579           return size;
19580         }
19581 
19582         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooGroup other)19583         public void MergeFrom(FooGroup other) {
19584           if (other == null) {
19585             return;
19586           }
19587           if (other.HasA) {
19588             A = other.A;
19589           }
19590           if (other.HasB) {
19591             B = other.B;
19592           }
19593           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
19594         }
19595 
19596         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)19597         public void MergeFrom(pb::CodedInputStream input) {
19598         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19599           input.ReadRawMessage(this);
19600         #else
19601           uint tag;
19602           while ((tag = input.ReadTag()) != 0) {
19603             switch(tag) {
19604               case 36:
19605                 return;
19606               default:
19607                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
19608                 break;
19609               case 40: {
19610                 A = input.ReadInt32();
19611                 break;
19612               }
19613               case 50: {
19614                 B = input.ReadString();
19615                 break;
19616               }
19617             }
19618           }
19619         #endif
19620         }
19621 
19622         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19623         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)19624         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
19625           uint tag;
19626           while ((tag = input.ReadTag()) != 0) {
19627             switch(tag) {
19628               case 36:
19629                 return;
19630               default:
19631                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
19632                 break;
19633               case 40: {
19634                 A = input.ReadInt32();
19635                 break;
19636               }
19637               case 50: {
19638                 B = input.ReadString();
19639                 break;
19640               }
19641             }
19642           }
19643         }
19644         #endif
19645 
19646       }
19647 
19648     }
19649     #endregion
19650 
19651   }
19652 
19653   public sealed partial class TestOneofBackwardsCompatible : pb::IMessage<TestOneofBackwardsCompatible>
19654   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19655       , pb::IBufferMessage
19656   #endif
19657   {
19658     private static readonly pb::MessageParser<TestOneofBackwardsCompatible> _parser = new pb::MessageParser<TestOneofBackwardsCompatible>(() => new TestOneofBackwardsCompatible());
19659     private pb::UnknownFieldSet _unknownFields;
19660     private int _hasBits0;
19661     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19662     public static pb::MessageParser<TestOneofBackwardsCompatible> Parser { get { return _parser; } }
19663 
19664     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19665     public static pbr::MessageDescriptor Descriptor {
19666       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[44]; }
19667     }
19668 
19669     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19670     pbr::MessageDescriptor pb::IMessage.Descriptor {
19671       get { return Descriptor; }
19672     }
19673 
19674     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestOneofBackwardsCompatible()19675     public TestOneofBackwardsCompatible() {
19676       OnConstruction();
19677     }
19678 
OnConstruction()19679     partial void OnConstruction();
19680 
19681     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestOneofBackwardsCompatible(TestOneofBackwardsCompatible other)19682     public TestOneofBackwardsCompatible(TestOneofBackwardsCompatible other) : this() {
19683       _hasBits0 = other._hasBits0;
19684       fooInt_ = other.fooInt_;
19685       fooString_ = other.fooString_;
19686       fooMessage_ = other.fooMessage_ != null ? other.fooMessage_.Clone() : null;
19687       fooGroup_ = other.HasFooGroup ? other.fooGroup_.Clone() : null;
19688       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
19689     }
19690 
19691     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()19692     public TestOneofBackwardsCompatible Clone() {
19693       return new TestOneofBackwardsCompatible(this);
19694     }
19695 
19696     /// <summary>Field number for the "foo_int" field.</summary>
19697     public const int FooIntFieldNumber = 1;
19698     private readonly static int FooIntDefaultValue = 0;
19699 
19700     private int fooInt_;
19701     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19702     public int FooInt {
19703       get { if ((_hasBits0 & 1) != 0) { return fooInt_; } else { return FooIntDefaultValue; } }
19704       set {
19705         _hasBits0 |= 1;
19706         fooInt_ = value;
19707       }
19708     }
19709     /// <summary>Gets whether the "foo_int" field is set</summary>
19710     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19711     public bool HasFooInt {
19712       get { return (_hasBits0 & 1) != 0; }
19713     }
19714     /// <summary>Clears the value of the "foo_int" field</summary>
19715     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooInt()19716     public void ClearFooInt() {
19717       _hasBits0 &= ~1;
19718     }
19719 
19720     /// <summary>Field number for the "foo_string" field.</summary>
19721     public const int FooStringFieldNumber = 2;
19722     private readonly static string FooStringDefaultValue = "";
19723 
19724     private string fooString_;
19725     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19726     public string FooString {
19727       get { return fooString_ ?? FooStringDefaultValue; }
19728       set {
19729         fooString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
19730       }
19731     }
19732     /// <summary>Gets whether the "foo_string" field is set</summary>
19733     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19734     public bool HasFooString {
19735       get { return fooString_ != null; }
19736     }
19737     /// <summary>Clears the value of the "foo_string" field</summary>
19738     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooString()19739     public void ClearFooString() {
19740       fooString_ = null;
19741     }
19742 
19743     /// <summary>Field number for the "foo_message" field.</summary>
19744     public const int FooMessageFieldNumber = 3;
19745     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes fooMessage_;
19746     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19747     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes FooMessage {
19748       get { return fooMessage_; }
19749       set {
19750         fooMessage_ = value;
19751       }
19752     }
19753 
19754     /// <summary>Field number for the "foogroup" field.</summary>
19755     public const int FooGroupFieldNumber = 4;
19756     private global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup fooGroup_;
19757     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19758     public global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
19759       get { return fooGroup_; }
19760       set {
19761         fooGroup_ = value;
19762       }
19763     }
19764     /// <summary>Gets whether the foogroup field is set</summary>
19765     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19766     public bool HasFooGroup {
19767       get { return fooGroup_ != null; }
19768     }
19769     /// <summary>Clears the value of the foogroup field</summary>
19770     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooGroup()19771     public void ClearFooGroup() {
19772       fooGroup_ = null;
19773     }
19774 
19775     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)19776     public override bool Equals(object other) {
19777       return Equals(other as TestOneofBackwardsCompatible);
19778     }
19779 
19780     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestOneofBackwardsCompatible other)19781     public bool Equals(TestOneofBackwardsCompatible other) {
19782       if (ReferenceEquals(other, null)) {
19783         return false;
19784       }
19785       if (ReferenceEquals(other, this)) {
19786         return true;
19787       }
19788       if (FooInt != other.FooInt) return false;
19789       if (FooString != other.FooString) return false;
19790       if (!object.Equals(FooMessage, other.FooMessage)) return false;
19791       if (!object.Equals(FooGroup, other.FooGroup)) return false;
19792       return Equals(_unknownFields, other._unknownFields);
19793     }
19794 
19795     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()19796     public override int GetHashCode() {
19797       int hash = 1;
19798       if (HasFooInt) hash ^= FooInt.GetHashCode();
19799       if (HasFooString) hash ^= FooString.GetHashCode();
19800       if (fooMessage_ != null) hash ^= FooMessage.GetHashCode();
19801       if (HasFooGroup) hash ^= FooGroup.GetHashCode();
19802       if (_unknownFields != null) {
19803         hash ^= _unknownFields.GetHashCode();
19804       }
19805       return hash;
19806     }
19807 
19808     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()19809     public override string ToString() {
19810       return pb::JsonFormatter.ToDiagnosticString(this);
19811     }
19812 
19813     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)19814     public void WriteTo(pb::CodedOutputStream output) {
19815     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19816       output.WriteRawMessage(this);
19817     #else
19818       if (HasFooInt) {
19819         output.WriteRawTag(8);
19820         output.WriteInt32(FooInt);
19821       }
19822       if (HasFooString) {
19823         output.WriteRawTag(18);
19824         output.WriteString(FooString);
19825       }
19826       if (fooMessage_ != null) {
19827         output.WriteRawTag(26);
19828         output.WriteMessage(FooMessage);
19829       }
19830       if (HasFooGroup) {
19831         output.WriteRawTag(35);
19832         output.WriteGroup(FooGroup);
19833         output.WriteRawTag(36);
19834       }
19835       if (_unknownFields != null) {
19836         _unknownFields.WriteTo(output);
19837       }
19838     #endif
19839     }
19840 
19841     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19842     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)19843     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
19844       if (HasFooInt) {
19845         output.WriteRawTag(8);
19846         output.WriteInt32(FooInt);
19847       }
19848       if (HasFooString) {
19849         output.WriteRawTag(18);
19850         output.WriteString(FooString);
19851       }
19852       if (fooMessage_ != null) {
19853         output.WriteRawTag(26);
19854         output.WriteMessage(FooMessage);
19855       }
19856       if (HasFooGroup) {
19857         output.WriteRawTag(35);
19858         output.WriteGroup(FooGroup);
19859         output.WriteRawTag(36);
19860       }
19861       if (_unknownFields != null) {
19862         _unknownFields.WriteTo(ref output);
19863       }
19864     }
19865     #endif
19866 
19867     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()19868     public int CalculateSize() {
19869       int size = 0;
19870       if (HasFooInt) {
19871         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FooInt);
19872       }
19873       if (HasFooString) {
19874         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooString);
19875       }
19876       if (fooMessage_ != null) {
19877         size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooMessage);
19878       }
19879       if (HasFooGroup) {
19880         size += 2 + pb::CodedOutputStream.ComputeGroupSize(FooGroup);
19881       }
19882       if (_unknownFields != null) {
19883         size += _unknownFields.CalculateSize();
19884       }
19885       return size;
19886     }
19887 
19888     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestOneofBackwardsCompatible other)19889     public void MergeFrom(TestOneofBackwardsCompatible other) {
19890       if (other == null) {
19891         return;
19892       }
19893       if (other.HasFooInt) {
19894         FooInt = other.FooInt;
19895       }
19896       if (other.HasFooString) {
19897         FooString = other.FooString;
19898       }
19899       if (other.fooMessage_ != null) {
19900         if (fooMessage_ == null) {
19901           FooMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
19902         }
19903         FooMessage.MergeFrom(other.FooMessage);
19904       }
19905       if (other.HasFooGroup) {
19906         if (!HasFooGroup) {
19907           FooGroup = new global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup();
19908         }
19909         FooGroup.MergeFrom(other.FooGroup);
19910       }
19911       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
19912     }
19913 
19914     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)19915     public void MergeFrom(pb::CodedInputStream input) {
19916     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19917       input.ReadRawMessage(this);
19918     #else
19919       uint tag;
19920       while ((tag = input.ReadTag()) != 0) {
19921         switch(tag) {
19922           default:
19923             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
19924             break;
19925           case 8: {
19926             FooInt = input.ReadInt32();
19927             break;
19928           }
19929           case 18: {
19930             FooString = input.ReadString();
19931             break;
19932           }
19933           case 26: {
19934             if (fooMessage_ == null) {
19935               FooMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
19936             }
19937             input.ReadMessage(FooMessage);
19938             break;
19939           }
19940           case 35: {
19941             if (!HasFooGroup) {
19942               FooGroup = new global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup();
19943             }
19944             input.ReadGroup(FooGroup);
19945             break;
19946           }
19947         }
19948       }
19949     #endif
19950     }
19951 
19952     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19953     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)19954     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
19955       uint tag;
19956       while ((tag = input.ReadTag()) != 0) {
19957         switch(tag) {
19958           default:
19959             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
19960             break;
19961           case 8: {
19962             FooInt = input.ReadInt32();
19963             break;
19964           }
19965           case 18: {
19966             FooString = input.ReadString();
19967             break;
19968           }
19969           case 26: {
19970             if (fooMessage_ == null) {
19971               FooMessage = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
19972             }
19973             input.ReadMessage(FooMessage);
19974             break;
19975           }
19976           case 35: {
19977             if (!HasFooGroup) {
19978               FooGroup = new global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Types.FooGroup();
19979             }
19980             input.ReadGroup(FooGroup);
19981             break;
19982           }
19983         }
19984       }
19985     }
19986     #endif
19987 
19988     #region Nested types
19989     /// <summary>Container for nested types declared in the TestOneofBackwardsCompatible message type.</summary>
19990     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
19991     public static partial class Types {
19992       public sealed partial class FooGroup : pb::IMessage<FooGroup>
19993       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
19994           , pb::IBufferMessage
19995       #endif
19996       {
19997         private static readonly pb::MessageParser<FooGroup> _parser = new pb::MessageParser<FooGroup>(() => new FooGroup());
19998         private pb::UnknownFieldSet _unknownFields;
19999         private int _hasBits0;
20000         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20001         public static pb::MessageParser<FooGroup> Parser { get { return _parser; } }
20002 
20003         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20004         public static pbr::MessageDescriptor Descriptor {
20005           get { return global::Google.Protobuf.TestProtos.Proto2.TestOneofBackwardsCompatible.Descriptor.NestedTypes[0]; }
20006         }
20007 
20008         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20009         pbr::MessageDescriptor pb::IMessage.Descriptor {
20010           get { return Descriptor; }
20011         }
20012 
20013         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooGroup()20014         public FooGroup() {
20015           OnConstruction();
20016         }
20017 
OnConstruction()20018         partial void OnConstruction();
20019 
20020         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooGroup(FooGroup other)20021         public FooGroup(FooGroup other) : this() {
20022           _hasBits0 = other._hasBits0;
20023           a_ = other.a_;
20024           b_ = other.b_;
20025           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
20026         }
20027 
20028         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()20029         public FooGroup Clone() {
20030           return new FooGroup(this);
20031         }
20032 
20033         /// <summary>Field number for the "a" field.</summary>
20034         public const int AFieldNumber = 5;
20035         private readonly static int ADefaultValue = 0;
20036 
20037         private int a_;
20038         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20039         public int A {
20040           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
20041           set {
20042             _hasBits0 |= 1;
20043             a_ = value;
20044           }
20045         }
20046         /// <summary>Gets whether the "a" field is set</summary>
20047         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20048         public bool HasA {
20049           get { return (_hasBits0 & 1) != 0; }
20050         }
20051         /// <summary>Clears the value of the "a" field</summary>
20052         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()20053         public void ClearA() {
20054           _hasBits0 &= ~1;
20055         }
20056 
20057         /// <summary>Field number for the "b" field.</summary>
20058         public const int BFieldNumber = 6;
20059         private readonly static string BDefaultValue = "";
20060 
20061         private string b_;
20062         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20063         public string B {
20064           get { return b_ ?? BDefaultValue; }
20065           set {
20066             b_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20067           }
20068         }
20069         /// <summary>Gets whether the "b" field is set</summary>
20070         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20071         public bool HasB {
20072           get { return b_ != null; }
20073         }
20074         /// <summary>Clears the value of the "b" field</summary>
20075         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearB()20076         public void ClearB() {
20077           b_ = null;
20078         }
20079 
20080         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)20081         public override bool Equals(object other) {
20082           return Equals(other as FooGroup);
20083         }
20084 
20085         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooGroup other)20086         public bool Equals(FooGroup other) {
20087           if (ReferenceEquals(other, null)) {
20088             return false;
20089           }
20090           if (ReferenceEquals(other, this)) {
20091             return true;
20092           }
20093           if (A != other.A) return false;
20094           if (B != other.B) return false;
20095           return Equals(_unknownFields, other._unknownFields);
20096         }
20097 
20098         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()20099         public override int GetHashCode() {
20100           int hash = 1;
20101           if (HasA) hash ^= A.GetHashCode();
20102           if (HasB) hash ^= B.GetHashCode();
20103           if (_unknownFields != null) {
20104             hash ^= _unknownFields.GetHashCode();
20105           }
20106           return hash;
20107         }
20108 
20109         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()20110         public override string ToString() {
20111           return pb::JsonFormatter.ToDiagnosticString(this);
20112         }
20113 
20114         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)20115         public void WriteTo(pb::CodedOutputStream output) {
20116         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20117           output.WriteRawMessage(this);
20118         #else
20119           if (HasA) {
20120             output.WriteRawTag(40);
20121             output.WriteInt32(A);
20122           }
20123           if (HasB) {
20124             output.WriteRawTag(50);
20125             output.WriteString(B);
20126           }
20127           if (_unknownFields != null) {
20128             _unknownFields.WriteTo(output);
20129           }
20130         #endif
20131         }
20132 
20133         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20134         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)20135         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
20136           if (HasA) {
20137             output.WriteRawTag(40);
20138             output.WriteInt32(A);
20139           }
20140           if (HasB) {
20141             output.WriteRawTag(50);
20142             output.WriteString(B);
20143           }
20144           if (_unknownFields != null) {
20145             _unknownFields.WriteTo(ref output);
20146           }
20147         }
20148         #endif
20149 
20150         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()20151         public int CalculateSize() {
20152           int size = 0;
20153           if (HasA) {
20154             size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
20155           }
20156           if (HasB) {
20157             size += 1 + pb::CodedOutputStream.ComputeStringSize(B);
20158           }
20159           if (_unknownFields != null) {
20160             size += _unknownFields.CalculateSize();
20161           }
20162           return size;
20163         }
20164 
20165         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooGroup other)20166         public void MergeFrom(FooGroup other) {
20167           if (other == null) {
20168             return;
20169           }
20170           if (other.HasA) {
20171             A = other.A;
20172           }
20173           if (other.HasB) {
20174             B = other.B;
20175           }
20176           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
20177         }
20178 
20179         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)20180         public void MergeFrom(pb::CodedInputStream input) {
20181         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20182           input.ReadRawMessage(this);
20183         #else
20184           uint tag;
20185           while ((tag = input.ReadTag()) != 0) {
20186             switch(tag) {
20187               case 36:
20188                 return;
20189               default:
20190                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
20191                 break;
20192               case 40: {
20193                 A = input.ReadInt32();
20194                 break;
20195               }
20196               case 50: {
20197                 B = input.ReadString();
20198                 break;
20199               }
20200             }
20201           }
20202         #endif
20203         }
20204 
20205         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20206         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)20207         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
20208           uint tag;
20209           while ((tag = input.ReadTag()) != 0) {
20210             switch(tag) {
20211               case 36:
20212                 return;
20213               default:
20214                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
20215                 break;
20216               case 40: {
20217                 A = input.ReadInt32();
20218                 break;
20219               }
20220               case 50: {
20221                 B = input.ReadString();
20222                 break;
20223               }
20224             }
20225           }
20226         }
20227         #endif
20228 
20229       }
20230 
20231     }
20232     #endregion
20233 
20234   }
20235 
20236   public sealed partial class TestOneof2 : pb::IMessage<TestOneof2>
20237   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20238       , pb::IBufferMessage
20239   #endif
20240   {
20241     private static readonly pb::MessageParser<TestOneof2> _parser = new pb::MessageParser<TestOneof2>(() => new TestOneof2());
20242     private pb::UnknownFieldSet _unknownFields;
20243     private int _hasBits0;
20244     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20245     public static pb::MessageParser<TestOneof2> Parser { get { return _parser; } }
20246 
20247     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20248     public static pbr::MessageDescriptor Descriptor {
20249       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[45]; }
20250     }
20251 
20252     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20253     pbr::MessageDescriptor pb::IMessage.Descriptor {
20254       get { return Descriptor; }
20255     }
20256 
20257     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestOneof2()20258     public TestOneof2() {
20259       OnConstruction();
20260     }
20261 
OnConstruction()20262     partial void OnConstruction();
20263 
20264     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestOneof2(TestOneof2 other)20265     public TestOneof2(TestOneof2 other) : this() {
20266       _hasBits0 = other._hasBits0;
20267       bazInt_ = other.bazInt_;
20268       bazString_ = other.bazString_;
20269       switch (other.FooCase) {
20270         case FooOneofCase.FooInt:
20271           FooInt = other.FooInt;
20272           break;
20273         case FooOneofCase.FooString:
20274           FooString = other.FooString;
20275           break;
20276         case FooOneofCase.FooCord:
20277           FooCord = other.FooCord;
20278           break;
20279         case FooOneofCase.FooStringPiece:
20280           FooStringPiece = other.FooStringPiece;
20281           break;
20282         case FooOneofCase.FooBytes:
20283           FooBytes = other.FooBytes;
20284           break;
20285         case FooOneofCase.FooEnum:
20286           FooEnum = other.FooEnum;
20287           break;
20288         case FooOneofCase.FooMessage:
20289           FooMessage = other.FooMessage.Clone();
20290           break;
20291         case FooOneofCase.FooGroup:
20292           FooGroup = other.FooGroup.Clone();
20293           break;
20294         case FooOneofCase.FooLazyMessage:
20295           FooLazyMessage = other.FooLazyMessage.Clone();
20296           break;
20297       }
20298 
20299       switch (other.BarCase) {
20300         case BarOneofCase.BarInt:
20301           BarInt = other.BarInt;
20302           break;
20303         case BarOneofCase.BarString:
20304           BarString = other.BarString;
20305           break;
20306         case BarOneofCase.BarCord:
20307           BarCord = other.BarCord;
20308           break;
20309         case BarOneofCase.BarStringPiece:
20310           BarStringPiece = other.BarStringPiece;
20311           break;
20312         case BarOneofCase.BarBytes:
20313           BarBytes = other.BarBytes;
20314           break;
20315         case BarOneofCase.BarEnum:
20316           BarEnum = other.BarEnum;
20317           break;
20318       }
20319 
20320       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
20321     }
20322 
20323     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()20324     public TestOneof2 Clone() {
20325       return new TestOneof2(this);
20326     }
20327 
20328     /// <summary>Field number for the "foo_int" field.</summary>
20329     public const int FooIntFieldNumber = 1;
20330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20331     public int FooInt {
20332       get { return HasFooInt ? (int) foo_ : 0; }
20333       set {
20334         foo_ = value;
20335         fooCase_ = FooOneofCase.FooInt;
20336       }
20337     }
20338     /// <summary>Gets whether the "foo_int" field is set</summary>
20339     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20340     public bool HasFooInt {
20341       get { return fooCase_ == FooOneofCase.FooInt; }
20342     }
20343     /// <summary> Clears the value of the oneof if it's currently set to "foo_int" </summary>
20344     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooInt()20345     public void ClearFooInt() {
20346       if (HasFooInt) {
20347         ClearFoo();
20348       }
20349     }
20350 
20351     /// <summary>Field number for the "foo_string" field.</summary>
20352     public const int FooStringFieldNumber = 2;
20353     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20354     public string FooString {
20355       get { return HasFooString ? (string) foo_ : ""; }
20356       set {
20357         foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20358         fooCase_ = FooOneofCase.FooString;
20359       }
20360     }
20361     /// <summary>Gets whether the "foo_string" field is set</summary>
20362     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20363     public bool HasFooString {
20364       get { return fooCase_ == FooOneofCase.FooString; }
20365     }
20366     /// <summary> Clears the value of the oneof if it's currently set to "foo_string" </summary>
20367     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooString()20368     public void ClearFooString() {
20369       if (HasFooString) {
20370         ClearFoo();
20371       }
20372     }
20373 
20374     /// <summary>Field number for the "foo_cord" field.</summary>
20375     public const int FooCordFieldNumber = 3;
20376     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20377     public string FooCord {
20378       get { return HasFooCord ? (string) foo_ : ""; }
20379       set {
20380         foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20381         fooCase_ = FooOneofCase.FooCord;
20382       }
20383     }
20384     /// <summary>Gets whether the "foo_cord" field is set</summary>
20385     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20386     public bool HasFooCord {
20387       get { return fooCase_ == FooOneofCase.FooCord; }
20388     }
20389     /// <summary> Clears the value of the oneof if it's currently set to "foo_cord" </summary>
20390     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooCord()20391     public void ClearFooCord() {
20392       if (HasFooCord) {
20393         ClearFoo();
20394       }
20395     }
20396 
20397     /// <summary>Field number for the "foo_string_piece" field.</summary>
20398     public const int FooStringPieceFieldNumber = 4;
20399     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20400     public string FooStringPiece {
20401       get { return HasFooStringPiece ? (string) foo_ : ""; }
20402       set {
20403         foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20404         fooCase_ = FooOneofCase.FooStringPiece;
20405       }
20406     }
20407     /// <summary>Gets whether the "foo_string_piece" field is set</summary>
20408     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20409     public bool HasFooStringPiece {
20410       get { return fooCase_ == FooOneofCase.FooStringPiece; }
20411     }
20412     /// <summary> Clears the value of the oneof if it's currently set to "foo_string_piece" </summary>
20413     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooStringPiece()20414     public void ClearFooStringPiece() {
20415       if (HasFooStringPiece) {
20416         ClearFoo();
20417       }
20418     }
20419 
20420     /// <summary>Field number for the "foo_bytes" field.</summary>
20421     public const int FooBytesFieldNumber = 5;
20422     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20423     public pb::ByteString FooBytes {
20424       get { return HasFooBytes ? (pb::ByteString) foo_ : pb::ByteString.Empty; }
20425       set {
20426         foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20427         fooCase_ = FooOneofCase.FooBytes;
20428       }
20429     }
20430     /// <summary>Gets whether the "foo_bytes" field is set</summary>
20431     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20432     public bool HasFooBytes {
20433       get { return fooCase_ == FooOneofCase.FooBytes; }
20434     }
20435     /// <summary> Clears the value of the oneof if it's currently set to "foo_bytes" </summary>
20436     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooBytes()20437     public void ClearFooBytes() {
20438       if (HasFooBytes) {
20439         ClearFoo();
20440       }
20441     }
20442 
20443     /// <summary>Field number for the "foo_enum" field.</summary>
20444     public const int FooEnumFieldNumber = 6;
20445     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20446     public global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum FooEnum {
20447       get { return HasFooEnum ? (global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum) foo_ : global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum.Foo; }
20448       set {
20449         foo_ = value;
20450         fooCase_ = FooOneofCase.FooEnum;
20451       }
20452     }
20453     /// <summary>Gets whether the "foo_enum" field is set</summary>
20454     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20455     public bool HasFooEnum {
20456       get { return fooCase_ == FooOneofCase.FooEnum; }
20457     }
20458     /// <summary> Clears the value of the oneof if it's currently set to "foo_enum" </summary>
20459     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooEnum()20460     public void ClearFooEnum() {
20461       if (HasFooEnum) {
20462         ClearFoo();
20463       }
20464     }
20465 
20466     /// <summary>Field number for the "foo_message" field.</summary>
20467     public const int FooMessageFieldNumber = 7;
20468     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20469     public global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage FooMessage {
20470       get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage) foo_ : null; }
20471       set {
20472         foo_ = value;
20473         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooMessage;
20474       }
20475     }
20476 
20477     /// <summary>Field number for the "foogroup" field.</summary>
20478     public const int FooGroupFieldNumber = 8;
20479     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20480     public global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup FooGroup {
20481       get { return HasFooGroup ? (global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup) foo_ : null; }
20482       set {
20483         foo_ = value;
20484         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooGroup;
20485       }
20486     }
20487     /// <summary>Gets whether the "foogroup" field is set</summary>
20488     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20489     public bool HasFooGroup {
20490       get { return fooCase_ == FooOneofCase.FooGroup; }
20491     }
20492     /// <summary> Clears the value of the oneof if it's currently set to "foogroup" </summary>
20493     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooGroup()20494     public void ClearFooGroup() {
20495       if (HasFooGroup) {
20496         ClearFoo();
20497       }
20498     }
20499 
20500     /// <summary>Field number for the "foo_lazy_message" field.</summary>
20501     public const int FooLazyMessageFieldNumber = 11;
20502     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20503     public global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage FooLazyMessage {
20504       get { return fooCase_ == FooOneofCase.FooLazyMessage ? (global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage) foo_ : null; }
20505       set {
20506         foo_ = value;
20507         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooLazyMessage;
20508       }
20509     }
20510 
20511     /// <summary>Field number for the "bar_int" field.</summary>
20512     public const int BarIntFieldNumber = 12;
20513     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20514     public int BarInt {
20515       get { return HasBarInt ? (int) bar_ : 5; }
20516       set {
20517         bar_ = value;
20518         barCase_ = BarOneofCase.BarInt;
20519       }
20520     }
20521     /// <summary>Gets whether the "bar_int" field is set</summary>
20522     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20523     public bool HasBarInt {
20524       get { return barCase_ == BarOneofCase.BarInt; }
20525     }
20526     /// <summary> Clears the value of the oneof if it's currently set to "bar_int" </summary>
20527     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBarInt()20528     public void ClearBarInt() {
20529       if (HasBarInt) {
20530         ClearBar();
20531       }
20532     }
20533 
20534     /// <summary>Field number for the "bar_string" field.</summary>
20535     public const int BarStringFieldNumber = 13;
20536     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20537     public string BarString {
20538       get { return HasBarString ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("U1RSSU5H"), 0, 6); }
20539       set {
20540         bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20541         barCase_ = BarOneofCase.BarString;
20542       }
20543     }
20544     /// <summary>Gets whether the "bar_string" field is set</summary>
20545     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20546     public bool HasBarString {
20547       get { return barCase_ == BarOneofCase.BarString; }
20548     }
20549     /// <summary> Clears the value of the oneof if it's currently set to "bar_string" </summary>
20550     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBarString()20551     public void ClearBarString() {
20552       if (HasBarString) {
20553         ClearBar();
20554       }
20555     }
20556 
20557     /// <summary>Field number for the "bar_cord" field.</summary>
20558     public const int BarCordFieldNumber = 14;
20559     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20560     public string BarCord {
20561       get { return HasBarCord ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("Q09SRA=="), 0, 4); }
20562       set {
20563         bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20564         barCase_ = BarOneofCase.BarCord;
20565       }
20566     }
20567     /// <summary>Gets whether the "bar_cord" field is set</summary>
20568     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20569     public bool HasBarCord {
20570       get { return barCase_ == BarOneofCase.BarCord; }
20571     }
20572     /// <summary> Clears the value of the oneof if it's currently set to "bar_cord" </summary>
20573     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBarCord()20574     public void ClearBarCord() {
20575       if (HasBarCord) {
20576         ClearBar();
20577       }
20578     }
20579 
20580     /// <summary>Field number for the "bar_string_piece" field.</summary>
20581     public const int BarStringPieceFieldNumber = 15;
20582     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20583     public string BarStringPiece {
20584       get { return HasBarStringPiece ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("U1BJRUNF"), 0, 6); }
20585       set {
20586         bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20587         barCase_ = BarOneofCase.BarStringPiece;
20588       }
20589     }
20590     /// <summary>Gets whether the "bar_string_piece" field is set</summary>
20591     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20592     public bool HasBarStringPiece {
20593       get { return barCase_ == BarOneofCase.BarStringPiece; }
20594     }
20595     /// <summary> Clears the value of the oneof if it's currently set to "bar_string_piece" </summary>
20596     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBarStringPiece()20597     public void ClearBarStringPiece() {
20598       if (HasBarStringPiece) {
20599         ClearBar();
20600       }
20601     }
20602 
20603     /// <summary>Field number for the "bar_bytes" field.</summary>
20604     public const int BarBytesFieldNumber = 16;
20605     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20606     public pb::ByteString BarBytes {
20607       get { return HasBarBytes ? (pb::ByteString) bar_ : pb::ByteString.FromBase64("QllURVM="); }
20608       set {
20609         bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20610         barCase_ = BarOneofCase.BarBytes;
20611       }
20612     }
20613     /// <summary>Gets whether the "bar_bytes" field is set</summary>
20614     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20615     public bool HasBarBytes {
20616       get { return barCase_ == BarOneofCase.BarBytes; }
20617     }
20618     /// <summary> Clears the value of the oneof if it's currently set to "bar_bytes" </summary>
20619     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBarBytes()20620     public void ClearBarBytes() {
20621       if (HasBarBytes) {
20622         ClearBar();
20623       }
20624     }
20625 
20626     /// <summary>Field number for the "bar_enum" field.</summary>
20627     public const int BarEnumFieldNumber = 17;
20628     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20629     public global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum BarEnum {
20630       get { return HasBarEnum ? (global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum) bar_ : global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedEnum.Bar; }
20631       set {
20632         bar_ = value;
20633         barCase_ = BarOneofCase.BarEnum;
20634       }
20635     }
20636     /// <summary>Gets whether the "bar_enum" field is set</summary>
20637     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20638     public bool HasBarEnum {
20639       get { return barCase_ == BarOneofCase.BarEnum; }
20640     }
20641     /// <summary> Clears the value of the oneof if it's currently set to "bar_enum" </summary>
20642     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBarEnum()20643     public void ClearBarEnum() {
20644       if (HasBarEnum) {
20645         ClearBar();
20646       }
20647     }
20648 
20649     /// <summary>Field number for the "baz_int" field.</summary>
20650     public const int BazIntFieldNumber = 18;
20651     private readonly static int BazIntDefaultValue = 0;
20652 
20653     private int bazInt_;
20654     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20655     public int BazInt {
20656       get { if ((_hasBits0 & 1) != 0) { return bazInt_; } else { return BazIntDefaultValue; } }
20657       set {
20658         _hasBits0 |= 1;
20659         bazInt_ = value;
20660       }
20661     }
20662     /// <summary>Gets whether the "baz_int" field is set</summary>
20663     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20664     public bool HasBazInt {
20665       get { return (_hasBits0 & 1) != 0; }
20666     }
20667     /// <summary>Clears the value of the "baz_int" field</summary>
20668     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBazInt()20669     public void ClearBazInt() {
20670       _hasBits0 &= ~1;
20671     }
20672 
20673     /// <summary>Field number for the "baz_string" field.</summary>
20674     public const int BazStringFieldNumber = 19;
20675     private readonly static string BazStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("QkFa"), 0, 3);
20676 
20677     private string bazString_;
20678     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20679     public string BazString {
20680       get { return bazString_ ?? BazStringDefaultValue; }
20681       set {
20682         bazString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
20683       }
20684     }
20685     /// <summary>Gets whether the "baz_string" field is set</summary>
20686     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20687     public bool HasBazString {
20688       get { return bazString_ != null; }
20689     }
20690     /// <summary>Clears the value of the "baz_string" field</summary>
20691     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBazString()20692     public void ClearBazString() {
20693       bazString_ = null;
20694     }
20695 
20696     private object foo_;
20697     /// <summary>Enum of possible cases for the "foo" oneof.</summary>
20698     public enum FooOneofCase {
20699       None = 0,
20700       FooInt = 1,
20701       FooString = 2,
20702       FooCord = 3,
20703       FooStringPiece = 4,
20704       FooBytes = 5,
20705       FooEnum = 6,
20706       FooMessage = 7,
20707       FooGroup = 8,
20708       FooLazyMessage = 11,
20709     }
20710     private FooOneofCase fooCase_ = FooOneofCase.None;
20711     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20712     public FooOneofCase FooCase {
20713       get { return fooCase_; }
20714     }
20715 
20716     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFoo()20717     public void ClearFoo() {
20718       fooCase_ = FooOneofCase.None;
20719       foo_ = null;
20720     }
20721 
20722     private object bar_;
20723     /// <summary>Enum of possible cases for the "bar" oneof.</summary>
20724     public enum BarOneofCase {
20725       None = 0,
20726       BarInt = 12,
20727       BarString = 13,
20728       BarCord = 14,
20729       BarStringPiece = 15,
20730       BarBytes = 16,
20731       BarEnum = 17,
20732     }
20733     private BarOneofCase barCase_ = BarOneofCase.None;
20734     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
20735     public BarOneofCase BarCase {
20736       get { return barCase_; }
20737     }
20738 
20739     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearBar()20740     public void ClearBar() {
20741       barCase_ = BarOneofCase.None;
20742       bar_ = null;
20743     }
20744 
20745     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)20746     public override bool Equals(object other) {
20747       return Equals(other as TestOneof2);
20748     }
20749 
20750     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestOneof2 other)20751     public bool Equals(TestOneof2 other) {
20752       if (ReferenceEquals(other, null)) {
20753         return false;
20754       }
20755       if (ReferenceEquals(other, this)) {
20756         return true;
20757       }
20758       if (FooInt != other.FooInt) return false;
20759       if (FooString != other.FooString) return false;
20760       if (FooCord != other.FooCord) return false;
20761       if (FooStringPiece != other.FooStringPiece) return false;
20762       if (FooBytes != other.FooBytes) return false;
20763       if (FooEnum != other.FooEnum) return false;
20764       if (!object.Equals(FooMessage, other.FooMessage)) return false;
20765       if (!object.Equals(FooGroup, other.FooGroup)) return false;
20766       if (!object.Equals(FooLazyMessage, other.FooLazyMessage)) return false;
20767       if (BarInt != other.BarInt) return false;
20768       if (BarString != other.BarString) return false;
20769       if (BarCord != other.BarCord) return false;
20770       if (BarStringPiece != other.BarStringPiece) return false;
20771       if (BarBytes != other.BarBytes) return false;
20772       if (BarEnum != other.BarEnum) return false;
20773       if (BazInt != other.BazInt) return false;
20774       if (BazString != other.BazString) return false;
20775       if (FooCase != other.FooCase) return false;
20776       if (BarCase != other.BarCase) return false;
20777       return Equals(_unknownFields, other._unknownFields);
20778     }
20779 
20780     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()20781     public override int GetHashCode() {
20782       int hash = 1;
20783       if (HasFooInt) hash ^= FooInt.GetHashCode();
20784       if (HasFooString) hash ^= FooString.GetHashCode();
20785       if (HasFooCord) hash ^= FooCord.GetHashCode();
20786       if (HasFooStringPiece) hash ^= FooStringPiece.GetHashCode();
20787       if (HasFooBytes) hash ^= FooBytes.GetHashCode();
20788       if (HasFooEnum) hash ^= FooEnum.GetHashCode();
20789       if (fooCase_ == FooOneofCase.FooMessage) hash ^= FooMessage.GetHashCode();
20790       if (HasFooGroup) hash ^= FooGroup.GetHashCode();
20791       if (fooCase_ == FooOneofCase.FooLazyMessage) hash ^= FooLazyMessage.GetHashCode();
20792       if (HasBarInt) hash ^= BarInt.GetHashCode();
20793       if (HasBarString) hash ^= BarString.GetHashCode();
20794       if (HasBarCord) hash ^= BarCord.GetHashCode();
20795       if (HasBarStringPiece) hash ^= BarStringPiece.GetHashCode();
20796       if (HasBarBytes) hash ^= BarBytes.GetHashCode();
20797       if (HasBarEnum) hash ^= BarEnum.GetHashCode();
20798       if (HasBazInt) hash ^= BazInt.GetHashCode();
20799       if (HasBazString) hash ^= BazString.GetHashCode();
20800       hash ^= (int) fooCase_;
20801       hash ^= (int) barCase_;
20802       if (_unknownFields != null) {
20803         hash ^= _unknownFields.GetHashCode();
20804       }
20805       return hash;
20806     }
20807 
20808     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()20809     public override string ToString() {
20810       return pb::JsonFormatter.ToDiagnosticString(this);
20811     }
20812 
20813     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)20814     public void WriteTo(pb::CodedOutputStream output) {
20815     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20816       output.WriteRawMessage(this);
20817     #else
20818       if (HasFooInt) {
20819         output.WriteRawTag(8);
20820         output.WriteInt32(FooInt);
20821       }
20822       if (HasFooString) {
20823         output.WriteRawTag(18);
20824         output.WriteString(FooString);
20825       }
20826       if (HasFooCord) {
20827         output.WriteRawTag(26);
20828         output.WriteString(FooCord);
20829       }
20830       if (HasFooStringPiece) {
20831         output.WriteRawTag(34);
20832         output.WriteString(FooStringPiece);
20833       }
20834       if (HasFooBytes) {
20835         output.WriteRawTag(42);
20836         output.WriteBytes(FooBytes);
20837       }
20838       if (HasFooEnum) {
20839         output.WriteRawTag(48);
20840         output.WriteEnum((int) FooEnum);
20841       }
20842       if (fooCase_ == FooOneofCase.FooMessage) {
20843         output.WriteRawTag(58);
20844         output.WriteMessage(FooMessage);
20845       }
20846       if (HasFooGroup) {
20847         output.WriteRawTag(67);
20848         output.WriteGroup(FooGroup);
20849         output.WriteRawTag(68);
20850       }
20851       if (fooCase_ == FooOneofCase.FooLazyMessage) {
20852         output.WriteRawTag(90);
20853         output.WriteMessage(FooLazyMessage);
20854       }
20855       if (HasBarInt) {
20856         output.WriteRawTag(96);
20857         output.WriteInt32(BarInt);
20858       }
20859       if (HasBarString) {
20860         output.WriteRawTag(106);
20861         output.WriteString(BarString);
20862       }
20863       if (HasBarCord) {
20864         output.WriteRawTag(114);
20865         output.WriteString(BarCord);
20866       }
20867       if (HasBarStringPiece) {
20868         output.WriteRawTag(122);
20869         output.WriteString(BarStringPiece);
20870       }
20871       if (HasBarBytes) {
20872         output.WriteRawTag(130, 1);
20873         output.WriteBytes(BarBytes);
20874       }
20875       if (HasBarEnum) {
20876         output.WriteRawTag(136, 1);
20877         output.WriteEnum((int) BarEnum);
20878       }
20879       if (HasBazInt) {
20880         output.WriteRawTag(144, 1);
20881         output.WriteInt32(BazInt);
20882       }
20883       if (HasBazString) {
20884         output.WriteRawTag(154, 1);
20885         output.WriteString(BazString);
20886       }
20887       if (_unknownFields != null) {
20888         _unknownFields.WriteTo(output);
20889       }
20890     #endif
20891     }
20892 
20893     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
20894     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)20895     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
20896       if (HasFooInt) {
20897         output.WriteRawTag(8);
20898         output.WriteInt32(FooInt);
20899       }
20900       if (HasFooString) {
20901         output.WriteRawTag(18);
20902         output.WriteString(FooString);
20903       }
20904       if (HasFooCord) {
20905         output.WriteRawTag(26);
20906         output.WriteString(FooCord);
20907       }
20908       if (HasFooStringPiece) {
20909         output.WriteRawTag(34);
20910         output.WriteString(FooStringPiece);
20911       }
20912       if (HasFooBytes) {
20913         output.WriteRawTag(42);
20914         output.WriteBytes(FooBytes);
20915       }
20916       if (HasFooEnum) {
20917         output.WriteRawTag(48);
20918         output.WriteEnum((int) FooEnum);
20919       }
20920       if (fooCase_ == FooOneofCase.FooMessage) {
20921         output.WriteRawTag(58);
20922         output.WriteMessage(FooMessage);
20923       }
20924       if (HasFooGroup) {
20925         output.WriteRawTag(67);
20926         output.WriteGroup(FooGroup);
20927         output.WriteRawTag(68);
20928       }
20929       if (fooCase_ == FooOneofCase.FooLazyMessage) {
20930         output.WriteRawTag(90);
20931         output.WriteMessage(FooLazyMessage);
20932       }
20933       if (HasBarInt) {
20934         output.WriteRawTag(96);
20935         output.WriteInt32(BarInt);
20936       }
20937       if (HasBarString) {
20938         output.WriteRawTag(106);
20939         output.WriteString(BarString);
20940       }
20941       if (HasBarCord) {
20942         output.WriteRawTag(114);
20943         output.WriteString(BarCord);
20944       }
20945       if (HasBarStringPiece) {
20946         output.WriteRawTag(122);
20947         output.WriteString(BarStringPiece);
20948       }
20949       if (HasBarBytes) {
20950         output.WriteRawTag(130, 1);
20951         output.WriteBytes(BarBytes);
20952       }
20953       if (HasBarEnum) {
20954         output.WriteRawTag(136, 1);
20955         output.WriteEnum((int) BarEnum);
20956       }
20957       if (HasBazInt) {
20958         output.WriteRawTag(144, 1);
20959         output.WriteInt32(BazInt);
20960       }
20961       if (HasBazString) {
20962         output.WriteRawTag(154, 1);
20963         output.WriteString(BazString);
20964       }
20965       if (_unknownFields != null) {
20966         _unknownFields.WriteTo(ref output);
20967       }
20968     }
20969     #endif
20970 
20971     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()20972     public int CalculateSize() {
20973       int size = 0;
20974       if (HasFooInt) {
20975         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FooInt);
20976       }
20977       if (HasFooString) {
20978         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooString);
20979       }
20980       if (HasFooCord) {
20981         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooCord);
20982       }
20983       if (HasFooStringPiece) {
20984         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooStringPiece);
20985       }
20986       if (HasFooBytes) {
20987         size += 1 + pb::CodedOutputStream.ComputeBytesSize(FooBytes);
20988       }
20989       if (HasFooEnum) {
20990         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FooEnum);
20991       }
20992       if (fooCase_ == FooOneofCase.FooMessage) {
20993         size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooMessage);
20994       }
20995       if (HasFooGroup) {
20996         size += 2 + pb::CodedOutputStream.ComputeGroupSize(FooGroup);
20997       }
20998       if (fooCase_ == FooOneofCase.FooLazyMessage) {
20999         size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooLazyMessage);
21000       }
21001       if (HasBarInt) {
21002         size += 1 + pb::CodedOutputStream.ComputeInt32Size(BarInt);
21003       }
21004       if (HasBarString) {
21005         size += 1 + pb::CodedOutputStream.ComputeStringSize(BarString);
21006       }
21007       if (HasBarCord) {
21008         size += 1 + pb::CodedOutputStream.ComputeStringSize(BarCord);
21009       }
21010       if (HasBarStringPiece) {
21011         size += 1 + pb::CodedOutputStream.ComputeStringSize(BarStringPiece);
21012       }
21013       if (HasBarBytes) {
21014         size += 2 + pb::CodedOutputStream.ComputeBytesSize(BarBytes);
21015       }
21016       if (HasBarEnum) {
21017         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) BarEnum);
21018       }
21019       if (HasBazInt) {
21020         size += 2 + pb::CodedOutputStream.ComputeInt32Size(BazInt);
21021       }
21022       if (HasBazString) {
21023         size += 2 + pb::CodedOutputStream.ComputeStringSize(BazString);
21024       }
21025       if (_unknownFields != null) {
21026         size += _unknownFields.CalculateSize();
21027       }
21028       return size;
21029     }
21030 
21031     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestOneof2 other)21032     public void MergeFrom(TestOneof2 other) {
21033       if (other == null) {
21034         return;
21035       }
21036       if (other.HasBazInt) {
21037         BazInt = other.BazInt;
21038       }
21039       if (other.HasBazString) {
21040         BazString = other.BazString;
21041       }
21042       switch (other.FooCase) {
21043         case FooOneofCase.FooInt:
21044           FooInt = other.FooInt;
21045           break;
21046         case FooOneofCase.FooString:
21047           FooString = other.FooString;
21048           break;
21049         case FooOneofCase.FooCord:
21050           FooCord = other.FooCord;
21051           break;
21052         case FooOneofCase.FooStringPiece:
21053           FooStringPiece = other.FooStringPiece;
21054           break;
21055         case FooOneofCase.FooBytes:
21056           FooBytes = other.FooBytes;
21057           break;
21058         case FooOneofCase.FooEnum:
21059           FooEnum = other.FooEnum;
21060           break;
21061         case FooOneofCase.FooMessage:
21062           if (FooMessage == null) {
21063             FooMessage = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage();
21064           }
21065           FooMessage.MergeFrom(other.FooMessage);
21066           break;
21067         case FooOneofCase.FooGroup:
21068           if (FooGroup == null) {
21069             FooGroup = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup();
21070           }
21071           FooGroup.MergeFrom(other.FooGroup);
21072           break;
21073         case FooOneofCase.FooLazyMessage:
21074           if (FooLazyMessage == null) {
21075             FooLazyMessage = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage();
21076           }
21077           FooLazyMessage.MergeFrom(other.FooLazyMessage);
21078           break;
21079       }
21080 
21081       switch (other.BarCase) {
21082         case BarOneofCase.BarInt:
21083           BarInt = other.BarInt;
21084           break;
21085         case BarOneofCase.BarString:
21086           BarString = other.BarString;
21087           break;
21088         case BarOneofCase.BarCord:
21089           BarCord = other.BarCord;
21090           break;
21091         case BarOneofCase.BarStringPiece:
21092           BarStringPiece = other.BarStringPiece;
21093           break;
21094         case BarOneofCase.BarBytes:
21095           BarBytes = other.BarBytes;
21096           break;
21097         case BarOneofCase.BarEnum:
21098           BarEnum = other.BarEnum;
21099           break;
21100       }
21101 
21102       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
21103     }
21104 
21105     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)21106     public void MergeFrom(pb::CodedInputStream input) {
21107     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21108       input.ReadRawMessage(this);
21109     #else
21110       uint tag;
21111       while ((tag = input.ReadTag()) != 0) {
21112         switch(tag) {
21113           default:
21114             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
21115             break;
21116           case 8: {
21117             FooInt = input.ReadInt32();
21118             break;
21119           }
21120           case 18: {
21121             FooString = input.ReadString();
21122             break;
21123           }
21124           case 26: {
21125             FooCord = input.ReadString();
21126             break;
21127           }
21128           case 34: {
21129             FooStringPiece = input.ReadString();
21130             break;
21131           }
21132           case 42: {
21133             FooBytes = input.ReadBytes();
21134             break;
21135           }
21136           case 48: {
21137             foo_ = input.ReadEnum();
21138             fooCase_ = FooOneofCase.FooEnum;
21139             break;
21140           }
21141           case 58: {
21142             global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage();
21143             if (fooCase_ == FooOneofCase.FooMessage) {
21144               subBuilder.MergeFrom(FooMessage);
21145             }
21146             input.ReadMessage(subBuilder);
21147             FooMessage = subBuilder;
21148             break;
21149           }
21150           case 67: {
21151             global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup();
21152             if (HasFooGroup) {
21153               subBuilder.MergeFrom(FooGroup);
21154             }
21155             input.ReadGroup(subBuilder);
21156             FooGroup = subBuilder;
21157             break;
21158           }
21159           case 90: {
21160             global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage();
21161             if (fooCase_ == FooOneofCase.FooLazyMessage) {
21162               subBuilder.MergeFrom(FooLazyMessage);
21163             }
21164             input.ReadMessage(subBuilder);
21165             FooLazyMessage = subBuilder;
21166             break;
21167           }
21168           case 96: {
21169             BarInt = input.ReadInt32();
21170             break;
21171           }
21172           case 106: {
21173             BarString = input.ReadString();
21174             break;
21175           }
21176           case 114: {
21177             BarCord = input.ReadString();
21178             break;
21179           }
21180           case 122: {
21181             BarStringPiece = input.ReadString();
21182             break;
21183           }
21184           case 130: {
21185             BarBytes = input.ReadBytes();
21186             break;
21187           }
21188           case 136: {
21189             bar_ = input.ReadEnum();
21190             barCase_ = BarOneofCase.BarEnum;
21191             break;
21192           }
21193           case 144: {
21194             BazInt = input.ReadInt32();
21195             break;
21196           }
21197           case 154: {
21198             BazString = input.ReadString();
21199             break;
21200           }
21201         }
21202       }
21203     #endif
21204     }
21205 
21206     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21207     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)21208     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
21209       uint tag;
21210       while ((tag = input.ReadTag()) != 0) {
21211         switch(tag) {
21212           default:
21213             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
21214             break;
21215           case 8: {
21216             FooInt = input.ReadInt32();
21217             break;
21218           }
21219           case 18: {
21220             FooString = input.ReadString();
21221             break;
21222           }
21223           case 26: {
21224             FooCord = input.ReadString();
21225             break;
21226           }
21227           case 34: {
21228             FooStringPiece = input.ReadString();
21229             break;
21230           }
21231           case 42: {
21232             FooBytes = input.ReadBytes();
21233             break;
21234           }
21235           case 48: {
21236             foo_ = input.ReadEnum();
21237             fooCase_ = FooOneofCase.FooEnum;
21238             break;
21239           }
21240           case 58: {
21241             global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage();
21242             if (fooCase_ == FooOneofCase.FooMessage) {
21243               subBuilder.MergeFrom(FooMessage);
21244             }
21245             input.ReadMessage(subBuilder);
21246             FooMessage = subBuilder;
21247             break;
21248           }
21249           case 67: {
21250             global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.FooGroup();
21251             if (HasFooGroup) {
21252               subBuilder.MergeFrom(FooGroup);
21253             }
21254             input.ReadGroup(subBuilder);
21255             FooGroup = subBuilder;
21256             break;
21257           }
21258           case 90: {
21259             global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Types.NestedMessage();
21260             if (fooCase_ == FooOneofCase.FooLazyMessage) {
21261               subBuilder.MergeFrom(FooLazyMessage);
21262             }
21263             input.ReadMessage(subBuilder);
21264             FooLazyMessage = subBuilder;
21265             break;
21266           }
21267           case 96: {
21268             BarInt = input.ReadInt32();
21269             break;
21270           }
21271           case 106: {
21272             BarString = input.ReadString();
21273             break;
21274           }
21275           case 114: {
21276             BarCord = input.ReadString();
21277             break;
21278           }
21279           case 122: {
21280             BarStringPiece = input.ReadString();
21281             break;
21282           }
21283           case 130: {
21284             BarBytes = input.ReadBytes();
21285             break;
21286           }
21287           case 136: {
21288             bar_ = input.ReadEnum();
21289             barCase_ = BarOneofCase.BarEnum;
21290             break;
21291           }
21292           case 144: {
21293             BazInt = input.ReadInt32();
21294             break;
21295           }
21296           case 154: {
21297             BazString = input.ReadString();
21298             break;
21299           }
21300         }
21301       }
21302     }
21303     #endif
21304 
21305     #region Nested types
21306     /// <summary>Container for nested types declared in the TestOneof2 message type.</summary>
21307     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21308     public static partial class Types {
21309       public enum NestedEnum {
21310         [pbr::OriginalName("FOO")] Foo = 1,
21311         [pbr::OriginalName("BAR")] Bar = 2,
21312         [pbr::OriginalName("BAZ")] Baz = 3,
21313       }
21314 
21315       public sealed partial class FooGroup : pb::IMessage<FooGroup>
21316       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21317           , pb::IBufferMessage
21318       #endif
21319       {
21320         private static readonly pb::MessageParser<FooGroup> _parser = new pb::MessageParser<FooGroup>(() => new FooGroup());
21321         private pb::UnknownFieldSet _unknownFields;
21322         private int _hasBits0;
21323         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21324         public static pb::MessageParser<FooGroup> Parser { get { return _parser; } }
21325 
21326         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21327         public static pbr::MessageDescriptor Descriptor {
21328           get { return global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Descriptor.NestedTypes[0]; }
21329         }
21330 
21331         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21332         pbr::MessageDescriptor pb::IMessage.Descriptor {
21333           get { return Descriptor; }
21334         }
21335 
21336         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooGroup()21337         public FooGroup() {
21338           OnConstruction();
21339         }
21340 
OnConstruction()21341         partial void OnConstruction();
21342 
21343         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooGroup(FooGroup other)21344         public FooGroup(FooGroup other) : this() {
21345           _hasBits0 = other._hasBits0;
21346           a_ = other.a_;
21347           b_ = other.b_;
21348           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
21349         }
21350 
21351         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()21352         public FooGroup Clone() {
21353           return new FooGroup(this);
21354         }
21355 
21356         /// <summary>Field number for the "a" field.</summary>
21357         public const int AFieldNumber = 9;
21358         private readonly static int ADefaultValue = 0;
21359 
21360         private int a_;
21361         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21362         public int A {
21363           get { if ((_hasBits0 & 1) != 0) { return a_; } else { return ADefaultValue; } }
21364           set {
21365             _hasBits0 |= 1;
21366             a_ = value;
21367           }
21368         }
21369         /// <summary>Gets whether the "a" field is set</summary>
21370         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21371         public bool HasA {
21372           get { return (_hasBits0 & 1) != 0; }
21373         }
21374         /// <summary>Clears the value of the "a" field</summary>
21375         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()21376         public void ClearA() {
21377           _hasBits0 &= ~1;
21378         }
21379 
21380         /// <summary>Field number for the "b" field.</summary>
21381         public const int BFieldNumber = 10;
21382         private readonly static string BDefaultValue = "";
21383 
21384         private string b_;
21385         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21386         public string B {
21387           get { return b_ ?? BDefaultValue; }
21388           set {
21389             b_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
21390           }
21391         }
21392         /// <summary>Gets whether the "b" field is set</summary>
21393         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21394         public bool HasB {
21395           get { return b_ != null; }
21396         }
21397         /// <summary>Clears the value of the "b" field</summary>
21398         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearB()21399         public void ClearB() {
21400           b_ = null;
21401         }
21402 
21403         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)21404         public override bool Equals(object other) {
21405           return Equals(other as FooGroup);
21406         }
21407 
21408         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooGroup other)21409         public bool Equals(FooGroup other) {
21410           if (ReferenceEquals(other, null)) {
21411             return false;
21412           }
21413           if (ReferenceEquals(other, this)) {
21414             return true;
21415           }
21416           if (A != other.A) return false;
21417           if (B != other.B) return false;
21418           return Equals(_unknownFields, other._unknownFields);
21419         }
21420 
21421         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()21422         public override int GetHashCode() {
21423           int hash = 1;
21424           if (HasA) hash ^= A.GetHashCode();
21425           if (HasB) hash ^= B.GetHashCode();
21426           if (_unknownFields != null) {
21427             hash ^= _unknownFields.GetHashCode();
21428           }
21429           return hash;
21430         }
21431 
21432         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()21433         public override string ToString() {
21434           return pb::JsonFormatter.ToDiagnosticString(this);
21435         }
21436 
21437         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)21438         public void WriteTo(pb::CodedOutputStream output) {
21439         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21440           output.WriteRawMessage(this);
21441         #else
21442           if (HasA) {
21443             output.WriteRawTag(72);
21444             output.WriteInt32(A);
21445           }
21446           if (HasB) {
21447             output.WriteRawTag(82);
21448             output.WriteString(B);
21449           }
21450           if (_unknownFields != null) {
21451             _unknownFields.WriteTo(output);
21452           }
21453         #endif
21454         }
21455 
21456         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21457         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)21458         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
21459           if (HasA) {
21460             output.WriteRawTag(72);
21461             output.WriteInt32(A);
21462           }
21463           if (HasB) {
21464             output.WriteRawTag(82);
21465             output.WriteString(B);
21466           }
21467           if (_unknownFields != null) {
21468             _unknownFields.WriteTo(ref output);
21469           }
21470         }
21471         #endif
21472 
21473         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()21474         public int CalculateSize() {
21475           int size = 0;
21476           if (HasA) {
21477             size += 1 + pb::CodedOutputStream.ComputeInt32Size(A);
21478           }
21479           if (HasB) {
21480             size += 1 + pb::CodedOutputStream.ComputeStringSize(B);
21481           }
21482           if (_unknownFields != null) {
21483             size += _unknownFields.CalculateSize();
21484           }
21485           return size;
21486         }
21487 
21488         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooGroup other)21489         public void MergeFrom(FooGroup other) {
21490           if (other == null) {
21491             return;
21492           }
21493           if (other.HasA) {
21494             A = other.A;
21495           }
21496           if (other.HasB) {
21497             B = other.B;
21498           }
21499           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
21500         }
21501 
21502         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)21503         public void MergeFrom(pb::CodedInputStream input) {
21504         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21505           input.ReadRawMessage(this);
21506         #else
21507           uint tag;
21508           while ((tag = input.ReadTag()) != 0) {
21509             switch(tag) {
21510               case 68:
21511                 return;
21512               default:
21513                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
21514                 break;
21515               case 72: {
21516                 A = input.ReadInt32();
21517                 break;
21518               }
21519               case 82: {
21520                 B = input.ReadString();
21521                 break;
21522               }
21523             }
21524           }
21525         #endif
21526         }
21527 
21528         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21529         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)21530         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
21531           uint tag;
21532           while ((tag = input.ReadTag()) != 0) {
21533             switch(tag) {
21534               case 68:
21535                 return;
21536               default:
21537                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
21538                 break;
21539               case 72: {
21540                 A = input.ReadInt32();
21541                 break;
21542               }
21543               case 82: {
21544                 B = input.ReadString();
21545                 break;
21546               }
21547             }
21548           }
21549         }
21550         #endif
21551 
21552       }
21553 
21554       public sealed partial class NestedMessage : pb::IMessage<NestedMessage>
21555       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21556           , pb::IBufferMessage
21557       #endif
21558       {
21559         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
21560         private pb::UnknownFieldSet _unknownFields;
21561         private int _hasBits0;
21562         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21563         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
21564 
21565         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21566         public static pbr::MessageDescriptor Descriptor {
21567           get { return global::Google.Protobuf.TestProtos.Proto2.TestOneof2.Descriptor.NestedTypes[1]; }
21568         }
21569 
21570         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21571         pbr::MessageDescriptor pb::IMessage.Descriptor {
21572           get { return Descriptor; }
21573         }
21574 
21575         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage()21576         public NestedMessage() {
21577           OnConstruction();
21578         }
21579 
OnConstruction()21580         partial void OnConstruction();
21581 
21582         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage(NestedMessage other)21583         public NestedMessage(NestedMessage other) : this() {
21584           _hasBits0 = other._hasBits0;
21585           quxInt_ = other.quxInt_;
21586           corgeInt_ = other.corgeInt_.Clone();
21587           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
21588         }
21589 
21590         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()21591         public NestedMessage Clone() {
21592           return new NestedMessage(this);
21593         }
21594 
21595         /// <summary>Field number for the "qux_int" field.</summary>
21596         public const int QuxIntFieldNumber = 1;
21597         private readonly static long QuxIntDefaultValue = 0L;
21598 
21599         private long quxInt_;
21600         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21601         public long QuxInt {
21602           get { if ((_hasBits0 & 1) != 0) { return quxInt_; } else { return QuxIntDefaultValue; } }
21603           set {
21604             _hasBits0 |= 1;
21605             quxInt_ = value;
21606           }
21607         }
21608         /// <summary>Gets whether the "qux_int" field is set</summary>
21609         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21610         public bool HasQuxInt {
21611           get { return (_hasBits0 & 1) != 0; }
21612         }
21613         /// <summary>Clears the value of the "qux_int" field</summary>
21614         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearQuxInt()21615         public void ClearQuxInt() {
21616           _hasBits0 &= ~1;
21617         }
21618 
21619         /// <summary>Field number for the "corge_int" field.</summary>
21620         public const int CorgeIntFieldNumber = 2;
21621         private static readonly pb::FieldCodec<int> _repeated_corgeInt_codec
21622             = pb::FieldCodec.ForInt32(16);
21623         private readonly pbc::RepeatedField<int> corgeInt_ = new pbc::RepeatedField<int>();
21624         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21625         public pbc::RepeatedField<int> CorgeInt {
21626           get { return corgeInt_; }
21627         }
21628 
21629         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)21630         public override bool Equals(object other) {
21631           return Equals(other as NestedMessage);
21632         }
21633 
21634         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedMessage other)21635         public bool Equals(NestedMessage other) {
21636           if (ReferenceEquals(other, null)) {
21637             return false;
21638           }
21639           if (ReferenceEquals(other, this)) {
21640             return true;
21641           }
21642           if (QuxInt != other.QuxInt) return false;
21643           if(!corgeInt_.Equals(other.corgeInt_)) return false;
21644           return Equals(_unknownFields, other._unknownFields);
21645         }
21646 
21647         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()21648         public override int GetHashCode() {
21649           int hash = 1;
21650           if (HasQuxInt) hash ^= QuxInt.GetHashCode();
21651           hash ^= corgeInt_.GetHashCode();
21652           if (_unknownFields != null) {
21653             hash ^= _unknownFields.GetHashCode();
21654           }
21655           return hash;
21656         }
21657 
21658         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()21659         public override string ToString() {
21660           return pb::JsonFormatter.ToDiagnosticString(this);
21661         }
21662 
21663         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)21664         public void WriteTo(pb::CodedOutputStream output) {
21665         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21666           output.WriteRawMessage(this);
21667         #else
21668           if (HasQuxInt) {
21669             output.WriteRawTag(8);
21670             output.WriteInt64(QuxInt);
21671           }
21672           corgeInt_.WriteTo(output, _repeated_corgeInt_codec);
21673           if (_unknownFields != null) {
21674             _unknownFields.WriteTo(output);
21675           }
21676         #endif
21677         }
21678 
21679         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21680         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)21681         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
21682           if (HasQuxInt) {
21683             output.WriteRawTag(8);
21684             output.WriteInt64(QuxInt);
21685           }
21686           corgeInt_.WriteTo(ref output, _repeated_corgeInt_codec);
21687           if (_unknownFields != null) {
21688             _unknownFields.WriteTo(ref output);
21689           }
21690         }
21691         #endif
21692 
21693         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()21694         public int CalculateSize() {
21695           int size = 0;
21696           if (HasQuxInt) {
21697             size += 1 + pb::CodedOutputStream.ComputeInt64Size(QuxInt);
21698           }
21699           size += corgeInt_.CalculateSize(_repeated_corgeInt_codec);
21700           if (_unknownFields != null) {
21701             size += _unknownFields.CalculateSize();
21702           }
21703           return size;
21704         }
21705 
21706         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedMessage other)21707         public void MergeFrom(NestedMessage other) {
21708           if (other == null) {
21709             return;
21710           }
21711           if (other.HasQuxInt) {
21712             QuxInt = other.QuxInt;
21713           }
21714           corgeInt_.Add(other.corgeInt_);
21715           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
21716         }
21717 
21718         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)21719         public void MergeFrom(pb::CodedInputStream input) {
21720         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21721           input.ReadRawMessage(this);
21722         #else
21723           uint tag;
21724           while ((tag = input.ReadTag()) != 0) {
21725             switch(tag) {
21726               default:
21727                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
21728                 break;
21729               case 8: {
21730                 QuxInt = input.ReadInt64();
21731                 break;
21732               }
21733               case 18:
21734               case 16: {
21735                 corgeInt_.AddEntriesFrom(input, _repeated_corgeInt_codec);
21736                 break;
21737               }
21738             }
21739           }
21740         #endif
21741         }
21742 
21743         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21744         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)21745         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
21746           uint tag;
21747           while ((tag = input.ReadTag()) != 0) {
21748             switch(tag) {
21749               default:
21750                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
21751                 break;
21752               case 8: {
21753                 QuxInt = input.ReadInt64();
21754                 break;
21755               }
21756               case 18:
21757               case 16: {
21758                 corgeInt_.AddEntriesFrom(ref input, _repeated_corgeInt_codec);
21759                 break;
21760               }
21761             }
21762           }
21763         }
21764         #endif
21765 
21766       }
21767 
21768     }
21769     #endregion
21770 
21771   }
21772 
21773   public sealed partial class TestRequiredOneof : pb::IMessage<TestRequiredOneof>
21774   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21775       , pb::IBufferMessage
21776   #endif
21777   {
21778     private static readonly pb::MessageParser<TestRequiredOneof> _parser = new pb::MessageParser<TestRequiredOneof>(() => new TestRequiredOneof());
21779     private pb::UnknownFieldSet _unknownFields;
21780     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21781     public static pb::MessageParser<TestRequiredOneof> Parser { get { return _parser; } }
21782 
21783     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21784     public static pbr::MessageDescriptor Descriptor {
21785       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[46]; }
21786     }
21787 
21788     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21789     pbr::MessageDescriptor pb::IMessage.Descriptor {
21790       get { return Descriptor; }
21791     }
21792 
21793     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredOneof()21794     public TestRequiredOneof() {
21795       OnConstruction();
21796     }
21797 
OnConstruction()21798     partial void OnConstruction();
21799 
21800     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredOneof(TestRequiredOneof other)21801     public TestRequiredOneof(TestRequiredOneof other) : this() {
21802       switch (other.FooCase) {
21803         case FooOneofCase.FooInt:
21804           FooInt = other.FooInt;
21805           break;
21806         case FooOneofCase.FooString:
21807           FooString = other.FooString;
21808           break;
21809         case FooOneofCase.FooMessage:
21810           FooMessage = other.FooMessage.Clone();
21811           break;
21812       }
21813 
21814       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
21815     }
21816 
21817     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()21818     public TestRequiredOneof Clone() {
21819       return new TestRequiredOneof(this);
21820     }
21821 
21822     /// <summary>Field number for the "foo_int" field.</summary>
21823     public const int FooIntFieldNumber = 1;
21824     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21825     public int FooInt {
21826       get { return HasFooInt ? (int) foo_ : 0; }
21827       set {
21828         foo_ = value;
21829         fooCase_ = FooOneofCase.FooInt;
21830       }
21831     }
21832     /// <summary>Gets whether the "foo_int" field is set</summary>
21833     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21834     public bool HasFooInt {
21835       get { return fooCase_ == FooOneofCase.FooInt; }
21836     }
21837     /// <summary> Clears the value of the oneof if it's currently set to "foo_int" </summary>
21838     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooInt()21839     public void ClearFooInt() {
21840       if (HasFooInt) {
21841         ClearFoo();
21842       }
21843     }
21844 
21845     /// <summary>Field number for the "foo_string" field.</summary>
21846     public const int FooStringFieldNumber = 2;
21847     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21848     public string FooString {
21849       get { return HasFooString ? (string) foo_ : ""; }
21850       set {
21851         foo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
21852         fooCase_ = FooOneofCase.FooString;
21853       }
21854     }
21855     /// <summary>Gets whether the "foo_string" field is set</summary>
21856     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21857     public bool HasFooString {
21858       get { return fooCase_ == FooOneofCase.FooString; }
21859     }
21860     /// <summary> Clears the value of the oneof if it's currently set to "foo_string" </summary>
21861     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFooString()21862     public void ClearFooString() {
21863       if (HasFooString) {
21864         ClearFoo();
21865       }
21866     }
21867 
21868     /// <summary>Field number for the "foo_message" field.</summary>
21869     public const int FooMessageFieldNumber = 3;
21870     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21871     public global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage FooMessage {
21872       get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage) foo_ : null; }
21873       set {
21874         foo_ = value;
21875         fooCase_ = value == null ? FooOneofCase.None : FooOneofCase.FooMessage;
21876       }
21877     }
21878 
21879     private object foo_;
21880     /// <summary>Enum of possible cases for the "foo" oneof.</summary>
21881     public enum FooOneofCase {
21882       None = 0,
21883       FooInt = 1,
21884       FooString = 2,
21885       FooMessage = 3,
21886     }
21887     private FooOneofCase fooCase_ = FooOneofCase.None;
21888     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
21889     public FooOneofCase FooCase {
21890       get { return fooCase_; }
21891     }
21892 
21893     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFoo()21894     public void ClearFoo() {
21895       fooCase_ = FooOneofCase.None;
21896       foo_ = null;
21897     }
21898 
21899     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)21900     public override bool Equals(object other) {
21901       return Equals(other as TestRequiredOneof);
21902     }
21903 
21904     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRequiredOneof other)21905     public bool Equals(TestRequiredOneof other) {
21906       if (ReferenceEquals(other, null)) {
21907         return false;
21908       }
21909       if (ReferenceEquals(other, this)) {
21910         return true;
21911       }
21912       if (FooInt != other.FooInt) return false;
21913       if (FooString != other.FooString) return false;
21914       if (!object.Equals(FooMessage, other.FooMessage)) return false;
21915       if (FooCase != other.FooCase) return false;
21916       return Equals(_unknownFields, other._unknownFields);
21917     }
21918 
21919     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()21920     public override int GetHashCode() {
21921       int hash = 1;
21922       if (HasFooInt) hash ^= FooInt.GetHashCode();
21923       if (HasFooString) hash ^= FooString.GetHashCode();
21924       if (fooCase_ == FooOneofCase.FooMessage) hash ^= FooMessage.GetHashCode();
21925       hash ^= (int) fooCase_;
21926       if (_unknownFields != null) {
21927         hash ^= _unknownFields.GetHashCode();
21928       }
21929       return hash;
21930     }
21931 
21932     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()21933     public override string ToString() {
21934       return pb::JsonFormatter.ToDiagnosticString(this);
21935     }
21936 
21937     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)21938     public void WriteTo(pb::CodedOutputStream output) {
21939     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21940       output.WriteRawMessage(this);
21941     #else
21942       if (HasFooInt) {
21943         output.WriteRawTag(8);
21944         output.WriteInt32(FooInt);
21945       }
21946       if (HasFooString) {
21947         output.WriteRawTag(18);
21948         output.WriteString(FooString);
21949       }
21950       if (fooCase_ == FooOneofCase.FooMessage) {
21951         output.WriteRawTag(26);
21952         output.WriteMessage(FooMessage);
21953       }
21954       if (_unknownFields != null) {
21955         _unknownFields.WriteTo(output);
21956       }
21957     #endif
21958     }
21959 
21960     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
21961     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)21962     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
21963       if (HasFooInt) {
21964         output.WriteRawTag(8);
21965         output.WriteInt32(FooInt);
21966       }
21967       if (HasFooString) {
21968         output.WriteRawTag(18);
21969         output.WriteString(FooString);
21970       }
21971       if (fooCase_ == FooOneofCase.FooMessage) {
21972         output.WriteRawTag(26);
21973         output.WriteMessage(FooMessage);
21974       }
21975       if (_unknownFields != null) {
21976         _unknownFields.WriteTo(ref output);
21977       }
21978     }
21979     #endif
21980 
21981     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()21982     public int CalculateSize() {
21983       int size = 0;
21984       if (HasFooInt) {
21985         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FooInt);
21986       }
21987       if (HasFooString) {
21988         size += 1 + pb::CodedOutputStream.ComputeStringSize(FooString);
21989       }
21990       if (fooCase_ == FooOneofCase.FooMessage) {
21991         size += 1 + pb::CodedOutputStream.ComputeMessageSize(FooMessage);
21992       }
21993       if (_unknownFields != null) {
21994         size += _unknownFields.CalculateSize();
21995       }
21996       return size;
21997     }
21998 
21999     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRequiredOneof other)22000     public void MergeFrom(TestRequiredOneof other) {
22001       if (other == null) {
22002         return;
22003       }
22004       switch (other.FooCase) {
22005         case FooOneofCase.FooInt:
22006           FooInt = other.FooInt;
22007           break;
22008         case FooOneofCase.FooString:
22009           FooString = other.FooString;
22010           break;
22011         case FooOneofCase.FooMessage:
22012           if (FooMessage == null) {
22013             FooMessage = new global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage();
22014           }
22015           FooMessage.MergeFrom(other.FooMessage);
22016           break;
22017       }
22018 
22019       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
22020     }
22021 
22022     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)22023     public void MergeFrom(pb::CodedInputStream input) {
22024     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22025       input.ReadRawMessage(this);
22026     #else
22027       uint tag;
22028       while ((tag = input.ReadTag()) != 0) {
22029         switch(tag) {
22030           default:
22031             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
22032             break;
22033           case 8: {
22034             FooInt = input.ReadInt32();
22035             break;
22036           }
22037           case 18: {
22038             FooString = input.ReadString();
22039             break;
22040           }
22041           case 26: {
22042             global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage();
22043             if (fooCase_ == FooOneofCase.FooMessage) {
22044               subBuilder.MergeFrom(FooMessage);
22045             }
22046             input.ReadMessage(subBuilder);
22047             FooMessage = subBuilder;
22048             break;
22049           }
22050         }
22051       }
22052     #endif
22053     }
22054 
22055     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22056     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)22057     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
22058       uint tag;
22059       while ((tag = input.ReadTag()) != 0) {
22060         switch(tag) {
22061           default:
22062             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
22063             break;
22064           case 8: {
22065             FooInt = input.ReadInt32();
22066             break;
22067           }
22068           case 18: {
22069             FooString = input.ReadString();
22070             break;
22071           }
22072           case 26: {
22073             global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Types.NestedMessage();
22074             if (fooCase_ == FooOneofCase.FooMessage) {
22075               subBuilder.MergeFrom(FooMessage);
22076             }
22077             input.ReadMessage(subBuilder);
22078             FooMessage = subBuilder;
22079             break;
22080           }
22081         }
22082       }
22083     }
22084     #endif
22085 
22086     #region Nested types
22087     /// <summary>Container for nested types declared in the TestRequiredOneof message type.</summary>
22088     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22089     public static partial class Types {
22090       public sealed partial class NestedMessage : pb::IMessage<NestedMessage>
22091       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22092           , pb::IBufferMessage
22093       #endif
22094       {
22095         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
22096         private pb::UnknownFieldSet _unknownFields;
22097         private int _hasBits0;
22098         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22099         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
22100 
22101         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22102         public static pbr::MessageDescriptor Descriptor {
22103           get { return global::Google.Protobuf.TestProtos.Proto2.TestRequiredOneof.Descriptor.NestedTypes[0]; }
22104         }
22105 
22106         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22107         pbr::MessageDescriptor pb::IMessage.Descriptor {
22108           get { return Descriptor; }
22109         }
22110 
22111         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage()22112         public NestedMessage() {
22113           OnConstruction();
22114         }
22115 
OnConstruction()22116         partial void OnConstruction();
22117 
22118         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage(NestedMessage other)22119         public NestedMessage(NestedMessage other) : this() {
22120           _hasBits0 = other._hasBits0;
22121           requiredDouble_ = other.requiredDouble_;
22122           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
22123         }
22124 
22125         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()22126         public NestedMessage Clone() {
22127           return new NestedMessage(this);
22128         }
22129 
22130         /// <summary>Field number for the "required_double" field.</summary>
22131         public const int RequiredDoubleFieldNumber = 1;
22132         private readonly static double RequiredDoubleDefaultValue = 0D;
22133 
22134         private double requiredDouble_;
22135         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22136         public double RequiredDouble {
22137           get { if ((_hasBits0 & 1) != 0) { return requiredDouble_; } else { return RequiredDoubleDefaultValue; } }
22138           set {
22139             _hasBits0 |= 1;
22140             requiredDouble_ = value;
22141           }
22142         }
22143         /// <summary>Gets whether the "required_double" field is set</summary>
22144         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22145         public bool HasRequiredDouble {
22146           get { return (_hasBits0 & 1) != 0; }
22147         }
22148         /// <summary>Clears the value of the "required_double" field</summary>
22149         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearRequiredDouble()22150         public void ClearRequiredDouble() {
22151           _hasBits0 &= ~1;
22152         }
22153 
22154         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)22155         public override bool Equals(object other) {
22156           return Equals(other as NestedMessage);
22157         }
22158 
22159         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedMessage other)22160         public bool Equals(NestedMessage other) {
22161           if (ReferenceEquals(other, null)) {
22162             return false;
22163           }
22164           if (ReferenceEquals(other, this)) {
22165             return true;
22166           }
22167           if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RequiredDouble, other.RequiredDouble)) return false;
22168           return Equals(_unknownFields, other._unknownFields);
22169         }
22170 
22171         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()22172         public override int GetHashCode() {
22173           int hash = 1;
22174           if (HasRequiredDouble) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RequiredDouble);
22175           if (_unknownFields != null) {
22176             hash ^= _unknownFields.GetHashCode();
22177           }
22178           return hash;
22179         }
22180 
22181         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()22182         public override string ToString() {
22183           return pb::JsonFormatter.ToDiagnosticString(this);
22184         }
22185 
22186         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)22187         public void WriteTo(pb::CodedOutputStream output) {
22188         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22189           output.WriteRawMessage(this);
22190         #else
22191           if (HasRequiredDouble) {
22192             output.WriteRawTag(9);
22193             output.WriteDouble(RequiredDouble);
22194           }
22195           if (_unknownFields != null) {
22196             _unknownFields.WriteTo(output);
22197           }
22198         #endif
22199         }
22200 
22201         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22202         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)22203         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
22204           if (HasRequiredDouble) {
22205             output.WriteRawTag(9);
22206             output.WriteDouble(RequiredDouble);
22207           }
22208           if (_unknownFields != null) {
22209             _unknownFields.WriteTo(ref output);
22210           }
22211         }
22212         #endif
22213 
22214         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()22215         public int CalculateSize() {
22216           int size = 0;
22217           if (HasRequiredDouble) {
22218             size += 1 + 8;
22219           }
22220           if (_unknownFields != null) {
22221             size += _unknownFields.CalculateSize();
22222           }
22223           return size;
22224         }
22225 
22226         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedMessage other)22227         public void MergeFrom(NestedMessage other) {
22228           if (other == null) {
22229             return;
22230           }
22231           if (other.HasRequiredDouble) {
22232             RequiredDouble = other.RequiredDouble;
22233           }
22234           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
22235         }
22236 
22237         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)22238         public void MergeFrom(pb::CodedInputStream input) {
22239         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22240           input.ReadRawMessage(this);
22241         #else
22242           uint tag;
22243           while ((tag = input.ReadTag()) != 0) {
22244             switch(tag) {
22245               default:
22246                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
22247                 break;
22248               case 9: {
22249                 RequiredDouble = input.ReadDouble();
22250                 break;
22251               }
22252             }
22253           }
22254         #endif
22255         }
22256 
22257         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22258         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)22259         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
22260           uint tag;
22261           while ((tag = input.ReadTag()) != 0) {
22262             switch(tag) {
22263               default:
22264                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
22265                 break;
22266               case 9: {
22267                 RequiredDouble = input.ReadDouble();
22268                 break;
22269               }
22270             }
22271           }
22272         }
22273         #endif
22274 
22275       }
22276 
22277     }
22278     #endregion
22279 
22280   }
22281 
22282   public sealed partial class TestRequiredMap : pb::IMessage<TestRequiredMap>
22283   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22284       , pb::IBufferMessage
22285   #endif
22286   {
22287     private static readonly pb::MessageParser<TestRequiredMap> _parser = new pb::MessageParser<TestRequiredMap>(() => new TestRequiredMap());
22288     private pb::UnknownFieldSet _unknownFields;
22289     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22290     public static pb::MessageParser<TestRequiredMap> Parser { get { return _parser; } }
22291 
22292     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22293     public static pbr::MessageDescriptor Descriptor {
22294       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[47]; }
22295     }
22296 
22297     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22298     pbr::MessageDescriptor pb::IMessage.Descriptor {
22299       get { return Descriptor; }
22300     }
22301 
22302     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredMap()22303     public TestRequiredMap() {
22304       OnConstruction();
22305     }
22306 
OnConstruction()22307     partial void OnConstruction();
22308 
22309     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRequiredMap(TestRequiredMap other)22310     public TestRequiredMap(TestRequiredMap other) : this() {
22311       foo_ = other.foo_.Clone();
22312       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
22313     }
22314 
22315     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()22316     public TestRequiredMap Clone() {
22317       return new TestRequiredMap(this);
22318     }
22319 
22320     /// <summary>Field number for the "foo" field.</summary>
22321     public const int FooFieldNumber = 1;
22322     private static readonly pbc::MapField<int, global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage>.Codec _map_foo_codec
22323         = new pbc::MapField<int, global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage>.Codec(pb::FieldCodec.ForInt32(8, 0), pb::FieldCodec.ForMessage(18, global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage.Parser), 10);
22324     private readonly pbc::MapField<int, global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage> foo_ = new pbc::MapField<int, global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage>();
22325     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22326     public pbc::MapField<int, global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Types.NestedMessage> Foo {
22327       get { return foo_; }
22328     }
22329 
22330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)22331     public override bool Equals(object other) {
22332       return Equals(other as TestRequiredMap);
22333     }
22334 
22335     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRequiredMap other)22336     public bool Equals(TestRequiredMap other) {
22337       if (ReferenceEquals(other, null)) {
22338         return false;
22339       }
22340       if (ReferenceEquals(other, this)) {
22341         return true;
22342       }
22343       if (!Foo.Equals(other.Foo)) return false;
22344       return Equals(_unknownFields, other._unknownFields);
22345     }
22346 
22347     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()22348     public override int GetHashCode() {
22349       int hash = 1;
22350       hash ^= Foo.GetHashCode();
22351       if (_unknownFields != null) {
22352         hash ^= _unknownFields.GetHashCode();
22353       }
22354       return hash;
22355     }
22356 
22357     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()22358     public override string ToString() {
22359       return pb::JsonFormatter.ToDiagnosticString(this);
22360     }
22361 
22362     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)22363     public void WriteTo(pb::CodedOutputStream output) {
22364     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22365       output.WriteRawMessage(this);
22366     #else
22367       foo_.WriteTo(output, _map_foo_codec);
22368       if (_unknownFields != null) {
22369         _unknownFields.WriteTo(output);
22370       }
22371     #endif
22372     }
22373 
22374     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22375     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)22376     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
22377       foo_.WriteTo(ref output, _map_foo_codec);
22378       if (_unknownFields != null) {
22379         _unknownFields.WriteTo(ref output);
22380       }
22381     }
22382     #endif
22383 
22384     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()22385     public int CalculateSize() {
22386       int size = 0;
22387       size += foo_.CalculateSize(_map_foo_codec);
22388       if (_unknownFields != null) {
22389         size += _unknownFields.CalculateSize();
22390       }
22391       return size;
22392     }
22393 
22394     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRequiredMap other)22395     public void MergeFrom(TestRequiredMap other) {
22396       if (other == null) {
22397         return;
22398       }
22399       foo_.Add(other.foo_);
22400       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
22401     }
22402 
22403     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)22404     public void MergeFrom(pb::CodedInputStream input) {
22405     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22406       input.ReadRawMessage(this);
22407     #else
22408       uint tag;
22409       while ((tag = input.ReadTag()) != 0) {
22410         switch(tag) {
22411           default:
22412             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
22413             break;
22414           case 10: {
22415             foo_.AddEntriesFrom(input, _map_foo_codec);
22416             break;
22417           }
22418         }
22419       }
22420     #endif
22421     }
22422 
22423     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22424     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)22425     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
22426       uint tag;
22427       while ((tag = input.ReadTag()) != 0) {
22428         switch(tag) {
22429           default:
22430             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
22431             break;
22432           case 10: {
22433             foo_.AddEntriesFrom(ref input, _map_foo_codec);
22434             break;
22435           }
22436         }
22437       }
22438     }
22439     #endif
22440 
22441     #region Nested types
22442     /// <summary>Container for nested types declared in the TestRequiredMap message type.</summary>
22443     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22444     public static partial class Types {
22445       public sealed partial class NestedMessage : pb::IMessage<NestedMessage>
22446       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22447           , pb::IBufferMessage
22448       #endif
22449       {
22450         private static readonly pb::MessageParser<NestedMessage> _parser = new pb::MessageParser<NestedMessage>(() => new NestedMessage());
22451         private pb::UnknownFieldSet _unknownFields;
22452         private int _hasBits0;
22453         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22454         public static pb::MessageParser<NestedMessage> Parser { get { return _parser; } }
22455 
22456         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22457         public static pbr::MessageDescriptor Descriptor {
22458           get { return global::Google.Protobuf.TestProtos.Proto2.TestRequiredMap.Descriptor.NestedTypes[1]; }
22459         }
22460 
22461         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22462         pbr::MessageDescriptor pb::IMessage.Descriptor {
22463           get { return Descriptor; }
22464         }
22465 
22466         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage()22467         public NestedMessage() {
22468           OnConstruction();
22469         }
22470 
OnConstruction()22471         partial void OnConstruction();
22472 
22473         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
NestedMessage(NestedMessage other)22474         public NestedMessage(NestedMessage other) : this() {
22475           _hasBits0 = other._hasBits0;
22476           requiredInt32_ = other.requiredInt32_;
22477           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
22478         }
22479 
22480         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()22481         public NestedMessage Clone() {
22482           return new NestedMessage(this);
22483         }
22484 
22485         /// <summary>Field number for the "required_int32" field.</summary>
22486         public const int RequiredInt32FieldNumber = 1;
22487         private readonly static int RequiredInt32DefaultValue = 0;
22488 
22489         private int requiredInt32_;
22490         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22491         public int RequiredInt32 {
22492           get { if ((_hasBits0 & 1) != 0) { return requiredInt32_; } else { return RequiredInt32DefaultValue; } }
22493           set {
22494             _hasBits0 |= 1;
22495             requiredInt32_ = value;
22496           }
22497         }
22498         /// <summary>Gets whether the "required_int32" field is set</summary>
22499         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22500         public bool HasRequiredInt32 {
22501           get { return (_hasBits0 & 1) != 0; }
22502         }
22503         /// <summary>Clears the value of the "required_int32" field</summary>
22504         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearRequiredInt32()22505         public void ClearRequiredInt32() {
22506           _hasBits0 &= ~1;
22507         }
22508 
22509         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)22510         public override bool Equals(object other) {
22511           return Equals(other as NestedMessage);
22512         }
22513 
22514         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(NestedMessage other)22515         public bool Equals(NestedMessage other) {
22516           if (ReferenceEquals(other, null)) {
22517             return false;
22518           }
22519           if (ReferenceEquals(other, this)) {
22520             return true;
22521           }
22522           if (RequiredInt32 != other.RequiredInt32) return false;
22523           return Equals(_unknownFields, other._unknownFields);
22524         }
22525 
22526         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()22527         public override int GetHashCode() {
22528           int hash = 1;
22529           if (HasRequiredInt32) hash ^= RequiredInt32.GetHashCode();
22530           if (_unknownFields != null) {
22531             hash ^= _unknownFields.GetHashCode();
22532           }
22533           return hash;
22534         }
22535 
22536         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()22537         public override string ToString() {
22538           return pb::JsonFormatter.ToDiagnosticString(this);
22539         }
22540 
22541         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)22542         public void WriteTo(pb::CodedOutputStream output) {
22543         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22544           output.WriteRawMessage(this);
22545         #else
22546           if (HasRequiredInt32) {
22547             output.WriteRawTag(8);
22548             output.WriteInt32(RequiredInt32);
22549           }
22550           if (_unknownFields != null) {
22551             _unknownFields.WriteTo(output);
22552           }
22553         #endif
22554         }
22555 
22556         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22557         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)22558         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
22559           if (HasRequiredInt32) {
22560             output.WriteRawTag(8);
22561             output.WriteInt32(RequiredInt32);
22562           }
22563           if (_unknownFields != null) {
22564             _unknownFields.WriteTo(ref output);
22565           }
22566         }
22567         #endif
22568 
22569         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()22570         public int CalculateSize() {
22571           int size = 0;
22572           if (HasRequiredInt32) {
22573             size += 1 + pb::CodedOutputStream.ComputeInt32Size(RequiredInt32);
22574           }
22575           if (_unknownFields != null) {
22576             size += _unknownFields.CalculateSize();
22577           }
22578           return size;
22579         }
22580 
22581         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(NestedMessage other)22582         public void MergeFrom(NestedMessage other) {
22583           if (other == null) {
22584             return;
22585           }
22586           if (other.HasRequiredInt32) {
22587             RequiredInt32 = other.RequiredInt32;
22588           }
22589           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
22590         }
22591 
22592         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)22593         public void MergeFrom(pb::CodedInputStream input) {
22594         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22595           input.ReadRawMessage(this);
22596         #else
22597           uint tag;
22598           while ((tag = input.ReadTag()) != 0) {
22599             switch(tag) {
22600               default:
22601                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
22602                 break;
22603               case 8: {
22604                 RequiredInt32 = input.ReadInt32();
22605                 break;
22606               }
22607             }
22608           }
22609         #endif
22610         }
22611 
22612         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22613         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)22614         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
22615           uint tag;
22616           while ((tag = input.ReadTag()) != 0) {
22617             switch(tag) {
22618               default:
22619                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
22620                 break;
22621               case 8: {
22622                 RequiredInt32 = input.ReadInt32();
22623                 break;
22624               }
22625             }
22626           }
22627         }
22628         #endif
22629 
22630       }
22631 
22632     }
22633     #endregion
22634 
22635   }
22636 
22637   public sealed partial class TestPackedTypes : pb::IMessage<TestPackedTypes>
22638   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22639       , pb::IBufferMessage
22640   #endif
22641   {
22642     private static readonly pb::MessageParser<TestPackedTypes> _parser = new pb::MessageParser<TestPackedTypes>(() => new TestPackedTypes());
22643     private pb::UnknownFieldSet _unknownFields;
22644     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22645     public static pb::MessageParser<TestPackedTypes> Parser { get { return _parser; } }
22646 
22647     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22648     public static pbr::MessageDescriptor Descriptor {
22649       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[48]; }
22650     }
22651 
22652     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22653     pbr::MessageDescriptor pb::IMessage.Descriptor {
22654       get { return Descriptor; }
22655     }
22656 
22657     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestPackedTypes()22658     public TestPackedTypes() {
22659       OnConstruction();
22660     }
22661 
OnConstruction()22662     partial void OnConstruction();
22663 
22664     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestPackedTypes(TestPackedTypes other)22665     public TestPackedTypes(TestPackedTypes other) : this() {
22666       packedInt32_ = other.packedInt32_.Clone();
22667       packedInt64_ = other.packedInt64_.Clone();
22668       packedUint32_ = other.packedUint32_.Clone();
22669       packedUint64_ = other.packedUint64_.Clone();
22670       packedSint32_ = other.packedSint32_.Clone();
22671       packedSint64_ = other.packedSint64_.Clone();
22672       packedFixed32_ = other.packedFixed32_.Clone();
22673       packedFixed64_ = other.packedFixed64_.Clone();
22674       packedSfixed32_ = other.packedSfixed32_.Clone();
22675       packedSfixed64_ = other.packedSfixed64_.Clone();
22676       packedFloat_ = other.packedFloat_.Clone();
22677       packedDouble_ = other.packedDouble_.Clone();
22678       packedBool_ = other.packedBool_.Clone();
22679       packedEnum_ = other.packedEnum_.Clone();
22680       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
22681     }
22682 
22683     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()22684     public TestPackedTypes Clone() {
22685       return new TestPackedTypes(this);
22686     }
22687 
22688     /// <summary>Field number for the "packed_int32" field.</summary>
22689     public const int PackedInt32FieldNumber = 90;
22690     private static readonly pb::FieldCodec<int> _repeated_packedInt32_codec
22691         = pb::FieldCodec.ForInt32(722);
22692     private readonly pbc::RepeatedField<int> packedInt32_ = new pbc::RepeatedField<int>();
22693     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22694     public pbc::RepeatedField<int> PackedInt32 {
22695       get { return packedInt32_; }
22696     }
22697 
22698     /// <summary>Field number for the "packed_int64" field.</summary>
22699     public const int PackedInt64FieldNumber = 91;
22700     private static readonly pb::FieldCodec<long> _repeated_packedInt64_codec
22701         = pb::FieldCodec.ForInt64(730);
22702     private readonly pbc::RepeatedField<long> packedInt64_ = new pbc::RepeatedField<long>();
22703     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22704     public pbc::RepeatedField<long> PackedInt64 {
22705       get { return packedInt64_; }
22706     }
22707 
22708     /// <summary>Field number for the "packed_uint32" field.</summary>
22709     public const int PackedUint32FieldNumber = 92;
22710     private static readonly pb::FieldCodec<uint> _repeated_packedUint32_codec
22711         = pb::FieldCodec.ForUInt32(738);
22712     private readonly pbc::RepeatedField<uint> packedUint32_ = new pbc::RepeatedField<uint>();
22713     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22714     public pbc::RepeatedField<uint> PackedUint32 {
22715       get { return packedUint32_; }
22716     }
22717 
22718     /// <summary>Field number for the "packed_uint64" field.</summary>
22719     public const int PackedUint64FieldNumber = 93;
22720     private static readonly pb::FieldCodec<ulong> _repeated_packedUint64_codec
22721         = pb::FieldCodec.ForUInt64(746);
22722     private readonly pbc::RepeatedField<ulong> packedUint64_ = new pbc::RepeatedField<ulong>();
22723     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22724     public pbc::RepeatedField<ulong> PackedUint64 {
22725       get { return packedUint64_; }
22726     }
22727 
22728     /// <summary>Field number for the "packed_sint32" field.</summary>
22729     public const int PackedSint32FieldNumber = 94;
22730     private static readonly pb::FieldCodec<int> _repeated_packedSint32_codec
22731         = pb::FieldCodec.ForSInt32(754);
22732     private readonly pbc::RepeatedField<int> packedSint32_ = new pbc::RepeatedField<int>();
22733     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22734     public pbc::RepeatedField<int> PackedSint32 {
22735       get { return packedSint32_; }
22736     }
22737 
22738     /// <summary>Field number for the "packed_sint64" field.</summary>
22739     public const int PackedSint64FieldNumber = 95;
22740     private static readonly pb::FieldCodec<long> _repeated_packedSint64_codec
22741         = pb::FieldCodec.ForSInt64(762);
22742     private readonly pbc::RepeatedField<long> packedSint64_ = new pbc::RepeatedField<long>();
22743     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22744     public pbc::RepeatedField<long> PackedSint64 {
22745       get { return packedSint64_; }
22746     }
22747 
22748     /// <summary>Field number for the "packed_fixed32" field.</summary>
22749     public const int PackedFixed32FieldNumber = 96;
22750     private static readonly pb::FieldCodec<uint> _repeated_packedFixed32_codec
22751         = pb::FieldCodec.ForFixed32(770);
22752     private readonly pbc::RepeatedField<uint> packedFixed32_ = new pbc::RepeatedField<uint>();
22753     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22754     public pbc::RepeatedField<uint> PackedFixed32 {
22755       get { return packedFixed32_; }
22756     }
22757 
22758     /// <summary>Field number for the "packed_fixed64" field.</summary>
22759     public const int PackedFixed64FieldNumber = 97;
22760     private static readonly pb::FieldCodec<ulong> _repeated_packedFixed64_codec
22761         = pb::FieldCodec.ForFixed64(778);
22762     private readonly pbc::RepeatedField<ulong> packedFixed64_ = new pbc::RepeatedField<ulong>();
22763     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22764     public pbc::RepeatedField<ulong> PackedFixed64 {
22765       get { return packedFixed64_; }
22766     }
22767 
22768     /// <summary>Field number for the "packed_sfixed32" field.</summary>
22769     public const int PackedSfixed32FieldNumber = 98;
22770     private static readonly pb::FieldCodec<int> _repeated_packedSfixed32_codec
22771         = pb::FieldCodec.ForSFixed32(786);
22772     private readonly pbc::RepeatedField<int> packedSfixed32_ = new pbc::RepeatedField<int>();
22773     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22774     public pbc::RepeatedField<int> PackedSfixed32 {
22775       get { return packedSfixed32_; }
22776     }
22777 
22778     /// <summary>Field number for the "packed_sfixed64" field.</summary>
22779     public const int PackedSfixed64FieldNumber = 99;
22780     private static readonly pb::FieldCodec<long> _repeated_packedSfixed64_codec
22781         = pb::FieldCodec.ForSFixed64(794);
22782     private readonly pbc::RepeatedField<long> packedSfixed64_ = new pbc::RepeatedField<long>();
22783     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22784     public pbc::RepeatedField<long> PackedSfixed64 {
22785       get { return packedSfixed64_; }
22786     }
22787 
22788     /// <summary>Field number for the "packed_float" field.</summary>
22789     public const int PackedFloatFieldNumber = 100;
22790     private static readonly pb::FieldCodec<float> _repeated_packedFloat_codec
22791         = pb::FieldCodec.ForFloat(802);
22792     private readonly pbc::RepeatedField<float> packedFloat_ = new pbc::RepeatedField<float>();
22793     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22794     public pbc::RepeatedField<float> PackedFloat {
22795       get { return packedFloat_; }
22796     }
22797 
22798     /// <summary>Field number for the "packed_double" field.</summary>
22799     public const int PackedDoubleFieldNumber = 101;
22800     private static readonly pb::FieldCodec<double> _repeated_packedDouble_codec
22801         = pb::FieldCodec.ForDouble(810);
22802     private readonly pbc::RepeatedField<double> packedDouble_ = new pbc::RepeatedField<double>();
22803     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22804     public pbc::RepeatedField<double> PackedDouble {
22805       get { return packedDouble_; }
22806     }
22807 
22808     /// <summary>Field number for the "packed_bool" field.</summary>
22809     public const int PackedBoolFieldNumber = 102;
22810     private static readonly pb::FieldCodec<bool> _repeated_packedBool_codec
22811         = pb::FieldCodec.ForBool(818);
22812     private readonly pbc::RepeatedField<bool> packedBool_ = new pbc::RepeatedField<bool>();
22813     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22814     public pbc::RepeatedField<bool> PackedBool {
22815       get { return packedBool_; }
22816     }
22817 
22818     /// <summary>Field number for the "packed_enum" field.</summary>
22819     public const int PackedEnumFieldNumber = 103;
22820     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> _repeated_packedEnum_codec
22821         = pb::FieldCodec.ForEnum(826, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x);
22822     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> packedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>();
22823     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
22824     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> PackedEnum {
22825       get { return packedEnum_; }
22826     }
22827 
22828     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)22829     public override bool Equals(object other) {
22830       return Equals(other as TestPackedTypes);
22831     }
22832 
22833     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestPackedTypes other)22834     public bool Equals(TestPackedTypes other) {
22835       if (ReferenceEquals(other, null)) {
22836         return false;
22837       }
22838       if (ReferenceEquals(other, this)) {
22839         return true;
22840       }
22841       if(!packedInt32_.Equals(other.packedInt32_)) return false;
22842       if(!packedInt64_.Equals(other.packedInt64_)) return false;
22843       if(!packedUint32_.Equals(other.packedUint32_)) return false;
22844       if(!packedUint64_.Equals(other.packedUint64_)) return false;
22845       if(!packedSint32_.Equals(other.packedSint32_)) return false;
22846       if(!packedSint64_.Equals(other.packedSint64_)) return false;
22847       if(!packedFixed32_.Equals(other.packedFixed32_)) return false;
22848       if(!packedFixed64_.Equals(other.packedFixed64_)) return false;
22849       if(!packedSfixed32_.Equals(other.packedSfixed32_)) return false;
22850       if(!packedSfixed64_.Equals(other.packedSfixed64_)) return false;
22851       if(!packedFloat_.Equals(other.packedFloat_)) return false;
22852       if(!packedDouble_.Equals(other.packedDouble_)) return false;
22853       if(!packedBool_.Equals(other.packedBool_)) return false;
22854       if(!packedEnum_.Equals(other.packedEnum_)) return false;
22855       return Equals(_unknownFields, other._unknownFields);
22856     }
22857 
22858     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()22859     public override int GetHashCode() {
22860       int hash = 1;
22861       hash ^= packedInt32_.GetHashCode();
22862       hash ^= packedInt64_.GetHashCode();
22863       hash ^= packedUint32_.GetHashCode();
22864       hash ^= packedUint64_.GetHashCode();
22865       hash ^= packedSint32_.GetHashCode();
22866       hash ^= packedSint64_.GetHashCode();
22867       hash ^= packedFixed32_.GetHashCode();
22868       hash ^= packedFixed64_.GetHashCode();
22869       hash ^= packedSfixed32_.GetHashCode();
22870       hash ^= packedSfixed64_.GetHashCode();
22871       hash ^= packedFloat_.GetHashCode();
22872       hash ^= packedDouble_.GetHashCode();
22873       hash ^= packedBool_.GetHashCode();
22874       hash ^= packedEnum_.GetHashCode();
22875       if (_unknownFields != null) {
22876         hash ^= _unknownFields.GetHashCode();
22877       }
22878       return hash;
22879     }
22880 
22881     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()22882     public override string ToString() {
22883       return pb::JsonFormatter.ToDiagnosticString(this);
22884     }
22885 
22886     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)22887     public void WriteTo(pb::CodedOutputStream output) {
22888     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22889       output.WriteRawMessage(this);
22890     #else
22891       packedInt32_.WriteTo(output, _repeated_packedInt32_codec);
22892       packedInt64_.WriteTo(output, _repeated_packedInt64_codec);
22893       packedUint32_.WriteTo(output, _repeated_packedUint32_codec);
22894       packedUint64_.WriteTo(output, _repeated_packedUint64_codec);
22895       packedSint32_.WriteTo(output, _repeated_packedSint32_codec);
22896       packedSint64_.WriteTo(output, _repeated_packedSint64_codec);
22897       packedFixed32_.WriteTo(output, _repeated_packedFixed32_codec);
22898       packedFixed64_.WriteTo(output, _repeated_packedFixed64_codec);
22899       packedSfixed32_.WriteTo(output, _repeated_packedSfixed32_codec);
22900       packedSfixed64_.WriteTo(output, _repeated_packedSfixed64_codec);
22901       packedFloat_.WriteTo(output, _repeated_packedFloat_codec);
22902       packedDouble_.WriteTo(output, _repeated_packedDouble_codec);
22903       packedBool_.WriteTo(output, _repeated_packedBool_codec);
22904       packedEnum_.WriteTo(output, _repeated_packedEnum_codec);
22905       if (_unknownFields != null) {
22906         _unknownFields.WriteTo(output);
22907       }
22908     #endif
22909     }
22910 
22911     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22912     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)22913     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
22914       packedInt32_.WriteTo(ref output, _repeated_packedInt32_codec);
22915       packedInt64_.WriteTo(ref output, _repeated_packedInt64_codec);
22916       packedUint32_.WriteTo(ref output, _repeated_packedUint32_codec);
22917       packedUint64_.WriteTo(ref output, _repeated_packedUint64_codec);
22918       packedSint32_.WriteTo(ref output, _repeated_packedSint32_codec);
22919       packedSint64_.WriteTo(ref output, _repeated_packedSint64_codec);
22920       packedFixed32_.WriteTo(ref output, _repeated_packedFixed32_codec);
22921       packedFixed64_.WriteTo(ref output, _repeated_packedFixed64_codec);
22922       packedSfixed32_.WriteTo(ref output, _repeated_packedSfixed32_codec);
22923       packedSfixed64_.WriteTo(ref output, _repeated_packedSfixed64_codec);
22924       packedFloat_.WriteTo(ref output, _repeated_packedFloat_codec);
22925       packedDouble_.WriteTo(ref output, _repeated_packedDouble_codec);
22926       packedBool_.WriteTo(ref output, _repeated_packedBool_codec);
22927       packedEnum_.WriteTo(ref output, _repeated_packedEnum_codec);
22928       if (_unknownFields != null) {
22929         _unknownFields.WriteTo(ref output);
22930       }
22931     }
22932     #endif
22933 
22934     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()22935     public int CalculateSize() {
22936       int size = 0;
22937       size += packedInt32_.CalculateSize(_repeated_packedInt32_codec);
22938       size += packedInt64_.CalculateSize(_repeated_packedInt64_codec);
22939       size += packedUint32_.CalculateSize(_repeated_packedUint32_codec);
22940       size += packedUint64_.CalculateSize(_repeated_packedUint64_codec);
22941       size += packedSint32_.CalculateSize(_repeated_packedSint32_codec);
22942       size += packedSint64_.CalculateSize(_repeated_packedSint64_codec);
22943       size += packedFixed32_.CalculateSize(_repeated_packedFixed32_codec);
22944       size += packedFixed64_.CalculateSize(_repeated_packedFixed64_codec);
22945       size += packedSfixed32_.CalculateSize(_repeated_packedSfixed32_codec);
22946       size += packedSfixed64_.CalculateSize(_repeated_packedSfixed64_codec);
22947       size += packedFloat_.CalculateSize(_repeated_packedFloat_codec);
22948       size += packedDouble_.CalculateSize(_repeated_packedDouble_codec);
22949       size += packedBool_.CalculateSize(_repeated_packedBool_codec);
22950       size += packedEnum_.CalculateSize(_repeated_packedEnum_codec);
22951       if (_unknownFields != null) {
22952         size += _unknownFields.CalculateSize();
22953       }
22954       return size;
22955     }
22956 
22957     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestPackedTypes other)22958     public void MergeFrom(TestPackedTypes other) {
22959       if (other == null) {
22960         return;
22961       }
22962       packedInt32_.Add(other.packedInt32_);
22963       packedInt64_.Add(other.packedInt64_);
22964       packedUint32_.Add(other.packedUint32_);
22965       packedUint64_.Add(other.packedUint64_);
22966       packedSint32_.Add(other.packedSint32_);
22967       packedSint64_.Add(other.packedSint64_);
22968       packedFixed32_.Add(other.packedFixed32_);
22969       packedFixed64_.Add(other.packedFixed64_);
22970       packedSfixed32_.Add(other.packedSfixed32_);
22971       packedSfixed64_.Add(other.packedSfixed64_);
22972       packedFloat_.Add(other.packedFloat_);
22973       packedDouble_.Add(other.packedDouble_);
22974       packedBool_.Add(other.packedBool_);
22975       packedEnum_.Add(other.packedEnum_);
22976       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
22977     }
22978 
22979     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)22980     public void MergeFrom(pb::CodedInputStream input) {
22981     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
22982       input.ReadRawMessage(this);
22983     #else
22984       uint tag;
22985       while ((tag = input.ReadTag()) != 0) {
22986         switch(tag) {
22987           default:
22988             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
22989             break;
22990           case 722:
22991           case 720: {
22992             packedInt32_.AddEntriesFrom(input, _repeated_packedInt32_codec);
22993             break;
22994           }
22995           case 730:
22996           case 728: {
22997             packedInt64_.AddEntriesFrom(input, _repeated_packedInt64_codec);
22998             break;
22999           }
23000           case 738:
23001           case 736: {
23002             packedUint32_.AddEntriesFrom(input, _repeated_packedUint32_codec);
23003             break;
23004           }
23005           case 746:
23006           case 744: {
23007             packedUint64_.AddEntriesFrom(input, _repeated_packedUint64_codec);
23008             break;
23009           }
23010           case 754:
23011           case 752: {
23012             packedSint32_.AddEntriesFrom(input, _repeated_packedSint32_codec);
23013             break;
23014           }
23015           case 762:
23016           case 760: {
23017             packedSint64_.AddEntriesFrom(input, _repeated_packedSint64_codec);
23018             break;
23019           }
23020           case 770:
23021           case 773: {
23022             packedFixed32_.AddEntriesFrom(input, _repeated_packedFixed32_codec);
23023             break;
23024           }
23025           case 778:
23026           case 777: {
23027             packedFixed64_.AddEntriesFrom(input, _repeated_packedFixed64_codec);
23028             break;
23029           }
23030           case 786:
23031           case 789: {
23032             packedSfixed32_.AddEntriesFrom(input, _repeated_packedSfixed32_codec);
23033             break;
23034           }
23035           case 794:
23036           case 793: {
23037             packedSfixed64_.AddEntriesFrom(input, _repeated_packedSfixed64_codec);
23038             break;
23039           }
23040           case 802:
23041           case 805: {
23042             packedFloat_.AddEntriesFrom(input, _repeated_packedFloat_codec);
23043             break;
23044           }
23045           case 810:
23046           case 809: {
23047             packedDouble_.AddEntriesFrom(input, _repeated_packedDouble_codec);
23048             break;
23049           }
23050           case 818:
23051           case 816: {
23052             packedBool_.AddEntriesFrom(input, _repeated_packedBool_codec);
23053             break;
23054           }
23055           case 826:
23056           case 824: {
23057             packedEnum_.AddEntriesFrom(input, _repeated_packedEnum_codec);
23058             break;
23059           }
23060         }
23061       }
23062     #endif
23063     }
23064 
23065     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23066     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)23067     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
23068       uint tag;
23069       while ((tag = input.ReadTag()) != 0) {
23070         switch(tag) {
23071           default:
23072             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
23073             break;
23074           case 722:
23075           case 720: {
23076             packedInt32_.AddEntriesFrom(ref input, _repeated_packedInt32_codec);
23077             break;
23078           }
23079           case 730:
23080           case 728: {
23081             packedInt64_.AddEntriesFrom(ref input, _repeated_packedInt64_codec);
23082             break;
23083           }
23084           case 738:
23085           case 736: {
23086             packedUint32_.AddEntriesFrom(ref input, _repeated_packedUint32_codec);
23087             break;
23088           }
23089           case 746:
23090           case 744: {
23091             packedUint64_.AddEntriesFrom(ref input, _repeated_packedUint64_codec);
23092             break;
23093           }
23094           case 754:
23095           case 752: {
23096             packedSint32_.AddEntriesFrom(ref input, _repeated_packedSint32_codec);
23097             break;
23098           }
23099           case 762:
23100           case 760: {
23101             packedSint64_.AddEntriesFrom(ref input, _repeated_packedSint64_codec);
23102             break;
23103           }
23104           case 770:
23105           case 773: {
23106             packedFixed32_.AddEntriesFrom(ref input, _repeated_packedFixed32_codec);
23107             break;
23108           }
23109           case 778:
23110           case 777: {
23111             packedFixed64_.AddEntriesFrom(ref input, _repeated_packedFixed64_codec);
23112             break;
23113           }
23114           case 786:
23115           case 789: {
23116             packedSfixed32_.AddEntriesFrom(ref input, _repeated_packedSfixed32_codec);
23117             break;
23118           }
23119           case 794:
23120           case 793: {
23121             packedSfixed64_.AddEntriesFrom(ref input, _repeated_packedSfixed64_codec);
23122             break;
23123           }
23124           case 802:
23125           case 805: {
23126             packedFloat_.AddEntriesFrom(ref input, _repeated_packedFloat_codec);
23127             break;
23128           }
23129           case 810:
23130           case 809: {
23131             packedDouble_.AddEntriesFrom(ref input, _repeated_packedDouble_codec);
23132             break;
23133           }
23134           case 818:
23135           case 816: {
23136             packedBool_.AddEntriesFrom(ref input, _repeated_packedBool_codec);
23137             break;
23138           }
23139           case 826:
23140           case 824: {
23141             packedEnum_.AddEntriesFrom(ref input, _repeated_packedEnum_codec);
23142             break;
23143           }
23144         }
23145       }
23146     }
23147     #endif
23148 
23149   }
23150 
23151   /// <summary>
23152   /// A message with the same fields as TestPackedTypes, but without packing. Used
23153   /// to test packed &lt;-> unpacked wire compatibility.
23154   /// </summary>
23155   public sealed partial class TestUnpackedTypes : pb::IMessage<TestUnpackedTypes>
23156   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23157       , pb::IBufferMessage
23158   #endif
23159   {
23160     private static readonly pb::MessageParser<TestUnpackedTypes> _parser = new pb::MessageParser<TestUnpackedTypes>(() => new TestUnpackedTypes());
23161     private pb::UnknownFieldSet _unknownFields;
23162     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23163     public static pb::MessageParser<TestUnpackedTypes> Parser { get { return _parser; } }
23164 
23165     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23166     public static pbr::MessageDescriptor Descriptor {
23167       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[49]; }
23168     }
23169 
23170     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23171     pbr::MessageDescriptor pb::IMessage.Descriptor {
23172       get { return Descriptor; }
23173     }
23174 
23175     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestUnpackedTypes()23176     public TestUnpackedTypes() {
23177       OnConstruction();
23178     }
23179 
OnConstruction()23180     partial void OnConstruction();
23181 
23182     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestUnpackedTypes(TestUnpackedTypes other)23183     public TestUnpackedTypes(TestUnpackedTypes other) : this() {
23184       unpackedInt32_ = other.unpackedInt32_.Clone();
23185       unpackedInt64_ = other.unpackedInt64_.Clone();
23186       unpackedUint32_ = other.unpackedUint32_.Clone();
23187       unpackedUint64_ = other.unpackedUint64_.Clone();
23188       unpackedSint32_ = other.unpackedSint32_.Clone();
23189       unpackedSint64_ = other.unpackedSint64_.Clone();
23190       unpackedFixed32_ = other.unpackedFixed32_.Clone();
23191       unpackedFixed64_ = other.unpackedFixed64_.Clone();
23192       unpackedSfixed32_ = other.unpackedSfixed32_.Clone();
23193       unpackedSfixed64_ = other.unpackedSfixed64_.Clone();
23194       unpackedFloat_ = other.unpackedFloat_.Clone();
23195       unpackedDouble_ = other.unpackedDouble_.Clone();
23196       unpackedBool_ = other.unpackedBool_.Clone();
23197       unpackedEnum_ = other.unpackedEnum_.Clone();
23198       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
23199     }
23200 
23201     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()23202     public TestUnpackedTypes Clone() {
23203       return new TestUnpackedTypes(this);
23204     }
23205 
23206     /// <summary>Field number for the "unpacked_int32" field.</summary>
23207     public const int UnpackedInt32FieldNumber = 90;
23208     private static readonly pb::FieldCodec<int> _repeated_unpackedInt32_codec
23209         = pb::FieldCodec.ForInt32(720);
23210     private readonly pbc::RepeatedField<int> unpackedInt32_ = new pbc::RepeatedField<int>();
23211     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23212     public pbc::RepeatedField<int> UnpackedInt32 {
23213       get { return unpackedInt32_; }
23214     }
23215 
23216     /// <summary>Field number for the "unpacked_int64" field.</summary>
23217     public const int UnpackedInt64FieldNumber = 91;
23218     private static readonly pb::FieldCodec<long> _repeated_unpackedInt64_codec
23219         = pb::FieldCodec.ForInt64(728);
23220     private readonly pbc::RepeatedField<long> unpackedInt64_ = new pbc::RepeatedField<long>();
23221     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23222     public pbc::RepeatedField<long> UnpackedInt64 {
23223       get { return unpackedInt64_; }
23224     }
23225 
23226     /// <summary>Field number for the "unpacked_uint32" field.</summary>
23227     public const int UnpackedUint32FieldNumber = 92;
23228     private static readonly pb::FieldCodec<uint> _repeated_unpackedUint32_codec
23229         = pb::FieldCodec.ForUInt32(736);
23230     private readonly pbc::RepeatedField<uint> unpackedUint32_ = new pbc::RepeatedField<uint>();
23231     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23232     public pbc::RepeatedField<uint> UnpackedUint32 {
23233       get { return unpackedUint32_; }
23234     }
23235 
23236     /// <summary>Field number for the "unpacked_uint64" field.</summary>
23237     public const int UnpackedUint64FieldNumber = 93;
23238     private static readonly pb::FieldCodec<ulong> _repeated_unpackedUint64_codec
23239         = pb::FieldCodec.ForUInt64(744);
23240     private readonly pbc::RepeatedField<ulong> unpackedUint64_ = new pbc::RepeatedField<ulong>();
23241     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23242     public pbc::RepeatedField<ulong> UnpackedUint64 {
23243       get { return unpackedUint64_; }
23244     }
23245 
23246     /// <summary>Field number for the "unpacked_sint32" field.</summary>
23247     public const int UnpackedSint32FieldNumber = 94;
23248     private static readonly pb::FieldCodec<int> _repeated_unpackedSint32_codec
23249         = pb::FieldCodec.ForSInt32(752);
23250     private readonly pbc::RepeatedField<int> unpackedSint32_ = new pbc::RepeatedField<int>();
23251     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23252     public pbc::RepeatedField<int> UnpackedSint32 {
23253       get { return unpackedSint32_; }
23254     }
23255 
23256     /// <summary>Field number for the "unpacked_sint64" field.</summary>
23257     public const int UnpackedSint64FieldNumber = 95;
23258     private static readonly pb::FieldCodec<long> _repeated_unpackedSint64_codec
23259         = pb::FieldCodec.ForSInt64(760);
23260     private readonly pbc::RepeatedField<long> unpackedSint64_ = new pbc::RepeatedField<long>();
23261     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23262     public pbc::RepeatedField<long> UnpackedSint64 {
23263       get { return unpackedSint64_; }
23264     }
23265 
23266     /// <summary>Field number for the "unpacked_fixed32" field.</summary>
23267     public const int UnpackedFixed32FieldNumber = 96;
23268     private static readonly pb::FieldCodec<uint> _repeated_unpackedFixed32_codec
23269         = pb::FieldCodec.ForFixed32(773);
23270     private readonly pbc::RepeatedField<uint> unpackedFixed32_ = new pbc::RepeatedField<uint>();
23271     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23272     public pbc::RepeatedField<uint> UnpackedFixed32 {
23273       get { return unpackedFixed32_; }
23274     }
23275 
23276     /// <summary>Field number for the "unpacked_fixed64" field.</summary>
23277     public const int UnpackedFixed64FieldNumber = 97;
23278     private static readonly pb::FieldCodec<ulong> _repeated_unpackedFixed64_codec
23279         = pb::FieldCodec.ForFixed64(777);
23280     private readonly pbc::RepeatedField<ulong> unpackedFixed64_ = new pbc::RepeatedField<ulong>();
23281     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23282     public pbc::RepeatedField<ulong> UnpackedFixed64 {
23283       get { return unpackedFixed64_; }
23284     }
23285 
23286     /// <summary>Field number for the "unpacked_sfixed32" field.</summary>
23287     public const int UnpackedSfixed32FieldNumber = 98;
23288     private static readonly pb::FieldCodec<int> _repeated_unpackedSfixed32_codec
23289         = pb::FieldCodec.ForSFixed32(789);
23290     private readonly pbc::RepeatedField<int> unpackedSfixed32_ = new pbc::RepeatedField<int>();
23291     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23292     public pbc::RepeatedField<int> UnpackedSfixed32 {
23293       get { return unpackedSfixed32_; }
23294     }
23295 
23296     /// <summary>Field number for the "unpacked_sfixed64" field.</summary>
23297     public const int UnpackedSfixed64FieldNumber = 99;
23298     private static readonly pb::FieldCodec<long> _repeated_unpackedSfixed64_codec
23299         = pb::FieldCodec.ForSFixed64(793);
23300     private readonly pbc::RepeatedField<long> unpackedSfixed64_ = new pbc::RepeatedField<long>();
23301     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23302     public pbc::RepeatedField<long> UnpackedSfixed64 {
23303       get { return unpackedSfixed64_; }
23304     }
23305 
23306     /// <summary>Field number for the "unpacked_float" field.</summary>
23307     public const int UnpackedFloatFieldNumber = 100;
23308     private static readonly pb::FieldCodec<float> _repeated_unpackedFloat_codec
23309         = pb::FieldCodec.ForFloat(805);
23310     private readonly pbc::RepeatedField<float> unpackedFloat_ = new pbc::RepeatedField<float>();
23311     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23312     public pbc::RepeatedField<float> UnpackedFloat {
23313       get { return unpackedFloat_; }
23314     }
23315 
23316     /// <summary>Field number for the "unpacked_double" field.</summary>
23317     public const int UnpackedDoubleFieldNumber = 101;
23318     private static readonly pb::FieldCodec<double> _repeated_unpackedDouble_codec
23319         = pb::FieldCodec.ForDouble(809);
23320     private readonly pbc::RepeatedField<double> unpackedDouble_ = new pbc::RepeatedField<double>();
23321     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23322     public pbc::RepeatedField<double> UnpackedDouble {
23323       get { return unpackedDouble_; }
23324     }
23325 
23326     /// <summary>Field number for the "unpacked_bool" field.</summary>
23327     public const int UnpackedBoolFieldNumber = 102;
23328     private static readonly pb::FieldCodec<bool> _repeated_unpackedBool_codec
23329         = pb::FieldCodec.ForBool(816);
23330     private readonly pbc::RepeatedField<bool> unpackedBool_ = new pbc::RepeatedField<bool>();
23331     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23332     public pbc::RepeatedField<bool> UnpackedBool {
23333       get { return unpackedBool_; }
23334     }
23335 
23336     /// <summary>Field number for the "unpacked_enum" field.</summary>
23337     public const int UnpackedEnumFieldNumber = 103;
23338     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> _repeated_unpackedEnum_codec
23339         = pb::FieldCodec.ForEnum(824, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) x);
23340     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> unpackedEnum_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum>();
23341     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23342     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.ForeignEnum> UnpackedEnum {
23343       get { return unpackedEnum_; }
23344     }
23345 
23346     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)23347     public override bool Equals(object other) {
23348       return Equals(other as TestUnpackedTypes);
23349     }
23350 
23351     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestUnpackedTypes other)23352     public bool Equals(TestUnpackedTypes other) {
23353       if (ReferenceEquals(other, null)) {
23354         return false;
23355       }
23356       if (ReferenceEquals(other, this)) {
23357         return true;
23358       }
23359       if(!unpackedInt32_.Equals(other.unpackedInt32_)) return false;
23360       if(!unpackedInt64_.Equals(other.unpackedInt64_)) return false;
23361       if(!unpackedUint32_.Equals(other.unpackedUint32_)) return false;
23362       if(!unpackedUint64_.Equals(other.unpackedUint64_)) return false;
23363       if(!unpackedSint32_.Equals(other.unpackedSint32_)) return false;
23364       if(!unpackedSint64_.Equals(other.unpackedSint64_)) return false;
23365       if(!unpackedFixed32_.Equals(other.unpackedFixed32_)) return false;
23366       if(!unpackedFixed64_.Equals(other.unpackedFixed64_)) return false;
23367       if(!unpackedSfixed32_.Equals(other.unpackedSfixed32_)) return false;
23368       if(!unpackedSfixed64_.Equals(other.unpackedSfixed64_)) return false;
23369       if(!unpackedFloat_.Equals(other.unpackedFloat_)) return false;
23370       if(!unpackedDouble_.Equals(other.unpackedDouble_)) return false;
23371       if(!unpackedBool_.Equals(other.unpackedBool_)) return false;
23372       if(!unpackedEnum_.Equals(other.unpackedEnum_)) return false;
23373       return Equals(_unknownFields, other._unknownFields);
23374     }
23375 
23376     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()23377     public override int GetHashCode() {
23378       int hash = 1;
23379       hash ^= unpackedInt32_.GetHashCode();
23380       hash ^= unpackedInt64_.GetHashCode();
23381       hash ^= unpackedUint32_.GetHashCode();
23382       hash ^= unpackedUint64_.GetHashCode();
23383       hash ^= unpackedSint32_.GetHashCode();
23384       hash ^= unpackedSint64_.GetHashCode();
23385       hash ^= unpackedFixed32_.GetHashCode();
23386       hash ^= unpackedFixed64_.GetHashCode();
23387       hash ^= unpackedSfixed32_.GetHashCode();
23388       hash ^= unpackedSfixed64_.GetHashCode();
23389       hash ^= unpackedFloat_.GetHashCode();
23390       hash ^= unpackedDouble_.GetHashCode();
23391       hash ^= unpackedBool_.GetHashCode();
23392       hash ^= unpackedEnum_.GetHashCode();
23393       if (_unknownFields != null) {
23394         hash ^= _unknownFields.GetHashCode();
23395       }
23396       return hash;
23397     }
23398 
23399     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()23400     public override string ToString() {
23401       return pb::JsonFormatter.ToDiagnosticString(this);
23402     }
23403 
23404     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)23405     public void WriteTo(pb::CodedOutputStream output) {
23406     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23407       output.WriteRawMessage(this);
23408     #else
23409       unpackedInt32_.WriteTo(output, _repeated_unpackedInt32_codec);
23410       unpackedInt64_.WriteTo(output, _repeated_unpackedInt64_codec);
23411       unpackedUint32_.WriteTo(output, _repeated_unpackedUint32_codec);
23412       unpackedUint64_.WriteTo(output, _repeated_unpackedUint64_codec);
23413       unpackedSint32_.WriteTo(output, _repeated_unpackedSint32_codec);
23414       unpackedSint64_.WriteTo(output, _repeated_unpackedSint64_codec);
23415       unpackedFixed32_.WriteTo(output, _repeated_unpackedFixed32_codec);
23416       unpackedFixed64_.WriteTo(output, _repeated_unpackedFixed64_codec);
23417       unpackedSfixed32_.WriteTo(output, _repeated_unpackedSfixed32_codec);
23418       unpackedSfixed64_.WriteTo(output, _repeated_unpackedSfixed64_codec);
23419       unpackedFloat_.WriteTo(output, _repeated_unpackedFloat_codec);
23420       unpackedDouble_.WriteTo(output, _repeated_unpackedDouble_codec);
23421       unpackedBool_.WriteTo(output, _repeated_unpackedBool_codec);
23422       unpackedEnum_.WriteTo(output, _repeated_unpackedEnum_codec);
23423       if (_unknownFields != null) {
23424         _unknownFields.WriteTo(output);
23425       }
23426     #endif
23427     }
23428 
23429     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23430     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)23431     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
23432       unpackedInt32_.WriteTo(ref output, _repeated_unpackedInt32_codec);
23433       unpackedInt64_.WriteTo(ref output, _repeated_unpackedInt64_codec);
23434       unpackedUint32_.WriteTo(ref output, _repeated_unpackedUint32_codec);
23435       unpackedUint64_.WriteTo(ref output, _repeated_unpackedUint64_codec);
23436       unpackedSint32_.WriteTo(ref output, _repeated_unpackedSint32_codec);
23437       unpackedSint64_.WriteTo(ref output, _repeated_unpackedSint64_codec);
23438       unpackedFixed32_.WriteTo(ref output, _repeated_unpackedFixed32_codec);
23439       unpackedFixed64_.WriteTo(ref output, _repeated_unpackedFixed64_codec);
23440       unpackedSfixed32_.WriteTo(ref output, _repeated_unpackedSfixed32_codec);
23441       unpackedSfixed64_.WriteTo(ref output, _repeated_unpackedSfixed64_codec);
23442       unpackedFloat_.WriteTo(ref output, _repeated_unpackedFloat_codec);
23443       unpackedDouble_.WriteTo(ref output, _repeated_unpackedDouble_codec);
23444       unpackedBool_.WriteTo(ref output, _repeated_unpackedBool_codec);
23445       unpackedEnum_.WriteTo(ref output, _repeated_unpackedEnum_codec);
23446       if (_unknownFields != null) {
23447         _unknownFields.WriteTo(ref output);
23448       }
23449     }
23450     #endif
23451 
23452     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()23453     public int CalculateSize() {
23454       int size = 0;
23455       size += unpackedInt32_.CalculateSize(_repeated_unpackedInt32_codec);
23456       size += unpackedInt64_.CalculateSize(_repeated_unpackedInt64_codec);
23457       size += unpackedUint32_.CalculateSize(_repeated_unpackedUint32_codec);
23458       size += unpackedUint64_.CalculateSize(_repeated_unpackedUint64_codec);
23459       size += unpackedSint32_.CalculateSize(_repeated_unpackedSint32_codec);
23460       size += unpackedSint64_.CalculateSize(_repeated_unpackedSint64_codec);
23461       size += unpackedFixed32_.CalculateSize(_repeated_unpackedFixed32_codec);
23462       size += unpackedFixed64_.CalculateSize(_repeated_unpackedFixed64_codec);
23463       size += unpackedSfixed32_.CalculateSize(_repeated_unpackedSfixed32_codec);
23464       size += unpackedSfixed64_.CalculateSize(_repeated_unpackedSfixed64_codec);
23465       size += unpackedFloat_.CalculateSize(_repeated_unpackedFloat_codec);
23466       size += unpackedDouble_.CalculateSize(_repeated_unpackedDouble_codec);
23467       size += unpackedBool_.CalculateSize(_repeated_unpackedBool_codec);
23468       size += unpackedEnum_.CalculateSize(_repeated_unpackedEnum_codec);
23469       if (_unknownFields != null) {
23470         size += _unknownFields.CalculateSize();
23471       }
23472       return size;
23473     }
23474 
23475     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestUnpackedTypes other)23476     public void MergeFrom(TestUnpackedTypes other) {
23477       if (other == null) {
23478         return;
23479       }
23480       unpackedInt32_.Add(other.unpackedInt32_);
23481       unpackedInt64_.Add(other.unpackedInt64_);
23482       unpackedUint32_.Add(other.unpackedUint32_);
23483       unpackedUint64_.Add(other.unpackedUint64_);
23484       unpackedSint32_.Add(other.unpackedSint32_);
23485       unpackedSint64_.Add(other.unpackedSint64_);
23486       unpackedFixed32_.Add(other.unpackedFixed32_);
23487       unpackedFixed64_.Add(other.unpackedFixed64_);
23488       unpackedSfixed32_.Add(other.unpackedSfixed32_);
23489       unpackedSfixed64_.Add(other.unpackedSfixed64_);
23490       unpackedFloat_.Add(other.unpackedFloat_);
23491       unpackedDouble_.Add(other.unpackedDouble_);
23492       unpackedBool_.Add(other.unpackedBool_);
23493       unpackedEnum_.Add(other.unpackedEnum_);
23494       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
23495     }
23496 
23497     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)23498     public void MergeFrom(pb::CodedInputStream input) {
23499     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23500       input.ReadRawMessage(this);
23501     #else
23502       uint tag;
23503       while ((tag = input.ReadTag()) != 0) {
23504         switch(tag) {
23505           default:
23506             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
23507             break;
23508           case 722:
23509           case 720: {
23510             unpackedInt32_.AddEntriesFrom(input, _repeated_unpackedInt32_codec);
23511             break;
23512           }
23513           case 730:
23514           case 728: {
23515             unpackedInt64_.AddEntriesFrom(input, _repeated_unpackedInt64_codec);
23516             break;
23517           }
23518           case 738:
23519           case 736: {
23520             unpackedUint32_.AddEntriesFrom(input, _repeated_unpackedUint32_codec);
23521             break;
23522           }
23523           case 746:
23524           case 744: {
23525             unpackedUint64_.AddEntriesFrom(input, _repeated_unpackedUint64_codec);
23526             break;
23527           }
23528           case 754:
23529           case 752: {
23530             unpackedSint32_.AddEntriesFrom(input, _repeated_unpackedSint32_codec);
23531             break;
23532           }
23533           case 762:
23534           case 760: {
23535             unpackedSint64_.AddEntriesFrom(input, _repeated_unpackedSint64_codec);
23536             break;
23537           }
23538           case 770:
23539           case 773: {
23540             unpackedFixed32_.AddEntriesFrom(input, _repeated_unpackedFixed32_codec);
23541             break;
23542           }
23543           case 778:
23544           case 777: {
23545             unpackedFixed64_.AddEntriesFrom(input, _repeated_unpackedFixed64_codec);
23546             break;
23547           }
23548           case 786:
23549           case 789: {
23550             unpackedSfixed32_.AddEntriesFrom(input, _repeated_unpackedSfixed32_codec);
23551             break;
23552           }
23553           case 794:
23554           case 793: {
23555             unpackedSfixed64_.AddEntriesFrom(input, _repeated_unpackedSfixed64_codec);
23556             break;
23557           }
23558           case 802:
23559           case 805: {
23560             unpackedFloat_.AddEntriesFrom(input, _repeated_unpackedFloat_codec);
23561             break;
23562           }
23563           case 810:
23564           case 809: {
23565             unpackedDouble_.AddEntriesFrom(input, _repeated_unpackedDouble_codec);
23566             break;
23567           }
23568           case 818:
23569           case 816: {
23570             unpackedBool_.AddEntriesFrom(input, _repeated_unpackedBool_codec);
23571             break;
23572           }
23573           case 826:
23574           case 824: {
23575             unpackedEnum_.AddEntriesFrom(input, _repeated_unpackedEnum_codec);
23576             break;
23577           }
23578         }
23579       }
23580     #endif
23581     }
23582 
23583     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23584     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)23585     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
23586       uint tag;
23587       while ((tag = input.ReadTag()) != 0) {
23588         switch(tag) {
23589           default:
23590             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
23591             break;
23592           case 722:
23593           case 720: {
23594             unpackedInt32_.AddEntriesFrom(ref input, _repeated_unpackedInt32_codec);
23595             break;
23596           }
23597           case 730:
23598           case 728: {
23599             unpackedInt64_.AddEntriesFrom(ref input, _repeated_unpackedInt64_codec);
23600             break;
23601           }
23602           case 738:
23603           case 736: {
23604             unpackedUint32_.AddEntriesFrom(ref input, _repeated_unpackedUint32_codec);
23605             break;
23606           }
23607           case 746:
23608           case 744: {
23609             unpackedUint64_.AddEntriesFrom(ref input, _repeated_unpackedUint64_codec);
23610             break;
23611           }
23612           case 754:
23613           case 752: {
23614             unpackedSint32_.AddEntriesFrom(ref input, _repeated_unpackedSint32_codec);
23615             break;
23616           }
23617           case 762:
23618           case 760: {
23619             unpackedSint64_.AddEntriesFrom(ref input, _repeated_unpackedSint64_codec);
23620             break;
23621           }
23622           case 770:
23623           case 773: {
23624             unpackedFixed32_.AddEntriesFrom(ref input, _repeated_unpackedFixed32_codec);
23625             break;
23626           }
23627           case 778:
23628           case 777: {
23629             unpackedFixed64_.AddEntriesFrom(ref input, _repeated_unpackedFixed64_codec);
23630             break;
23631           }
23632           case 786:
23633           case 789: {
23634             unpackedSfixed32_.AddEntriesFrom(ref input, _repeated_unpackedSfixed32_codec);
23635             break;
23636           }
23637           case 794:
23638           case 793: {
23639             unpackedSfixed64_.AddEntriesFrom(ref input, _repeated_unpackedSfixed64_codec);
23640             break;
23641           }
23642           case 802:
23643           case 805: {
23644             unpackedFloat_.AddEntriesFrom(ref input, _repeated_unpackedFloat_codec);
23645             break;
23646           }
23647           case 810:
23648           case 809: {
23649             unpackedDouble_.AddEntriesFrom(ref input, _repeated_unpackedDouble_codec);
23650             break;
23651           }
23652           case 818:
23653           case 816: {
23654             unpackedBool_.AddEntriesFrom(ref input, _repeated_unpackedBool_codec);
23655             break;
23656           }
23657           case 826:
23658           case 824: {
23659             unpackedEnum_.AddEntriesFrom(ref input, _repeated_unpackedEnum_codec);
23660             break;
23661           }
23662         }
23663       }
23664     }
23665     #endif
23666 
23667   }
23668 
23669   public sealed partial class TestPackedExtensions : pb::IExtendableMessage<TestPackedExtensions>
23670   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23671       , pb::IBufferMessage
23672   #endif
23673   {
23674     private static readonly pb::MessageParser<TestPackedExtensions> _parser = new pb::MessageParser<TestPackedExtensions>(() => new TestPackedExtensions());
23675     private pb::UnknownFieldSet _unknownFields;
23676     private pb::ExtensionSet<TestPackedExtensions> _extensions;
23677     private pb::ExtensionSet<TestPackedExtensions> _Extensions { get { return _extensions; } }
23678     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23679     public static pb::MessageParser<TestPackedExtensions> Parser { get { return _parser; } }
23680 
23681     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23682     public static pbr::MessageDescriptor Descriptor {
23683       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[50]; }
23684     }
23685 
23686     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23687     pbr::MessageDescriptor pb::IMessage.Descriptor {
23688       get { return Descriptor; }
23689     }
23690 
23691     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestPackedExtensions()23692     public TestPackedExtensions() {
23693       OnConstruction();
23694     }
23695 
OnConstruction()23696     partial void OnConstruction();
23697 
23698     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestPackedExtensions(TestPackedExtensions other)23699     public TestPackedExtensions(TestPackedExtensions other) : this() {
23700       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
23701       _extensions = pb::ExtensionSet.Clone(other._extensions);
23702     }
23703 
23704     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()23705     public TestPackedExtensions Clone() {
23706       return new TestPackedExtensions(this);
23707     }
23708 
23709     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)23710     public override bool Equals(object other) {
23711       return Equals(other as TestPackedExtensions);
23712     }
23713 
23714     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestPackedExtensions other)23715     public bool Equals(TestPackedExtensions other) {
23716       if (ReferenceEquals(other, null)) {
23717         return false;
23718       }
23719       if (ReferenceEquals(other, this)) {
23720         return true;
23721       }
23722       if (!Equals(_extensions, other._extensions)) {
23723         return false;
23724       }
23725       return Equals(_unknownFields, other._unknownFields);
23726     }
23727 
23728     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()23729     public override int GetHashCode() {
23730       int hash = 1;
23731       if (_extensions != null) {
23732         hash ^= _extensions.GetHashCode();
23733       }
23734       if (_unknownFields != null) {
23735         hash ^= _unknownFields.GetHashCode();
23736       }
23737       return hash;
23738     }
23739 
23740     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()23741     public override string ToString() {
23742       return pb::JsonFormatter.ToDiagnosticString(this);
23743     }
23744 
23745     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)23746     public void WriteTo(pb::CodedOutputStream output) {
23747     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23748       output.WriteRawMessage(this);
23749     #else
23750       if (_extensions != null) {
23751         _extensions.WriteTo(output);
23752       }
23753       if (_unknownFields != null) {
23754         _unknownFields.WriteTo(output);
23755       }
23756     #endif
23757     }
23758 
23759     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23760     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)23761     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
23762       if (_extensions != null) {
23763         _extensions.WriteTo(ref output);
23764       }
23765       if (_unknownFields != null) {
23766         _unknownFields.WriteTo(ref output);
23767       }
23768     }
23769     #endif
23770 
23771     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()23772     public int CalculateSize() {
23773       int size = 0;
23774       if (_extensions != null) {
23775         size += _extensions.CalculateSize();
23776       }
23777       if (_unknownFields != null) {
23778         size += _unknownFields.CalculateSize();
23779       }
23780       return size;
23781     }
23782 
23783     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestPackedExtensions other)23784     public void MergeFrom(TestPackedExtensions other) {
23785       if (other == null) {
23786         return;
23787       }
23788       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
23789       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
23790     }
23791 
23792     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)23793     public void MergeFrom(pb::CodedInputStream input) {
23794     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23795       input.ReadRawMessage(this);
23796     #else
23797       uint tag;
23798       while ((tag = input.ReadTag()) != 0) {
23799         switch(tag) {
23800           default:
23801             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
23802               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
23803             }
23804             break;
23805         }
23806       }
23807     #endif
23808     }
23809 
23810     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23811     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)23812     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
23813       uint tag;
23814       while ((tag = input.ReadTag()) != 0) {
23815         switch(tag) {
23816           default:
23817             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
23818               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
23819             }
23820             break;
23821         }
23822       }
23823     }
23824     #endif
23825 
GetExtension(pb::Extension<TestPackedExtensions, TValue> extension)23826     public TValue GetExtension<TValue>(pb::Extension<TestPackedExtensions, TValue> extension) {
23827       return pb::ExtensionSet.Get(ref _extensions, extension);
23828     }
GetExtension(pb::RepeatedExtension<TestPackedExtensions, TValue> extension)23829     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestPackedExtensions, TValue> extension) {
23830       return pb::ExtensionSet.Get(ref _extensions, extension);
23831     }
GetOrInitializeExtension(pb::RepeatedExtension<TestPackedExtensions, TValue> extension)23832     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestPackedExtensions, TValue> extension) {
23833       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
23834     }
SetExtension(pb::Extension<TestPackedExtensions, TValue> extension, TValue value)23835     public void SetExtension<TValue>(pb::Extension<TestPackedExtensions, TValue> extension, TValue value) {
23836       pb::ExtensionSet.Set(ref _extensions, extension, value);
23837     }
HasExtension(pb::Extension<TestPackedExtensions, TValue> extension)23838     public bool HasExtension<TValue>(pb::Extension<TestPackedExtensions, TValue> extension) {
23839       return pb::ExtensionSet.Has(ref _extensions, extension);
23840     }
ClearExtension(pb::Extension<TestPackedExtensions, TValue> extension)23841     public void ClearExtension<TValue>(pb::Extension<TestPackedExtensions, TValue> extension) {
23842       pb::ExtensionSet.Clear(ref _extensions, extension);
23843     }
ClearExtension(pb::RepeatedExtension<TestPackedExtensions, TValue> extension)23844     public void ClearExtension<TValue>(pb::RepeatedExtension<TestPackedExtensions, TValue> extension) {
23845       pb::ExtensionSet.Clear(ref _extensions, extension);
23846     }
23847 
23848   }
23849 
23850   public sealed partial class TestUnpackedExtensions : pb::IExtendableMessage<TestUnpackedExtensions>
23851   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23852       , pb::IBufferMessage
23853   #endif
23854   {
23855     private static readonly pb::MessageParser<TestUnpackedExtensions> _parser = new pb::MessageParser<TestUnpackedExtensions>(() => new TestUnpackedExtensions());
23856     private pb::UnknownFieldSet _unknownFields;
23857     private pb::ExtensionSet<TestUnpackedExtensions> _extensions;
23858     private pb::ExtensionSet<TestUnpackedExtensions> _Extensions { get { return _extensions; } }
23859     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23860     public static pb::MessageParser<TestUnpackedExtensions> Parser { get { return _parser; } }
23861 
23862     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23863     public static pbr::MessageDescriptor Descriptor {
23864       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[51]; }
23865     }
23866 
23867     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
23868     pbr::MessageDescriptor pb::IMessage.Descriptor {
23869       get { return Descriptor; }
23870     }
23871 
23872     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestUnpackedExtensions()23873     public TestUnpackedExtensions() {
23874       OnConstruction();
23875     }
23876 
OnConstruction()23877     partial void OnConstruction();
23878 
23879     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestUnpackedExtensions(TestUnpackedExtensions other)23880     public TestUnpackedExtensions(TestUnpackedExtensions other) : this() {
23881       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
23882       _extensions = pb::ExtensionSet.Clone(other._extensions);
23883     }
23884 
23885     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()23886     public TestUnpackedExtensions Clone() {
23887       return new TestUnpackedExtensions(this);
23888     }
23889 
23890     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)23891     public override bool Equals(object other) {
23892       return Equals(other as TestUnpackedExtensions);
23893     }
23894 
23895     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestUnpackedExtensions other)23896     public bool Equals(TestUnpackedExtensions other) {
23897       if (ReferenceEquals(other, null)) {
23898         return false;
23899       }
23900       if (ReferenceEquals(other, this)) {
23901         return true;
23902       }
23903       if (!Equals(_extensions, other._extensions)) {
23904         return false;
23905       }
23906       return Equals(_unknownFields, other._unknownFields);
23907     }
23908 
23909     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()23910     public override int GetHashCode() {
23911       int hash = 1;
23912       if (_extensions != null) {
23913         hash ^= _extensions.GetHashCode();
23914       }
23915       if (_unknownFields != null) {
23916         hash ^= _unknownFields.GetHashCode();
23917       }
23918       return hash;
23919     }
23920 
23921     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()23922     public override string ToString() {
23923       return pb::JsonFormatter.ToDiagnosticString(this);
23924     }
23925 
23926     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)23927     public void WriteTo(pb::CodedOutputStream output) {
23928     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23929       output.WriteRawMessage(this);
23930     #else
23931       if (_extensions != null) {
23932         _extensions.WriteTo(output);
23933       }
23934       if (_unknownFields != null) {
23935         _unknownFields.WriteTo(output);
23936       }
23937     #endif
23938     }
23939 
23940     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23941     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)23942     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
23943       if (_extensions != null) {
23944         _extensions.WriteTo(ref output);
23945       }
23946       if (_unknownFields != null) {
23947         _unknownFields.WriteTo(ref output);
23948       }
23949     }
23950     #endif
23951 
23952     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()23953     public int CalculateSize() {
23954       int size = 0;
23955       if (_extensions != null) {
23956         size += _extensions.CalculateSize();
23957       }
23958       if (_unknownFields != null) {
23959         size += _unknownFields.CalculateSize();
23960       }
23961       return size;
23962     }
23963 
23964     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestUnpackedExtensions other)23965     public void MergeFrom(TestUnpackedExtensions other) {
23966       if (other == null) {
23967         return;
23968       }
23969       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
23970       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
23971     }
23972 
23973     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)23974     public void MergeFrom(pb::CodedInputStream input) {
23975     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23976       input.ReadRawMessage(this);
23977     #else
23978       uint tag;
23979       while ((tag = input.ReadTag()) != 0) {
23980         switch(tag) {
23981           default:
23982             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
23983               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
23984             }
23985             break;
23986         }
23987       }
23988     #endif
23989     }
23990 
23991     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
23992     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)23993     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
23994       uint tag;
23995       while ((tag = input.ReadTag()) != 0) {
23996         switch(tag) {
23997           default:
23998             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
23999               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
24000             }
24001             break;
24002         }
24003       }
24004     }
24005     #endif
24006 
GetExtension(pb::Extension<TestUnpackedExtensions, TValue> extension)24007     public TValue GetExtension<TValue>(pb::Extension<TestUnpackedExtensions, TValue> extension) {
24008       return pb::ExtensionSet.Get(ref _extensions, extension);
24009     }
GetExtension(pb::RepeatedExtension<TestUnpackedExtensions, TValue> extension)24010     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestUnpackedExtensions, TValue> extension) {
24011       return pb::ExtensionSet.Get(ref _extensions, extension);
24012     }
GetOrInitializeExtension(pb::RepeatedExtension<TestUnpackedExtensions, TValue> extension)24013     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestUnpackedExtensions, TValue> extension) {
24014       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
24015     }
SetExtension(pb::Extension<TestUnpackedExtensions, TValue> extension, TValue value)24016     public void SetExtension<TValue>(pb::Extension<TestUnpackedExtensions, TValue> extension, TValue value) {
24017       pb::ExtensionSet.Set(ref _extensions, extension, value);
24018     }
HasExtension(pb::Extension<TestUnpackedExtensions, TValue> extension)24019     public bool HasExtension<TValue>(pb::Extension<TestUnpackedExtensions, TValue> extension) {
24020       return pb::ExtensionSet.Has(ref _extensions, extension);
24021     }
ClearExtension(pb::Extension<TestUnpackedExtensions, TValue> extension)24022     public void ClearExtension<TValue>(pb::Extension<TestUnpackedExtensions, TValue> extension) {
24023       pb::ExtensionSet.Clear(ref _extensions, extension);
24024     }
ClearExtension(pb::RepeatedExtension<TestUnpackedExtensions, TValue> extension)24025     public void ClearExtension<TValue>(pb::RepeatedExtension<TestUnpackedExtensions, TValue> extension) {
24026       pb::ExtensionSet.Clear(ref _extensions, extension);
24027     }
24028 
24029   }
24030 
24031   /// <summary>
24032   /// Used by ExtensionSetTest/DynamicExtensions.  The test actually builds
24033   /// a set of extensions to TestAllExtensions dynamically, based on the fields
24034   /// of this message type.
24035   /// </summary>
24036   public sealed partial class TestDynamicExtensions : pb::IMessage<TestDynamicExtensions>
24037   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24038       , pb::IBufferMessage
24039   #endif
24040   {
24041     private static readonly pb::MessageParser<TestDynamicExtensions> _parser = new pb::MessageParser<TestDynamicExtensions>(() => new TestDynamicExtensions());
24042     private pb::UnknownFieldSet _unknownFields;
24043     private int _hasBits0;
24044     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24045     public static pb::MessageParser<TestDynamicExtensions> Parser { get { return _parser; } }
24046 
24047     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24048     public static pbr::MessageDescriptor Descriptor {
24049       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[52]; }
24050     }
24051 
24052     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24053     pbr::MessageDescriptor pb::IMessage.Descriptor {
24054       get { return Descriptor; }
24055     }
24056 
24057     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDynamicExtensions()24058     public TestDynamicExtensions() {
24059       OnConstruction();
24060     }
24061 
OnConstruction()24062     partial void OnConstruction();
24063 
24064     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestDynamicExtensions(TestDynamicExtensions other)24065     public TestDynamicExtensions(TestDynamicExtensions other) : this() {
24066       _hasBits0 = other._hasBits0;
24067       scalarExtension_ = other.scalarExtension_;
24068       enumExtension_ = other.enumExtension_;
24069       dynamicEnumExtension_ = other.dynamicEnumExtension_;
24070       messageExtension_ = other.messageExtension_ != null ? other.messageExtension_.Clone() : null;
24071       dynamicMessageExtension_ = other.dynamicMessageExtension_ != null ? other.dynamicMessageExtension_.Clone() : null;
24072       repeatedExtension_ = other.repeatedExtension_.Clone();
24073       packedExtension_ = other.packedExtension_.Clone();
24074       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
24075     }
24076 
24077     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()24078     public TestDynamicExtensions Clone() {
24079       return new TestDynamicExtensions(this);
24080     }
24081 
24082     /// <summary>Field number for the "scalar_extension" field.</summary>
24083     public const int ScalarExtensionFieldNumber = 2000;
24084     private readonly static uint ScalarExtensionDefaultValue = 0;
24085 
24086     private uint scalarExtension_;
24087     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24088     public uint ScalarExtension {
24089       get { if ((_hasBits0 & 1) != 0) { return scalarExtension_; } else { return ScalarExtensionDefaultValue; } }
24090       set {
24091         _hasBits0 |= 1;
24092         scalarExtension_ = value;
24093       }
24094     }
24095     /// <summary>Gets whether the "scalar_extension" field is set</summary>
24096     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24097     public bool HasScalarExtension {
24098       get { return (_hasBits0 & 1) != 0; }
24099     }
24100     /// <summary>Clears the value of the "scalar_extension" field</summary>
24101     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearScalarExtension()24102     public void ClearScalarExtension() {
24103       _hasBits0 &= ~1;
24104     }
24105 
24106     /// <summary>Field number for the "enum_extension" field.</summary>
24107     public const int EnumExtensionFieldNumber = 2001;
24108     private readonly static global::Google.Protobuf.TestProtos.Proto2.ForeignEnum EnumExtensionDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo;
24109 
24110     private global::Google.Protobuf.TestProtos.Proto2.ForeignEnum enumExtension_;
24111     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24112     public global::Google.Protobuf.TestProtos.Proto2.ForeignEnum EnumExtension {
24113       get { if ((_hasBits0 & 2) != 0) { return enumExtension_; } else { return EnumExtensionDefaultValue; } }
24114       set {
24115         _hasBits0 |= 2;
24116         enumExtension_ = value;
24117       }
24118     }
24119     /// <summary>Gets whether the "enum_extension" field is set</summary>
24120     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24121     public bool HasEnumExtension {
24122       get { return (_hasBits0 & 2) != 0; }
24123     }
24124     /// <summary>Clears the value of the "enum_extension" field</summary>
24125     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearEnumExtension()24126     public void ClearEnumExtension() {
24127       _hasBits0 &= ~2;
24128     }
24129 
24130     /// <summary>Field number for the "dynamic_enum_extension" field.</summary>
24131     public const int DynamicEnumExtensionFieldNumber = 2002;
24132     private readonly static global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtensionDefaultValue = global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType.DynamicFoo;
24133 
24134     private global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType dynamicEnumExtension_;
24135     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24136     public global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
24137       get { if ((_hasBits0 & 4) != 0) { return dynamicEnumExtension_; } else { return DynamicEnumExtensionDefaultValue; } }
24138       set {
24139         _hasBits0 |= 4;
24140         dynamicEnumExtension_ = value;
24141       }
24142     }
24143     /// <summary>Gets whether the "dynamic_enum_extension" field is set</summary>
24144     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24145     public bool HasDynamicEnumExtension {
24146       get { return (_hasBits0 & 4) != 0; }
24147     }
24148     /// <summary>Clears the value of the "dynamic_enum_extension" field</summary>
24149     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDynamicEnumExtension()24150     public void ClearDynamicEnumExtension() {
24151       _hasBits0 &= ~4;
24152     }
24153 
24154     /// <summary>Field number for the "message_extension" field.</summary>
24155     public const int MessageExtensionFieldNumber = 2003;
24156     private global::Google.Protobuf.TestProtos.Proto2.ForeignMessage messageExtension_;
24157     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24158     public global::Google.Protobuf.TestProtos.Proto2.ForeignMessage MessageExtension {
24159       get { return messageExtension_; }
24160       set {
24161         messageExtension_ = value;
24162       }
24163     }
24164 
24165     /// <summary>Field number for the "dynamic_message_extension" field.</summary>
24166     public const int DynamicMessageExtensionFieldNumber = 2004;
24167     private global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_;
24168     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24169     public global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
24170       get { return dynamicMessageExtension_; }
24171       set {
24172         dynamicMessageExtension_ = value;
24173       }
24174     }
24175 
24176     /// <summary>Field number for the "repeated_extension" field.</summary>
24177     public const int RepeatedExtensionFieldNumber = 2005;
24178     private static readonly pb::FieldCodec<string> _repeated_repeatedExtension_codec
24179         = pb::FieldCodec.ForString(16042);
24180     private readonly pbc::RepeatedField<string> repeatedExtension_ = new pbc::RepeatedField<string>();
24181     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24182     public pbc::RepeatedField<string> RepeatedExtension {
24183       get { return repeatedExtension_; }
24184     }
24185 
24186     /// <summary>Field number for the "packed_extension" field.</summary>
24187     public const int PackedExtensionFieldNumber = 2006;
24188     private static readonly pb::FieldCodec<int> _repeated_packedExtension_codec
24189         = pb::FieldCodec.ForSInt32(16050);
24190     private readonly pbc::RepeatedField<int> packedExtension_ = new pbc::RepeatedField<int>();
24191     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24192     public pbc::RepeatedField<int> PackedExtension {
24193       get { return packedExtension_; }
24194     }
24195 
24196     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)24197     public override bool Equals(object other) {
24198       return Equals(other as TestDynamicExtensions);
24199     }
24200 
24201     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestDynamicExtensions other)24202     public bool Equals(TestDynamicExtensions other) {
24203       if (ReferenceEquals(other, null)) {
24204         return false;
24205       }
24206       if (ReferenceEquals(other, this)) {
24207         return true;
24208       }
24209       if (ScalarExtension != other.ScalarExtension) return false;
24210       if (EnumExtension != other.EnumExtension) return false;
24211       if (DynamicEnumExtension != other.DynamicEnumExtension) return false;
24212       if (!object.Equals(MessageExtension, other.MessageExtension)) return false;
24213       if (!object.Equals(DynamicMessageExtension, other.DynamicMessageExtension)) return false;
24214       if(!repeatedExtension_.Equals(other.repeatedExtension_)) return false;
24215       if(!packedExtension_.Equals(other.packedExtension_)) return false;
24216       return Equals(_unknownFields, other._unknownFields);
24217     }
24218 
24219     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()24220     public override int GetHashCode() {
24221       int hash = 1;
24222       if (HasScalarExtension) hash ^= ScalarExtension.GetHashCode();
24223       if (HasEnumExtension) hash ^= EnumExtension.GetHashCode();
24224       if (HasDynamicEnumExtension) hash ^= DynamicEnumExtension.GetHashCode();
24225       if (messageExtension_ != null) hash ^= MessageExtension.GetHashCode();
24226       if (dynamicMessageExtension_ != null) hash ^= DynamicMessageExtension.GetHashCode();
24227       hash ^= repeatedExtension_.GetHashCode();
24228       hash ^= packedExtension_.GetHashCode();
24229       if (_unknownFields != null) {
24230         hash ^= _unknownFields.GetHashCode();
24231       }
24232       return hash;
24233     }
24234 
24235     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()24236     public override string ToString() {
24237       return pb::JsonFormatter.ToDiagnosticString(this);
24238     }
24239 
24240     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)24241     public void WriteTo(pb::CodedOutputStream output) {
24242     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24243       output.WriteRawMessage(this);
24244     #else
24245       if (HasScalarExtension) {
24246         output.WriteRawTag(133, 125);
24247         output.WriteFixed32(ScalarExtension);
24248       }
24249       if (HasEnumExtension) {
24250         output.WriteRawTag(136, 125);
24251         output.WriteEnum((int) EnumExtension);
24252       }
24253       if (HasDynamicEnumExtension) {
24254         output.WriteRawTag(144, 125);
24255         output.WriteEnum((int) DynamicEnumExtension);
24256       }
24257       if (messageExtension_ != null) {
24258         output.WriteRawTag(154, 125);
24259         output.WriteMessage(MessageExtension);
24260       }
24261       if (dynamicMessageExtension_ != null) {
24262         output.WriteRawTag(162, 125);
24263         output.WriteMessage(DynamicMessageExtension);
24264       }
24265       repeatedExtension_.WriteTo(output, _repeated_repeatedExtension_codec);
24266       packedExtension_.WriteTo(output, _repeated_packedExtension_codec);
24267       if (_unknownFields != null) {
24268         _unknownFields.WriteTo(output);
24269       }
24270     #endif
24271     }
24272 
24273     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24274     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)24275     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
24276       if (HasScalarExtension) {
24277         output.WriteRawTag(133, 125);
24278         output.WriteFixed32(ScalarExtension);
24279       }
24280       if (HasEnumExtension) {
24281         output.WriteRawTag(136, 125);
24282         output.WriteEnum((int) EnumExtension);
24283       }
24284       if (HasDynamicEnumExtension) {
24285         output.WriteRawTag(144, 125);
24286         output.WriteEnum((int) DynamicEnumExtension);
24287       }
24288       if (messageExtension_ != null) {
24289         output.WriteRawTag(154, 125);
24290         output.WriteMessage(MessageExtension);
24291       }
24292       if (dynamicMessageExtension_ != null) {
24293         output.WriteRawTag(162, 125);
24294         output.WriteMessage(DynamicMessageExtension);
24295       }
24296       repeatedExtension_.WriteTo(ref output, _repeated_repeatedExtension_codec);
24297       packedExtension_.WriteTo(ref output, _repeated_packedExtension_codec);
24298       if (_unknownFields != null) {
24299         _unknownFields.WriteTo(ref output);
24300       }
24301     }
24302     #endif
24303 
24304     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()24305     public int CalculateSize() {
24306       int size = 0;
24307       if (HasScalarExtension) {
24308         size += 2 + 4;
24309       }
24310       if (HasEnumExtension) {
24311         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) EnumExtension);
24312       }
24313       if (HasDynamicEnumExtension) {
24314         size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) DynamicEnumExtension);
24315       }
24316       if (messageExtension_ != null) {
24317         size += 2 + pb::CodedOutputStream.ComputeMessageSize(MessageExtension);
24318       }
24319       if (dynamicMessageExtension_ != null) {
24320         size += 2 + pb::CodedOutputStream.ComputeMessageSize(DynamicMessageExtension);
24321       }
24322       size += repeatedExtension_.CalculateSize(_repeated_repeatedExtension_codec);
24323       size += packedExtension_.CalculateSize(_repeated_packedExtension_codec);
24324       if (_unknownFields != null) {
24325         size += _unknownFields.CalculateSize();
24326       }
24327       return size;
24328     }
24329 
24330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestDynamicExtensions other)24331     public void MergeFrom(TestDynamicExtensions other) {
24332       if (other == null) {
24333         return;
24334       }
24335       if (other.HasScalarExtension) {
24336         ScalarExtension = other.ScalarExtension;
24337       }
24338       if (other.HasEnumExtension) {
24339         EnumExtension = other.EnumExtension;
24340       }
24341       if (other.HasDynamicEnumExtension) {
24342         DynamicEnumExtension = other.DynamicEnumExtension;
24343       }
24344       if (other.messageExtension_ != null) {
24345         if (messageExtension_ == null) {
24346           MessageExtension = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
24347         }
24348         MessageExtension.MergeFrom(other.MessageExtension);
24349       }
24350       if (other.dynamicMessageExtension_ != null) {
24351         if (dynamicMessageExtension_ == null) {
24352           DynamicMessageExtension = new global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType();
24353         }
24354         DynamicMessageExtension.MergeFrom(other.DynamicMessageExtension);
24355       }
24356       repeatedExtension_.Add(other.repeatedExtension_);
24357       packedExtension_.Add(other.packedExtension_);
24358       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
24359     }
24360 
24361     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)24362     public void MergeFrom(pb::CodedInputStream input) {
24363     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24364       input.ReadRawMessage(this);
24365     #else
24366       uint tag;
24367       while ((tag = input.ReadTag()) != 0) {
24368         switch(tag) {
24369           default:
24370             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
24371             break;
24372           case 16005: {
24373             ScalarExtension = input.ReadFixed32();
24374             break;
24375           }
24376           case 16008: {
24377             EnumExtension = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
24378             break;
24379           }
24380           case 16016: {
24381             DynamicEnumExtension = (global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType) input.ReadEnum();
24382             break;
24383           }
24384           case 16026: {
24385             if (messageExtension_ == null) {
24386               MessageExtension = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
24387             }
24388             input.ReadMessage(MessageExtension);
24389             break;
24390           }
24391           case 16034: {
24392             if (dynamicMessageExtension_ == null) {
24393               DynamicMessageExtension = new global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType();
24394             }
24395             input.ReadMessage(DynamicMessageExtension);
24396             break;
24397           }
24398           case 16042: {
24399             repeatedExtension_.AddEntriesFrom(input, _repeated_repeatedExtension_codec);
24400             break;
24401           }
24402           case 16050:
24403           case 16048: {
24404             packedExtension_.AddEntriesFrom(input, _repeated_packedExtension_codec);
24405             break;
24406           }
24407         }
24408       }
24409     #endif
24410     }
24411 
24412     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24413     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)24414     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
24415       uint tag;
24416       while ((tag = input.ReadTag()) != 0) {
24417         switch(tag) {
24418           default:
24419             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
24420             break;
24421           case 16005: {
24422             ScalarExtension = input.ReadFixed32();
24423             break;
24424           }
24425           case 16008: {
24426             EnumExtension = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
24427             break;
24428           }
24429           case 16016: {
24430             DynamicEnumExtension = (global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicEnumType) input.ReadEnum();
24431             break;
24432           }
24433           case 16026: {
24434             if (messageExtension_ == null) {
24435               MessageExtension = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
24436             }
24437             input.ReadMessage(MessageExtension);
24438             break;
24439           }
24440           case 16034: {
24441             if (dynamicMessageExtension_ == null) {
24442               DynamicMessageExtension = new global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Types.DynamicMessageType();
24443             }
24444             input.ReadMessage(DynamicMessageExtension);
24445             break;
24446           }
24447           case 16042: {
24448             repeatedExtension_.AddEntriesFrom(ref input, _repeated_repeatedExtension_codec);
24449             break;
24450           }
24451           case 16050:
24452           case 16048: {
24453             packedExtension_.AddEntriesFrom(ref input, _repeated_packedExtension_codec);
24454             break;
24455           }
24456         }
24457       }
24458     }
24459     #endif
24460 
24461     #region Nested types
24462     /// <summary>Container for nested types declared in the TestDynamicExtensions message type.</summary>
24463     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24464     public static partial class Types {
24465       public enum DynamicEnumType {
24466         [pbr::OriginalName("DYNAMIC_FOO")] DynamicFoo = 2200,
24467         [pbr::OriginalName("DYNAMIC_BAR")] DynamicBar = 2201,
24468         [pbr::OriginalName("DYNAMIC_BAZ")] DynamicBaz = 2202,
24469       }
24470 
24471       public sealed partial class DynamicMessageType : pb::IMessage<DynamicMessageType>
24472       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24473           , pb::IBufferMessage
24474       #endif
24475       {
24476         private static readonly pb::MessageParser<DynamicMessageType> _parser = new pb::MessageParser<DynamicMessageType>(() => new DynamicMessageType());
24477         private pb::UnknownFieldSet _unknownFields;
24478         private int _hasBits0;
24479         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24480         public static pb::MessageParser<DynamicMessageType> Parser { get { return _parser; } }
24481 
24482         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24483         public static pbr::MessageDescriptor Descriptor {
24484           get { return global::Google.Protobuf.TestProtos.Proto2.TestDynamicExtensions.Descriptor.NestedTypes[0]; }
24485         }
24486 
24487         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24488         pbr::MessageDescriptor pb::IMessage.Descriptor {
24489           get { return Descriptor; }
24490         }
24491 
24492         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
DynamicMessageType()24493         public DynamicMessageType() {
24494           OnConstruction();
24495         }
24496 
OnConstruction()24497         partial void OnConstruction();
24498 
24499         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
DynamicMessageType(DynamicMessageType other)24500         public DynamicMessageType(DynamicMessageType other) : this() {
24501           _hasBits0 = other._hasBits0;
24502           dynamicField_ = other.dynamicField_;
24503           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
24504         }
24505 
24506         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()24507         public DynamicMessageType Clone() {
24508           return new DynamicMessageType(this);
24509         }
24510 
24511         /// <summary>Field number for the "dynamic_field" field.</summary>
24512         public const int DynamicFieldFieldNumber = 2100;
24513         private readonly static int DynamicFieldDefaultValue = 0;
24514 
24515         private int dynamicField_;
24516         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24517         public int DynamicField {
24518           get { if ((_hasBits0 & 1) != 0) { return dynamicField_; } else { return DynamicFieldDefaultValue; } }
24519           set {
24520             _hasBits0 |= 1;
24521             dynamicField_ = value;
24522           }
24523         }
24524         /// <summary>Gets whether the "dynamic_field" field is set</summary>
24525         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24526         public bool HasDynamicField {
24527           get { return (_hasBits0 & 1) != 0; }
24528         }
24529         /// <summary>Clears the value of the "dynamic_field" field</summary>
24530         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearDynamicField()24531         public void ClearDynamicField() {
24532           _hasBits0 &= ~1;
24533         }
24534 
24535         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)24536         public override bool Equals(object other) {
24537           return Equals(other as DynamicMessageType);
24538         }
24539 
24540         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(DynamicMessageType other)24541         public bool Equals(DynamicMessageType other) {
24542           if (ReferenceEquals(other, null)) {
24543             return false;
24544           }
24545           if (ReferenceEquals(other, this)) {
24546             return true;
24547           }
24548           if (DynamicField != other.DynamicField) return false;
24549           return Equals(_unknownFields, other._unknownFields);
24550         }
24551 
24552         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()24553         public override int GetHashCode() {
24554           int hash = 1;
24555           if (HasDynamicField) hash ^= DynamicField.GetHashCode();
24556           if (_unknownFields != null) {
24557             hash ^= _unknownFields.GetHashCode();
24558           }
24559           return hash;
24560         }
24561 
24562         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()24563         public override string ToString() {
24564           return pb::JsonFormatter.ToDiagnosticString(this);
24565         }
24566 
24567         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)24568         public void WriteTo(pb::CodedOutputStream output) {
24569         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24570           output.WriteRawMessage(this);
24571         #else
24572           if (HasDynamicField) {
24573             output.WriteRawTag(160, 131, 1);
24574             output.WriteInt32(DynamicField);
24575           }
24576           if (_unknownFields != null) {
24577             _unknownFields.WriteTo(output);
24578           }
24579         #endif
24580         }
24581 
24582         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24583         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)24584         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
24585           if (HasDynamicField) {
24586             output.WriteRawTag(160, 131, 1);
24587             output.WriteInt32(DynamicField);
24588           }
24589           if (_unknownFields != null) {
24590             _unknownFields.WriteTo(ref output);
24591           }
24592         }
24593         #endif
24594 
24595         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()24596         public int CalculateSize() {
24597           int size = 0;
24598           if (HasDynamicField) {
24599             size += 3 + pb::CodedOutputStream.ComputeInt32Size(DynamicField);
24600           }
24601           if (_unknownFields != null) {
24602             size += _unknownFields.CalculateSize();
24603           }
24604           return size;
24605         }
24606 
24607         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(DynamicMessageType other)24608         public void MergeFrom(DynamicMessageType other) {
24609           if (other == null) {
24610             return;
24611           }
24612           if (other.HasDynamicField) {
24613             DynamicField = other.DynamicField;
24614           }
24615           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
24616         }
24617 
24618         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)24619         public void MergeFrom(pb::CodedInputStream input) {
24620         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24621           input.ReadRawMessage(this);
24622         #else
24623           uint tag;
24624           while ((tag = input.ReadTag()) != 0) {
24625             switch(tag) {
24626               default:
24627                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
24628                 break;
24629               case 16800: {
24630                 DynamicField = input.ReadInt32();
24631                 break;
24632               }
24633             }
24634           }
24635         #endif
24636         }
24637 
24638         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24639         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)24640         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
24641           uint tag;
24642           while ((tag = input.ReadTag()) != 0) {
24643             switch(tag) {
24644               default:
24645                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
24646                 break;
24647               case 16800: {
24648                 DynamicField = input.ReadInt32();
24649                 break;
24650               }
24651             }
24652           }
24653         }
24654         #endif
24655 
24656       }
24657 
24658     }
24659     #endregion
24660 
24661   }
24662 
24663   public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::IMessage<TestRepeatedScalarDifferentTagSizes>
24664   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24665       , pb::IBufferMessage
24666   #endif
24667   {
24668     private static readonly pb::MessageParser<TestRepeatedScalarDifferentTagSizes> _parser = new pb::MessageParser<TestRepeatedScalarDifferentTagSizes>(() => new TestRepeatedScalarDifferentTagSizes());
24669     private pb::UnknownFieldSet _unknownFields;
24670     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24671     public static pb::MessageParser<TestRepeatedScalarDifferentTagSizes> Parser { get { return _parser; } }
24672 
24673     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24674     public static pbr::MessageDescriptor Descriptor {
24675       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[53]; }
24676     }
24677 
24678     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24679     pbr::MessageDescriptor pb::IMessage.Descriptor {
24680       get { return Descriptor; }
24681     }
24682 
24683     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRepeatedScalarDifferentTagSizes()24684     public TestRepeatedScalarDifferentTagSizes() {
24685       OnConstruction();
24686     }
24687 
OnConstruction()24688     partial void OnConstruction();
24689 
24690     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestRepeatedScalarDifferentTagSizes(TestRepeatedScalarDifferentTagSizes other)24691     public TestRepeatedScalarDifferentTagSizes(TestRepeatedScalarDifferentTagSizes other) : this() {
24692       repeatedFixed32_ = other.repeatedFixed32_.Clone();
24693       repeatedInt32_ = other.repeatedInt32_.Clone();
24694       repeatedFixed64_ = other.repeatedFixed64_.Clone();
24695       repeatedInt64_ = other.repeatedInt64_.Clone();
24696       repeatedFloat_ = other.repeatedFloat_.Clone();
24697       repeatedUint64_ = other.repeatedUint64_.Clone();
24698       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
24699     }
24700 
24701     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()24702     public TestRepeatedScalarDifferentTagSizes Clone() {
24703       return new TestRepeatedScalarDifferentTagSizes(this);
24704     }
24705 
24706     /// <summary>Field number for the "repeated_fixed32" field.</summary>
24707     public const int RepeatedFixed32FieldNumber = 12;
24708     private static readonly pb::FieldCodec<uint> _repeated_repeatedFixed32_codec
24709         = pb::FieldCodec.ForFixed32(101);
24710     private readonly pbc::RepeatedField<uint> repeatedFixed32_ = new pbc::RepeatedField<uint>();
24711     /// <summary>
24712     /// Parsing repeated fixed size values used to fail. This message needs to be
24713     /// used in order to get a tag of the right size; all of the repeated fields
24714     /// in TestAllTypes didn't trigger the check.
24715     /// </summary>
24716     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24717     public pbc::RepeatedField<uint> RepeatedFixed32 {
24718       get { return repeatedFixed32_; }
24719     }
24720 
24721     /// <summary>Field number for the "repeated_int32" field.</summary>
24722     public const int RepeatedInt32FieldNumber = 13;
24723     private static readonly pb::FieldCodec<int> _repeated_repeatedInt32_codec
24724         = pb::FieldCodec.ForInt32(104);
24725     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
24726     /// <summary>
24727     /// Check for a varint type, just for good measure.
24728     /// </summary>
24729     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24730     public pbc::RepeatedField<int> RepeatedInt32 {
24731       get { return repeatedInt32_; }
24732     }
24733 
24734     /// <summary>Field number for the "repeated_fixed64" field.</summary>
24735     public const int RepeatedFixed64FieldNumber = 2046;
24736     private static readonly pb::FieldCodec<ulong> _repeated_repeatedFixed64_codec
24737         = pb::FieldCodec.ForFixed64(16369);
24738     private readonly pbc::RepeatedField<ulong> repeatedFixed64_ = new pbc::RepeatedField<ulong>();
24739     /// <summary>
24740     /// These have two-byte tags.
24741     /// </summary>
24742     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24743     public pbc::RepeatedField<ulong> RepeatedFixed64 {
24744       get { return repeatedFixed64_; }
24745     }
24746 
24747     /// <summary>Field number for the "repeated_int64" field.</summary>
24748     public const int RepeatedInt64FieldNumber = 2047;
24749     private static readonly pb::FieldCodec<long> _repeated_repeatedInt64_codec
24750         = pb::FieldCodec.ForInt64(16376);
24751     private readonly pbc::RepeatedField<long> repeatedInt64_ = new pbc::RepeatedField<long>();
24752     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24753     public pbc::RepeatedField<long> RepeatedInt64 {
24754       get { return repeatedInt64_; }
24755     }
24756 
24757     /// <summary>Field number for the "repeated_float" field.</summary>
24758     public const int RepeatedFloatFieldNumber = 262142;
24759     private static readonly pb::FieldCodec<float> _repeated_repeatedFloat_codec
24760         = pb::FieldCodec.ForFloat(2097141);
24761     private readonly pbc::RepeatedField<float> repeatedFloat_ = new pbc::RepeatedField<float>();
24762     /// <summary>
24763     /// Three byte tags.
24764     /// </summary>
24765     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24766     public pbc::RepeatedField<float> RepeatedFloat {
24767       get { return repeatedFloat_; }
24768     }
24769 
24770     /// <summary>Field number for the "repeated_uint64" field.</summary>
24771     public const int RepeatedUint64FieldNumber = 262143;
24772     private static readonly pb::FieldCodec<ulong> _repeated_repeatedUint64_codec
24773         = pb::FieldCodec.ForUInt64(2097144);
24774     private readonly pbc::RepeatedField<ulong> repeatedUint64_ = new pbc::RepeatedField<ulong>();
24775     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24776     public pbc::RepeatedField<ulong> RepeatedUint64 {
24777       get { return repeatedUint64_; }
24778     }
24779 
24780     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)24781     public override bool Equals(object other) {
24782       return Equals(other as TestRepeatedScalarDifferentTagSizes);
24783     }
24784 
24785     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestRepeatedScalarDifferentTagSizes other)24786     public bool Equals(TestRepeatedScalarDifferentTagSizes other) {
24787       if (ReferenceEquals(other, null)) {
24788         return false;
24789       }
24790       if (ReferenceEquals(other, this)) {
24791         return true;
24792       }
24793       if(!repeatedFixed32_.Equals(other.repeatedFixed32_)) return false;
24794       if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;
24795       if(!repeatedFixed64_.Equals(other.repeatedFixed64_)) return false;
24796       if(!repeatedInt64_.Equals(other.repeatedInt64_)) return false;
24797       if(!repeatedFloat_.Equals(other.repeatedFloat_)) return false;
24798       if(!repeatedUint64_.Equals(other.repeatedUint64_)) return false;
24799       return Equals(_unknownFields, other._unknownFields);
24800     }
24801 
24802     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()24803     public override int GetHashCode() {
24804       int hash = 1;
24805       hash ^= repeatedFixed32_.GetHashCode();
24806       hash ^= repeatedInt32_.GetHashCode();
24807       hash ^= repeatedFixed64_.GetHashCode();
24808       hash ^= repeatedInt64_.GetHashCode();
24809       hash ^= repeatedFloat_.GetHashCode();
24810       hash ^= repeatedUint64_.GetHashCode();
24811       if (_unknownFields != null) {
24812         hash ^= _unknownFields.GetHashCode();
24813       }
24814       return hash;
24815     }
24816 
24817     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()24818     public override string ToString() {
24819       return pb::JsonFormatter.ToDiagnosticString(this);
24820     }
24821 
24822     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)24823     public void WriteTo(pb::CodedOutputStream output) {
24824     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24825       output.WriteRawMessage(this);
24826     #else
24827       repeatedFixed32_.WriteTo(output, _repeated_repeatedFixed32_codec);
24828       repeatedInt32_.WriteTo(output, _repeated_repeatedInt32_codec);
24829       repeatedFixed64_.WriteTo(output, _repeated_repeatedFixed64_codec);
24830       repeatedInt64_.WriteTo(output, _repeated_repeatedInt64_codec);
24831       repeatedFloat_.WriteTo(output, _repeated_repeatedFloat_codec);
24832       repeatedUint64_.WriteTo(output, _repeated_repeatedUint64_codec);
24833       if (_unknownFields != null) {
24834         _unknownFields.WriteTo(output);
24835       }
24836     #endif
24837     }
24838 
24839     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24840     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)24841     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
24842       repeatedFixed32_.WriteTo(ref output, _repeated_repeatedFixed32_codec);
24843       repeatedInt32_.WriteTo(ref output, _repeated_repeatedInt32_codec);
24844       repeatedFixed64_.WriteTo(ref output, _repeated_repeatedFixed64_codec);
24845       repeatedInt64_.WriteTo(ref output, _repeated_repeatedInt64_codec);
24846       repeatedFloat_.WriteTo(ref output, _repeated_repeatedFloat_codec);
24847       repeatedUint64_.WriteTo(ref output, _repeated_repeatedUint64_codec);
24848       if (_unknownFields != null) {
24849         _unknownFields.WriteTo(ref output);
24850       }
24851     }
24852     #endif
24853 
24854     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()24855     public int CalculateSize() {
24856       int size = 0;
24857       size += repeatedFixed32_.CalculateSize(_repeated_repeatedFixed32_codec);
24858       size += repeatedInt32_.CalculateSize(_repeated_repeatedInt32_codec);
24859       size += repeatedFixed64_.CalculateSize(_repeated_repeatedFixed64_codec);
24860       size += repeatedInt64_.CalculateSize(_repeated_repeatedInt64_codec);
24861       size += repeatedFloat_.CalculateSize(_repeated_repeatedFloat_codec);
24862       size += repeatedUint64_.CalculateSize(_repeated_repeatedUint64_codec);
24863       if (_unknownFields != null) {
24864         size += _unknownFields.CalculateSize();
24865       }
24866       return size;
24867     }
24868 
24869     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestRepeatedScalarDifferentTagSizes other)24870     public void MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
24871       if (other == null) {
24872         return;
24873       }
24874       repeatedFixed32_.Add(other.repeatedFixed32_);
24875       repeatedInt32_.Add(other.repeatedInt32_);
24876       repeatedFixed64_.Add(other.repeatedFixed64_);
24877       repeatedInt64_.Add(other.repeatedInt64_);
24878       repeatedFloat_.Add(other.repeatedFloat_);
24879       repeatedUint64_.Add(other.repeatedUint64_);
24880       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
24881     }
24882 
24883     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)24884     public void MergeFrom(pb::CodedInputStream input) {
24885     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24886       input.ReadRawMessage(this);
24887     #else
24888       uint tag;
24889       while ((tag = input.ReadTag()) != 0) {
24890         switch(tag) {
24891           default:
24892             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
24893             break;
24894           case 98:
24895           case 101: {
24896             repeatedFixed32_.AddEntriesFrom(input, _repeated_repeatedFixed32_codec);
24897             break;
24898           }
24899           case 106:
24900           case 104: {
24901             repeatedInt32_.AddEntriesFrom(input, _repeated_repeatedInt32_codec);
24902             break;
24903           }
24904           case 16370:
24905           case 16369: {
24906             repeatedFixed64_.AddEntriesFrom(input, _repeated_repeatedFixed64_codec);
24907             break;
24908           }
24909           case 16378:
24910           case 16376: {
24911             repeatedInt64_.AddEntriesFrom(input, _repeated_repeatedInt64_codec);
24912             break;
24913           }
24914           case 2097138:
24915           case 2097141: {
24916             repeatedFloat_.AddEntriesFrom(input, _repeated_repeatedFloat_codec);
24917             break;
24918           }
24919           case 2097146:
24920           case 2097144: {
24921             repeatedUint64_.AddEntriesFrom(input, _repeated_repeatedUint64_codec);
24922             break;
24923           }
24924         }
24925       }
24926     #endif
24927     }
24928 
24929     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24930     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)24931     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
24932       uint tag;
24933       while ((tag = input.ReadTag()) != 0) {
24934         switch(tag) {
24935           default:
24936             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
24937             break;
24938           case 98:
24939           case 101: {
24940             repeatedFixed32_.AddEntriesFrom(ref input, _repeated_repeatedFixed32_codec);
24941             break;
24942           }
24943           case 106:
24944           case 104: {
24945             repeatedInt32_.AddEntriesFrom(ref input, _repeated_repeatedInt32_codec);
24946             break;
24947           }
24948           case 16370:
24949           case 16369: {
24950             repeatedFixed64_.AddEntriesFrom(ref input, _repeated_repeatedFixed64_codec);
24951             break;
24952           }
24953           case 16378:
24954           case 16376: {
24955             repeatedInt64_.AddEntriesFrom(ref input, _repeated_repeatedInt64_codec);
24956             break;
24957           }
24958           case 2097138:
24959           case 2097141: {
24960             repeatedFloat_.AddEntriesFrom(ref input, _repeated_repeatedFloat_codec);
24961             break;
24962           }
24963           case 2097146:
24964           case 2097144: {
24965             repeatedUint64_.AddEntriesFrom(ref input, _repeated_repeatedUint64_codec);
24966             break;
24967           }
24968         }
24969       }
24970     }
24971     #endif
24972 
24973   }
24974 
24975   /// <summary>
24976   /// Test that if an optional or required message/group field appears multiple
24977   /// times in the input, they need to be merged.
24978   /// </summary>
24979   public sealed partial class TestParsingMerge : pb::IExtendableMessage<TestParsingMerge>
24980   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
24981       , pb::IBufferMessage
24982   #endif
24983   {
24984     private static readonly pb::MessageParser<TestParsingMerge> _parser = new pb::MessageParser<TestParsingMerge>(() => new TestParsingMerge());
24985     private pb::UnknownFieldSet _unknownFields;
24986     private pb::ExtensionSet<TestParsingMerge> _extensions;
24987     private pb::ExtensionSet<TestParsingMerge> _Extensions { get { return _extensions; } }
24988     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24989     public static pb::MessageParser<TestParsingMerge> Parser { get { return _parser; } }
24990 
24991     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24992     public static pbr::MessageDescriptor Descriptor {
24993       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[54]; }
24994     }
24995 
24996     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
24997     pbr::MessageDescriptor pb::IMessage.Descriptor {
24998       get { return Descriptor; }
24999     }
25000 
25001     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestParsingMerge()25002     public TestParsingMerge() {
25003       OnConstruction();
25004     }
25005 
OnConstruction()25006     partial void OnConstruction();
25007 
25008     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestParsingMerge(TestParsingMerge other)25009     public TestParsingMerge(TestParsingMerge other) : this() {
25010       requiredAllTypes_ = other.requiredAllTypes_ != null ? other.requiredAllTypes_.Clone() : null;
25011       optionalAllTypes_ = other.optionalAllTypes_ != null ? other.optionalAllTypes_.Clone() : null;
25012       repeatedAllTypes_ = other.repeatedAllTypes_.Clone();
25013       optionalGroup_ = other.HasOptionalGroup ? other.optionalGroup_.Clone() : null;
25014       repeatedGroup_ = other.repeatedGroup_.Clone();
25015       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
25016       _extensions = pb::ExtensionSet.Clone(other._extensions);
25017     }
25018 
25019     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()25020     public TestParsingMerge Clone() {
25021       return new TestParsingMerge(this);
25022     }
25023 
25024     /// <summary>Field number for the "required_all_types" field.</summary>
25025     public const int RequiredAllTypesFieldNumber = 1;
25026     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes requiredAllTypes_;
25027     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25028     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes RequiredAllTypes {
25029       get { return requiredAllTypes_; }
25030       set {
25031         requiredAllTypes_ = value;
25032       }
25033     }
25034 
25035     /// <summary>Field number for the "optional_all_types" field.</summary>
25036     public const int OptionalAllTypesFieldNumber = 2;
25037     private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes optionalAllTypes_;
25038     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25039     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes OptionalAllTypes {
25040       get { return optionalAllTypes_; }
25041       set {
25042         optionalAllTypes_ = value;
25043       }
25044     }
25045 
25046     /// <summary>Field number for the "repeated_all_types" field.</summary>
25047     public const int RepeatedAllTypesFieldNumber = 3;
25048     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> _repeated_repeatedAllTypes_codec
25049         = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser);
25050     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> repeatedAllTypes_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>();
25051     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25052     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> RepeatedAllTypes {
25053       get { return repeatedAllTypes_; }
25054     }
25055 
25056     /// <summary>Field number for the "optionalgroup" field.</summary>
25057     public const int OptionalGroupFieldNumber = 10;
25058     private global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup optionalGroup_;
25059     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25060     public global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup OptionalGroup {
25061       get { return optionalGroup_; }
25062       set {
25063         optionalGroup_ = value;
25064       }
25065     }
25066     /// <summary>Gets whether the optionalgroup field is set</summary>
25067     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25068     public bool HasOptionalGroup {
25069       get { return optionalGroup_ != null; }
25070     }
25071     /// <summary>Clears the value of the optionalgroup field</summary>
25072     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalGroup()25073     public void ClearOptionalGroup() {
25074       optionalGroup_ = null;
25075     }
25076 
25077     /// <summary>Field number for the "repeatedgroup" field.</summary>
25078     public const int RepeatedGroupFieldNumber = 20;
25079     private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup> _repeated_repeatedGroup_codec
25080         = pb::FieldCodec.ForGroup(163, 164, global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup.Parser);
25081     private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup> repeatedGroup_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup>();
25082     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25083     public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedGroup> RepeatedGroup {
25084       get { return repeatedGroup_; }
25085     }
25086 
25087     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)25088     public override bool Equals(object other) {
25089       return Equals(other as TestParsingMerge);
25090     }
25091 
25092     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestParsingMerge other)25093     public bool Equals(TestParsingMerge other) {
25094       if (ReferenceEquals(other, null)) {
25095         return false;
25096       }
25097       if (ReferenceEquals(other, this)) {
25098         return true;
25099       }
25100       if (!object.Equals(RequiredAllTypes, other.RequiredAllTypes)) return false;
25101       if (!object.Equals(OptionalAllTypes, other.OptionalAllTypes)) return false;
25102       if(!repeatedAllTypes_.Equals(other.repeatedAllTypes_)) return false;
25103       if (!object.Equals(OptionalGroup, other.OptionalGroup)) return false;
25104       if(!repeatedGroup_.Equals(other.repeatedGroup_)) return false;
25105       if (!Equals(_extensions, other._extensions)) {
25106         return false;
25107       }
25108       return Equals(_unknownFields, other._unknownFields);
25109     }
25110 
25111     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()25112     public override int GetHashCode() {
25113       int hash = 1;
25114       if (requiredAllTypes_ != null) hash ^= RequiredAllTypes.GetHashCode();
25115       if (optionalAllTypes_ != null) hash ^= OptionalAllTypes.GetHashCode();
25116       hash ^= repeatedAllTypes_.GetHashCode();
25117       if (HasOptionalGroup) hash ^= OptionalGroup.GetHashCode();
25118       hash ^= repeatedGroup_.GetHashCode();
25119       if (_extensions != null) {
25120         hash ^= _extensions.GetHashCode();
25121       }
25122       if (_unknownFields != null) {
25123         hash ^= _unknownFields.GetHashCode();
25124       }
25125       return hash;
25126     }
25127 
25128     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()25129     public override string ToString() {
25130       return pb::JsonFormatter.ToDiagnosticString(this);
25131     }
25132 
25133     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)25134     public void WriteTo(pb::CodedOutputStream output) {
25135     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25136       output.WriteRawMessage(this);
25137     #else
25138       if (requiredAllTypes_ != null) {
25139         output.WriteRawTag(10);
25140         output.WriteMessage(RequiredAllTypes);
25141       }
25142       if (optionalAllTypes_ != null) {
25143         output.WriteRawTag(18);
25144         output.WriteMessage(OptionalAllTypes);
25145       }
25146       repeatedAllTypes_.WriteTo(output, _repeated_repeatedAllTypes_codec);
25147       if (HasOptionalGroup) {
25148         output.WriteRawTag(83);
25149         output.WriteGroup(OptionalGroup);
25150         output.WriteRawTag(84);
25151       }
25152       repeatedGroup_.WriteTo(output, _repeated_repeatedGroup_codec);
25153       if (_extensions != null) {
25154         _extensions.WriteTo(output);
25155       }
25156       if (_unknownFields != null) {
25157         _unknownFields.WriteTo(output);
25158       }
25159     #endif
25160     }
25161 
25162     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25163     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)25164     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
25165       if (requiredAllTypes_ != null) {
25166         output.WriteRawTag(10);
25167         output.WriteMessage(RequiredAllTypes);
25168       }
25169       if (optionalAllTypes_ != null) {
25170         output.WriteRawTag(18);
25171         output.WriteMessage(OptionalAllTypes);
25172       }
25173       repeatedAllTypes_.WriteTo(ref output, _repeated_repeatedAllTypes_codec);
25174       if (HasOptionalGroup) {
25175         output.WriteRawTag(83);
25176         output.WriteGroup(OptionalGroup);
25177         output.WriteRawTag(84);
25178       }
25179       repeatedGroup_.WriteTo(ref output, _repeated_repeatedGroup_codec);
25180       if (_extensions != null) {
25181         _extensions.WriteTo(ref output);
25182       }
25183       if (_unknownFields != null) {
25184         _unknownFields.WriteTo(ref output);
25185       }
25186     }
25187     #endif
25188 
25189     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()25190     public int CalculateSize() {
25191       int size = 0;
25192       if (requiredAllTypes_ != null) {
25193         size += 1 + pb::CodedOutputStream.ComputeMessageSize(RequiredAllTypes);
25194       }
25195       if (optionalAllTypes_ != null) {
25196         size += 1 + pb::CodedOutputStream.ComputeMessageSize(OptionalAllTypes);
25197       }
25198       size += repeatedAllTypes_.CalculateSize(_repeated_repeatedAllTypes_codec);
25199       if (HasOptionalGroup) {
25200         size += 2 + pb::CodedOutputStream.ComputeGroupSize(OptionalGroup);
25201       }
25202       size += repeatedGroup_.CalculateSize(_repeated_repeatedGroup_codec);
25203       if (_extensions != null) {
25204         size += _extensions.CalculateSize();
25205       }
25206       if (_unknownFields != null) {
25207         size += _unknownFields.CalculateSize();
25208       }
25209       return size;
25210     }
25211 
25212     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestParsingMerge other)25213     public void MergeFrom(TestParsingMerge other) {
25214       if (other == null) {
25215         return;
25216       }
25217       if (other.requiredAllTypes_ != null) {
25218         if (requiredAllTypes_ == null) {
25219           RequiredAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25220         }
25221         RequiredAllTypes.MergeFrom(other.RequiredAllTypes);
25222       }
25223       if (other.optionalAllTypes_ != null) {
25224         if (optionalAllTypes_ == null) {
25225           OptionalAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25226         }
25227         OptionalAllTypes.MergeFrom(other.OptionalAllTypes);
25228       }
25229       repeatedAllTypes_.Add(other.repeatedAllTypes_);
25230       if (other.HasOptionalGroup) {
25231         if (!HasOptionalGroup) {
25232           OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup();
25233         }
25234         OptionalGroup.MergeFrom(other.OptionalGroup);
25235       }
25236       repeatedGroup_.Add(other.repeatedGroup_);
25237       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
25238       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
25239     }
25240 
25241     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)25242     public void MergeFrom(pb::CodedInputStream input) {
25243     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25244       input.ReadRawMessage(this);
25245     #else
25246       uint tag;
25247       while ((tag = input.ReadTag()) != 0) {
25248         switch(tag) {
25249           default:
25250             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
25251               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
25252             }
25253             break;
25254           case 10: {
25255             if (requiredAllTypes_ == null) {
25256               RequiredAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25257             }
25258             input.ReadMessage(RequiredAllTypes);
25259             break;
25260           }
25261           case 18: {
25262             if (optionalAllTypes_ == null) {
25263               OptionalAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25264             }
25265             input.ReadMessage(OptionalAllTypes);
25266             break;
25267           }
25268           case 26: {
25269             repeatedAllTypes_.AddEntriesFrom(input, _repeated_repeatedAllTypes_codec);
25270             break;
25271           }
25272           case 83: {
25273             if (!HasOptionalGroup) {
25274               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup();
25275             }
25276             input.ReadGroup(OptionalGroup);
25277             break;
25278           }
25279           case 163: {
25280             repeatedGroup_.AddEntriesFrom(input, _repeated_repeatedGroup_codec);
25281             break;
25282           }
25283         }
25284       }
25285     #endif
25286     }
25287 
25288     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25289     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)25290     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
25291       uint tag;
25292       while ((tag = input.ReadTag()) != 0) {
25293         switch(tag) {
25294           default:
25295             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
25296               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
25297             }
25298             break;
25299           case 10: {
25300             if (requiredAllTypes_ == null) {
25301               RequiredAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25302             }
25303             input.ReadMessage(RequiredAllTypes);
25304             break;
25305           }
25306           case 18: {
25307             if (optionalAllTypes_ == null) {
25308               OptionalAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25309             }
25310             input.ReadMessage(OptionalAllTypes);
25311             break;
25312           }
25313           case 26: {
25314             repeatedAllTypes_.AddEntriesFrom(ref input, _repeated_repeatedAllTypes_codec);
25315             break;
25316           }
25317           case 83: {
25318             if (!HasOptionalGroup) {
25319               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.OptionalGroup();
25320             }
25321             input.ReadGroup(OptionalGroup);
25322             break;
25323           }
25324           case 163: {
25325             repeatedGroup_.AddEntriesFrom(ref input, _repeated_repeatedGroup_codec);
25326             break;
25327           }
25328         }
25329       }
25330     }
25331     #endif
25332 
GetExtension(pb::Extension<TestParsingMerge, TValue> extension)25333     public TValue GetExtension<TValue>(pb::Extension<TestParsingMerge, TValue> extension) {
25334       return pb::ExtensionSet.Get(ref _extensions, extension);
25335     }
GetExtension(pb::RepeatedExtension<TestParsingMerge, TValue> extension)25336     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestParsingMerge, TValue> extension) {
25337       return pb::ExtensionSet.Get(ref _extensions, extension);
25338     }
GetOrInitializeExtension(pb::RepeatedExtension<TestParsingMerge, TValue> extension)25339     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestParsingMerge, TValue> extension) {
25340       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
25341     }
SetExtension(pb::Extension<TestParsingMerge, TValue> extension, TValue value)25342     public void SetExtension<TValue>(pb::Extension<TestParsingMerge, TValue> extension, TValue value) {
25343       pb::ExtensionSet.Set(ref _extensions, extension, value);
25344     }
HasExtension(pb::Extension<TestParsingMerge, TValue> extension)25345     public bool HasExtension<TValue>(pb::Extension<TestParsingMerge, TValue> extension) {
25346       return pb::ExtensionSet.Has(ref _extensions, extension);
25347     }
ClearExtension(pb::Extension<TestParsingMerge, TValue> extension)25348     public void ClearExtension<TValue>(pb::Extension<TestParsingMerge, TValue> extension) {
25349       pb::ExtensionSet.Clear(ref _extensions, extension);
25350     }
ClearExtension(pb::RepeatedExtension<TestParsingMerge, TValue> extension)25351     public void ClearExtension<TValue>(pb::RepeatedExtension<TestParsingMerge, TValue> extension) {
25352       pb::ExtensionSet.Clear(ref _extensions, extension);
25353     }
25354 
25355     #region Nested types
25356     /// <summary>Container for nested types declared in the TestParsingMerge message type.</summary>
25357     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25358     public static partial class Types {
25359       /// <summary>
25360       /// RepeatedFieldsGenerator defines matching field types as TestParsingMerge,
25361       /// except that all fields are repeated. In the tests, we will serialize the
25362       /// RepeatedFieldsGenerator to bytes, and parse the bytes to TestParsingMerge.
25363       /// Repeated fields in RepeatedFieldsGenerator are expected to be merged into
25364       /// the corresponding required/optional fields in TestParsingMerge.
25365       /// </summary>
25366       public sealed partial class RepeatedFieldsGenerator : pb::IMessage<RepeatedFieldsGenerator>
25367       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25368           , pb::IBufferMessage
25369       #endif
25370       {
25371         private static readonly pb::MessageParser<RepeatedFieldsGenerator> _parser = new pb::MessageParser<RepeatedFieldsGenerator>(() => new RepeatedFieldsGenerator());
25372         private pb::UnknownFieldSet _unknownFields;
25373         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25374         public static pb::MessageParser<RepeatedFieldsGenerator> Parser { get { return _parser; } }
25375 
25376         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25377         public static pbr::MessageDescriptor Descriptor {
25378           get { return global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Descriptor.NestedTypes[0]; }
25379         }
25380 
25381         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25382         pbr::MessageDescriptor pb::IMessage.Descriptor {
25383           get { return Descriptor; }
25384         }
25385 
25386         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedFieldsGenerator()25387         public RepeatedFieldsGenerator() {
25388           OnConstruction();
25389         }
25390 
OnConstruction()25391         partial void OnConstruction();
25392 
25393         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedFieldsGenerator(RepeatedFieldsGenerator other)25394         public RepeatedFieldsGenerator(RepeatedFieldsGenerator other) : this() {
25395           field1_ = other.field1_.Clone();
25396           field2_ = other.field2_.Clone();
25397           field3_ = other.field3_.Clone();
25398           group1_ = other.group1_.Clone();
25399           group2_ = other.group2_.Clone();
25400           ext1_ = other.ext1_.Clone();
25401           ext2_ = other.ext2_.Clone();
25402           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
25403         }
25404 
25405         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()25406         public RepeatedFieldsGenerator Clone() {
25407           return new RepeatedFieldsGenerator(this);
25408         }
25409 
25410         /// <summary>Field number for the "field1" field.</summary>
25411         public const int Field1FieldNumber = 1;
25412         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> _repeated_field1_codec
25413             = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser);
25414         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> field1_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>();
25415         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25416         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> Field1 {
25417           get { return field1_; }
25418         }
25419 
25420         /// <summary>Field number for the "field2" field.</summary>
25421         public const int Field2FieldNumber = 2;
25422         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> _repeated_field2_codec
25423             = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser);
25424         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> field2_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>();
25425         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25426         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> Field2 {
25427           get { return field2_; }
25428         }
25429 
25430         /// <summary>Field number for the "field3" field.</summary>
25431         public const int Field3FieldNumber = 3;
25432         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> _repeated_field3_codec
25433             = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser);
25434         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> field3_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>();
25435         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25436         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> Field3 {
25437           get { return field3_; }
25438         }
25439 
25440         /// <summary>Field number for the "group1" field.</summary>
25441         public const int Group1FieldNumber = 10;
25442         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> _repeated_group1_codec
25443             = pb::FieldCodec.ForGroup(83, 84, global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Parser);
25444         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> group1_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1>();
25445         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25446         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1 {
25447           get { return group1_; }
25448         }
25449 
25450         /// <summary>Field number for the "group2" field.</summary>
25451         public const int Group2FieldNumber = 20;
25452         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> _repeated_group2_codec
25453             = pb::FieldCodec.ForGroup(163, 164, global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Parser);
25454         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> group2_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2>();
25455         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25456         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2 {
25457           get { return group2_; }
25458         }
25459 
25460         /// <summary>Field number for the "ext1" field.</summary>
25461         public const int Ext1FieldNumber = 1000;
25462         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> _repeated_ext1_codec
25463             = pb::FieldCodec.ForMessage(8002, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser);
25464         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> ext1_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>();
25465         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25466         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> Ext1 {
25467           get { return ext1_; }
25468         }
25469 
25470         /// <summary>Field number for the "ext2" field.</summary>
25471         public const int Ext2FieldNumber = 1001;
25472         private static readonly pb::FieldCodec<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> _repeated_ext2_codec
25473             = pb::FieldCodec.ForMessage(8010, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser);
25474         private readonly pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> ext2_ = new pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>();
25475         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25476         public pbc::RepeatedField<global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> Ext2 {
25477           get { return ext2_; }
25478         }
25479 
25480         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)25481         public override bool Equals(object other) {
25482           return Equals(other as RepeatedFieldsGenerator);
25483         }
25484 
25485         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(RepeatedFieldsGenerator other)25486         public bool Equals(RepeatedFieldsGenerator other) {
25487           if (ReferenceEquals(other, null)) {
25488             return false;
25489           }
25490           if (ReferenceEquals(other, this)) {
25491             return true;
25492           }
25493           if(!field1_.Equals(other.field1_)) return false;
25494           if(!field2_.Equals(other.field2_)) return false;
25495           if(!field3_.Equals(other.field3_)) return false;
25496           if(!group1_.Equals(other.group1_)) return false;
25497           if(!group2_.Equals(other.group2_)) return false;
25498           if(!ext1_.Equals(other.ext1_)) return false;
25499           if(!ext2_.Equals(other.ext2_)) return false;
25500           return Equals(_unknownFields, other._unknownFields);
25501         }
25502 
25503         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()25504         public override int GetHashCode() {
25505           int hash = 1;
25506           hash ^= field1_.GetHashCode();
25507           hash ^= field2_.GetHashCode();
25508           hash ^= field3_.GetHashCode();
25509           hash ^= group1_.GetHashCode();
25510           hash ^= group2_.GetHashCode();
25511           hash ^= ext1_.GetHashCode();
25512           hash ^= ext2_.GetHashCode();
25513           if (_unknownFields != null) {
25514             hash ^= _unknownFields.GetHashCode();
25515           }
25516           return hash;
25517         }
25518 
25519         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()25520         public override string ToString() {
25521           return pb::JsonFormatter.ToDiagnosticString(this);
25522         }
25523 
25524         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)25525         public void WriteTo(pb::CodedOutputStream output) {
25526         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25527           output.WriteRawMessage(this);
25528         #else
25529           field1_.WriteTo(output, _repeated_field1_codec);
25530           field2_.WriteTo(output, _repeated_field2_codec);
25531           field3_.WriteTo(output, _repeated_field3_codec);
25532           group1_.WriteTo(output, _repeated_group1_codec);
25533           group2_.WriteTo(output, _repeated_group2_codec);
25534           ext1_.WriteTo(output, _repeated_ext1_codec);
25535           ext2_.WriteTo(output, _repeated_ext2_codec);
25536           if (_unknownFields != null) {
25537             _unknownFields.WriteTo(output);
25538           }
25539         #endif
25540         }
25541 
25542         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25543         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)25544         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
25545           field1_.WriteTo(ref output, _repeated_field1_codec);
25546           field2_.WriteTo(ref output, _repeated_field2_codec);
25547           field3_.WriteTo(ref output, _repeated_field3_codec);
25548           group1_.WriteTo(ref output, _repeated_group1_codec);
25549           group2_.WriteTo(ref output, _repeated_group2_codec);
25550           ext1_.WriteTo(ref output, _repeated_ext1_codec);
25551           ext2_.WriteTo(ref output, _repeated_ext2_codec);
25552           if (_unknownFields != null) {
25553             _unknownFields.WriteTo(ref output);
25554           }
25555         }
25556         #endif
25557 
25558         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()25559         public int CalculateSize() {
25560           int size = 0;
25561           size += field1_.CalculateSize(_repeated_field1_codec);
25562           size += field2_.CalculateSize(_repeated_field2_codec);
25563           size += field3_.CalculateSize(_repeated_field3_codec);
25564           size += group1_.CalculateSize(_repeated_group1_codec);
25565           size += group2_.CalculateSize(_repeated_group2_codec);
25566           size += ext1_.CalculateSize(_repeated_ext1_codec);
25567           size += ext2_.CalculateSize(_repeated_ext2_codec);
25568           if (_unknownFields != null) {
25569             size += _unknownFields.CalculateSize();
25570           }
25571           return size;
25572         }
25573 
25574         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(RepeatedFieldsGenerator other)25575         public void MergeFrom(RepeatedFieldsGenerator other) {
25576           if (other == null) {
25577             return;
25578           }
25579           field1_.Add(other.field1_);
25580           field2_.Add(other.field2_);
25581           field3_.Add(other.field3_);
25582           group1_.Add(other.group1_);
25583           group2_.Add(other.group2_);
25584           ext1_.Add(other.ext1_);
25585           ext2_.Add(other.ext2_);
25586           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
25587         }
25588 
25589         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)25590         public void MergeFrom(pb::CodedInputStream input) {
25591         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25592           input.ReadRawMessage(this);
25593         #else
25594           uint tag;
25595           while ((tag = input.ReadTag()) != 0) {
25596             switch(tag) {
25597               default:
25598                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
25599                 break;
25600               case 10: {
25601                 field1_.AddEntriesFrom(input, _repeated_field1_codec);
25602                 break;
25603               }
25604               case 18: {
25605                 field2_.AddEntriesFrom(input, _repeated_field2_codec);
25606                 break;
25607               }
25608               case 26: {
25609                 field3_.AddEntriesFrom(input, _repeated_field3_codec);
25610                 break;
25611               }
25612               case 83: {
25613                 group1_.AddEntriesFrom(input, _repeated_group1_codec);
25614                 break;
25615               }
25616               case 163: {
25617                 group2_.AddEntriesFrom(input, _repeated_group2_codec);
25618                 break;
25619               }
25620               case 8002: {
25621                 ext1_.AddEntriesFrom(input, _repeated_ext1_codec);
25622                 break;
25623               }
25624               case 8010: {
25625                 ext2_.AddEntriesFrom(input, _repeated_ext2_codec);
25626                 break;
25627               }
25628             }
25629           }
25630         #endif
25631         }
25632 
25633         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25634         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)25635         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
25636           uint tag;
25637           while ((tag = input.ReadTag()) != 0) {
25638             switch(tag) {
25639               default:
25640                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
25641                 break;
25642               case 10: {
25643                 field1_.AddEntriesFrom(ref input, _repeated_field1_codec);
25644                 break;
25645               }
25646               case 18: {
25647                 field2_.AddEntriesFrom(ref input, _repeated_field2_codec);
25648                 break;
25649               }
25650               case 26: {
25651                 field3_.AddEntriesFrom(ref input, _repeated_field3_codec);
25652                 break;
25653               }
25654               case 83: {
25655                 group1_.AddEntriesFrom(ref input, _repeated_group1_codec);
25656                 break;
25657               }
25658               case 163: {
25659                 group2_.AddEntriesFrom(ref input, _repeated_group2_codec);
25660                 break;
25661               }
25662               case 8002: {
25663                 ext1_.AddEntriesFrom(ref input, _repeated_ext1_codec);
25664                 break;
25665               }
25666               case 8010: {
25667                 ext2_.AddEntriesFrom(ref input, _repeated_ext2_codec);
25668                 break;
25669               }
25670             }
25671           }
25672         }
25673         #endif
25674 
25675         #region Nested types
25676         /// <summary>Container for nested types declared in the RepeatedFieldsGenerator message type.</summary>
25677         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25678         public static partial class Types {
25679           public sealed partial class Group1 : pb::IMessage<Group1>
25680           #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25681               , pb::IBufferMessage
25682           #endif
25683           {
25684             private static readonly pb::MessageParser<Group1> _parser = new pb::MessageParser<Group1>(() => new Group1());
25685             private pb::UnknownFieldSet _unknownFields;
25686             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25687             public static pb::MessageParser<Group1> Parser { get { return _parser; } }
25688 
25689             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25690             public static pbr::MessageDescriptor Descriptor {
25691               get { return global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Descriptor.NestedTypes[0]; }
25692             }
25693 
25694             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25695             pbr::MessageDescriptor pb::IMessage.Descriptor {
25696               get { return Descriptor; }
25697             }
25698 
25699             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Group1()25700             public Group1() {
25701               OnConstruction();
25702             }
25703 
OnConstruction()25704             partial void OnConstruction();
25705 
25706             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Group1(Group1 other)25707             public Group1(Group1 other) : this() {
25708               field1_ = other.field1_ != null ? other.field1_.Clone() : null;
25709               _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
25710             }
25711 
25712             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()25713             public Group1 Clone() {
25714               return new Group1(this);
25715             }
25716 
25717             /// <summary>Field number for the "field1" field.</summary>
25718             public const int Field1FieldNumber = 11;
25719             private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes field1_;
25720             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25721             public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes Field1 {
25722               get { return field1_; }
25723               set {
25724                 field1_ = value;
25725               }
25726             }
25727 
25728             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)25729             public override bool Equals(object other) {
25730               return Equals(other as Group1);
25731             }
25732 
25733             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Group1 other)25734             public bool Equals(Group1 other) {
25735               if (ReferenceEquals(other, null)) {
25736                 return false;
25737               }
25738               if (ReferenceEquals(other, this)) {
25739                 return true;
25740               }
25741               if (!object.Equals(Field1, other.Field1)) return false;
25742               return Equals(_unknownFields, other._unknownFields);
25743             }
25744 
25745             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()25746             public override int GetHashCode() {
25747               int hash = 1;
25748               if (field1_ != null) hash ^= Field1.GetHashCode();
25749               if (_unknownFields != null) {
25750                 hash ^= _unknownFields.GetHashCode();
25751               }
25752               return hash;
25753             }
25754 
25755             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()25756             public override string ToString() {
25757               return pb::JsonFormatter.ToDiagnosticString(this);
25758             }
25759 
25760             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)25761             public void WriteTo(pb::CodedOutputStream output) {
25762             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25763               output.WriteRawMessage(this);
25764             #else
25765               if (field1_ != null) {
25766                 output.WriteRawTag(90);
25767                 output.WriteMessage(Field1);
25768               }
25769               if (_unknownFields != null) {
25770                 _unknownFields.WriteTo(output);
25771               }
25772             #endif
25773             }
25774 
25775             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25776             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)25777             void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
25778               if (field1_ != null) {
25779                 output.WriteRawTag(90);
25780                 output.WriteMessage(Field1);
25781               }
25782               if (_unknownFields != null) {
25783                 _unknownFields.WriteTo(ref output);
25784               }
25785             }
25786             #endif
25787 
25788             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()25789             public int CalculateSize() {
25790               int size = 0;
25791               if (field1_ != null) {
25792                 size += 1 + pb::CodedOutputStream.ComputeMessageSize(Field1);
25793               }
25794               if (_unknownFields != null) {
25795                 size += _unknownFields.CalculateSize();
25796               }
25797               return size;
25798             }
25799 
25800             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Group1 other)25801             public void MergeFrom(Group1 other) {
25802               if (other == null) {
25803                 return;
25804               }
25805               if (other.field1_ != null) {
25806                 if (field1_ == null) {
25807                   Field1 = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25808                 }
25809                 Field1.MergeFrom(other.Field1);
25810               }
25811               _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
25812             }
25813 
25814             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)25815             public void MergeFrom(pb::CodedInputStream input) {
25816             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25817               input.ReadRawMessage(this);
25818             #else
25819               uint tag;
25820               while ((tag = input.ReadTag()) != 0) {
25821                 switch(tag) {
25822                   case 84:
25823                     return;
25824                   default:
25825                     _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
25826                     break;
25827                   case 90: {
25828                     if (field1_ == null) {
25829                       Field1 = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25830                     }
25831                     input.ReadMessage(Field1);
25832                     break;
25833                   }
25834                 }
25835               }
25836             #endif
25837             }
25838 
25839             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25840             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)25841             void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
25842               uint tag;
25843               while ((tag = input.ReadTag()) != 0) {
25844                 switch(tag) {
25845                   case 84:
25846                     return;
25847                   default:
25848                     _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
25849                     break;
25850                   case 90: {
25851                     if (field1_ == null) {
25852                       Field1 = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25853                     }
25854                     input.ReadMessage(Field1);
25855                     break;
25856                   }
25857                 }
25858               }
25859             }
25860             #endif
25861 
25862           }
25863 
25864           public sealed partial class Group2 : pb::IMessage<Group2>
25865           #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25866               , pb::IBufferMessage
25867           #endif
25868           {
25869             private static readonly pb::MessageParser<Group2> _parser = new pb::MessageParser<Group2>(() => new Group2());
25870             private pb::UnknownFieldSet _unknownFields;
25871             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25872             public static pb::MessageParser<Group2> Parser { get { return _parser; } }
25873 
25874             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25875             public static pbr::MessageDescriptor Descriptor {
25876               get { return global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Types.RepeatedFieldsGenerator.Descriptor.NestedTypes[1]; }
25877             }
25878 
25879             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25880             pbr::MessageDescriptor pb::IMessage.Descriptor {
25881               get { return Descriptor; }
25882             }
25883 
25884             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Group2()25885             public Group2() {
25886               OnConstruction();
25887             }
25888 
OnConstruction()25889             partial void OnConstruction();
25890 
25891             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Group2(Group2 other)25892             public Group2(Group2 other) : this() {
25893               field1_ = other.field1_ != null ? other.field1_.Clone() : null;
25894               _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
25895             }
25896 
25897             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()25898             public Group2 Clone() {
25899               return new Group2(this);
25900             }
25901 
25902             /// <summary>Field number for the "field1" field.</summary>
25903             public const int Field1FieldNumber = 21;
25904             private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes field1_;
25905             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
25906             public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes Field1 {
25907               get { return field1_; }
25908               set {
25909                 field1_ = value;
25910               }
25911             }
25912 
25913             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)25914             public override bool Equals(object other) {
25915               return Equals(other as Group2);
25916             }
25917 
25918             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(Group2 other)25919             public bool Equals(Group2 other) {
25920               if (ReferenceEquals(other, null)) {
25921                 return false;
25922               }
25923               if (ReferenceEquals(other, this)) {
25924                 return true;
25925               }
25926               if (!object.Equals(Field1, other.Field1)) return false;
25927               return Equals(_unknownFields, other._unknownFields);
25928             }
25929 
25930             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()25931             public override int GetHashCode() {
25932               int hash = 1;
25933               if (field1_ != null) hash ^= Field1.GetHashCode();
25934               if (_unknownFields != null) {
25935                 hash ^= _unknownFields.GetHashCode();
25936               }
25937               return hash;
25938             }
25939 
25940             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()25941             public override string ToString() {
25942               return pb::JsonFormatter.ToDiagnosticString(this);
25943             }
25944 
25945             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)25946             public void WriteTo(pb::CodedOutputStream output) {
25947             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25948               output.WriteRawMessage(this);
25949             #else
25950               if (field1_ != null) {
25951                 output.WriteRawTag(170, 1);
25952                 output.WriteMessage(Field1);
25953               }
25954               if (_unknownFields != null) {
25955                 _unknownFields.WriteTo(output);
25956               }
25957             #endif
25958             }
25959 
25960             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
25961             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)25962             void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
25963               if (field1_ != null) {
25964                 output.WriteRawTag(170, 1);
25965                 output.WriteMessage(Field1);
25966               }
25967               if (_unknownFields != null) {
25968                 _unknownFields.WriteTo(ref output);
25969               }
25970             }
25971             #endif
25972 
25973             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()25974             public int CalculateSize() {
25975               int size = 0;
25976               if (field1_ != null) {
25977                 size += 2 + pb::CodedOutputStream.ComputeMessageSize(Field1);
25978               }
25979               if (_unknownFields != null) {
25980                 size += _unknownFields.CalculateSize();
25981               }
25982               return size;
25983             }
25984 
25985             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(Group2 other)25986             public void MergeFrom(Group2 other) {
25987               if (other == null) {
25988                 return;
25989               }
25990               if (other.field1_ != null) {
25991                 if (field1_ == null) {
25992                   Field1 = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
25993                 }
25994                 Field1.MergeFrom(other.Field1);
25995               }
25996               _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
25997             }
25998 
25999             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)26000             public void MergeFrom(pb::CodedInputStream input) {
26001             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26002               input.ReadRawMessage(this);
26003             #else
26004               uint tag;
26005               while ((tag = input.ReadTag()) != 0) {
26006                 switch(tag) {
26007                   case 164:
26008                     return;
26009                   default:
26010                     _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
26011                     break;
26012                   case 170: {
26013                     if (field1_ == null) {
26014                       Field1 = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26015                     }
26016                     input.ReadMessage(Field1);
26017                     break;
26018                   }
26019                 }
26020               }
26021             #endif
26022             }
26023 
26024             #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26025             [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)26026             void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
26027               uint tag;
26028               while ((tag = input.ReadTag()) != 0) {
26029                 switch(tag) {
26030                   case 164:
26031                     return;
26032                   default:
26033                     _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
26034                     break;
26035                   case 170: {
26036                     if (field1_ == null) {
26037                       Field1 = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26038                     }
26039                     input.ReadMessage(Field1);
26040                     break;
26041                   }
26042                 }
26043               }
26044             }
26045             #endif
26046 
26047           }
26048 
26049         }
26050         #endregion
26051 
26052       }
26053 
26054       public sealed partial class OptionalGroup : pb::IMessage<OptionalGroup>
26055       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26056           , pb::IBufferMessage
26057       #endif
26058       {
26059         private static readonly pb::MessageParser<OptionalGroup> _parser = new pb::MessageParser<OptionalGroup>(() => new OptionalGroup());
26060         private pb::UnknownFieldSet _unknownFields;
26061         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26062         public static pb::MessageParser<OptionalGroup> Parser { get { return _parser; } }
26063 
26064         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26065         public static pbr::MessageDescriptor Descriptor {
26066           get { return global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Descriptor.NestedTypes[1]; }
26067         }
26068 
26069         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26070         pbr::MessageDescriptor pb::IMessage.Descriptor {
26071           get { return Descriptor; }
26072         }
26073 
26074         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup()26075         public OptionalGroup() {
26076           OnConstruction();
26077         }
26078 
OnConstruction()26079         partial void OnConstruction();
26080 
26081         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup(OptionalGroup other)26082         public OptionalGroup(OptionalGroup other) : this() {
26083           optionalGroupAllTypes_ = other.optionalGroupAllTypes_ != null ? other.optionalGroupAllTypes_.Clone() : null;
26084           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
26085         }
26086 
26087         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()26088         public OptionalGroup Clone() {
26089           return new OptionalGroup(this);
26090         }
26091 
26092         /// <summary>Field number for the "optional_group_all_types" field.</summary>
26093         public const int OptionalGroupAllTypesFieldNumber = 11;
26094         private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes optionalGroupAllTypes_;
26095         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26096         public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes OptionalGroupAllTypes {
26097           get { return optionalGroupAllTypes_; }
26098           set {
26099             optionalGroupAllTypes_ = value;
26100           }
26101         }
26102 
26103         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)26104         public override bool Equals(object other) {
26105           return Equals(other as OptionalGroup);
26106         }
26107 
26108         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OptionalGroup other)26109         public bool Equals(OptionalGroup other) {
26110           if (ReferenceEquals(other, null)) {
26111             return false;
26112           }
26113           if (ReferenceEquals(other, this)) {
26114             return true;
26115           }
26116           if (!object.Equals(OptionalGroupAllTypes, other.OptionalGroupAllTypes)) return false;
26117           return Equals(_unknownFields, other._unknownFields);
26118         }
26119 
26120         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()26121         public override int GetHashCode() {
26122           int hash = 1;
26123           if (optionalGroupAllTypes_ != null) hash ^= OptionalGroupAllTypes.GetHashCode();
26124           if (_unknownFields != null) {
26125             hash ^= _unknownFields.GetHashCode();
26126           }
26127           return hash;
26128         }
26129 
26130         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()26131         public override string ToString() {
26132           return pb::JsonFormatter.ToDiagnosticString(this);
26133         }
26134 
26135         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)26136         public void WriteTo(pb::CodedOutputStream output) {
26137         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26138           output.WriteRawMessage(this);
26139         #else
26140           if (optionalGroupAllTypes_ != null) {
26141             output.WriteRawTag(90);
26142             output.WriteMessage(OptionalGroupAllTypes);
26143           }
26144           if (_unknownFields != null) {
26145             _unknownFields.WriteTo(output);
26146           }
26147         #endif
26148         }
26149 
26150         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26151         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)26152         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
26153           if (optionalGroupAllTypes_ != null) {
26154             output.WriteRawTag(90);
26155             output.WriteMessage(OptionalGroupAllTypes);
26156           }
26157           if (_unknownFields != null) {
26158             _unknownFields.WriteTo(ref output);
26159           }
26160         }
26161         #endif
26162 
26163         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()26164         public int CalculateSize() {
26165           int size = 0;
26166           if (optionalGroupAllTypes_ != null) {
26167             size += 1 + pb::CodedOutputStream.ComputeMessageSize(OptionalGroupAllTypes);
26168           }
26169           if (_unknownFields != null) {
26170             size += _unknownFields.CalculateSize();
26171           }
26172           return size;
26173         }
26174 
26175         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OptionalGroup other)26176         public void MergeFrom(OptionalGroup other) {
26177           if (other == null) {
26178             return;
26179           }
26180           if (other.optionalGroupAllTypes_ != null) {
26181             if (optionalGroupAllTypes_ == null) {
26182               OptionalGroupAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26183             }
26184             OptionalGroupAllTypes.MergeFrom(other.OptionalGroupAllTypes);
26185           }
26186           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
26187         }
26188 
26189         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)26190         public void MergeFrom(pb::CodedInputStream input) {
26191         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26192           input.ReadRawMessage(this);
26193         #else
26194           uint tag;
26195           while ((tag = input.ReadTag()) != 0) {
26196             switch(tag) {
26197               case 84:
26198                 return;
26199               default:
26200                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
26201                 break;
26202               case 90: {
26203                 if (optionalGroupAllTypes_ == null) {
26204                   OptionalGroupAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26205                 }
26206                 input.ReadMessage(OptionalGroupAllTypes);
26207                 break;
26208               }
26209             }
26210           }
26211         #endif
26212         }
26213 
26214         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26215         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)26216         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
26217           uint tag;
26218           while ((tag = input.ReadTag()) != 0) {
26219             switch(tag) {
26220               case 84:
26221                 return;
26222               default:
26223                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
26224                 break;
26225               case 90: {
26226                 if (optionalGroupAllTypes_ == null) {
26227                   OptionalGroupAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26228                 }
26229                 input.ReadMessage(OptionalGroupAllTypes);
26230                 break;
26231               }
26232             }
26233           }
26234         }
26235         #endif
26236 
26237       }
26238 
26239       public sealed partial class RepeatedGroup : pb::IMessage<RepeatedGroup>
26240       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26241           , pb::IBufferMessage
26242       #endif
26243       {
26244         private static readonly pb::MessageParser<RepeatedGroup> _parser = new pb::MessageParser<RepeatedGroup>(() => new RepeatedGroup());
26245         private pb::UnknownFieldSet _unknownFields;
26246         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26247         public static pb::MessageParser<RepeatedGroup> Parser { get { return _parser; } }
26248 
26249         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26250         public static pbr::MessageDescriptor Descriptor {
26251           get { return global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge.Descriptor.NestedTypes[2]; }
26252         }
26253 
26254         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26255         pbr::MessageDescriptor pb::IMessage.Descriptor {
26256           get { return Descriptor; }
26257         }
26258 
26259         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedGroup()26260         public RepeatedGroup() {
26261           OnConstruction();
26262         }
26263 
OnConstruction()26264         partial void OnConstruction();
26265 
26266         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
RepeatedGroup(RepeatedGroup other)26267         public RepeatedGroup(RepeatedGroup other) : this() {
26268           repeatedGroupAllTypes_ = other.repeatedGroupAllTypes_ != null ? other.repeatedGroupAllTypes_.Clone() : null;
26269           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
26270         }
26271 
26272         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()26273         public RepeatedGroup Clone() {
26274           return new RepeatedGroup(this);
26275         }
26276 
26277         /// <summary>Field number for the "repeated_group_all_types" field.</summary>
26278         public const int RepeatedGroupAllTypesFieldNumber = 21;
26279         private global::Google.Protobuf.TestProtos.Proto2.TestAllTypes repeatedGroupAllTypes_;
26280         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26281         public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes RepeatedGroupAllTypes {
26282           get { return repeatedGroupAllTypes_; }
26283           set {
26284             repeatedGroupAllTypes_ = value;
26285           }
26286         }
26287 
26288         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)26289         public override bool Equals(object other) {
26290           return Equals(other as RepeatedGroup);
26291         }
26292 
26293         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(RepeatedGroup other)26294         public bool Equals(RepeatedGroup other) {
26295           if (ReferenceEquals(other, null)) {
26296             return false;
26297           }
26298           if (ReferenceEquals(other, this)) {
26299             return true;
26300           }
26301           if (!object.Equals(RepeatedGroupAllTypes, other.RepeatedGroupAllTypes)) return false;
26302           return Equals(_unknownFields, other._unknownFields);
26303         }
26304 
26305         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()26306         public override int GetHashCode() {
26307           int hash = 1;
26308           if (repeatedGroupAllTypes_ != null) hash ^= RepeatedGroupAllTypes.GetHashCode();
26309           if (_unknownFields != null) {
26310             hash ^= _unknownFields.GetHashCode();
26311           }
26312           return hash;
26313         }
26314 
26315         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()26316         public override string ToString() {
26317           return pb::JsonFormatter.ToDiagnosticString(this);
26318         }
26319 
26320         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)26321         public void WriteTo(pb::CodedOutputStream output) {
26322         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26323           output.WriteRawMessage(this);
26324         #else
26325           if (repeatedGroupAllTypes_ != null) {
26326             output.WriteRawTag(170, 1);
26327             output.WriteMessage(RepeatedGroupAllTypes);
26328           }
26329           if (_unknownFields != null) {
26330             _unknownFields.WriteTo(output);
26331           }
26332         #endif
26333         }
26334 
26335         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26336         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)26337         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
26338           if (repeatedGroupAllTypes_ != null) {
26339             output.WriteRawTag(170, 1);
26340             output.WriteMessage(RepeatedGroupAllTypes);
26341           }
26342           if (_unknownFields != null) {
26343             _unknownFields.WriteTo(ref output);
26344           }
26345         }
26346         #endif
26347 
26348         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()26349         public int CalculateSize() {
26350           int size = 0;
26351           if (repeatedGroupAllTypes_ != null) {
26352             size += 2 + pb::CodedOutputStream.ComputeMessageSize(RepeatedGroupAllTypes);
26353           }
26354           if (_unknownFields != null) {
26355             size += _unknownFields.CalculateSize();
26356           }
26357           return size;
26358         }
26359 
26360         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(RepeatedGroup other)26361         public void MergeFrom(RepeatedGroup other) {
26362           if (other == null) {
26363             return;
26364           }
26365           if (other.repeatedGroupAllTypes_ != null) {
26366             if (repeatedGroupAllTypes_ == null) {
26367               RepeatedGroupAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26368             }
26369             RepeatedGroupAllTypes.MergeFrom(other.RepeatedGroupAllTypes);
26370           }
26371           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
26372         }
26373 
26374         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)26375         public void MergeFrom(pb::CodedInputStream input) {
26376         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26377           input.ReadRawMessage(this);
26378         #else
26379           uint tag;
26380           while ((tag = input.ReadTag()) != 0) {
26381             switch(tag) {
26382               case 164:
26383                 return;
26384               default:
26385                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
26386                 break;
26387               case 170: {
26388                 if (repeatedGroupAllTypes_ == null) {
26389                   RepeatedGroupAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26390                 }
26391                 input.ReadMessage(RepeatedGroupAllTypes);
26392                 break;
26393               }
26394             }
26395           }
26396         #endif
26397         }
26398 
26399         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26400         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)26401         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
26402           uint tag;
26403           while ((tag = input.ReadTag()) != 0) {
26404             switch(tag) {
26405               case 164:
26406                 return;
26407               default:
26408                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
26409                 break;
26410               case 170: {
26411                 if (repeatedGroupAllTypes_ == null) {
26412                   RepeatedGroupAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
26413                 }
26414                 input.ReadMessage(RepeatedGroupAllTypes);
26415                 break;
26416               }
26417             }
26418           }
26419         }
26420         #endif
26421 
26422       }
26423 
26424     }
26425     #endregion
26426 
26427     #region Extensions
26428     /// <summary>Container for extensions for other messages declared in the TestParsingMerge message type.</summary>
26429     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26430     public static partial class Extensions {
26431       public static readonly pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> OptionalExt =
26432         new pb::Extension<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>(1000, pb::FieldCodec.ForMessage(8002, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser));
26433       public static readonly pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes> RepeatedExt =
26434         new pb::RepeatedExtension<global::Google.Protobuf.TestProtos.Proto2.TestParsingMerge, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes>(1001, pb::FieldCodec.ForMessage(8010, global::Google.Protobuf.TestProtos.Proto2.TestAllTypes.Parser));
26435     }
26436     #endregion
26437 
26438   }
26439 
26440   public sealed partial class TestCommentInjectionMessage : pb::IMessage<TestCommentInjectionMessage>
26441   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26442       , pb::IBufferMessage
26443   #endif
26444   {
26445     private static readonly pb::MessageParser<TestCommentInjectionMessage> _parser = new pb::MessageParser<TestCommentInjectionMessage>(() => new TestCommentInjectionMessage());
26446     private pb::UnknownFieldSet _unknownFields;
26447     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26448     public static pb::MessageParser<TestCommentInjectionMessage> Parser { get { return _parser; } }
26449 
26450     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26451     public static pbr::MessageDescriptor Descriptor {
26452       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[55]; }
26453     }
26454 
26455     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26456     pbr::MessageDescriptor pb::IMessage.Descriptor {
26457       get { return Descriptor; }
26458     }
26459 
26460     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestCommentInjectionMessage()26461     public TestCommentInjectionMessage() {
26462       OnConstruction();
26463     }
26464 
OnConstruction()26465     partial void OnConstruction();
26466 
26467     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestCommentInjectionMessage(TestCommentInjectionMessage other)26468     public TestCommentInjectionMessage(TestCommentInjectionMessage other) : this() {
26469       a_ = other.a_;
26470       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
26471     }
26472 
26473     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()26474     public TestCommentInjectionMessage Clone() {
26475       return new TestCommentInjectionMessage(this);
26476     }
26477 
26478     /// <summary>Field number for the "a" field.</summary>
26479     public const int AFieldNumber = 1;
26480     private readonly static string ADefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("Ki8gPC0gTmVpdGhlciBzaG91bGQgdGhpcy4="), 0, 26);
26481 
26482     private string a_;
26483     /// <summary>
26484     /// */ &lt;- This should not close the generated doc comment
26485     /// </summary>
26486     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26487     public string A {
26488       get { return a_ ?? ADefaultValue; }
26489       set {
26490         a_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
26491       }
26492     }
26493     /// <summary>Gets whether the "a" field is set</summary>
26494     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26495     public bool HasA {
26496       get { return a_ != null; }
26497     }
26498     /// <summary>Clears the value of the "a" field</summary>
26499     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearA()26500     public void ClearA() {
26501       a_ = null;
26502     }
26503 
26504     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)26505     public override bool Equals(object other) {
26506       return Equals(other as TestCommentInjectionMessage);
26507     }
26508 
26509     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestCommentInjectionMessage other)26510     public bool Equals(TestCommentInjectionMessage other) {
26511       if (ReferenceEquals(other, null)) {
26512         return false;
26513       }
26514       if (ReferenceEquals(other, this)) {
26515         return true;
26516       }
26517       if (A != other.A) return false;
26518       return Equals(_unknownFields, other._unknownFields);
26519     }
26520 
26521     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()26522     public override int GetHashCode() {
26523       int hash = 1;
26524       if (HasA) hash ^= A.GetHashCode();
26525       if (_unknownFields != null) {
26526         hash ^= _unknownFields.GetHashCode();
26527       }
26528       return hash;
26529     }
26530 
26531     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()26532     public override string ToString() {
26533       return pb::JsonFormatter.ToDiagnosticString(this);
26534     }
26535 
26536     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)26537     public void WriteTo(pb::CodedOutputStream output) {
26538     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26539       output.WriteRawMessage(this);
26540     #else
26541       if (HasA) {
26542         output.WriteRawTag(10);
26543         output.WriteString(A);
26544       }
26545       if (_unknownFields != null) {
26546         _unknownFields.WriteTo(output);
26547       }
26548     #endif
26549     }
26550 
26551     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26552     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)26553     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
26554       if (HasA) {
26555         output.WriteRawTag(10);
26556         output.WriteString(A);
26557       }
26558       if (_unknownFields != null) {
26559         _unknownFields.WriteTo(ref output);
26560       }
26561     }
26562     #endif
26563 
26564     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()26565     public int CalculateSize() {
26566       int size = 0;
26567       if (HasA) {
26568         size += 1 + pb::CodedOutputStream.ComputeStringSize(A);
26569       }
26570       if (_unknownFields != null) {
26571         size += _unknownFields.CalculateSize();
26572       }
26573       return size;
26574     }
26575 
26576     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestCommentInjectionMessage other)26577     public void MergeFrom(TestCommentInjectionMessage other) {
26578       if (other == null) {
26579         return;
26580       }
26581       if (other.HasA) {
26582         A = other.A;
26583       }
26584       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
26585     }
26586 
26587     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)26588     public void MergeFrom(pb::CodedInputStream input) {
26589     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26590       input.ReadRawMessage(this);
26591     #else
26592       uint tag;
26593       while ((tag = input.ReadTag()) != 0) {
26594         switch(tag) {
26595           default:
26596             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
26597             break;
26598           case 10: {
26599             A = input.ReadString();
26600             break;
26601           }
26602         }
26603       }
26604     #endif
26605     }
26606 
26607     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26608     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)26609     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
26610       uint tag;
26611       while ((tag = input.ReadTag()) != 0) {
26612         switch(tag) {
26613           default:
26614             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
26615             break;
26616           case 10: {
26617             A = input.ReadString();
26618             break;
26619           }
26620         }
26621       }
26622     }
26623     #endif
26624 
26625   }
26626 
26627   /// <summary>
26628   /// Test that RPC services work.
26629   /// </summary>
26630   public sealed partial class FooRequest : pb::IMessage<FooRequest>
26631   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26632       , pb::IBufferMessage
26633   #endif
26634   {
26635     private static readonly pb::MessageParser<FooRequest> _parser = new pb::MessageParser<FooRequest>(() => new FooRequest());
26636     private pb::UnknownFieldSet _unknownFields;
26637     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26638     public static pb::MessageParser<FooRequest> Parser { get { return _parser; } }
26639 
26640     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26641     public static pbr::MessageDescriptor Descriptor {
26642       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[56]; }
26643     }
26644 
26645     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26646     pbr::MessageDescriptor pb::IMessage.Descriptor {
26647       get { return Descriptor; }
26648     }
26649 
26650     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooRequest()26651     public FooRequest() {
26652       OnConstruction();
26653     }
26654 
OnConstruction()26655     partial void OnConstruction();
26656 
26657     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooRequest(FooRequest other)26658     public FooRequest(FooRequest other) : this() {
26659       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
26660     }
26661 
26662     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()26663     public FooRequest Clone() {
26664       return new FooRequest(this);
26665     }
26666 
26667     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)26668     public override bool Equals(object other) {
26669       return Equals(other as FooRequest);
26670     }
26671 
26672     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooRequest other)26673     public bool Equals(FooRequest other) {
26674       if (ReferenceEquals(other, null)) {
26675         return false;
26676       }
26677       if (ReferenceEquals(other, this)) {
26678         return true;
26679       }
26680       return Equals(_unknownFields, other._unknownFields);
26681     }
26682 
26683     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()26684     public override int GetHashCode() {
26685       int hash = 1;
26686       if (_unknownFields != null) {
26687         hash ^= _unknownFields.GetHashCode();
26688       }
26689       return hash;
26690     }
26691 
26692     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()26693     public override string ToString() {
26694       return pb::JsonFormatter.ToDiagnosticString(this);
26695     }
26696 
26697     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)26698     public void WriteTo(pb::CodedOutputStream output) {
26699     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26700       output.WriteRawMessage(this);
26701     #else
26702       if (_unknownFields != null) {
26703         _unknownFields.WriteTo(output);
26704       }
26705     #endif
26706     }
26707 
26708     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26709     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)26710     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
26711       if (_unknownFields != null) {
26712         _unknownFields.WriteTo(ref output);
26713       }
26714     }
26715     #endif
26716 
26717     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()26718     public int CalculateSize() {
26719       int size = 0;
26720       if (_unknownFields != null) {
26721         size += _unknownFields.CalculateSize();
26722       }
26723       return size;
26724     }
26725 
26726     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooRequest other)26727     public void MergeFrom(FooRequest other) {
26728       if (other == null) {
26729         return;
26730       }
26731       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
26732     }
26733 
26734     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)26735     public void MergeFrom(pb::CodedInputStream input) {
26736     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26737       input.ReadRawMessage(this);
26738     #else
26739       uint tag;
26740       while ((tag = input.ReadTag()) != 0) {
26741         switch(tag) {
26742           default:
26743             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
26744             break;
26745         }
26746       }
26747     #endif
26748     }
26749 
26750     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26751     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)26752     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
26753       uint tag;
26754       while ((tag = input.ReadTag()) != 0) {
26755         switch(tag) {
26756           default:
26757             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
26758             break;
26759         }
26760       }
26761     }
26762     #endif
26763 
26764   }
26765 
26766   public sealed partial class FooResponse : pb::IMessage<FooResponse>
26767   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26768       , pb::IBufferMessage
26769   #endif
26770   {
26771     private static readonly pb::MessageParser<FooResponse> _parser = new pb::MessageParser<FooResponse>(() => new FooResponse());
26772     private pb::UnknownFieldSet _unknownFields;
26773     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26774     public static pb::MessageParser<FooResponse> Parser { get { return _parser; } }
26775 
26776     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26777     public static pbr::MessageDescriptor Descriptor {
26778       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[57]; }
26779     }
26780 
26781     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26782     pbr::MessageDescriptor pb::IMessage.Descriptor {
26783       get { return Descriptor; }
26784     }
26785 
26786     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooResponse()26787     public FooResponse() {
26788       OnConstruction();
26789     }
26790 
OnConstruction()26791     partial void OnConstruction();
26792 
26793     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooResponse(FooResponse other)26794     public FooResponse(FooResponse other) : this() {
26795       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
26796     }
26797 
26798     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()26799     public FooResponse Clone() {
26800       return new FooResponse(this);
26801     }
26802 
26803     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)26804     public override bool Equals(object other) {
26805       return Equals(other as FooResponse);
26806     }
26807 
26808     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooResponse other)26809     public bool Equals(FooResponse other) {
26810       if (ReferenceEquals(other, null)) {
26811         return false;
26812       }
26813       if (ReferenceEquals(other, this)) {
26814         return true;
26815       }
26816       return Equals(_unknownFields, other._unknownFields);
26817     }
26818 
26819     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()26820     public override int GetHashCode() {
26821       int hash = 1;
26822       if (_unknownFields != null) {
26823         hash ^= _unknownFields.GetHashCode();
26824       }
26825       return hash;
26826     }
26827 
26828     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()26829     public override string ToString() {
26830       return pb::JsonFormatter.ToDiagnosticString(this);
26831     }
26832 
26833     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)26834     public void WriteTo(pb::CodedOutputStream output) {
26835     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26836       output.WriteRawMessage(this);
26837     #else
26838       if (_unknownFields != null) {
26839         _unknownFields.WriteTo(output);
26840       }
26841     #endif
26842     }
26843 
26844     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26845     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)26846     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
26847       if (_unknownFields != null) {
26848         _unknownFields.WriteTo(ref output);
26849       }
26850     }
26851     #endif
26852 
26853     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()26854     public int CalculateSize() {
26855       int size = 0;
26856       if (_unknownFields != null) {
26857         size += _unknownFields.CalculateSize();
26858       }
26859       return size;
26860     }
26861 
26862     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooResponse other)26863     public void MergeFrom(FooResponse other) {
26864       if (other == null) {
26865         return;
26866       }
26867       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
26868     }
26869 
26870     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)26871     public void MergeFrom(pb::CodedInputStream input) {
26872     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26873       input.ReadRawMessage(this);
26874     #else
26875       uint tag;
26876       while ((tag = input.ReadTag()) != 0) {
26877         switch(tag) {
26878           default:
26879             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
26880             break;
26881         }
26882       }
26883     #endif
26884     }
26885 
26886     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26887     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)26888     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
26889       uint tag;
26890       while ((tag = input.ReadTag()) != 0) {
26891         switch(tag) {
26892           default:
26893             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
26894             break;
26895         }
26896       }
26897     }
26898     #endif
26899 
26900   }
26901 
26902   public sealed partial class FooClientMessage : pb::IMessage<FooClientMessage>
26903   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26904       , pb::IBufferMessage
26905   #endif
26906   {
26907     private static readonly pb::MessageParser<FooClientMessage> _parser = new pb::MessageParser<FooClientMessage>(() => new FooClientMessage());
26908     private pb::UnknownFieldSet _unknownFields;
26909     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26910     public static pb::MessageParser<FooClientMessage> Parser { get { return _parser; } }
26911 
26912     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26913     public static pbr::MessageDescriptor Descriptor {
26914       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[58]; }
26915     }
26916 
26917     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
26918     pbr::MessageDescriptor pb::IMessage.Descriptor {
26919       get { return Descriptor; }
26920     }
26921 
26922     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooClientMessage()26923     public FooClientMessage() {
26924       OnConstruction();
26925     }
26926 
OnConstruction()26927     partial void OnConstruction();
26928 
26929     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooClientMessage(FooClientMessage other)26930     public FooClientMessage(FooClientMessage other) : this() {
26931       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
26932     }
26933 
26934     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()26935     public FooClientMessage Clone() {
26936       return new FooClientMessage(this);
26937     }
26938 
26939     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)26940     public override bool Equals(object other) {
26941       return Equals(other as FooClientMessage);
26942     }
26943 
26944     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooClientMessage other)26945     public bool Equals(FooClientMessage other) {
26946       if (ReferenceEquals(other, null)) {
26947         return false;
26948       }
26949       if (ReferenceEquals(other, this)) {
26950         return true;
26951       }
26952       return Equals(_unknownFields, other._unknownFields);
26953     }
26954 
26955     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()26956     public override int GetHashCode() {
26957       int hash = 1;
26958       if (_unknownFields != null) {
26959         hash ^= _unknownFields.GetHashCode();
26960       }
26961       return hash;
26962     }
26963 
26964     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()26965     public override string ToString() {
26966       return pb::JsonFormatter.ToDiagnosticString(this);
26967     }
26968 
26969     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)26970     public void WriteTo(pb::CodedOutputStream output) {
26971     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26972       output.WriteRawMessage(this);
26973     #else
26974       if (_unknownFields != null) {
26975         _unknownFields.WriteTo(output);
26976       }
26977     #endif
26978     }
26979 
26980     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
26981     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)26982     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
26983       if (_unknownFields != null) {
26984         _unknownFields.WriteTo(ref output);
26985       }
26986     }
26987     #endif
26988 
26989     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()26990     public int CalculateSize() {
26991       int size = 0;
26992       if (_unknownFields != null) {
26993         size += _unknownFields.CalculateSize();
26994       }
26995       return size;
26996     }
26997 
26998     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooClientMessage other)26999     public void MergeFrom(FooClientMessage other) {
27000       if (other == null) {
27001         return;
27002       }
27003       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
27004     }
27005 
27006     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)27007     public void MergeFrom(pb::CodedInputStream input) {
27008     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27009       input.ReadRawMessage(this);
27010     #else
27011       uint tag;
27012       while ((tag = input.ReadTag()) != 0) {
27013         switch(tag) {
27014           default:
27015             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
27016             break;
27017         }
27018       }
27019     #endif
27020     }
27021 
27022     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27023     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)27024     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
27025       uint tag;
27026       while ((tag = input.ReadTag()) != 0) {
27027         switch(tag) {
27028           default:
27029             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
27030             break;
27031         }
27032       }
27033     }
27034     #endif
27035 
27036   }
27037 
27038   public sealed partial class FooServerMessage : pb::IMessage<FooServerMessage>
27039   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27040       , pb::IBufferMessage
27041   #endif
27042   {
27043     private static readonly pb::MessageParser<FooServerMessage> _parser = new pb::MessageParser<FooServerMessage>(() => new FooServerMessage());
27044     private pb::UnknownFieldSet _unknownFields;
27045     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27046     public static pb::MessageParser<FooServerMessage> Parser { get { return _parser; } }
27047 
27048     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27049     public static pbr::MessageDescriptor Descriptor {
27050       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[59]; }
27051     }
27052 
27053     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27054     pbr::MessageDescriptor pb::IMessage.Descriptor {
27055       get { return Descriptor; }
27056     }
27057 
27058     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooServerMessage()27059     public FooServerMessage() {
27060       OnConstruction();
27061     }
27062 
OnConstruction()27063     partial void OnConstruction();
27064 
27065     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
FooServerMessage(FooServerMessage other)27066     public FooServerMessage(FooServerMessage other) : this() {
27067       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
27068     }
27069 
27070     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()27071     public FooServerMessage Clone() {
27072       return new FooServerMessage(this);
27073     }
27074 
27075     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)27076     public override bool Equals(object other) {
27077       return Equals(other as FooServerMessage);
27078     }
27079 
27080     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(FooServerMessage other)27081     public bool Equals(FooServerMessage other) {
27082       if (ReferenceEquals(other, null)) {
27083         return false;
27084       }
27085       if (ReferenceEquals(other, this)) {
27086         return true;
27087       }
27088       return Equals(_unknownFields, other._unknownFields);
27089     }
27090 
27091     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()27092     public override int GetHashCode() {
27093       int hash = 1;
27094       if (_unknownFields != null) {
27095         hash ^= _unknownFields.GetHashCode();
27096       }
27097       return hash;
27098     }
27099 
27100     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()27101     public override string ToString() {
27102       return pb::JsonFormatter.ToDiagnosticString(this);
27103     }
27104 
27105     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)27106     public void WriteTo(pb::CodedOutputStream output) {
27107     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27108       output.WriteRawMessage(this);
27109     #else
27110       if (_unknownFields != null) {
27111         _unknownFields.WriteTo(output);
27112       }
27113     #endif
27114     }
27115 
27116     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27117     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)27118     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
27119       if (_unknownFields != null) {
27120         _unknownFields.WriteTo(ref output);
27121       }
27122     }
27123     #endif
27124 
27125     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()27126     public int CalculateSize() {
27127       int size = 0;
27128       if (_unknownFields != null) {
27129         size += _unknownFields.CalculateSize();
27130       }
27131       return size;
27132     }
27133 
27134     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(FooServerMessage other)27135     public void MergeFrom(FooServerMessage other) {
27136       if (other == null) {
27137         return;
27138       }
27139       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
27140     }
27141 
27142     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)27143     public void MergeFrom(pb::CodedInputStream input) {
27144     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27145       input.ReadRawMessage(this);
27146     #else
27147       uint tag;
27148       while ((tag = input.ReadTag()) != 0) {
27149         switch(tag) {
27150           default:
27151             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
27152             break;
27153         }
27154       }
27155     #endif
27156     }
27157 
27158     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27159     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)27160     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
27161       uint tag;
27162       while ((tag = input.ReadTag()) != 0) {
27163         switch(tag) {
27164           default:
27165             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
27166             break;
27167         }
27168       }
27169     }
27170     #endif
27171 
27172   }
27173 
27174   public sealed partial class BarRequest : pb::IMessage<BarRequest>
27175   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27176       , pb::IBufferMessage
27177   #endif
27178   {
27179     private static readonly pb::MessageParser<BarRequest> _parser = new pb::MessageParser<BarRequest>(() => new BarRequest());
27180     private pb::UnknownFieldSet _unknownFields;
27181     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27182     public static pb::MessageParser<BarRequest> Parser { get { return _parser; } }
27183 
27184     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27185     public static pbr::MessageDescriptor Descriptor {
27186       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[60]; }
27187     }
27188 
27189     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27190     pbr::MessageDescriptor pb::IMessage.Descriptor {
27191       get { return Descriptor; }
27192     }
27193 
27194     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
BarRequest()27195     public BarRequest() {
27196       OnConstruction();
27197     }
27198 
OnConstruction()27199     partial void OnConstruction();
27200 
27201     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
BarRequest(BarRequest other)27202     public BarRequest(BarRequest other) : this() {
27203       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
27204     }
27205 
27206     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()27207     public BarRequest Clone() {
27208       return new BarRequest(this);
27209     }
27210 
27211     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)27212     public override bool Equals(object other) {
27213       return Equals(other as BarRequest);
27214     }
27215 
27216     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(BarRequest other)27217     public bool Equals(BarRequest other) {
27218       if (ReferenceEquals(other, null)) {
27219         return false;
27220       }
27221       if (ReferenceEquals(other, this)) {
27222         return true;
27223       }
27224       return Equals(_unknownFields, other._unknownFields);
27225     }
27226 
27227     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()27228     public override int GetHashCode() {
27229       int hash = 1;
27230       if (_unknownFields != null) {
27231         hash ^= _unknownFields.GetHashCode();
27232       }
27233       return hash;
27234     }
27235 
27236     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()27237     public override string ToString() {
27238       return pb::JsonFormatter.ToDiagnosticString(this);
27239     }
27240 
27241     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)27242     public void WriteTo(pb::CodedOutputStream output) {
27243     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27244       output.WriteRawMessage(this);
27245     #else
27246       if (_unknownFields != null) {
27247         _unknownFields.WriteTo(output);
27248       }
27249     #endif
27250     }
27251 
27252     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27253     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)27254     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
27255       if (_unknownFields != null) {
27256         _unknownFields.WriteTo(ref output);
27257       }
27258     }
27259     #endif
27260 
27261     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()27262     public int CalculateSize() {
27263       int size = 0;
27264       if (_unknownFields != null) {
27265         size += _unknownFields.CalculateSize();
27266       }
27267       return size;
27268     }
27269 
27270     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(BarRequest other)27271     public void MergeFrom(BarRequest other) {
27272       if (other == null) {
27273         return;
27274       }
27275       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
27276     }
27277 
27278     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)27279     public void MergeFrom(pb::CodedInputStream input) {
27280     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27281       input.ReadRawMessage(this);
27282     #else
27283       uint tag;
27284       while ((tag = input.ReadTag()) != 0) {
27285         switch(tag) {
27286           default:
27287             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
27288             break;
27289         }
27290       }
27291     #endif
27292     }
27293 
27294     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27295     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)27296     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
27297       uint tag;
27298       while ((tag = input.ReadTag()) != 0) {
27299         switch(tag) {
27300           default:
27301             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
27302             break;
27303         }
27304       }
27305     }
27306     #endif
27307 
27308   }
27309 
27310   public sealed partial class BarResponse : pb::IMessage<BarResponse>
27311   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27312       , pb::IBufferMessage
27313   #endif
27314   {
27315     private static readonly pb::MessageParser<BarResponse> _parser = new pb::MessageParser<BarResponse>(() => new BarResponse());
27316     private pb::UnknownFieldSet _unknownFields;
27317     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27318     public static pb::MessageParser<BarResponse> Parser { get { return _parser; } }
27319 
27320     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27321     public static pbr::MessageDescriptor Descriptor {
27322       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[61]; }
27323     }
27324 
27325     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27326     pbr::MessageDescriptor pb::IMessage.Descriptor {
27327       get { return Descriptor; }
27328     }
27329 
27330     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
BarResponse()27331     public BarResponse() {
27332       OnConstruction();
27333     }
27334 
OnConstruction()27335     partial void OnConstruction();
27336 
27337     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
BarResponse(BarResponse other)27338     public BarResponse(BarResponse other) : this() {
27339       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
27340     }
27341 
27342     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()27343     public BarResponse Clone() {
27344       return new BarResponse(this);
27345     }
27346 
27347     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)27348     public override bool Equals(object other) {
27349       return Equals(other as BarResponse);
27350     }
27351 
27352     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(BarResponse other)27353     public bool Equals(BarResponse other) {
27354       if (ReferenceEquals(other, null)) {
27355         return false;
27356       }
27357       if (ReferenceEquals(other, this)) {
27358         return true;
27359       }
27360       return Equals(_unknownFields, other._unknownFields);
27361     }
27362 
27363     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()27364     public override int GetHashCode() {
27365       int hash = 1;
27366       if (_unknownFields != null) {
27367         hash ^= _unknownFields.GetHashCode();
27368       }
27369       return hash;
27370     }
27371 
27372     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()27373     public override string ToString() {
27374       return pb::JsonFormatter.ToDiagnosticString(this);
27375     }
27376 
27377     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)27378     public void WriteTo(pb::CodedOutputStream output) {
27379     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27380       output.WriteRawMessage(this);
27381     #else
27382       if (_unknownFields != null) {
27383         _unknownFields.WriteTo(output);
27384       }
27385     #endif
27386     }
27387 
27388     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27389     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)27390     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
27391       if (_unknownFields != null) {
27392         _unknownFields.WriteTo(ref output);
27393       }
27394     }
27395     #endif
27396 
27397     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()27398     public int CalculateSize() {
27399       int size = 0;
27400       if (_unknownFields != null) {
27401         size += _unknownFields.CalculateSize();
27402       }
27403       return size;
27404     }
27405 
27406     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(BarResponse other)27407     public void MergeFrom(BarResponse other) {
27408       if (other == null) {
27409         return;
27410       }
27411       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
27412     }
27413 
27414     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)27415     public void MergeFrom(pb::CodedInputStream input) {
27416     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27417       input.ReadRawMessage(this);
27418     #else
27419       uint tag;
27420       while ((tag = input.ReadTag()) != 0) {
27421         switch(tag) {
27422           default:
27423             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
27424             break;
27425         }
27426       }
27427     #endif
27428     }
27429 
27430     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27431     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)27432     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
27433       uint tag;
27434       while ((tag = input.ReadTag()) != 0) {
27435         switch(tag) {
27436           default:
27437             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
27438             break;
27439         }
27440       }
27441     }
27442     #endif
27443 
27444   }
27445 
27446   public sealed partial class TestJsonName : pb::IMessage<TestJsonName>
27447   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27448       , pb::IBufferMessage
27449   #endif
27450   {
27451     private static readonly pb::MessageParser<TestJsonName> _parser = new pb::MessageParser<TestJsonName>(() => new TestJsonName());
27452     private pb::UnknownFieldSet _unknownFields;
27453     private int _hasBits0;
27454     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27455     public static pb::MessageParser<TestJsonName> Parser { get { return _parser; } }
27456 
27457     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27458     public static pbr::MessageDescriptor Descriptor {
27459       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[62]; }
27460     }
27461 
27462     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27463     pbr::MessageDescriptor pb::IMessage.Descriptor {
27464       get { return Descriptor; }
27465     }
27466 
27467     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestJsonName()27468     public TestJsonName() {
27469       OnConstruction();
27470     }
27471 
OnConstruction()27472     partial void OnConstruction();
27473 
27474     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestJsonName(TestJsonName other)27475     public TestJsonName(TestJsonName other) : this() {
27476       _hasBits0 = other._hasBits0;
27477       fieldName1_ = other.fieldName1_;
27478       fieldName2_ = other.fieldName2_;
27479       fieldName3_ = other.fieldName3_;
27480       FieldName4_ = other.FieldName4_;
27481       fIELDNAME5_ = other.fIELDNAME5_;
27482       fieldName6_ = other.fieldName6_;
27483       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
27484     }
27485 
27486     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()27487     public TestJsonName Clone() {
27488       return new TestJsonName(this);
27489     }
27490 
27491     /// <summary>Field number for the "field_name1" field.</summary>
27492     public const int FieldName1FieldNumber = 1;
27493     private readonly static int FieldName1DefaultValue = 0;
27494 
27495     private int fieldName1_;
27496     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27497     public int FieldName1 {
27498       get { if ((_hasBits0 & 1) != 0) { return fieldName1_; } else { return FieldName1DefaultValue; } }
27499       set {
27500         _hasBits0 |= 1;
27501         fieldName1_ = value;
27502       }
27503     }
27504     /// <summary>Gets whether the "field_name1" field is set</summary>
27505     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27506     public bool HasFieldName1 {
27507       get { return (_hasBits0 & 1) != 0; }
27508     }
27509     /// <summary>Clears the value of the "field_name1" field</summary>
27510     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFieldName1()27511     public void ClearFieldName1() {
27512       _hasBits0 &= ~1;
27513     }
27514 
27515     /// <summary>Field number for the "fieldName2" field.</summary>
27516     public const int FieldName2FieldNumber = 2;
27517     private readonly static int FieldName2DefaultValue = 0;
27518 
27519     private int fieldName2_;
27520     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27521     public int FieldName2 {
27522       get { if ((_hasBits0 & 2) != 0) { return fieldName2_; } else { return FieldName2DefaultValue; } }
27523       set {
27524         _hasBits0 |= 2;
27525         fieldName2_ = value;
27526       }
27527     }
27528     /// <summary>Gets whether the "fieldName2" field is set</summary>
27529     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27530     public bool HasFieldName2 {
27531       get { return (_hasBits0 & 2) != 0; }
27532     }
27533     /// <summary>Clears the value of the "fieldName2" field</summary>
27534     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFieldName2()27535     public void ClearFieldName2() {
27536       _hasBits0 &= ~2;
27537     }
27538 
27539     /// <summary>Field number for the "FieldName3" field.</summary>
27540     public const int FieldName3FieldNumber = 3;
27541     private readonly static int FieldName3DefaultValue = 0;
27542 
27543     private int fieldName3_;
27544     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27545     public int FieldName3 {
27546       get { if ((_hasBits0 & 4) != 0) { return fieldName3_; } else { return FieldName3DefaultValue; } }
27547       set {
27548         _hasBits0 |= 4;
27549         fieldName3_ = value;
27550       }
27551     }
27552     /// <summary>Gets whether the "FieldName3" field is set</summary>
27553     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27554     public bool HasFieldName3 {
27555       get { return (_hasBits0 & 4) != 0; }
27556     }
27557     /// <summary>Clears the value of the "FieldName3" field</summary>
27558     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFieldName3()27559     public void ClearFieldName3() {
27560       _hasBits0 &= ~4;
27561     }
27562 
27563     /// <summary>Field number for the "_field_name4" field.</summary>
27564     public const int FieldName4FieldNumber = 4;
27565     private readonly static int FieldName4DefaultValue = 0;
27566 
27567     private int FieldName4_;
27568     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27569     public int FieldName4 {
27570       get { if ((_hasBits0 & 8) != 0) { return FieldName4_; } else { return FieldName4DefaultValue; } }
27571       set {
27572         _hasBits0 |= 8;
27573         FieldName4_ = value;
27574       }
27575     }
27576     /// <summary>Gets whether the "_field_name4" field is set</summary>
27577     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27578     public bool HasFieldName4 {
27579       get { return (_hasBits0 & 8) != 0; }
27580     }
27581     /// <summary>Clears the value of the "_field_name4" field</summary>
27582     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFieldName4()27583     public void ClearFieldName4() {
27584       _hasBits0 &= ~8;
27585     }
27586 
27587     /// <summary>Field number for the "FIELD_NAME5" field.</summary>
27588     public const int FIELDNAME5FieldNumber = 5;
27589     private readonly static int FIELDNAME5DefaultValue = 0;
27590 
27591     private int fIELDNAME5_;
27592     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27593     public int FIELDNAME5 {
27594       get { if ((_hasBits0 & 16) != 0) { return fIELDNAME5_; } else { return FIELDNAME5DefaultValue; } }
27595       set {
27596         _hasBits0 |= 16;
27597         fIELDNAME5_ = value;
27598       }
27599     }
27600     /// <summary>Gets whether the "FIELD_NAME5" field is set</summary>
27601     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27602     public bool HasFIELDNAME5 {
27603       get { return (_hasBits0 & 16) != 0; }
27604     }
27605     /// <summary>Clears the value of the "FIELD_NAME5" field</summary>
27606     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFIELDNAME5()27607     public void ClearFIELDNAME5() {
27608       _hasBits0 &= ~16;
27609     }
27610 
27611     /// <summary>Field number for the "field_name6" field.</summary>
27612     public const int FieldName6FieldNumber = 6;
27613     private readonly static int FieldName6DefaultValue = 0;
27614 
27615     private int fieldName6_;
27616     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27617     public int FieldName6 {
27618       get { if ((_hasBits0 & 32) != 0) { return fieldName6_; } else { return FieldName6DefaultValue; } }
27619       set {
27620         _hasBits0 |= 32;
27621         fieldName6_ = value;
27622       }
27623     }
27624     /// <summary>Gets whether the "field_name6" field is set</summary>
27625     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27626     public bool HasFieldName6 {
27627       get { return (_hasBits0 & 32) != 0; }
27628     }
27629     /// <summary>Clears the value of the "field_name6" field</summary>
27630     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFieldName6()27631     public void ClearFieldName6() {
27632       _hasBits0 &= ~32;
27633     }
27634 
27635     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)27636     public override bool Equals(object other) {
27637       return Equals(other as TestJsonName);
27638     }
27639 
27640     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestJsonName other)27641     public bool Equals(TestJsonName other) {
27642       if (ReferenceEquals(other, null)) {
27643         return false;
27644       }
27645       if (ReferenceEquals(other, this)) {
27646         return true;
27647       }
27648       if (FieldName1 != other.FieldName1) return false;
27649       if (FieldName2 != other.FieldName2) return false;
27650       if (FieldName3 != other.FieldName3) return false;
27651       if (FieldName4 != other.FieldName4) return false;
27652       if (FIELDNAME5 != other.FIELDNAME5) return false;
27653       if (FieldName6 != other.FieldName6) return false;
27654       return Equals(_unknownFields, other._unknownFields);
27655     }
27656 
27657     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()27658     public override int GetHashCode() {
27659       int hash = 1;
27660       if (HasFieldName1) hash ^= FieldName1.GetHashCode();
27661       if (HasFieldName2) hash ^= FieldName2.GetHashCode();
27662       if (HasFieldName3) hash ^= FieldName3.GetHashCode();
27663       if (HasFieldName4) hash ^= FieldName4.GetHashCode();
27664       if (HasFIELDNAME5) hash ^= FIELDNAME5.GetHashCode();
27665       if (HasFieldName6) hash ^= FieldName6.GetHashCode();
27666       if (_unknownFields != null) {
27667         hash ^= _unknownFields.GetHashCode();
27668       }
27669       return hash;
27670     }
27671 
27672     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()27673     public override string ToString() {
27674       return pb::JsonFormatter.ToDiagnosticString(this);
27675     }
27676 
27677     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)27678     public void WriteTo(pb::CodedOutputStream output) {
27679     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27680       output.WriteRawMessage(this);
27681     #else
27682       if (HasFieldName1) {
27683         output.WriteRawTag(8);
27684         output.WriteInt32(FieldName1);
27685       }
27686       if (HasFieldName2) {
27687         output.WriteRawTag(16);
27688         output.WriteInt32(FieldName2);
27689       }
27690       if (HasFieldName3) {
27691         output.WriteRawTag(24);
27692         output.WriteInt32(FieldName3);
27693       }
27694       if (HasFieldName4) {
27695         output.WriteRawTag(32);
27696         output.WriteInt32(FieldName4);
27697       }
27698       if (HasFIELDNAME5) {
27699         output.WriteRawTag(40);
27700         output.WriteInt32(FIELDNAME5);
27701       }
27702       if (HasFieldName6) {
27703         output.WriteRawTag(48);
27704         output.WriteInt32(FieldName6);
27705       }
27706       if (_unknownFields != null) {
27707         _unknownFields.WriteTo(output);
27708       }
27709     #endif
27710     }
27711 
27712     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27713     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)27714     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
27715       if (HasFieldName1) {
27716         output.WriteRawTag(8);
27717         output.WriteInt32(FieldName1);
27718       }
27719       if (HasFieldName2) {
27720         output.WriteRawTag(16);
27721         output.WriteInt32(FieldName2);
27722       }
27723       if (HasFieldName3) {
27724         output.WriteRawTag(24);
27725         output.WriteInt32(FieldName3);
27726       }
27727       if (HasFieldName4) {
27728         output.WriteRawTag(32);
27729         output.WriteInt32(FieldName4);
27730       }
27731       if (HasFIELDNAME5) {
27732         output.WriteRawTag(40);
27733         output.WriteInt32(FIELDNAME5);
27734       }
27735       if (HasFieldName6) {
27736         output.WriteRawTag(48);
27737         output.WriteInt32(FieldName6);
27738       }
27739       if (_unknownFields != null) {
27740         _unknownFields.WriteTo(ref output);
27741       }
27742     }
27743     #endif
27744 
27745     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()27746     public int CalculateSize() {
27747       int size = 0;
27748       if (HasFieldName1) {
27749         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FieldName1);
27750       }
27751       if (HasFieldName2) {
27752         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FieldName2);
27753       }
27754       if (HasFieldName3) {
27755         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FieldName3);
27756       }
27757       if (HasFieldName4) {
27758         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FieldName4);
27759       }
27760       if (HasFIELDNAME5) {
27761         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FIELDNAME5);
27762       }
27763       if (HasFieldName6) {
27764         size += 1 + pb::CodedOutputStream.ComputeInt32Size(FieldName6);
27765       }
27766       if (_unknownFields != null) {
27767         size += _unknownFields.CalculateSize();
27768       }
27769       return size;
27770     }
27771 
27772     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestJsonName other)27773     public void MergeFrom(TestJsonName other) {
27774       if (other == null) {
27775         return;
27776       }
27777       if (other.HasFieldName1) {
27778         FieldName1 = other.FieldName1;
27779       }
27780       if (other.HasFieldName2) {
27781         FieldName2 = other.FieldName2;
27782       }
27783       if (other.HasFieldName3) {
27784         FieldName3 = other.FieldName3;
27785       }
27786       if (other.HasFieldName4) {
27787         FieldName4 = other.FieldName4;
27788       }
27789       if (other.HasFIELDNAME5) {
27790         FIELDNAME5 = other.FIELDNAME5;
27791       }
27792       if (other.HasFieldName6) {
27793         FieldName6 = other.FieldName6;
27794       }
27795       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
27796     }
27797 
27798     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)27799     public void MergeFrom(pb::CodedInputStream input) {
27800     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27801       input.ReadRawMessage(this);
27802     #else
27803       uint tag;
27804       while ((tag = input.ReadTag()) != 0) {
27805         switch(tag) {
27806           default:
27807             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
27808             break;
27809           case 8: {
27810             FieldName1 = input.ReadInt32();
27811             break;
27812           }
27813           case 16: {
27814             FieldName2 = input.ReadInt32();
27815             break;
27816           }
27817           case 24: {
27818             FieldName3 = input.ReadInt32();
27819             break;
27820           }
27821           case 32: {
27822             FieldName4 = input.ReadInt32();
27823             break;
27824           }
27825           case 40: {
27826             FIELDNAME5 = input.ReadInt32();
27827             break;
27828           }
27829           case 48: {
27830             FieldName6 = input.ReadInt32();
27831             break;
27832           }
27833         }
27834       }
27835     #endif
27836     }
27837 
27838     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27839     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)27840     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
27841       uint tag;
27842       while ((tag = input.ReadTag()) != 0) {
27843         switch(tag) {
27844           default:
27845             _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
27846             break;
27847           case 8: {
27848             FieldName1 = input.ReadInt32();
27849             break;
27850           }
27851           case 16: {
27852             FieldName2 = input.ReadInt32();
27853             break;
27854           }
27855           case 24: {
27856             FieldName3 = input.ReadInt32();
27857             break;
27858           }
27859           case 32: {
27860             FieldName4 = input.ReadInt32();
27861             break;
27862           }
27863           case 40: {
27864             FIELDNAME5 = input.ReadInt32();
27865             break;
27866           }
27867           case 48: {
27868             FieldName6 = input.ReadInt32();
27869             break;
27870           }
27871         }
27872       }
27873     }
27874     #endif
27875 
27876   }
27877 
27878   public sealed partial class TestHugeFieldNumbers : pb::IExtendableMessage<TestHugeFieldNumbers>
27879   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
27880       , pb::IBufferMessage
27881   #endif
27882   {
27883     private static readonly pb::MessageParser<TestHugeFieldNumbers> _parser = new pb::MessageParser<TestHugeFieldNumbers>(() => new TestHugeFieldNumbers());
27884     private pb::UnknownFieldSet _unknownFields;
27885     private pb::ExtensionSet<TestHugeFieldNumbers> _extensions;
27886     private pb::ExtensionSet<TestHugeFieldNumbers> _Extensions { get { return _extensions; } }
27887     private int _hasBits0;
27888     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27889     public static pb::MessageParser<TestHugeFieldNumbers> Parser { get { return _parser; } }
27890 
27891     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27892     public static pbr::MessageDescriptor Descriptor {
27893       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[63]; }
27894     }
27895 
27896     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27897     pbr::MessageDescriptor pb::IMessage.Descriptor {
27898       get { return Descriptor; }
27899     }
27900 
27901     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestHugeFieldNumbers()27902     public TestHugeFieldNumbers() {
27903       OnConstruction();
27904     }
27905 
OnConstruction()27906     partial void OnConstruction();
27907 
27908     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestHugeFieldNumbers(TestHugeFieldNumbers other)27909     public TestHugeFieldNumbers(TestHugeFieldNumbers other) : this() {
27910       _hasBits0 = other._hasBits0;
27911       optionalInt32_ = other.optionalInt32_;
27912       fixed32_ = other.fixed32_;
27913       repeatedInt32_ = other.repeatedInt32_.Clone();
27914       packedInt32_ = other.packedInt32_.Clone();
27915       optionalEnum_ = other.optionalEnum_;
27916       optionalString_ = other.optionalString_;
27917       optionalBytes_ = other.optionalBytes_;
27918       optionalMessage_ = other.optionalMessage_ != null ? other.optionalMessage_.Clone() : null;
27919       optionalGroup_ = other.HasOptionalGroup ? other.optionalGroup_.Clone() : null;
27920       stringStringMap_ = other.stringStringMap_.Clone();
27921       switch (other.OneofFieldCase) {
27922         case OneofFieldOneofCase.OneofUint32:
27923           OneofUint32 = other.OneofUint32;
27924           break;
27925         case OneofFieldOneofCase.OneofTestAllTypes:
27926           OneofTestAllTypes = other.OneofTestAllTypes.Clone();
27927           break;
27928         case OneofFieldOneofCase.OneofString:
27929           OneofString = other.OneofString;
27930           break;
27931         case OneofFieldOneofCase.OneofBytes:
27932           OneofBytes = other.OneofBytes;
27933           break;
27934       }
27935 
27936       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
27937       _extensions = pb::ExtensionSet.Clone(other._extensions);
27938     }
27939 
27940     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()27941     public TestHugeFieldNumbers Clone() {
27942       return new TestHugeFieldNumbers(this);
27943     }
27944 
27945     /// <summary>Field number for the "optional_int32" field.</summary>
27946     public const int OptionalInt32FieldNumber = 536870000;
27947     private readonly static int OptionalInt32DefaultValue = 0;
27948 
27949     private int optionalInt32_;
27950     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27951     public int OptionalInt32 {
27952       get { if ((_hasBits0 & 1) != 0) { return optionalInt32_; } else { return OptionalInt32DefaultValue; } }
27953       set {
27954         _hasBits0 |= 1;
27955         optionalInt32_ = value;
27956       }
27957     }
27958     /// <summary>Gets whether the "optional_int32" field is set</summary>
27959     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27960     public bool HasOptionalInt32 {
27961       get { return (_hasBits0 & 1) != 0; }
27962     }
27963     /// <summary>Clears the value of the "optional_int32" field</summary>
27964     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalInt32()27965     public void ClearOptionalInt32() {
27966       _hasBits0 &= ~1;
27967     }
27968 
27969     /// <summary>Field number for the "fixed_32" field.</summary>
27970     public const int Fixed32FieldNumber = 536870001;
27971     private readonly static int Fixed32DefaultValue = 0;
27972 
27973     private int fixed32_;
27974     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27975     public int Fixed32 {
27976       get { if ((_hasBits0 & 2) != 0) { return fixed32_; } else { return Fixed32DefaultValue; } }
27977       set {
27978         _hasBits0 |= 2;
27979         fixed32_ = value;
27980       }
27981     }
27982     /// <summary>Gets whether the "fixed_32" field is set</summary>
27983     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27984     public bool HasFixed32 {
27985       get { return (_hasBits0 & 2) != 0; }
27986     }
27987     /// <summary>Clears the value of the "fixed_32" field</summary>
27988     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearFixed32()27989     public void ClearFixed32() {
27990       _hasBits0 &= ~2;
27991     }
27992 
27993     /// <summary>Field number for the "repeated_int32" field.</summary>
27994     public const int RepeatedInt32FieldNumber = 536870002;
27995     private static readonly pb::FieldCodec<int> _repeated_repeatedInt32_codec
27996         = pb::FieldCodec.ForInt32(4294960016);
27997     private readonly pbc::RepeatedField<int> repeatedInt32_ = new pbc::RepeatedField<int>();
27998     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
27999     public pbc::RepeatedField<int> RepeatedInt32 {
28000       get { return repeatedInt32_; }
28001     }
28002 
28003     /// <summary>Field number for the "packed_int32" field.</summary>
28004     public const int PackedInt32FieldNumber = 536870003;
28005     private static readonly pb::FieldCodec<int> _repeated_packedInt32_codec
28006         = pb::FieldCodec.ForInt32(4294960026);
28007     private readonly pbc::RepeatedField<int> packedInt32_ = new pbc::RepeatedField<int>();
28008     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28009     public pbc::RepeatedField<int> PackedInt32 {
28010       get { return packedInt32_; }
28011     }
28012 
28013     /// <summary>Field number for the "optional_enum" field.</summary>
28014     public const int OptionalEnumFieldNumber = 536870004;
28015     private readonly static global::Google.Protobuf.TestProtos.Proto2.ForeignEnum OptionalEnumDefaultValue = global::Google.Protobuf.TestProtos.Proto2.ForeignEnum.ForeignFoo;
28016 
28017     private global::Google.Protobuf.TestProtos.Proto2.ForeignEnum optionalEnum_;
28018     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28019     public global::Google.Protobuf.TestProtos.Proto2.ForeignEnum OptionalEnum {
28020       get { if ((_hasBits0 & 4) != 0) { return optionalEnum_; } else { return OptionalEnumDefaultValue; } }
28021       set {
28022         _hasBits0 |= 4;
28023         optionalEnum_ = value;
28024       }
28025     }
28026     /// <summary>Gets whether the "optional_enum" field is set</summary>
28027     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28028     public bool HasOptionalEnum {
28029       get { return (_hasBits0 & 4) != 0; }
28030     }
28031     /// <summary>Clears the value of the "optional_enum" field</summary>
28032     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalEnum()28033     public void ClearOptionalEnum() {
28034       _hasBits0 &= ~4;
28035     }
28036 
28037     /// <summary>Field number for the "optional_string" field.</summary>
28038     public const int OptionalStringFieldNumber = 536870005;
28039     private readonly static string OptionalStringDefaultValue = "";
28040 
28041     private string optionalString_;
28042     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28043     public string OptionalString {
28044       get { return optionalString_ ?? OptionalStringDefaultValue; }
28045       set {
28046         optionalString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
28047       }
28048     }
28049     /// <summary>Gets whether the "optional_string" field is set</summary>
28050     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28051     public bool HasOptionalString {
28052       get { return optionalString_ != null; }
28053     }
28054     /// <summary>Clears the value of the "optional_string" field</summary>
28055     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalString()28056     public void ClearOptionalString() {
28057       optionalString_ = null;
28058     }
28059 
28060     /// <summary>Field number for the "optional_bytes" field.</summary>
28061     public const int OptionalBytesFieldNumber = 536870006;
28062     private readonly static pb::ByteString OptionalBytesDefaultValue = pb::ByteString.Empty;
28063 
28064     private pb::ByteString optionalBytes_;
28065     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28066     public pb::ByteString OptionalBytes {
28067       get { return optionalBytes_ ?? OptionalBytesDefaultValue; }
28068       set {
28069         optionalBytes_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
28070       }
28071     }
28072     /// <summary>Gets whether the "optional_bytes" field is set</summary>
28073     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28074     public bool HasOptionalBytes {
28075       get { return optionalBytes_ != null; }
28076     }
28077     /// <summary>Clears the value of the "optional_bytes" field</summary>
28078     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalBytes()28079     public void ClearOptionalBytes() {
28080       optionalBytes_ = null;
28081     }
28082 
28083     /// <summary>Field number for the "optional_message" field.</summary>
28084     public const int OptionalMessageFieldNumber = 536870007;
28085     private global::Google.Protobuf.TestProtos.Proto2.ForeignMessage optionalMessage_;
28086     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28087     public global::Google.Protobuf.TestProtos.Proto2.ForeignMessage OptionalMessage {
28088       get { return optionalMessage_; }
28089       set {
28090         optionalMessage_ = value;
28091       }
28092     }
28093 
28094     /// <summary>Field number for the "optionalgroup" field.</summary>
28095     public const int OptionalGroupFieldNumber = 536870008;
28096     private global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup optionalGroup_;
28097     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28098     public global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup OptionalGroup {
28099       get { return optionalGroup_; }
28100       set {
28101         optionalGroup_ = value;
28102       }
28103     }
28104     /// <summary>Gets whether the optionalgroup field is set</summary>
28105     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28106     public bool HasOptionalGroup {
28107       get { return optionalGroup_ != null; }
28108     }
28109     /// <summary>Clears the value of the optionalgroup field</summary>
28110     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOptionalGroup()28111     public void ClearOptionalGroup() {
28112       optionalGroup_ = null;
28113     }
28114 
28115     /// <summary>Field number for the "string_string_map" field.</summary>
28116     public const int StringStringMapFieldNumber = 536870010;
28117     private static readonly pbc::MapField<string, string>.Codec _map_stringStringMap_codec
28118         = new pbc::MapField<string, string>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 4294960082);
28119     private readonly pbc::MapField<string, string> stringStringMap_ = new pbc::MapField<string, string>();
28120     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28121     public pbc::MapField<string, string> StringStringMap {
28122       get { return stringStringMap_; }
28123     }
28124 
28125     /// <summary>Field number for the "oneof_uint32" field.</summary>
28126     public const int OneofUint32FieldNumber = 536870011;
28127     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28128     public uint OneofUint32 {
28129       get { return HasOneofUint32 ? (uint) oneofField_ : 0; }
28130       set {
28131         oneofField_ = value;
28132         oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
28133       }
28134     }
28135     /// <summary>Gets whether the "oneof_uint32" field is set</summary>
28136     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28137     public bool HasOneofUint32 {
28138       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
28139     }
28140     /// <summary> Clears the value of the oneof if it's currently set to "oneof_uint32" </summary>
28141     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofUint32()28142     public void ClearOneofUint32() {
28143       if (HasOneofUint32) {
28144         ClearOneofField();
28145       }
28146     }
28147 
28148     /// <summary>Field number for the "oneof_test_all_types" field.</summary>
28149     public const int OneofTestAllTypesFieldNumber = 536870012;
28150     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28151     public global::Google.Protobuf.TestProtos.Proto2.TestAllTypes OneofTestAllTypes {
28152       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes ? (global::Google.Protobuf.TestProtos.Proto2.TestAllTypes) oneofField_ : null; }
28153       set {
28154         oneofField_ = value;
28155         oneofFieldCase_ = value == null ? OneofFieldOneofCase.None : OneofFieldOneofCase.OneofTestAllTypes;
28156       }
28157     }
28158 
28159     /// <summary>Field number for the "oneof_string" field.</summary>
28160     public const int OneofStringFieldNumber = 536870013;
28161     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28162     public string OneofString {
28163       get { return HasOneofString ? (string) oneofField_ : ""; }
28164       set {
28165         oneofField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
28166         oneofFieldCase_ = OneofFieldOneofCase.OneofString;
28167       }
28168     }
28169     /// <summary>Gets whether the "oneof_string" field is set</summary>
28170     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28171     public bool HasOneofString {
28172       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
28173     }
28174     /// <summary> Clears the value of the oneof if it's currently set to "oneof_string" </summary>
28175     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofString()28176     public void ClearOneofString() {
28177       if (HasOneofString) {
28178         ClearOneofField();
28179       }
28180     }
28181 
28182     /// <summary>Field number for the "oneof_bytes" field.</summary>
28183     public const int OneofBytesFieldNumber = 536870014;
28184     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28185     public pb::ByteString OneofBytes {
28186       get { return HasOneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
28187       set {
28188         oneofField_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
28189         oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
28190       }
28191     }
28192     /// <summary>Gets whether the "oneof_bytes" field is set</summary>
28193     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28194     public bool HasOneofBytes {
28195       get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
28196     }
28197     /// <summary> Clears the value of the oneof if it's currently set to "oneof_bytes" </summary>
28198     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofBytes()28199     public void ClearOneofBytes() {
28200       if (HasOneofBytes) {
28201         ClearOneofField();
28202       }
28203     }
28204 
28205     private object oneofField_;
28206     /// <summary>Enum of possible cases for the "oneof_field" oneof.</summary>
28207     public enum OneofFieldOneofCase {
28208       None = 0,
28209       OneofUint32 = 536870011,
28210       OneofTestAllTypes = 536870012,
28211       OneofString = 536870013,
28212       OneofBytes = 536870014,
28213     }
28214     private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
28215     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28216     public OneofFieldOneofCase OneofFieldCase {
28217       get { return oneofFieldCase_; }
28218     }
28219 
28220     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearOneofField()28221     public void ClearOneofField() {
28222       oneofFieldCase_ = OneofFieldOneofCase.None;
28223       oneofField_ = null;
28224     }
28225 
28226     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)28227     public override bool Equals(object other) {
28228       return Equals(other as TestHugeFieldNumbers);
28229     }
28230 
28231     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestHugeFieldNumbers other)28232     public bool Equals(TestHugeFieldNumbers other) {
28233       if (ReferenceEquals(other, null)) {
28234         return false;
28235       }
28236       if (ReferenceEquals(other, this)) {
28237         return true;
28238       }
28239       if (OptionalInt32 != other.OptionalInt32) return false;
28240       if (Fixed32 != other.Fixed32) return false;
28241       if(!repeatedInt32_.Equals(other.repeatedInt32_)) return false;
28242       if(!packedInt32_.Equals(other.packedInt32_)) return false;
28243       if (OptionalEnum != other.OptionalEnum) return false;
28244       if (OptionalString != other.OptionalString) return false;
28245       if (OptionalBytes != other.OptionalBytes) return false;
28246       if (!object.Equals(OptionalMessage, other.OptionalMessage)) return false;
28247       if (!object.Equals(OptionalGroup, other.OptionalGroup)) return false;
28248       if (!StringStringMap.Equals(other.StringStringMap)) return false;
28249       if (OneofUint32 != other.OneofUint32) return false;
28250       if (!object.Equals(OneofTestAllTypes, other.OneofTestAllTypes)) return false;
28251       if (OneofString != other.OneofString) return false;
28252       if (OneofBytes != other.OneofBytes) return false;
28253       if (OneofFieldCase != other.OneofFieldCase) return false;
28254       if (!Equals(_extensions, other._extensions)) {
28255         return false;
28256       }
28257       return Equals(_unknownFields, other._unknownFields);
28258     }
28259 
28260     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()28261     public override int GetHashCode() {
28262       int hash = 1;
28263       if (HasOptionalInt32) hash ^= OptionalInt32.GetHashCode();
28264       if (HasFixed32) hash ^= Fixed32.GetHashCode();
28265       hash ^= repeatedInt32_.GetHashCode();
28266       hash ^= packedInt32_.GetHashCode();
28267       if (HasOptionalEnum) hash ^= OptionalEnum.GetHashCode();
28268       if (HasOptionalString) hash ^= OptionalString.GetHashCode();
28269       if (HasOptionalBytes) hash ^= OptionalBytes.GetHashCode();
28270       if (optionalMessage_ != null) hash ^= OptionalMessage.GetHashCode();
28271       if (HasOptionalGroup) hash ^= OptionalGroup.GetHashCode();
28272       hash ^= StringStringMap.GetHashCode();
28273       if (HasOneofUint32) hash ^= OneofUint32.GetHashCode();
28274       if (oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes) hash ^= OneofTestAllTypes.GetHashCode();
28275       if (HasOneofString) hash ^= OneofString.GetHashCode();
28276       if (HasOneofBytes) hash ^= OneofBytes.GetHashCode();
28277       hash ^= (int) oneofFieldCase_;
28278       if (_extensions != null) {
28279         hash ^= _extensions.GetHashCode();
28280       }
28281       if (_unknownFields != null) {
28282         hash ^= _unknownFields.GetHashCode();
28283       }
28284       return hash;
28285     }
28286 
28287     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()28288     public override string ToString() {
28289       return pb::JsonFormatter.ToDiagnosticString(this);
28290     }
28291 
28292     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)28293     public void WriteTo(pb::CodedOutputStream output) {
28294     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28295       output.WriteRawMessage(this);
28296     #else
28297       if (HasOptionalInt32) {
28298         output.WriteRawTag(128, 199, 255, 255, 15);
28299         output.WriteInt32(OptionalInt32);
28300       }
28301       if (HasFixed32) {
28302         output.WriteRawTag(136, 199, 255, 255, 15);
28303         output.WriteInt32(Fixed32);
28304       }
28305       repeatedInt32_.WriteTo(output, _repeated_repeatedInt32_codec);
28306       packedInt32_.WriteTo(output, _repeated_packedInt32_codec);
28307       if (HasOptionalEnum) {
28308         output.WriteRawTag(160, 199, 255, 255, 15);
28309         output.WriteEnum((int) OptionalEnum);
28310       }
28311       if (HasOptionalString) {
28312         output.WriteRawTag(170, 199, 255, 255, 15);
28313         output.WriteString(OptionalString);
28314       }
28315       if (HasOptionalBytes) {
28316         output.WriteRawTag(178, 199, 255, 255, 15);
28317         output.WriteBytes(OptionalBytes);
28318       }
28319       if (optionalMessage_ != null) {
28320         output.WriteRawTag(186, 199, 255, 255, 15);
28321         output.WriteMessage(OptionalMessage);
28322       }
28323       if (HasOptionalGroup) {
28324         output.WriteRawTag(195, 199, 255, 255, 15);
28325         output.WriteGroup(OptionalGroup);
28326         output.WriteRawTag(196, 199, 255, 255, 15);
28327       }
28328       stringStringMap_.WriteTo(output, _map_stringStringMap_codec);
28329       if (HasOneofUint32) {
28330         output.WriteRawTag(216, 199, 255, 255, 15);
28331         output.WriteUInt32(OneofUint32);
28332       }
28333       if (oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes) {
28334         output.WriteRawTag(226, 199, 255, 255, 15);
28335         output.WriteMessage(OneofTestAllTypes);
28336       }
28337       if (HasOneofString) {
28338         output.WriteRawTag(234, 199, 255, 255, 15);
28339         output.WriteString(OneofString);
28340       }
28341       if (HasOneofBytes) {
28342         output.WriteRawTag(242, 199, 255, 255, 15);
28343         output.WriteBytes(OneofBytes);
28344       }
28345       if (_extensions != null) {
28346         _extensions.WriteTo(output);
28347       }
28348       if (_unknownFields != null) {
28349         _unknownFields.WriteTo(output);
28350       }
28351     #endif
28352     }
28353 
28354     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28355     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)28356     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
28357       if (HasOptionalInt32) {
28358         output.WriteRawTag(128, 199, 255, 255, 15);
28359         output.WriteInt32(OptionalInt32);
28360       }
28361       if (HasFixed32) {
28362         output.WriteRawTag(136, 199, 255, 255, 15);
28363         output.WriteInt32(Fixed32);
28364       }
28365       repeatedInt32_.WriteTo(ref output, _repeated_repeatedInt32_codec);
28366       packedInt32_.WriteTo(ref output, _repeated_packedInt32_codec);
28367       if (HasOptionalEnum) {
28368         output.WriteRawTag(160, 199, 255, 255, 15);
28369         output.WriteEnum((int) OptionalEnum);
28370       }
28371       if (HasOptionalString) {
28372         output.WriteRawTag(170, 199, 255, 255, 15);
28373         output.WriteString(OptionalString);
28374       }
28375       if (HasOptionalBytes) {
28376         output.WriteRawTag(178, 199, 255, 255, 15);
28377         output.WriteBytes(OptionalBytes);
28378       }
28379       if (optionalMessage_ != null) {
28380         output.WriteRawTag(186, 199, 255, 255, 15);
28381         output.WriteMessage(OptionalMessage);
28382       }
28383       if (HasOptionalGroup) {
28384         output.WriteRawTag(195, 199, 255, 255, 15);
28385         output.WriteGroup(OptionalGroup);
28386         output.WriteRawTag(196, 199, 255, 255, 15);
28387       }
28388       stringStringMap_.WriteTo(ref output, _map_stringStringMap_codec);
28389       if (HasOneofUint32) {
28390         output.WriteRawTag(216, 199, 255, 255, 15);
28391         output.WriteUInt32(OneofUint32);
28392       }
28393       if (oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes) {
28394         output.WriteRawTag(226, 199, 255, 255, 15);
28395         output.WriteMessage(OneofTestAllTypes);
28396       }
28397       if (HasOneofString) {
28398         output.WriteRawTag(234, 199, 255, 255, 15);
28399         output.WriteString(OneofString);
28400       }
28401       if (HasOneofBytes) {
28402         output.WriteRawTag(242, 199, 255, 255, 15);
28403         output.WriteBytes(OneofBytes);
28404       }
28405       if (_extensions != null) {
28406         _extensions.WriteTo(ref output);
28407       }
28408       if (_unknownFields != null) {
28409         _unknownFields.WriteTo(ref output);
28410       }
28411     }
28412     #endif
28413 
28414     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()28415     public int CalculateSize() {
28416       int size = 0;
28417       if (HasOptionalInt32) {
28418         size += 5 + pb::CodedOutputStream.ComputeInt32Size(OptionalInt32);
28419       }
28420       if (HasFixed32) {
28421         size += 5 + pb::CodedOutputStream.ComputeInt32Size(Fixed32);
28422       }
28423       size += repeatedInt32_.CalculateSize(_repeated_repeatedInt32_codec);
28424       size += packedInt32_.CalculateSize(_repeated_packedInt32_codec);
28425       if (HasOptionalEnum) {
28426         size += 5 + pb::CodedOutputStream.ComputeEnumSize((int) OptionalEnum);
28427       }
28428       if (HasOptionalString) {
28429         size += 5 + pb::CodedOutputStream.ComputeStringSize(OptionalString);
28430       }
28431       if (HasOptionalBytes) {
28432         size += 5 + pb::CodedOutputStream.ComputeBytesSize(OptionalBytes);
28433       }
28434       if (optionalMessage_ != null) {
28435         size += 5 + pb::CodedOutputStream.ComputeMessageSize(OptionalMessage);
28436       }
28437       if (HasOptionalGroup) {
28438         size += 10 + pb::CodedOutputStream.ComputeGroupSize(OptionalGroup);
28439       }
28440       size += stringStringMap_.CalculateSize(_map_stringStringMap_codec);
28441       if (HasOneofUint32) {
28442         size += 5 + pb::CodedOutputStream.ComputeUInt32Size(OneofUint32);
28443       }
28444       if (oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes) {
28445         size += 5 + pb::CodedOutputStream.ComputeMessageSize(OneofTestAllTypes);
28446       }
28447       if (HasOneofString) {
28448         size += 5 + pb::CodedOutputStream.ComputeStringSize(OneofString);
28449       }
28450       if (HasOneofBytes) {
28451         size += 5 + pb::CodedOutputStream.ComputeBytesSize(OneofBytes);
28452       }
28453       if (_extensions != null) {
28454         size += _extensions.CalculateSize();
28455       }
28456       if (_unknownFields != null) {
28457         size += _unknownFields.CalculateSize();
28458       }
28459       return size;
28460     }
28461 
28462     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestHugeFieldNumbers other)28463     public void MergeFrom(TestHugeFieldNumbers other) {
28464       if (other == null) {
28465         return;
28466       }
28467       if (other.HasOptionalInt32) {
28468         OptionalInt32 = other.OptionalInt32;
28469       }
28470       if (other.HasFixed32) {
28471         Fixed32 = other.Fixed32;
28472       }
28473       repeatedInt32_.Add(other.repeatedInt32_);
28474       packedInt32_.Add(other.packedInt32_);
28475       if (other.HasOptionalEnum) {
28476         OptionalEnum = other.OptionalEnum;
28477       }
28478       if (other.HasOptionalString) {
28479         OptionalString = other.OptionalString;
28480       }
28481       if (other.HasOptionalBytes) {
28482         OptionalBytes = other.OptionalBytes;
28483       }
28484       if (other.optionalMessage_ != null) {
28485         if (optionalMessage_ == null) {
28486           OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
28487         }
28488         OptionalMessage.MergeFrom(other.OptionalMessage);
28489       }
28490       if (other.HasOptionalGroup) {
28491         if (!HasOptionalGroup) {
28492           OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup();
28493         }
28494         OptionalGroup.MergeFrom(other.OptionalGroup);
28495       }
28496       stringStringMap_.Add(other.stringStringMap_);
28497       switch (other.OneofFieldCase) {
28498         case OneofFieldOneofCase.OneofUint32:
28499           OneofUint32 = other.OneofUint32;
28500           break;
28501         case OneofFieldOneofCase.OneofTestAllTypes:
28502           if (OneofTestAllTypes == null) {
28503             OneofTestAllTypes = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
28504           }
28505           OneofTestAllTypes.MergeFrom(other.OneofTestAllTypes);
28506           break;
28507         case OneofFieldOneofCase.OneofString:
28508           OneofString = other.OneofString;
28509           break;
28510         case OneofFieldOneofCase.OneofBytes:
28511           OneofBytes = other.OneofBytes;
28512           break;
28513       }
28514 
28515       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
28516       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
28517     }
28518 
28519     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)28520     public void MergeFrom(pb::CodedInputStream input) {
28521     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28522       input.ReadRawMessage(this);
28523     #else
28524       uint tag;
28525       while ((tag = input.ReadTag()) != 0) {
28526         switch(tag) {
28527           default:
28528             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
28529               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
28530             }
28531             break;
28532           case 4294960000: {
28533             OptionalInt32 = input.ReadInt32();
28534             break;
28535           }
28536           case 4294960008: {
28537             Fixed32 = input.ReadInt32();
28538             break;
28539           }
28540           case 4294960018:
28541           case 4294960016: {
28542             repeatedInt32_.AddEntriesFrom(input, _repeated_repeatedInt32_codec);
28543             break;
28544           }
28545           case 4294960026:
28546           case 4294960024: {
28547             packedInt32_.AddEntriesFrom(input, _repeated_packedInt32_codec);
28548             break;
28549           }
28550           case 4294960032: {
28551             OptionalEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
28552             break;
28553           }
28554           case 4294960042: {
28555             OptionalString = input.ReadString();
28556             break;
28557           }
28558           case 4294960050: {
28559             OptionalBytes = input.ReadBytes();
28560             break;
28561           }
28562           case 4294960058: {
28563             if (optionalMessage_ == null) {
28564               OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
28565             }
28566             input.ReadMessage(OptionalMessage);
28567             break;
28568           }
28569           case 4294960067: {
28570             if (!HasOptionalGroup) {
28571               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup();
28572             }
28573             input.ReadGroup(OptionalGroup);
28574             break;
28575           }
28576           case 4294960082: {
28577             stringStringMap_.AddEntriesFrom(input, _map_stringStringMap_codec);
28578             break;
28579           }
28580           case 4294960088: {
28581             OneofUint32 = input.ReadUInt32();
28582             break;
28583           }
28584           case 4294960098: {
28585             global::Google.Protobuf.TestProtos.Proto2.TestAllTypes subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
28586             if (oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes) {
28587               subBuilder.MergeFrom(OneofTestAllTypes);
28588             }
28589             input.ReadMessage(subBuilder);
28590             OneofTestAllTypes = subBuilder;
28591             break;
28592           }
28593           case 4294960106: {
28594             OneofString = input.ReadString();
28595             break;
28596           }
28597           case 4294960114: {
28598             OneofBytes = input.ReadBytes();
28599             break;
28600           }
28601         }
28602       }
28603     #endif
28604     }
28605 
28606     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28607     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)28608     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
28609       uint tag;
28610       while ((tag = input.ReadTag()) != 0) {
28611         switch(tag) {
28612           default:
28613             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
28614               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
28615             }
28616             break;
28617           case 4294960000: {
28618             OptionalInt32 = input.ReadInt32();
28619             break;
28620           }
28621           case 4294960008: {
28622             Fixed32 = input.ReadInt32();
28623             break;
28624           }
28625           case 4294960018:
28626           case 4294960016: {
28627             repeatedInt32_.AddEntriesFrom(ref input, _repeated_repeatedInt32_codec);
28628             break;
28629           }
28630           case 4294960026:
28631           case 4294960024: {
28632             packedInt32_.AddEntriesFrom(ref input, _repeated_packedInt32_codec);
28633             break;
28634           }
28635           case 4294960032: {
28636             OptionalEnum = (global::Google.Protobuf.TestProtos.Proto2.ForeignEnum) input.ReadEnum();
28637             break;
28638           }
28639           case 4294960042: {
28640             OptionalString = input.ReadString();
28641             break;
28642           }
28643           case 4294960050: {
28644             OptionalBytes = input.ReadBytes();
28645             break;
28646           }
28647           case 4294960058: {
28648             if (optionalMessage_ == null) {
28649               OptionalMessage = new global::Google.Protobuf.TestProtos.Proto2.ForeignMessage();
28650             }
28651             input.ReadMessage(OptionalMessage);
28652             break;
28653           }
28654           case 4294960067: {
28655             if (!HasOptionalGroup) {
28656               OptionalGroup = new global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Types.OptionalGroup();
28657             }
28658             input.ReadGroup(OptionalGroup);
28659             break;
28660           }
28661           case 4294960082: {
28662             stringStringMap_.AddEntriesFrom(ref input, _map_stringStringMap_codec);
28663             break;
28664           }
28665           case 4294960088: {
28666             OneofUint32 = input.ReadUInt32();
28667             break;
28668           }
28669           case 4294960098: {
28670             global::Google.Protobuf.TestProtos.Proto2.TestAllTypes subBuilder = new global::Google.Protobuf.TestProtos.Proto2.TestAllTypes();
28671             if (oneofFieldCase_ == OneofFieldOneofCase.OneofTestAllTypes) {
28672               subBuilder.MergeFrom(OneofTestAllTypes);
28673             }
28674             input.ReadMessage(subBuilder);
28675             OneofTestAllTypes = subBuilder;
28676             break;
28677           }
28678           case 4294960106: {
28679             OneofString = input.ReadString();
28680             break;
28681           }
28682           case 4294960114: {
28683             OneofBytes = input.ReadBytes();
28684             break;
28685           }
28686         }
28687       }
28688     }
28689     #endif
28690 
GetExtension(pb::Extension<TestHugeFieldNumbers, TValue> extension)28691     public TValue GetExtension<TValue>(pb::Extension<TestHugeFieldNumbers, TValue> extension) {
28692       return pb::ExtensionSet.Get(ref _extensions, extension);
28693     }
GetExtension(pb::RepeatedExtension<TestHugeFieldNumbers, TValue> extension)28694     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestHugeFieldNumbers, TValue> extension) {
28695       return pb::ExtensionSet.Get(ref _extensions, extension);
28696     }
GetOrInitializeExtension(pb::RepeatedExtension<TestHugeFieldNumbers, TValue> extension)28697     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestHugeFieldNumbers, TValue> extension) {
28698       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
28699     }
SetExtension(pb::Extension<TestHugeFieldNumbers, TValue> extension, TValue value)28700     public void SetExtension<TValue>(pb::Extension<TestHugeFieldNumbers, TValue> extension, TValue value) {
28701       pb::ExtensionSet.Set(ref _extensions, extension, value);
28702     }
HasExtension(pb::Extension<TestHugeFieldNumbers, TValue> extension)28703     public bool HasExtension<TValue>(pb::Extension<TestHugeFieldNumbers, TValue> extension) {
28704       return pb::ExtensionSet.Has(ref _extensions, extension);
28705     }
ClearExtension(pb::Extension<TestHugeFieldNumbers, TValue> extension)28706     public void ClearExtension<TValue>(pb::Extension<TestHugeFieldNumbers, TValue> extension) {
28707       pb::ExtensionSet.Clear(ref _extensions, extension);
28708     }
ClearExtension(pb::RepeatedExtension<TestHugeFieldNumbers, TValue> extension)28709     public void ClearExtension<TValue>(pb::RepeatedExtension<TestHugeFieldNumbers, TValue> extension) {
28710       pb::ExtensionSet.Clear(ref _extensions, extension);
28711     }
28712 
28713     #region Nested types
28714     /// <summary>Container for nested types declared in the TestHugeFieldNumbers message type.</summary>
28715     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28716     public static partial class Types {
28717       public sealed partial class OptionalGroup : pb::IMessage<OptionalGroup>
28718       #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28719           , pb::IBufferMessage
28720       #endif
28721       {
28722         private static readonly pb::MessageParser<OptionalGroup> _parser = new pb::MessageParser<OptionalGroup>(() => new OptionalGroup());
28723         private pb::UnknownFieldSet _unknownFields;
28724         private int _hasBits0;
28725         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28726         public static pb::MessageParser<OptionalGroup> Parser { get { return _parser; } }
28727 
28728         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28729         public static pbr::MessageDescriptor Descriptor {
28730           get { return global::Google.Protobuf.TestProtos.Proto2.TestHugeFieldNumbers.Descriptor.NestedTypes[0]; }
28731         }
28732 
28733         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28734         pbr::MessageDescriptor pb::IMessage.Descriptor {
28735           get { return Descriptor; }
28736         }
28737 
28738         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup()28739         public OptionalGroup() {
28740           OnConstruction();
28741         }
28742 
OnConstruction()28743         partial void OnConstruction();
28744 
28745         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
OptionalGroup(OptionalGroup other)28746         public OptionalGroup(OptionalGroup other) : this() {
28747           _hasBits0 = other._hasBits0;
28748           groupA_ = other.groupA_;
28749           _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
28750         }
28751 
28752         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()28753         public OptionalGroup Clone() {
28754           return new OptionalGroup(this);
28755         }
28756 
28757         /// <summary>Field number for the "group_a" field.</summary>
28758         public const int GroupAFieldNumber = 536870009;
28759         private readonly static int GroupADefaultValue = 0;
28760 
28761         private int groupA_;
28762         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28763         public int GroupA {
28764           get { if ((_hasBits0 & 1) != 0) { return groupA_; } else { return GroupADefaultValue; } }
28765           set {
28766             _hasBits0 |= 1;
28767             groupA_ = value;
28768           }
28769         }
28770         /// <summary>Gets whether the "group_a" field is set</summary>
28771         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28772         public bool HasGroupA {
28773           get { return (_hasBits0 & 1) != 0; }
28774         }
28775         /// <summary>Clears the value of the "group_a" field</summary>
28776         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearGroupA()28777         public void ClearGroupA() {
28778           _hasBits0 &= ~1;
28779         }
28780 
28781         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)28782         public override bool Equals(object other) {
28783           return Equals(other as OptionalGroup);
28784         }
28785 
28786         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(OptionalGroup other)28787         public bool Equals(OptionalGroup other) {
28788           if (ReferenceEquals(other, null)) {
28789             return false;
28790           }
28791           if (ReferenceEquals(other, this)) {
28792             return true;
28793           }
28794           if (GroupA != other.GroupA) return false;
28795           return Equals(_unknownFields, other._unknownFields);
28796         }
28797 
28798         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()28799         public override int GetHashCode() {
28800           int hash = 1;
28801           if (HasGroupA) hash ^= GroupA.GetHashCode();
28802           if (_unknownFields != null) {
28803             hash ^= _unknownFields.GetHashCode();
28804           }
28805           return hash;
28806         }
28807 
28808         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()28809         public override string ToString() {
28810           return pb::JsonFormatter.ToDiagnosticString(this);
28811         }
28812 
28813         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)28814         public void WriteTo(pb::CodedOutputStream output) {
28815         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28816           output.WriteRawMessage(this);
28817         #else
28818           if (HasGroupA) {
28819             output.WriteRawTag(200, 199, 255, 255, 15);
28820             output.WriteInt32(GroupA);
28821           }
28822           if (_unknownFields != null) {
28823             _unknownFields.WriteTo(output);
28824           }
28825         #endif
28826         }
28827 
28828         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28829         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)28830         void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
28831           if (HasGroupA) {
28832             output.WriteRawTag(200, 199, 255, 255, 15);
28833             output.WriteInt32(GroupA);
28834           }
28835           if (_unknownFields != null) {
28836             _unknownFields.WriteTo(ref output);
28837           }
28838         }
28839         #endif
28840 
28841         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()28842         public int CalculateSize() {
28843           int size = 0;
28844           if (HasGroupA) {
28845             size += 5 + pb::CodedOutputStream.ComputeInt32Size(GroupA);
28846           }
28847           if (_unknownFields != null) {
28848             size += _unknownFields.CalculateSize();
28849           }
28850           return size;
28851         }
28852 
28853         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(OptionalGroup other)28854         public void MergeFrom(OptionalGroup other) {
28855           if (other == null) {
28856             return;
28857           }
28858           if (other.HasGroupA) {
28859             GroupA = other.GroupA;
28860           }
28861           _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
28862         }
28863 
28864         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)28865         public void MergeFrom(pb::CodedInputStream input) {
28866         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28867           input.ReadRawMessage(this);
28868         #else
28869           uint tag;
28870           while ((tag = input.ReadTag()) != 0) {
28871             switch(tag) {
28872               case 4294960068:
28873                 return;
28874               default:
28875                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
28876                 break;
28877               case 4294960072: {
28878                 GroupA = input.ReadInt32();
28879                 break;
28880               }
28881             }
28882           }
28883         #endif
28884         }
28885 
28886         #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28887         [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)28888         void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
28889           uint tag;
28890           while ((tag = input.ReadTag()) != 0) {
28891             switch(tag) {
28892               case 4294960068:
28893                 return;
28894               default:
28895                 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
28896                 break;
28897               case 4294960072: {
28898                 GroupA = input.ReadInt32();
28899                 break;
28900               }
28901             }
28902           }
28903         }
28904         #endif
28905 
28906       }
28907 
28908     }
28909     #endregion
28910 
28911   }
28912 
28913   public sealed partial class TestExtensionInsideTable : pb::IExtendableMessage<TestExtensionInsideTable>
28914   #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
28915       , pb::IBufferMessage
28916   #endif
28917   {
28918     private static readonly pb::MessageParser<TestExtensionInsideTable> _parser = new pb::MessageParser<TestExtensionInsideTable>(() => new TestExtensionInsideTable());
28919     private pb::UnknownFieldSet _unknownFields;
28920     private pb::ExtensionSet<TestExtensionInsideTable> _extensions;
28921     private pb::ExtensionSet<TestExtensionInsideTable> _Extensions { get { return _extensions; } }
28922     private int _hasBits0;
28923     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28924     public static pb::MessageParser<TestExtensionInsideTable> Parser { get { return _parser; } }
28925 
28926     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28927     public static pbr::MessageDescriptor Descriptor {
28928       get { return global::Google.Protobuf.TestProtos.Proto2.UnittestReflection.Descriptor.MessageTypes[64]; }
28929     }
28930 
28931     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28932     pbr::MessageDescriptor pb::IMessage.Descriptor {
28933       get { return Descriptor; }
28934     }
28935 
28936     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionInsideTable()28937     public TestExtensionInsideTable() {
28938       OnConstruction();
28939     }
28940 
OnConstruction()28941     partial void OnConstruction();
28942 
28943     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
TestExtensionInsideTable(TestExtensionInsideTable other)28944     public TestExtensionInsideTable(TestExtensionInsideTable other) : this() {
28945       _hasBits0 = other._hasBits0;
28946       field1_ = other.field1_;
28947       field2_ = other.field2_;
28948       field3_ = other.field3_;
28949       field4_ = other.field4_;
28950       field6_ = other.field6_;
28951       field7_ = other.field7_;
28952       field8_ = other.field8_;
28953       field9_ = other.field9_;
28954       field10_ = other.field10_;
28955       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
28956       _extensions = pb::ExtensionSet.Clone(other._extensions);
28957     }
28958 
28959     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Clone()28960     public TestExtensionInsideTable Clone() {
28961       return new TestExtensionInsideTable(this);
28962     }
28963 
28964     /// <summary>Field number for the "field1" field.</summary>
28965     public const int Field1FieldNumber = 1;
28966     private readonly static int Field1DefaultValue = 0;
28967 
28968     private int field1_;
28969     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28970     public int Field1 {
28971       get { if ((_hasBits0 & 1) != 0) { return field1_; } else { return Field1DefaultValue; } }
28972       set {
28973         _hasBits0 |= 1;
28974         field1_ = value;
28975       }
28976     }
28977     /// <summary>Gets whether the "field1" field is set</summary>
28978     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28979     public bool HasField1 {
28980       get { return (_hasBits0 & 1) != 0; }
28981     }
28982     /// <summary>Clears the value of the "field1" field</summary>
28983     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField1()28984     public void ClearField1() {
28985       _hasBits0 &= ~1;
28986     }
28987 
28988     /// <summary>Field number for the "field2" field.</summary>
28989     public const int Field2FieldNumber = 2;
28990     private readonly static int Field2DefaultValue = 0;
28991 
28992     private int field2_;
28993     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
28994     public int Field2 {
28995       get { if ((_hasBits0 & 2) != 0) { return field2_; } else { return Field2DefaultValue; } }
28996       set {
28997         _hasBits0 |= 2;
28998         field2_ = value;
28999       }
29000     }
29001     /// <summary>Gets whether the "field2" field is set</summary>
29002     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29003     public bool HasField2 {
29004       get { return (_hasBits0 & 2) != 0; }
29005     }
29006     /// <summary>Clears the value of the "field2" field</summary>
29007     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField2()29008     public void ClearField2() {
29009       _hasBits0 &= ~2;
29010     }
29011 
29012     /// <summary>Field number for the "field3" field.</summary>
29013     public const int Field3FieldNumber = 3;
29014     private readonly static int Field3DefaultValue = 0;
29015 
29016     private int field3_;
29017     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29018     public int Field3 {
29019       get { if ((_hasBits0 & 4) != 0) { return field3_; } else { return Field3DefaultValue; } }
29020       set {
29021         _hasBits0 |= 4;
29022         field3_ = value;
29023       }
29024     }
29025     /// <summary>Gets whether the "field3" field is set</summary>
29026     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29027     public bool HasField3 {
29028       get { return (_hasBits0 & 4) != 0; }
29029     }
29030     /// <summary>Clears the value of the "field3" field</summary>
29031     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField3()29032     public void ClearField3() {
29033       _hasBits0 &= ~4;
29034     }
29035 
29036     /// <summary>Field number for the "field4" field.</summary>
29037     public const int Field4FieldNumber = 4;
29038     private readonly static int Field4DefaultValue = 0;
29039 
29040     private int field4_;
29041     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29042     public int Field4 {
29043       get { if ((_hasBits0 & 8) != 0) { return field4_; } else { return Field4DefaultValue; } }
29044       set {
29045         _hasBits0 |= 8;
29046         field4_ = value;
29047       }
29048     }
29049     /// <summary>Gets whether the "field4" field is set</summary>
29050     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29051     public bool HasField4 {
29052       get { return (_hasBits0 & 8) != 0; }
29053     }
29054     /// <summary>Clears the value of the "field4" field</summary>
29055     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField4()29056     public void ClearField4() {
29057       _hasBits0 &= ~8;
29058     }
29059 
29060     /// <summary>Field number for the "field6" field.</summary>
29061     public const int Field6FieldNumber = 6;
29062     private readonly static int Field6DefaultValue = 0;
29063 
29064     private int field6_;
29065     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29066     public int Field6 {
29067       get { if ((_hasBits0 & 16) != 0) { return field6_; } else { return Field6DefaultValue; } }
29068       set {
29069         _hasBits0 |= 16;
29070         field6_ = value;
29071       }
29072     }
29073     /// <summary>Gets whether the "field6" field is set</summary>
29074     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29075     public bool HasField6 {
29076       get { return (_hasBits0 & 16) != 0; }
29077     }
29078     /// <summary>Clears the value of the "field6" field</summary>
29079     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField6()29080     public void ClearField6() {
29081       _hasBits0 &= ~16;
29082     }
29083 
29084     /// <summary>Field number for the "field7" field.</summary>
29085     public const int Field7FieldNumber = 7;
29086     private readonly static int Field7DefaultValue = 0;
29087 
29088     private int field7_;
29089     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29090     public int Field7 {
29091       get { if ((_hasBits0 & 32) != 0) { return field7_; } else { return Field7DefaultValue; } }
29092       set {
29093         _hasBits0 |= 32;
29094         field7_ = value;
29095       }
29096     }
29097     /// <summary>Gets whether the "field7" field is set</summary>
29098     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29099     public bool HasField7 {
29100       get { return (_hasBits0 & 32) != 0; }
29101     }
29102     /// <summary>Clears the value of the "field7" field</summary>
29103     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField7()29104     public void ClearField7() {
29105       _hasBits0 &= ~32;
29106     }
29107 
29108     /// <summary>Field number for the "field8" field.</summary>
29109     public const int Field8FieldNumber = 8;
29110     private readonly static int Field8DefaultValue = 0;
29111 
29112     private int field8_;
29113     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29114     public int Field8 {
29115       get { if ((_hasBits0 & 64) != 0) { return field8_; } else { return Field8DefaultValue; } }
29116       set {
29117         _hasBits0 |= 64;
29118         field8_ = value;
29119       }
29120     }
29121     /// <summary>Gets whether the "field8" field is set</summary>
29122     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29123     public bool HasField8 {
29124       get { return (_hasBits0 & 64) != 0; }
29125     }
29126     /// <summary>Clears the value of the "field8" field</summary>
29127     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField8()29128     public void ClearField8() {
29129       _hasBits0 &= ~64;
29130     }
29131 
29132     /// <summary>Field number for the "field9" field.</summary>
29133     public const int Field9FieldNumber = 9;
29134     private readonly static int Field9DefaultValue = 0;
29135 
29136     private int field9_;
29137     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29138     public int Field9 {
29139       get { if ((_hasBits0 & 128) != 0) { return field9_; } else { return Field9DefaultValue; } }
29140       set {
29141         _hasBits0 |= 128;
29142         field9_ = value;
29143       }
29144     }
29145     /// <summary>Gets whether the "field9" field is set</summary>
29146     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29147     public bool HasField9 {
29148       get { return (_hasBits0 & 128) != 0; }
29149     }
29150     /// <summary>Clears the value of the "field9" field</summary>
29151     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField9()29152     public void ClearField9() {
29153       _hasBits0 &= ~128;
29154     }
29155 
29156     /// <summary>Field number for the "field10" field.</summary>
29157     public const int Field10FieldNumber = 10;
29158     private readonly static int Field10DefaultValue = 0;
29159 
29160     private int field10_;
29161     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29162     public int Field10 {
29163       get { if ((_hasBits0 & 256) != 0) { return field10_; } else { return Field10DefaultValue; } }
29164       set {
29165         _hasBits0 |= 256;
29166         field10_ = value;
29167       }
29168     }
29169     /// <summary>Gets whether the "field10" field is set</summary>
29170     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
29171     public bool HasField10 {
29172       get { return (_hasBits0 & 256) != 0; }
29173     }
29174     /// <summary>Clears the value of the "field10" field</summary>
29175     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ClearField10()29176     public void ClearField10() {
29177       _hasBits0 &= ~256;
29178     }
29179 
29180     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(object other)29181     public override bool Equals(object other) {
29182       return Equals(other as TestExtensionInsideTable);
29183     }
29184 
29185     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
Equals(TestExtensionInsideTable other)29186     public bool Equals(TestExtensionInsideTable other) {
29187       if (ReferenceEquals(other, null)) {
29188         return false;
29189       }
29190       if (ReferenceEquals(other, this)) {
29191         return true;
29192       }
29193       if (Field1 != other.Field1) return false;
29194       if (Field2 != other.Field2) return false;
29195       if (Field3 != other.Field3) return false;
29196       if (Field4 != other.Field4) return false;
29197       if (Field6 != other.Field6) return false;
29198       if (Field7 != other.Field7) return false;
29199       if (Field8 != other.Field8) return false;
29200       if (Field9 != other.Field9) return false;
29201       if (Field10 != other.Field10) return false;
29202       if (!Equals(_extensions, other._extensions)) {
29203         return false;
29204       }
29205       return Equals(_unknownFields, other._unknownFields);
29206     }
29207 
29208     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
GetHashCode()29209     public override int GetHashCode() {
29210       int hash = 1;
29211       if (HasField1) hash ^= Field1.GetHashCode();
29212       if (HasField2) hash ^= Field2.GetHashCode();
29213       if (HasField3) hash ^= Field3.GetHashCode();
29214       if (HasField4) hash ^= Field4.GetHashCode();
29215       if (HasField6) hash ^= Field6.GetHashCode();
29216       if (HasField7) hash ^= Field7.GetHashCode();
29217       if (HasField8) hash ^= Field8.GetHashCode();
29218       if (HasField9) hash ^= Field9.GetHashCode();
29219       if (HasField10) hash ^= Field10.GetHashCode();
29220       if (_extensions != null) {
29221         hash ^= _extensions.GetHashCode();
29222       }
29223       if (_unknownFields != null) {
29224         hash ^= _unknownFields.GetHashCode();
29225       }
29226       return hash;
29227     }
29228 
29229     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
ToString()29230     public override string ToString() {
29231       return pb::JsonFormatter.ToDiagnosticString(this);
29232     }
29233 
29234     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
WriteTo(pb::CodedOutputStream output)29235     public void WriteTo(pb::CodedOutputStream output) {
29236     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
29237       output.WriteRawMessage(this);
29238     #else
29239       if (HasField1) {
29240         output.WriteRawTag(8);
29241         output.WriteInt32(Field1);
29242       }
29243       if (HasField2) {
29244         output.WriteRawTag(16);
29245         output.WriteInt32(Field2);
29246       }
29247       if (HasField3) {
29248         output.WriteRawTag(24);
29249         output.WriteInt32(Field3);
29250       }
29251       if (HasField4) {
29252         output.WriteRawTag(32);
29253         output.WriteInt32(Field4);
29254       }
29255       if (HasField6) {
29256         output.WriteRawTag(48);
29257         output.WriteInt32(Field6);
29258       }
29259       if (HasField7) {
29260         output.WriteRawTag(56);
29261         output.WriteInt32(Field7);
29262       }
29263       if (HasField8) {
29264         output.WriteRawTag(64);
29265         output.WriteInt32(Field8);
29266       }
29267       if (HasField9) {
29268         output.WriteRawTag(72);
29269         output.WriteInt32(Field9);
29270       }
29271       if (HasField10) {
29272         output.WriteRawTag(80);
29273         output.WriteInt32(Field10);
29274       }
29275       if (_extensions != null) {
29276         _extensions.WriteTo(output);
29277       }
29278       if (_unknownFields != null) {
29279         _unknownFields.WriteTo(output);
29280       }
29281     #endif
29282     }
29283 
29284     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
29285     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalWriteTo(ref pb::WriteContext output)29286     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
29287       if (HasField1) {
29288         output.WriteRawTag(8);
29289         output.WriteInt32(Field1);
29290       }
29291       if (HasField2) {
29292         output.WriteRawTag(16);
29293         output.WriteInt32(Field2);
29294       }
29295       if (HasField3) {
29296         output.WriteRawTag(24);
29297         output.WriteInt32(Field3);
29298       }
29299       if (HasField4) {
29300         output.WriteRawTag(32);
29301         output.WriteInt32(Field4);
29302       }
29303       if (HasField6) {
29304         output.WriteRawTag(48);
29305         output.WriteInt32(Field6);
29306       }
29307       if (HasField7) {
29308         output.WriteRawTag(56);
29309         output.WriteInt32(Field7);
29310       }
29311       if (HasField8) {
29312         output.WriteRawTag(64);
29313         output.WriteInt32(Field8);
29314       }
29315       if (HasField9) {
29316         output.WriteRawTag(72);
29317         output.WriteInt32(Field9);
29318       }
29319       if (HasField10) {
29320         output.WriteRawTag(80);
29321         output.WriteInt32(Field10);
29322       }
29323       if (_extensions != null) {
29324         _extensions.WriteTo(ref output);
29325       }
29326       if (_unknownFields != null) {
29327         _unknownFields.WriteTo(ref output);
29328       }
29329     }
29330     #endif
29331 
29332     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
CalculateSize()29333     public int CalculateSize() {
29334       int size = 0;
29335       if (HasField1) {
29336         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field1);
29337       }
29338       if (HasField2) {
29339         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field2);
29340       }
29341       if (HasField3) {
29342         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field3);
29343       }
29344       if (HasField4) {
29345         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field4);
29346       }
29347       if (HasField6) {
29348         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field6);
29349       }
29350       if (HasField7) {
29351         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field7);
29352       }
29353       if (HasField8) {
29354         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field8);
29355       }
29356       if (HasField9) {
29357         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field9);
29358       }
29359       if (HasField10) {
29360         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Field10);
29361       }
29362       if (_extensions != null) {
29363         size += _extensions.CalculateSize();
29364       }
29365       if (_unknownFields != null) {
29366         size += _unknownFields.CalculateSize();
29367       }
29368       return size;
29369     }
29370 
29371     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(TestExtensionInsideTable other)29372     public void MergeFrom(TestExtensionInsideTable other) {
29373       if (other == null) {
29374         return;
29375       }
29376       if (other.HasField1) {
29377         Field1 = other.Field1;
29378       }
29379       if (other.HasField2) {
29380         Field2 = other.Field2;
29381       }
29382       if (other.HasField3) {
29383         Field3 = other.Field3;
29384       }
29385       if (other.HasField4) {
29386         Field4 = other.Field4;
29387       }
29388       if (other.HasField6) {
29389         Field6 = other.Field6;
29390       }
29391       if (other.HasField7) {
29392         Field7 = other.Field7;
29393       }
29394       if (other.HasField8) {
29395         Field8 = other.Field8;
29396       }
29397       if (other.HasField9) {
29398         Field9 = other.Field9;
29399       }
29400       if (other.HasField10) {
29401         Field10 = other.Field10;
29402       }
29403       pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);
29404       _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
29405     }
29406 
29407     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
MergeFrom(pb::CodedInputStream input)29408     public void MergeFrom(pb::CodedInputStream input) {
29409     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
29410       input.ReadRawMessage(this);
29411     #else
29412       uint tag;
29413       while ((tag = input.ReadTag()) != 0) {
29414         switch(tag) {
29415           default:
29416             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {
29417               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
29418             }
29419             break;
29420           case 8: {
29421             Field1 = input.ReadInt32();
29422             break;
29423           }
29424           case 16: {
29425             Field2 = input.ReadInt32();
29426             break;
29427           }
29428           case 24: {
29429             Field3 = input.ReadInt32();
29430             break;
29431           }
29432           case 32: {
29433             Field4 = input.ReadInt32();
29434             break;
29435           }
29436           case 48: {
29437             Field6 = input.ReadInt32();
29438             break;
29439           }
29440           case 56: {
29441             Field7 = input.ReadInt32();
29442             break;
29443           }
29444           case 64: {
29445             Field8 = input.ReadInt32();
29446             break;
29447           }
29448           case 72: {
29449             Field9 = input.ReadInt32();
29450             break;
29451           }
29452           case 80: {
29453             Field10 = input.ReadInt32();
29454             break;
29455           }
29456         }
29457       }
29458     #endif
29459     }
29460 
29461     #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
29462     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)29463     void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
29464       uint tag;
29465       while ((tag = input.ReadTag()) != 0) {
29466         switch(tag) {
29467           default:
29468             if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) {
29469               _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
29470             }
29471             break;
29472           case 8: {
29473             Field1 = input.ReadInt32();
29474             break;
29475           }
29476           case 16: {
29477             Field2 = input.ReadInt32();
29478             break;
29479           }
29480           case 24: {
29481             Field3 = input.ReadInt32();
29482             break;
29483           }
29484           case 32: {
29485             Field4 = input.ReadInt32();
29486             break;
29487           }
29488           case 48: {
29489             Field6 = input.ReadInt32();
29490             break;
29491           }
29492           case 56: {
29493             Field7 = input.ReadInt32();
29494             break;
29495           }
29496           case 64: {
29497             Field8 = input.ReadInt32();
29498             break;
29499           }
29500           case 72: {
29501             Field9 = input.ReadInt32();
29502             break;
29503           }
29504           case 80: {
29505             Field10 = input.ReadInt32();
29506             break;
29507           }
29508         }
29509       }
29510     }
29511     #endif
29512 
GetExtension(pb::Extension<TestExtensionInsideTable, TValue> extension)29513     public TValue GetExtension<TValue>(pb::Extension<TestExtensionInsideTable, TValue> extension) {
29514       return pb::ExtensionSet.Get(ref _extensions, extension);
29515     }
GetExtension(pb::RepeatedExtension<TestExtensionInsideTable, TValue> extension)29516     public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<TestExtensionInsideTable, TValue> extension) {
29517       return pb::ExtensionSet.Get(ref _extensions, extension);
29518     }
GetOrInitializeExtension(pb::RepeatedExtension<TestExtensionInsideTable, TValue> extension)29519     public pbc::RepeatedField<TValue> GetOrInitializeExtension<TValue>(pb::RepeatedExtension<TestExtensionInsideTable, TValue> extension) {
29520       return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension);
29521     }
SetExtension(pb::Extension<TestExtensionInsideTable, TValue> extension, TValue value)29522     public void SetExtension<TValue>(pb::Extension<TestExtensionInsideTable, TValue> extension, TValue value) {
29523       pb::ExtensionSet.Set(ref _extensions, extension, value);
29524     }
HasExtension(pb::Extension<TestExtensionInsideTable, TValue> extension)29525     public bool HasExtension<TValue>(pb::Extension<TestExtensionInsideTable, TValue> extension) {
29526       return pb::ExtensionSet.Has(ref _extensions, extension);
29527     }
ClearExtension(pb::Extension<TestExtensionInsideTable, TValue> extension)29528     public void ClearExtension<TValue>(pb::Extension<TestExtensionInsideTable, TValue> extension) {
29529       pb::ExtensionSet.Clear(ref _extensions, extension);
29530     }
ClearExtension(pb::RepeatedExtension<TestExtensionInsideTable, TValue> extension)29531     public void ClearExtension<TValue>(pb::RepeatedExtension<TestExtensionInsideTable, TValue> extension) {
29532       pb::ExtensionSet.Clear(ref _extensions, extension);
29533     }
29534 
29535   }
29536 
29537   #endregion
29538 
29539 }
29540 
29541 #endregion Designer generated code
29542