github.com/omniscale/go-osm@v0.3.1/parser/pbf/internal/osmpbf/osmformat.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: parser/pbf/internal/osmpbf/osmformat.proto
     3  
     4  /*
     5  	Package osmpbf is a generated protocol buffer package.
     6  
     7  	It is generated from these files:
     8  		parser/pbf/internal/osmpbf/osmformat.proto
     9  
    10  	It has these top-level messages:
    11  		HeaderBlock
    12  		HeaderBBox
    13  		PrimitiveBlock
    14  		PrimitiveGroup
    15  		StringTable
    16  		Info
    17  		DenseInfo
    18  		ChangeSet
    19  		Node
    20  		DenseNodes
    21  		Way
    22  		Relation
    23  */
    24  package osmpbf
    25  
    26  import proto "github.com/gogo/protobuf/proto"
    27  import fmt "fmt"
    28  import math "math"
    29  import _ "github.com/gogo/protobuf/gogoproto"
    30  
    31  import io "io"
    32  
    33  // Reference imports to suppress errors if they are not otherwise used.
    34  var _ = proto.Marshal
    35  var _ = fmt.Errorf
    36  var _ = math.Inf
    37  
    38  // This is a compile-time assertion to ensure that this generated file
    39  // is compatible with the proto package it is being compiled against.
    40  // A compilation error at this line likely means your copy of the
    41  // proto package needs to be updated.
    42  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    43  
    44  type Relation_MemberType int32
    45  
    46  const (
    47  	Relation_NODE     Relation_MemberType = 0
    48  	Relation_WAY      Relation_MemberType = 1
    49  	Relation_RELATION Relation_MemberType = 2
    50  )
    51  
    52  var Relation_MemberType_name = map[int32]string{
    53  	0: "NODE",
    54  	1: "WAY",
    55  	2: "RELATION",
    56  }
    57  var Relation_MemberType_value = map[string]int32{
    58  	"NODE":     0,
    59  	"WAY":      1,
    60  	"RELATION": 2,
    61  }
    62  
    63  func (x Relation_MemberType) Enum() *Relation_MemberType {
    64  	p := new(Relation_MemberType)
    65  	*p = x
    66  	return p
    67  }
    68  func (x Relation_MemberType) String() string {
    69  	return proto.EnumName(Relation_MemberType_name, int32(x))
    70  }
    71  func (x *Relation_MemberType) UnmarshalJSON(data []byte) error {
    72  	value, err := proto.UnmarshalJSONEnum(Relation_MemberType_value, data, "Relation_MemberType")
    73  	if err != nil {
    74  		return err
    75  	}
    76  	*x = Relation_MemberType(value)
    77  	return nil
    78  }
    79  func (Relation_MemberType) EnumDescriptor() ([]byte, []int) {
    80  	return fileDescriptorOsmformat, []int{11, 0}
    81  }
    82  
    83  type HeaderBlock struct {
    84  	Bbox *HeaderBBox `protobuf:"bytes,1,opt,name=bbox" json:"bbox,omitempty"`
    85  	// Additional tags to aid in parsing this dataset
    86  	RequiredFeatures []string `protobuf:"bytes,4,rep,name=required_features,json=requiredFeatures" json:"required_features,omitempty"`
    87  	OptionalFeatures []string `protobuf:"bytes,5,rep,name=optional_features,json=optionalFeatures" json:"optional_features,omitempty"`
    88  	Writingprogram   string   `protobuf:"bytes,16,opt,name=writingprogram" json:"writingprogram"`
    89  	Source           string   `protobuf:"bytes,17,opt,name=source" json:"source"`
    90  	// replication timestamp, expressed in seconds since the epoch,
    91  	// otherwise the same value as in the "timestamp=..." field
    92  	// in the state.txt file used by Osmosis
    93  	OsmosisReplicationTimestamp int64 `protobuf:"varint,32,opt,name=osmosis_replication_timestamp,json=osmosisReplicationTimestamp" json:"osmosis_replication_timestamp"`
    94  	// replication sequence number (sequenceNumber in state.txt)
    95  	OsmosisReplicationSequenceNumber int64 `protobuf:"varint,33,opt,name=osmosis_replication_sequence_number,json=osmosisReplicationSequenceNumber" json:"osmosis_replication_sequence_number"`
    96  	// replication base URL (from Osmosis' configuration.txt file)
    97  	OsmosisReplicationBaseUrl string `protobuf:"bytes,34,opt,name=osmosis_replication_base_url,json=osmosisReplicationBaseUrl" json:"osmosis_replication_base_url"`
    98  }
    99  
   100  func (m *HeaderBlock) Reset()                    { *m = HeaderBlock{} }
   101  func (m *HeaderBlock) String() string            { return proto.CompactTextString(m) }
   102  func (*HeaderBlock) ProtoMessage()               {}
   103  func (*HeaderBlock) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{0} }
   104  
   105  func (m *HeaderBlock) GetBbox() *HeaderBBox {
   106  	if m != nil {
   107  		return m.Bbox
   108  	}
   109  	return nil
   110  }
   111  
   112  func (m *HeaderBlock) GetRequiredFeatures() []string {
   113  	if m != nil {
   114  		return m.RequiredFeatures
   115  	}
   116  	return nil
   117  }
   118  
   119  func (m *HeaderBlock) GetOptionalFeatures() []string {
   120  	if m != nil {
   121  		return m.OptionalFeatures
   122  	}
   123  	return nil
   124  }
   125  
   126  func (m *HeaderBlock) GetWritingprogram() string {
   127  	if m != nil {
   128  		return m.Writingprogram
   129  	}
   130  	return ""
   131  }
   132  
   133  func (m *HeaderBlock) GetSource() string {
   134  	if m != nil {
   135  		return m.Source
   136  	}
   137  	return ""
   138  }
   139  
   140  func (m *HeaderBlock) GetOsmosisReplicationTimestamp() int64 {
   141  	if m != nil {
   142  		return m.OsmosisReplicationTimestamp
   143  	}
   144  	return 0
   145  }
   146  
   147  func (m *HeaderBlock) GetOsmosisReplicationSequenceNumber() int64 {
   148  	if m != nil {
   149  		return m.OsmosisReplicationSequenceNumber
   150  	}
   151  	return 0
   152  }
   153  
   154  func (m *HeaderBlock) GetOsmosisReplicationBaseUrl() string {
   155  	if m != nil {
   156  		return m.OsmosisReplicationBaseUrl
   157  	}
   158  	return ""
   159  }
   160  
   161  type HeaderBBox struct {
   162  	Left   int64 `protobuf:"zigzag64,1,req,name=left" json:"left"`
   163  	Right  int64 `protobuf:"zigzag64,2,req,name=right" json:"right"`
   164  	Top    int64 `protobuf:"zigzag64,3,req,name=top" json:"top"`
   165  	Bottom int64 `protobuf:"zigzag64,4,req,name=bottom" json:"bottom"`
   166  }
   167  
   168  func (m *HeaderBBox) Reset()                    { *m = HeaderBBox{} }
   169  func (m *HeaderBBox) String() string            { return proto.CompactTextString(m) }
   170  func (*HeaderBBox) ProtoMessage()               {}
   171  func (*HeaderBBox) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{1} }
   172  
   173  func (m *HeaderBBox) GetLeft() int64 {
   174  	if m != nil {
   175  		return m.Left
   176  	}
   177  	return 0
   178  }
   179  
   180  func (m *HeaderBBox) GetRight() int64 {
   181  	if m != nil {
   182  		return m.Right
   183  	}
   184  	return 0
   185  }
   186  
   187  func (m *HeaderBBox) GetTop() int64 {
   188  	if m != nil {
   189  		return m.Top
   190  	}
   191  	return 0
   192  }
   193  
   194  func (m *HeaderBBox) GetBottom() int64 {
   195  	if m != nil {
   196  		return m.Bottom
   197  	}
   198  	return 0
   199  }
   200  
   201  type PrimitiveBlock struct {
   202  	Stringtable    *StringTable      `protobuf:"bytes,1,req,name=stringtable" json:"stringtable,omitempty"`
   203  	Primitivegroup []*PrimitiveGroup `protobuf:"bytes,2,rep,name=primitivegroup" json:"primitivegroup,omitempty"`
   204  	// Granularity, units of nanodegrees, used to store coordinates in this block
   205  	Granularity *int32 `protobuf:"varint,17,opt,name=granularity,def=100" json:"granularity,omitempty"`
   206  	// Offset value between the output coordinates coordinates and the granularity grid in unites of nanodegrees.
   207  	LatOffset *int64 `protobuf:"varint,19,opt,name=lat_offset,json=latOffset,def=0" json:"lat_offset,omitempty"`
   208  	LonOffset *int64 `protobuf:"varint,20,opt,name=lon_offset,json=lonOffset,def=0" json:"lon_offset,omitempty"`
   209  	// Granularity of dates, normally represented in units of milliseconds since the 1970 epoch.
   210  	DateGranularity *int32 `protobuf:"varint,18,opt,name=date_granularity,json=dateGranularity,def=1000" json:"date_granularity,omitempty"`
   211  }
   212  
   213  func (m *PrimitiveBlock) Reset()                    { *m = PrimitiveBlock{} }
   214  func (m *PrimitiveBlock) String() string            { return proto.CompactTextString(m) }
   215  func (*PrimitiveBlock) ProtoMessage()               {}
   216  func (*PrimitiveBlock) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{2} }
   217  
   218  const Default_PrimitiveBlock_Granularity int32 = 100
   219  const Default_PrimitiveBlock_LatOffset int64 = 0
   220  const Default_PrimitiveBlock_LonOffset int64 = 0
   221  const Default_PrimitiveBlock_DateGranularity int32 = 1000
   222  
   223  func (m *PrimitiveBlock) GetStringtable() *StringTable {
   224  	if m != nil {
   225  		return m.Stringtable
   226  	}
   227  	return nil
   228  }
   229  
   230  func (m *PrimitiveBlock) GetPrimitivegroup() []*PrimitiveGroup {
   231  	if m != nil {
   232  		return m.Primitivegroup
   233  	}
   234  	return nil
   235  }
   236  
   237  func (m *PrimitiveBlock) GetGranularity() int32 {
   238  	if m != nil && m.Granularity != nil {
   239  		return *m.Granularity
   240  	}
   241  	return Default_PrimitiveBlock_Granularity
   242  }
   243  
   244  func (m *PrimitiveBlock) GetLatOffset() int64 {
   245  	if m != nil && m.LatOffset != nil {
   246  		return *m.LatOffset
   247  	}
   248  	return Default_PrimitiveBlock_LatOffset
   249  }
   250  
   251  func (m *PrimitiveBlock) GetLonOffset() int64 {
   252  	if m != nil && m.LonOffset != nil {
   253  		return *m.LonOffset
   254  	}
   255  	return Default_PrimitiveBlock_LonOffset
   256  }
   257  
   258  func (m *PrimitiveBlock) GetDateGranularity() int32 {
   259  	if m != nil && m.DateGranularity != nil {
   260  		return *m.DateGranularity
   261  	}
   262  	return Default_PrimitiveBlock_DateGranularity
   263  }
   264  
   265  // Group of OSMPrimitives. All primitives in a group must be the same type.
   266  type PrimitiveGroup struct {
   267  	Nodes      []Node      `protobuf:"bytes,1,rep,name=nodes" json:"nodes"`
   268  	Dense      *DenseNodes `protobuf:"bytes,2,opt,name=dense" json:"dense,omitempty"`
   269  	Ways       []Way       `protobuf:"bytes,3,rep,name=ways" json:"ways"`
   270  	Relations  []Relation  `protobuf:"bytes,4,rep,name=relations" json:"relations"`
   271  	Changesets []ChangeSet `protobuf:"bytes,5,rep,name=changesets" json:"changesets"`
   272  }
   273  
   274  func (m *PrimitiveGroup) Reset()                    { *m = PrimitiveGroup{} }
   275  func (m *PrimitiveGroup) String() string            { return proto.CompactTextString(m) }
   276  func (*PrimitiveGroup) ProtoMessage()               {}
   277  func (*PrimitiveGroup) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{3} }
   278  
   279  func (m *PrimitiveGroup) GetNodes() []Node {
   280  	if m != nil {
   281  		return m.Nodes
   282  	}
   283  	return nil
   284  }
   285  
   286  func (m *PrimitiveGroup) GetDense() *DenseNodes {
   287  	if m != nil {
   288  		return m.Dense
   289  	}
   290  	return nil
   291  }
   292  
   293  func (m *PrimitiveGroup) GetWays() []Way {
   294  	if m != nil {
   295  		return m.Ways
   296  	}
   297  	return nil
   298  }
   299  
   300  func (m *PrimitiveGroup) GetRelations() []Relation {
   301  	if m != nil {
   302  		return m.Relations
   303  	}
   304  	return nil
   305  }
   306  
   307  func (m *PrimitiveGroup) GetChangesets() []ChangeSet {
   308  	if m != nil {
   309  		return m.Changesets
   310  	}
   311  	return nil
   312  }
   313  
   314  // * String table, contains the common strings in each block.
   315  //
   316  // Note that we reserve index '0' as a delimiter, so the entry at that
   317  // index in the table is ALWAYS blank and unused.
   318  //
   319  type StringTable struct {
   320  	S [][]byte `protobuf:"bytes,1,rep,name=s" json:"s,omitempty"`
   321  }
   322  
   323  func (m *StringTable) Reset()                    { *m = StringTable{} }
   324  func (m *StringTable) String() string            { return proto.CompactTextString(m) }
   325  func (*StringTable) ProtoMessage()               {}
   326  func (*StringTable) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{4} }
   327  
   328  func (m *StringTable) GetS() [][]byte {
   329  	if m != nil {
   330  		return m.S
   331  	}
   332  	return nil
   333  }
   334  
   335  // Optional metadata that may be included into each primitive.
   336  type Info struct {
   337  	Version   *int32 `protobuf:"varint,1,opt,name=version,def=-1" json:"version,omitempty"`
   338  	Timestamp int64  `protobuf:"varint,2,opt,name=timestamp" json:"timestamp"`
   339  	Changeset int64  `protobuf:"varint,3,opt,name=changeset" json:"changeset"`
   340  	Uid       int32  `protobuf:"varint,4,opt,name=uid" json:"uid"`
   341  	UserSid   uint32 `protobuf:"varint,5,opt,name=user_sid,json=userSid" json:"user_sid"`
   342  	// The visible flag is used to store history information. It indicates that
   343  	// the current object version has been created by a delete operation on the
   344  	// OSM API.
   345  	// When a writer sets this flag, it MUST add a required_features tag with
   346  	// value "HistoricalInformation" to the HeaderBlock.
   347  	// If this flag is not available for some object it MUST be assumed to be
   348  	// true if the file has the required_features tag "HistoricalInformation"
   349  	// set.
   350  	Visible bool `protobuf:"varint,6,opt,name=visible" json:"visible"`
   351  }
   352  
   353  func (m *Info) Reset()                    { *m = Info{} }
   354  func (m *Info) String() string            { return proto.CompactTextString(m) }
   355  func (*Info) ProtoMessage()               {}
   356  func (*Info) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{5} }
   357  
   358  const Default_Info_Version int32 = -1
   359  
   360  func (m *Info) GetVersion() int32 {
   361  	if m != nil && m.Version != nil {
   362  		return *m.Version
   363  	}
   364  	return Default_Info_Version
   365  }
   366  
   367  func (m *Info) GetTimestamp() int64 {
   368  	if m != nil {
   369  		return m.Timestamp
   370  	}
   371  	return 0
   372  }
   373  
   374  func (m *Info) GetChangeset() int64 {
   375  	if m != nil {
   376  		return m.Changeset
   377  	}
   378  	return 0
   379  }
   380  
   381  func (m *Info) GetUid() int32 {
   382  	if m != nil {
   383  		return m.Uid
   384  	}
   385  	return 0
   386  }
   387  
   388  func (m *Info) GetUserSid() uint32 {
   389  	if m != nil {
   390  		return m.UserSid
   391  	}
   392  	return 0
   393  }
   394  
   395  func (m *Info) GetVisible() bool {
   396  	if m != nil {
   397  		return m.Visible
   398  	}
   399  	return false
   400  }
   401  
   402  // * Optional metadata that may be included into each primitive. Special dense format used in DenseNodes.
   403  type DenseInfo struct {
   404  	Version   []int32 `protobuf:"varint,1,rep,packed,name=version" json:"version,omitempty"`
   405  	Timestamp []int64 `protobuf:"zigzag64,2,rep,packed,name=timestamp" json:"timestamp,omitempty"`
   406  	Changeset []int64 `protobuf:"zigzag64,3,rep,packed,name=changeset" json:"changeset,omitempty"`
   407  	Uid       []int32 `protobuf:"zigzag32,4,rep,packed,name=uid" json:"uid,omitempty"`
   408  	UserSid   []int32 `protobuf:"zigzag32,5,rep,packed,name=user_sid,json=userSid" json:"user_sid,omitempty"`
   409  	// The visible flag is used to store history information. It indicates that
   410  	// the current object version has been created by a delete operation on the
   411  	// OSM API.
   412  	// When a writer sets this flag, it MUST add a required_features tag with
   413  	// value "HistoricalInformation" to the HeaderBlock.
   414  	// If this flag is not available for some object it MUST be assumed to be
   415  	// true if the file has the required_features tag "HistoricalInformation"
   416  	// set.
   417  	Visible []bool `protobuf:"varint,6,rep,packed,name=visible" json:"visible,omitempty"`
   418  }
   419  
   420  func (m *DenseInfo) Reset()                    { *m = DenseInfo{} }
   421  func (m *DenseInfo) String() string            { return proto.CompactTextString(m) }
   422  func (*DenseInfo) ProtoMessage()               {}
   423  func (*DenseInfo) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{6} }
   424  
   425  func (m *DenseInfo) GetVersion() []int32 {
   426  	if m != nil {
   427  		return m.Version
   428  	}
   429  	return nil
   430  }
   431  
   432  func (m *DenseInfo) GetTimestamp() []int64 {
   433  	if m != nil {
   434  		return m.Timestamp
   435  	}
   436  	return nil
   437  }
   438  
   439  func (m *DenseInfo) GetChangeset() []int64 {
   440  	if m != nil {
   441  		return m.Changeset
   442  	}
   443  	return nil
   444  }
   445  
   446  func (m *DenseInfo) GetUid() []int32 {
   447  	if m != nil {
   448  		return m.Uid
   449  	}
   450  	return nil
   451  }
   452  
   453  func (m *DenseInfo) GetUserSid() []int32 {
   454  	if m != nil {
   455  		return m.UserSid
   456  	}
   457  	return nil
   458  }
   459  
   460  func (m *DenseInfo) GetVisible() []bool {
   461  	if m != nil {
   462  		return m.Visible
   463  	}
   464  	return nil
   465  }
   466  
   467  // THIS IS STUB DESIGN FOR CHANGESETS. NOT USED RIGHT NOW.
   468  // TODO:    REMOVE THIS?
   469  type ChangeSet struct {
   470  	Id int64 `protobuf:"varint,1,req,name=id" json:"id"`
   471  }
   472  
   473  func (m *ChangeSet) Reset()                    { *m = ChangeSet{} }
   474  func (m *ChangeSet) String() string            { return proto.CompactTextString(m) }
   475  func (*ChangeSet) ProtoMessage()               {}
   476  func (*ChangeSet) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{7} }
   477  
   478  func (m *ChangeSet) GetId() int64 {
   479  	if m != nil {
   480  		return m.Id
   481  	}
   482  	return 0
   483  }
   484  
   485  type Node struct {
   486  	Id int64 `protobuf:"zigzag64,1,req,name=id" json:"id"`
   487  	// Parallel arrays.
   488  	Keys []uint32 `protobuf:"varint,2,rep,packed,name=keys" json:"keys,omitempty"`
   489  	Vals []uint32 `protobuf:"varint,3,rep,packed,name=vals" json:"vals,omitempty"`
   490  	Info Info     `protobuf:"bytes,4,opt,name=info" json:"info"`
   491  	Lat  int64    `protobuf:"zigzag64,8,req,name=lat" json:"lat"`
   492  	Lon  int64    `protobuf:"zigzag64,9,req,name=lon" json:"lon"`
   493  }
   494  
   495  func (m *Node) Reset()                    { *m = Node{} }
   496  func (m *Node) String() string            { return proto.CompactTextString(m) }
   497  func (*Node) ProtoMessage()               {}
   498  func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{8} }
   499  
   500  func (m *Node) GetId() int64 {
   501  	if m != nil {
   502  		return m.Id
   503  	}
   504  	return 0
   505  }
   506  
   507  func (m *Node) GetKeys() []uint32 {
   508  	if m != nil {
   509  		return m.Keys
   510  	}
   511  	return nil
   512  }
   513  
   514  func (m *Node) GetVals() []uint32 {
   515  	if m != nil {
   516  		return m.Vals
   517  	}
   518  	return nil
   519  }
   520  
   521  func (m *Node) GetInfo() Info {
   522  	if m != nil {
   523  		return m.Info
   524  	}
   525  	return Info{}
   526  }
   527  
   528  func (m *Node) GetLat() int64 {
   529  	if m != nil {
   530  		return m.Lat
   531  	}
   532  	return 0
   533  }
   534  
   535  func (m *Node) GetLon() int64 {
   536  	if m != nil {
   537  		return m.Lon
   538  	}
   539  	return 0
   540  }
   541  
   542  type DenseNodes struct {
   543  	Id []int64 `protobuf:"zigzag64,1,rep,packed,name=id" json:"id,omitempty"`
   544  	// repeated Info info = 4;
   545  	Denseinfo *DenseInfo `protobuf:"bytes,5,opt,name=denseinfo" json:"denseinfo,omitempty"`
   546  	Lat       []int64    `protobuf:"zigzag64,8,rep,packed,name=lat" json:"lat,omitempty"`
   547  	Lon       []int64    `protobuf:"zigzag64,9,rep,packed,name=lon" json:"lon,omitempty"`
   548  	// Special packing of keys and vals into one array. May be empty if all nodes in this block are tagless.
   549  	KeysVals []int32 `protobuf:"varint,10,rep,packed,name=keys_vals,json=keysVals" json:"keys_vals,omitempty"`
   550  }
   551  
   552  func (m *DenseNodes) Reset()                    { *m = DenseNodes{} }
   553  func (m *DenseNodes) String() string            { return proto.CompactTextString(m) }
   554  func (*DenseNodes) ProtoMessage()               {}
   555  func (*DenseNodes) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{9} }
   556  
   557  func (m *DenseNodes) GetId() []int64 {
   558  	if m != nil {
   559  		return m.Id
   560  	}
   561  	return nil
   562  }
   563  
   564  func (m *DenseNodes) GetDenseinfo() *DenseInfo {
   565  	if m != nil {
   566  		return m.Denseinfo
   567  	}
   568  	return nil
   569  }
   570  
   571  func (m *DenseNodes) GetLat() []int64 {
   572  	if m != nil {
   573  		return m.Lat
   574  	}
   575  	return nil
   576  }
   577  
   578  func (m *DenseNodes) GetLon() []int64 {
   579  	if m != nil {
   580  		return m.Lon
   581  	}
   582  	return nil
   583  }
   584  
   585  func (m *DenseNodes) GetKeysVals() []int32 {
   586  	if m != nil {
   587  		return m.KeysVals
   588  	}
   589  	return nil
   590  }
   591  
   592  type Way struct {
   593  	Id int64 `protobuf:"varint,1,req,name=id" json:"id"`
   594  	// Parallel arrays.
   595  	Keys []uint32 `protobuf:"varint,2,rep,packed,name=keys" json:"keys,omitempty"`
   596  	Vals []uint32 `protobuf:"varint,3,rep,packed,name=vals" json:"vals,omitempty"`
   597  	Info Info     `protobuf:"bytes,4,opt,name=info" json:"info"`
   598  	Refs []int64  `protobuf:"zigzag64,8,rep,packed,name=refs" json:"refs,omitempty"`
   599  }
   600  
   601  func (m *Way) Reset()                    { *m = Way{} }
   602  func (m *Way) String() string            { return proto.CompactTextString(m) }
   603  func (*Way) ProtoMessage()               {}
   604  func (*Way) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{10} }
   605  
   606  func (m *Way) GetId() int64 {
   607  	if m != nil {
   608  		return m.Id
   609  	}
   610  	return 0
   611  }
   612  
   613  func (m *Way) GetKeys() []uint32 {
   614  	if m != nil {
   615  		return m.Keys
   616  	}
   617  	return nil
   618  }
   619  
   620  func (m *Way) GetVals() []uint32 {
   621  	if m != nil {
   622  		return m.Vals
   623  	}
   624  	return nil
   625  }
   626  
   627  func (m *Way) GetInfo() Info {
   628  	if m != nil {
   629  		return m.Info
   630  	}
   631  	return Info{}
   632  }
   633  
   634  func (m *Way) GetRefs() []int64 {
   635  	if m != nil {
   636  		return m.Refs
   637  	}
   638  	return nil
   639  }
   640  
   641  type Relation struct {
   642  	Id int64 `protobuf:"varint,1,req,name=id" json:"id"`
   643  	// Parallel arrays.
   644  	Keys []uint32 `protobuf:"varint,2,rep,packed,name=keys" json:"keys,omitempty"`
   645  	Vals []uint32 `protobuf:"varint,3,rep,packed,name=vals" json:"vals,omitempty"`
   646  	Info Info     `protobuf:"bytes,4,opt,name=info" json:"info"`
   647  	// Parallel arrays
   648  	RolesSid []int32               `protobuf:"varint,8,rep,packed,name=roles_sid,json=rolesSid" json:"roles_sid,omitempty"`
   649  	Memids   []int64               `protobuf:"zigzag64,9,rep,packed,name=memids" json:"memids,omitempty"`
   650  	Types    []Relation_MemberType `protobuf:"varint,10,rep,packed,name=types,enum=osmpbf.Relation_MemberType" json:"types,omitempty"`
   651  }
   652  
   653  func (m *Relation) Reset()                    { *m = Relation{} }
   654  func (m *Relation) String() string            { return proto.CompactTextString(m) }
   655  func (*Relation) ProtoMessage()               {}
   656  func (*Relation) Descriptor() ([]byte, []int) { return fileDescriptorOsmformat, []int{11} }
   657  
   658  func (m *Relation) GetId() int64 {
   659  	if m != nil {
   660  		return m.Id
   661  	}
   662  	return 0
   663  }
   664  
   665  func (m *Relation) GetKeys() []uint32 {
   666  	if m != nil {
   667  		return m.Keys
   668  	}
   669  	return nil
   670  }
   671  
   672  func (m *Relation) GetVals() []uint32 {
   673  	if m != nil {
   674  		return m.Vals
   675  	}
   676  	return nil
   677  }
   678  
   679  func (m *Relation) GetInfo() Info {
   680  	if m != nil {
   681  		return m.Info
   682  	}
   683  	return Info{}
   684  }
   685  
   686  func (m *Relation) GetRolesSid() []int32 {
   687  	if m != nil {
   688  		return m.RolesSid
   689  	}
   690  	return nil
   691  }
   692  
   693  func (m *Relation) GetMemids() []int64 {
   694  	if m != nil {
   695  		return m.Memids
   696  	}
   697  	return nil
   698  }
   699  
   700  func (m *Relation) GetTypes() []Relation_MemberType {
   701  	if m != nil {
   702  		return m.Types
   703  	}
   704  	return nil
   705  }
   706  
   707  func init() {
   708  	proto.RegisterType((*HeaderBlock)(nil), "osmpbf.HeaderBlock")
   709  	proto.RegisterType((*HeaderBBox)(nil), "osmpbf.HeaderBBox")
   710  	proto.RegisterType((*PrimitiveBlock)(nil), "osmpbf.PrimitiveBlock")
   711  	proto.RegisterType((*PrimitiveGroup)(nil), "osmpbf.PrimitiveGroup")
   712  	proto.RegisterType((*StringTable)(nil), "osmpbf.StringTable")
   713  	proto.RegisterType((*Info)(nil), "osmpbf.Info")
   714  	proto.RegisterType((*DenseInfo)(nil), "osmpbf.DenseInfo")
   715  	proto.RegisterType((*ChangeSet)(nil), "osmpbf.ChangeSet")
   716  	proto.RegisterType((*Node)(nil), "osmpbf.Node")
   717  	proto.RegisterType((*DenseNodes)(nil), "osmpbf.DenseNodes")
   718  	proto.RegisterType((*Way)(nil), "osmpbf.Way")
   719  	proto.RegisterType((*Relation)(nil), "osmpbf.Relation")
   720  	proto.RegisterEnum("osmpbf.Relation_MemberType", Relation_MemberType_name, Relation_MemberType_value)
   721  }
   722  func (m *HeaderBlock) Marshal() (dAtA []byte, err error) {
   723  	size := m.Size()
   724  	dAtA = make([]byte, size)
   725  	n, err := m.MarshalTo(dAtA)
   726  	if err != nil {
   727  		return nil, err
   728  	}
   729  	return dAtA[:n], nil
   730  }
   731  
   732  func (m *HeaderBlock) MarshalTo(dAtA []byte) (int, error) {
   733  	var i int
   734  	_ = i
   735  	var l int
   736  	_ = l
   737  	if m.Bbox != nil {
   738  		dAtA[i] = 0xa
   739  		i++
   740  		i = encodeVarintOsmformat(dAtA, i, uint64(m.Bbox.Size()))
   741  		n1, err := m.Bbox.MarshalTo(dAtA[i:])
   742  		if err != nil {
   743  			return 0, err
   744  		}
   745  		i += n1
   746  	}
   747  	if len(m.RequiredFeatures) > 0 {
   748  		for _, s := range m.RequiredFeatures {
   749  			dAtA[i] = 0x22
   750  			i++
   751  			l = len(s)
   752  			for l >= 1<<7 {
   753  				dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
   754  				l >>= 7
   755  				i++
   756  			}
   757  			dAtA[i] = uint8(l)
   758  			i++
   759  			i += copy(dAtA[i:], s)
   760  		}
   761  	}
   762  	if len(m.OptionalFeatures) > 0 {
   763  		for _, s := range m.OptionalFeatures {
   764  			dAtA[i] = 0x2a
   765  			i++
   766  			l = len(s)
   767  			for l >= 1<<7 {
   768  				dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
   769  				l >>= 7
   770  				i++
   771  			}
   772  			dAtA[i] = uint8(l)
   773  			i++
   774  			i += copy(dAtA[i:], s)
   775  		}
   776  	}
   777  	dAtA[i] = 0x82
   778  	i++
   779  	dAtA[i] = 0x1
   780  	i++
   781  	i = encodeVarintOsmformat(dAtA, i, uint64(len(m.Writingprogram)))
   782  	i += copy(dAtA[i:], m.Writingprogram)
   783  	dAtA[i] = 0x8a
   784  	i++
   785  	dAtA[i] = 0x1
   786  	i++
   787  	i = encodeVarintOsmformat(dAtA, i, uint64(len(m.Source)))
   788  	i += copy(dAtA[i:], m.Source)
   789  	dAtA[i] = 0x80
   790  	i++
   791  	dAtA[i] = 0x2
   792  	i++
   793  	i = encodeVarintOsmformat(dAtA, i, uint64(m.OsmosisReplicationTimestamp))
   794  	dAtA[i] = 0x88
   795  	i++
   796  	dAtA[i] = 0x2
   797  	i++
   798  	i = encodeVarintOsmformat(dAtA, i, uint64(m.OsmosisReplicationSequenceNumber))
   799  	dAtA[i] = 0x92
   800  	i++
   801  	dAtA[i] = 0x2
   802  	i++
   803  	i = encodeVarintOsmformat(dAtA, i, uint64(len(m.OsmosisReplicationBaseUrl)))
   804  	i += copy(dAtA[i:], m.OsmosisReplicationBaseUrl)
   805  	return i, nil
   806  }
   807  
   808  func (m *HeaderBBox) Marshal() (dAtA []byte, err error) {
   809  	size := m.Size()
   810  	dAtA = make([]byte, size)
   811  	n, err := m.MarshalTo(dAtA)
   812  	if err != nil {
   813  		return nil, err
   814  	}
   815  	return dAtA[:n], nil
   816  }
   817  
   818  func (m *HeaderBBox) MarshalTo(dAtA []byte) (int, error) {
   819  	var i int
   820  	_ = i
   821  	var l int
   822  	_ = l
   823  	dAtA[i] = 0x8
   824  	i++
   825  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Left)<<1)^uint64((m.Left>>63))))
   826  	dAtA[i] = 0x10
   827  	i++
   828  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Right)<<1)^uint64((m.Right>>63))))
   829  	dAtA[i] = 0x18
   830  	i++
   831  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Top)<<1)^uint64((m.Top>>63))))
   832  	dAtA[i] = 0x20
   833  	i++
   834  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Bottom)<<1)^uint64((m.Bottom>>63))))
   835  	return i, nil
   836  }
   837  
   838  func (m *PrimitiveBlock) Marshal() (dAtA []byte, err error) {
   839  	size := m.Size()
   840  	dAtA = make([]byte, size)
   841  	n, err := m.MarshalTo(dAtA)
   842  	if err != nil {
   843  		return nil, err
   844  	}
   845  	return dAtA[:n], nil
   846  }
   847  
   848  func (m *PrimitiveBlock) MarshalTo(dAtA []byte) (int, error) {
   849  	var i int
   850  	_ = i
   851  	var l int
   852  	_ = l
   853  	if m.Stringtable == nil {
   854  		return 0, proto.NewRequiredNotSetError("stringtable")
   855  	} else {
   856  		dAtA[i] = 0xa
   857  		i++
   858  		i = encodeVarintOsmformat(dAtA, i, uint64(m.Stringtable.Size()))
   859  		n2, err := m.Stringtable.MarshalTo(dAtA[i:])
   860  		if err != nil {
   861  			return 0, err
   862  		}
   863  		i += n2
   864  	}
   865  	if len(m.Primitivegroup) > 0 {
   866  		for _, msg := range m.Primitivegroup {
   867  			dAtA[i] = 0x12
   868  			i++
   869  			i = encodeVarintOsmformat(dAtA, i, uint64(msg.Size()))
   870  			n, err := msg.MarshalTo(dAtA[i:])
   871  			if err != nil {
   872  				return 0, err
   873  			}
   874  			i += n
   875  		}
   876  	}
   877  	if m.Granularity != nil {
   878  		dAtA[i] = 0x88
   879  		i++
   880  		dAtA[i] = 0x1
   881  		i++
   882  		i = encodeVarintOsmformat(dAtA, i, uint64(*m.Granularity))
   883  	}
   884  	if m.DateGranularity != nil {
   885  		dAtA[i] = 0x90
   886  		i++
   887  		dAtA[i] = 0x1
   888  		i++
   889  		i = encodeVarintOsmformat(dAtA, i, uint64(*m.DateGranularity))
   890  	}
   891  	if m.LatOffset != nil {
   892  		dAtA[i] = 0x98
   893  		i++
   894  		dAtA[i] = 0x1
   895  		i++
   896  		i = encodeVarintOsmformat(dAtA, i, uint64(*m.LatOffset))
   897  	}
   898  	if m.LonOffset != nil {
   899  		dAtA[i] = 0xa0
   900  		i++
   901  		dAtA[i] = 0x1
   902  		i++
   903  		i = encodeVarintOsmformat(dAtA, i, uint64(*m.LonOffset))
   904  	}
   905  	return i, nil
   906  }
   907  
   908  func (m *PrimitiveGroup) Marshal() (dAtA []byte, err error) {
   909  	size := m.Size()
   910  	dAtA = make([]byte, size)
   911  	n, err := m.MarshalTo(dAtA)
   912  	if err != nil {
   913  		return nil, err
   914  	}
   915  	return dAtA[:n], nil
   916  }
   917  
   918  func (m *PrimitiveGroup) MarshalTo(dAtA []byte) (int, error) {
   919  	var i int
   920  	_ = i
   921  	var l int
   922  	_ = l
   923  	if len(m.Nodes) > 0 {
   924  		for _, msg := range m.Nodes {
   925  			dAtA[i] = 0xa
   926  			i++
   927  			i = encodeVarintOsmformat(dAtA, i, uint64(msg.Size()))
   928  			n, err := msg.MarshalTo(dAtA[i:])
   929  			if err != nil {
   930  				return 0, err
   931  			}
   932  			i += n
   933  		}
   934  	}
   935  	if m.Dense != nil {
   936  		dAtA[i] = 0x12
   937  		i++
   938  		i = encodeVarintOsmformat(dAtA, i, uint64(m.Dense.Size()))
   939  		n3, err := m.Dense.MarshalTo(dAtA[i:])
   940  		if err != nil {
   941  			return 0, err
   942  		}
   943  		i += n3
   944  	}
   945  	if len(m.Ways) > 0 {
   946  		for _, msg := range m.Ways {
   947  			dAtA[i] = 0x1a
   948  			i++
   949  			i = encodeVarintOsmformat(dAtA, i, uint64(msg.Size()))
   950  			n, err := msg.MarshalTo(dAtA[i:])
   951  			if err != nil {
   952  				return 0, err
   953  			}
   954  			i += n
   955  		}
   956  	}
   957  	if len(m.Relations) > 0 {
   958  		for _, msg := range m.Relations {
   959  			dAtA[i] = 0x22
   960  			i++
   961  			i = encodeVarintOsmformat(dAtA, i, uint64(msg.Size()))
   962  			n, err := msg.MarshalTo(dAtA[i:])
   963  			if err != nil {
   964  				return 0, err
   965  			}
   966  			i += n
   967  		}
   968  	}
   969  	if len(m.Changesets) > 0 {
   970  		for _, msg := range m.Changesets {
   971  			dAtA[i] = 0x2a
   972  			i++
   973  			i = encodeVarintOsmformat(dAtA, i, uint64(msg.Size()))
   974  			n, err := msg.MarshalTo(dAtA[i:])
   975  			if err != nil {
   976  				return 0, err
   977  			}
   978  			i += n
   979  		}
   980  	}
   981  	return i, nil
   982  }
   983  
   984  func (m *StringTable) Marshal() (dAtA []byte, err error) {
   985  	size := m.Size()
   986  	dAtA = make([]byte, size)
   987  	n, err := m.MarshalTo(dAtA)
   988  	if err != nil {
   989  		return nil, err
   990  	}
   991  	return dAtA[:n], nil
   992  }
   993  
   994  func (m *StringTable) MarshalTo(dAtA []byte) (int, error) {
   995  	var i int
   996  	_ = i
   997  	var l int
   998  	_ = l
   999  	if len(m.S) > 0 {
  1000  		for _, b := range m.S {
  1001  			dAtA[i] = 0xa
  1002  			i++
  1003  			i = encodeVarintOsmformat(dAtA, i, uint64(len(b)))
  1004  			i += copy(dAtA[i:], b)
  1005  		}
  1006  	}
  1007  	return i, nil
  1008  }
  1009  
  1010  func (m *Info) Marshal() (dAtA []byte, err error) {
  1011  	size := m.Size()
  1012  	dAtA = make([]byte, size)
  1013  	n, err := m.MarshalTo(dAtA)
  1014  	if err != nil {
  1015  		return nil, err
  1016  	}
  1017  	return dAtA[:n], nil
  1018  }
  1019  
  1020  func (m *Info) MarshalTo(dAtA []byte) (int, error) {
  1021  	var i int
  1022  	_ = i
  1023  	var l int
  1024  	_ = l
  1025  	if m.Version != nil {
  1026  		dAtA[i] = 0x8
  1027  		i++
  1028  		i = encodeVarintOsmformat(dAtA, i, uint64(*m.Version))
  1029  	}
  1030  	dAtA[i] = 0x10
  1031  	i++
  1032  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Timestamp))
  1033  	dAtA[i] = 0x18
  1034  	i++
  1035  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Changeset))
  1036  	dAtA[i] = 0x20
  1037  	i++
  1038  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Uid))
  1039  	dAtA[i] = 0x28
  1040  	i++
  1041  	i = encodeVarintOsmformat(dAtA, i, uint64(m.UserSid))
  1042  	dAtA[i] = 0x30
  1043  	i++
  1044  	if m.Visible {
  1045  		dAtA[i] = 1
  1046  	} else {
  1047  		dAtA[i] = 0
  1048  	}
  1049  	i++
  1050  	return i, nil
  1051  }
  1052  
  1053  func (m *DenseInfo) Marshal() (dAtA []byte, err error) {
  1054  	size := m.Size()
  1055  	dAtA = make([]byte, size)
  1056  	n, err := m.MarshalTo(dAtA)
  1057  	if err != nil {
  1058  		return nil, err
  1059  	}
  1060  	return dAtA[:n], nil
  1061  }
  1062  
  1063  func (m *DenseInfo) MarshalTo(dAtA []byte) (int, error) {
  1064  	var i int
  1065  	_ = i
  1066  	var l int
  1067  	_ = l
  1068  	if len(m.Version) > 0 {
  1069  		dAtA5 := make([]byte, len(m.Version)*10)
  1070  		var j4 int
  1071  		for _, num1 := range m.Version {
  1072  			num := uint64(num1)
  1073  			for num >= 1<<7 {
  1074  				dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80)
  1075  				num >>= 7
  1076  				j4++
  1077  			}
  1078  			dAtA5[j4] = uint8(num)
  1079  			j4++
  1080  		}
  1081  		dAtA[i] = 0xa
  1082  		i++
  1083  		i = encodeVarintOsmformat(dAtA, i, uint64(j4))
  1084  		i += copy(dAtA[i:], dAtA5[:j4])
  1085  	}
  1086  	if len(m.Timestamp) > 0 {
  1087  		var j6 int
  1088  		dAtA8 := make([]byte, len(m.Timestamp)*10)
  1089  		for _, num := range m.Timestamp {
  1090  			x7 := (uint64(num) << 1) ^ uint64((num >> 63))
  1091  			for x7 >= 1<<7 {
  1092  				dAtA8[j6] = uint8(uint64(x7)&0x7f | 0x80)
  1093  				j6++
  1094  				x7 >>= 7
  1095  			}
  1096  			dAtA8[j6] = uint8(x7)
  1097  			j6++
  1098  		}
  1099  		dAtA[i] = 0x12
  1100  		i++
  1101  		i = encodeVarintOsmformat(dAtA, i, uint64(j6))
  1102  		i += copy(dAtA[i:], dAtA8[:j6])
  1103  	}
  1104  	if len(m.Changeset) > 0 {
  1105  		var j9 int
  1106  		dAtA11 := make([]byte, len(m.Changeset)*10)
  1107  		for _, num := range m.Changeset {
  1108  			x10 := (uint64(num) << 1) ^ uint64((num >> 63))
  1109  			for x10 >= 1<<7 {
  1110  				dAtA11[j9] = uint8(uint64(x10)&0x7f | 0x80)
  1111  				j9++
  1112  				x10 >>= 7
  1113  			}
  1114  			dAtA11[j9] = uint8(x10)
  1115  			j9++
  1116  		}
  1117  		dAtA[i] = 0x1a
  1118  		i++
  1119  		i = encodeVarintOsmformat(dAtA, i, uint64(j9))
  1120  		i += copy(dAtA[i:], dAtA11[:j9])
  1121  	}
  1122  	if len(m.Uid) > 0 {
  1123  		dAtA12 := make([]byte, len(m.Uid)*5)
  1124  		var j13 int
  1125  		for _, num := range m.Uid {
  1126  			x14 := (uint32(num) << 1) ^ uint32((num >> 31))
  1127  			for x14 >= 1<<7 {
  1128  				dAtA12[j13] = uint8(uint64(x14)&0x7f | 0x80)
  1129  				j13++
  1130  				x14 >>= 7
  1131  			}
  1132  			dAtA12[j13] = uint8(x14)
  1133  			j13++
  1134  		}
  1135  		dAtA[i] = 0x22
  1136  		i++
  1137  		i = encodeVarintOsmformat(dAtA, i, uint64(j13))
  1138  		i += copy(dAtA[i:], dAtA12[:j13])
  1139  	}
  1140  	if len(m.UserSid) > 0 {
  1141  		dAtA15 := make([]byte, len(m.UserSid)*5)
  1142  		var j16 int
  1143  		for _, num := range m.UserSid {
  1144  			x17 := (uint32(num) << 1) ^ uint32((num >> 31))
  1145  			for x17 >= 1<<7 {
  1146  				dAtA15[j16] = uint8(uint64(x17)&0x7f | 0x80)
  1147  				j16++
  1148  				x17 >>= 7
  1149  			}
  1150  			dAtA15[j16] = uint8(x17)
  1151  			j16++
  1152  		}
  1153  		dAtA[i] = 0x2a
  1154  		i++
  1155  		i = encodeVarintOsmformat(dAtA, i, uint64(j16))
  1156  		i += copy(dAtA[i:], dAtA15[:j16])
  1157  	}
  1158  	if len(m.Visible) > 0 {
  1159  		dAtA[i] = 0x32
  1160  		i++
  1161  		i = encodeVarintOsmformat(dAtA, i, uint64(len(m.Visible)))
  1162  		for _, b := range m.Visible {
  1163  			if b {
  1164  				dAtA[i] = 1
  1165  			} else {
  1166  				dAtA[i] = 0
  1167  			}
  1168  			i++
  1169  		}
  1170  	}
  1171  	return i, nil
  1172  }
  1173  
  1174  func (m *ChangeSet) Marshal() (dAtA []byte, err error) {
  1175  	size := m.Size()
  1176  	dAtA = make([]byte, size)
  1177  	n, err := m.MarshalTo(dAtA)
  1178  	if err != nil {
  1179  		return nil, err
  1180  	}
  1181  	return dAtA[:n], nil
  1182  }
  1183  
  1184  func (m *ChangeSet) MarshalTo(dAtA []byte) (int, error) {
  1185  	var i int
  1186  	_ = i
  1187  	var l int
  1188  	_ = l
  1189  	dAtA[i] = 0x8
  1190  	i++
  1191  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Id))
  1192  	return i, nil
  1193  }
  1194  
  1195  func (m *Node) Marshal() (dAtA []byte, err error) {
  1196  	size := m.Size()
  1197  	dAtA = make([]byte, size)
  1198  	n, err := m.MarshalTo(dAtA)
  1199  	if err != nil {
  1200  		return nil, err
  1201  	}
  1202  	return dAtA[:n], nil
  1203  }
  1204  
  1205  func (m *Node) MarshalTo(dAtA []byte) (int, error) {
  1206  	var i int
  1207  	_ = i
  1208  	var l int
  1209  	_ = l
  1210  	dAtA[i] = 0x8
  1211  	i++
  1212  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Id)<<1)^uint64((m.Id>>63))))
  1213  	if len(m.Keys) > 0 {
  1214  		dAtA19 := make([]byte, len(m.Keys)*10)
  1215  		var j18 int
  1216  		for _, num := range m.Keys {
  1217  			for num >= 1<<7 {
  1218  				dAtA19[j18] = uint8(uint64(num)&0x7f | 0x80)
  1219  				num >>= 7
  1220  				j18++
  1221  			}
  1222  			dAtA19[j18] = uint8(num)
  1223  			j18++
  1224  		}
  1225  		dAtA[i] = 0x12
  1226  		i++
  1227  		i = encodeVarintOsmformat(dAtA, i, uint64(j18))
  1228  		i += copy(dAtA[i:], dAtA19[:j18])
  1229  	}
  1230  	if len(m.Vals) > 0 {
  1231  		dAtA21 := make([]byte, len(m.Vals)*10)
  1232  		var j20 int
  1233  		for _, num := range m.Vals {
  1234  			for num >= 1<<7 {
  1235  				dAtA21[j20] = uint8(uint64(num)&0x7f | 0x80)
  1236  				num >>= 7
  1237  				j20++
  1238  			}
  1239  			dAtA21[j20] = uint8(num)
  1240  			j20++
  1241  		}
  1242  		dAtA[i] = 0x1a
  1243  		i++
  1244  		i = encodeVarintOsmformat(dAtA, i, uint64(j20))
  1245  		i += copy(dAtA[i:], dAtA21[:j20])
  1246  	}
  1247  	dAtA[i] = 0x22
  1248  	i++
  1249  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Info.Size()))
  1250  	n22, err := m.Info.MarshalTo(dAtA[i:])
  1251  	if err != nil {
  1252  		return 0, err
  1253  	}
  1254  	i += n22
  1255  	dAtA[i] = 0x40
  1256  	i++
  1257  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Lat)<<1)^uint64((m.Lat>>63))))
  1258  	dAtA[i] = 0x48
  1259  	i++
  1260  	i = encodeVarintOsmformat(dAtA, i, uint64((uint64(m.Lon)<<1)^uint64((m.Lon>>63))))
  1261  	return i, nil
  1262  }
  1263  
  1264  func (m *DenseNodes) Marshal() (dAtA []byte, err error) {
  1265  	size := m.Size()
  1266  	dAtA = make([]byte, size)
  1267  	n, err := m.MarshalTo(dAtA)
  1268  	if err != nil {
  1269  		return nil, err
  1270  	}
  1271  	return dAtA[:n], nil
  1272  }
  1273  
  1274  func (m *DenseNodes) MarshalTo(dAtA []byte) (int, error) {
  1275  	var i int
  1276  	_ = i
  1277  	var l int
  1278  	_ = l
  1279  	if len(m.Id) > 0 {
  1280  		var j23 int
  1281  		dAtA25 := make([]byte, len(m.Id)*10)
  1282  		for _, num := range m.Id {
  1283  			x24 := (uint64(num) << 1) ^ uint64((num >> 63))
  1284  			for x24 >= 1<<7 {
  1285  				dAtA25[j23] = uint8(uint64(x24)&0x7f | 0x80)
  1286  				j23++
  1287  				x24 >>= 7
  1288  			}
  1289  			dAtA25[j23] = uint8(x24)
  1290  			j23++
  1291  		}
  1292  		dAtA[i] = 0xa
  1293  		i++
  1294  		i = encodeVarintOsmformat(dAtA, i, uint64(j23))
  1295  		i += copy(dAtA[i:], dAtA25[:j23])
  1296  	}
  1297  	if m.Denseinfo != nil {
  1298  		dAtA[i] = 0x2a
  1299  		i++
  1300  		i = encodeVarintOsmformat(dAtA, i, uint64(m.Denseinfo.Size()))
  1301  		n26, err := m.Denseinfo.MarshalTo(dAtA[i:])
  1302  		if err != nil {
  1303  			return 0, err
  1304  		}
  1305  		i += n26
  1306  	}
  1307  	if len(m.Lat) > 0 {
  1308  		var j27 int
  1309  		dAtA29 := make([]byte, len(m.Lat)*10)
  1310  		for _, num := range m.Lat {
  1311  			x28 := (uint64(num) << 1) ^ uint64((num >> 63))
  1312  			for x28 >= 1<<7 {
  1313  				dAtA29[j27] = uint8(uint64(x28)&0x7f | 0x80)
  1314  				j27++
  1315  				x28 >>= 7
  1316  			}
  1317  			dAtA29[j27] = uint8(x28)
  1318  			j27++
  1319  		}
  1320  		dAtA[i] = 0x42
  1321  		i++
  1322  		i = encodeVarintOsmformat(dAtA, i, uint64(j27))
  1323  		i += copy(dAtA[i:], dAtA29[:j27])
  1324  	}
  1325  	if len(m.Lon) > 0 {
  1326  		var j30 int
  1327  		dAtA32 := make([]byte, len(m.Lon)*10)
  1328  		for _, num := range m.Lon {
  1329  			x31 := (uint64(num) << 1) ^ uint64((num >> 63))
  1330  			for x31 >= 1<<7 {
  1331  				dAtA32[j30] = uint8(uint64(x31)&0x7f | 0x80)
  1332  				j30++
  1333  				x31 >>= 7
  1334  			}
  1335  			dAtA32[j30] = uint8(x31)
  1336  			j30++
  1337  		}
  1338  		dAtA[i] = 0x4a
  1339  		i++
  1340  		i = encodeVarintOsmformat(dAtA, i, uint64(j30))
  1341  		i += copy(dAtA[i:], dAtA32[:j30])
  1342  	}
  1343  	if len(m.KeysVals) > 0 {
  1344  		dAtA34 := make([]byte, len(m.KeysVals)*10)
  1345  		var j33 int
  1346  		for _, num1 := range m.KeysVals {
  1347  			num := uint64(num1)
  1348  			for num >= 1<<7 {
  1349  				dAtA34[j33] = uint8(uint64(num)&0x7f | 0x80)
  1350  				num >>= 7
  1351  				j33++
  1352  			}
  1353  			dAtA34[j33] = uint8(num)
  1354  			j33++
  1355  		}
  1356  		dAtA[i] = 0x52
  1357  		i++
  1358  		i = encodeVarintOsmformat(dAtA, i, uint64(j33))
  1359  		i += copy(dAtA[i:], dAtA34[:j33])
  1360  	}
  1361  	return i, nil
  1362  }
  1363  
  1364  func (m *Way) Marshal() (dAtA []byte, err error) {
  1365  	size := m.Size()
  1366  	dAtA = make([]byte, size)
  1367  	n, err := m.MarshalTo(dAtA)
  1368  	if err != nil {
  1369  		return nil, err
  1370  	}
  1371  	return dAtA[:n], nil
  1372  }
  1373  
  1374  func (m *Way) MarshalTo(dAtA []byte) (int, error) {
  1375  	var i int
  1376  	_ = i
  1377  	var l int
  1378  	_ = l
  1379  	dAtA[i] = 0x8
  1380  	i++
  1381  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Id))
  1382  	if len(m.Keys) > 0 {
  1383  		dAtA36 := make([]byte, len(m.Keys)*10)
  1384  		var j35 int
  1385  		for _, num := range m.Keys {
  1386  			for num >= 1<<7 {
  1387  				dAtA36[j35] = uint8(uint64(num)&0x7f | 0x80)
  1388  				num >>= 7
  1389  				j35++
  1390  			}
  1391  			dAtA36[j35] = uint8(num)
  1392  			j35++
  1393  		}
  1394  		dAtA[i] = 0x12
  1395  		i++
  1396  		i = encodeVarintOsmformat(dAtA, i, uint64(j35))
  1397  		i += copy(dAtA[i:], dAtA36[:j35])
  1398  	}
  1399  	if len(m.Vals) > 0 {
  1400  		dAtA38 := make([]byte, len(m.Vals)*10)
  1401  		var j37 int
  1402  		for _, num := range m.Vals {
  1403  			for num >= 1<<7 {
  1404  				dAtA38[j37] = uint8(uint64(num)&0x7f | 0x80)
  1405  				num >>= 7
  1406  				j37++
  1407  			}
  1408  			dAtA38[j37] = uint8(num)
  1409  			j37++
  1410  		}
  1411  		dAtA[i] = 0x1a
  1412  		i++
  1413  		i = encodeVarintOsmformat(dAtA, i, uint64(j37))
  1414  		i += copy(dAtA[i:], dAtA38[:j37])
  1415  	}
  1416  	dAtA[i] = 0x22
  1417  	i++
  1418  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Info.Size()))
  1419  	n39, err := m.Info.MarshalTo(dAtA[i:])
  1420  	if err != nil {
  1421  		return 0, err
  1422  	}
  1423  	i += n39
  1424  	if len(m.Refs) > 0 {
  1425  		var j40 int
  1426  		dAtA42 := make([]byte, len(m.Refs)*10)
  1427  		for _, num := range m.Refs {
  1428  			x41 := (uint64(num) << 1) ^ uint64((num >> 63))
  1429  			for x41 >= 1<<7 {
  1430  				dAtA42[j40] = uint8(uint64(x41)&0x7f | 0x80)
  1431  				j40++
  1432  				x41 >>= 7
  1433  			}
  1434  			dAtA42[j40] = uint8(x41)
  1435  			j40++
  1436  		}
  1437  		dAtA[i] = 0x42
  1438  		i++
  1439  		i = encodeVarintOsmformat(dAtA, i, uint64(j40))
  1440  		i += copy(dAtA[i:], dAtA42[:j40])
  1441  	}
  1442  	return i, nil
  1443  }
  1444  
  1445  func (m *Relation) Marshal() (dAtA []byte, err error) {
  1446  	size := m.Size()
  1447  	dAtA = make([]byte, size)
  1448  	n, err := m.MarshalTo(dAtA)
  1449  	if err != nil {
  1450  		return nil, err
  1451  	}
  1452  	return dAtA[:n], nil
  1453  }
  1454  
  1455  func (m *Relation) MarshalTo(dAtA []byte) (int, error) {
  1456  	var i int
  1457  	_ = i
  1458  	var l int
  1459  	_ = l
  1460  	dAtA[i] = 0x8
  1461  	i++
  1462  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Id))
  1463  	if len(m.Keys) > 0 {
  1464  		dAtA44 := make([]byte, len(m.Keys)*10)
  1465  		var j43 int
  1466  		for _, num := range m.Keys {
  1467  			for num >= 1<<7 {
  1468  				dAtA44[j43] = uint8(uint64(num)&0x7f | 0x80)
  1469  				num >>= 7
  1470  				j43++
  1471  			}
  1472  			dAtA44[j43] = uint8(num)
  1473  			j43++
  1474  		}
  1475  		dAtA[i] = 0x12
  1476  		i++
  1477  		i = encodeVarintOsmformat(dAtA, i, uint64(j43))
  1478  		i += copy(dAtA[i:], dAtA44[:j43])
  1479  	}
  1480  	if len(m.Vals) > 0 {
  1481  		dAtA46 := make([]byte, len(m.Vals)*10)
  1482  		var j45 int
  1483  		for _, num := range m.Vals {
  1484  			for num >= 1<<7 {
  1485  				dAtA46[j45] = uint8(uint64(num)&0x7f | 0x80)
  1486  				num >>= 7
  1487  				j45++
  1488  			}
  1489  			dAtA46[j45] = uint8(num)
  1490  			j45++
  1491  		}
  1492  		dAtA[i] = 0x1a
  1493  		i++
  1494  		i = encodeVarintOsmformat(dAtA, i, uint64(j45))
  1495  		i += copy(dAtA[i:], dAtA46[:j45])
  1496  	}
  1497  	dAtA[i] = 0x22
  1498  	i++
  1499  	i = encodeVarintOsmformat(dAtA, i, uint64(m.Info.Size()))
  1500  	n47, err := m.Info.MarshalTo(dAtA[i:])
  1501  	if err != nil {
  1502  		return 0, err
  1503  	}
  1504  	i += n47
  1505  	if len(m.RolesSid) > 0 {
  1506  		dAtA49 := make([]byte, len(m.RolesSid)*10)
  1507  		var j48 int
  1508  		for _, num1 := range m.RolesSid {
  1509  			num := uint64(num1)
  1510  			for num >= 1<<7 {
  1511  				dAtA49[j48] = uint8(uint64(num)&0x7f | 0x80)
  1512  				num >>= 7
  1513  				j48++
  1514  			}
  1515  			dAtA49[j48] = uint8(num)
  1516  			j48++
  1517  		}
  1518  		dAtA[i] = 0x42
  1519  		i++
  1520  		i = encodeVarintOsmformat(dAtA, i, uint64(j48))
  1521  		i += copy(dAtA[i:], dAtA49[:j48])
  1522  	}
  1523  	if len(m.Memids) > 0 {
  1524  		var j50 int
  1525  		dAtA52 := make([]byte, len(m.Memids)*10)
  1526  		for _, num := range m.Memids {
  1527  			x51 := (uint64(num) << 1) ^ uint64((num >> 63))
  1528  			for x51 >= 1<<7 {
  1529  				dAtA52[j50] = uint8(uint64(x51)&0x7f | 0x80)
  1530  				j50++
  1531  				x51 >>= 7
  1532  			}
  1533  			dAtA52[j50] = uint8(x51)
  1534  			j50++
  1535  		}
  1536  		dAtA[i] = 0x4a
  1537  		i++
  1538  		i = encodeVarintOsmformat(dAtA, i, uint64(j50))
  1539  		i += copy(dAtA[i:], dAtA52[:j50])
  1540  	}
  1541  	if len(m.Types) > 0 {
  1542  		dAtA54 := make([]byte, len(m.Types)*10)
  1543  		var j53 int
  1544  		for _, num := range m.Types {
  1545  			for num >= 1<<7 {
  1546  				dAtA54[j53] = uint8(uint64(num)&0x7f | 0x80)
  1547  				num >>= 7
  1548  				j53++
  1549  			}
  1550  			dAtA54[j53] = uint8(num)
  1551  			j53++
  1552  		}
  1553  		dAtA[i] = 0x52
  1554  		i++
  1555  		i = encodeVarintOsmformat(dAtA, i, uint64(j53))
  1556  		i += copy(dAtA[i:], dAtA54[:j53])
  1557  	}
  1558  	return i, nil
  1559  }
  1560  
  1561  func encodeVarintOsmformat(dAtA []byte, offset int, v uint64) int {
  1562  	for v >= 1<<7 {
  1563  		dAtA[offset] = uint8(v&0x7f | 0x80)
  1564  		v >>= 7
  1565  		offset++
  1566  	}
  1567  	dAtA[offset] = uint8(v)
  1568  	return offset + 1
  1569  }
  1570  func (m *HeaderBlock) Size() (n int) {
  1571  	var l int
  1572  	_ = l
  1573  	if m.Bbox != nil {
  1574  		l = m.Bbox.Size()
  1575  		n += 1 + l + sovOsmformat(uint64(l))
  1576  	}
  1577  	if len(m.RequiredFeatures) > 0 {
  1578  		for _, s := range m.RequiredFeatures {
  1579  			l = len(s)
  1580  			n += 1 + l + sovOsmformat(uint64(l))
  1581  		}
  1582  	}
  1583  	if len(m.OptionalFeatures) > 0 {
  1584  		for _, s := range m.OptionalFeatures {
  1585  			l = len(s)
  1586  			n += 1 + l + sovOsmformat(uint64(l))
  1587  		}
  1588  	}
  1589  	l = len(m.Writingprogram)
  1590  	n += 2 + l + sovOsmformat(uint64(l))
  1591  	l = len(m.Source)
  1592  	n += 2 + l + sovOsmformat(uint64(l))
  1593  	n += 2 + sovOsmformat(uint64(m.OsmosisReplicationTimestamp))
  1594  	n += 2 + sovOsmformat(uint64(m.OsmosisReplicationSequenceNumber))
  1595  	l = len(m.OsmosisReplicationBaseUrl)
  1596  	n += 2 + l + sovOsmformat(uint64(l))
  1597  	return n
  1598  }
  1599  
  1600  func (m *HeaderBBox) Size() (n int) {
  1601  	var l int
  1602  	_ = l
  1603  	n += 1 + sozOsmformat(uint64(m.Left))
  1604  	n += 1 + sozOsmformat(uint64(m.Right))
  1605  	n += 1 + sozOsmformat(uint64(m.Top))
  1606  	n += 1 + sozOsmformat(uint64(m.Bottom))
  1607  	return n
  1608  }
  1609  
  1610  func (m *PrimitiveBlock) Size() (n int) {
  1611  	var l int
  1612  	_ = l
  1613  	if m.Stringtable != nil {
  1614  		l = m.Stringtable.Size()
  1615  		n += 1 + l + sovOsmformat(uint64(l))
  1616  	}
  1617  	if len(m.Primitivegroup) > 0 {
  1618  		for _, e := range m.Primitivegroup {
  1619  			l = e.Size()
  1620  			n += 1 + l + sovOsmformat(uint64(l))
  1621  		}
  1622  	}
  1623  	if m.Granularity != nil {
  1624  		n += 2 + sovOsmformat(uint64(*m.Granularity))
  1625  	}
  1626  	if m.DateGranularity != nil {
  1627  		n += 2 + sovOsmformat(uint64(*m.DateGranularity))
  1628  	}
  1629  	if m.LatOffset != nil {
  1630  		n += 2 + sovOsmformat(uint64(*m.LatOffset))
  1631  	}
  1632  	if m.LonOffset != nil {
  1633  		n += 2 + sovOsmformat(uint64(*m.LonOffset))
  1634  	}
  1635  	return n
  1636  }
  1637  
  1638  func (m *PrimitiveGroup) Size() (n int) {
  1639  	var l int
  1640  	_ = l
  1641  	if len(m.Nodes) > 0 {
  1642  		for _, e := range m.Nodes {
  1643  			l = e.Size()
  1644  			n += 1 + l + sovOsmformat(uint64(l))
  1645  		}
  1646  	}
  1647  	if m.Dense != nil {
  1648  		l = m.Dense.Size()
  1649  		n += 1 + l + sovOsmformat(uint64(l))
  1650  	}
  1651  	if len(m.Ways) > 0 {
  1652  		for _, e := range m.Ways {
  1653  			l = e.Size()
  1654  			n += 1 + l + sovOsmformat(uint64(l))
  1655  		}
  1656  	}
  1657  	if len(m.Relations) > 0 {
  1658  		for _, e := range m.Relations {
  1659  			l = e.Size()
  1660  			n += 1 + l + sovOsmformat(uint64(l))
  1661  		}
  1662  	}
  1663  	if len(m.Changesets) > 0 {
  1664  		for _, e := range m.Changesets {
  1665  			l = e.Size()
  1666  			n += 1 + l + sovOsmformat(uint64(l))
  1667  		}
  1668  	}
  1669  	return n
  1670  }
  1671  
  1672  func (m *StringTable) Size() (n int) {
  1673  	var l int
  1674  	_ = l
  1675  	if len(m.S) > 0 {
  1676  		for _, b := range m.S {
  1677  			l = len(b)
  1678  			n += 1 + l + sovOsmformat(uint64(l))
  1679  		}
  1680  	}
  1681  	return n
  1682  }
  1683  
  1684  func (m *Info) Size() (n int) {
  1685  	var l int
  1686  	_ = l
  1687  	if m.Version != nil {
  1688  		n += 1 + sovOsmformat(uint64(*m.Version))
  1689  	}
  1690  	n += 1 + sovOsmformat(uint64(m.Timestamp))
  1691  	n += 1 + sovOsmformat(uint64(m.Changeset))
  1692  	n += 1 + sovOsmformat(uint64(m.Uid))
  1693  	n += 1 + sovOsmformat(uint64(m.UserSid))
  1694  	n += 2
  1695  	return n
  1696  }
  1697  
  1698  func (m *DenseInfo) Size() (n int) {
  1699  	var l int
  1700  	_ = l
  1701  	if len(m.Version) > 0 {
  1702  		l = 0
  1703  		for _, e := range m.Version {
  1704  			l += sovOsmformat(uint64(e))
  1705  		}
  1706  		n += 1 + sovOsmformat(uint64(l)) + l
  1707  	}
  1708  	if len(m.Timestamp) > 0 {
  1709  		l = 0
  1710  		for _, e := range m.Timestamp {
  1711  			l += sozOsmformat(uint64(e))
  1712  		}
  1713  		n += 1 + sovOsmformat(uint64(l)) + l
  1714  	}
  1715  	if len(m.Changeset) > 0 {
  1716  		l = 0
  1717  		for _, e := range m.Changeset {
  1718  			l += sozOsmformat(uint64(e))
  1719  		}
  1720  		n += 1 + sovOsmformat(uint64(l)) + l
  1721  	}
  1722  	if len(m.Uid) > 0 {
  1723  		l = 0
  1724  		for _, e := range m.Uid {
  1725  			l += sozOsmformat(uint64(e))
  1726  		}
  1727  		n += 1 + sovOsmformat(uint64(l)) + l
  1728  	}
  1729  	if len(m.UserSid) > 0 {
  1730  		l = 0
  1731  		for _, e := range m.UserSid {
  1732  			l += sozOsmformat(uint64(e))
  1733  		}
  1734  		n += 1 + sovOsmformat(uint64(l)) + l
  1735  	}
  1736  	if len(m.Visible) > 0 {
  1737  		n += 1 + sovOsmformat(uint64(len(m.Visible))) + len(m.Visible)*1
  1738  	}
  1739  	return n
  1740  }
  1741  
  1742  func (m *ChangeSet) Size() (n int) {
  1743  	var l int
  1744  	_ = l
  1745  	n += 1 + sovOsmformat(uint64(m.Id))
  1746  	return n
  1747  }
  1748  
  1749  func (m *Node) Size() (n int) {
  1750  	var l int
  1751  	_ = l
  1752  	n += 1 + sozOsmformat(uint64(m.Id))
  1753  	if len(m.Keys) > 0 {
  1754  		l = 0
  1755  		for _, e := range m.Keys {
  1756  			l += sovOsmformat(uint64(e))
  1757  		}
  1758  		n += 1 + sovOsmformat(uint64(l)) + l
  1759  	}
  1760  	if len(m.Vals) > 0 {
  1761  		l = 0
  1762  		for _, e := range m.Vals {
  1763  			l += sovOsmformat(uint64(e))
  1764  		}
  1765  		n += 1 + sovOsmformat(uint64(l)) + l
  1766  	}
  1767  	l = m.Info.Size()
  1768  	n += 1 + l + sovOsmformat(uint64(l))
  1769  	n += 1 + sozOsmformat(uint64(m.Lat))
  1770  	n += 1 + sozOsmformat(uint64(m.Lon))
  1771  	return n
  1772  }
  1773  
  1774  func (m *DenseNodes) Size() (n int) {
  1775  	var l int
  1776  	_ = l
  1777  	if len(m.Id) > 0 {
  1778  		l = 0
  1779  		for _, e := range m.Id {
  1780  			l += sozOsmformat(uint64(e))
  1781  		}
  1782  		n += 1 + sovOsmformat(uint64(l)) + l
  1783  	}
  1784  	if m.Denseinfo != nil {
  1785  		l = m.Denseinfo.Size()
  1786  		n += 1 + l + sovOsmformat(uint64(l))
  1787  	}
  1788  	if len(m.Lat) > 0 {
  1789  		l = 0
  1790  		for _, e := range m.Lat {
  1791  			l += sozOsmformat(uint64(e))
  1792  		}
  1793  		n += 1 + sovOsmformat(uint64(l)) + l
  1794  	}
  1795  	if len(m.Lon) > 0 {
  1796  		l = 0
  1797  		for _, e := range m.Lon {
  1798  			l += sozOsmformat(uint64(e))
  1799  		}
  1800  		n += 1 + sovOsmformat(uint64(l)) + l
  1801  	}
  1802  	if len(m.KeysVals) > 0 {
  1803  		l = 0
  1804  		for _, e := range m.KeysVals {
  1805  			l += sovOsmformat(uint64(e))
  1806  		}
  1807  		n += 1 + sovOsmformat(uint64(l)) + l
  1808  	}
  1809  	return n
  1810  }
  1811  
  1812  func (m *Way) Size() (n int) {
  1813  	var l int
  1814  	_ = l
  1815  	n += 1 + sovOsmformat(uint64(m.Id))
  1816  	if len(m.Keys) > 0 {
  1817  		l = 0
  1818  		for _, e := range m.Keys {
  1819  			l += sovOsmformat(uint64(e))
  1820  		}
  1821  		n += 1 + sovOsmformat(uint64(l)) + l
  1822  	}
  1823  	if len(m.Vals) > 0 {
  1824  		l = 0
  1825  		for _, e := range m.Vals {
  1826  			l += sovOsmformat(uint64(e))
  1827  		}
  1828  		n += 1 + sovOsmformat(uint64(l)) + l
  1829  	}
  1830  	l = m.Info.Size()
  1831  	n += 1 + l + sovOsmformat(uint64(l))
  1832  	if len(m.Refs) > 0 {
  1833  		l = 0
  1834  		for _, e := range m.Refs {
  1835  			l += sozOsmformat(uint64(e))
  1836  		}
  1837  		n += 1 + sovOsmformat(uint64(l)) + l
  1838  	}
  1839  	return n
  1840  }
  1841  
  1842  func (m *Relation) Size() (n int) {
  1843  	var l int
  1844  	_ = l
  1845  	n += 1 + sovOsmformat(uint64(m.Id))
  1846  	if len(m.Keys) > 0 {
  1847  		l = 0
  1848  		for _, e := range m.Keys {
  1849  			l += sovOsmformat(uint64(e))
  1850  		}
  1851  		n += 1 + sovOsmformat(uint64(l)) + l
  1852  	}
  1853  	if len(m.Vals) > 0 {
  1854  		l = 0
  1855  		for _, e := range m.Vals {
  1856  			l += sovOsmformat(uint64(e))
  1857  		}
  1858  		n += 1 + sovOsmformat(uint64(l)) + l
  1859  	}
  1860  	l = m.Info.Size()
  1861  	n += 1 + l + sovOsmformat(uint64(l))
  1862  	if len(m.RolesSid) > 0 {
  1863  		l = 0
  1864  		for _, e := range m.RolesSid {
  1865  			l += sovOsmformat(uint64(e))
  1866  		}
  1867  		n += 1 + sovOsmformat(uint64(l)) + l
  1868  	}
  1869  	if len(m.Memids) > 0 {
  1870  		l = 0
  1871  		for _, e := range m.Memids {
  1872  			l += sozOsmformat(uint64(e))
  1873  		}
  1874  		n += 1 + sovOsmformat(uint64(l)) + l
  1875  	}
  1876  	if len(m.Types) > 0 {
  1877  		l = 0
  1878  		for _, e := range m.Types {
  1879  			l += sovOsmformat(uint64(e))
  1880  		}
  1881  		n += 1 + sovOsmformat(uint64(l)) + l
  1882  	}
  1883  	return n
  1884  }
  1885  
  1886  func sovOsmformat(x uint64) (n int) {
  1887  	for {
  1888  		n++
  1889  		x >>= 7
  1890  		if x == 0 {
  1891  			break
  1892  		}
  1893  	}
  1894  	return n
  1895  }
  1896  func sozOsmformat(x uint64) (n int) {
  1897  	return sovOsmformat(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1898  }
  1899  func (m *HeaderBlock) Unmarshal(dAtA []byte) error {
  1900  	l := len(dAtA)
  1901  	iNdEx := 0
  1902  	for iNdEx < l {
  1903  		preIndex := iNdEx
  1904  		var wire uint64
  1905  		for shift := uint(0); ; shift += 7 {
  1906  			if shift >= 64 {
  1907  				return ErrIntOverflowOsmformat
  1908  			}
  1909  			if iNdEx >= l {
  1910  				return io.ErrUnexpectedEOF
  1911  			}
  1912  			b := dAtA[iNdEx]
  1913  			iNdEx++
  1914  			wire |= (uint64(b) & 0x7F) << shift
  1915  			if b < 0x80 {
  1916  				break
  1917  			}
  1918  		}
  1919  		fieldNum := int32(wire >> 3)
  1920  		wireType := int(wire & 0x7)
  1921  		if wireType == 4 {
  1922  			return fmt.Errorf("proto: HeaderBlock: wiretype end group for non-group")
  1923  		}
  1924  		if fieldNum <= 0 {
  1925  			return fmt.Errorf("proto: HeaderBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  1926  		}
  1927  		switch fieldNum {
  1928  		case 1:
  1929  			if wireType != 2 {
  1930  				return fmt.Errorf("proto: wrong wireType = %d for field Bbox", wireType)
  1931  			}
  1932  			var msglen int
  1933  			for shift := uint(0); ; shift += 7 {
  1934  				if shift >= 64 {
  1935  					return ErrIntOverflowOsmformat
  1936  				}
  1937  				if iNdEx >= l {
  1938  					return io.ErrUnexpectedEOF
  1939  				}
  1940  				b := dAtA[iNdEx]
  1941  				iNdEx++
  1942  				msglen |= (int(b) & 0x7F) << shift
  1943  				if b < 0x80 {
  1944  					break
  1945  				}
  1946  			}
  1947  			if msglen < 0 {
  1948  				return ErrInvalidLengthOsmformat
  1949  			}
  1950  			postIndex := iNdEx + msglen
  1951  			if postIndex > l {
  1952  				return io.ErrUnexpectedEOF
  1953  			}
  1954  			if m.Bbox == nil {
  1955  				m.Bbox = &HeaderBBox{}
  1956  			}
  1957  			if err := m.Bbox.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1958  				return err
  1959  			}
  1960  			iNdEx = postIndex
  1961  		case 4:
  1962  			if wireType != 2 {
  1963  				return fmt.Errorf("proto: wrong wireType = %d for field RequiredFeatures", wireType)
  1964  			}
  1965  			var stringLen uint64
  1966  			for shift := uint(0); ; shift += 7 {
  1967  				if shift >= 64 {
  1968  					return ErrIntOverflowOsmformat
  1969  				}
  1970  				if iNdEx >= l {
  1971  					return io.ErrUnexpectedEOF
  1972  				}
  1973  				b := dAtA[iNdEx]
  1974  				iNdEx++
  1975  				stringLen |= (uint64(b) & 0x7F) << shift
  1976  				if b < 0x80 {
  1977  					break
  1978  				}
  1979  			}
  1980  			intStringLen := int(stringLen)
  1981  			if intStringLen < 0 {
  1982  				return ErrInvalidLengthOsmformat
  1983  			}
  1984  			postIndex := iNdEx + intStringLen
  1985  			if postIndex > l {
  1986  				return io.ErrUnexpectedEOF
  1987  			}
  1988  			m.RequiredFeatures = append(m.RequiredFeatures, string(dAtA[iNdEx:postIndex]))
  1989  			iNdEx = postIndex
  1990  		case 5:
  1991  			if wireType != 2 {
  1992  				return fmt.Errorf("proto: wrong wireType = %d for field OptionalFeatures", wireType)
  1993  			}
  1994  			var stringLen uint64
  1995  			for shift := uint(0); ; shift += 7 {
  1996  				if shift >= 64 {
  1997  					return ErrIntOverflowOsmformat
  1998  				}
  1999  				if iNdEx >= l {
  2000  					return io.ErrUnexpectedEOF
  2001  				}
  2002  				b := dAtA[iNdEx]
  2003  				iNdEx++
  2004  				stringLen |= (uint64(b) & 0x7F) << shift
  2005  				if b < 0x80 {
  2006  					break
  2007  				}
  2008  			}
  2009  			intStringLen := int(stringLen)
  2010  			if intStringLen < 0 {
  2011  				return ErrInvalidLengthOsmformat
  2012  			}
  2013  			postIndex := iNdEx + intStringLen
  2014  			if postIndex > l {
  2015  				return io.ErrUnexpectedEOF
  2016  			}
  2017  			m.OptionalFeatures = append(m.OptionalFeatures, string(dAtA[iNdEx:postIndex]))
  2018  			iNdEx = postIndex
  2019  		case 16:
  2020  			if wireType != 2 {
  2021  				return fmt.Errorf("proto: wrong wireType = %d for field Writingprogram", wireType)
  2022  			}
  2023  			var stringLen uint64
  2024  			for shift := uint(0); ; shift += 7 {
  2025  				if shift >= 64 {
  2026  					return ErrIntOverflowOsmformat
  2027  				}
  2028  				if iNdEx >= l {
  2029  					return io.ErrUnexpectedEOF
  2030  				}
  2031  				b := dAtA[iNdEx]
  2032  				iNdEx++
  2033  				stringLen |= (uint64(b) & 0x7F) << shift
  2034  				if b < 0x80 {
  2035  					break
  2036  				}
  2037  			}
  2038  			intStringLen := int(stringLen)
  2039  			if intStringLen < 0 {
  2040  				return ErrInvalidLengthOsmformat
  2041  			}
  2042  			postIndex := iNdEx + intStringLen
  2043  			if postIndex > l {
  2044  				return io.ErrUnexpectedEOF
  2045  			}
  2046  			m.Writingprogram = string(dAtA[iNdEx:postIndex])
  2047  			iNdEx = postIndex
  2048  		case 17:
  2049  			if wireType != 2 {
  2050  				return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType)
  2051  			}
  2052  			var stringLen uint64
  2053  			for shift := uint(0); ; shift += 7 {
  2054  				if shift >= 64 {
  2055  					return ErrIntOverflowOsmformat
  2056  				}
  2057  				if iNdEx >= l {
  2058  					return io.ErrUnexpectedEOF
  2059  				}
  2060  				b := dAtA[iNdEx]
  2061  				iNdEx++
  2062  				stringLen |= (uint64(b) & 0x7F) << shift
  2063  				if b < 0x80 {
  2064  					break
  2065  				}
  2066  			}
  2067  			intStringLen := int(stringLen)
  2068  			if intStringLen < 0 {
  2069  				return ErrInvalidLengthOsmformat
  2070  			}
  2071  			postIndex := iNdEx + intStringLen
  2072  			if postIndex > l {
  2073  				return io.ErrUnexpectedEOF
  2074  			}
  2075  			m.Source = string(dAtA[iNdEx:postIndex])
  2076  			iNdEx = postIndex
  2077  		case 32:
  2078  			if wireType != 0 {
  2079  				return fmt.Errorf("proto: wrong wireType = %d for field OsmosisReplicationTimestamp", wireType)
  2080  			}
  2081  			m.OsmosisReplicationTimestamp = 0
  2082  			for shift := uint(0); ; shift += 7 {
  2083  				if shift >= 64 {
  2084  					return ErrIntOverflowOsmformat
  2085  				}
  2086  				if iNdEx >= l {
  2087  					return io.ErrUnexpectedEOF
  2088  				}
  2089  				b := dAtA[iNdEx]
  2090  				iNdEx++
  2091  				m.OsmosisReplicationTimestamp |= (int64(b) & 0x7F) << shift
  2092  				if b < 0x80 {
  2093  					break
  2094  				}
  2095  			}
  2096  		case 33:
  2097  			if wireType != 0 {
  2098  				return fmt.Errorf("proto: wrong wireType = %d for field OsmosisReplicationSequenceNumber", wireType)
  2099  			}
  2100  			m.OsmosisReplicationSequenceNumber = 0
  2101  			for shift := uint(0); ; shift += 7 {
  2102  				if shift >= 64 {
  2103  					return ErrIntOverflowOsmformat
  2104  				}
  2105  				if iNdEx >= l {
  2106  					return io.ErrUnexpectedEOF
  2107  				}
  2108  				b := dAtA[iNdEx]
  2109  				iNdEx++
  2110  				m.OsmosisReplicationSequenceNumber |= (int64(b) & 0x7F) << shift
  2111  				if b < 0x80 {
  2112  					break
  2113  				}
  2114  			}
  2115  		case 34:
  2116  			if wireType != 2 {
  2117  				return fmt.Errorf("proto: wrong wireType = %d for field OsmosisReplicationBaseUrl", wireType)
  2118  			}
  2119  			var stringLen uint64
  2120  			for shift := uint(0); ; shift += 7 {
  2121  				if shift >= 64 {
  2122  					return ErrIntOverflowOsmformat
  2123  				}
  2124  				if iNdEx >= l {
  2125  					return io.ErrUnexpectedEOF
  2126  				}
  2127  				b := dAtA[iNdEx]
  2128  				iNdEx++
  2129  				stringLen |= (uint64(b) & 0x7F) << shift
  2130  				if b < 0x80 {
  2131  					break
  2132  				}
  2133  			}
  2134  			intStringLen := int(stringLen)
  2135  			if intStringLen < 0 {
  2136  				return ErrInvalidLengthOsmformat
  2137  			}
  2138  			postIndex := iNdEx + intStringLen
  2139  			if postIndex > l {
  2140  				return io.ErrUnexpectedEOF
  2141  			}
  2142  			m.OsmosisReplicationBaseUrl = string(dAtA[iNdEx:postIndex])
  2143  			iNdEx = postIndex
  2144  		default:
  2145  			iNdEx = preIndex
  2146  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  2147  			if err != nil {
  2148  				return err
  2149  			}
  2150  			if skippy < 0 {
  2151  				return ErrInvalidLengthOsmformat
  2152  			}
  2153  			if (iNdEx + skippy) > l {
  2154  				return io.ErrUnexpectedEOF
  2155  			}
  2156  			iNdEx += skippy
  2157  		}
  2158  	}
  2159  
  2160  	if iNdEx > l {
  2161  		return io.ErrUnexpectedEOF
  2162  	}
  2163  	return nil
  2164  }
  2165  func (m *HeaderBBox) Unmarshal(dAtA []byte) error {
  2166  	var hasFields [1]uint64
  2167  	l := len(dAtA)
  2168  	iNdEx := 0
  2169  	for iNdEx < l {
  2170  		preIndex := iNdEx
  2171  		var wire uint64
  2172  		for shift := uint(0); ; shift += 7 {
  2173  			if shift >= 64 {
  2174  				return ErrIntOverflowOsmformat
  2175  			}
  2176  			if iNdEx >= l {
  2177  				return io.ErrUnexpectedEOF
  2178  			}
  2179  			b := dAtA[iNdEx]
  2180  			iNdEx++
  2181  			wire |= (uint64(b) & 0x7F) << shift
  2182  			if b < 0x80 {
  2183  				break
  2184  			}
  2185  		}
  2186  		fieldNum := int32(wire >> 3)
  2187  		wireType := int(wire & 0x7)
  2188  		if wireType == 4 {
  2189  			return fmt.Errorf("proto: HeaderBBox: wiretype end group for non-group")
  2190  		}
  2191  		if fieldNum <= 0 {
  2192  			return fmt.Errorf("proto: HeaderBBox: illegal tag %d (wire type %d)", fieldNum, wire)
  2193  		}
  2194  		switch fieldNum {
  2195  		case 1:
  2196  			if wireType != 0 {
  2197  				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
  2198  			}
  2199  			var v uint64
  2200  			for shift := uint(0); ; shift += 7 {
  2201  				if shift >= 64 {
  2202  					return ErrIntOverflowOsmformat
  2203  				}
  2204  				if iNdEx >= l {
  2205  					return io.ErrUnexpectedEOF
  2206  				}
  2207  				b := dAtA[iNdEx]
  2208  				iNdEx++
  2209  				v |= (uint64(b) & 0x7F) << shift
  2210  				if b < 0x80 {
  2211  					break
  2212  				}
  2213  			}
  2214  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  2215  			m.Left = int64(v)
  2216  			hasFields[0] |= uint64(0x00000001)
  2217  		case 2:
  2218  			if wireType != 0 {
  2219  				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
  2220  			}
  2221  			var v uint64
  2222  			for shift := uint(0); ; shift += 7 {
  2223  				if shift >= 64 {
  2224  					return ErrIntOverflowOsmformat
  2225  				}
  2226  				if iNdEx >= l {
  2227  					return io.ErrUnexpectedEOF
  2228  				}
  2229  				b := dAtA[iNdEx]
  2230  				iNdEx++
  2231  				v |= (uint64(b) & 0x7F) << shift
  2232  				if b < 0x80 {
  2233  					break
  2234  				}
  2235  			}
  2236  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  2237  			m.Right = int64(v)
  2238  			hasFields[0] |= uint64(0x00000002)
  2239  		case 3:
  2240  			if wireType != 0 {
  2241  				return fmt.Errorf("proto: wrong wireType = %d for field Top", wireType)
  2242  			}
  2243  			var v uint64
  2244  			for shift := uint(0); ; shift += 7 {
  2245  				if shift >= 64 {
  2246  					return ErrIntOverflowOsmformat
  2247  				}
  2248  				if iNdEx >= l {
  2249  					return io.ErrUnexpectedEOF
  2250  				}
  2251  				b := dAtA[iNdEx]
  2252  				iNdEx++
  2253  				v |= (uint64(b) & 0x7F) << shift
  2254  				if b < 0x80 {
  2255  					break
  2256  				}
  2257  			}
  2258  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  2259  			m.Top = int64(v)
  2260  			hasFields[0] |= uint64(0x00000004)
  2261  		case 4:
  2262  			if wireType != 0 {
  2263  				return fmt.Errorf("proto: wrong wireType = %d for field Bottom", wireType)
  2264  			}
  2265  			var v uint64
  2266  			for shift := uint(0); ; shift += 7 {
  2267  				if shift >= 64 {
  2268  					return ErrIntOverflowOsmformat
  2269  				}
  2270  				if iNdEx >= l {
  2271  					return io.ErrUnexpectedEOF
  2272  				}
  2273  				b := dAtA[iNdEx]
  2274  				iNdEx++
  2275  				v |= (uint64(b) & 0x7F) << shift
  2276  				if b < 0x80 {
  2277  					break
  2278  				}
  2279  			}
  2280  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  2281  			m.Bottom = int64(v)
  2282  			hasFields[0] |= uint64(0x00000008)
  2283  		default:
  2284  			iNdEx = preIndex
  2285  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  2286  			if err != nil {
  2287  				return err
  2288  			}
  2289  			if skippy < 0 {
  2290  				return ErrInvalidLengthOsmformat
  2291  			}
  2292  			if (iNdEx + skippy) > l {
  2293  				return io.ErrUnexpectedEOF
  2294  			}
  2295  			iNdEx += skippy
  2296  		}
  2297  	}
  2298  	if hasFields[0]&uint64(0x00000001) == 0 {
  2299  		return proto.NewRequiredNotSetError("left")
  2300  	}
  2301  	if hasFields[0]&uint64(0x00000002) == 0 {
  2302  		return proto.NewRequiredNotSetError("right")
  2303  	}
  2304  	if hasFields[0]&uint64(0x00000004) == 0 {
  2305  		return proto.NewRequiredNotSetError("top")
  2306  	}
  2307  	if hasFields[0]&uint64(0x00000008) == 0 {
  2308  		return proto.NewRequiredNotSetError("bottom")
  2309  	}
  2310  
  2311  	if iNdEx > l {
  2312  		return io.ErrUnexpectedEOF
  2313  	}
  2314  	return nil
  2315  }
  2316  func (m *PrimitiveBlock) Unmarshal(dAtA []byte) error {
  2317  	var hasFields [1]uint64
  2318  	l := len(dAtA)
  2319  	iNdEx := 0
  2320  	for iNdEx < l {
  2321  		preIndex := iNdEx
  2322  		var wire uint64
  2323  		for shift := uint(0); ; shift += 7 {
  2324  			if shift >= 64 {
  2325  				return ErrIntOverflowOsmformat
  2326  			}
  2327  			if iNdEx >= l {
  2328  				return io.ErrUnexpectedEOF
  2329  			}
  2330  			b := dAtA[iNdEx]
  2331  			iNdEx++
  2332  			wire |= (uint64(b) & 0x7F) << shift
  2333  			if b < 0x80 {
  2334  				break
  2335  			}
  2336  		}
  2337  		fieldNum := int32(wire >> 3)
  2338  		wireType := int(wire & 0x7)
  2339  		if wireType == 4 {
  2340  			return fmt.Errorf("proto: PrimitiveBlock: wiretype end group for non-group")
  2341  		}
  2342  		if fieldNum <= 0 {
  2343  			return fmt.Errorf("proto: PrimitiveBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  2344  		}
  2345  		switch fieldNum {
  2346  		case 1:
  2347  			if wireType != 2 {
  2348  				return fmt.Errorf("proto: wrong wireType = %d for field Stringtable", wireType)
  2349  			}
  2350  			var msglen int
  2351  			for shift := uint(0); ; shift += 7 {
  2352  				if shift >= 64 {
  2353  					return ErrIntOverflowOsmformat
  2354  				}
  2355  				if iNdEx >= l {
  2356  					return io.ErrUnexpectedEOF
  2357  				}
  2358  				b := dAtA[iNdEx]
  2359  				iNdEx++
  2360  				msglen |= (int(b) & 0x7F) << shift
  2361  				if b < 0x80 {
  2362  					break
  2363  				}
  2364  			}
  2365  			if msglen < 0 {
  2366  				return ErrInvalidLengthOsmformat
  2367  			}
  2368  			postIndex := iNdEx + msglen
  2369  			if postIndex > l {
  2370  				return io.ErrUnexpectedEOF
  2371  			}
  2372  			if m.Stringtable == nil {
  2373  				m.Stringtable = &StringTable{}
  2374  			}
  2375  			if err := m.Stringtable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2376  				return err
  2377  			}
  2378  			iNdEx = postIndex
  2379  			hasFields[0] |= uint64(0x00000001)
  2380  		case 2:
  2381  			if wireType != 2 {
  2382  				return fmt.Errorf("proto: wrong wireType = %d for field Primitivegroup", wireType)
  2383  			}
  2384  			var msglen int
  2385  			for shift := uint(0); ; shift += 7 {
  2386  				if shift >= 64 {
  2387  					return ErrIntOverflowOsmformat
  2388  				}
  2389  				if iNdEx >= l {
  2390  					return io.ErrUnexpectedEOF
  2391  				}
  2392  				b := dAtA[iNdEx]
  2393  				iNdEx++
  2394  				msglen |= (int(b) & 0x7F) << shift
  2395  				if b < 0x80 {
  2396  					break
  2397  				}
  2398  			}
  2399  			if msglen < 0 {
  2400  				return ErrInvalidLengthOsmformat
  2401  			}
  2402  			postIndex := iNdEx + msglen
  2403  			if postIndex > l {
  2404  				return io.ErrUnexpectedEOF
  2405  			}
  2406  			m.Primitivegroup = append(m.Primitivegroup, &PrimitiveGroup{})
  2407  			if err := m.Primitivegroup[len(m.Primitivegroup)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2408  				return err
  2409  			}
  2410  			iNdEx = postIndex
  2411  		case 17:
  2412  			if wireType != 0 {
  2413  				return fmt.Errorf("proto: wrong wireType = %d for field Granularity", wireType)
  2414  			}
  2415  			var v int32
  2416  			for shift := uint(0); ; shift += 7 {
  2417  				if shift >= 64 {
  2418  					return ErrIntOverflowOsmformat
  2419  				}
  2420  				if iNdEx >= l {
  2421  					return io.ErrUnexpectedEOF
  2422  				}
  2423  				b := dAtA[iNdEx]
  2424  				iNdEx++
  2425  				v |= (int32(b) & 0x7F) << shift
  2426  				if b < 0x80 {
  2427  					break
  2428  				}
  2429  			}
  2430  			m.Granularity = &v
  2431  		case 18:
  2432  			if wireType != 0 {
  2433  				return fmt.Errorf("proto: wrong wireType = %d for field DateGranularity", wireType)
  2434  			}
  2435  			var v int32
  2436  			for shift := uint(0); ; shift += 7 {
  2437  				if shift >= 64 {
  2438  					return ErrIntOverflowOsmformat
  2439  				}
  2440  				if iNdEx >= l {
  2441  					return io.ErrUnexpectedEOF
  2442  				}
  2443  				b := dAtA[iNdEx]
  2444  				iNdEx++
  2445  				v |= (int32(b) & 0x7F) << shift
  2446  				if b < 0x80 {
  2447  					break
  2448  				}
  2449  			}
  2450  			m.DateGranularity = &v
  2451  		case 19:
  2452  			if wireType != 0 {
  2453  				return fmt.Errorf("proto: wrong wireType = %d for field LatOffset", wireType)
  2454  			}
  2455  			var v int64
  2456  			for shift := uint(0); ; shift += 7 {
  2457  				if shift >= 64 {
  2458  					return ErrIntOverflowOsmformat
  2459  				}
  2460  				if iNdEx >= l {
  2461  					return io.ErrUnexpectedEOF
  2462  				}
  2463  				b := dAtA[iNdEx]
  2464  				iNdEx++
  2465  				v |= (int64(b) & 0x7F) << shift
  2466  				if b < 0x80 {
  2467  					break
  2468  				}
  2469  			}
  2470  			m.LatOffset = &v
  2471  		case 20:
  2472  			if wireType != 0 {
  2473  				return fmt.Errorf("proto: wrong wireType = %d for field LonOffset", wireType)
  2474  			}
  2475  			var v int64
  2476  			for shift := uint(0); ; shift += 7 {
  2477  				if shift >= 64 {
  2478  					return ErrIntOverflowOsmformat
  2479  				}
  2480  				if iNdEx >= l {
  2481  					return io.ErrUnexpectedEOF
  2482  				}
  2483  				b := dAtA[iNdEx]
  2484  				iNdEx++
  2485  				v |= (int64(b) & 0x7F) << shift
  2486  				if b < 0x80 {
  2487  					break
  2488  				}
  2489  			}
  2490  			m.LonOffset = &v
  2491  		default:
  2492  			iNdEx = preIndex
  2493  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  2494  			if err != nil {
  2495  				return err
  2496  			}
  2497  			if skippy < 0 {
  2498  				return ErrInvalidLengthOsmformat
  2499  			}
  2500  			if (iNdEx + skippy) > l {
  2501  				return io.ErrUnexpectedEOF
  2502  			}
  2503  			iNdEx += skippy
  2504  		}
  2505  	}
  2506  	if hasFields[0]&uint64(0x00000001) == 0 {
  2507  		return proto.NewRequiredNotSetError("stringtable")
  2508  	}
  2509  
  2510  	if iNdEx > l {
  2511  		return io.ErrUnexpectedEOF
  2512  	}
  2513  	return nil
  2514  }
  2515  func (m *PrimitiveGroup) Unmarshal(dAtA []byte) error {
  2516  	l := len(dAtA)
  2517  	iNdEx := 0
  2518  	for iNdEx < l {
  2519  		preIndex := iNdEx
  2520  		var wire uint64
  2521  		for shift := uint(0); ; shift += 7 {
  2522  			if shift >= 64 {
  2523  				return ErrIntOverflowOsmformat
  2524  			}
  2525  			if iNdEx >= l {
  2526  				return io.ErrUnexpectedEOF
  2527  			}
  2528  			b := dAtA[iNdEx]
  2529  			iNdEx++
  2530  			wire |= (uint64(b) & 0x7F) << shift
  2531  			if b < 0x80 {
  2532  				break
  2533  			}
  2534  		}
  2535  		fieldNum := int32(wire >> 3)
  2536  		wireType := int(wire & 0x7)
  2537  		if wireType == 4 {
  2538  			return fmt.Errorf("proto: PrimitiveGroup: wiretype end group for non-group")
  2539  		}
  2540  		if fieldNum <= 0 {
  2541  			return fmt.Errorf("proto: PrimitiveGroup: illegal tag %d (wire type %d)", fieldNum, wire)
  2542  		}
  2543  		switch fieldNum {
  2544  		case 1:
  2545  			if wireType != 2 {
  2546  				return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType)
  2547  			}
  2548  			var msglen int
  2549  			for shift := uint(0); ; shift += 7 {
  2550  				if shift >= 64 {
  2551  					return ErrIntOverflowOsmformat
  2552  				}
  2553  				if iNdEx >= l {
  2554  					return io.ErrUnexpectedEOF
  2555  				}
  2556  				b := dAtA[iNdEx]
  2557  				iNdEx++
  2558  				msglen |= (int(b) & 0x7F) << shift
  2559  				if b < 0x80 {
  2560  					break
  2561  				}
  2562  			}
  2563  			if msglen < 0 {
  2564  				return ErrInvalidLengthOsmformat
  2565  			}
  2566  			postIndex := iNdEx + msglen
  2567  			if postIndex > l {
  2568  				return io.ErrUnexpectedEOF
  2569  			}
  2570  			m.Nodes = append(m.Nodes, Node{})
  2571  			if err := m.Nodes[len(m.Nodes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2572  				return err
  2573  			}
  2574  			iNdEx = postIndex
  2575  		case 2:
  2576  			if wireType != 2 {
  2577  				return fmt.Errorf("proto: wrong wireType = %d for field Dense", wireType)
  2578  			}
  2579  			var msglen int
  2580  			for shift := uint(0); ; shift += 7 {
  2581  				if shift >= 64 {
  2582  					return ErrIntOverflowOsmformat
  2583  				}
  2584  				if iNdEx >= l {
  2585  					return io.ErrUnexpectedEOF
  2586  				}
  2587  				b := dAtA[iNdEx]
  2588  				iNdEx++
  2589  				msglen |= (int(b) & 0x7F) << shift
  2590  				if b < 0x80 {
  2591  					break
  2592  				}
  2593  			}
  2594  			if msglen < 0 {
  2595  				return ErrInvalidLengthOsmformat
  2596  			}
  2597  			postIndex := iNdEx + msglen
  2598  			if postIndex > l {
  2599  				return io.ErrUnexpectedEOF
  2600  			}
  2601  			if m.Dense == nil {
  2602  				m.Dense = &DenseNodes{}
  2603  			}
  2604  			if err := m.Dense.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2605  				return err
  2606  			}
  2607  			iNdEx = postIndex
  2608  		case 3:
  2609  			if wireType != 2 {
  2610  				return fmt.Errorf("proto: wrong wireType = %d for field Ways", wireType)
  2611  			}
  2612  			var msglen int
  2613  			for shift := uint(0); ; shift += 7 {
  2614  				if shift >= 64 {
  2615  					return ErrIntOverflowOsmformat
  2616  				}
  2617  				if iNdEx >= l {
  2618  					return io.ErrUnexpectedEOF
  2619  				}
  2620  				b := dAtA[iNdEx]
  2621  				iNdEx++
  2622  				msglen |= (int(b) & 0x7F) << shift
  2623  				if b < 0x80 {
  2624  					break
  2625  				}
  2626  			}
  2627  			if msglen < 0 {
  2628  				return ErrInvalidLengthOsmformat
  2629  			}
  2630  			postIndex := iNdEx + msglen
  2631  			if postIndex > l {
  2632  				return io.ErrUnexpectedEOF
  2633  			}
  2634  			m.Ways = append(m.Ways, Way{})
  2635  			if err := m.Ways[len(m.Ways)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2636  				return err
  2637  			}
  2638  			iNdEx = postIndex
  2639  		case 4:
  2640  			if wireType != 2 {
  2641  				return fmt.Errorf("proto: wrong wireType = %d for field Relations", wireType)
  2642  			}
  2643  			var msglen int
  2644  			for shift := uint(0); ; shift += 7 {
  2645  				if shift >= 64 {
  2646  					return ErrIntOverflowOsmformat
  2647  				}
  2648  				if iNdEx >= l {
  2649  					return io.ErrUnexpectedEOF
  2650  				}
  2651  				b := dAtA[iNdEx]
  2652  				iNdEx++
  2653  				msglen |= (int(b) & 0x7F) << shift
  2654  				if b < 0x80 {
  2655  					break
  2656  				}
  2657  			}
  2658  			if msglen < 0 {
  2659  				return ErrInvalidLengthOsmformat
  2660  			}
  2661  			postIndex := iNdEx + msglen
  2662  			if postIndex > l {
  2663  				return io.ErrUnexpectedEOF
  2664  			}
  2665  			m.Relations = append(m.Relations, Relation{})
  2666  			if err := m.Relations[len(m.Relations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2667  				return err
  2668  			}
  2669  			iNdEx = postIndex
  2670  		case 5:
  2671  			if wireType != 2 {
  2672  				return fmt.Errorf("proto: wrong wireType = %d for field Changesets", wireType)
  2673  			}
  2674  			var msglen int
  2675  			for shift := uint(0); ; shift += 7 {
  2676  				if shift >= 64 {
  2677  					return ErrIntOverflowOsmformat
  2678  				}
  2679  				if iNdEx >= l {
  2680  					return io.ErrUnexpectedEOF
  2681  				}
  2682  				b := dAtA[iNdEx]
  2683  				iNdEx++
  2684  				msglen |= (int(b) & 0x7F) << shift
  2685  				if b < 0x80 {
  2686  					break
  2687  				}
  2688  			}
  2689  			if msglen < 0 {
  2690  				return ErrInvalidLengthOsmformat
  2691  			}
  2692  			postIndex := iNdEx + msglen
  2693  			if postIndex > l {
  2694  				return io.ErrUnexpectedEOF
  2695  			}
  2696  			m.Changesets = append(m.Changesets, ChangeSet{})
  2697  			if err := m.Changesets[len(m.Changesets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2698  				return err
  2699  			}
  2700  			iNdEx = postIndex
  2701  		default:
  2702  			iNdEx = preIndex
  2703  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  2704  			if err != nil {
  2705  				return err
  2706  			}
  2707  			if skippy < 0 {
  2708  				return ErrInvalidLengthOsmformat
  2709  			}
  2710  			if (iNdEx + skippy) > l {
  2711  				return io.ErrUnexpectedEOF
  2712  			}
  2713  			iNdEx += skippy
  2714  		}
  2715  	}
  2716  
  2717  	if iNdEx > l {
  2718  		return io.ErrUnexpectedEOF
  2719  	}
  2720  	return nil
  2721  }
  2722  func (m *StringTable) Unmarshal(dAtA []byte) error {
  2723  	l := len(dAtA)
  2724  	iNdEx := 0
  2725  	for iNdEx < l {
  2726  		preIndex := iNdEx
  2727  		var wire uint64
  2728  		for shift := uint(0); ; shift += 7 {
  2729  			if shift >= 64 {
  2730  				return ErrIntOverflowOsmformat
  2731  			}
  2732  			if iNdEx >= l {
  2733  				return io.ErrUnexpectedEOF
  2734  			}
  2735  			b := dAtA[iNdEx]
  2736  			iNdEx++
  2737  			wire |= (uint64(b) & 0x7F) << shift
  2738  			if b < 0x80 {
  2739  				break
  2740  			}
  2741  		}
  2742  		fieldNum := int32(wire >> 3)
  2743  		wireType := int(wire & 0x7)
  2744  		if wireType == 4 {
  2745  			return fmt.Errorf("proto: StringTable: wiretype end group for non-group")
  2746  		}
  2747  		if fieldNum <= 0 {
  2748  			return fmt.Errorf("proto: StringTable: illegal tag %d (wire type %d)", fieldNum, wire)
  2749  		}
  2750  		switch fieldNum {
  2751  		case 1:
  2752  			if wireType != 2 {
  2753  				return fmt.Errorf("proto: wrong wireType = %d for field S", wireType)
  2754  			}
  2755  			var byteLen int
  2756  			for shift := uint(0); ; shift += 7 {
  2757  				if shift >= 64 {
  2758  					return ErrIntOverflowOsmformat
  2759  				}
  2760  				if iNdEx >= l {
  2761  					return io.ErrUnexpectedEOF
  2762  				}
  2763  				b := dAtA[iNdEx]
  2764  				iNdEx++
  2765  				byteLen |= (int(b) & 0x7F) << shift
  2766  				if b < 0x80 {
  2767  					break
  2768  				}
  2769  			}
  2770  			if byteLen < 0 {
  2771  				return ErrInvalidLengthOsmformat
  2772  			}
  2773  			postIndex := iNdEx + byteLen
  2774  			if postIndex > l {
  2775  				return io.ErrUnexpectedEOF
  2776  			}
  2777  			m.S = append(m.S, make([]byte, postIndex-iNdEx))
  2778  			copy(m.S[len(m.S)-1], dAtA[iNdEx:postIndex])
  2779  			iNdEx = postIndex
  2780  		default:
  2781  			iNdEx = preIndex
  2782  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  2783  			if err != nil {
  2784  				return err
  2785  			}
  2786  			if skippy < 0 {
  2787  				return ErrInvalidLengthOsmformat
  2788  			}
  2789  			if (iNdEx + skippy) > l {
  2790  				return io.ErrUnexpectedEOF
  2791  			}
  2792  			iNdEx += skippy
  2793  		}
  2794  	}
  2795  
  2796  	if iNdEx > l {
  2797  		return io.ErrUnexpectedEOF
  2798  	}
  2799  	return nil
  2800  }
  2801  func (m *Info) Unmarshal(dAtA []byte) error {
  2802  	l := len(dAtA)
  2803  	iNdEx := 0
  2804  	for iNdEx < l {
  2805  		preIndex := iNdEx
  2806  		var wire uint64
  2807  		for shift := uint(0); ; shift += 7 {
  2808  			if shift >= 64 {
  2809  				return ErrIntOverflowOsmformat
  2810  			}
  2811  			if iNdEx >= l {
  2812  				return io.ErrUnexpectedEOF
  2813  			}
  2814  			b := dAtA[iNdEx]
  2815  			iNdEx++
  2816  			wire |= (uint64(b) & 0x7F) << shift
  2817  			if b < 0x80 {
  2818  				break
  2819  			}
  2820  		}
  2821  		fieldNum := int32(wire >> 3)
  2822  		wireType := int(wire & 0x7)
  2823  		if wireType == 4 {
  2824  			return fmt.Errorf("proto: Info: wiretype end group for non-group")
  2825  		}
  2826  		if fieldNum <= 0 {
  2827  			return fmt.Errorf("proto: Info: illegal tag %d (wire type %d)", fieldNum, wire)
  2828  		}
  2829  		switch fieldNum {
  2830  		case 1:
  2831  			if wireType != 0 {
  2832  				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  2833  			}
  2834  			var v int32
  2835  			for shift := uint(0); ; shift += 7 {
  2836  				if shift >= 64 {
  2837  					return ErrIntOverflowOsmformat
  2838  				}
  2839  				if iNdEx >= l {
  2840  					return io.ErrUnexpectedEOF
  2841  				}
  2842  				b := dAtA[iNdEx]
  2843  				iNdEx++
  2844  				v |= (int32(b) & 0x7F) << shift
  2845  				if b < 0x80 {
  2846  					break
  2847  				}
  2848  			}
  2849  			m.Version = &v
  2850  		case 2:
  2851  			if wireType != 0 {
  2852  				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
  2853  			}
  2854  			m.Timestamp = 0
  2855  			for shift := uint(0); ; shift += 7 {
  2856  				if shift >= 64 {
  2857  					return ErrIntOverflowOsmformat
  2858  				}
  2859  				if iNdEx >= l {
  2860  					return io.ErrUnexpectedEOF
  2861  				}
  2862  				b := dAtA[iNdEx]
  2863  				iNdEx++
  2864  				m.Timestamp |= (int64(b) & 0x7F) << shift
  2865  				if b < 0x80 {
  2866  					break
  2867  				}
  2868  			}
  2869  		case 3:
  2870  			if wireType != 0 {
  2871  				return fmt.Errorf("proto: wrong wireType = %d for field Changeset", wireType)
  2872  			}
  2873  			m.Changeset = 0
  2874  			for shift := uint(0); ; shift += 7 {
  2875  				if shift >= 64 {
  2876  					return ErrIntOverflowOsmformat
  2877  				}
  2878  				if iNdEx >= l {
  2879  					return io.ErrUnexpectedEOF
  2880  				}
  2881  				b := dAtA[iNdEx]
  2882  				iNdEx++
  2883  				m.Changeset |= (int64(b) & 0x7F) << shift
  2884  				if b < 0x80 {
  2885  					break
  2886  				}
  2887  			}
  2888  		case 4:
  2889  			if wireType != 0 {
  2890  				return fmt.Errorf("proto: wrong wireType = %d for field Uid", wireType)
  2891  			}
  2892  			m.Uid = 0
  2893  			for shift := uint(0); ; shift += 7 {
  2894  				if shift >= 64 {
  2895  					return ErrIntOverflowOsmformat
  2896  				}
  2897  				if iNdEx >= l {
  2898  					return io.ErrUnexpectedEOF
  2899  				}
  2900  				b := dAtA[iNdEx]
  2901  				iNdEx++
  2902  				m.Uid |= (int32(b) & 0x7F) << shift
  2903  				if b < 0x80 {
  2904  					break
  2905  				}
  2906  			}
  2907  		case 5:
  2908  			if wireType != 0 {
  2909  				return fmt.Errorf("proto: wrong wireType = %d for field UserSid", wireType)
  2910  			}
  2911  			m.UserSid = 0
  2912  			for shift := uint(0); ; shift += 7 {
  2913  				if shift >= 64 {
  2914  					return ErrIntOverflowOsmformat
  2915  				}
  2916  				if iNdEx >= l {
  2917  					return io.ErrUnexpectedEOF
  2918  				}
  2919  				b := dAtA[iNdEx]
  2920  				iNdEx++
  2921  				m.UserSid |= (uint32(b) & 0x7F) << shift
  2922  				if b < 0x80 {
  2923  					break
  2924  				}
  2925  			}
  2926  		case 6:
  2927  			if wireType != 0 {
  2928  				return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType)
  2929  			}
  2930  			var v int
  2931  			for shift := uint(0); ; shift += 7 {
  2932  				if shift >= 64 {
  2933  					return ErrIntOverflowOsmformat
  2934  				}
  2935  				if iNdEx >= l {
  2936  					return io.ErrUnexpectedEOF
  2937  				}
  2938  				b := dAtA[iNdEx]
  2939  				iNdEx++
  2940  				v |= (int(b) & 0x7F) << shift
  2941  				if b < 0x80 {
  2942  					break
  2943  				}
  2944  			}
  2945  			m.Visible = bool(v != 0)
  2946  		default:
  2947  			iNdEx = preIndex
  2948  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  2949  			if err != nil {
  2950  				return err
  2951  			}
  2952  			if skippy < 0 {
  2953  				return ErrInvalidLengthOsmformat
  2954  			}
  2955  			if (iNdEx + skippy) > l {
  2956  				return io.ErrUnexpectedEOF
  2957  			}
  2958  			iNdEx += skippy
  2959  		}
  2960  	}
  2961  
  2962  	if iNdEx > l {
  2963  		return io.ErrUnexpectedEOF
  2964  	}
  2965  	return nil
  2966  }
  2967  func (m *DenseInfo) Unmarshal(dAtA []byte) error {
  2968  	l := len(dAtA)
  2969  	iNdEx := 0
  2970  	for iNdEx < l {
  2971  		preIndex := iNdEx
  2972  		var wire uint64
  2973  		for shift := uint(0); ; shift += 7 {
  2974  			if shift >= 64 {
  2975  				return ErrIntOverflowOsmformat
  2976  			}
  2977  			if iNdEx >= l {
  2978  				return io.ErrUnexpectedEOF
  2979  			}
  2980  			b := dAtA[iNdEx]
  2981  			iNdEx++
  2982  			wire |= (uint64(b) & 0x7F) << shift
  2983  			if b < 0x80 {
  2984  				break
  2985  			}
  2986  		}
  2987  		fieldNum := int32(wire >> 3)
  2988  		wireType := int(wire & 0x7)
  2989  		if wireType == 4 {
  2990  			return fmt.Errorf("proto: DenseInfo: wiretype end group for non-group")
  2991  		}
  2992  		if fieldNum <= 0 {
  2993  			return fmt.Errorf("proto: DenseInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  2994  		}
  2995  		switch fieldNum {
  2996  		case 1:
  2997  			if wireType == 0 {
  2998  				var v int32
  2999  				for shift := uint(0); ; shift += 7 {
  3000  					if shift >= 64 {
  3001  						return ErrIntOverflowOsmformat
  3002  					}
  3003  					if iNdEx >= l {
  3004  						return io.ErrUnexpectedEOF
  3005  					}
  3006  					b := dAtA[iNdEx]
  3007  					iNdEx++
  3008  					v |= (int32(b) & 0x7F) << shift
  3009  					if b < 0x80 {
  3010  						break
  3011  					}
  3012  				}
  3013  				m.Version = append(m.Version, v)
  3014  			} else if wireType == 2 {
  3015  				var packedLen int
  3016  				for shift := uint(0); ; shift += 7 {
  3017  					if shift >= 64 {
  3018  						return ErrIntOverflowOsmformat
  3019  					}
  3020  					if iNdEx >= l {
  3021  						return io.ErrUnexpectedEOF
  3022  					}
  3023  					b := dAtA[iNdEx]
  3024  					iNdEx++
  3025  					packedLen |= (int(b) & 0x7F) << shift
  3026  					if b < 0x80 {
  3027  						break
  3028  					}
  3029  				}
  3030  				if packedLen < 0 {
  3031  					return ErrInvalidLengthOsmformat
  3032  				}
  3033  				postIndex := iNdEx + packedLen
  3034  				if postIndex > l {
  3035  					return io.ErrUnexpectedEOF
  3036  				}
  3037  				for iNdEx < postIndex {
  3038  					var v int32
  3039  					for shift := uint(0); ; shift += 7 {
  3040  						if shift >= 64 {
  3041  							return ErrIntOverflowOsmformat
  3042  						}
  3043  						if iNdEx >= l {
  3044  							return io.ErrUnexpectedEOF
  3045  						}
  3046  						b := dAtA[iNdEx]
  3047  						iNdEx++
  3048  						v |= (int32(b) & 0x7F) << shift
  3049  						if b < 0x80 {
  3050  							break
  3051  						}
  3052  					}
  3053  					m.Version = append(m.Version, v)
  3054  				}
  3055  			} else {
  3056  				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  3057  			}
  3058  		case 2:
  3059  			if wireType == 0 {
  3060  				var v uint64
  3061  				for shift := uint(0); ; shift += 7 {
  3062  					if shift >= 64 {
  3063  						return ErrIntOverflowOsmformat
  3064  					}
  3065  					if iNdEx >= l {
  3066  						return io.ErrUnexpectedEOF
  3067  					}
  3068  					b := dAtA[iNdEx]
  3069  					iNdEx++
  3070  					v |= (uint64(b) & 0x7F) << shift
  3071  					if b < 0x80 {
  3072  						break
  3073  					}
  3074  				}
  3075  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3076  				m.Timestamp = append(m.Timestamp, int64(v))
  3077  			} else if wireType == 2 {
  3078  				var packedLen int
  3079  				for shift := uint(0); ; shift += 7 {
  3080  					if shift >= 64 {
  3081  						return ErrIntOverflowOsmformat
  3082  					}
  3083  					if iNdEx >= l {
  3084  						return io.ErrUnexpectedEOF
  3085  					}
  3086  					b := dAtA[iNdEx]
  3087  					iNdEx++
  3088  					packedLen |= (int(b) & 0x7F) << shift
  3089  					if b < 0x80 {
  3090  						break
  3091  					}
  3092  				}
  3093  				if packedLen < 0 {
  3094  					return ErrInvalidLengthOsmformat
  3095  				}
  3096  				postIndex := iNdEx + packedLen
  3097  				if postIndex > l {
  3098  					return io.ErrUnexpectedEOF
  3099  				}
  3100  				for iNdEx < postIndex {
  3101  					var v uint64
  3102  					for shift := uint(0); ; shift += 7 {
  3103  						if shift >= 64 {
  3104  							return ErrIntOverflowOsmformat
  3105  						}
  3106  						if iNdEx >= l {
  3107  							return io.ErrUnexpectedEOF
  3108  						}
  3109  						b := dAtA[iNdEx]
  3110  						iNdEx++
  3111  						v |= (uint64(b) & 0x7F) << shift
  3112  						if b < 0x80 {
  3113  							break
  3114  						}
  3115  					}
  3116  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3117  					m.Timestamp = append(m.Timestamp, int64(v))
  3118  				}
  3119  			} else {
  3120  				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
  3121  			}
  3122  		case 3:
  3123  			if wireType == 0 {
  3124  				var v uint64
  3125  				for shift := uint(0); ; shift += 7 {
  3126  					if shift >= 64 {
  3127  						return ErrIntOverflowOsmformat
  3128  					}
  3129  					if iNdEx >= l {
  3130  						return io.ErrUnexpectedEOF
  3131  					}
  3132  					b := dAtA[iNdEx]
  3133  					iNdEx++
  3134  					v |= (uint64(b) & 0x7F) << shift
  3135  					if b < 0x80 {
  3136  						break
  3137  					}
  3138  				}
  3139  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3140  				m.Changeset = append(m.Changeset, int64(v))
  3141  			} else if wireType == 2 {
  3142  				var packedLen int
  3143  				for shift := uint(0); ; shift += 7 {
  3144  					if shift >= 64 {
  3145  						return ErrIntOverflowOsmformat
  3146  					}
  3147  					if iNdEx >= l {
  3148  						return io.ErrUnexpectedEOF
  3149  					}
  3150  					b := dAtA[iNdEx]
  3151  					iNdEx++
  3152  					packedLen |= (int(b) & 0x7F) << shift
  3153  					if b < 0x80 {
  3154  						break
  3155  					}
  3156  				}
  3157  				if packedLen < 0 {
  3158  					return ErrInvalidLengthOsmformat
  3159  				}
  3160  				postIndex := iNdEx + packedLen
  3161  				if postIndex > l {
  3162  					return io.ErrUnexpectedEOF
  3163  				}
  3164  				for iNdEx < postIndex {
  3165  					var v uint64
  3166  					for shift := uint(0); ; shift += 7 {
  3167  						if shift >= 64 {
  3168  							return ErrIntOverflowOsmformat
  3169  						}
  3170  						if iNdEx >= l {
  3171  							return io.ErrUnexpectedEOF
  3172  						}
  3173  						b := dAtA[iNdEx]
  3174  						iNdEx++
  3175  						v |= (uint64(b) & 0x7F) << shift
  3176  						if b < 0x80 {
  3177  							break
  3178  						}
  3179  					}
  3180  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3181  					m.Changeset = append(m.Changeset, int64(v))
  3182  				}
  3183  			} else {
  3184  				return fmt.Errorf("proto: wrong wireType = %d for field Changeset", wireType)
  3185  			}
  3186  		case 4:
  3187  			if wireType == 0 {
  3188  				var v int32
  3189  				for shift := uint(0); ; shift += 7 {
  3190  					if shift >= 64 {
  3191  						return ErrIntOverflowOsmformat
  3192  					}
  3193  					if iNdEx >= l {
  3194  						return io.ErrUnexpectedEOF
  3195  					}
  3196  					b := dAtA[iNdEx]
  3197  					iNdEx++
  3198  					v |= (int32(b) & 0x7F) << shift
  3199  					if b < 0x80 {
  3200  						break
  3201  					}
  3202  				}
  3203  				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
  3204  				m.Uid = append(m.Uid, v)
  3205  			} else if wireType == 2 {
  3206  				var packedLen int
  3207  				for shift := uint(0); ; shift += 7 {
  3208  					if shift >= 64 {
  3209  						return ErrIntOverflowOsmformat
  3210  					}
  3211  					if iNdEx >= l {
  3212  						return io.ErrUnexpectedEOF
  3213  					}
  3214  					b := dAtA[iNdEx]
  3215  					iNdEx++
  3216  					packedLen |= (int(b) & 0x7F) << shift
  3217  					if b < 0x80 {
  3218  						break
  3219  					}
  3220  				}
  3221  				if packedLen < 0 {
  3222  					return ErrInvalidLengthOsmformat
  3223  				}
  3224  				postIndex := iNdEx + packedLen
  3225  				if postIndex > l {
  3226  					return io.ErrUnexpectedEOF
  3227  				}
  3228  				for iNdEx < postIndex {
  3229  					var v int32
  3230  					for shift := uint(0); ; shift += 7 {
  3231  						if shift >= 64 {
  3232  							return ErrIntOverflowOsmformat
  3233  						}
  3234  						if iNdEx >= l {
  3235  							return io.ErrUnexpectedEOF
  3236  						}
  3237  						b := dAtA[iNdEx]
  3238  						iNdEx++
  3239  						v |= (int32(b) & 0x7F) << shift
  3240  						if b < 0x80 {
  3241  							break
  3242  						}
  3243  					}
  3244  					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
  3245  					m.Uid = append(m.Uid, v)
  3246  				}
  3247  			} else {
  3248  				return fmt.Errorf("proto: wrong wireType = %d for field Uid", wireType)
  3249  			}
  3250  		case 5:
  3251  			if wireType == 0 {
  3252  				var v int32
  3253  				for shift := uint(0); ; shift += 7 {
  3254  					if shift >= 64 {
  3255  						return ErrIntOverflowOsmformat
  3256  					}
  3257  					if iNdEx >= l {
  3258  						return io.ErrUnexpectedEOF
  3259  					}
  3260  					b := dAtA[iNdEx]
  3261  					iNdEx++
  3262  					v |= (int32(b) & 0x7F) << shift
  3263  					if b < 0x80 {
  3264  						break
  3265  					}
  3266  				}
  3267  				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
  3268  				m.UserSid = append(m.UserSid, v)
  3269  			} else if wireType == 2 {
  3270  				var packedLen int
  3271  				for shift := uint(0); ; shift += 7 {
  3272  					if shift >= 64 {
  3273  						return ErrIntOverflowOsmformat
  3274  					}
  3275  					if iNdEx >= l {
  3276  						return io.ErrUnexpectedEOF
  3277  					}
  3278  					b := dAtA[iNdEx]
  3279  					iNdEx++
  3280  					packedLen |= (int(b) & 0x7F) << shift
  3281  					if b < 0x80 {
  3282  						break
  3283  					}
  3284  				}
  3285  				if packedLen < 0 {
  3286  					return ErrInvalidLengthOsmformat
  3287  				}
  3288  				postIndex := iNdEx + packedLen
  3289  				if postIndex > l {
  3290  					return io.ErrUnexpectedEOF
  3291  				}
  3292  				for iNdEx < postIndex {
  3293  					var v int32
  3294  					for shift := uint(0); ; shift += 7 {
  3295  						if shift >= 64 {
  3296  							return ErrIntOverflowOsmformat
  3297  						}
  3298  						if iNdEx >= l {
  3299  							return io.ErrUnexpectedEOF
  3300  						}
  3301  						b := dAtA[iNdEx]
  3302  						iNdEx++
  3303  						v |= (int32(b) & 0x7F) << shift
  3304  						if b < 0x80 {
  3305  							break
  3306  						}
  3307  					}
  3308  					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
  3309  					m.UserSid = append(m.UserSid, v)
  3310  				}
  3311  			} else {
  3312  				return fmt.Errorf("proto: wrong wireType = %d for field UserSid", wireType)
  3313  			}
  3314  		case 6:
  3315  			if wireType == 0 {
  3316  				var v int
  3317  				for shift := uint(0); ; shift += 7 {
  3318  					if shift >= 64 {
  3319  						return ErrIntOverflowOsmformat
  3320  					}
  3321  					if iNdEx >= l {
  3322  						return io.ErrUnexpectedEOF
  3323  					}
  3324  					b := dAtA[iNdEx]
  3325  					iNdEx++
  3326  					v |= (int(b) & 0x7F) << shift
  3327  					if b < 0x80 {
  3328  						break
  3329  					}
  3330  				}
  3331  				m.Visible = append(m.Visible, bool(v != 0))
  3332  			} else if wireType == 2 {
  3333  				var packedLen int
  3334  				for shift := uint(0); ; shift += 7 {
  3335  					if shift >= 64 {
  3336  						return ErrIntOverflowOsmformat
  3337  					}
  3338  					if iNdEx >= l {
  3339  						return io.ErrUnexpectedEOF
  3340  					}
  3341  					b := dAtA[iNdEx]
  3342  					iNdEx++
  3343  					packedLen |= (int(b) & 0x7F) << shift
  3344  					if b < 0x80 {
  3345  						break
  3346  					}
  3347  				}
  3348  				if packedLen < 0 {
  3349  					return ErrInvalidLengthOsmformat
  3350  				}
  3351  				postIndex := iNdEx + packedLen
  3352  				if postIndex > l {
  3353  					return io.ErrUnexpectedEOF
  3354  				}
  3355  				for iNdEx < postIndex {
  3356  					var v int
  3357  					for shift := uint(0); ; shift += 7 {
  3358  						if shift >= 64 {
  3359  							return ErrIntOverflowOsmformat
  3360  						}
  3361  						if iNdEx >= l {
  3362  							return io.ErrUnexpectedEOF
  3363  						}
  3364  						b := dAtA[iNdEx]
  3365  						iNdEx++
  3366  						v |= (int(b) & 0x7F) << shift
  3367  						if b < 0x80 {
  3368  							break
  3369  						}
  3370  					}
  3371  					m.Visible = append(m.Visible, bool(v != 0))
  3372  				}
  3373  			} else {
  3374  				return fmt.Errorf("proto: wrong wireType = %d for field Visible", wireType)
  3375  			}
  3376  		default:
  3377  			iNdEx = preIndex
  3378  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  3379  			if err != nil {
  3380  				return err
  3381  			}
  3382  			if skippy < 0 {
  3383  				return ErrInvalidLengthOsmformat
  3384  			}
  3385  			if (iNdEx + skippy) > l {
  3386  				return io.ErrUnexpectedEOF
  3387  			}
  3388  			iNdEx += skippy
  3389  		}
  3390  	}
  3391  
  3392  	if iNdEx > l {
  3393  		return io.ErrUnexpectedEOF
  3394  	}
  3395  	return nil
  3396  }
  3397  func (m *ChangeSet) Unmarshal(dAtA []byte) error {
  3398  	var hasFields [1]uint64
  3399  	l := len(dAtA)
  3400  	iNdEx := 0
  3401  	for iNdEx < l {
  3402  		preIndex := iNdEx
  3403  		var wire uint64
  3404  		for shift := uint(0); ; shift += 7 {
  3405  			if shift >= 64 {
  3406  				return ErrIntOverflowOsmformat
  3407  			}
  3408  			if iNdEx >= l {
  3409  				return io.ErrUnexpectedEOF
  3410  			}
  3411  			b := dAtA[iNdEx]
  3412  			iNdEx++
  3413  			wire |= (uint64(b) & 0x7F) << shift
  3414  			if b < 0x80 {
  3415  				break
  3416  			}
  3417  		}
  3418  		fieldNum := int32(wire >> 3)
  3419  		wireType := int(wire & 0x7)
  3420  		if wireType == 4 {
  3421  			return fmt.Errorf("proto: ChangeSet: wiretype end group for non-group")
  3422  		}
  3423  		if fieldNum <= 0 {
  3424  			return fmt.Errorf("proto: ChangeSet: illegal tag %d (wire type %d)", fieldNum, wire)
  3425  		}
  3426  		switch fieldNum {
  3427  		case 1:
  3428  			if wireType != 0 {
  3429  				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
  3430  			}
  3431  			m.Id = 0
  3432  			for shift := uint(0); ; shift += 7 {
  3433  				if shift >= 64 {
  3434  					return ErrIntOverflowOsmformat
  3435  				}
  3436  				if iNdEx >= l {
  3437  					return io.ErrUnexpectedEOF
  3438  				}
  3439  				b := dAtA[iNdEx]
  3440  				iNdEx++
  3441  				m.Id |= (int64(b) & 0x7F) << shift
  3442  				if b < 0x80 {
  3443  					break
  3444  				}
  3445  			}
  3446  			hasFields[0] |= uint64(0x00000001)
  3447  		default:
  3448  			iNdEx = preIndex
  3449  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  3450  			if err != nil {
  3451  				return err
  3452  			}
  3453  			if skippy < 0 {
  3454  				return ErrInvalidLengthOsmformat
  3455  			}
  3456  			if (iNdEx + skippy) > l {
  3457  				return io.ErrUnexpectedEOF
  3458  			}
  3459  			iNdEx += skippy
  3460  		}
  3461  	}
  3462  	if hasFields[0]&uint64(0x00000001) == 0 {
  3463  		return proto.NewRequiredNotSetError("id")
  3464  	}
  3465  
  3466  	if iNdEx > l {
  3467  		return io.ErrUnexpectedEOF
  3468  	}
  3469  	return nil
  3470  }
  3471  func (m *Node) Unmarshal(dAtA []byte) error {
  3472  	var hasFields [1]uint64
  3473  	l := len(dAtA)
  3474  	iNdEx := 0
  3475  	for iNdEx < l {
  3476  		preIndex := iNdEx
  3477  		var wire uint64
  3478  		for shift := uint(0); ; shift += 7 {
  3479  			if shift >= 64 {
  3480  				return ErrIntOverflowOsmformat
  3481  			}
  3482  			if iNdEx >= l {
  3483  				return io.ErrUnexpectedEOF
  3484  			}
  3485  			b := dAtA[iNdEx]
  3486  			iNdEx++
  3487  			wire |= (uint64(b) & 0x7F) << shift
  3488  			if b < 0x80 {
  3489  				break
  3490  			}
  3491  		}
  3492  		fieldNum := int32(wire >> 3)
  3493  		wireType := int(wire & 0x7)
  3494  		if wireType == 4 {
  3495  			return fmt.Errorf("proto: Node: wiretype end group for non-group")
  3496  		}
  3497  		if fieldNum <= 0 {
  3498  			return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire)
  3499  		}
  3500  		switch fieldNum {
  3501  		case 1:
  3502  			if wireType != 0 {
  3503  				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
  3504  			}
  3505  			var v uint64
  3506  			for shift := uint(0); ; shift += 7 {
  3507  				if shift >= 64 {
  3508  					return ErrIntOverflowOsmformat
  3509  				}
  3510  				if iNdEx >= l {
  3511  					return io.ErrUnexpectedEOF
  3512  				}
  3513  				b := dAtA[iNdEx]
  3514  				iNdEx++
  3515  				v |= (uint64(b) & 0x7F) << shift
  3516  				if b < 0x80 {
  3517  					break
  3518  				}
  3519  			}
  3520  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3521  			m.Id = int64(v)
  3522  			hasFields[0] |= uint64(0x00000001)
  3523  		case 2:
  3524  			if wireType == 0 {
  3525  				var v uint32
  3526  				for shift := uint(0); ; shift += 7 {
  3527  					if shift >= 64 {
  3528  						return ErrIntOverflowOsmformat
  3529  					}
  3530  					if iNdEx >= l {
  3531  						return io.ErrUnexpectedEOF
  3532  					}
  3533  					b := dAtA[iNdEx]
  3534  					iNdEx++
  3535  					v |= (uint32(b) & 0x7F) << shift
  3536  					if b < 0x80 {
  3537  						break
  3538  					}
  3539  				}
  3540  				m.Keys = append(m.Keys, v)
  3541  			} else if wireType == 2 {
  3542  				var packedLen int
  3543  				for shift := uint(0); ; shift += 7 {
  3544  					if shift >= 64 {
  3545  						return ErrIntOverflowOsmformat
  3546  					}
  3547  					if iNdEx >= l {
  3548  						return io.ErrUnexpectedEOF
  3549  					}
  3550  					b := dAtA[iNdEx]
  3551  					iNdEx++
  3552  					packedLen |= (int(b) & 0x7F) << shift
  3553  					if b < 0x80 {
  3554  						break
  3555  					}
  3556  				}
  3557  				if packedLen < 0 {
  3558  					return ErrInvalidLengthOsmformat
  3559  				}
  3560  				postIndex := iNdEx + packedLen
  3561  				if postIndex > l {
  3562  					return io.ErrUnexpectedEOF
  3563  				}
  3564  				for iNdEx < postIndex {
  3565  					var v uint32
  3566  					for shift := uint(0); ; shift += 7 {
  3567  						if shift >= 64 {
  3568  							return ErrIntOverflowOsmformat
  3569  						}
  3570  						if iNdEx >= l {
  3571  							return io.ErrUnexpectedEOF
  3572  						}
  3573  						b := dAtA[iNdEx]
  3574  						iNdEx++
  3575  						v |= (uint32(b) & 0x7F) << shift
  3576  						if b < 0x80 {
  3577  							break
  3578  						}
  3579  					}
  3580  					m.Keys = append(m.Keys, v)
  3581  				}
  3582  			} else {
  3583  				return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType)
  3584  			}
  3585  		case 3:
  3586  			if wireType == 0 {
  3587  				var v uint32
  3588  				for shift := uint(0); ; shift += 7 {
  3589  					if shift >= 64 {
  3590  						return ErrIntOverflowOsmformat
  3591  					}
  3592  					if iNdEx >= l {
  3593  						return io.ErrUnexpectedEOF
  3594  					}
  3595  					b := dAtA[iNdEx]
  3596  					iNdEx++
  3597  					v |= (uint32(b) & 0x7F) << shift
  3598  					if b < 0x80 {
  3599  						break
  3600  					}
  3601  				}
  3602  				m.Vals = append(m.Vals, v)
  3603  			} else if wireType == 2 {
  3604  				var packedLen int
  3605  				for shift := uint(0); ; shift += 7 {
  3606  					if shift >= 64 {
  3607  						return ErrIntOverflowOsmformat
  3608  					}
  3609  					if iNdEx >= l {
  3610  						return io.ErrUnexpectedEOF
  3611  					}
  3612  					b := dAtA[iNdEx]
  3613  					iNdEx++
  3614  					packedLen |= (int(b) & 0x7F) << shift
  3615  					if b < 0x80 {
  3616  						break
  3617  					}
  3618  				}
  3619  				if packedLen < 0 {
  3620  					return ErrInvalidLengthOsmformat
  3621  				}
  3622  				postIndex := iNdEx + packedLen
  3623  				if postIndex > l {
  3624  					return io.ErrUnexpectedEOF
  3625  				}
  3626  				for iNdEx < postIndex {
  3627  					var v uint32
  3628  					for shift := uint(0); ; shift += 7 {
  3629  						if shift >= 64 {
  3630  							return ErrIntOverflowOsmformat
  3631  						}
  3632  						if iNdEx >= l {
  3633  							return io.ErrUnexpectedEOF
  3634  						}
  3635  						b := dAtA[iNdEx]
  3636  						iNdEx++
  3637  						v |= (uint32(b) & 0x7F) << shift
  3638  						if b < 0x80 {
  3639  							break
  3640  						}
  3641  					}
  3642  					m.Vals = append(m.Vals, v)
  3643  				}
  3644  			} else {
  3645  				return fmt.Errorf("proto: wrong wireType = %d for field Vals", wireType)
  3646  			}
  3647  		case 4:
  3648  			if wireType != 2 {
  3649  				return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  3650  			}
  3651  			var msglen int
  3652  			for shift := uint(0); ; shift += 7 {
  3653  				if shift >= 64 {
  3654  					return ErrIntOverflowOsmformat
  3655  				}
  3656  				if iNdEx >= l {
  3657  					return io.ErrUnexpectedEOF
  3658  				}
  3659  				b := dAtA[iNdEx]
  3660  				iNdEx++
  3661  				msglen |= (int(b) & 0x7F) << shift
  3662  				if b < 0x80 {
  3663  					break
  3664  				}
  3665  			}
  3666  			if msglen < 0 {
  3667  				return ErrInvalidLengthOsmformat
  3668  			}
  3669  			postIndex := iNdEx + msglen
  3670  			if postIndex > l {
  3671  				return io.ErrUnexpectedEOF
  3672  			}
  3673  			if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3674  				return err
  3675  			}
  3676  			iNdEx = postIndex
  3677  		case 8:
  3678  			if wireType != 0 {
  3679  				return fmt.Errorf("proto: wrong wireType = %d for field Lat", wireType)
  3680  			}
  3681  			var v uint64
  3682  			for shift := uint(0); ; shift += 7 {
  3683  				if shift >= 64 {
  3684  					return ErrIntOverflowOsmformat
  3685  				}
  3686  				if iNdEx >= l {
  3687  					return io.ErrUnexpectedEOF
  3688  				}
  3689  				b := dAtA[iNdEx]
  3690  				iNdEx++
  3691  				v |= (uint64(b) & 0x7F) << shift
  3692  				if b < 0x80 {
  3693  					break
  3694  				}
  3695  			}
  3696  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3697  			m.Lat = int64(v)
  3698  			hasFields[0] |= uint64(0x00000002)
  3699  		case 9:
  3700  			if wireType != 0 {
  3701  				return fmt.Errorf("proto: wrong wireType = %d for field Lon", wireType)
  3702  			}
  3703  			var v uint64
  3704  			for shift := uint(0); ; shift += 7 {
  3705  				if shift >= 64 {
  3706  					return ErrIntOverflowOsmformat
  3707  				}
  3708  				if iNdEx >= l {
  3709  					return io.ErrUnexpectedEOF
  3710  				}
  3711  				b := dAtA[iNdEx]
  3712  				iNdEx++
  3713  				v |= (uint64(b) & 0x7F) << shift
  3714  				if b < 0x80 {
  3715  					break
  3716  				}
  3717  			}
  3718  			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3719  			m.Lon = int64(v)
  3720  			hasFields[0] |= uint64(0x00000004)
  3721  		default:
  3722  			iNdEx = preIndex
  3723  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  3724  			if err != nil {
  3725  				return err
  3726  			}
  3727  			if skippy < 0 {
  3728  				return ErrInvalidLengthOsmformat
  3729  			}
  3730  			if (iNdEx + skippy) > l {
  3731  				return io.ErrUnexpectedEOF
  3732  			}
  3733  			iNdEx += skippy
  3734  		}
  3735  	}
  3736  	if hasFields[0]&uint64(0x00000001) == 0 {
  3737  		return proto.NewRequiredNotSetError("id")
  3738  	}
  3739  	if hasFields[0]&uint64(0x00000002) == 0 {
  3740  		return proto.NewRequiredNotSetError("lat")
  3741  	}
  3742  	if hasFields[0]&uint64(0x00000004) == 0 {
  3743  		return proto.NewRequiredNotSetError("lon")
  3744  	}
  3745  
  3746  	if iNdEx > l {
  3747  		return io.ErrUnexpectedEOF
  3748  	}
  3749  	return nil
  3750  }
  3751  func (m *DenseNodes) Unmarshal(dAtA []byte) error {
  3752  	l := len(dAtA)
  3753  	iNdEx := 0
  3754  	for iNdEx < l {
  3755  		preIndex := iNdEx
  3756  		var wire uint64
  3757  		for shift := uint(0); ; shift += 7 {
  3758  			if shift >= 64 {
  3759  				return ErrIntOverflowOsmformat
  3760  			}
  3761  			if iNdEx >= l {
  3762  				return io.ErrUnexpectedEOF
  3763  			}
  3764  			b := dAtA[iNdEx]
  3765  			iNdEx++
  3766  			wire |= (uint64(b) & 0x7F) << shift
  3767  			if b < 0x80 {
  3768  				break
  3769  			}
  3770  		}
  3771  		fieldNum := int32(wire >> 3)
  3772  		wireType := int(wire & 0x7)
  3773  		if wireType == 4 {
  3774  			return fmt.Errorf("proto: DenseNodes: wiretype end group for non-group")
  3775  		}
  3776  		if fieldNum <= 0 {
  3777  			return fmt.Errorf("proto: DenseNodes: illegal tag %d (wire type %d)", fieldNum, wire)
  3778  		}
  3779  		switch fieldNum {
  3780  		case 1:
  3781  			if wireType == 0 {
  3782  				var v uint64
  3783  				for shift := uint(0); ; shift += 7 {
  3784  					if shift >= 64 {
  3785  						return ErrIntOverflowOsmformat
  3786  					}
  3787  					if iNdEx >= l {
  3788  						return io.ErrUnexpectedEOF
  3789  					}
  3790  					b := dAtA[iNdEx]
  3791  					iNdEx++
  3792  					v |= (uint64(b) & 0x7F) << shift
  3793  					if b < 0x80 {
  3794  						break
  3795  					}
  3796  				}
  3797  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3798  				m.Id = append(m.Id, int64(v))
  3799  			} else if wireType == 2 {
  3800  				var packedLen int
  3801  				for shift := uint(0); ; shift += 7 {
  3802  					if shift >= 64 {
  3803  						return ErrIntOverflowOsmformat
  3804  					}
  3805  					if iNdEx >= l {
  3806  						return io.ErrUnexpectedEOF
  3807  					}
  3808  					b := dAtA[iNdEx]
  3809  					iNdEx++
  3810  					packedLen |= (int(b) & 0x7F) << shift
  3811  					if b < 0x80 {
  3812  						break
  3813  					}
  3814  				}
  3815  				if packedLen < 0 {
  3816  					return ErrInvalidLengthOsmformat
  3817  				}
  3818  				postIndex := iNdEx + packedLen
  3819  				if postIndex > l {
  3820  					return io.ErrUnexpectedEOF
  3821  				}
  3822  				for iNdEx < postIndex {
  3823  					var v uint64
  3824  					for shift := uint(0); ; shift += 7 {
  3825  						if shift >= 64 {
  3826  							return ErrIntOverflowOsmformat
  3827  						}
  3828  						if iNdEx >= l {
  3829  							return io.ErrUnexpectedEOF
  3830  						}
  3831  						b := dAtA[iNdEx]
  3832  						iNdEx++
  3833  						v |= (uint64(b) & 0x7F) << shift
  3834  						if b < 0x80 {
  3835  							break
  3836  						}
  3837  					}
  3838  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3839  					m.Id = append(m.Id, int64(v))
  3840  				}
  3841  			} else {
  3842  				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
  3843  			}
  3844  		case 5:
  3845  			if wireType != 2 {
  3846  				return fmt.Errorf("proto: wrong wireType = %d for field Denseinfo", wireType)
  3847  			}
  3848  			var msglen int
  3849  			for shift := uint(0); ; shift += 7 {
  3850  				if shift >= 64 {
  3851  					return ErrIntOverflowOsmformat
  3852  				}
  3853  				if iNdEx >= l {
  3854  					return io.ErrUnexpectedEOF
  3855  				}
  3856  				b := dAtA[iNdEx]
  3857  				iNdEx++
  3858  				msglen |= (int(b) & 0x7F) << shift
  3859  				if b < 0x80 {
  3860  					break
  3861  				}
  3862  			}
  3863  			if msglen < 0 {
  3864  				return ErrInvalidLengthOsmformat
  3865  			}
  3866  			postIndex := iNdEx + msglen
  3867  			if postIndex > l {
  3868  				return io.ErrUnexpectedEOF
  3869  			}
  3870  			if m.Denseinfo == nil {
  3871  				m.Denseinfo = &DenseInfo{}
  3872  			}
  3873  			if err := m.Denseinfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3874  				return err
  3875  			}
  3876  			iNdEx = postIndex
  3877  		case 8:
  3878  			if wireType == 0 {
  3879  				var v uint64
  3880  				for shift := uint(0); ; shift += 7 {
  3881  					if shift >= 64 {
  3882  						return ErrIntOverflowOsmformat
  3883  					}
  3884  					if iNdEx >= l {
  3885  						return io.ErrUnexpectedEOF
  3886  					}
  3887  					b := dAtA[iNdEx]
  3888  					iNdEx++
  3889  					v |= (uint64(b) & 0x7F) << shift
  3890  					if b < 0x80 {
  3891  						break
  3892  					}
  3893  				}
  3894  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3895  				m.Lat = append(m.Lat, int64(v))
  3896  			} else if wireType == 2 {
  3897  				var packedLen int
  3898  				for shift := uint(0); ; shift += 7 {
  3899  					if shift >= 64 {
  3900  						return ErrIntOverflowOsmformat
  3901  					}
  3902  					if iNdEx >= l {
  3903  						return io.ErrUnexpectedEOF
  3904  					}
  3905  					b := dAtA[iNdEx]
  3906  					iNdEx++
  3907  					packedLen |= (int(b) & 0x7F) << shift
  3908  					if b < 0x80 {
  3909  						break
  3910  					}
  3911  				}
  3912  				if packedLen < 0 {
  3913  					return ErrInvalidLengthOsmformat
  3914  				}
  3915  				postIndex := iNdEx + packedLen
  3916  				if postIndex > l {
  3917  					return io.ErrUnexpectedEOF
  3918  				}
  3919  				for iNdEx < postIndex {
  3920  					var v uint64
  3921  					for shift := uint(0); ; shift += 7 {
  3922  						if shift >= 64 {
  3923  							return ErrIntOverflowOsmformat
  3924  						}
  3925  						if iNdEx >= l {
  3926  							return io.ErrUnexpectedEOF
  3927  						}
  3928  						b := dAtA[iNdEx]
  3929  						iNdEx++
  3930  						v |= (uint64(b) & 0x7F) << shift
  3931  						if b < 0x80 {
  3932  							break
  3933  						}
  3934  					}
  3935  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3936  					m.Lat = append(m.Lat, int64(v))
  3937  				}
  3938  			} else {
  3939  				return fmt.Errorf("proto: wrong wireType = %d for field Lat", wireType)
  3940  			}
  3941  		case 9:
  3942  			if wireType == 0 {
  3943  				var v uint64
  3944  				for shift := uint(0); ; shift += 7 {
  3945  					if shift >= 64 {
  3946  						return ErrIntOverflowOsmformat
  3947  					}
  3948  					if iNdEx >= l {
  3949  						return io.ErrUnexpectedEOF
  3950  					}
  3951  					b := dAtA[iNdEx]
  3952  					iNdEx++
  3953  					v |= (uint64(b) & 0x7F) << shift
  3954  					if b < 0x80 {
  3955  						break
  3956  					}
  3957  				}
  3958  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  3959  				m.Lon = append(m.Lon, int64(v))
  3960  			} else if wireType == 2 {
  3961  				var packedLen int
  3962  				for shift := uint(0); ; shift += 7 {
  3963  					if shift >= 64 {
  3964  						return ErrIntOverflowOsmformat
  3965  					}
  3966  					if iNdEx >= l {
  3967  						return io.ErrUnexpectedEOF
  3968  					}
  3969  					b := dAtA[iNdEx]
  3970  					iNdEx++
  3971  					packedLen |= (int(b) & 0x7F) << shift
  3972  					if b < 0x80 {
  3973  						break
  3974  					}
  3975  				}
  3976  				if packedLen < 0 {
  3977  					return ErrInvalidLengthOsmformat
  3978  				}
  3979  				postIndex := iNdEx + packedLen
  3980  				if postIndex > l {
  3981  					return io.ErrUnexpectedEOF
  3982  				}
  3983  				for iNdEx < postIndex {
  3984  					var v uint64
  3985  					for shift := uint(0); ; shift += 7 {
  3986  						if shift >= 64 {
  3987  							return ErrIntOverflowOsmformat
  3988  						}
  3989  						if iNdEx >= l {
  3990  							return io.ErrUnexpectedEOF
  3991  						}
  3992  						b := dAtA[iNdEx]
  3993  						iNdEx++
  3994  						v |= (uint64(b) & 0x7F) << shift
  3995  						if b < 0x80 {
  3996  							break
  3997  						}
  3998  					}
  3999  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  4000  					m.Lon = append(m.Lon, int64(v))
  4001  				}
  4002  			} else {
  4003  				return fmt.Errorf("proto: wrong wireType = %d for field Lon", wireType)
  4004  			}
  4005  		case 10:
  4006  			if wireType == 0 {
  4007  				var v int32
  4008  				for shift := uint(0); ; shift += 7 {
  4009  					if shift >= 64 {
  4010  						return ErrIntOverflowOsmformat
  4011  					}
  4012  					if iNdEx >= l {
  4013  						return io.ErrUnexpectedEOF
  4014  					}
  4015  					b := dAtA[iNdEx]
  4016  					iNdEx++
  4017  					v |= (int32(b) & 0x7F) << shift
  4018  					if b < 0x80 {
  4019  						break
  4020  					}
  4021  				}
  4022  				m.KeysVals = append(m.KeysVals, v)
  4023  			} else if wireType == 2 {
  4024  				var packedLen int
  4025  				for shift := uint(0); ; shift += 7 {
  4026  					if shift >= 64 {
  4027  						return ErrIntOverflowOsmformat
  4028  					}
  4029  					if iNdEx >= l {
  4030  						return io.ErrUnexpectedEOF
  4031  					}
  4032  					b := dAtA[iNdEx]
  4033  					iNdEx++
  4034  					packedLen |= (int(b) & 0x7F) << shift
  4035  					if b < 0x80 {
  4036  						break
  4037  					}
  4038  				}
  4039  				if packedLen < 0 {
  4040  					return ErrInvalidLengthOsmformat
  4041  				}
  4042  				postIndex := iNdEx + packedLen
  4043  				if postIndex > l {
  4044  					return io.ErrUnexpectedEOF
  4045  				}
  4046  				for iNdEx < postIndex {
  4047  					var v int32
  4048  					for shift := uint(0); ; shift += 7 {
  4049  						if shift >= 64 {
  4050  							return ErrIntOverflowOsmformat
  4051  						}
  4052  						if iNdEx >= l {
  4053  							return io.ErrUnexpectedEOF
  4054  						}
  4055  						b := dAtA[iNdEx]
  4056  						iNdEx++
  4057  						v |= (int32(b) & 0x7F) << shift
  4058  						if b < 0x80 {
  4059  							break
  4060  						}
  4061  					}
  4062  					m.KeysVals = append(m.KeysVals, v)
  4063  				}
  4064  			} else {
  4065  				return fmt.Errorf("proto: wrong wireType = %d for field KeysVals", wireType)
  4066  			}
  4067  		default:
  4068  			iNdEx = preIndex
  4069  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  4070  			if err != nil {
  4071  				return err
  4072  			}
  4073  			if skippy < 0 {
  4074  				return ErrInvalidLengthOsmformat
  4075  			}
  4076  			if (iNdEx + skippy) > l {
  4077  				return io.ErrUnexpectedEOF
  4078  			}
  4079  			iNdEx += skippy
  4080  		}
  4081  	}
  4082  
  4083  	if iNdEx > l {
  4084  		return io.ErrUnexpectedEOF
  4085  	}
  4086  	return nil
  4087  }
  4088  func (m *Way) Unmarshal(dAtA []byte) error {
  4089  	var hasFields [1]uint64
  4090  	l := len(dAtA)
  4091  	iNdEx := 0
  4092  	for iNdEx < l {
  4093  		preIndex := iNdEx
  4094  		var wire uint64
  4095  		for shift := uint(0); ; shift += 7 {
  4096  			if shift >= 64 {
  4097  				return ErrIntOverflowOsmformat
  4098  			}
  4099  			if iNdEx >= l {
  4100  				return io.ErrUnexpectedEOF
  4101  			}
  4102  			b := dAtA[iNdEx]
  4103  			iNdEx++
  4104  			wire |= (uint64(b) & 0x7F) << shift
  4105  			if b < 0x80 {
  4106  				break
  4107  			}
  4108  		}
  4109  		fieldNum := int32(wire >> 3)
  4110  		wireType := int(wire & 0x7)
  4111  		if wireType == 4 {
  4112  			return fmt.Errorf("proto: Way: wiretype end group for non-group")
  4113  		}
  4114  		if fieldNum <= 0 {
  4115  			return fmt.Errorf("proto: Way: illegal tag %d (wire type %d)", fieldNum, wire)
  4116  		}
  4117  		switch fieldNum {
  4118  		case 1:
  4119  			if wireType != 0 {
  4120  				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
  4121  			}
  4122  			m.Id = 0
  4123  			for shift := uint(0); ; shift += 7 {
  4124  				if shift >= 64 {
  4125  					return ErrIntOverflowOsmformat
  4126  				}
  4127  				if iNdEx >= l {
  4128  					return io.ErrUnexpectedEOF
  4129  				}
  4130  				b := dAtA[iNdEx]
  4131  				iNdEx++
  4132  				m.Id |= (int64(b) & 0x7F) << shift
  4133  				if b < 0x80 {
  4134  					break
  4135  				}
  4136  			}
  4137  			hasFields[0] |= uint64(0x00000001)
  4138  		case 2:
  4139  			if wireType == 0 {
  4140  				var v uint32
  4141  				for shift := uint(0); ; shift += 7 {
  4142  					if shift >= 64 {
  4143  						return ErrIntOverflowOsmformat
  4144  					}
  4145  					if iNdEx >= l {
  4146  						return io.ErrUnexpectedEOF
  4147  					}
  4148  					b := dAtA[iNdEx]
  4149  					iNdEx++
  4150  					v |= (uint32(b) & 0x7F) << shift
  4151  					if b < 0x80 {
  4152  						break
  4153  					}
  4154  				}
  4155  				m.Keys = append(m.Keys, v)
  4156  			} else if wireType == 2 {
  4157  				var packedLen int
  4158  				for shift := uint(0); ; shift += 7 {
  4159  					if shift >= 64 {
  4160  						return ErrIntOverflowOsmformat
  4161  					}
  4162  					if iNdEx >= l {
  4163  						return io.ErrUnexpectedEOF
  4164  					}
  4165  					b := dAtA[iNdEx]
  4166  					iNdEx++
  4167  					packedLen |= (int(b) & 0x7F) << shift
  4168  					if b < 0x80 {
  4169  						break
  4170  					}
  4171  				}
  4172  				if packedLen < 0 {
  4173  					return ErrInvalidLengthOsmformat
  4174  				}
  4175  				postIndex := iNdEx + packedLen
  4176  				if postIndex > l {
  4177  					return io.ErrUnexpectedEOF
  4178  				}
  4179  				for iNdEx < postIndex {
  4180  					var v uint32
  4181  					for shift := uint(0); ; shift += 7 {
  4182  						if shift >= 64 {
  4183  							return ErrIntOverflowOsmformat
  4184  						}
  4185  						if iNdEx >= l {
  4186  							return io.ErrUnexpectedEOF
  4187  						}
  4188  						b := dAtA[iNdEx]
  4189  						iNdEx++
  4190  						v |= (uint32(b) & 0x7F) << shift
  4191  						if b < 0x80 {
  4192  							break
  4193  						}
  4194  					}
  4195  					m.Keys = append(m.Keys, v)
  4196  				}
  4197  			} else {
  4198  				return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType)
  4199  			}
  4200  		case 3:
  4201  			if wireType == 0 {
  4202  				var v uint32
  4203  				for shift := uint(0); ; shift += 7 {
  4204  					if shift >= 64 {
  4205  						return ErrIntOverflowOsmformat
  4206  					}
  4207  					if iNdEx >= l {
  4208  						return io.ErrUnexpectedEOF
  4209  					}
  4210  					b := dAtA[iNdEx]
  4211  					iNdEx++
  4212  					v |= (uint32(b) & 0x7F) << shift
  4213  					if b < 0x80 {
  4214  						break
  4215  					}
  4216  				}
  4217  				m.Vals = append(m.Vals, v)
  4218  			} else if wireType == 2 {
  4219  				var packedLen int
  4220  				for shift := uint(0); ; shift += 7 {
  4221  					if shift >= 64 {
  4222  						return ErrIntOverflowOsmformat
  4223  					}
  4224  					if iNdEx >= l {
  4225  						return io.ErrUnexpectedEOF
  4226  					}
  4227  					b := dAtA[iNdEx]
  4228  					iNdEx++
  4229  					packedLen |= (int(b) & 0x7F) << shift
  4230  					if b < 0x80 {
  4231  						break
  4232  					}
  4233  				}
  4234  				if packedLen < 0 {
  4235  					return ErrInvalidLengthOsmformat
  4236  				}
  4237  				postIndex := iNdEx + packedLen
  4238  				if postIndex > l {
  4239  					return io.ErrUnexpectedEOF
  4240  				}
  4241  				for iNdEx < postIndex {
  4242  					var v uint32
  4243  					for shift := uint(0); ; shift += 7 {
  4244  						if shift >= 64 {
  4245  							return ErrIntOverflowOsmformat
  4246  						}
  4247  						if iNdEx >= l {
  4248  							return io.ErrUnexpectedEOF
  4249  						}
  4250  						b := dAtA[iNdEx]
  4251  						iNdEx++
  4252  						v |= (uint32(b) & 0x7F) << shift
  4253  						if b < 0x80 {
  4254  							break
  4255  						}
  4256  					}
  4257  					m.Vals = append(m.Vals, v)
  4258  				}
  4259  			} else {
  4260  				return fmt.Errorf("proto: wrong wireType = %d for field Vals", wireType)
  4261  			}
  4262  		case 4:
  4263  			if wireType != 2 {
  4264  				return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  4265  			}
  4266  			var msglen int
  4267  			for shift := uint(0); ; shift += 7 {
  4268  				if shift >= 64 {
  4269  					return ErrIntOverflowOsmformat
  4270  				}
  4271  				if iNdEx >= l {
  4272  					return io.ErrUnexpectedEOF
  4273  				}
  4274  				b := dAtA[iNdEx]
  4275  				iNdEx++
  4276  				msglen |= (int(b) & 0x7F) << shift
  4277  				if b < 0x80 {
  4278  					break
  4279  				}
  4280  			}
  4281  			if msglen < 0 {
  4282  				return ErrInvalidLengthOsmformat
  4283  			}
  4284  			postIndex := iNdEx + msglen
  4285  			if postIndex > l {
  4286  				return io.ErrUnexpectedEOF
  4287  			}
  4288  			if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4289  				return err
  4290  			}
  4291  			iNdEx = postIndex
  4292  		case 8:
  4293  			if wireType == 0 {
  4294  				var v uint64
  4295  				for shift := uint(0); ; shift += 7 {
  4296  					if shift >= 64 {
  4297  						return ErrIntOverflowOsmformat
  4298  					}
  4299  					if iNdEx >= l {
  4300  						return io.ErrUnexpectedEOF
  4301  					}
  4302  					b := dAtA[iNdEx]
  4303  					iNdEx++
  4304  					v |= (uint64(b) & 0x7F) << shift
  4305  					if b < 0x80 {
  4306  						break
  4307  					}
  4308  				}
  4309  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  4310  				m.Refs = append(m.Refs, int64(v))
  4311  			} else if wireType == 2 {
  4312  				var packedLen int
  4313  				for shift := uint(0); ; shift += 7 {
  4314  					if shift >= 64 {
  4315  						return ErrIntOverflowOsmformat
  4316  					}
  4317  					if iNdEx >= l {
  4318  						return io.ErrUnexpectedEOF
  4319  					}
  4320  					b := dAtA[iNdEx]
  4321  					iNdEx++
  4322  					packedLen |= (int(b) & 0x7F) << shift
  4323  					if b < 0x80 {
  4324  						break
  4325  					}
  4326  				}
  4327  				if packedLen < 0 {
  4328  					return ErrInvalidLengthOsmformat
  4329  				}
  4330  				postIndex := iNdEx + packedLen
  4331  				if postIndex > l {
  4332  					return io.ErrUnexpectedEOF
  4333  				}
  4334  				for iNdEx < postIndex {
  4335  					var v uint64
  4336  					for shift := uint(0); ; shift += 7 {
  4337  						if shift >= 64 {
  4338  							return ErrIntOverflowOsmformat
  4339  						}
  4340  						if iNdEx >= l {
  4341  							return io.ErrUnexpectedEOF
  4342  						}
  4343  						b := dAtA[iNdEx]
  4344  						iNdEx++
  4345  						v |= (uint64(b) & 0x7F) << shift
  4346  						if b < 0x80 {
  4347  							break
  4348  						}
  4349  					}
  4350  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  4351  					m.Refs = append(m.Refs, int64(v))
  4352  				}
  4353  			} else {
  4354  				return fmt.Errorf("proto: wrong wireType = %d for field Refs", wireType)
  4355  			}
  4356  		default:
  4357  			iNdEx = preIndex
  4358  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  4359  			if err != nil {
  4360  				return err
  4361  			}
  4362  			if skippy < 0 {
  4363  				return ErrInvalidLengthOsmformat
  4364  			}
  4365  			if (iNdEx + skippy) > l {
  4366  				return io.ErrUnexpectedEOF
  4367  			}
  4368  			iNdEx += skippy
  4369  		}
  4370  	}
  4371  	if hasFields[0]&uint64(0x00000001) == 0 {
  4372  		return proto.NewRequiredNotSetError("id")
  4373  	}
  4374  
  4375  	if iNdEx > l {
  4376  		return io.ErrUnexpectedEOF
  4377  	}
  4378  	return nil
  4379  }
  4380  func (m *Relation) Unmarshal(dAtA []byte) error {
  4381  	var hasFields [1]uint64
  4382  	l := len(dAtA)
  4383  	iNdEx := 0
  4384  	for iNdEx < l {
  4385  		preIndex := iNdEx
  4386  		var wire uint64
  4387  		for shift := uint(0); ; shift += 7 {
  4388  			if shift >= 64 {
  4389  				return ErrIntOverflowOsmformat
  4390  			}
  4391  			if iNdEx >= l {
  4392  				return io.ErrUnexpectedEOF
  4393  			}
  4394  			b := dAtA[iNdEx]
  4395  			iNdEx++
  4396  			wire |= (uint64(b) & 0x7F) << shift
  4397  			if b < 0x80 {
  4398  				break
  4399  			}
  4400  		}
  4401  		fieldNum := int32(wire >> 3)
  4402  		wireType := int(wire & 0x7)
  4403  		if wireType == 4 {
  4404  			return fmt.Errorf("proto: Relation: wiretype end group for non-group")
  4405  		}
  4406  		if fieldNum <= 0 {
  4407  			return fmt.Errorf("proto: Relation: illegal tag %d (wire type %d)", fieldNum, wire)
  4408  		}
  4409  		switch fieldNum {
  4410  		case 1:
  4411  			if wireType != 0 {
  4412  				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
  4413  			}
  4414  			m.Id = 0
  4415  			for shift := uint(0); ; shift += 7 {
  4416  				if shift >= 64 {
  4417  					return ErrIntOverflowOsmformat
  4418  				}
  4419  				if iNdEx >= l {
  4420  					return io.ErrUnexpectedEOF
  4421  				}
  4422  				b := dAtA[iNdEx]
  4423  				iNdEx++
  4424  				m.Id |= (int64(b) & 0x7F) << shift
  4425  				if b < 0x80 {
  4426  					break
  4427  				}
  4428  			}
  4429  			hasFields[0] |= uint64(0x00000001)
  4430  		case 2:
  4431  			if wireType == 0 {
  4432  				var v uint32
  4433  				for shift := uint(0); ; shift += 7 {
  4434  					if shift >= 64 {
  4435  						return ErrIntOverflowOsmformat
  4436  					}
  4437  					if iNdEx >= l {
  4438  						return io.ErrUnexpectedEOF
  4439  					}
  4440  					b := dAtA[iNdEx]
  4441  					iNdEx++
  4442  					v |= (uint32(b) & 0x7F) << shift
  4443  					if b < 0x80 {
  4444  						break
  4445  					}
  4446  				}
  4447  				m.Keys = append(m.Keys, v)
  4448  			} else if wireType == 2 {
  4449  				var packedLen int
  4450  				for shift := uint(0); ; shift += 7 {
  4451  					if shift >= 64 {
  4452  						return ErrIntOverflowOsmformat
  4453  					}
  4454  					if iNdEx >= l {
  4455  						return io.ErrUnexpectedEOF
  4456  					}
  4457  					b := dAtA[iNdEx]
  4458  					iNdEx++
  4459  					packedLen |= (int(b) & 0x7F) << shift
  4460  					if b < 0x80 {
  4461  						break
  4462  					}
  4463  				}
  4464  				if packedLen < 0 {
  4465  					return ErrInvalidLengthOsmformat
  4466  				}
  4467  				postIndex := iNdEx + packedLen
  4468  				if postIndex > l {
  4469  					return io.ErrUnexpectedEOF
  4470  				}
  4471  				for iNdEx < postIndex {
  4472  					var v uint32
  4473  					for shift := uint(0); ; shift += 7 {
  4474  						if shift >= 64 {
  4475  							return ErrIntOverflowOsmformat
  4476  						}
  4477  						if iNdEx >= l {
  4478  							return io.ErrUnexpectedEOF
  4479  						}
  4480  						b := dAtA[iNdEx]
  4481  						iNdEx++
  4482  						v |= (uint32(b) & 0x7F) << shift
  4483  						if b < 0x80 {
  4484  							break
  4485  						}
  4486  					}
  4487  					m.Keys = append(m.Keys, v)
  4488  				}
  4489  			} else {
  4490  				return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType)
  4491  			}
  4492  		case 3:
  4493  			if wireType == 0 {
  4494  				var v uint32
  4495  				for shift := uint(0); ; shift += 7 {
  4496  					if shift >= 64 {
  4497  						return ErrIntOverflowOsmformat
  4498  					}
  4499  					if iNdEx >= l {
  4500  						return io.ErrUnexpectedEOF
  4501  					}
  4502  					b := dAtA[iNdEx]
  4503  					iNdEx++
  4504  					v |= (uint32(b) & 0x7F) << shift
  4505  					if b < 0x80 {
  4506  						break
  4507  					}
  4508  				}
  4509  				m.Vals = append(m.Vals, v)
  4510  			} else if wireType == 2 {
  4511  				var packedLen int
  4512  				for shift := uint(0); ; shift += 7 {
  4513  					if shift >= 64 {
  4514  						return ErrIntOverflowOsmformat
  4515  					}
  4516  					if iNdEx >= l {
  4517  						return io.ErrUnexpectedEOF
  4518  					}
  4519  					b := dAtA[iNdEx]
  4520  					iNdEx++
  4521  					packedLen |= (int(b) & 0x7F) << shift
  4522  					if b < 0x80 {
  4523  						break
  4524  					}
  4525  				}
  4526  				if packedLen < 0 {
  4527  					return ErrInvalidLengthOsmformat
  4528  				}
  4529  				postIndex := iNdEx + packedLen
  4530  				if postIndex > l {
  4531  					return io.ErrUnexpectedEOF
  4532  				}
  4533  				for iNdEx < postIndex {
  4534  					var v uint32
  4535  					for shift := uint(0); ; shift += 7 {
  4536  						if shift >= 64 {
  4537  							return ErrIntOverflowOsmformat
  4538  						}
  4539  						if iNdEx >= l {
  4540  							return io.ErrUnexpectedEOF
  4541  						}
  4542  						b := dAtA[iNdEx]
  4543  						iNdEx++
  4544  						v |= (uint32(b) & 0x7F) << shift
  4545  						if b < 0x80 {
  4546  							break
  4547  						}
  4548  					}
  4549  					m.Vals = append(m.Vals, v)
  4550  				}
  4551  			} else {
  4552  				return fmt.Errorf("proto: wrong wireType = %d for field Vals", wireType)
  4553  			}
  4554  		case 4:
  4555  			if wireType != 2 {
  4556  				return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  4557  			}
  4558  			var msglen int
  4559  			for shift := uint(0); ; shift += 7 {
  4560  				if shift >= 64 {
  4561  					return ErrIntOverflowOsmformat
  4562  				}
  4563  				if iNdEx >= l {
  4564  					return io.ErrUnexpectedEOF
  4565  				}
  4566  				b := dAtA[iNdEx]
  4567  				iNdEx++
  4568  				msglen |= (int(b) & 0x7F) << shift
  4569  				if b < 0x80 {
  4570  					break
  4571  				}
  4572  			}
  4573  			if msglen < 0 {
  4574  				return ErrInvalidLengthOsmformat
  4575  			}
  4576  			postIndex := iNdEx + msglen
  4577  			if postIndex > l {
  4578  				return io.ErrUnexpectedEOF
  4579  			}
  4580  			if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4581  				return err
  4582  			}
  4583  			iNdEx = postIndex
  4584  		case 8:
  4585  			if wireType == 0 {
  4586  				var v int32
  4587  				for shift := uint(0); ; shift += 7 {
  4588  					if shift >= 64 {
  4589  						return ErrIntOverflowOsmformat
  4590  					}
  4591  					if iNdEx >= l {
  4592  						return io.ErrUnexpectedEOF
  4593  					}
  4594  					b := dAtA[iNdEx]
  4595  					iNdEx++
  4596  					v |= (int32(b) & 0x7F) << shift
  4597  					if b < 0x80 {
  4598  						break
  4599  					}
  4600  				}
  4601  				m.RolesSid = append(m.RolesSid, v)
  4602  			} else if wireType == 2 {
  4603  				var packedLen int
  4604  				for shift := uint(0); ; shift += 7 {
  4605  					if shift >= 64 {
  4606  						return ErrIntOverflowOsmformat
  4607  					}
  4608  					if iNdEx >= l {
  4609  						return io.ErrUnexpectedEOF
  4610  					}
  4611  					b := dAtA[iNdEx]
  4612  					iNdEx++
  4613  					packedLen |= (int(b) & 0x7F) << shift
  4614  					if b < 0x80 {
  4615  						break
  4616  					}
  4617  				}
  4618  				if packedLen < 0 {
  4619  					return ErrInvalidLengthOsmformat
  4620  				}
  4621  				postIndex := iNdEx + packedLen
  4622  				if postIndex > l {
  4623  					return io.ErrUnexpectedEOF
  4624  				}
  4625  				for iNdEx < postIndex {
  4626  					var v int32
  4627  					for shift := uint(0); ; shift += 7 {
  4628  						if shift >= 64 {
  4629  							return ErrIntOverflowOsmformat
  4630  						}
  4631  						if iNdEx >= l {
  4632  							return io.ErrUnexpectedEOF
  4633  						}
  4634  						b := dAtA[iNdEx]
  4635  						iNdEx++
  4636  						v |= (int32(b) & 0x7F) << shift
  4637  						if b < 0x80 {
  4638  							break
  4639  						}
  4640  					}
  4641  					m.RolesSid = append(m.RolesSid, v)
  4642  				}
  4643  			} else {
  4644  				return fmt.Errorf("proto: wrong wireType = %d for field RolesSid", wireType)
  4645  			}
  4646  		case 9:
  4647  			if wireType == 0 {
  4648  				var v uint64
  4649  				for shift := uint(0); ; shift += 7 {
  4650  					if shift >= 64 {
  4651  						return ErrIntOverflowOsmformat
  4652  					}
  4653  					if iNdEx >= l {
  4654  						return io.ErrUnexpectedEOF
  4655  					}
  4656  					b := dAtA[iNdEx]
  4657  					iNdEx++
  4658  					v |= (uint64(b) & 0x7F) << shift
  4659  					if b < 0x80 {
  4660  						break
  4661  					}
  4662  				}
  4663  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  4664  				m.Memids = append(m.Memids, int64(v))
  4665  			} else if wireType == 2 {
  4666  				var packedLen int
  4667  				for shift := uint(0); ; shift += 7 {
  4668  					if shift >= 64 {
  4669  						return ErrIntOverflowOsmformat
  4670  					}
  4671  					if iNdEx >= l {
  4672  						return io.ErrUnexpectedEOF
  4673  					}
  4674  					b := dAtA[iNdEx]
  4675  					iNdEx++
  4676  					packedLen |= (int(b) & 0x7F) << shift
  4677  					if b < 0x80 {
  4678  						break
  4679  					}
  4680  				}
  4681  				if packedLen < 0 {
  4682  					return ErrInvalidLengthOsmformat
  4683  				}
  4684  				postIndex := iNdEx + packedLen
  4685  				if postIndex > l {
  4686  					return io.ErrUnexpectedEOF
  4687  				}
  4688  				for iNdEx < postIndex {
  4689  					var v uint64
  4690  					for shift := uint(0); ; shift += 7 {
  4691  						if shift >= 64 {
  4692  							return ErrIntOverflowOsmformat
  4693  						}
  4694  						if iNdEx >= l {
  4695  							return io.ErrUnexpectedEOF
  4696  						}
  4697  						b := dAtA[iNdEx]
  4698  						iNdEx++
  4699  						v |= (uint64(b) & 0x7F) << shift
  4700  						if b < 0x80 {
  4701  							break
  4702  						}
  4703  					}
  4704  					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  4705  					m.Memids = append(m.Memids, int64(v))
  4706  				}
  4707  			} else {
  4708  				return fmt.Errorf("proto: wrong wireType = %d for field Memids", wireType)
  4709  			}
  4710  		case 10:
  4711  			if wireType == 0 {
  4712  				var v Relation_MemberType
  4713  				for shift := uint(0); ; shift += 7 {
  4714  					if shift >= 64 {
  4715  						return ErrIntOverflowOsmformat
  4716  					}
  4717  					if iNdEx >= l {
  4718  						return io.ErrUnexpectedEOF
  4719  					}
  4720  					b := dAtA[iNdEx]
  4721  					iNdEx++
  4722  					v |= (Relation_MemberType(b) & 0x7F) << shift
  4723  					if b < 0x80 {
  4724  						break
  4725  					}
  4726  				}
  4727  				m.Types = append(m.Types, v)
  4728  			} else if wireType == 2 {
  4729  				var packedLen int
  4730  				for shift := uint(0); ; shift += 7 {
  4731  					if shift >= 64 {
  4732  						return ErrIntOverflowOsmformat
  4733  					}
  4734  					if iNdEx >= l {
  4735  						return io.ErrUnexpectedEOF
  4736  					}
  4737  					b := dAtA[iNdEx]
  4738  					iNdEx++
  4739  					packedLen |= (int(b) & 0x7F) << shift
  4740  					if b < 0x80 {
  4741  						break
  4742  					}
  4743  				}
  4744  				if packedLen < 0 {
  4745  					return ErrInvalidLengthOsmformat
  4746  				}
  4747  				postIndex := iNdEx + packedLen
  4748  				if postIndex > l {
  4749  					return io.ErrUnexpectedEOF
  4750  				}
  4751  				for iNdEx < postIndex {
  4752  					var v Relation_MemberType
  4753  					for shift := uint(0); ; shift += 7 {
  4754  						if shift >= 64 {
  4755  							return ErrIntOverflowOsmformat
  4756  						}
  4757  						if iNdEx >= l {
  4758  							return io.ErrUnexpectedEOF
  4759  						}
  4760  						b := dAtA[iNdEx]
  4761  						iNdEx++
  4762  						v |= (Relation_MemberType(b) & 0x7F) << shift
  4763  						if b < 0x80 {
  4764  							break
  4765  						}
  4766  					}
  4767  					m.Types = append(m.Types, v)
  4768  				}
  4769  			} else {
  4770  				return fmt.Errorf("proto: wrong wireType = %d for field Types", wireType)
  4771  			}
  4772  		default:
  4773  			iNdEx = preIndex
  4774  			skippy, err := skipOsmformat(dAtA[iNdEx:])
  4775  			if err != nil {
  4776  				return err
  4777  			}
  4778  			if skippy < 0 {
  4779  				return ErrInvalidLengthOsmformat
  4780  			}
  4781  			if (iNdEx + skippy) > l {
  4782  				return io.ErrUnexpectedEOF
  4783  			}
  4784  			iNdEx += skippy
  4785  		}
  4786  	}
  4787  	if hasFields[0]&uint64(0x00000001) == 0 {
  4788  		return proto.NewRequiredNotSetError("id")
  4789  	}
  4790  
  4791  	if iNdEx > l {
  4792  		return io.ErrUnexpectedEOF
  4793  	}
  4794  	return nil
  4795  }
  4796  func skipOsmformat(dAtA []byte) (n int, err error) {
  4797  	l := len(dAtA)
  4798  	iNdEx := 0
  4799  	for iNdEx < l {
  4800  		var wire uint64
  4801  		for shift := uint(0); ; shift += 7 {
  4802  			if shift >= 64 {
  4803  				return 0, ErrIntOverflowOsmformat
  4804  			}
  4805  			if iNdEx >= l {
  4806  				return 0, io.ErrUnexpectedEOF
  4807  			}
  4808  			b := dAtA[iNdEx]
  4809  			iNdEx++
  4810  			wire |= (uint64(b) & 0x7F) << shift
  4811  			if b < 0x80 {
  4812  				break
  4813  			}
  4814  		}
  4815  		wireType := int(wire & 0x7)
  4816  		switch wireType {
  4817  		case 0:
  4818  			for shift := uint(0); ; shift += 7 {
  4819  				if shift >= 64 {
  4820  					return 0, ErrIntOverflowOsmformat
  4821  				}
  4822  				if iNdEx >= l {
  4823  					return 0, io.ErrUnexpectedEOF
  4824  				}
  4825  				iNdEx++
  4826  				if dAtA[iNdEx-1] < 0x80 {
  4827  					break
  4828  				}
  4829  			}
  4830  			return iNdEx, nil
  4831  		case 1:
  4832  			iNdEx += 8
  4833  			return iNdEx, nil
  4834  		case 2:
  4835  			var length int
  4836  			for shift := uint(0); ; shift += 7 {
  4837  				if shift >= 64 {
  4838  					return 0, ErrIntOverflowOsmformat
  4839  				}
  4840  				if iNdEx >= l {
  4841  					return 0, io.ErrUnexpectedEOF
  4842  				}
  4843  				b := dAtA[iNdEx]
  4844  				iNdEx++
  4845  				length |= (int(b) & 0x7F) << shift
  4846  				if b < 0x80 {
  4847  					break
  4848  				}
  4849  			}
  4850  			iNdEx += length
  4851  			if length < 0 {
  4852  				return 0, ErrInvalidLengthOsmformat
  4853  			}
  4854  			return iNdEx, nil
  4855  		case 3:
  4856  			for {
  4857  				var innerWire uint64
  4858  				var start int = iNdEx
  4859  				for shift := uint(0); ; shift += 7 {
  4860  					if shift >= 64 {
  4861  						return 0, ErrIntOverflowOsmformat
  4862  					}
  4863  					if iNdEx >= l {
  4864  						return 0, io.ErrUnexpectedEOF
  4865  					}
  4866  					b := dAtA[iNdEx]
  4867  					iNdEx++
  4868  					innerWire |= (uint64(b) & 0x7F) << shift
  4869  					if b < 0x80 {
  4870  						break
  4871  					}
  4872  				}
  4873  				innerWireType := int(innerWire & 0x7)
  4874  				if innerWireType == 4 {
  4875  					break
  4876  				}
  4877  				next, err := skipOsmformat(dAtA[start:])
  4878  				if err != nil {
  4879  					return 0, err
  4880  				}
  4881  				iNdEx = start + next
  4882  			}
  4883  			return iNdEx, nil
  4884  		case 4:
  4885  			return iNdEx, nil
  4886  		case 5:
  4887  			iNdEx += 4
  4888  			return iNdEx, nil
  4889  		default:
  4890  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  4891  		}
  4892  	}
  4893  	panic("unreachable")
  4894  }
  4895  
  4896  var (
  4897  	ErrInvalidLengthOsmformat = fmt.Errorf("proto: negative length found during unmarshaling")
  4898  	ErrIntOverflowOsmformat   = fmt.Errorf("proto: integer overflow")
  4899  )
  4900  
  4901  func init() { proto.RegisterFile("parser/pbf/internal/osmpbf/osmformat.proto", fileDescriptorOsmformat) }
  4902  
  4903  var fileDescriptorOsmformat = []byte{
  4904  	// 1109 bytes of a gzipped FileDescriptorProto
  4905  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4f, 0x6f, 0x1b, 0xc5,
  4906  	0x1b, 0xee, 0xfe, 0x71, 0x62, 0xbf, 0x4e, 0xf3, 0x73, 0xa6, 0x51, 0xb5, 0xbf, 0x36, 0x4d, 0xb6,
  4907  	0x8b, 0x8a, 0x56, 0x40, 0x6d, 0xd7, 0xa2, 0x42, 0xea, 0x01, 0xa9, 0xa6, 0xa5, 0xad, 0x04, 0x29,
  4908  	0xda, 0x04, 0x2a, 0x4e, 0xd6, 0xd8, 0x3b, 0x76, 0x46, 0xdd, 0xdd, 0xd9, 0xce, 0xcc, 0xa6, 0xf1,
  4909  	0x67, 0xe0, 0xc2, 0x1d, 0x89, 0x0b, 0x7c, 0x10, 0x38, 0x20, 0xf5, 0xc8, 0x27, 0x40, 0x28, 0x7c,
  4910  	0x0b, 0x4e, 0x68, 0x66, 0x77, 0xbc, 0xeb, 0x24, 0x57, 0xb8, 0x79, 0x9e, 0xe7, 0x99, 0x77, 0xde,
  4911  	0xe7, 0xfd, 0xb3, 0x86, 0x0f, 0x72, 0xcc, 0x05, 0xe1, 0x83, 0x7c, 0x3a, 0x1f, 0xd0, 0x4c, 0x12,
  4912  	0x9e, 0xe1, 0x64, 0xc0, 0x44, 0xaa, 0xce, 0x4c, 0xa4, 0x73, 0xc6, 0x53, 0x2c, 0xfb, 0x39, 0x67,
  4913  	0x92, 0xa1, 0x8d, 0x12, 0xbf, 0x75, 0x7f, 0x41, 0xe5, 0x49, 0x31, 0xed, 0xcf, 0x58, 0x3a, 0x58,
  4914  	0xb0, 0x05, 0x1b, 0x68, 0x7a, 0x5a, 0xcc, 0xf5, 0x49, 0x1f, 0xf4, 0xaf, 0xf2, 0x5a, 0xf0, 0xab,
  4915  	0x03, 0xdd, 0xe7, 0x04, 0xc7, 0x84, 0x8f, 0x13, 0x36, 0x7b, 0x8d, 0xde, 0x07, 0x77, 0x3a, 0x65,
  4916  	0x67, 0x9e, 0xe5, 0x5b, 0x61, 0x77, 0x84, 0xfa, 0x65, 0xd4, 0x7e, 0x25, 0x19, 0xb3, 0xb3, 0x48,
  4917  	0xf3, 0xe8, 0x43, 0xd8, 0xe1, 0xe4, 0x4d, 0x41, 0x39, 0x89, 0x27, 0x73, 0x82, 0x65, 0xc1, 0x89,
  4918  	0xf0, 0x5c, 0xdf, 0x09, 0x3b, 0x51, 0xcf, 0x10, 0x9f, 0x57, 0xb8, 0x12, 0xb3, 0x5c, 0x52, 0x96,
  4919  	0xe1, 0xa4, 0x16, 0xb7, 0x4a, 0xb1, 0x21, 0x56, 0xe2, 0x8f, 0x60, 0xfb, 0x2d, 0xa7, 0x92, 0x66,
  4920  	0x8b, 0x9c, 0xb3, 0x05, 0xc7, 0xa9, 0xd7, 0xf3, 0xad, 0xb0, 0x33, 0x76, 0xdf, 0xfd, 0x71, 0x70,
  4921  	0x2d, 0xba, 0xc0, 0xa1, 0x3d, 0xd8, 0x10, 0xac, 0xe0, 0x33, 0xe2, 0xed, 0x34, 0x54, 0x15, 0x86,
  4922  	0x9e, 0xc3, 0x1d, 0x26, 0x52, 0x26, 0xa8, 0x98, 0x70, 0x92, 0x27, 0x74, 0x86, 0xd5, 0x63, 0x13,
  4923  	0x49, 0x53, 0x22, 0x24, 0x4e, 0x73, 0xcf, 0xf7, 0xad, 0xd0, 0xa9, 0x2e, 0xdd, 0xae, 0xa4, 0x51,
  4924  	0xad, 0x3c, 0x36, 0x42, 0x74, 0x04, 0xef, 0x5d, 0x15, 0x49, 0x90, 0x37, 0x05, 0xc9, 0x66, 0x64,
  4925  	0x92, 0x15, 0xe9, 0x94, 0x70, 0xef, 0x6e, 0x23, 0x9e, 0x7f, 0x39, 0xde, 0x51, 0x25, 0x3f, 0xd4,
  4926  	0x6a, 0xf4, 0x14, 0xf6, 0xae, 0x0a, 0x3a, 0xc5, 0x82, 0x4c, 0x0a, 0x9e, 0x78, 0x41, 0xc3, 0xd2,
  4927  	0xff, 0x2f, 0x47, 0x1b, 0x63, 0x41, 0xbe, 0xe6, 0x49, 0x70, 0x06, 0x50, 0xf7, 0x07, 0x79, 0xe0,
  4928  	0x26, 0x64, 0x2e, 0x3d, 0xcb, 0xb7, 0x43, 0x54, 0x5d, 0xd6, 0x08, 0xba, 0x05, 0x2d, 0x4e, 0x17,
  4929  	0x27, 0xd2, 0xb3, 0x1b, 0x54, 0x09, 0xa1, 0x9b, 0xe0, 0x48, 0x96, 0x7b, 0x4e, 0x83, 0x51, 0x80,
  4930  	0xaa, 0xef, 0x94, 0x49, 0xc9, 0x52, 0xcf, 0x6d, 0x50, 0x15, 0x16, 0xfc, 0x64, 0xc3, 0xf6, 0x57,
  4931  	0x9c, 0xa6, 0x54, 0xd2, 0x53, 0x52, 0x0e, 0xd0, 0x43, 0xe8, 0x0a, 0xc9, 0x69, 0xb6, 0x90, 0x78,
  4932  	0x9a, 0x10, 0x9d, 0x45, 0x77, 0x74, 0xc3, 0xcc, 0xd1, 0x91, 0xa6, 0x8e, 0x15, 0x15, 0x35, 0x75,
  4933  	0xe8, 0x53, 0xd8, 0xce, 0x4d, 0xa0, 0x05, 0x67, 0x45, 0xee, 0xd9, 0xbe, 0x13, 0x76, 0x47, 0x37,
  4934  	0xcd, 0xcd, 0xd5, 0x33, 0xcf, 0x14, 0x1b, 0x5d, 0x50, 0xa3, 0x7b, 0xd0, 0x5d, 0x70, 0x9c, 0x15,
  4935  	0x09, 0xe6, 0x54, 0x2e, 0xf5, 0x30, 0xb4, 0x1e, 0x39, 0x0f, 0x86, 0xc3, 0xa8, 0x89, 0xa3, 0x01,
  4936  	0xf4, 0x62, 0x2c, 0xc9, 0xa4, 0xa9, 0x45, 0x5a, 0xeb, 0x3e, 0x18, 0x0e, 0x87, 0xd1, 0xff, 0x14,
  4937  	0xfb, 0xac, 0x71, 0xc1, 0x07, 0x48, 0xb0, 0x9c, 0xb0, 0xf9, 0x5c, 0x10, 0xe9, 0xdd, 0x50, 0xed,
  4938  	0x7d, 0x64, 0x0d, 0xa3, 0x4e, 0x82, 0xe5, 0x4b, 0x8d, 0x69, 0x05, 0xcb, 0x8c, 0x62, 0xb7, 0x56,
  4939  	0xb0, 0xac, 0x54, 0x04, 0x7f, 0x5b, 0x8d, 0x2a, 0xe9, 0xf4, 0x51, 0x08, 0xad, 0x8c, 0xc5, 0x44,
  4940  	0x78, 0x96, 0x76, 0xb9, 0x65, 0x5c, 0x1e, 0xb2, 0x98, 0x98, 0xc6, 0x68, 0x81, 0x52, 0xc6, 0x24,
  4941  	0x13, 0xc4, 0xb3, 0xd7, 0x37, 0xf2, 0x89, 0x02, 0x95, 0x5c, 0x44, 0xa5, 0x00, 0xdd, 0x03, 0xf7,
  4942  	0x2d, 0x5e, 0x0a, 0xcf, 0xd1, 0x21, 0xbb, 0x46, 0xf8, 0x0a, 0x2f, 0xcd, 0x14, 0x28, 0x1a, 0x7d,
  4943  	0x0c, 0x1d, 0x4e, 0x12, 0x3d, 0x40, 0xe5, 0xc6, 0x76, 0x47, 0x3d, 0xa3, 0x8d, 0x2a, 0xa2, 0xba,
  4944  	0x50, 0x0b, 0xd1, 0x27, 0x00, 0xb3, 0x13, 0x9c, 0x2d, 0x88, 0x20, 0xb2, 0xdc, 0xdd, 0xee, 0x68,
  4945  	0xc7, 0x5c, 0xfb, 0x4c, 0x33, 0x47, 0x44, 0x56, 0xf7, 0x1a, 0xd2, 0xe0, 0x36, 0x74, 0x1b, 0x4d,
  4946  	0x47, 0x5b, 0x60, 0x95, 0xa6, 0xb7, 0x22, 0x4b, 0x04, 0xbf, 0x59, 0xe0, 0xbe, 0xc8, 0xe6, 0x0c,
  4947  	0xed, 0xc1, 0xe6, 0x29, 0xe1, 0x82, 0xb2, 0x4c, 0x7f, 0x79, 0x5a, 0x8f, 0xec, 0xfb, 0x0f, 0x22,
  4948  	0x03, 0xa1, 0x00, 0x3a, 0xf5, 0xca, 0xda, 0x8d, 0x15, 0xab, 0x61, 0xa5, 0x59, 0xbd, 0xea, 0x39,
  4949  	0x4d, 0xcd, 0x0a, 0x56, 0x43, 0x5e, 0xd0, 0xd8, 0x73, 0xd5, 0x0b, 0x66, 0xc8, 0x0b, 0x1a, 0xa3,
  4950  	0x03, 0x68, 0x17, 0x82, 0xf0, 0x89, 0xa0, 0xb1, 0xd7, 0xf2, 0xad, 0xf0, 0x7a, 0x45, 0x6e, 0x2a,
  4951  	0xf4, 0x88, 0xc6, 0x68, 0x1f, 0x36, 0x4f, 0xa9, 0xa0, 0x6a, 0xa0, 0x37, 0x7c, 0x2b, 0x6c, 0x1b,
  4952  	0xbe, 0x02, 0x83, 0x5f, 0x2c, 0xe8, 0xe8, 0x86, 0x5c, 0x36, 0xe3, 0x84, 0xad, 0xb1, 0xdd, 0xb3,
  4953  	0x6a, 0x33, 0xfe, 0xba, 0x19, 0x27, 0x44, 0x9a, 0x6f, 0x58, 0xf1, 0xd7, 0xad, 0xac, 0x14, 0xb5,
  4954  	0x91, 0x5d, 0x63, 0xc4, 0x09, 0x77, 0x34, 0xa7, 0x6d, 0xdc, 0x59, 0xb3, 0x61, 0xa8, 0x95, 0x89,
  4955  	0xbd, 0xa6, 0x09, 0x27, 0x6c, 0x57, 0x69, 0x55, 0x16, 0xee, 0x42, 0x67, 0xd5, 0x46, 0xb4, 0x0b,
  4956  	0x36, 0x8d, 0xf5, 0xee, 0x9a, 0x2a, 0xda, 0x34, 0x0e, 0x7e, 0xb6, 0xc0, 0x55, 0x13, 0xd7, 0xa0,
  4957  	0x51, 0x4d, 0xa3, 0x9b, 0xe0, 0xbe, 0x26, 0x4b, 0xa1, 0x3d, 0x5d, 0xd7, 0xc1, 0xf5, 0x59, 0xe1,
  4958  	0xa7, 0x38, 0x29, 0xe7, 0xb2, 0xc2, 0xd5, 0x59, 0xfd, 0xd5, 0xd0, 0x6c, 0xce, 0x74, 0x3b, 0x1a,
  4959  	0x2b, 0xa0, 0x4a, 0x68, 0x06, 0x56, 0xf1, 0xaa, 0x6b, 0x09, 0x96, 0x5e, 0xbb, 0xf9, 0x69, 0x4a,
  4960  	0xb0, 0xee, 0x66, 0xc2, 0x32, 0xaf, 0xb3, 0x86, 0xb3, 0x2c, 0xf8, 0xd1, 0x02, 0xa8, 0xb7, 0x03,
  4961  	0xa1, 0x2a, 0x59, 0x53, 0x46, 0x95, 0xea, 0x00, 0x3a, 0x7a, 0x67, 0xf4, 0xfb, 0x2d, 0xfd, 0xfe,
  4962  	0xce, 0xda, 0x62, 0xa9, 0x24, 0xa2, 0x5a, 0xa3, 0x0a, 0x5e, 0xe6, 0x60, 0xa2, 0xe8, 0x0c, 0x76,
  4963  	0x4d, 0x06, 0x35, 0xca, 0x32, 0x74, 0x00, 0x1d, 0xe5, 0x7b, 0xa2, 0x4d, 0xc3, 0x6a, 0x00, 0xda,
  4964  	0x0a, 0xfc, 0x06, 0x27, 0x22, 0xf8, 0xce, 0x02, 0xe7, 0x15, 0x5e, 0x5e, 0x5d, 0xe5, 0x7f, 0xb1,
  4965  	0x8c, 0x2e, 0x27, 0x73, 0xd1, 0xf0, 0xa0, 0xcf, 0xc1, 0x0f, 0x36, 0xb4, 0xcd, 0xde, 0xff, 0xc7,
  4966  	0x29, 0x1d, 0x40, 0x87, 0xb3, 0x84, 0x08, 0x3d, 0xb1, 0xed, 0xba, 0x52, 0x1a, 0x54, 0x23, 0x7b,
  4967  	0x0b, 0x36, 0x52, 0x92, 0xd2, 0x58, 0x34, 0x6a, 0x5c, 0x21, 0xe8, 0x21, 0xb4, 0xe4, 0x32, 0x27,
  4968  	0x65, 0x89, 0xb7, 0x47, 0xb7, 0x2f, 0x7e, 0xc3, 0xfa, 0x5f, 0x12, 0xf5, 0x27, 0x7b, 0xbc, 0xcc,
  4969  	0x89, 0xbe, 0x57, 0xaa, 0x83, 0xfb, 0x00, 0x35, 0x81, 0xda, 0xe0, 0x1e, 0xbe, 0x7c, 0xf2, 0xb4,
  4970  	0x77, 0x0d, 0x6d, 0x82, 0xf3, 0xea, 0xf1, 0xb7, 0x3d, 0x0b, 0x6d, 0x41, 0x3b, 0x7a, 0xfa, 0xc5,
  4971  	0xe3, 0xe3, 0x17, 0x2f, 0x0f, 0x7b, 0xf6, 0xf8, 0xee, 0xbb, 0xf3, 0x7d, 0xeb, 0xf7, 0xf3, 0x7d,
  4972  	0xeb, 0xcf, 0xf3, 0x7d, 0xeb, 0xfb, 0xbf, 0xf6, 0xaf, 0xc1, 0xf5, 0x19, 0x67, 0x62, 0xba, 0xec,
  4973  	0x4f, 0x69, 0x86, 0xf9, 0xf2, 0xb9, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xee, 0x1f, 0xea,
  4974  	0x2a, 0xa6, 0x09, 0x00, 0x00,
  4975  }
  4976