aboutsummaryrefslogblamecommitdiff
path: root/csharp/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
blob: eb96dfcf59610e2d791c299d5b66d5555412e7a5 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                           
                                                      


                                        


                                                
                                               
                                            



                                                             

                                                                                                          
                                                                                                                                                                                          
                                                                                                            
                                                                                                                                                                                              
                                                                                                        
                                                                                                                                                                                      
                                                                                                                       
                                                                                                                                                                                                                          
                                                                                                                      
                                                                                                                                                                                                                        
                                                                                                             
                                                                                                                                                                                                
                                                                                                             
                                                                                                                                                                                                
                                                                                                            
                                                                                                                                                                                              
                                                                                                                 
                                                                                                                                                                                                        
                                                                                                               
                                                                                                                                                                                                    
                                                                                                              
                                                                                                                                                                                                  
                                                                                                    
                                                                                                                                                                              
                                                                                                       
                                                                                                                                                                                    
                                                                                                     
                                                                                                                                                                                
                                                                                                    
                                                                                                                                                                              
                                                                                                         
                                                                                                                                                                                        
                                                                                                       
                                                                                                                                                                                    
                                                                                                      
                                                                                                                                                                                  
                                                                                                            
                                                                                                                                                                                              
                                                                                                                     
                                                                                                                                                                                                                      
                                                                                                       
                                                                                                                                                                                    
                                                                                                                
                                                                                                                                                                                                            
              
                      







                                                                      












                                                                            
                                                                            








                                                                            


































































                                                                            
                                                                            
















                                                                            


                                                                            



                                                                                                    
                                                                                                                                                                              


                                                                                                      
                                                                                                                                                                                  


                                                                                                                                                                                                   
                                                                                                                                                                          
                                                                                                                                                                     

                                                                                                                                                                  
                                                                                                                                                                                                              
                                                  

                                                                                                                                                                 
                                                                                                                                                                                                            
                                                  

                                                                                                       
                                                                                                                                                                                    


                                                                                                                                      
                                                                                                                                                                                    


                                                                                                      
                                                                                                                                                                                  


                                                                                                           
                                                                                                                                                                                            


                                                                                                         
                                                                                                                                                                                        


                                                                                                        
                                                                                                                                                                                      


                                                                                                                      
                                                                                                                                                                  


                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                        


                                                                                                                                           
                                                                                                                                                                    
                                                                                                                    

                                                                                               
                                                                                                                                                                  


                                                                                                    
                                                                                                                                                                            


                                                                                                  
                                                                                                                                                                        


                                                                                                 
                                                                                                                                                                      


                                                                                                       
                                                                                                                                                                                  


                                                                                                                                                                    
                                                                                                                                                                                                          


                                                                                                  
                                                                                                                                                                        


                                                                                                                                                          
                                                                                                                                                                                                
                                                                                                                    









                                                                        


                                                                                                                                                   
 

                                                                           
                                                     
                                                                                                                                                 

     

                                                                                                                                                         

     



                                                       
                                         

                                                                                                                                                                                                     

                           


                                                

     




                                                 

                    

                                                  

     



                                       

     


                                                        

     


                                                                                               

                                                                     

                  


                                                    
       

                             
 







                                                                                                                              
           






                                                                  
             



                                                                                                                               

           

       
 


                                                             


                                                                                                                                                         
 

                                                                                                                                                                                                                                          
                                                     
                                                                                                                                                   

     

                                                                                                                                                           

     



                                                           
                                         
                              

                           
                                  

     
 
                                            
                                 

                              
                                     

     
 
                                               


                                                                                               


                                                      


                                                                                               


                                                    


                                                                                             


                                                

                                                                                                                                                                                                    

                                  

                                             

                                                                                                                                                                                                         

                               

                                            

                                                                                                                                                                                                              

                              

                                              

                                                                                                                                                                                                            

                                

                                            



                                                                          


                                                   



                                                                                    


                                            
                                

                             
                                    

     
 

                                                  

     


                                                   
       





























































                                                                                                                                                                               

                                                                 
                          



                                                                    
                                                 






                                                                            
                                                    






                                                                           
                                                  




                                                                           
                                                                                                  

                                                                     
                                                                                                   

                                                                     
                                                                                                     

                                                                     
                                                                                                     

                                                                     
                             

                                                                     
                                    

                                                                            
                         

                                                                    

                  































                                                                                          
     












































































                                                                                                                                     
     











                                                                                                                                                                                                            
     


                                                                                                                                                       
     



                                                   
     




                                         
     





                                                                                                                                                                                                        
     




                                                                                                                                                                                                            
     




                                                                                                                                                                                                   
     




                                                                                                                                                                                                         
     




                                                                                                                                                                                                                                                 

     



                                                                                                                                                                                                            

     

























                                                                                                                                                                                                                                              
       

                                         
       
















































                                                                                                                             
       

                                                                                                 
       

                                                                                                     
       

                                                                                                 
       

                                                                                                   
       

                                                                                                                          
       

                                                                                                     
       

                                                                     
       






                                                                                                                        
         

                                        
       

















                                                                                   
         
                                         
       


                                               
 








                                                                                                                              
         





                                                                  
             















                                                                                                                                   
           










                                                                                                                                                          
             













                                                                                                                                                        

           
       





                                                                 


                                                                                                                                              
 

                                                                                       
                                                         
                                                                                                                                                                  

         

                                                                                                                                                                          

         



                                                     
                                              
                           

                                
                                 

         
 
                                            
                         

                              
                               

         


                                                   

         


                                                  
           

                                             
           


                                                 

         




                                                      

         








                                                            
 


                                    

                                                                     
                         

                                                                   

                      


                                                     
           

                                 
           

                               
           
         
 








                                                                                                                                  
             





                                                                      
                 



                                            
               


                                          

               

           
 

       
                                                                 


                                                                                                                                           
 

                                                                                       
                                                         
                                                                                                                                                                 

         

                                                                                                                                                                         

         



                                                   
                                              
                           

                                
                                 

         
 
                                            
                         

                              
                               

         


                                                   

         


                                                 
           

                                             
           


                                                 

         




                                                      

         








                                                            
 


                                    

                                                                     
                         

                                                                   

                      


                                                    
           

                                 
           

                               
           
         
 








                                                                                                                                  
             





                                                                      
                 



                                            
               


                                          

               

           
 

       


              




















                                                                                                                                                                          
                                         
                              

                           
                                  

     
 




                                           
     






                                                                                                                                                                                        

     
 




                                                                                                                                                                                  

     
 




                                             

     
 




                                             
     






                                                 

     





                                               
     






                                                                           
     


                                                   

     




                                                    

                    








                                                                             

     

















                                                                                                                                         
       

                                                       
       

                                                    
       
                                                                                                              
                                                        
       
                                                                                                         
                                                       
       

                                                       
       

                                                           
       

                                                       
       

                                                        


       


                                

                                                                 

                                                                  
       
                                                                                                              
                                                                      
       
                                                                                                         
                                                                     
       

                                                                     
       

                                                                     
       

                                                                         
       

                                                                      
       

                                                                     
       

                  


                                                       
       

                             
       

                              
       

                                                                                                                    
       

                                                                                                               
       

                                  
       

                                  
       

                                          
       

                                      
       


                                                                                 
         
                                         
       
     
 








                                                                                                                              
         





                                                                  
             



                                        
           








                                            


                                                                                                           

                    


                                                                                                         











                                                                                     
             





                                             

           
       




                                                               
                        



















                           
                         







                           
   
 



                                                                                                                                                            
 



                                                                                                                                                    

     

                                                                                                                                                            

     


                                                             
     




                                         

     
 

                                                   

     








                                                    

     



                                                 

     



                                                        


       



                                                                 
       




                                                       
       

                             
       

     






















                                                                                                                              
       
     











                                                                                                                                                         
     


                                                                                                                                                           
     



                                                           
     




                                         
     





                                                                                                                                                                                                                
     





                                                                          

     

                                                  

     


                                                   
       

                                         
       



                                                                             
 






                                                          
 



                                                        
       


                                                         
       
     
 



                                                                 
       

                                                                                                     
       

                                                                     
       




                                                      
       

                             
       



                                                                                
         
                                         
       
     
 








                                                                                                                              
         





                                                                  
             



                                        
           






                                                                                                                                     
             

                                        

           
       
     
 


                                                             


                                                                                                                                                                        
 

                                                                                                
                                                     
                                                                                                                                                        

     

                                                                                                                                                                

     



                                                                     
                                         
                              

                           
                                  

     
 




                                           

     
 




                                                                               

     

                                                       

     


                                                        
       

                                         
       



                                                                             
 






                                                          
 



                                                        
       

                                                    
       

                                                       
       
     
 



                                                                 
       

                                                                  
       

                                                                     
       




                                                           
       

                             
       





                                                                                     
         
                                         
       
     
 








                                                                                                                              
         





                                                                  
             



                                        
           






                                                                                         
             

                                        

           
       
     
 


                                                             


                                                                                                                                                                  
 

                                                                                                
                                                     
                                                                                                                                                      

     

                                                                                                                                                              

     



                                                                 
                                         
                              

                           
                                  

     




                                                                                                                                                                                                           


                                            



                                                                             
     


                                                     

     




                                                      

                    


                                                                             

     





                                                          

     







                                                          


       


                                

                                                                 
                                                                                                   

                                                                     
                             

                                                                     

                  


                                                         
       

                             
       



                                                                                   
         
                                         
       
     
 

































                                                                                                                                   
       
     
 
   
 



                                                                                                                                                               
 




                                                                                                                                                           
 


                                                                                                                                                             
 


                                                               
     




                                         
     
 
 




                                              

     
 




                                               

     
 




                                                                            

     




                                                    

     





                                                    

     


                                                    

     


                                                     
       

                                         
       





                                                                                                                          

     








                                                                          

     



                                                        
       

                                                        
       










                                                            
       

     



                                                                 
       

                                                                      
       

                                                                       
       

                                                                     
       

                                                                          
       

                                                                          
       




                                                        
       

                             
       

                                    
       

                                      
       


                                                                                  
         
                                         
       

                                                
       



                                                
 








                                                                                                                              
         





                                                                  
             



                                        
           










                                                                                      
             









                                                 

           

       
 


                                                             


                                                                                                                                 
 

                                                                                                                                                                                                                                                                                                                                                                                                     
                                                     
                                                                                                                                           

     

                                                                                                                                                   

     


                                           
     




                                                

     
 




                                                       

     
 




                                                       

     
 




                                                               

     





                                                         

     
 





                                                                                                                                                                                 
 
 





                                               
 
 





                                                       
 
 





                                                         
 
 





                                                       
 
 
                                                
                             
                            

                                  

     
 




                                                    

     
 




                                                     
     






                                                     
     





                                                                                                                                                                                                                    

     

                                               

     


                                           
       

                                         
       














































                                                                                                                                          
                                                               








































                                                                          
       

                                                                               
       

                                                                             
       

                                                                                     
       

                                                                               
       
                                                                                                         
                                                                            
       

                                                                       
       

                                                                             
       

                                                                               
       

                                                                             
       

                                                                      
       

                                                                          
       

                                                                             
       

                                                                             
       

                                                                                                              
       




                                              
       

                                        
       

                                                      
       

                                                    
       




                                                                    
       

                                                                                                               
       

                                    
       

                                                    
       

                                                        
       

                                                    
       

                                      
       

                                              
       



































                                                                                                                              


                                                                                                               

















































                                                                                                                                              

       



                                                               
                                




                         
     

              


                                                             


                                                                                                                                          
 



                                                                                                                                                                                    

     

                                                                                                                                                      

     








                                                         

     





                                                                 

     

                                               
                             

                                 
                                  

     
 




                                             

     
 



                                                                                                                                                                                                                    

     


                                               
 


                                              
       

                                         
       





                                                                                           

     







                                                                                                    

     



                                                                 
       

                                                                         
       

                                                       
       

                                                     
       

                                                                         
 



                                                                               
       

                                                                                       
       

                                                                     
       

                                                                   
       

                                                                                                              
       




                                                 
       

                                                          
       




                                                                          
       




                                                           
 








                                                                                                                              
         





                                                                  
             



                                                      
           














                                                                                                                                              

           
       
     
 
   
 



                                                                                                                                    
 



                                                                                                                                                      
     


                                                                                                                                                    
     
 








                                                                                                                                                                

     





                                           

     





                                                                                                                                                                      

     





                                         

     
 
                                               
                             

                                 








                                          

     
 
                                                          

                                                                                                                                                                                                                    

                                          
 

                                               

     


                                            
       

                                         
       







                                                                                

     









                                                                                                                               

     


                                                                                              
                                                        
       

                                                   
       






                                                                                                   
                                                         




                                                                         

     


                                                                                              
                                                                      
       

                                                                 
       
                                                                                                   
                                                                       
       

                                                               
       

                                                                     
       

                                                                
       

                                                                                                              
       




                                               
       

                                                                                                    
       

                                  
       

                                                                                                         
       

                                
       







                                                           
 








                                                                                                                              
         





                                                                  
             

                   


                                                                                                   
           












                                            


                                                                                                     







                                                                                                                                              

           
       
     
 


                                                               
                         


                         

       
                          


                      
       
 
     

              


                                                             


                                                                                                                                 
 



                                                                                                                                           

     

                                                                                                                                                   

     


                                           
     




                                               

     

                                               
                             

                                 
                                  

     
 
                                                          

                                                                                                                                                                                                                    

                                          
 

                                               

     


                                           
       

                                         
       



                                                                                

     





                                                                

     



                                                        
       

                                                       
       
                                                                         
     
 



                                                                     
       

                                                                     
       

                                                                                                              
       




                                              
       

                                      
       

                                      
       

                                                           
 








                                                                                                                              
         





                                                                  
             



                                            
           






                                                                                                                                              

           
       
     
 


                                                             


                                                                                                                                                
 



                                                                                                                                                

     

                                                                                                                                                        

     


                                                     
     




                                               

     
 




                                                                                                                                                                                                                    
 


                                               
 










                                                                                
 





                                                                
 






                                                                         
 


















                                                                                                              
 







                                                                                                                              

           










                                                                  
           


                                                                                                                                              
           
         

       
 
   
 



                                                                                                                                          
 




                                                                                                                                              
 


                                                                                                                                                      
 









                                                 
 
 




                                                                                                                                                                                                                    
 


                                               
 










                                                                                
 





                                                                
 






                                                                         
 


















                                                                                                              
 







                                                                                                                              
           






                                                                  
             



                                            
           


                                                                                                                                              
           


         
 
   
 



                                                                                                                                       
 




                                                                                                                                             
 


                                                                                                                                                     
 












































































                                                                                                                                                                                                                    
           











                                                                  
           


                                                                                                                                              

           
       







                                                                                                                                                         
 



                                                                                                                                                                                              
     
 

                                                                                                                                                           
     



                                                           
     



                                                                                                                                                                                                                                   


                                                    
                                         

                                      
                                             

     
 
                                                     
                                    

                                       
                                        

     
 
                                                     
                                   

                                       
                                        

     
 
                                                
                                

                                  
                                   

     
 
                                                
                                                               

                                       
                                                           

     
 
                                                   
                                        

                                     
                                            

     


                                                  

     


                                                   
       

                                         
       


























                                                                                 
       

                                                               
       

                                                              
       

                                                          
       

                                                         
       

                                                             


       


                                                                                                              

                                                                     
                                  

                                                                            
                                    

                                                                             
                                   

                                                                            
                              

                                                                        
                                                

                                                                       
                                 

                                                                           

                  


                                                      
       


                                                
       

                                                  
       

                                                  
       

                                        
       

                                                      
       

                                              
       
     
 













































                                                                                                                                              

         
     
 






                                                                                                                            
 




                                                                                                                                                                
 

                                                                                                                                                                        
         
 


                                         
         






                                                  
 




                                                    
         



                                                   
         










                                                             
         





                                                                      
         








                                                            
         









                                                                          
         









                                               
         








                                                                                                                                  
               
             





                                                                      
                 



                                                
               


                                                 
               



             










                                                                                                                                          
 




                                                                                                                                              
 


                                                                                                                                                      
 








                                                                                                                                                                                                                             
 


                                               
 


                                              
       

                                         
       

                                                          
     
 



                                       

     


                                                            

     





                                                                                                             
     




                                                 

     























                                                                                                                                             





                                                                 


                                                                                                                            
 

                                                                                                                                                             
                                                         
                                                                                                                                                           

         

                                                                                                                                                                   

         


                                         
         



                                                                                       


                                             


                                                                                       


                                                        
                                             

                                          
                                                 

         
 
                                                         
                                              

                                           
                                                  

         
 
                                                                


                                                                                                                
         


                                                   

         




                                             

                        





                                                                                            

         







                                                                             

         








                                                                   
           
                                                                              

         

                                    

                             
                                            





                                                                                


                             
                                            





                                                                                
           
                                      

                                                                                
                                       



                                                                                 
                                                                  




                                                                                

                      


                                               
           



                                                    
           

                                                      
           

                                                                       
 








                                                                                                                                  
             





                                                                      
                 




                                                            
               



                                                            
               


                                                       
               


                                                        
               


                                                                                
               



             

       
     

              






                                  
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/descriptor_proto_file.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbd = global::Google.Protobuf.Descriptors;
using scg = global::System.Collections.Generic;
namespace Google.Protobuf.DescriptorProtos {

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public static partial class DescriptorProtoFile {

    #region Static variables
    internal static pbd::MessageDescriptor internal__static_google_protobuf_FileDescriptorSet__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FileDescriptorSet> internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_FileDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FileDescriptorProto> internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_DescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.DescriptorProto> internal__static_google_protobuf_DescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange> internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange> internal__static_google_protobuf_DescriptorProto_ReservedRange__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_FieldDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> internal__static_google_protobuf_FieldDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_OneofDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto> internal__static_google_protobuf_OneofDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto> internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto> internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_ServiceDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto> internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_MethodDescriptorProto__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto> internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_FileOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FileOptions> internal__static_google_protobuf_FileOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_MessageOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.MessageOptions> internal__static_google_protobuf_MessageOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_FieldOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FieldOptions> internal__static_google_protobuf_FieldOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumOptions> internal__static_google_protobuf_EnumOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumValueOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumValueOptions> internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_ServiceOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.ServiceOptions> internal__static_google_protobuf_ServiceOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_MethodOptions__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.MethodOptions> internal__static_google_protobuf_MethodOptions__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_UninterpretedOption__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> internal__static_google_protobuf_UninterpretedOption__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart> internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_SourceCodeInfo__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo> internal__static_google_protobuf_SourceCodeInfo__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location> internal__static_google_protobuf_SourceCodeInfo_Location__FieldAccessorTable;
    #endregion
    #region Descriptor
    public static pbd::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbd::FileDescriptor descriptor;

    static DescriptorProtoFile() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Citnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvcl9wcm90b19maWxlLnByb3Rv", 
            "Eg9nb29nbGUucHJvdG9idWYiRwoRRmlsZURlc2NyaXB0b3JTZXQSMgoEZmls", 
            "ZRgBIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3Rv", 
            "ItsDChNGaWxlRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDwoHcGFj", 
            "a2FnZRgCIAEoCRISCgpkZXBlbmRlbmN5GAMgAygJEhkKEXB1YmxpY19kZXBl", 
            "bmRlbmN5GAogAygFEhcKD3dlYWtfZGVwZW5kZW5jeRgLIAMoBRI2CgxtZXNz", 
            "YWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclBy", 
            "b3RvEjcKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVt", 
            "RGVzY3JpcHRvclByb3RvEjgKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJv", 
            "dG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90bxI4CglleHRlbnNpb24YByAD", 
            "KAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8SLQoH", 
            "b3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxI5", 
            "ChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNv", 
            "dXJjZUNvZGVJbmZvEg4KBnN5bnRheBgMIAEoCSLwBAoPRGVzY3JpcHRvclBy", 
            "b3RvEgwKBG5hbWUYASABKAkSNAoFZmllbGQYAiADKAsyJS5nb29nbGUucHJv", 
            "dG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8SOAoJZXh0ZW5zaW9uGAYgAygL", 
            "MiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvEjUKC25l", 
            "c3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQ", 
            "cm90bxI3CgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51", 
            "bURlc2NyaXB0b3JQcm90bxJICg9leHRlbnNpb25fcmFuZ2UYBSADKAsyLy5n", 
            "b29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLkV4dGVuc2lvblJhbmdl", 
            "EjkKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZE", 
            "ZXNjcmlwdG9yUHJvdG8SMAoHb3B0aW9ucxgHIAEoCzIfLmdvb2dsZS5wcm90", 
            "b2J1Zi5NZXNzYWdlT3B0aW9ucxJGCg5yZXNlcnZlZF9yYW5nZRgJIAMoCzIu", 
            "Lmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5n", 
            "ZRIVCg1yZXNlcnZlZF9uYW1lGAogAygJGiwKDkV4dGVuc2lvblJhbmdlEg0K", 
            "BXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBRorCg1SZXNlcnZlZFJhbmdlEg0K", 
            "BXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBSKpBQoURmllbGREZXNjcmlwdG9y", 
            "UHJvdG8SDAoEbmFtZRgBIAEoCRIOCgZudW1iZXIYAyABKAUSOgoFbGFiZWwY", 
            "BCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8u", 
            "TGFiZWwSOAoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERl", 
            "c2NyaXB0b3JQcm90by5UeXBlEhEKCXR5cGVfbmFtZRgGIAEoCRIQCghleHRl", 
            "bmRlZRgCIAEoCRIVCg1kZWZhdWx0X3ZhbHVlGAcgASgJEhMKC29uZW9mX2lu", 
            "ZGV4GAkgASgFEi4KB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYu", 
            "RmllbGRPcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQ", 
            "RV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4K", 
            "ClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVE", 
            "MzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVf", 
            "R1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoL", 
            "VFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMy", 
            "EA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQ", 
            "RV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxB", 
            "QkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyIkChRPbmVvZkRl", 
            "c2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJIowBChNFbnVtRGVzY3JpcHRv", 
            "clByb3RvEgwKBG5hbWUYASABKAkSOAoFdmFsdWUYAiADKAsyKS5nb29nbGUu", 
            "cHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEi0KB29wdGlvbnMY", 
            "AyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMibAoYRW51bVZh", 
            "bHVlRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDgoGbnVtYmVyGAIg", 
            "ASgFEjIKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZh", 
            "bHVlT3B0aW9ucyKQAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxIMCgRuYW1l", 
            "GAEgASgJEjYKBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRo", 
            "b2REZXNjcmlwdG9yUHJvdG8SMAoHb3B0aW9ucxgDIAEoCzIfLmdvb2dsZS5w", 
            "cm90b2J1Zi5TZXJ2aWNlT3B0aW9ucyLBAQoVTWV0aG9kRGVzY3JpcHRvclBy", 
            "b3RvEgwKBG5hbWUYASABKAkSEgoKaW5wdXRfdHlwZRgCIAEoCRITCgtvdXRw", 
            "dXRfdHlwZRgDIAEoCRIvCgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3Rv", 
            "YnVmLk1ldGhvZE9wdGlvbnMSHwoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoF", 
            "ZmFsc2USHwoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2UigQUKC0Zp", 
            "bGVPcHRpb25zEhQKDGphdmFfcGFja2FnZRgBIAEoCRIcChRqYXZhX291dGVy", 
            "X2NsYXNzbmFtZRgIIAEoCRIiChNqYXZhX211bHRpcGxlX2ZpbGVzGAogASgI", 
            "OgVmYWxzZRIsCh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEo", 
            "CDoFZmFsc2USJQoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFs", 
            "c2USRgoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZp", 
            "bGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRUQSEgoKZ29fcGFja2FnZRgL", 
            "IAEoCRIiChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZRIkChVq", 
            "YXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlEiIKE3B5X2dlbmVy", 
            "aWNfc2VydmljZXMYEiABKAg6BWZhbHNlEhkKCmRlcHJlY2F0ZWQYFyABKAg6", 
            "BWZhbHNlEh8KEGNjX2VuYWJsZV9hcmVuYXMYHyABKAg6BWZhbHNlEhkKEW9i", 
            "amNfY2xhc3NfcHJlZml4GCQgASgJEhgKEGNzaGFycF9uYW1lc3BhY2UYJSAB", 
            "KAkSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnBy", 
            "b3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkK", 
            "BVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjo", 
            "BxCAgICAAiLmAQoOTWVzc2FnZU9wdGlvbnMSJgoXbWVzc2FnZV9zZXRfd2ly", 
            "ZV9mb3JtYXQYASABKAg6BWZhbHNlEi4KH25vX3N0YW5kYXJkX2Rlc2NyaXB0", 
            "b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlEhkKCmRlcHJlY2F0ZWQYAyABKAg6", 
            "BWZhbHNlEhEKCW1hcF9lbnRyeRgHIAEoCBJDChR1bmludGVycHJldGVkX29w", 
            "dGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9w", 
            "dGlvbioJCOgHEICAgIACIpgDCgxGaWVsZE9wdGlvbnMSOgoFY3R5cGUYASAB", 
            "KA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJ", 
            "TkcSDgoGcGFja2VkGAIgASgIEj8KBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5w", 
            "cm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUwSEwoEbGF6", 
            "eRgFIAEoCDoFZmFsc2USGQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2USEwoE", 
            "d2VhaxgKIAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcg", 
            "AygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24iLwoF", 
            "Q1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRAC", 
            "IjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglK", 
            "U19OVU1CRVIQAioJCOgHEICAgIACIo0BCgtFbnVtT3B0aW9ucxITCgthbGxv", 
            "d19hbGlhcxgCIAEoCBIZCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZRJDChR1", 
            "bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYu", 
            "VW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIn0KEEVudW1WYWx1ZU9w", 
            "dGlvbnMSGQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2USQwoUdW5pbnRlcnBy", 
            "ZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJw", 
            "cmV0ZWRPcHRpb24qCQjoBxCAgICAAiJ7Cg5TZXJ2aWNlT3B0aW9ucxIZCgpk", 
            "ZXByZWNhdGVkGCEgASgIOgVmYWxzZRJDChR1bmludGVycHJldGVkX29wdGlv", 
            "bhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlv", 
            "bioJCOgHEICAgIACInoKDU1ldGhvZE9wdGlvbnMSGQoKZGVwcmVjYXRlZBgh", 
            "IAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQu", 
            "Z29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICA", 
            "AiKeAgoTVW5pbnRlcnByZXRlZE9wdGlvbhI7CgRuYW1lGAIgAygLMi0uZ29v", 
            "Z2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnQSGAoQ", 
            "aWRlbnRpZmllcl92YWx1ZRgDIAEoCRIaChJwb3NpdGl2ZV9pbnRfdmFsdWUY", 
            "BCABKAQSGgoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDEhQKDGRvdWJsZV92", 
            "YWx1ZRgGIAEoARIUCgxzdHJpbmdfdmFsdWUYByABKAwSFwoPYWdncmVnYXRl", 
            "X3ZhbHVlGAggASgJGjMKCE5hbWVQYXJ0EhEKCW5hbWVfcGFydBgBIAIoCRIU", 
            "Cgxpc19leHRlbnNpb24YAiACKAgi1QEKDlNvdXJjZUNvZGVJbmZvEjoKCGxv", 
            "Y2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZv", 
            "LkxvY2F0aW9uGoYBCghMb2NhdGlvbhIQCgRwYXRoGAEgAygFQgIQARIQCgRz", 
            "cGFuGAIgAygFQgIQARIYChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJEhkKEXRy", 
            "YWlsaW5nX2NvbW1lbnRzGAQgASgJEiEKGWxlYWRpbmdfZGV0YWNoZWRfY29t", 
            "bWVudHMYBiADKAlCUgoTY29tLmdvb2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRv", 
            "clByb3Rvc0gBogIDR1BCqgIgR29vZ2xlLlByb3RvYnVmLkRlc2NyaXB0b3JQ", 
          "cm90b3M="));
      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
        descriptor = root;
        internal__static_google_protobuf_FileDescriptorSet__Descriptor = Descriptor.MessageTypes[0];
        internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FileDescriptorSet>(internal__static_google_protobuf_FileDescriptorSet__Descriptor,
                new string[] { "File", });
        internal__static_google_protobuf_FileDescriptorProto__Descriptor = Descriptor.MessageTypes[1];
        internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FileDescriptorProto>(internal__static_google_protobuf_FileDescriptorProto__Descriptor,
                new string[] { "Name", "Package", "Dependency", "PublicDependency", "WeakDependency", "MessageType", "EnumType", "Service", "Extension", "Options", "SourceCodeInfo", "Syntax", });
        internal__static_google_protobuf_DescriptorProto__Descriptor = Descriptor.MessageTypes[2];
        internal__static_google_protobuf_DescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.DescriptorProto>(internal__static_google_protobuf_DescriptorProto__Descriptor,
                new string[] { "Name", "Field", "Extension", "NestedType", "EnumType", "ExtensionRange", "OneofDecl", "Options", "ReservedRange", "ReservedName", });
        internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor = internal__static_google_protobuf_DescriptorProto__Descriptor.NestedTypes[0];
        internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange>(internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor,
                new string[] { "Start", "End", });
        internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor = internal__static_google_protobuf_DescriptorProto__Descriptor.NestedTypes[1];
        internal__static_google_protobuf_DescriptorProto_ReservedRange__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange>(internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor,
                new string[] { "Start", "End", });
        internal__static_google_protobuf_FieldDescriptorProto__Descriptor = Descriptor.MessageTypes[3];
        internal__static_google_protobuf_FieldDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto>(internal__static_google_protobuf_FieldDescriptorProto__Descriptor,
                new string[] { "Name", "Number", "Label", "Type", "TypeName", "Extendee", "DefaultValue", "OneofIndex", "Options", });
        internal__static_google_protobuf_OneofDescriptorProto__Descriptor = Descriptor.MessageTypes[4];
        internal__static_google_protobuf_OneofDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto>(internal__static_google_protobuf_OneofDescriptorProto__Descriptor,
                new string[] { "Name", });
        internal__static_google_protobuf_EnumDescriptorProto__Descriptor = Descriptor.MessageTypes[5];
        internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto>(internal__static_google_protobuf_EnumDescriptorProto__Descriptor,
                new string[] { "Name", "Value", "Options", });
        internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor = Descriptor.MessageTypes[6];
        internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto>(internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor,
                new string[] { "Name", "Number", "Options", });
        internal__static_google_protobuf_ServiceDescriptorProto__Descriptor = Descriptor.MessageTypes[7];
        internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto>(internal__static_google_protobuf_ServiceDescriptorProto__Descriptor,
                new string[] { "Name", "Method", "Options", });
        internal__static_google_protobuf_MethodDescriptorProto__Descriptor = Descriptor.MessageTypes[8];
        internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto>(internal__static_google_protobuf_MethodDescriptorProto__Descriptor,
                new string[] { "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming", });
        internal__static_google_protobuf_FileOptions__Descriptor = Descriptor.MessageTypes[9];
        internal__static_google_protobuf_FileOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FileOptions>(internal__static_google_protobuf_FileOptions__Descriptor,
                new string[] { "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "UninterpretedOption", });
        internal__static_google_protobuf_MessageOptions__Descriptor = Descriptor.MessageTypes[10];
        internal__static_google_protobuf_MessageOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.MessageOptions>(internal__static_google_protobuf_MessageOptions__Descriptor,
                new string[] { "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption", });
        internal__static_google_protobuf_FieldOptions__Descriptor = Descriptor.MessageTypes[11];
        internal__static_google_protobuf_FieldOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.FieldOptions>(internal__static_google_protobuf_FieldOptions__Descriptor,
                new string[] { "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption", });
        internal__static_google_protobuf_EnumOptions__Descriptor = Descriptor.MessageTypes[12];
        internal__static_google_protobuf_EnumOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumOptions>(internal__static_google_protobuf_EnumOptions__Descriptor,
                new string[] { "AllowAlias", "Deprecated", "UninterpretedOption", });
        internal__static_google_protobuf_EnumValueOptions__Descriptor = Descriptor.MessageTypes[13];
        internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.EnumValueOptions>(internal__static_google_protobuf_EnumValueOptions__Descriptor,
                new string[] { "Deprecated", "UninterpretedOption", });
        internal__static_google_protobuf_ServiceOptions__Descriptor = Descriptor.MessageTypes[14];
        internal__static_google_protobuf_ServiceOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.ServiceOptions>(internal__static_google_protobuf_ServiceOptions__Descriptor,
                new string[] { "Deprecated", "UninterpretedOption", });
        internal__static_google_protobuf_MethodOptions__Descriptor = Descriptor.MessageTypes[15];
        internal__static_google_protobuf_MethodOptions__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.MethodOptions>(internal__static_google_protobuf_MethodOptions__Descriptor,
                new string[] { "Deprecated", "UninterpretedOption", });
        internal__static_google_protobuf_UninterpretedOption__Descriptor = Descriptor.MessageTypes[16];
        internal__static_google_protobuf_UninterpretedOption__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>(internal__static_google_protobuf_UninterpretedOption__Descriptor,
                new string[] { "Name", "IdentifierValue", "PositiveIntValue", "NegativeIntValue", "DoubleValue", "StringValue", "AggregateValue", });
        internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor = internal__static_google_protobuf_UninterpretedOption__Descriptor.NestedTypes[0];
        internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart>(internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor,
                new string[] { "NamePart_", "IsExtension", });
        internal__static_google_protobuf_SourceCodeInfo__Descriptor = Descriptor.MessageTypes[17];
        internal__static_google_protobuf_SourceCodeInfo__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo>(internal__static_google_protobuf_SourceCodeInfo__Descriptor,
                new string[] { "Location", });
        internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor = internal__static_google_protobuf_SourceCodeInfo__Descriptor.NestedTypes[0];
        internal__static_google_protobuf_SourceCodeInfo_Location__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location>(internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor,
                new string[] { "Path", "Span", "LeadingComments", "TrailingComments", "LeadingDetachedComments", });
      };
      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
          new pbd::FileDescriptor[] {
          }, assigner);
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class FileDescriptorSet : pb::IMessage<FileDescriptorSet>, global::System.IEquatable<FileDescriptorSet> {
    private static readonly pb::MessageParser<FileDescriptorSet> _parser = new pb::MessageParser<FileDescriptorSet>(() => new FileDescriptorSet());
    public static pb::MessageParser<FileDescriptorSet> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "file" };
    private static readonly uint[] _fieldTags = new uint[] { 10 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorSet__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<FileDescriptorSet> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable; }
    }

    public FileDescriptorSet() { }
    public FileDescriptorSet(FileDescriptorSet other) {
      MergeFrom(other);
    }
    public const int FileFieldNumber = 1;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FileDescriptorProto> file_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FileDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FileDescriptorProto> File {
      get { return file_; }
    }

    public override bool Equals(object other) {
      return Equals(other as FileDescriptorSet);
    }

    public bool Equals(FileDescriptorSet other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!file_.Equals(other.file_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      hash ^= file_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      output.WriteMessageArray(1, fieldNames[0], file_);
    }

    public int CalculateSize() {
      int size = 0;
      foreach (global::Google.Protobuf.DescriptorProtos.FileDescriptorProto element in file_) {
        size += pb::CodedOutputStream.ComputeMessageSize(1, element);
      }
      return size;
    }
    public void MergeFrom(FileDescriptorSet other) {
      if (other == null) {
        return;
      }
      file_.Add(other.file_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadMessageArray(tag, fieldName, file_, global::Google.Protobuf.DescriptorProtos.FileDescriptorProto.Parser);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class FileDescriptorProto : pb::IMessage<FileDescriptorProto>, global::System.IEquatable<FileDescriptorProto> {
    private static readonly pb::MessageParser<FileDescriptorProto> _parser = new pb::MessageParser<FileDescriptorProto>(() => new FileDescriptorProto());
    public static pb::MessageParser<FileDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "dependency", "enum_type", "extension", "message_type", "name", "options", "package", "public_dependency", "service", "source_code_info", "syntax", "weak_dependency" };
    private static readonly uint[] _fieldTags = new uint[] { 26, 42, 58, 34, 10, 66, 18, 80, 50, 74, 98, 88 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<FileDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable; }
    }

    public FileDescriptorProto() { }
    public FileDescriptorProto(FileDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int PackageFieldNumber = 2;
    private string package_ = "";
    public string Package {
      get { return package_; }
      set { package_ = value ?? ""; }
    }


    public const int DependencyFieldNumber = 3;
    private readonly pbc::RepeatedField<string> dependency_ = new pbc::RepeatedField<string>();
    public pbc::RepeatedField<string> Dependency {
      get { return dependency_; }
    }

    public const int PublicDependencyFieldNumber = 10;
    private readonly pbc::RepeatedField<int> publicDependency_ = new pbc::RepeatedField<int>();
    public pbc::RepeatedField<int> PublicDependency {
      get { return publicDependency_; }
    }

    public const int WeakDependencyFieldNumber = 11;
    private readonly pbc::RepeatedField<int> weakDependency_ = new pbc::RepeatedField<int>();
    public pbc::RepeatedField<int> WeakDependency {
      get { return weakDependency_; }
    }

    public const int MessageTypeFieldNumber = 4;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto> messageType_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto> MessageType {
      get { return messageType_; }
    }

    public const int EnumTypeFieldNumber = 5;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto> EnumType {
      get { return enumType_; }
    }

    public const int ServiceFieldNumber = 6;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto> service_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto> Service {
      get { return service_; }
    }

    public const int ExtensionFieldNumber = 7;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> Extension {
      get { return extension_; }
    }

    public const int OptionsFieldNumber = 8;
    private global::Google.Protobuf.DescriptorProtos.FileOptions options_;
    public global::Google.Protobuf.DescriptorProtos.FileOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public const int SourceCodeInfoFieldNumber = 9;
    private global::Google.Protobuf.DescriptorProtos.SourceCodeInfo sourceCodeInfo_;
    public global::Google.Protobuf.DescriptorProtos.SourceCodeInfo SourceCodeInfo {
      get { return sourceCodeInfo_; }
      set { sourceCodeInfo_ = value; }
    }

    public const int SyntaxFieldNumber = 12;
    private string syntax_ = "";
    public string Syntax {
      get { return syntax_; }
      set { syntax_ = value ?? ""; }
    }


    public override bool Equals(object other) {
      return Equals(other as FileDescriptorProto);
    }

    public bool Equals(FileDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Package != other.Package) return false;
      if(!dependency_.Equals(other.dependency_)) return false;
      if(!publicDependency_.Equals(other.publicDependency_)) return false;
      if(!weakDependency_.Equals(other.weakDependency_)) return false;
      if(!messageType_.Equals(other.messageType_)) return false;
      if(!enumType_.Equals(other.enumType_)) return false;
      if(!service_.Equals(other.service_)) return false;
      if(!extension_.Equals(other.extension_)) return false;
      if (!object.Equals(Options, other.Options)) return false;if (!object.Equals(SourceCodeInfo, other.SourceCodeInfo)) return false;if (Syntax != other.Syntax) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      if (Package != "") hash ^= Package.GetHashCode();
      hash ^= dependency_.GetHashCode();
      hash ^= publicDependency_.GetHashCode();
      hash ^= weakDependency_.GetHashCode();
      hash ^= messageType_.GetHashCode();
      hash ^= enumType_.GetHashCode();
      hash ^= service_.GetHashCode();
      hash ^= extension_.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      if (sourceCodeInfo_ != null) hash ^= SourceCodeInfo.GetHashCode();
      if (Syntax != "") hash ^= Syntax.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[4], Name);
      }
      if (Package != "") {
        output.WriteString(2, fieldNames[6], Package);
      }
      output.WriteStringArray(3, fieldNames[0], dependency_);
      output.WriteMessageArray(4, fieldNames[3], messageType_);
      output.WriteMessageArray(5, fieldNames[1], enumType_);
      output.WriteMessageArray(6, fieldNames[8], service_);
      output.WriteMessageArray(7, fieldNames[2], extension_);
      if (options_ != null) {
        output.WriteMessage(8, fieldNames[5], Options);
      }
      if (sourceCodeInfo_ != null) {
        output.WriteMessage(9, fieldNames[9], SourceCodeInfo);
      }
      output.WriteInt32Array(10, fieldNames[7], publicDependency_);
      output.WriteInt32Array(11, fieldNames[11], weakDependency_);
      if (Syntax != "") {
        output.WriteString(12, fieldNames[10], Syntax);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      if (Package != "") {
        size += pb::CodedOutputStream.ComputeStringSize(2, Package);
      }
      {
        int dataSize = 0;
        foreach (string element in dependency_) {
          dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * dependency_.Count;
      }
      {
        int dataSize = 0;
        foreach (int element in publicDependency_) {
          dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
        }
        size += dataSize;
        size += 1 * publicDependency_.Count;
      }
      {
        int dataSize = 0;
        foreach (int element in weakDependency_) {
          dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
        }
        size += dataSize;
        size += 1 * weakDependency_.Count;
      }
      foreach (global::Google.Protobuf.DescriptorProtos.DescriptorProto element in messageType_) {
        size += pb::CodedOutputStream.ComputeMessageSize(4, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto element in enumType_) {
        size += pb::CodedOutputStream.ComputeMessageSize(5, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto element in service_) {
        size += pb::CodedOutputStream.ComputeMessageSize(6, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto element in extension_) {
        size += pb::CodedOutputStream.ComputeMessageSize(7, element);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(8, Options);
      }
      if (sourceCodeInfo_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(9, SourceCodeInfo);
      }
      if (Syntax != "") {
        size += pb::CodedOutputStream.ComputeStringSize(12, Syntax);
      }
      return size;
    }
    public void MergeFrom(FileDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      if (other.Package != "") {
        Package = other.Package;
      }
      dependency_.Add(other.dependency_);
      publicDependency_.Add(other.publicDependency_);
      weakDependency_.Add(other.weakDependency_);
      messageType_.Add(other.messageType_);
      enumType_.Add(other.enumType_);
      service_.Add(other.service_);
      extension_.Add(other.extension_);
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.FileOptions();
        }
        Options.MergeFrom(other.Options);
      }
      if (other.sourceCodeInfo_ != null) {
        if (sourceCodeInfo_ == null) {
          sourceCodeInfo_ = new global::Google.Protobuf.DescriptorProtos.SourceCodeInfo();
        }
        SourceCodeInfo.MergeFrom(other.SourceCodeInfo);
      }
      if (other.Syntax != "") {
        Syntax = other.Syntax;
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 18: {
            input.ReadString(ref package_);
            break;
          }
          case 26: {
            input.ReadStringArray(tag, fieldName, dependency_);
            break;
          }
          case 34: {
            input.ReadMessageArray(tag, fieldName, messageType_, global::Google.Protobuf.DescriptorProtos.DescriptorProto.Parser);
            break;
          }
          case 42: {
            input.ReadMessageArray(tag, fieldName, enumType_, global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto.Parser);
            break;
          }
          case 50: {
            input.ReadMessageArray(tag, fieldName, service_, global::Google.Protobuf.DescriptorProtos.ServiceDescriptorProto.Parser);
            break;
          }
          case 58: {
            input.ReadMessageArray(tag, fieldName, extension_, global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Parser);
            break;
          }
          case 66: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.FileOptions();
            }
            input.ReadMessage(options_);
            break;
          }
          case 74: {
            if (sourceCodeInfo_ == null) {
              sourceCodeInfo_ = new global::Google.Protobuf.DescriptorProtos.SourceCodeInfo();
            }
            input.ReadMessage(sourceCodeInfo_);
            break;
          }
          case 82:
          case 80: {
            input.ReadInt32Array(tag, fieldName, publicDependency_);
            break;
          }
          case 90:
          case 88: {
            input.ReadInt32Array(tag, fieldName, weakDependency_);
            break;
          }
          case 98: {
            input.ReadString(ref syntax_);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class DescriptorProto : pb::IMessage<DescriptorProto>, global::System.IEquatable<DescriptorProto> {
    private static readonly pb::MessageParser<DescriptorProto> _parser = new pb::MessageParser<DescriptorProto>(() => new DescriptorProto());
    public static pb::MessageParser<DescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "enum_type", "extension", "extension_range", "field", "name", "nested_type", "oneof_decl", "options", "reserved_name", "reserved_range" };
    private static readonly uint[] _fieldTags = new uint[] { 34, 50, 42, 18, 10, 26, 66, 58, 82, 74 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<DescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto__FieldAccessorTable; }
    }

    public DescriptorProto() { }
    public DescriptorProto(DescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int FieldFieldNumber = 2;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> field_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> Field {
      get { return field_; }
    }

    public const int ExtensionFieldNumber = 6;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto> Extension {
      get { return extension_; }
    }

    public const int NestedTypeFieldNumber = 3;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto> nestedType_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto> NestedType {
      get { return nestedType_; }
    }

    public const int EnumTypeFieldNumber = 4;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto> EnumType {
      get { return enumType_; }
    }

    public const int ExtensionRangeFieldNumber = 5;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange> extensionRange_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange> ExtensionRange {
      get { return extensionRange_; }
    }

    public const int OneofDeclFieldNumber = 8;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto> oneofDecl_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto> OneofDecl {
      get { return oneofDecl_; }
    }

    public const int OptionsFieldNumber = 7;
    private global::Google.Protobuf.DescriptorProtos.MessageOptions options_;
    public global::Google.Protobuf.DescriptorProtos.MessageOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public const int ReservedRangeFieldNumber = 9;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange> reservedRange_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange> ReservedRange {
      get { return reservedRange_; }
    }

    public const int ReservedNameFieldNumber = 10;
    private readonly pbc::RepeatedField<string> reservedName_ = new pbc::RepeatedField<string>();
    public pbc::RepeatedField<string> ReservedName {
      get { return reservedName_; }
    }

    public override bool Equals(object other) {
      return Equals(other as DescriptorProto);
    }

    public bool Equals(DescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if(!field_.Equals(other.field_)) return false;
      if(!extension_.Equals(other.extension_)) return false;
      if(!nestedType_.Equals(other.nestedType_)) return false;
      if(!enumType_.Equals(other.enumType_)) return false;
      if(!extensionRange_.Equals(other.extensionRange_)) return false;
      if(!oneofDecl_.Equals(other.oneofDecl_)) return false;
      if (!object.Equals(Options, other.Options)) return false;if(!reservedRange_.Equals(other.reservedRange_)) return false;
      if(!reservedName_.Equals(other.reservedName_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      hash ^= field_.GetHashCode();
      hash ^= extension_.GetHashCode();
      hash ^= nestedType_.GetHashCode();
      hash ^= enumType_.GetHashCode();
      hash ^= extensionRange_.GetHashCode();
      hash ^= oneofDecl_.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      hash ^= reservedRange_.GetHashCode();
      hash ^= reservedName_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[4], Name);
      }
      output.WriteMessageArray(2, fieldNames[3], field_);
      output.WriteMessageArray(3, fieldNames[5], nestedType_);
      output.WriteMessageArray(4, fieldNames[0], enumType_);
      output.WriteMessageArray(5, fieldNames[2], extensionRange_);
      output.WriteMessageArray(6, fieldNames[1], extension_);
      if (options_ != null) {
        output.WriteMessage(7, fieldNames[7], Options);
      }
      output.WriteMessageArray(8, fieldNames[6], oneofDecl_);
      output.WriteMessageArray(9, fieldNames[9], reservedRange_);
      output.WriteStringArray(10, fieldNames[8], reservedName_);
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto element in field_) {
        size += pb::CodedOutputStream.ComputeMessageSize(2, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto element in extension_) {
        size += pb::CodedOutputStream.ComputeMessageSize(6, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.DescriptorProto element in nestedType_) {
        size += pb::CodedOutputStream.ComputeMessageSize(3, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto element in enumType_) {
        size += pb::CodedOutputStream.ComputeMessageSize(4, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange element in extensionRange_) {
        size += pb::CodedOutputStream.ComputeMessageSize(5, element);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto element in oneofDecl_) {
        size += pb::CodedOutputStream.ComputeMessageSize(8, element);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(7, Options);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange element in reservedRange_) {
        size += pb::CodedOutputStream.ComputeMessageSize(9, element);
      }
      {
        int dataSize = 0;
        foreach (string element in reservedName_) {
          dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * reservedName_.Count;
      }
      return size;
    }
    public void MergeFrom(DescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      field_.Add(other.field_);
      extension_.Add(other.extension_);
      nestedType_.Add(other.nestedType_);
      enumType_.Add(other.enumType_);
      extensionRange_.Add(other.extensionRange_);
      oneofDecl_.Add(other.oneofDecl_);
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.MessageOptions();
        }
        Options.MergeFrom(other.Options);
      }
      reservedRange_.Add(other.reservedRange_);
      reservedName_.Add(other.reservedName_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 18: {
            input.ReadMessageArray(tag, fieldName, field_, global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Parser);
            break;
          }
          case 26: {
            input.ReadMessageArray(tag, fieldName, nestedType_, global::Google.Protobuf.DescriptorProtos.DescriptorProto.Parser);
            break;
          }
          case 34: {
            input.ReadMessageArray(tag, fieldName, enumType_, global::Google.Protobuf.DescriptorProtos.EnumDescriptorProto.Parser);
            break;
          }
          case 42: {
            input.ReadMessageArray(tag, fieldName, extensionRange_, global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ExtensionRange.Parser);
            break;
          }
          case 50: {
            input.ReadMessageArray(tag, fieldName, extension_, global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Parser);
            break;
          }
          case 58: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.MessageOptions();
            }
            input.ReadMessage(options_);
            break;
          }
          case 66: {
            input.ReadMessageArray(tag, fieldName, oneofDecl_, global::Google.Protobuf.DescriptorProtos.OneofDescriptorProto.Parser);
            break;
          }
          case 74: {
            input.ReadMessageArray(tag, fieldName, reservedRange_, global::Google.Protobuf.DescriptorProtos.DescriptorProto.Types.ReservedRange.Parser);
            break;
          }
          case 82: {
            input.ReadStringArray(tag, fieldName, reservedName_);
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      public sealed partial class ExtensionRange : pb::IMessage<ExtensionRange>, global::System.IEquatable<ExtensionRange> {
        private static readonly pb::MessageParser<ExtensionRange> _parser = new pb::MessageParser<ExtensionRange>(() => new ExtensionRange());
        public static pb::MessageParser<ExtensionRange> Parser { get { return _parser; } }

        private static readonly string[] _fieldNames = new string[] { "end", "start" };
        private static readonly uint[] _fieldTags = new uint[] { 16, 8 };
        public static pbd::MessageDescriptor Descriptor {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor; }
        }

        public pb::FieldAccess.FieldAccessorTable<ExtensionRange> Fields {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable; }
        }

        public ExtensionRange() { }
        public ExtensionRange(ExtensionRange other) {
          MergeFrom(other);
        }
        public const int StartFieldNumber = 1;
        private int start_;
        public int Start {
          get { return start_; }
          set { start_ = value; }
        }


        public const int EndFieldNumber = 2;
        private int end_;
        public int End {
          get { return end_; }
          set { end_ = value; }
        }


        public override bool Equals(object other) {
          return Equals(other as ExtensionRange);
        }

        public bool Equals(ExtensionRange other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Start != other.Start) return false;
          if (End != other.End) return false;
          return true;
        }

        public override int GetHashCode() {
          int hash = 0;
          if (Start != 0) hash ^= Start.GetHashCode();
          if (End != 0) hash ^= End.GetHashCode();
          return hash;
        }

        public void WriteTo(pb::ICodedOutputStream output) {
          string[] fieldNames = _fieldNames;
          if (Start != 0) {
            output.WriteInt32(1, fieldNames[1], Start);
          }
          if (End != 0) {
            output.WriteInt32(2, fieldNames[0], End);
          }
        }

        public int CalculateSize() {
          int size = 0;
          if (Start != 0) {
            size += pb::CodedOutputStream.ComputeInt32Size(1, Start);
          }
          if (End != 0) {
            size += pb::CodedOutputStream.ComputeInt32Size(2, End);
          }
          return size;
        }
        public void MergeFrom(ExtensionRange other) {
          if (other == null) {
            return;
          }
          if (other.Start != 0) {
            Start = other.Start;
          }
          if (other.End != 0) {
            End = other.End;
          }
        }

        public void MergeFrom(pb::ICodedInputStream input) {
          uint tag;
          string fieldName;
          while (input.ReadTag(out tag, out fieldName)) {
            if (tag == 0 && fieldName != null) {
              int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
              if (fieldOrdinal >= 0) {
                tag = _fieldTags[fieldOrdinal];
              }
            }
            switch(tag) {
              case 0:
                throw pb::InvalidProtocolBufferException.InvalidTag();
              default:
                if (pb::WireFormat.IsEndGroupTag(tag)) {
                  return;
                }
                break;
              case 8: {
                input.ReadInt32(ref start_);
                break;
              }
              case 16: {
                input.ReadInt32(ref end_);
                break;
              }
            }
          }
        }

      }

      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      public sealed partial class ReservedRange : pb::IMessage<ReservedRange>, global::System.IEquatable<ReservedRange> {
        private static readonly pb::MessageParser<ReservedRange> _parser = new pb::MessageParser<ReservedRange>(() => new ReservedRange());
        public static pb::MessageParser<ReservedRange> Parser { get { return _parser; } }

        private static readonly string[] _fieldNames = new string[] { "end", "start" };
        private static readonly uint[] _fieldTags = new uint[] { 16, 8 };
        public static pbd::MessageDescriptor Descriptor {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor; }
        }

        public pb::FieldAccess.FieldAccessorTable<ReservedRange> Fields {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ReservedRange__FieldAccessorTable; }
        }

        public ReservedRange() { }
        public ReservedRange(ReservedRange other) {
          MergeFrom(other);
        }
        public const int StartFieldNumber = 1;
        private int start_;
        public int Start {
          get { return start_; }
          set { start_ = value; }
        }


        public const int EndFieldNumber = 2;
        private int end_;
        public int End {
          get { return end_; }
          set { end_ = value; }
        }


        public override bool Equals(object other) {
          return Equals(other as ReservedRange);
        }

        public bool Equals(ReservedRange other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Start != other.Start) return false;
          if (End != other.End) return false;
          return true;
        }

        public override int GetHashCode() {
          int hash = 0;
          if (Start != 0) hash ^= Start.GetHashCode();
          if (End != 0) hash ^= End.GetHashCode();
          return hash;
        }

        public void WriteTo(pb::ICodedOutputStream output) {
          string[] fieldNames = _fieldNames;
          if (Start != 0) {
            output.WriteInt32(1, fieldNames[1], Start);
          }
          if (End != 0) {
            output.WriteInt32(2, fieldNames[0], End);
          }
        }

        public int CalculateSize() {
          int size = 0;
          if (Start != 0) {
            size += pb::CodedOutputStream.ComputeInt32Size(1, Start);
          }
          if (End != 0) {
            size += pb::CodedOutputStream.ComputeInt32Size(2, End);
          }
          return size;
        }
        public void MergeFrom(ReservedRange other) {
          if (other == null) {
            return;
          }
          if (other.Start != 0) {
            Start = other.Start;
          }
          if (other.End != 0) {
            End = other.End;
          }
        }

        public void MergeFrom(pb::ICodedInputStream input) {
          uint tag;
          string fieldName;
          while (input.ReadTag(out tag, out fieldName)) {
            if (tag == 0 && fieldName != null) {
              int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
              if (fieldOrdinal >= 0) {
                tag = _fieldTags[fieldOrdinal];
              }
            }
            switch(tag) {
              case 0:
                throw pb::InvalidProtocolBufferException.InvalidTag();
              default:
                if (pb::WireFormat.IsEndGroupTag(tag)) {
                  return;
                }
                break;
              case 8: {
                input.ReadInt32(ref start_);
                break;
              }
              case 16: {
                input.ReadInt32(ref end_);
                break;
              }
            }
          }
        }

      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class FieldDescriptorProto : pb::IMessage<FieldDescriptorProto>, global::System.IEquatable<FieldDescriptorProto> {
    private static readonly pb::MessageParser<FieldDescriptorProto> _parser = new pb::MessageParser<FieldDescriptorProto>(() => new FieldDescriptorProto());
    public static pb::MessageParser<FieldDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "default_value", "extendee", "label", "name", "number", "oneof_index", "options", "type", "type_name" };
    private static readonly uint[] _fieldTags = new uint[] { 58, 18, 32, 10, 24, 72, 66, 40, 50 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<FieldDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldDescriptorProto__FieldAccessorTable; }
    }

    public FieldDescriptorProto() { }
    public FieldDescriptorProto(FieldDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int NumberFieldNumber = 3;
    private int number_;
    public int Number {
      get { return number_; }
      set { number_ = value; }
    }


    public const int LabelFieldNumber = 4;
    private global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label label_ = global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL;
    public global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label Label {
      get { return label_; }
      set { label_ = value; }
    }


    public const int TypeFieldNumber = 5;
    private global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type type_ = global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE;
    public global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type Type {
      get { return type_; }
      set { type_ = value; }
    }


    public const int TypeNameFieldNumber = 6;
    private string typeName_ = "";
    public string TypeName {
      get { return typeName_; }
      set { typeName_ = value ?? ""; }
    }


    public const int ExtendeeFieldNumber = 2;
    private string extendee_ = "";
    public string Extendee {
      get { return extendee_; }
      set { extendee_ = value ?? ""; }
    }


    public const int DefaultValueFieldNumber = 7;
    private string defaultValue_ = "";
    public string DefaultValue {
      get { return defaultValue_; }
      set { defaultValue_ = value ?? ""; }
    }


    public const int OneofIndexFieldNumber = 9;
    private int oneofIndex_;
    public int OneofIndex {
      get { return oneofIndex_; }
      set { oneofIndex_ = value; }
    }


    public const int OptionsFieldNumber = 8;
    private global::Google.Protobuf.DescriptorProtos.FieldOptions options_;
    public global::Google.Protobuf.DescriptorProtos.FieldOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public override bool Equals(object other) {
      return Equals(other as FieldDescriptorProto);
    }

    public bool Equals(FieldDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Number != other.Number) return false;
      if (Label != other.Label) return false;
      if (Type != other.Type) return false;
      if (TypeName != other.TypeName) return false;
      if (Extendee != other.Extendee) return false;
      if (DefaultValue != other.DefaultValue) return false;
      if (OneofIndex != other.OneofIndex) return false;
      if (!object.Equals(Options, other.Options)) return false;  return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      if (Number != 0) hash ^= Number.GetHashCode();
      if (Label != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL) hash ^= Label.GetHashCode();
      if (Type != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE) hash ^= Type.GetHashCode();
      if (TypeName != "") hash ^= TypeName.GetHashCode();
      if (Extendee != "") hash ^= Extendee.GetHashCode();
      if (DefaultValue != "") hash ^= DefaultValue.GetHashCode();
      if (OneofIndex != 0) hash ^= OneofIndex.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[3], Name);
      }
      if (Extendee != "") {
        output.WriteString(2, fieldNames[1], Extendee);
      }
      if (Number != 0) {
        output.WriteInt32(3, fieldNames[4], Number);
      }
      if (Label != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL) {
        output.WriteEnum(4, fieldNames[2], (int) Label);
      }
      if (Type != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE) {
        output.WriteEnum(5, fieldNames[7], (int) Type);
      }
      if (TypeName != "") {
        output.WriteString(6, fieldNames[8], TypeName);
      }
      if (DefaultValue != "") {
        output.WriteString(7, fieldNames[0], DefaultValue);
      }
      if (options_ != null) {
        output.WriteMessage(8, fieldNames[6], Options);
      }
      if (OneofIndex != 0) {
        output.WriteInt32(9, fieldNames[5], OneofIndex);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      if (Number != 0) {
        size += pb::CodedOutputStream.ComputeInt32Size(3, Number);
      }
      if (Label != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL) {
        size += pb::CodedOutputStream.ComputeEnumSize(4, (int) Label);
      }
      if (Type != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE) {
        size += pb::CodedOutputStream.ComputeEnumSize(5, (int) Type);
      }
      if (TypeName != "") {
        size += pb::CodedOutputStream.ComputeStringSize(6, TypeName);
      }
      if (Extendee != "") {
        size += pb::CodedOutputStream.ComputeStringSize(2, Extendee);
      }
      if (DefaultValue != "") {
        size += pb::CodedOutputStream.ComputeStringSize(7, DefaultValue);
      }
      if (OneofIndex != 0) {
        size += pb::CodedOutputStream.ComputeInt32Size(9, OneofIndex);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(8, Options);
      }
      return size;
    }
    public void MergeFrom(FieldDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      if (other.Number != 0) {
        Number = other.Number;
      }
      if (other.Label != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL) {
        Label = other.Label;
      }
      if (other.Type != global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE) {
        Type = other.Type;
      }
      if (other.TypeName != "") {
        TypeName = other.TypeName;
      }
      if (other.Extendee != "") {
        Extendee = other.Extendee;
      }
      if (other.DefaultValue != "") {
        DefaultValue = other.DefaultValue;
      }
      if (other.OneofIndex != 0) {
        OneofIndex = other.OneofIndex;
      }
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.FieldOptions();
        }
        Options.MergeFrom(other.Options);
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 18: {
            input.ReadString(ref extendee_);
            break;
          }
          case 24: {
            input.ReadInt32(ref number_);
            break;
          }
          case 32: {
            int tmp = 0;
            input.ReadEnum(ref tmp);
            label_ = (global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Label) tmp;break;
          }
          case 40: {
            int tmp = 0;
            input.ReadEnum(ref tmp);
            type_ = (global::Google.Protobuf.DescriptorProtos.FieldDescriptorProto.Types.Type) tmp;break;
          }
          case 50: {
            input.ReadString(ref typeName_);
            break;
          }
          case 58: {
            input.ReadString(ref defaultValue_);
            break;
          }
          case 66: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.FieldOptions();
            }
            input.ReadMessage(options_);
            break;
          }
          case 72: {
            input.ReadInt32(ref oneofIndex_);
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public static partial class Types {
      public enum Type {
        TYPE_DOUBLE = 1,
        TYPE_FLOAT = 2,
        TYPE_INT64 = 3,
        TYPE_UINT64 = 4,
        TYPE_INT32 = 5,
        TYPE_FIXED64 = 6,
        TYPE_FIXED32 = 7,
        TYPE_BOOL = 8,
        TYPE_STRING = 9,
        TYPE_GROUP = 10,
        TYPE_MESSAGE = 11,
        TYPE_BYTES = 12,
        TYPE_UINT32 = 13,
        TYPE_ENUM = 14,
        TYPE_SFIXED32 = 15,
        TYPE_SFIXED64 = 16,
        TYPE_SINT32 = 17,
        TYPE_SINT64 = 18,
      }

      public enum Label {
        LABEL_OPTIONAL = 1,
        LABEL_REQUIRED = 2,
        LABEL_REPEATED = 3,
      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class OneofDescriptorProto : pb::IMessage<OneofDescriptorProto>, global::System.IEquatable<OneofDescriptorProto> {
    private static readonly pb::MessageParser<OneofDescriptorProto> _parser = new pb::MessageParser<OneofDescriptorProto>(() => new OneofDescriptorProto());
    public static pb::MessageParser<OneofDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "name" };
    private static readonly uint[] _fieldTags = new uint[] { 10 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_OneofDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<OneofDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_OneofDescriptorProto__FieldAccessorTable; }
    }

    public OneofDescriptorProto() { }
    public OneofDescriptorProto(OneofDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public override bool Equals(object other) {
      return Equals(other as OneofDescriptorProto);
    }

    public bool Equals(OneofDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[0], Name);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      return size;
    }
    public void MergeFrom(OneofDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class EnumDescriptorProto : pb::IMessage<EnumDescriptorProto>, global::System.IEquatable<EnumDescriptorProto> {
    private static readonly pb::MessageParser<EnumDescriptorProto> _parser = new pb::MessageParser<EnumDescriptorProto>(() => new EnumDescriptorProto());
    public static pb::MessageParser<EnumDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "name", "options", "value" };
    private static readonly uint[] _fieldTags = new uint[] { 10, 26, 18 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<EnumDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable; }
    }

    public EnumDescriptorProto() { }
    public EnumDescriptorProto(EnumDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int ValueFieldNumber = 2;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto> value_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto> Value {
      get { return value_; }
    }

    public const int OptionsFieldNumber = 3;
    private global::Google.Protobuf.DescriptorProtos.EnumOptions options_;
    public global::Google.Protobuf.DescriptorProtos.EnumOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public override bool Equals(object other) {
      return Equals(other as EnumDescriptorProto);
    }

    public bool Equals(EnumDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if(!value_.Equals(other.value_)) return false;
      if (!object.Equals(Options, other.Options)) return false;  return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      hash ^= value_.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[0], Name);
      }
      output.WriteMessageArray(2, fieldNames[2], value_);
      if (options_ != null) {
        output.WriteMessage(3, fieldNames[1], Options);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto element in value_) {
        size += pb::CodedOutputStream.ComputeMessageSize(2, element);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(3, Options);
      }
      return size;
    }
    public void MergeFrom(EnumDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      value_.Add(other.value_);
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.EnumOptions();
        }
        Options.MergeFrom(other.Options);
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 18: {
            input.ReadMessageArray(tag, fieldName, value_, global::Google.Protobuf.DescriptorProtos.EnumValueDescriptorProto.Parser);
            break;
          }
          case 26: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.EnumOptions();
            }
            input.ReadMessage(options_);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class EnumValueDescriptorProto : pb::IMessage<EnumValueDescriptorProto>, global::System.IEquatable<EnumValueDescriptorProto> {
    private static readonly pb::MessageParser<EnumValueDescriptorProto> _parser = new pb::MessageParser<EnumValueDescriptorProto>(() => new EnumValueDescriptorProto());
    public static pb::MessageParser<EnumValueDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "name", "number", "options" };
    private static readonly uint[] _fieldTags = new uint[] { 10, 16, 26 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<EnumValueDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable; }
    }

    public EnumValueDescriptorProto() { }
    public EnumValueDescriptorProto(EnumValueDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int NumberFieldNumber = 2;
    private int number_;
    public int Number {
      get { return number_; }
      set { number_ = value; }
    }


    public const int OptionsFieldNumber = 3;
    private global::Google.Protobuf.DescriptorProtos.EnumValueOptions options_;
    public global::Google.Protobuf.DescriptorProtos.EnumValueOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public override bool Equals(object other) {
      return Equals(other as EnumValueDescriptorProto);
    }

    public bool Equals(EnumValueDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Number != other.Number) return false;
      if (!object.Equals(Options, other.Options)) return false;  return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      if (Number != 0) hash ^= Number.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[0], Name);
      }
      if (Number != 0) {
        output.WriteInt32(2, fieldNames[1], Number);
      }
      if (options_ != null) {
        output.WriteMessage(3, fieldNames[2], Options);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      if (Number != 0) {
        size += pb::CodedOutputStream.ComputeInt32Size(2, Number);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(3, Options);
      }
      return size;
    }
    public void MergeFrom(EnumValueDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      if (other.Number != 0) {
        Number = other.Number;
      }
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.EnumValueOptions();
        }
        Options.MergeFrom(other.Options);
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 16: {
            input.ReadInt32(ref number_);
            break;
          }
          case 26: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.EnumValueOptions();
            }
            input.ReadMessage(options_);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class ServiceDescriptorProto : pb::IMessage<ServiceDescriptorProto>, global::System.IEquatable<ServiceDescriptorProto> {
    private static readonly pb::MessageParser<ServiceDescriptorProto> _parser = new pb::MessageParser<ServiceDescriptorProto>(() => new ServiceDescriptorProto());
    public static pb::MessageParser<ServiceDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "method", "name", "options" };
    private static readonly uint[] _fieldTags = new uint[] { 18, 10, 26 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<ServiceDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable; }
    }

    public ServiceDescriptorProto() { }
    public ServiceDescriptorProto(ServiceDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int MethodFieldNumber = 2;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto> method_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto> Method {
      get { return method_; }
    }

    public const int OptionsFieldNumber = 3;
    private global::Google.Protobuf.DescriptorProtos.ServiceOptions options_;
    public global::Google.Protobuf.DescriptorProtos.ServiceOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public override bool Equals(object other) {
      return Equals(other as ServiceDescriptorProto);
    }

    public bool Equals(ServiceDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if(!method_.Equals(other.method_)) return false;
      if (!object.Equals(Options, other.Options)) return false;  return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      hash ^= method_.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[1], Name);
      }
      output.WriteMessageArray(2, fieldNames[0], method_);
      if (options_ != null) {
        output.WriteMessage(3, fieldNames[2], Options);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto element in method_) {
        size += pb::CodedOutputStream.ComputeMessageSize(2, element);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(3, Options);
      }
      return size;
    }
    public void MergeFrom(ServiceDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      method_.Add(other.method_);
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.ServiceOptions();
        }
        Options.MergeFrom(other.Options);
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 18: {
            input.ReadMessageArray(tag, fieldName, method_, global::Google.Protobuf.DescriptorProtos.MethodDescriptorProto.Parser);
            break;
          }
          case 26: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.ServiceOptions();
            }
            input.ReadMessage(options_);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class MethodDescriptorProto : pb::IMessage<MethodDescriptorProto>, global::System.IEquatable<MethodDescriptorProto> {
    private static readonly pb::MessageParser<MethodDescriptorProto> _parser = new pb::MessageParser<MethodDescriptorProto>(() => new MethodDescriptorProto());
    public static pb::MessageParser<MethodDescriptorProto> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "client_streaming", "input_type", "name", "options", "output_type", "server_streaming" };
    private static readonly uint[] _fieldTags = new uint[] { 40, 18, 10, 34, 26, 48 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodDescriptorProto__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<MethodDescriptorProto> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable; }
    }

    public MethodDescriptorProto() { }
    public MethodDescriptorProto(MethodDescriptorProto other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 1;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set { name_ = value ?? ""; }
    }


    public const int InputTypeFieldNumber = 2;
    private string inputType_ = "";
    public string InputType {
      get { return inputType_; }
      set { inputType_ = value ?? ""; }
    }


    public const int OutputTypeFieldNumber = 3;
    private string outputType_ = "";
    public string OutputType {
      get { return outputType_; }
      set { outputType_ = value ?? ""; }
    }


    public const int OptionsFieldNumber = 4;
    private global::Google.Protobuf.DescriptorProtos.MethodOptions options_;
    public global::Google.Protobuf.DescriptorProtos.MethodOptions Options {
      get { return options_; }
      set { options_ = value; }
    }

    public const int ClientStreamingFieldNumber = 5;
    private bool clientStreaming_;
    public bool ClientStreaming {
      get { return clientStreaming_; }
      set { clientStreaming_ = value; }
    }


    public const int ServerStreamingFieldNumber = 6;
    private bool serverStreaming_;
    public bool ServerStreaming {
      get { return serverStreaming_; }
      set { serverStreaming_ = value; }
    }


    public override bool Equals(object other) {
      return Equals(other as MethodDescriptorProto);
    }

    public bool Equals(MethodDescriptorProto other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (InputType != other.InputType) return false;
      if (OutputType != other.OutputType) return false;
      if (!object.Equals(Options, other.Options)) return false;if (ClientStreaming != other.ClientStreaming) return false;
      if (ServerStreaming != other.ServerStreaming) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Name != "") hash ^= Name.GetHashCode();
      if (InputType != "") hash ^= InputType.GetHashCode();
      if (OutputType != "") hash ^= OutputType.GetHashCode();
      if (options_ != null) hash ^= Options.GetHashCode();
      if (ClientStreaming != false) hash ^= ClientStreaming.GetHashCode();
      if (ServerStreaming != false) hash ^= ServerStreaming.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Name != "") {
        output.WriteString(1, fieldNames[2], Name);
      }
      if (InputType != "") {
        output.WriteString(2, fieldNames[1], InputType);
      }
      if (OutputType != "") {
        output.WriteString(3, fieldNames[4], OutputType);
      }
      if (options_ != null) {
        output.WriteMessage(4, fieldNames[3], Options);
      }
      if (ClientStreaming != false) {
        output.WriteBool(5, fieldNames[0], ClientStreaming);
      }
      if (ServerStreaming != false) {
        output.WriteBool(6, fieldNames[5], ServerStreaming);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (Name != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, Name);
      }
      if (InputType != "") {
        size += pb::CodedOutputStream.ComputeStringSize(2, InputType);
      }
      if (OutputType != "") {
        size += pb::CodedOutputStream.ComputeStringSize(3, OutputType);
      }
      if (options_ != null) {
        size += pb::CodedOutputStream.ComputeMessageSize(4, Options);
      }
      if (ClientStreaming != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(5, ClientStreaming);
      }
      if (ServerStreaming != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(6, ServerStreaming);
      }
      return size;
    }
    public void MergeFrom(MethodDescriptorProto other) {
      if (other == null) {
        return;
      }
      if (other.Name != "") {
        Name = other.Name;
      }
      if (other.InputType != "") {
        InputType = other.InputType;
      }
      if (other.OutputType != "") {
        OutputType = other.OutputType;
      }
      if (other.options_ != null) {
        if (options_ == null) {
          options_ = new global::Google.Protobuf.DescriptorProtos.MethodOptions();
        }
        Options.MergeFrom(other.Options);
      }
      if (other.ClientStreaming != false) {
        ClientStreaming = other.ClientStreaming;
      }
      if (other.ServerStreaming != false) {
        ServerStreaming = other.ServerStreaming;
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref name_);
            break;
          }
          case 18: {
            input.ReadString(ref inputType_);
            break;
          }
          case 26: {
            input.ReadString(ref outputType_);
            break;
          }
          case 34: {
            if (options_ == null) {
              options_ = new global::Google.Protobuf.DescriptorProtos.MethodOptions();
            }
            input.ReadMessage(options_);
            break;
          }
          case 40: {
            input.ReadBool(ref clientStreaming_);
            break;
          }
          case 48: {
            input.ReadBool(ref serverStreaming_);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class FileOptions : pb::IMessage<FileOptions>, global::System.IEquatable<FileOptions> {
    private static readonly pb::MessageParser<FileOptions> _parser = new pb::MessageParser<FileOptions>(() => new FileOptions());
    public static pb::MessageParser<FileOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "cc_enable_arenas", "cc_generic_services", "csharp_namespace", "deprecated", "go_package", "java_generate_equals_and_hash", "java_generic_services", "java_multiple_files", "java_outer_classname", "java_package", "java_string_check_utf8", "objc_class_prefix", "optimize_for", "py_generic_services", "uninterpreted_option" };
    private static readonly uint[] _fieldTags = new uint[] { 248, 128, 298, 184, 90, 160, 136, 80, 66, 10, 216, 290, 72, 144, 7994 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<FileOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileOptions__FieldAccessorTable; }
    }

    public FileOptions() { }
    public FileOptions(FileOptions other) {
      MergeFrom(other);
    }
    public const int JavaPackageFieldNumber = 1;
    private string javaPackage_ = "";
    public string JavaPackage {
      get { return javaPackage_; }
      set { javaPackage_ = value ?? ""; }
    }


    public const int JavaOuterClassnameFieldNumber = 8;
    private string javaOuterClassname_ = "";
    public string JavaOuterClassname {
      get { return javaOuterClassname_; }
      set { javaOuterClassname_ = value ?? ""; }
    }


    public const int JavaMultipleFilesFieldNumber = 10;
    private bool javaMultipleFiles_;
    public bool JavaMultipleFiles {
      get { return javaMultipleFiles_; }
      set { javaMultipleFiles_ = value; }
    }


    public const int JavaGenerateEqualsAndHashFieldNumber = 20;
    private bool javaGenerateEqualsAndHash_;
    public bool JavaGenerateEqualsAndHash {
      get { return javaGenerateEqualsAndHash_; }
      set { javaGenerateEqualsAndHash_ = value; }
    }


    public const int JavaStringCheckUtf8FieldNumber = 27;
    private bool javaStringCheckUtf8_;
    public bool JavaStringCheckUtf8 {
      get { return javaStringCheckUtf8_; }
      set { javaStringCheckUtf8_ = value; }
    }


    public const int OptimizeForFieldNumber = 9;
    private global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode optimizeFor_ = global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED;
    public global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode OptimizeFor {
      get { return optimizeFor_; }
      set { optimizeFor_ = value; }
    }


    public const int GoPackageFieldNumber = 11;
    private string goPackage_ = "";
    public string GoPackage {
      get { return goPackage_; }
      set { goPackage_ = value ?? ""; }
    }


    public const int CcGenericServicesFieldNumber = 16;
    private bool ccGenericServices_;
    public bool CcGenericServices {
      get { return ccGenericServices_; }
      set { ccGenericServices_ = value; }
    }


    public const int JavaGenericServicesFieldNumber = 17;
    private bool javaGenericServices_;
    public bool JavaGenericServices {
      get { return javaGenericServices_; }
      set { javaGenericServices_ = value; }
    }


    public const int PyGenericServicesFieldNumber = 18;
    private bool pyGenericServices_;
    public bool PyGenericServices {
      get { return pyGenericServices_; }
      set { pyGenericServices_ = value; }
    }


    public const int DeprecatedFieldNumber = 23;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int CcEnableArenasFieldNumber = 31;
    private bool ccEnableArenas_;
    public bool CcEnableArenas {
      get { return ccEnableArenas_; }
      set { ccEnableArenas_ = value; }
    }


    public const int ObjcClassPrefixFieldNumber = 36;
    private string objcClassPrefix_ = "";
    public string ObjcClassPrefix {
      get { return objcClassPrefix_; }
      set { objcClassPrefix_ = value ?? ""; }
    }


    public const int CsharpNamespaceFieldNumber = 37;
    private string csharpNamespace_ = "";
    public string CsharpNamespace {
      get { return csharpNamespace_; }
      set { csharpNamespace_ = value ?? ""; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as FileOptions);
    }

    public bool Equals(FileOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (JavaPackage != other.JavaPackage) return false;
      if (JavaOuterClassname != other.JavaOuterClassname) return false;
      if (JavaMultipleFiles != other.JavaMultipleFiles) return false;
      if (JavaGenerateEqualsAndHash != other.JavaGenerateEqualsAndHash) return false;
      if (JavaStringCheckUtf8 != other.JavaStringCheckUtf8) return false;
      if (OptimizeFor != other.OptimizeFor) return false;
      if (GoPackage != other.GoPackage) return false;
      if (CcGenericServices != other.CcGenericServices) return false;
      if (JavaGenericServices != other.JavaGenericServices) return false;
      if (PyGenericServices != other.PyGenericServices) return false;
      if (Deprecated != other.Deprecated) return false;
      if (CcEnableArenas != other.CcEnableArenas) return false;
      if (ObjcClassPrefix != other.ObjcClassPrefix) return false;
      if (CsharpNamespace != other.CsharpNamespace) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (JavaPackage != "") hash ^= JavaPackage.GetHashCode();
      if (JavaOuterClassname != "") hash ^= JavaOuterClassname.GetHashCode();
      if (JavaMultipleFiles != false) hash ^= JavaMultipleFiles.GetHashCode();
      if (JavaGenerateEqualsAndHash != false) hash ^= JavaGenerateEqualsAndHash.GetHashCode();
      if (JavaStringCheckUtf8 != false) hash ^= JavaStringCheckUtf8.GetHashCode();
      if (OptimizeFor != global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED) hash ^= OptimizeFor.GetHashCode();
      if (GoPackage != "") hash ^= GoPackage.GetHashCode();
      if (CcGenericServices != false) hash ^= CcGenericServices.GetHashCode();
      if (JavaGenericServices != false) hash ^= JavaGenericServices.GetHashCode();
      if (PyGenericServices != false) hash ^= PyGenericServices.GetHashCode();
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      if (CcEnableArenas != false) hash ^= CcEnableArenas.GetHashCode();
      if (ObjcClassPrefix != "") hash ^= ObjcClassPrefix.GetHashCode();
      if (CsharpNamespace != "") hash ^= CsharpNamespace.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (JavaPackage != "") {
        output.WriteString(1, fieldNames[9], JavaPackage);
      }
      if (JavaOuterClassname != "") {
        output.WriteString(8, fieldNames[8], JavaOuterClassname);
      }
      if (OptimizeFor != global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED) {
        output.WriteEnum(9, fieldNames[12], (int) OptimizeFor);
      }
      if (JavaMultipleFiles != false) {
        output.WriteBool(10, fieldNames[7], JavaMultipleFiles);
      }
      if (GoPackage != "") {
        output.WriteString(11, fieldNames[4], GoPackage);
      }
      if (CcGenericServices != false) {
        output.WriteBool(16, fieldNames[1], CcGenericServices);
      }
      if (JavaGenericServices != false) {
        output.WriteBool(17, fieldNames[6], JavaGenericServices);
      }
      if (PyGenericServices != false) {
        output.WriteBool(18, fieldNames[13], PyGenericServices);
      }
      if (JavaGenerateEqualsAndHash != false) {
        output.WriteBool(20, fieldNames[5], JavaGenerateEqualsAndHash);
      }
      if (Deprecated != false) {
        output.WriteBool(23, fieldNames[3], Deprecated);
      }
      if (JavaStringCheckUtf8 != false) {
        output.WriteBool(27, fieldNames[10], JavaStringCheckUtf8);
      }
      if (CcEnableArenas != false) {
        output.WriteBool(31, fieldNames[0], CcEnableArenas);
      }
      if (ObjcClassPrefix != "") {
        output.WriteString(36, fieldNames[11], ObjcClassPrefix);
      }
      if (CsharpNamespace != "") {
        output.WriteString(37, fieldNames[2], CsharpNamespace);
      }
      output.WriteMessageArray(999, fieldNames[14], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (JavaPackage != "") {
        size += pb::CodedOutputStream.ComputeStringSize(1, JavaPackage);
      }
      if (JavaOuterClassname != "") {
        size += pb::CodedOutputStream.ComputeStringSize(8, JavaOuterClassname);
      }
      if (JavaMultipleFiles != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(10, JavaMultipleFiles);
      }
      if (JavaGenerateEqualsAndHash != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(20, JavaGenerateEqualsAndHash);
      }
      if (JavaStringCheckUtf8 != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(27, JavaStringCheckUtf8);
      }
      if (OptimizeFor != global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED) {
        size += pb::CodedOutputStream.ComputeEnumSize(9, (int) OptimizeFor);
      }
      if (GoPackage != "") {
        size += pb::CodedOutputStream.ComputeStringSize(11, GoPackage);
      }
      if (CcGenericServices != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(16, CcGenericServices);
      }
      if (JavaGenericServices != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(17, JavaGenericServices);
      }
      if (PyGenericServices != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(18, PyGenericServices);
      }
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(23, Deprecated);
      }
      if (CcEnableArenas != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(31, CcEnableArenas);
      }
      if (ObjcClassPrefix != "") {
        size += pb::CodedOutputStream.ComputeStringSize(36, ObjcClassPrefix);
      }
      if (CsharpNamespace != "") {
        size += pb::CodedOutputStream.ComputeStringSize(37, CsharpNamespace);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(FileOptions other) {
      if (other == null) {
        return;
      }
      if (other.JavaPackage != "") {
        JavaPackage = other.JavaPackage;
      }
      if (other.JavaOuterClassname != "") {
        JavaOuterClassname = other.JavaOuterClassname;
      }
      if (other.JavaMultipleFiles != false) {
        JavaMultipleFiles = other.JavaMultipleFiles;
      }
      if (other.JavaGenerateEqualsAndHash != false) {
        JavaGenerateEqualsAndHash = other.JavaGenerateEqualsAndHash;
      }
      if (other.JavaStringCheckUtf8 != false) {
        JavaStringCheckUtf8 = other.JavaStringCheckUtf8;
      }
      if (other.OptimizeFor != global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED) {
        OptimizeFor = other.OptimizeFor;
      }
      if (other.GoPackage != "") {
        GoPackage = other.GoPackage;
      }
      if (other.CcGenericServices != false) {
        CcGenericServices = other.CcGenericServices;
      }
      if (other.JavaGenericServices != false) {
        JavaGenericServices = other.JavaGenericServices;
      }
      if (other.PyGenericServices != false) {
        PyGenericServices = other.PyGenericServices;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      if (other.CcEnableArenas != false) {
        CcEnableArenas = other.CcEnableArenas;
      }
      if (other.ObjcClassPrefix != "") {
        ObjcClassPrefix = other.ObjcClassPrefix;
      }
      if (other.CsharpNamespace != "") {
        CsharpNamespace = other.CsharpNamespace;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadString(ref javaPackage_);
            break;
          }
          case 66: {
            input.ReadString(ref javaOuterClassname_);
            break;
          }
          case 72: {
            int tmp = 0;
            input.ReadEnum(ref tmp);
            optimizeFor_ = (global::Google.Protobuf.DescriptorProtos.FileOptions.Types.OptimizeMode) tmp;break;
          }
          case 80: {
            input.ReadBool(ref javaMultipleFiles_);
            break;
          }
          case 90: {
            input.ReadString(ref goPackage_);
            break;
          }
          case 128: {
            input.ReadBool(ref ccGenericServices_);
            break;
          }
          case 136: {
            input.ReadBool(ref javaGenericServices_);
            break;
          }
          case 144: {
            input.ReadBool(ref pyGenericServices_);
            break;
          }
          case 160: {
            input.ReadBool(ref javaGenerateEqualsAndHash_);
            break;
          }
          case 184: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 216: {
            input.ReadBool(ref javaStringCheckUtf8_);
            break;
          }
          case 248: {
            input.ReadBool(ref ccEnableArenas_);
            break;
          }
          case 290: {
            input.ReadString(ref objcClassPrefix_);
            break;
          }
          case 298: {
            input.ReadString(ref csharpNamespace_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public static partial class Types {
      public enum OptimizeMode {
        SPEED = 1,
        CODE_SIZE = 2,
        LITE_RUNTIME = 3,
      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class MessageOptions : pb::IMessage<MessageOptions>, global::System.IEquatable<MessageOptions> {
    private static readonly pb::MessageParser<MessageOptions> _parser = new pb::MessageParser<MessageOptions>(() => new MessageOptions());
    public static pb::MessageParser<MessageOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "deprecated", "map_entry", "message_set_wire_format", "no_standard_descriptor_accessor", "uninterpreted_option" };
    private static readonly uint[] _fieldTags = new uint[] { 24, 56, 8, 16, 7994 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MessageOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<MessageOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MessageOptions__FieldAccessorTable; }
    }

    public MessageOptions() { }
    public MessageOptions(MessageOptions other) {
      MergeFrom(other);
    }
    public const int MessageSetWireFormatFieldNumber = 1;
    private bool messageSetWireFormat_;
    public bool MessageSetWireFormat {
      get { return messageSetWireFormat_; }
      set { messageSetWireFormat_ = value; }
    }


    public const int NoStandardDescriptorAccessorFieldNumber = 2;
    private bool noStandardDescriptorAccessor_;
    public bool NoStandardDescriptorAccessor {
      get { return noStandardDescriptorAccessor_; }
      set { noStandardDescriptorAccessor_ = value; }
    }


    public const int DeprecatedFieldNumber = 3;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int MapEntryFieldNumber = 7;
    private bool mapEntry_;
    public bool MapEntry {
      get { return mapEntry_; }
      set { mapEntry_ = value; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as MessageOptions);
    }

    public bool Equals(MessageOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (MessageSetWireFormat != other.MessageSetWireFormat) return false;
      if (NoStandardDescriptorAccessor != other.NoStandardDescriptorAccessor) return false;
      if (Deprecated != other.Deprecated) return false;
      if (MapEntry != other.MapEntry) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (MessageSetWireFormat != false) hash ^= MessageSetWireFormat.GetHashCode();
      if (NoStandardDescriptorAccessor != false) hash ^= NoStandardDescriptorAccessor.GetHashCode();
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      if (MapEntry != false) hash ^= MapEntry.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (MessageSetWireFormat != false) {
        output.WriteBool(1, fieldNames[2], MessageSetWireFormat);
      }
      if (NoStandardDescriptorAccessor != false) {
        output.WriteBool(2, fieldNames[3], NoStandardDescriptorAccessor);
      }
      if (Deprecated != false) {
        output.WriteBool(3, fieldNames[0], Deprecated);
      }
      if (MapEntry != false) {
        output.WriteBool(7, fieldNames[1], MapEntry);
      }
      output.WriteMessageArray(999, fieldNames[4], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (MessageSetWireFormat != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(1, MessageSetWireFormat);
      }
      if (NoStandardDescriptorAccessor != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(2, NoStandardDescriptorAccessor);
      }
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);
      }
      if (MapEntry != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(7, MapEntry);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(MessageOptions other) {
      if (other == null) {
        return;
      }
      if (other.MessageSetWireFormat != false) {
        MessageSetWireFormat = other.MessageSetWireFormat;
      }
      if (other.NoStandardDescriptorAccessor != false) {
        NoStandardDescriptorAccessor = other.NoStandardDescriptorAccessor;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      if (other.MapEntry != false) {
        MapEntry = other.MapEntry;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 8: {
            input.ReadBool(ref messageSetWireFormat_);
            break;
          }
          case 16: {
            input.ReadBool(ref noStandardDescriptorAccessor_);
            break;
          }
          case 24: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 56: {
            input.ReadBool(ref mapEntry_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class FieldOptions : pb::IMessage<FieldOptions>, global::System.IEquatable<FieldOptions> {
    private static readonly pb::MessageParser<FieldOptions> _parser = new pb::MessageParser<FieldOptions>(() => new FieldOptions());
    public static pb::MessageParser<FieldOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "ctype", "deprecated", "jstype", "lazy", "packed", "uninterpreted_option", "weak" };
    private static readonly uint[] _fieldTags = new uint[] { 8, 24, 48, 40, 16, 7994, 80 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<FieldOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldOptions__FieldAccessorTable; }
    }

    public FieldOptions() { }
    public FieldOptions(FieldOptions other) {
      MergeFrom(other);
    }
    public const int CtypeFieldNumber = 1;
    private global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType ctype_ = global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType.STRING;
    public global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType Ctype {
      get { return ctype_; }
      set { ctype_ = value; }
    }


    public const int PackedFieldNumber = 2;
    private bool packed_;
    public bool Packed {
      get { return packed_; }
      set { packed_ = value; }
    }


    public const int JstypeFieldNumber = 6;
    private global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType jstype_ = global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL;
    public global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType Jstype {
      get { return jstype_; }
      set { jstype_ = value; }
    }


    public const int LazyFieldNumber = 5;
    private bool lazy_;
    public bool Lazy {
      get { return lazy_; }
      set { lazy_ = value; }
    }


    public const int DeprecatedFieldNumber = 3;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int WeakFieldNumber = 10;
    private bool weak_;
    public bool Weak {
      get { return weak_; }
      set { weak_ = value; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as FieldOptions);
    }

    public bool Equals(FieldOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Ctype != other.Ctype) return false;
      if (Packed != other.Packed) return false;
      if (Jstype != other.Jstype) return false;
      if (Lazy != other.Lazy) return false;
      if (Deprecated != other.Deprecated) return false;
      if (Weak != other.Weak) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Ctype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType.STRING) hash ^= Ctype.GetHashCode();
      if (Packed != false) hash ^= Packed.GetHashCode();
      if (Jstype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL) hash ^= Jstype.GetHashCode();
      if (Lazy != false) hash ^= Lazy.GetHashCode();
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      if (Weak != false) hash ^= Weak.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Ctype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType.STRING) {
        output.WriteEnum(1, fieldNames[0], (int) Ctype);
      }
      if (Packed != false) {
        output.WriteBool(2, fieldNames[4], Packed);
      }
      if (Deprecated != false) {
        output.WriteBool(3, fieldNames[1], Deprecated);
      }
      if (Lazy != false) {
        output.WriteBool(5, fieldNames[3], Lazy);
      }
      if (Jstype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL) {
        output.WriteEnum(6, fieldNames[2], (int) Jstype);
      }
      if (Weak != false) {
        output.WriteBool(10, fieldNames[6], Weak);
      }
      output.WriteMessageArray(999, fieldNames[5], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (Ctype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType.STRING) {
        size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Ctype);
      }
      if (Packed != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(2, Packed);
      }
      if (Jstype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL) {
        size += pb::CodedOutputStream.ComputeEnumSize(6, (int) Jstype);
      }
      if (Lazy != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(5, Lazy);
      }
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);
      }
      if (Weak != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(10, Weak);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(FieldOptions other) {
      if (other == null) {
        return;
      }
      if (other.Ctype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType.STRING) {
        Ctype = other.Ctype;
      }
      if (other.Packed != false) {
        Packed = other.Packed;
      }
      if (other.Jstype != global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL) {
        Jstype = other.Jstype;
      }
      if (other.Lazy != false) {
        Lazy = other.Lazy;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      if (other.Weak != false) {
        Weak = other.Weak;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 8: {
            int tmp = 0;
            input.ReadEnum(ref tmp);
            ctype_ = (global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.CType) tmp;break;
          }
          case 16: {
            input.ReadBool(ref packed_);
            break;
          }
          case 24: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 40: {
            input.ReadBool(ref lazy_);
            break;
          }
          case 48: {
            int tmp = 0;
            input.ReadEnum(ref tmp);
            jstype_ = (global::Google.Protobuf.DescriptorProtos.FieldOptions.Types.JSType) tmp;break;
          }
          case 80: {
            input.ReadBool(ref weak_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public static partial class Types {
      public enum CType {
        STRING = 0,
        CORD = 1,
        STRING_PIECE = 2,
      }

      public enum JSType {
        JS_NORMAL = 0,
        JS_STRING = 1,
        JS_NUMBER = 2,
      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class EnumOptions : pb::IMessage<EnumOptions>, global::System.IEquatable<EnumOptions> {
    private static readonly pb::MessageParser<EnumOptions> _parser = new pb::MessageParser<EnumOptions>(() => new EnumOptions());
    public static pb::MessageParser<EnumOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "allow_alias", "deprecated", "uninterpreted_option" };
    private static readonly uint[] _fieldTags = new uint[] { 16, 24, 7994 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<EnumOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumOptions__FieldAccessorTable; }
    }

    public EnumOptions() { }
    public EnumOptions(EnumOptions other) {
      MergeFrom(other);
    }
    public const int AllowAliasFieldNumber = 2;
    private bool allowAlias_;
    public bool AllowAlias {
      get { return allowAlias_; }
      set { allowAlias_ = value; }
    }


    public const int DeprecatedFieldNumber = 3;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as EnumOptions);
    }

    public bool Equals(EnumOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (AllowAlias != other.AllowAlias) return false;
      if (Deprecated != other.Deprecated) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (AllowAlias != false) hash ^= AllowAlias.GetHashCode();
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (AllowAlias != false) {
        output.WriteBool(2, fieldNames[0], AllowAlias);
      }
      if (Deprecated != false) {
        output.WriteBool(3, fieldNames[1], Deprecated);
      }
      output.WriteMessageArray(999, fieldNames[2], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (AllowAlias != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(2, AllowAlias);
      }
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(EnumOptions other) {
      if (other == null) {
        return;
      }
      if (other.AllowAlias != false) {
        AllowAlias = other.AllowAlias;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 16: {
            input.ReadBool(ref allowAlias_);
            break;
          }
          case 24: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class EnumValueOptions : pb::IMessage<EnumValueOptions>, global::System.IEquatable<EnumValueOptions> {
    private static readonly pb::MessageParser<EnumValueOptions> _parser = new pb::MessageParser<EnumValueOptions>(() => new EnumValueOptions());
    public static pb::MessageParser<EnumValueOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "deprecated", "uninterpreted_option" };
    private static readonly uint[] _fieldTags = new uint[] { 8, 7994 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<EnumValueOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable; }
    }

    public EnumValueOptions() { }
    public EnumValueOptions(EnumValueOptions other) {
      MergeFrom(other);
    }
    public const int DeprecatedFieldNumber = 1;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as EnumValueOptions);
    }

    public bool Equals(EnumValueOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Deprecated != other.Deprecated) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Deprecated != false) {
        output.WriteBool(1, fieldNames[0], Deprecated);
      }
      output.WriteMessageArray(999, fieldNames[1], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(1, Deprecated);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(EnumValueOptions other) {
      if (other == null) {
        return;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 8: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class ServiceOptions : pb::IMessage<ServiceOptions>, global::System.IEquatable<ServiceOptions> {
    private static readonly pb::MessageParser<ServiceOptions> _parser = new pb::MessageParser<ServiceOptions>(() => new ServiceOptions());
    public static pb::MessageParser<ServiceOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "deprecated", "uninterpreted_option" };
    private static readonly uint[] _fieldTags = new uint[] { 264, 7994 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<ServiceOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceOptions__FieldAccessorTable; }
    }

    public ServiceOptions() { }
    public ServiceOptions(ServiceOptions other) {
      MergeFrom(other);
    }
    public const int DeprecatedFieldNumber = 33;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as ServiceOptions);
    }

    public bool Equals(ServiceOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Deprecated != other.Deprecated) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Deprecated != false) {
        output.WriteBool(33, fieldNames[0], Deprecated);
      }
      output.WriteMessageArray(999, fieldNames[1], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(33, Deprecated);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(ServiceOptions other) {
      if (other == null) {
        return;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 264: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class MethodOptions : pb::IMessage<MethodOptions>, global::System.IEquatable<MethodOptions> {
    private static readonly pb::MessageParser<MethodOptions> _parser = new pb::MessageParser<MethodOptions>(() => new MethodOptions());
    public static pb::MessageParser<MethodOptions> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "deprecated", "uninterpreted_option" };
    private static readonly uint[] _fieldTags = new uint[] { 264, 7994 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodOptions__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<MethodOptions> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodOptions__FieldAccessorTable; }
    }

    public MethodOptions() { }
    public MethodOptions(MethodOptions other) {
      MergeFrom(other);
    }
    public const int DeprecatedFieldNumber = 33;
    private bool deprecated_;
    public bool Deprecated {
      get { return deprecated_; }
      set { deprecated_ = value; }
    }


    public const int UninterpretedOptionFieldNumber = 999;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption> UninterpretedOption {
      get { return uninterpretedOption_; }
    }

    public override bool Equals(object other) {
      return Equals(other as MethodOptions);
    }

    public bool Equals(MethodOptions other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Deprecated != other.Deprecated) return false;
      if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      if (Deprecated != false) hash ^= Deprecated.GetHashCode();
      hash ^= uninterpretedOption_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      if (Deprecated != false) {
        output.WriteBool(33, fieldNames[0], Deprecated);
      }
      output.WriteMessageArray(999, fieldNames[1], uninterpretedOption_);
    }

    public int CalculateSize() {
      int size = 0;
      if (Deprecated != false) {
        size += pb::CodedOutputStream.ComputeBoolSize(33, Deprecated);
      }
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption element in uninterpretedOption_) {
        size += pb::CodedOutputStream.ComputeMessageSize(999, element);
      }
      return size;
    }
    public void MergeFrom(MethodOptions other) {
      if (other == null) {
        return;
      }
      if (other.Deprecated != false) {
        Deprecated = other.Deprecated;
      }
      uninterpretedOption_.Add(other.uninterpretedOption_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 264: {
            input.ReadBool(ref deprecated_);
            break;
          }
          case 7994: {
            input.ReadMessageArray(tag, fieldName, uninterpretedOption_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Parser);
            break;
          }
        }
      }
    }

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class UninterpretedOption : pb::IMessage<UninterpretedOption>, global::System.IEquatable<UninterpretedOption> {
    private static readonly pb::MessageParser<UninterpretedOption> _parser = new pb::MessageParser<UninterpretedOption>(() => new UninterpretedOption());
    public static pb::MessageParser<UninterpretedOption> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "aggregate_value", "double_value", "identifier_value", "name", "negative_int_value", "positive_int_value", "string_value" };
    private static readonly uint[] _fieldTags = new uint[] { 66, 49, 26, 18, 40, 32, 58 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<UninterpretedOption> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption__FieldAccessorTable; }
    }

    public UninterpretedOption() { }
    public UninterpretedOption(UninterpretedOption other) {
      MergeFrom(other);
    }
    public const int NameFieldNumber = 2;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart> name_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart> Name {
      get { return name_; }
    }

    public const int IdentifierValueFieldNumber = 3;
    private string identifierValue_ = "";
    public string IdentifierValue {
      get { return identifierValue_; }
      set { identifierValue_ = value ?? ""; }
    }


    public const int PositiveIntValueFieldNumber = 4;
    private ulong positiveIntValue_;
    public ulong PositiveIntValue {
      get { return positiveIntValue_; }
      set { positiveIntValue_ = value; }
    }


    public const int NegativeIntValueFieldNumber = 5;
    private long negativeIntValue_;
    public long NegativeIntValue {
      get { return negativeIntValue_; }
      set { negativeIntValue_ = value; }
    }


    public const int DoubleValueFieldNumber = 6;
    private double doubleValue_;
    public double DoubleValue {
      get { return doubleValue_; }
      set { doubleValue_ = value; }
    }


    public const int StringValueFieldNumber = 7;
    private pb::ByteString stringValue_ = pb::ByteString.Empty;
    public pb::ByteString StringValue {
      get { return stringValue_; }
      set { stringValue_ = value ?? pb::ByteString.Empty; }
    }


    public const int AggregateValueFieldNumber = 8;
    private string aggregateValue_ = "";
    public string AggregateValue {
      get { return aggregateValue_; }
      set { aggregateValue_ = value ?? ""; }
    }


    public override bool Equals(object other) {
      return Equals(other as UninterpretedOption);
    }

    public bool Equals(UninterpretedOption other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!name_.Equals(other.name_)) return false;
      if (IdentifierValue != other.IdentifierValue) return false;
      if (PositiveIntValue != other.PositiveIntValue) return false;
      if (NegativeIntValue != other.NegativeIntValue) return false;
      if (DoubleValue != other.DoubleValue) return false;
      if (StringValue != other.StringValue) return false;
      if (AggregateValue != other.AggregateValue) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      hash ^= name_.GetHashCode();
      if (IdentifierValue != "") hash ^= IdentifierValue.GetHashCode();
      if (PositiveIntValue != 0UL) hash ^= PositiveIntValue.GetHashCode();
      if (NegativeIntValue != 0L) hash ^= NegativeIntValue.GetHashCode();
      if (DoubleValue != 0D) hash ^= DoubleValue.GetHashCode();
      if (StringValue != pb::ByteString.Empty) hash ^= StringValue.GetHashCode();
      if (AggregateValue != "") hash ^= AggregateValue.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      output.WriteMessageArray(2, fieldNames[3], name_);
      if (IdentifierValue != "") {
        output.WriteString(3, fieldNames[2], IdentifierValue);
      }
      if (PositiveIntValue != 0UL) {
        output.WriteUInt64(4, fieldNames[5], PositiveIntValue);
      }
      if (NegativeIntValue != 0L) {
        output.WriteInt64(5, fieldNames[4], NegativeIntValue);
      }
      if (DoubleValue != 0D) {
        output.WriteDouble(6, fieldNames[1], DoubleValue);
      }
      if (StringValue != pb::ByteString.Empty) {
        output.WriteBytes(7, fieldNames[6], StringValue);
      }
      if (AggregateValue != "") {
        output.WriteString(8, fieldNames[0], AggregateValue);
      }
    }

    public int CalculateSize() {
      int size = 0;
      foreach (global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart element in name_) {
        size += pb::CodedOutputStream.ComputeMessageSize(2, element);
      }
      if (IdentifierValue != "") {
        size += pb::CodedOutputStream.ComputeStringSize(3, IdentifierValue);
      }
      if (PositiveIntValue != 0UL) {
        size += pb::CodedOutputStream.ComputeUInt64Size(4, PositiveIntValue);
      }
      if (NegativeIntValue != 0L) {
        size += pb::CodedOutputStream.ComputeInt64Size(5, NegativeIntValue);
      }
      if (DoubleValue != 0D) {
        size += pb::CodedOutputStream.ComputeDoubleSize(6, DoubleValue);
      }
      if (StringValue != pb::ByteString.Empty) {
        size += pb::CodedOutputStream.ComputeBytesSize(7, StringValue);
      }
      if (AggregateValue != "") {
        size += pb::CodedOutputStream.ComputeStringSize(8, AggregateValue);
      }
      return size;
    }
    public void MergeFrom(UninterpretedOption other) {
      if (other == null) {
        return;
      }
      name_.Add(other.name_);
      if (other.IdentifierValue != "") {
        IdentifierValue = other.IdentifierValue;
      }
      if (other.PositiveIntValue != 0UL) {
        PositiveIntValue = other.PositiveIntValue;
      }
      if (other.NegativeIntValue != 0L) {
        NegativeIntValue = other.NegativeIntValue;
      }
      if (other.DoubleValue != 0D) {
        DoubleValue = other.DoubleValue;
      }
      if (other.StringValue != pb::ByteString.Empty) {
        StringValue = other.StringValue;
      }
      if (other.AggregateValue != "") {
        AggregateValue = other.AggregateValue;
      }
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 18: {
            input.ReadMessageArray(tag, fieldName, name_, global::Google.Protobuf.DescriptorProtos.UninterpretedOption.Types.NamePart.Parser);
            break;
          }
          case 26: {
            input.ReadString(ref identifierValue_);
            break;
          }
          case 32: {
            input.ReadUInt64(ref positiveIntValue_);
            break;
          }
          case 40: {
            input.ReadInt64(ref negativeIntValue_);
            break;
          }
          case 49: {
            input.ReadDouble(ref doubleValue_);
            break;
          }
          case 58: {
            input.ReadBytes(ref stringValue_);
            break;
          }
          case 66: {
            input.ReadString(ref aggregateValue_);
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      public sealed partial class NamePart : pb::IMessage<NamePart>, global::System.IEquatable<NamePart> {
        private static readonly pb::MessageParser<NamePart> _parser = new pb::MessageParser<NamePart>(() => new NamePart());
        public static pb::MessageParser<NamePart> Parser { get { return _parser; } }

        private static readonly string[] _fieldNames = new string[] { "is_extension", "name_part" };
        private static readonly uint[] _fieldTags = new uint[] { 16, 10 };
        public static pbd::MessageDescriptor Descriptor {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor; }
        }

        public pb::FieldAccess.FieldAccessorTable<NamePart> Fields {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable; }
        }

        public NamePart() { }
        public NamePart(NamePart other) {
          MergeFrom(other);
        }
        public const int NamePart_FieldNumber = 1;
        private string namePart_ = "";
        public string NamePart_ {
          get { return namePart_; }
          set { namePart_ = value ?? ""; }
        }


        public const int IsExtensionFieldNumber = 2;
        private bool isExtension_;
        public bool IsExtension {
          get { return isExtension_; }
          set { isExtension_ = value; }
        }


        public override bool Equals(object other) {
          return Equals(other as NamePart);
        }

        public bool Equals(NamePart other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (NamePart_ != other.NamePart_) return false;
          if (IsExtension != other.IsExtension) return false;
          return true;
        }

        public override int GetHashCode() {
          int hash = 0;
          if (NamePart_ != "") hash ^= NamePart_.GetHashCode();
          if (IsExtension != false) hash ^= IsExtension.GetHashCode();
          return hash;
        }

        public void WriteTo(pb::ICodedOutputStream output) {
          string[] fieldNames = _fieldNames;
          if (NamePart_ != "") {
            output.WriteString(1, fieldNames[1], NamePart_);
          }
          if (IsExtension != false) {
            output.WriteBool(2, fieldNames[0], IsExtension);
          }
        }

        public int CalculateSize() {
          int size = 0;
          if (NamePart_ != "") {
            size += pb::CodedOutputStream.ComputeStringSize(1, NamePart_);
          }
          if (IsExtension != false) {
            size += pb::CodedOutputStream.ComputeBoolSize(2, IsExtension);
          }
          return size;
        }
        public void MergeFrom(NamePart other) {
          if (other == null) {
            return;
          }
          if (other.NamePart_ != "") {
            NamePart_ = other.NamePart_;
          }
          if (other.IsExtension != false) {
            IsExtension = other.IsExtension;
          }
        }

        public void MergeFrom(pb::ICodedInputStream input) {
          uint tag;
          string fieldName;
          while (input.ReadTag(out tag, out fieldName)) {
            if (tag == 0 && fieldName != null) {
              int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
              if (fieldOrdinal >= 0) {
                tag = _fieldTags[fieldOrdinal];
              }
            }
            switch(tag) {
              case 0:
                throw pb::InvalidProtocolBufferException.InvalidTag();
              default:
                if (pb::WireFormat.IsEndGroupTag(tag)) {
                  return;
                }
                break;
              case 10: {
                input.ReadString(ref namePart_);
                break;
              }
              case 16: {
                input.ReadBool(ref isExtension_);
                break;
              }
            }
          }
        }

      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class SourceCodeInfo : pb::IMessage<SourceCodeInfo>, global::System.IEquatable<SourceCodeInfo> {
    private static readonly pb::MessageParser<SourceCodeInfo> _parser = new pb::MessageParser<SourceCodeInfo>(() => new SourceCodeInfo());
    public static pb::MessageParser<SourceCodeInfo> Parser { get { return _parser; } }

    private static readonly string[] _fieldNames = new string[] { "location" };
    private static readonly uint[] _fieldTags = new uint[] { 10 };
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo__Descriptor; }
    }

    public pb::FieldAccess.FieldAccessorTable<SourceCodeInfo> Fields {
      get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo__FieldAccessorTable; }
    }

    public SourceCodeInfo() { }
    public SourceCodeInfo(SourceCodeInfo other) {
      MergeFrom(other);
    }
    public const int LocationFieldNumber = 1;
    private readonly pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location> location_ = new pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location>();
    public pbc::RepeatedField<global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location> Location {
      get { return location_; }
    }

    public override bool Equals(object other) {
      return Equals(other as SourceCodeInfo);
    }

    public bool Equals(SourceCodeInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!location_.Equals(other.location_)) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 0;
      hash ^= location_.GetHashCode();
      return hash;
    }

    public void WriteTo(pb::ICodedOutputStream output) {
      string[] fieldNames = _fieldNames;
      output.WriteMessageArray(1, fieldNames[0], location_);
    }

    public int CalculateSize() {
      int size = 0;
      foreach (global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location element in location_) {
        size += pb::CodedOutputStream.ComputeMessageSize(1, element);
      }
      return size;
    }
    public void MergeFrom(SourceCodeInfo other) {
      if (other == null) {
        return;
      }
      location_.Add(other.location_);
    }

    public void MergeFrom(pb::ICodedInputStream input) {
      uint tag;
      string fieldName;
      while (input.ReadTag(out tag, out fieldName)) {
        if (tag == 0 && fieldName != null) {
          int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
          if (fieldOrdinal >= 0) {
            tag = _fieldTags[fieldOrdinal];
          }
        }
        switch(tag) {
          case 0:
            throw pb::InvalidProtocolBufferException.InvalidTag();
          default:
            if (pb::WireFormat.IsEndGroupTag(tag)) {
              return;
            }
            break;
          case 10: {
            input.ReadMessageArray(tag, fieldName, location_, global::Google.Protobuf.DescriptorProtos.SourceCodeInfo.Types.Location.Parser);
            break;
          }
        }
      }
    }

    #region Nested types
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      public sealed partial class Location : pb::IMessage<Location>, global::System.IEquatable<Location> {
        private static readonly pb::MessageParser<Location> _parser = new pb::MessageParser<Location>(() => new Location());
        public static pb::MessageParser<Location> Parser { get { return _parser; } }

        private static readonly string[] _fieldNames = new string[] { "leading_comments", "leading_detached_comments", "path", "span", "trailing_comments" };
        private static readonly uint[] _fieldTags = new uint[] { 26, 50, 10, 18, 34 };
        public static pbd::MessageDescriptor Descriptor {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor; }
        }

        public pb::FieldAccess.FieldAccessorTable<Location> Fields {
          get { return global::Google.Protobuf.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo_Location__FieldAccessorTable; }
        }

        public Location() { }
        public Location(Location other) {
          MergeFrom(other);
        }
        public const int PathFieldNumber = 1;
        private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();
        public pbc::RepeatedField<int> Path {
          get { return path_; }
        }

        public const int SpanFieldNumber = 2;
        private readonly pbc::RepeatedField<int> span_ = new pbc::RepeatedField<int>();
        public pbc::RepeatedField<int> Span {
          get { return span_; }
        }

        public const int LeadingCommentsFieldNumber = 3;
        private string leadingComments_ = "";
        public string LeadingComments {
          get { return leadingComments_; }
          set { leadingComments_ = value ?? ""; }
        }


        public const int TrailingCommentsFieldNumber = 4;
        private string trailingComments_ = "";
        public string TrailingComments {
          get { return trailingComments_; }
          set { trailingComments_ = value ?? ""; }
        }


        public const int LeadingDetachedCommentsFieldNumber = 6;
        private readonly pbc::RepeatedField<string> leadingDetachedComments_ = new pbc::RepeatedField<string>();
        public pbc::RepeatedField<string> LeadingDetachedComments {
          get { return leadingDetachedComments_; }
        }

        public override bool Equals(object other) {
          return Equals(other as Location);
        }

        public bool Equals(Location other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if(!path_.Equals(other.path_)) return false;
          if(!span_.Equals(other.span_)) return false;
          if (LeadingComments != other.LeadingComments) return false;
          if (TrailingComments != other.TrailingComments) return false;
          if(!leadingDetachedComments_.Equals(other.leadingDetachedComments_)) return false;
          return true;
        }

        public override int GetHashCode() {
          int hash = 0;
          hash ^= path_.GetHashCode();
          hash ^= span_.GetHashCode();
          if (LeadingComments != "") hash ^= LeadingComments.GetHashCode();
          if (TrailingComments != "") hash ^= TrailingComments.GetHashCode();
          hash ^= leadingDetachedComments_.GetHashCode();
          return hash;
        }

        public void WriteTo(pb::ICodedOutputStream output) {
          string[] fieldNames = _fieldNames;
          output.WritePackedInt32Array(1, fieldNames[2], path_);
          output.WritePackedInt32Array(2, fieldNames[3], span_);
          if (LeadingComments != "") {
            output.WriteString(3, fieldNames[0], LeadingComments);
          }
          if (TrailingComments != "") {
            output.WriteString(4, fieldNames[4], TrailingComments);
          }
          output.WriteStringArray(6, fieldNames[1], leadingDetachedComments_);
        }

        public int CalculateSize() {
          int size = 0;
          {
            int dataSize = 0;
            foreach (int element in path_) {
              dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
            }
            size += dataSize;
            if (path_.Count != 0) {
              size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
            }
          }
          {
            int dataSize = 0;
            foreach (int element in span_) {
              dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
            }
            size += dataSize;
            if (span_.Count != 0) {
              size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
            }
          }
          if (LeadingComments != "") {
            size += pb::CodedOutputStream.ComputeStringSize(3, LeadingComments);
          }
          if (TrailingComments != "") {
            size += pb::CodedOutputStream.ComputeStringSize(4, TrailingComments);
          }
          {
            int dataSize = 0;
            foreach (string element in leadingDetachedComments_) {
              dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
            }
            size += dataSize;
            size += 1 * leadingDetachedComments_.Count;
          }
          return size;
        }
        public void MergeFrom(Location other) {
          if (other == null) {
            return;
          }
          path_.Add(other.path_);
          span_.Add(other.span_);
          if (other.LeadingComments != "") {
            LeadingComments = other.LeadingComments;
          }
          if (other.TrailingComments != "") {
            TrailingComments = other.TrailingComments;
          }
          leadingDetachedComments_.Add(other.leadingDetachedComments_);
        }

        public void MergeFrom(pb::ICodedInputStream input) {
          uint tag;
          string fieldName;
          while (input.ReadTag(out tag, out fieldName)) {
            if (tag == 0 && fieldName != null) {
              int fieldOrdinal = global::System.Array.BinarySearch(_fieldNames, fieldName, global::System.StringComparer.Ordinal);
              if (fieldOrdinal >= 0) {
                tag = _fieldTags[fieldOrdinal];
              }
            }
            switch(tag) {
              case 0:
                throw pb::InvalidProtocolBufferException.InvalidTag();
              default:
                if (pb::WireFormat.IsEndGroupTag(tag)) {
                  return;
                }
                break;
              case 10:
              case 8: {
                input.ReadInt32Array(tag, fieldName, path_);
                break;
              }
              case 18:
              case 16: {
                input.ReadInt32Array(tag, fieldName, span_);
                break;
              }
              case 26: {
                input.ReadString(ref leadingComments_);
                break;
              }
              case 34: {
                input.ReadString(ref trailingComments_);
                break;
              }
              case 50: {
                input.ReadStringArray(tag, fieldName, leadingDetachedComments_);
                break;
              }
            }
          }
        }

      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code