sc2ai 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/sc2ai/protocol/data.proto +2 -2
- data/data/sc2ai/protocol/debug.proto +1 -1
- data/data/sc2ai/protocol/raw.proto +6 -6
- data/data/sc2ai/protocol/sc2api.proto +1 -1
- data/data/sc2ai/protocol/ui.proto +1 -1
- data/{lib/docker_build → docker_build}/Dockerfile.ruby +2 -2
- data/lib/sc2ai/cli/ladderzip.rb +1 -1
- data/lib/sc2ai/player/debug.rb +3 -3
- data/lib/sc2ai/protocol/common_pb.rb +266 -42
- data/lib/sc2ai/protocol/data_pb.rb +333 -192
- data/lib/sc2ai/protocol/debug_pb.rb +598 -233
- data/lib/sc2ai/protocol/query_pb.rb +304 -48
- data/lib/sc2ai/protocol/raw_pb.rb +955 -858
- data/lib/sc2ai/protocol/sc2api_pb.rb +2460 -512
- data/lib/sc2ai/protocol/score_pb.rb +152 -24
- data/lib/sc2ai/protocol/spatial_pb.rb +342 -54
- data/lib/sc2ai/protocol/ui_pb.rb +750 -256
- data/lib/sc2ai/version.rb +1 -1
- data/lib/templates/new/api/data.proto +2 -2
- data/lib/templates/new/api/debug.proto +1 -1
- data/lib/templates/new/api/raw.proto +6 -6
- data/lib/templates/new/api/sc2api.proto +1 -1
- data/lib/templates/new/api/ui.proto +1 -1
- data/lib/templates/new/run_example_match.rb.tt +1 -1
- metadata +7 -7
- /data/{lib/docker_build → docker_build}/docker-compose-base-image.yml +0 -0
- /data/{lib/docker_build → docker_build}/docker-compose-ladderzip.yml +0 -0
@@ -306,20 +306,38 @@ module Api
|
|
306
306
|
# unexpected, so discard it and continue.
|
307
307
|
if !found
|
308
308
|
wire_type = tag & 0x7
|
309
|
+
|
310
|
+
unknown_bytes = +"".b
|
311
|
+
val = tag
|
312
|
+
while val != 0
|
313
|
+
byte = val & 0x7F
|
314
|
+
|
315
|
+
val >>= 7
|
316
|
+
# This drops the top bits,
|
317
|
+
# Otherwise, with a signed right shift,
|
318
|
+
# we get infinity one bits at the top
|
319
|
+
val &= (1 << 57) - 1
|
320
|
+
|
321
|
+
byte |= 0x80 if val != 0
|
322
|
+
unknown_bytes << byte
|
323
|
+
end
|
324
|
+
|
309
325
|
case wire_type
|
310
326
|
when 0
|
311
327
|
i = 0
|
312
328
|
while true
|
313
329
|
newbyte = buff.getbyte(index)
|
314
330
|
index += 1
|
315
|
-
break if newbyte.nil?
|
331
|
+
break if newbyte.nil?
|
332
|
+
unknown_bytes << newbyte
|
333
|
+
break if newbyte < 0x80
|
316
334
|
i += 1
|
317
335
|
break if i > 9
|
318
336
|
end
|
319
337
|
when 1
|
338
|
+
unknown_bytes << buff.byteslice(index, 8)
|
320
339
|
index += 8
|
321
340
|
when 2
|
322
|
-
## PULL_BYTES
|
323
341
|
value =
|
324
342
|
if (byte0 = buff.getbyte(index)) < 0x80
|
325
343
|
index += 1
|
@@ -375,15 +393,29 @@ module Api
|
|
375
393
|
raise "integer decoding error"
|
376
394
|
end
|
377
395
|
|
378
|
-
|
379
|
-
|
396
|
+
val = value
|
397
|
+
while val != 0
|
398
|
+
byte = val & 0x7F
|
380
399
|
|
381
|
-
|
400
|
+
val >>= 7
|
401
|
+
# This drops the top bits,
|
402
|
+
# Otherwise, with a signed right shift,
|
403
|
+
# we get infinity one bits at the top
|
404
|
+
val &= (1 << 57) - 1
|
405
|
+
|
406
|
+
byte |= 0x80 if val != 0
|
407
|
+
unknown_bytes << byte
|
408
|
+
end
|
409
|
+
|
410
|
+
unknown_bytes << buff.byteslice(index, value)
|
411
|
+
index += value
|
382
412
|
when 5
|
413
|
+
unknown_bytes << buff.byteslice(index, 4)
|
383
414
|
index += 4
|
384
415
|
else
|
385
416
|
raise "unknown wire type #{wire_type}"
|
386
417
|
end
|
418
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
387
419
|
return self if index >= len
|
388
420
|
## PULL_UINT64
|
389
421
|
tag =
|
@@ -1437,7 +1469,7 @@ module Api
|
|
1437
1469
|
end
|
1438
1470
|
end
|
1439
1471
|
end
|
1440
|
-
|
1472
|
+
buff << @_unknown_fields if @_unknown_fields
|
1441
1473
|
buff
|
1442
1474
|
end
|
1443
1475
|
|
@@ -1629,20 +1661,38 @@ module Api
|
|
1629
1661
|
# unexpected, so discard it and continue.
|
1630
1662
|
if !found
|
1631
1663
|
wire_type = tag & 0x7
|
1664
|
+
|
1665
|
+
unknown_bytes = +"".b
|
1666
|
+
val = tag
|
1667
|
+
while val != 0
|
1668
|
+
byte = val & 0x7F
|
1669
|
+
|
1670
|
+
val >>= 7
|
1671
|
+
# This drops the top bits,
|
1672
|
+
# Otherwise, with a signed right shift,
|
1673
|
+
# we get infinity one bits at the top
|
1674
|
+
val &= (1 << 57) - 1
|
1675
|
+
|
1676
|
+
byte |= 0x80 if val != 0
|
1677
|
+
unknown_bytes << byte
|
1678
|
+
end
|
1679
|
+
|
1632
1680
|
case wire_type
|
1633
1681
|
when 0
|
1634
1682
|
i = 0
|
1635
1683
|
while true
|
1636
1684
|
newbyte = buff.getbyte(index)
|
1637
1685
|
index += 1
|
1638
|
-
break if newbyte.nil?
|
1686
|
+
break if newbyte.nil?
|
1687
|
+
unknown_bytes << newbyte
|
1688
|
+
break if newbyte < 0x80
|
1639
1689
|
i += 1
|
1640
1690
|
break if i > 9
|
1641
1691
|
end
|
1642
1692
|
when 1
|
1693
|
+
unknown_bytes << buff.byteslice(index, 8)
|
1643
1694
|
index += 8
|
1644
1695
|
when 2
|
1645
|
-
## PULL_BYTES
|
1646
1696
|
value =
|
1647
1697
|
if (byte0 = buff.getbyte(index)) < 0x80
|
1648
1698
|
index += 1
|
@@ -1698,15 +1748,29 @@ module Api
|
|
1698
1748
|
raise "integer decoding error"
|
1699
1749
|
end
|
1700
1750
|
|
1701
|
-
|
1702
|
-
|
1751
|
+
val = value
|
1752
|
+
while val != 0
|
1753
|
+
byte = val & 0x7F
|
1754
|
+
|
1755
|
+
val >>= 7
|
1756
|
+
# This drops the top bits,
|
1757
|
+
# Otherwise, with a signed right shift,
|
1758
|
+
# we get infinity one bits at the top
|
1759
|
+
val &= (1 << 57) - 1
|
1703
1760
|
|
1704
|
-
|
1761
|
+
byte |= 0x80 if val != 0
|
1762
|
+
unknown_bytes << byte
|
1763
|
+
end
|
1764
|
+
|
1765
|
+
unknown_bytes << buff.byteslice(index, value)
|
1766
|
+
index += value
|
1705
1767
|
when 5
|
1768
|
+
unknown_bytes << buff.byteslice(index, 4)
|
1706
1769
|
index += 4
|
1707
1770
|
else
|
1708
1771
|
raise "unknown wire type #{wire_type}"
|
1709
1772
|
end
|
1773
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
1710
1774
|
return self if index >= len
|
1711
1775
|
## PULL_UINT64
|
1712
1776
|
tag =
|
@@ -2816,7 +2880,7 @@ module Api
|
|
2816
2880
|
end
|
2817
2881
|
end
|
2818
2882
|
end
|
2819
|
-
|
2883
|
+
buff << @_unknown_fields if @_unknown_fields
|
2820
2884
|
buff
|
2821
2885
|
end
|
2822
2886
|
|
@@ -2955,20 +3019,38 @@ module Api
|
|
2955
3019
|
# unexpected, so discard it and continue.
|
2956
3020
|
if !found
|
2957
3021
|
wire_type = tag & 0x7
|
3022
|
+
|
3023
|
+
unknown_bytes = +"".b
|
3024
|
+
val = tag
|
3025
|
+
while val != 0
|
3026
|
+
byte = val & 0x7F
|
3027
|
+
|
3028
|
+
val >>= 7
|
3029
|
+
# This drops the top bits,
|
3030
|
+
# Otherwise, with a signed right shift,
|
3031
|
+
# we get infinity one bits at the top
|
3032
|
+
val &= (1 << 57) - 1
|
3033
|
+
|
3034
|
+
byte |= 0x80 if val != 0
|
3035
|
+
unknown_bytes << byte
|
3036
|
+
end
|
3037
|
+
|
2958
3038
|
case wire_type
|
2959
3039
|
when 0
|
2960
3040
|
i = 0
|
2961
3041
|
while true
|
2962
3042
|
newbyte = buff.getbyte(index)
|
2963
3043
|
index += 1
|
2964
|
-
break if newbyte.nil?
|
3044
|
+
break if newbyte.nil?
|
3045
|
+
unknown_bytes << newbyte
|
3046
|
+
break if newbyte < 0x80
|
2965
3047
|
i += 1
|
2966
3048
|
break if i > 9
|
2967
3049
|
end
|
2968
3050
|
when 1
|
3051
|
+
unknown_bytes << buff.byteslice(index, 8)
|
2969
3052
|
index += 8
|
2970
3053
|
when 2
|
2971
|
-
## PULL_BYTES
|
2972
3054
|
value =
|
2973
3055
|
if (byte0 = buff.getbyte(index)) < 0x80
|
2974
3056
|
index += 1
|
@@ -3024,15 +3106,29 @@ module Api
|
|
3024
3106
|
raise "integer decoding error"
|
3025
3107
|
end
|
3026
3108
|
|
3027
|
-
|
3028
|
-
|
3109
|
+
val = value
|
3110
|
+
while val != 0
|
3111
|
+
byte = val & 0x7F
|
3112
|
+
|
3113
|
+
val >>= 7
|
3114
|
+
# This drops the top bits,
|
3115
|
+
# Otherwise, with a signed right shift,
|
3116
|
+
# we get infinity one bits at the top
|
3117
|
+
val &= (1 << 57) - 1
|
3118
|
+
|
3119
|
+
byte |= 0x80 if val != 0
|
3120
|
+
unknown_bytes << byte
|
3121
|
+
end
|
3029
3122
|
|
3030
|
-
|
3123
|
+
unknown_bytes << buff.byteslice(index, value)
|
3124
|
+
index += value
|
3031
3125
|
when 5
|
3126
|
+
unknown_bytes << buff.byteslice(index, 4)
|
3032
3127
|
index += 4
|
3033
3128
|
else
|
3034
3129
|
raise "unknown wire type #{wire_type}"
|
3035
3130
|
end
|
3131
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
3036
3132
|
return self if index >= len
|
3037
3133
|
## PULL_UINT64
|
3038
3134
|
tag =
|
@@ -3317,7 +3413,7 @@ module Api
|
|
3317
3413
|
|
3318
3414
|
[val].pack("e", buffer: buff)
|
3319
3415
|
end
|
3320
|
-
|
3416
|
+
buff << @_unknown_fields if @_unknown_fields
|
3321
3417
|
buff
|
3322
3418
|
end
|
3323
3419
|
|
@@ -3480,20 +3576,38 @@ module Api
|
|
3480
3576
|
# unexpected, so discard it and continue.
|
3481
3577
|
if !found
|
3482
3578
|
wire_type = tag & 0x7
|
3579
|
+
|
3580
|
+
unknown_bytes = +"".b
|
3581
|
+
val = tag
|
3582
|
+
while val != 0
|
3583
|
+
byte = val & 0x7F
|
3584
|
+
|
3585
|
+
val >>= 7
|
3586
|
+
# This drops the top bits,
|
3587
|
+
# Otherwise, with a signed right shift,
|
3588
|
+
# we get infinity one bits at the top
|
3589
|
+
val &= (1 << 57) - 1
|
3590
|
+
|
3591
|
+
byte |= 0x80 if val != 0
|
3592
|
+
unknown_bytes << byte
|
3593
|
+
end
|
3594
|
+
|
3483
3595
|
case wire_type
|
3484
3596
|
when 0
|
3485
3597
|
i = 0
|
3486
3598
|
while true
|
3487
3599
|
newbyte = buff.getbyte(index)
|
3488
3600
|
index += 1
|
3489
|
-
break if newbyte.nil?
|
3601
|
+
break if newbyte.nil?
|
3602
|
+
unknown_bytes << newbyte
|
3603
|
+
break if newbyte < 0x80
|
3490
3604
|
i += 1
|
3491
3605
|
break if i > 9
|
3492
3606
|
end
|
3493
3607
|
when 1
|
3608
|
+
unknown_bytes << buff.byteslice(index, 8)
|
3494
3609
|
index += 8
|
3495
3610
|
when 2
|
3496
|
-
## PULL_BYTES
|
3497
3611
|
value =
|
3498
3612
|
if (byte0 = buff.getbyte(index)) < 0x80
|
3499
3613
|
index += 1
|
@@ -3549,15 +3663,29 @@ module Api
|
|
3549
3663
|
raise "integer decoding error"
|
3550
3664
|
end
|
3551
3665
|
|
3552
|
-
|
3553
|
-
|
3666
|
+
val = value
|
3667
|
+
while val != 0
|
3668
|
+
byte = val & 0x7F
|
3669
|
+
|
3670
|
+
val >>= 7
|
3671
|
+
# This drops the top bits,
|
3672
|
+
# Otherwise, with a signed right shift,
|
3673
|
+
# we get infinity one bits at the top
|
3674
|
+
val &= (1 << 57) - 1
|
3554
3675
|
|
3555
|
-
|
3676
|
+
byte |= 0x80 if val != 0
|
3677
|
+
unknown_bytes << byte
|
3678
|
+
end
|
3679
|
+
|
3680
|
+
unknown_bytes << buff.byteslice(index, value)
|
3681
|
+
index += value
|
3556
3682
|
when 5
|
3683
|
+
unknown_bytes << buff.byteslice(index, 4)
|
3557
3684
|
index += 4
|
3558
3685
|
else
|
3559
3686
|
raise "unknown wire type #{wire_type}"
|
3560
3687
|
end
|
3688
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
3561
3689
|
return self if index >= len
|
3562
3690
|
## PULL_UINT64
|
3563
3691
|
tag =
|
@@ -3962,7 +4090,7 @@ module Api
|
|
3962
4090
|
buff << byte
|
3963
4091
|
end
|
3964
4092
|
end
|
3965
|
-
|
4093
|
+
buff << @_unknown_fields if @_unknown_fields
|
3966
4094
|
buff
|
3967
4095
|
end
|
3968
4096
|
|
@@ -4110,20 +4238,38 @@ module Api
|
|
4110
4238
|
# unexpected, so discard it and continue.
|
4111
4239
|
if !found
|
4112
4240
|
wire_type = tag & 0x7
|
4241
|
+
|
4242
|
+
unknown_bytes = +"".b
|
4243
|
+
val = tag
|
4244
|
+
while val != 0
|
4245
|
+
byte = val & 0x7F
|
4246
|
+
|
4247
|
+
val >>= 7
|
4248
|
+
# This drops the top bits,
|
4249
|
+
# Otherwise, with a signed right shift,
|
4250
|
+
# we get infinity one bits at the top
|
4251
|
+
val &= (1 << 57) - 1
|
4252
|
+
|
4253
|
+
byte |= 0x80 if val != 0
|
4254
|
+
unknown_bytes << byte
|
4255
|
+
end
|
4256
|
+
|
4113
4257
|
case wire_type
|
4114
4258
|
when 0
|
4115
4259
|
i = 0
|
4116
4260
|
while true
|
4117
4261
|
newbyte = buff.getbyte(index)
|
4118
4262
|
index += 1
|
4119
|
-
break if newbyte.nil?
|
4263
|
+
break if newbyte.nil?
|
4264
|
+
unknown_bytes << newbyte
|
4265
|
+
break if newbyte < 0x80
|
4120
4266
|
i += 1
|
4121
4267
|
break if i > 9
|
4122
4268
|
end
|
4123
4269
|
when 1
|
4270
|
+
unknown_bytes << buff.byteslice(index, 8)
|
4124
4271
|
index += 8
|
4125
4272
|
when 2
|
4126
|
-
## PULL_BYTES
|
4127
4273
|
value =
|
4128
4274
|
if (byte0 = buff.getbyte(index)) < 0x80
|
4129
4275
|
index += 1
|
@@ -4179,15 +4325,29 @@ module Api
|
|
4179
4325
|
raise "integer decoding error"
|
4180
4326
|
end
|
4181
4327
|
|
4182
|
-
|
4183
|
-
|
4328
|
+
val = value
|
4329
|
+
while val != 0
|
4330
|
+
byte = val & 0x7F
|
4184
4331
|
|
4185
|
-
|
4332
|
+
val >>= 7
|
4333
|
+
# This drops the top bits,
|
4334
|
+
# Otherwise, with a signed right shift,
|
4335
|
+
# we get infinity one bits at the top
|
4336
|
+
val &= (1 << 57) - 1
|
4337
|
+
|
4338
|
+
byte |= 0x80 if val != 0
|
4339
|
+
unknown_bytes << byte
|
4340
|
+
end
|
4341
|
+
|
4342
|
+
unknown_bytes << buff.byteslice(index, value)
|
4343
|
+
index += value
|
4186
4344
|
when 5
|
4345
|
+
unknown_bytes << buff.byteslice(index, 4)
|
4187
4346
|
index += 4
|
4188
4347
|
else
|
4189
4348
|
raise "unknown wire type #{wire_type}"
|
4190
4349
|
end
|
4350
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
4191
4351
|
return self if index >= len
|
4192
4352
|
## PULL_UINT64
|
4193
4353
|
tag =
|
@@ -4492,64 +4652,11 @@ module Api
|
|
4492
4652
|
|
4493
4653
|
## END PULL_UINT64
|
4494
4654
|
end
|
4495
|
-
if tag ==
|
4655
|
+
if tag == 0x18
|
4496
4656
|
found = true
|
4497
|
-
##
|
4498
|
-
value =
|
4499
|
-
if (byte0 = buff.getbyte(index)) < 0x80
|
4500
|
-
index += 1
|
4501
|
-
byte0
|
4502
|
-
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
4503
|
-
index += 2
|
4504
|
-
(byte1 << 7) | (byte0 & 0x7F)
|
4505
|
-
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
4506
|
-
index += 3
|
4507
|
-
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4508
|
-
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
4509
|
-
index += 4
|
4510
|
-
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
4511
|
-
(byte0 & 0x7F)
|
4512
|
-
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
4513
|
-
index += 5
|
4514
|
-
(byte4 << 28) | ((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
4515
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4516
|
-
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
4517
|
-
index += 6
|
4518
|
-
(byte5 << 35) | ((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
4519
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4520
|
-
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
4521
|
-
index += 7
|
4522
|
-
(byte6 << 42) | ((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
4523
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
4524
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4525
|
-
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
4526
|
-
index += 8
|
4527
|
-
(byte7 << 49) | ((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
4528
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
4529
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4530
|
-
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
4531
|
-
index += 9
|
4532
|
-
(byte8 << 56) | ((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
4533
|
-
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
4534
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
4535
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4536
|
-
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
4537
|
-
index += 10
|
4538
|
-
|
4539
|
-
(byte9 << 63) | ((byte8 & 0x7F) << 56) | ((byte7 & 0x7F) << 49) |
|
4540
|
-
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
4541
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
4542
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4543
|
-
else
|
4544
|
-
raise "integer decoding error"
|
4545
|
-
end
|
4546
|
-
|
4547
|
-
## END PULL_UINT64
|
4548
|
-
|
4549
|
-
goal = index + value
|
4657
|
+
## DECODE REPEATED
|
4550
4658
|
list = @upgrade_ids
|
4551
4659
|
while true
|
4552
|
-
break if index >= goal
|
4553
4660
|
## PULL_UINT64
|
4554
4661
|
list << if (byte0 = buff.getbyte(index)) < 0x80
|
4555
4662
|
index += 1
|
@@ -4600,60 +4707,71 @@ module Api
|
|
4600
4707
|
end
|
4601
4708
|
|
4602
4709
|
## END PULL_UINT64
|
4603
|
-
end
|
4604
4710
|
|
4605
|
-
|
4606
|
-
|
4607
|
-
|
4608
|
-
|
4609
|
-
|
4610
|
-
|
4611
|
-
|
4612
|
-
|
4613
|
-
|
4614
|
-
|
4615
|
-
|
4616
|
-
|
4617
|
-
|
4618
|
-
|
4619
|
-
|
4620
|
-
|
4621
|
-
|
4622
|
-
|
4623
|
-
|
4624
|
-
|
4625
|
-
|
4626
|
-
index
|
4627
|
-
|
4628
|
-
(
|
4629
|
-
|
4630
|
-
|
4631
|
-
(byte6
|
4632
|
-
|
4633
|
-
(
|
4634
|
-
|
4635
|
-
|
4636
|
-
|
4637
|
-
|
4638
|
-
|
4639
|
-
|
4640
|
-
|
4641
|
-
|
4642
|
-
|
4643
|
-
|
4644
|
-
|
4645
|
-
|
4646
|
-
|
4711
|
+
return self if index >= len
|
4712
|
+
## PULL_UINT64
|
4713
|
+
tag =
|
4714
|
+
if (byte0 = buff.getbyte(index)) < 0x80
|
4715
|
+
index += 1
|
4716
|
+
byte0
|
4717
|
+
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
4718
|
+
index += 2
|
4719
|
+
(byte1 << 7) | (byte0 & 0x7F)
|
4720
|
+
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
4721
|
+
index += 3
|
4722
|
+
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4723
|
+
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
4724
|
+
index += 4
|
4725
|
+
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
4726
|
+
(byte0 & 0x7F)
|
4727
|
+
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
4728
|
+
index += 5
|
4729
|
+
(byte4 << 28) | ((byte3 & 0x7F) << 21) |
|
4730
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
4731
|
+
(byte0 & 0x7F)
|
4732
|
+
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
4733
|
+
index += 6
|
4734
|
+
(byte5 << 35) | ((byte4 & 0x7F) << 28) |
|
4735
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
4736
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4737
|
+
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
4738
|
+
index += 7
|
4739
|
+
(byte6 << 42) | ((byte5 & 0x7F) << 35) |
|
4740
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
4741
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
4742
|
+
(byte0 & 0x7F)
|
4743
|
+
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
4744
|
+
index += 8
|
4745
|
+
(byte7 << 49) | ((byte6 & 0x7F) << 42) |
|
4746
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
4747
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
4748
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4749
|
+
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
4750
|
+
index += 9
|
4751
|
+
(byte8 << 56) | ((byte7 & 0x7F) << 49) |
|
4752
|
+
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
4753
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
4754
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
4755
|
+
(byte0 & 0x7F)
|
4756
|
+
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
4757
|
+
index += 10
|
4647
4758
|
|
4648
|
-
|
4649
|
-
|
4650
|
-
|
4651
|
-
|
4652
|
-
|
4653
|
-
|
4654
|
-
|
4759
|
+
(byte9 << 63) | ((byte8 & 0x7F) << 56) |
|
4760
|
+
((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
4761
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
4762
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
4763
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
4764
|
+
else
|
4765
|
+
raise "integer decoding error"
|
4766
|
+
end
|
4655
4767
|
|
4656
|
-
|
4768
|
+
## END PULL_UINT64
|
4769
|
+
|
4770
|
+
break unless tag == 0x18
|
4771
|
+
end
|
4772
|
+
## END DECODE REPEATED
|
4773
|
+
|
4774
|
+
return self if index >= len
|
4657
4775
|
end
|
4658
4776
|
|
4659
4777
|
return self if index >= len
|
@@ -4763,18 +4881,11 @@ module Api
|
|
4763
4881
|
|
4764
4882
|
list = @upgrade_ids
|
4765
4883
|
if list.size > 0
|
4766
|
-
buff << 0x1a
|
4767
|
-
|
4768
|
-
# Save the buffer size before appending the repeated bytes
|
4769
|
-
current_len = buff.bytesize
|
4770
|
-
|
4771
|
-
# Write a single dummy byte to later store encoded length
|
4772
|
-
buff << 42 # "*"
|
4773
|
-
|
4774
|
-
# write each item
|
4775
4884
|
list.each do |item|
|
4776
4885
|
val = item
|
4777
4886
|
if val != 0
|
4887
|
+
buff << 0x18
|
4888
|
+
|
4778
4889
|
while val != 0
|
4779
4890
|
byte = val & 0x7F
|
4780
4891
|
val >>= 7
|
@@ -4783,44 +4894,10 @@ module Api
|
|
4783
4894
|
end
|
4784
4895
|
end
|
4785
4896
|
end
|
4786
|
-
|
4787
|
-
|
4788
|
-
|
4789
|
-
|
4790
|
-
# Hope the size fits in one byte
|
4791
|
-
byte = submessage_size & 0x7F
|
4792
|
-
submessage_size >>= 7
|
4793
|
-
byte |= 0x80 if submessage_size > 0
|
4794
|
-
buff.setbyte(current_len, byte)
|
4795
|
-
|
4796
|
-
# If the sub message was bigger
|
4797
|
-
if submessage_size > 0
|
4798
|
-
current_len += 1
|
4799
|
-
|
4800
|
-
# compute how much we need to shift
|
4801
|
-
encoded_int_len = 0
|
4802
|
-
remaining_size = submessage_size
|
4803
|
-
while remaining_size != 0
|
4804
|
-
remaining_size >>= 7
|
4805
|
-
encoded_int_len += 1
|
4806
|
-
end
|
4807
|
-
|
4808
|
-
# Make space in the string with dummy bytes
|
4809
|
-
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
|
4810
|
-
|
4811
|
-
# Overwrite the dummy bytes with the encoded length
|
4812
|
-
while submessage_size != 0
|
4813
|
-
byte = submessage_size & 0x7F
|
4814
|
-
submessage_size >>= 7
|
4815
|
-
byte |= 0x80 if submessage_size > 0
|
4816
|
-
buff.setbyte(current_len, byte)
|
4817
|
-
current_len += 1
|
4818
|
-
end
|
4819
|
-
end
|
4820
|
-
end
|
4821
|
-
|
4822
|
-
buff
|
4823
|
-
end
|
4897
|
+
end
|
4898
|
+
buff << @_unknown_fields if @_unknown_fields
|
4899
|
+
buff
|
4900
|
+
end
|
4824
4901
|
|
4825
4902
|
def to_h
|
4826
4903
|
result = {}
|
@@ -5017,20 +5094,38 @@ module Api
|
|
5017
5094
|
# unexpected, so discard it and continue.
|
5018
5095
|
if !found
|
5019
5096
|
wire_type = tag & 0x7
|
5097
|
+
|
5098
|
+
unknown_bytes = +"".b
|
5099
|
+
val = tag
|
5100
|
+
while val != 0
|
5101
|
+
byte = val & 0x7F
|
5102
|
+
|
5103
|
+
val >>= 7
|
5104
|
+
# This drops the top bits,
|
5105
|
+
# Otherwise, with a signed right shift,
|
5106
|
+
# we get infinity one bits at the top
|
5107
|
+
val &= (1 << 57) - 1
|
5108
|
+
|
5109
|
+
byte |= 0x80 if val != 0
|
5110
|
+
unknown_bytes << byte
|
5111
|
+
end
|
5112
|
+
|
5020
5113
|
case wire_type
|
5021
5114
|
when 0
|
5022
5115
|
i = 0
|
5023
5116
|
while true
|
5024
5117
|
newbyte = buff.getbyte(index)
|
5025
5118
|
index += 1
|
5026
|
-
break if newbyte.nil?
|
5119
|
+
break if newbyte.nil?
|
5120
|
+
unknown_bytes << newbyte
|
5121
|
+
break if newbyte < 0x80
|
5027
5122
|
i += 1
|
5028
5123
|
break if i > 9
|
5029
5124
|
end
|
5030
5125
|
when 1
|
5126
|
+
unknown_bytes << buff.byteslice(index, 8)
|
5031
5127
|
index += 8
|
5032
5128
|
when 2
|
5033
|
-
## PULL_BYTES
|
5034
5129
|
value =
|
5035
5130
|
if (byte0 = buff.getbyte(index)) < 0x80
|
5036
5131
|
index += 1
|
@@ -5086,15 +5181,29 @@ module Api
|
|
5086
5181
|
raise "integer decoding error"
|
5087
5182
|
end
|
5088
5183
|
|
5089
|
-
|
5090
|
-
|
5184
|
+
val = value
|
5185
|
+
while val != 0
|
5186
|
+
byte = val & 0x7F
|
5187
|
+
|
5188
|
+
val >>= 7
|
5189
|
+
# This drops the top bits,
|
5190
|
+
# Otherwise, with a signed right shift,
|
5191
|
+
# we get infinity one bits at the top
|
5192
|
+
val &= (1 << 57) - 1
|
5193
|
+
|
5194
|
+
byte |= 0x80 if val != 0
|
5195
|
+
unknown_bytes << byte
|
5196
|
+
end
|
5091
5197
|
|
5092
|
-
|
5198
|
+
unknown_bytes << buff.byteslice(index, value)
|
5199
|
+
index += value
|
5093
5200
|
when 5
|
5201
|
+
unknown_bytes << buff.byteslice(index, 4)
|
5094
5202
|
index += 4
|
5095
5203
|
else
|
5096
5204
|
raise "unknown wire type #{wire_type}"
|
5097
5205
|
end
|
5206
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
5098
5207
|
return self if index >= len
|
5099
5208
|
## PULL_UINT64
|
5100
5209
|
tag =
|
@@ -5620,7 +5729,7 @@ module Api
|
|
5620
5729
|
|
5621
5730
|
[val].pack("e", buffer: buff)
|
5622
5731
|
end
|
5623
|
-
|
5732
|
+
buff << @_unknown_fields if @_unknown_fields
|
5624
5733
|
buff
|
5625
5734
|
end
|
5626
5735
|
|
@@ -5897,20 +6006,38 @@ module Api
|
|
5897
6006
|
# unexpected, so discard it and continue.
|
5898
6007
|
if !found
|
5899
6008
|
wire_type = tag & 0x7
|
6009
|
+
|
6010
|
+
unknown_bytes = +"".b
|
6011
|
+
val = tag
|
6012
|
+
while val != 0
|
6013
|
+
byte = val & 0x7F
|
6014
|
+
|
6015
|
+
val >>= 7
|
6016
|
+
# This drops the top bits,
|
6017
|
+
# Otherwise, with a signed right shift,
|
6018
|
+
# we get infinity one bits at the top
|
6019
|
+
val &= (1 << 57) - 1
|
6020
|
+
|
6021
|
+
byte |= 0x80 if val != 0
|
6022
|
+
unknown_bytes << byte
|
6023
|
+
end
|
6024
|
+
|
5900
6025
|
case wire_type
|
5901
6026
|
when 0
|
5902
6027
|
i = 0
|
5903
6028
|
while true
|
5904
6029
|
newbyte = buff.getbyte(index)
|
5905
6030
|
index += 1
|
5906
|
-
break if newbyte.nil?
|
6031
|
+
break if newbyte.nil?
|
6032
|
+
unknown_bytes << newbyte
|
6033
|
+
break if newbyte < 0x80
|
5907
6034
|
i += 1
|
5908
6035
|
break if i > 9
|
5909
6036
|
end
|
5910
6037
|
when 1
|
6038
|
+
unknown_bytes << buff.byteslice(index, 8)
|
5911
6039
|
index += 8
|
5912
6040
|
when 2
|
5913
|
-
## PULL_BYTES
|
5914
6041
|
value =
|
5915
6042
|
if (byte0 = buff.getbyte(index)) < 0x80
|
5916
6043
|
index += 1
|
@@ -5966,15 +6093,29 @@ module Api
|
|
5966
6093
|
raise "integer decoding error"
|
5967
6094
|
end
|
5968
6095
|
|
5969
|
-
|
5970
|
-
|
6096
|
+
val = value
|
6097
|
+
while val != 0
|
6098
|
+
byte = val & 0x7F
|
6099
|
+
|
6100
|
+
val >>= 7
|
6101
|
+
# This drops the top bits,
|
6102
|
+
# Otherwise, with a signed right shift,
|
6103
|
+
# we get infinity one bits at the top
|
6104
|
+
val &= (1 << 57) - 1
|
5971
6105
|
|
5972
|
-
|
6106
|
+
byte |= 0x80 if val != 0
|
6107
|
+
unknown_bytes << byte
|
6108
|
+
end
|
6109
|
+
|
6110
|
+
unknown_bytes << buff.byteslice(index, value)
|
6111
|
+
index += value
|
5973
6112
|
when 5
|
6113
|
+
unknown_bytes << buff.byteslice(index, 4)
|
5974
6114
|
index += 4
|
5975
6115
|
else
|
5976
6116
|
raise "unknown wire type #{wire_type}"
|
5977
6117
|
end
|
6118
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
5978
6119
|
return self if index >= len
|
5979
6120
|
## PULL_UINT64
|
5980
6121
|
tag =
|
@@ -6664,7 +6805,7 @@ module Api
|
|
6664
6805
|
buff << byte
|
6665
6806
|
end
|
6666
6807
|
end
|
6667
|
-
|
6808
|
+
buff << @_unknown_fields if @_unknown_fields
|
6668
6809
|
buff
|
6669
6810
|
end
|
6670
6811
|
|
@@ -6814,20 +6955,38 @@ module Api
|
|
6814
6955
|
# unexpected, so discard it and continue.
|
6815
6956
|
if !found
|
6816
6957
|
wire_type = tag & 0x7
|
6958
|
+
|
6959
|
+
unknown_bytes = +"".b
|
6960
|
+
val = tag
|
6961
|
+
while val != 0
|
6962
|
+
byte = val & 0x7F
|
6963
|
+
|
6964
|
+
val >>= 7
|
6965
|
+
# This drops the top bits,
|
6966
|
+
# Otherwise, with a signed right shift,
|
6967
|
+
# we get infinity one bits at the top
|
6968
|
+
val &= (1 << 57) - 1
|
6969
|
+
|
6970
|
+
byte |= 0x80 if val != 0
|
6971
|
+
unknown_bytes << byte
|
6972
|
+
end
|
6973
|
+
|
6817
6974
|
case wire_type
|
6818
6975
|
when 0
|
6819
6976
|
i = 0
|
6820
6977
|
while true
|
6821
6978
|
newbyte = buff.getbyte(index)
|
6822
6979
|
index += 1
|
6823
|
-
break if newbyte.nil?
|
6980
|
+
break if newbyte.nil?
|
6981
|
+
unknown_bytes << newbyte
|
6982
|
+
break if newbyte < 0x80
|
6824
6983
|
i += 1
|
6825
6984
|
break if i > 9
|
6826
6985
|
end
|
6827
6986
|
when 1
|
6987
|
+
unknown_bytes << buff.byteslice(index, 8)
|
6828
6988
|
index += 8
|
6829
6989
|
when 2
|
6830
|
-
## PULL_BYTES
|
6831
6990
|
value =
|
6832
6991
|
if (byte0 = buff.getbyte(index)) < 0x80
|
6833
6992
|
index += 1
|
@@ -6883,15 +7042,29 @@ module Api
|
|
6883
7042
|
raise "integer decoding error"
|
6884
7043
|
end
|
6885
7044
|
|
6886
|
-
|
6887
|
-
|
7045
|
+
val = value
|
7046
|
+
while val != 0
|
7047
|
+
byte = val & 0x7F
|
6888
7048
|
|
6889
|
-
|
7049
|
+
val >>= 7
|
7050
|
+
# This drops the top bits,
|
7051
|
+
# Otherwise, with a signed right shift,
|
7052
|
+
# we get infinity one bits at the top
|
7053
|
+
val &= (1 << 57) - 1
|
7054
|
+
|
7055
|
+
byte |= 0x80 if val != 0
|
7056
|
+
unknown_bytes << byte
|
7057
|
+
end
|
7058
|
+
|
7059
|
+
unknown_bytes << buff.byteslice(index, value)
|
7060
|
+
index += value
|
6890
7061
|
when 5
|
7062
|
+
unknown_bytes << buff.byteslice(index, 4)
|
6891
7063
|
index += 4
|
6892
7064
|
else
|
6893
7065
|
raise "unknown wire type #{wire_type}"
|
6894
7066
|
end
|
7067
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
6895
7068
|
return self if index >= len
|
6896
7069
|
## PULL_UINT64
|
6897
7070
|
tag =
|
@@ -7232,7 +7405,7 @@ module Api
|
|
7232
7405
|
buff << byte
|
7233
7406
|
end
|
7234
7407
|
end
|
7235
|
-
|
7408
|
+
buff << @_unknown_fields if @_unknown_fields
|
7236
7409
|
buff
|
7237
7410
|
end
|
7238
7411
|
|
@@ -8327,20 +8500,38 @@ module Api
|
|
8327
8500
|
# unexpected, so discard it and continue.
|
8328
8501
|
if !found
|
8329
8502
|
wire_type = tag & 0x7
|
8503
|
+
|
8504
|
+
unknown_bytes = +"".b
|
8505
|
+
val = tag
|
8506
|
+
while val != 0
|
8507
|
+
byte = val & 0x7F
|
8508
|
+
|
8509
|
+
val >>= 7
|
8510
|
+
# This drops the top bits,
|
8511
|
+
# Otherwise, with a signed right shift,
|
8512
|
+
# we get infinity one bits at the top
|
8513
|
+
val &= (1 << 57) - 1
|
8514
|
+
|
8515
|
+
byte |= 0x80 if val != 0
|
8516
|
+
unknown_bytes << byte
|
8517
|
+
end
|
8518
|
+
|
8330
8519
|
case wire_type
|
8331
8520
|
when 0
|
8332
8521
|
i = 0
|
8333
8522
|
while true
|
8334
8523
|
newbyte = buff.getbyte(index)
|
8335
8524
|
index += 1
|
8336
|
-
break if newbyte.nil?
|
8525
|
+
break if newbyte.nil?
|
8526
|
+
unknown_bytes << newbyte
|
8527
|
+
break if newbyte < 0x80
|
8337
8528
|
i += 1
|
8338
8529
|
break if i > 9
|
8339
8530
|
end
|
8340
8531
|
when 1
|
8532
|
+
unknown_bytes << buff.byteslice(index, 8)
|
8341
8533
|
index += 8
|
8342
8534
|
when 2
|
8343
|
-
## PULL_BYTES
|
8344
8535
|
value =
|
8345
8536
|
if (byte0 = buff.getbyte(index)) < 0x80
|
8346
8537
|
index += 1
|
@@ -8396,15 +8587,29 @@ module Api
|
|
8396
8587
|
raise "integer decoding error"
|
8397
8588
|
end
|
8398
8589
|
|
8399
|
-
|
8400
|
-
|
8590
|
+
val = value
|
8591
|
+
while val != 0
|
8592
|
+
byte = val & 0x7F
|
8593
|
+
|
8594
|
+
val >>= 7
|
8595
|
+
# This drops the top bits,
|
8596
|
+
# Otherwise, with a signed right shift,
|
8597
|
+
# we get infinity one bits at the top
|
8598
|
+
val &= (1 << 57) - 1
|
8401
8599
|
|
8402
|
-
|
8600
|
+
byte |= 0x80 if val != 0
|
8601
|
+
unknown_bytes << byte
|
8602
|
+
end
|
8603
|
+
|
8604
|
+
unknown_bytes << buff.byteslice(index, value)
|
8605
|
+
index += value
|
8403
8606
|
when 5
|
8607
|
+
unknown_bytes << buff.byteslice(index, 4)
|
8404
8608
|
index += 4
|
8405
8609
|
else
|
8406
8610
|
raise "unknown wire type #{wire_type}"
|
8407
8611
|
end
|
8612
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
8408
8613
|
return self if index >= len
|
8409
8614
|
## PULL_UINT64
|
8410
8615
|
tag =
|
@@ -9442,64 +9647,11 @@ module Api
|
|
9442
9647
|
|
9443
9648
|
## END PULL_UINT64
|
9444
9649
|
end
|
9445
|
-
if tag ==
|
9650
|
+
if tag == 0xd8
|
9446
9651
|
found = true
|
9447
|
-
##
|
9448
|
-
value =
|
9449
|
-
if (byte0 = buff.getbyte(index)) < 0x80
|
9450
|
-
index += 1
|
9451
|
-
byte0
|
9452
|
-
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
9453
|
-
index += 2
|
9454
|
-
(byte1 << 7) | (byte0 & 0x7F)
|
9455
|
-
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
9456
|
-
index += 3
|
9457
|
-
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9458
|
-
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
9459
|
-
index += 4
|
9460
|
-
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
9461
|
-
(byte0 & 0x7F)
|
9462
|
-
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
9463
|
-
index += 5
|
9464
|
-
(byte4 << 28) | ((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
9465
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9466
|
-
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
9467
|
-
index += 6
|
9468
|
-
(byte5 << 35) | ((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
9469
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9470
|
-
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
9471
|
-
index += 7
|
9472
|
-
(byte6 << 42) | ((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
9473
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
9474
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9475
|
-
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
9476
|
-
index += 8
|
9477
|
-
(byte7 << 49) | ((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
9478
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
9479
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9480
|
-
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
9481
|
-
index += 9
|
9482
|
-
(byte8 << 56) | ((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
9483
|
-
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
9484
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
9485
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9486
|
-
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
9487
|
-
index += 10
|
9488
|
-
|
9489
|
-
(byte9 << 63) | ((byte8 & 0x7F) << 56) | ((byte7 & 0x7F) << 49) |
|
9490
|
-
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
9491
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
9492
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9493
|
-
else
|
9494
|
-
raise "integer decoding error"
|
9495
|
-
end
|
9496
|
-
|
9497
|
-
## END PULL_UINT64
|
9498
|
-
|
9499
|
-
goal = index + value
|
9652
|
+
## DECODE REPEATED
|
9500
9653
|
list = @buff_ids
|
9501
9654
|
while true
|
9502
|
-
break if index >= goal
|
9503
9655
|
## PULL_UINT64
|
9504
9656
|
list << if (byte0 = buff.getbyte(index)) < 0x80
|
9505
9657
|
index += 1
|
@@ -9550,60 +9702,71 @@ module Api
|
|
9550
9702
|
end
|
9551
9703
|
|
9552
9704
|
## END PULL_UINT64
|
9553
|
-
end
|
9554
9705
|
|
9555
|
-
|
9556
|
-
|
9557
|
-
|
9558
|
-
|
9559
|
-
|
9560
|
-
|
9561
|
-
|
9562
|
-
|
9563
|
-
|
9564
|
-
|
9565
|
-
|
9566
|
-
|
9567
|
-
|
9568
|
-
|
9569
|
-
|
9570
|
-
|
9571
|
-
|
9572
|
-
|
9573
|
-
|
9574
|
-
|
9575
|
-
|
9576
|
-
index
|
9577
|
-
|
9578
|
-
(
|
9579
|
-
|
9580
|
-
|
9581
|
-
(byte6
|
9582
|
-
|
9583
|
-
(
|
9584
|
-
|
9585
|
-
|
9586
|
-
|
9587
|
-
|
9588
|
-
|
9589
|
-
|
9590
|
-
|
9591
|
-
|
9592
|
-
|
9593
|
-
|
9594
|
-
|
9595
|
-
|
9596
|
-
|
9706
|
+
return self if index >= len
|
9707
|
+
## PULL_UINT64
|
9708
|
+
tag =
|
9709
|
+
if (byte0 = buff.getbyte(index)) < 0x80
|
9710
|
+
index += 1
|
9711
|
+
byte0
|
9712
|
+
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
9713
|
+
index += 2
|
9714
|
+
(byte1 << 7) | (byte0 & 0x7F)
|
9715
|
+
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
9716
|
+
index += 3
|
9717
|
+
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9718
|
+
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
9719
|
+
index += 4
|
9720
|
+
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
9721
|
+
(byte0 & 0x7F)
|
9722
|
+
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
9723
|
+
index += 5
|
9724
|
+
(byte4 << 28) | ((byte3 & 0x7F) << 21) |
|
9725
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
9726
|
+
(byte0 & 0x7F)
|
9727
|
+
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
9728
|
+
index += 6
|
9729
|
+
(byte5 << 35) | ((byte4 & 0x7F) << 28) |
|
9730
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
9731
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9732
|
+
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
9733
|
+
index += 7
|
9734
|
+
(byte6 << 42) | ((byte5 & 0x7F) << 35) |
|
9735
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
9736
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
9737
|
+
(byte0 & 0x7F)
|
9738
|
+
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
9739
|
+
index += 8
|
9740
|
+
(byte7 << 49) | ((byte6 & 0x7F) << 42) |
|
9741
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
9742
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
9743
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9744
|
+
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
9745
|
+
index += 9
|
9746
|
+
(byte8 << 56) | ((byte7 & 0x7F) << 49) |
|
9747
|
+
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
9748
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
9749
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
9750
|
+
(byte0 & 0x7F)
|
9751
|
+
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
9752
|
+
index += 10
|
9597
9753
|
|
9598
|
-
|
9599
|
-
|
9600
|
-
|
9601
|
-
|
9602
|
-
|
9603
|
-
|
9604
|
-
|
9754
|
+
(byte9 << 63) | ((byte8 & 0x7F) << 56) |
|
9755
|
+
((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
9756
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
9757
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
9758
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
9759
|
+
else
|
9760
|
+
raise "integer decoding error"
|
9761
|
+
end
|
9605
9762
|
|
9606
|
-
|
9763
|
+
## END PULL_UINT64
|
9764
|
+
|
9765
|
+
break unless tag == 0xd8
|
9766
|
+
end
|
9767
|
+
## END DECODE REPEATED
|
9768
|
+
|
9769
|
+
return self if index >= len
|
9607
9770
|
end
|
9608
9771
|
if tag == 0xfd
|
9609
9772
|
found = true
|
@@ -12731,19 +12894,12 @@ module Api
|
|
12731
12894
|
|
12732
12895
|
list = @buff_ids
|
12733
12896
|
if list.size > 0
|
12734
|
-
buff << 0xda
|
12735
|
-
buff << 0x01
|
12736
|
-
|
12737
|
-
# Save the buffer size before appending the repeated bytes
|
12738
|
-
current_len = buff.bytesize
|
12739
|
-
|
12740
|
-
# Write a single dummy byte to later store encoded length
|
12741
|
-
buff << 42 # "*"
|
12742
|
-
|
12743
|
-
# write each item
|
12744
12897
|
list.each do |item|
|
12745
12898
|
val = item
|
12746
12899
|
if val != 0
|
12900
|
+
buff << 0xd8
|
12901
|
+
buff << 0x01
|
12902
|
+
|
12747
12903
|
while val != 0
|
12748
12904
|
byte = val & 0x7F
|
12749
12905
|
val >>= 7
|
@@ -12752,40 +12908,6 @@ module Api
|
|
12752
12908
|
end
|
12753
12909
|
end
|
12754
12910
|
end
|
12755
|
-
|
12756
|
-
# Calculate the submessage's size
|
12757
|
-
submessage_size = buff.bytesize - current_len - 1
|
12758
|
-
|
12759
|
-
# Hope the size fits in one byte
|
12760
|
-
byte = submessage_size & 0x7F
|
12761
|
-
submessage_size >>= 7
|
12762
|
-
byte |= 0x80 if submessage_size > 0
|
12763
|
-
buff.setbyte(current_len, byte)
|
12764
|
-
|
12765
|
-
# If the sub message was bigger
|
12766
|
-
if submessage_size > 0
|
12767
|
-
current_len += 1
|
12768
|
-
|
12769
|
-
# compute how much we need to shift
|
12770
|
-
encoded_int_len = 0
|
12771
|
-
remaining_size = submessage_size
|
12772
|
-
while remaining_size != 0
|
12773
|
-
remaining_size >>= 7
|
12774
|
-
encoded_int_len += 1
|
12775
|
-
end
|
12776
|
-
|
12777
|
-
# Make space in the string with dummy bytes
|
12778
|
-
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
|
12779
|
-
|
12780
|
-
# Overwrite the dummy bytes with the encoded length
|
12781
|
-
while submessage_size != 0
|
12782
|
-
byte = submessage_size & 0x7F
|
12783
|
-
submessage_size >>= 7
|
12784
|
-
byte |= 0x80 if submessage_size > 0
|
12785
|
-
buff.setbyte(current_len, byte)
|
12786
|
-
current_len += 1
|
12787
|
-
end
|
12788
|
-
end
|
12789
12911
|
end
|
12790
12912
|
|
12791
12913
|
val = @detect_range
|
@@ -13347,7 +13469,7 @@ module Api
|
|
13347
13469
|
end
|
13348
13470
|
end
|
13349
13471
|
end
|
13350
|
-
|
13472
|
+
buff << @_unknown_fields if @_unknown_fields
|
13351
13473
|
buff
|
13352
13474
|
end
|
13353
13475
|
|
@@ -13524,20 +13646,38 @@ module Api
|
|
13524
13646
|
# unexpected, so discard it and continue.
|
13525
13647
|
if !found
|
13526
13648
|
wire_type = tag & 0x7
|
13649
|
+
|
13650
|
+
unknown_bytes = +"".b
|
13651
|
+
val = tag
|
13652
|
+
while val != 0
|
13653
|
+
byte = val & 0x7F
|
13654
|
+
|
13655
|
+
val >>= 7
|
13656
|
+
# This drops the top bits,
|
13657
|
+
# Otherwise, with a signed right shift,
|
13658
|
+
# we get infinity one bits at the top
|
13659
|
+
val &= (1 << 57) - 1
|
13660
|
+
|
13661
|
+
byte |= 0x80 if val != 0
|
13662
|
+
unknown_bytes << byte
|
13663
|
+
end
|
13664
|
+
|
13527
13665
|
case wire_type
|
13528
13666
|
when 0
|
13529
13667
|
i = 0
|
13530
13668
|
while true
|
13531
13669
|
newbyte = buff.getbyte(index)
|
13532
13670
|
index += 1
|
13533
|
-
break if newbyte.nil?
|
13671
|
+
break if newbyte.nil?
|
13672
|
+
unknown_bytes << newbyte
|
13673
|
+
break if newbyte < 0x80
|
13534
13674
|
i += 1
|
13535
13675
|
break if i > 9
|
13536
13676
|
end
|
13537
13677
|
when 1
|
13678
|
+
unknown_bytes << buff.byteslice(index, 8)
|
13538
13679
|
index += 8
|
13539
13680
|
when 2
|
13540
|
-
## PULL_BYTES
|
13541
13681
|
value =
|
13542
13682
|
if (byte0 = buff.getbyte(index)) < 0x80
|
13543
13683
|
index += 1
|
@@ -13593,15 +13733,29 @@ module Api
|
|
13593
13733
|
raise "integer decoding error"
|
13594
13734
|
end
|
13595
13735
|
|
13596
|
-
|
13597
|
-
|
13736
|
+
val = value
|
13737
|
+
while val != 0
|
13738
|
+
byte = val & 0x7F
|
13739
|
+
|
13740
|
+
val >>= 7
|
13741
|
+
# This drops the top bits,
|
13742
|
+
# Otherwise, with a signed right shift,
|
13743
|
+
# we get infinity one bits at the top
|
13744
|
+
val &= (1 << 57) - 1
|
13745
|
+
|
13746
|
+
byte |= 0x80 if val != 0
|
13747
|
+
unknown_bytes << byte
|
13748
|
+
end
|
13598
13749
|
|
13599
|
-
|
13750
|
+
unknown_bytes << buff.byteslice(index, value)
|
13751
|
+
index += value
|
13600
13752
|
when 5
|
13753
|
+
unknown_bytes << buff.byteslice(index, 4)
|
13601
13754
|
index += 4
|
13602
13755
|
else
|
13603
13756
|
raise "unknown wire type #{wire_type}"
|
13604
13757
|
end
|
13758
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
13605
13759
|
return self if index >= len
|
13606
13760
|
## PULL_UINT64
|
13607
13761
|
tag =
|
@@ -13983,7 +14137,7 @@ module Api
|
|
13983
14137
|
|
13984
14138
|
buff
|
13985
14139
|
end
|
13986
|
-
|
14140
|
+
buff << @_unknown_fields if @_unknown_fields
|
13987
14141
|
buff
|
13988
14142
|
end
|
13989
14143
|
|
@@ -14093,20 +14247,38 @@ module Api
|
|
14093
14247
|
# unexpected, so discard it and continue.
|
14094
14248
|
if !found
|
14095
14249
|
wire_type = tag & 0x7
|
14250
|
+
|
14251
|
+
unknown_bytes = +"".b
|
14252
|
+
val = tag
|
14253
|
+
while val != 0
|
14254
|
+
byte = val & 0x7F
|
14255
|
+
|
14256
|
+
val >>= 7
|
14257
|
+
# This drops the top bits,
|
14258
|
+
# Otherwise, with a signed right shift,
|
14259
|
+
# we get infinity one bits at the top
|
14260
|
+
val &= (1 << 57) - 1
|
14261
|
+
|
14262
|
+
byte |= 0x80 if val != 0
|
14263
|
+
unknown_bytes << byte
|
14264
|
+
end
|
14265
|
+
|
14096
14266
|
case wire_type
|
14097
14267
|
when 0
|
14098
14268
|
i = 0
|
14099
14269
|
while true
|
14100
14270
|
newbyte = buff.getbyte(index)
|
14101
14271
|
index += 1
|
14102
|
-
break if newbyte.nil?
|
14272
|
+
break if newbyte.nil?
|
14273
|
+
unknown_bytes << newbyte
|
14274
|
+
break if newbyte < 0x80
|
14103
14275
|
i += 1
|
14104
14276
|
break if i > 9
|
14105
14277
|
end
|
14106
14278
|
when 1
|
14279
|
+
unknown_bytes << buff.byteslice(index, 8)
|
14107
14280
|
index += 8
|
14108
14281
|
when 2
|
14109
|
-
## PULL_BYTES
|
14110
14282
|
value =
|
14111
14283
|
if (byte0 = buff.getbyte(index)) < 0x80
|
14112
14284
|
index += 1
|
@@ -14162,15 +14334,29 @@ module Api
|
|
14162
14334
|
raise "integer decoding error"
|
14163
14335
|
end
|
14164
14336
|
|
14165
|
-
|
14166
|
-
|
14337
|
+
val = value
|
14338
|
+
while val != 0
|
14339
|
+
byte = val & 0x7F
|
14340
|
+
|
14341
|
+
val >>= 7
|
14342
|
+
# This drops the top bits,
|
14343
|
+
# Otherwise, with a signed right shift,
|
14344
|
+
# we get infinity one bits at the top
|
14345
|
+
val &= (1 << 57) - 1
|
14346
|
+
|
14347
|
+
byte |= 0x80 if val != 0
|
14348
|
+
unknown_bytes << byte
|
14349
|
+
end
|
14167
14350
|
|
14168
|
-
|
14351
|
+
unknown_bytes << buff.byteslice(index, value)
|
14352
|
+
index += value
|
14169
14353
|
when 5
|
14354
|
+
unknown_bytes << buff.byteslice(index, 4)
|
14170
14355
|
index += 4
|
14171
14356
|
else
|
14172
14357
|
raise "unknown wire type #{wire_type}"
|
14173
14358
|
end
|
14359
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
14174
14360
|
return self if index >= len
|
14175
14361
|
## PULL_UINT64
|
14176
14362
|
tag =
|
@@ -14226,64 +14412,11 @@ module Api
|
|
14226
14412
|
end
|
14227
14413
|
found = false
|
14228
14414
|
|
14229
|
-
if tag ==
|
14415
|
+
if tag == 0x8
|
14230
14416
|
found = true
|
14231
|
-
##
|
14232
|
-
value =
|
14233
|
-
if (byte0 = buff.getbyte(index)) < 0x80
|
14234
|
-
index += 1
|
14235
|
-
byte0
|
14236
|
-
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
14237
|
-
index += 2
|
14238
|
-
(byte1 << 7) | (byte0 & 0x7F)
|
14239
|
-
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
14240
|
-
index += 3
|
14241
|
-
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14242
|
-
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
14243
|
-
index += 4
|
14244
|
-
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
14245
|
-
(byte0 & 0x7F)
|
14246
|
-
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
14247
|
-
index += 5
|
14248
|
-
(byte4 << 28) | ((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
14249
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14250
|
-
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
14251
|
-
index += 6
|
14252
|
-
(byte5 << 35) | ((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
14253
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14254
|
-
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
14255
|
-
index += 7
|
14256
|
-
(byte6 << 42) | ((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
14257
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
14258
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14259
|
-
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
14260
|
-
index += 8
|
14261
|
-
(byte7 << 49) | ((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
14262
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
14263
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14264
|
-
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
14265
|
-
index += 9
|
14266
|
-
(byte8 << 56) | ((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
14267
|
-
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
14268
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
14269
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14270
|
-
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
14271
|
-
index += 10
|
14272
|
-
|
14273
|
-
(byte9 << 63) | ((byte8 & 0x7F) << 56) | ((byte7 & 0x7F) << 49) |
|
14274
|
-
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
14275
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
14276
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14277
|
-
else
|
14278
|
-
raise "integer decoding error"
|
14279
|
-
end
|
14280
|
-
|
14281
|
-
## END PULL_UINT64
|
14282
|
-
|
14283
|
-
goal = index + value
|
14417
|
+
## DECODE REPEATED
|
14284
14418
|
list = @dead_units
|
14285
14419
|
while true
|
14286
|
-
break if index >= goal
|
14287
14420
|
## PULL_UINT64
|
14288
14421
|
list << if (byte0 = buff.getbyte(index)) < 0x80
|
14289
14422
|
index += 1
|
@@ -14334,60 +14467,71 @@ module Api
|
|
14334
14467
|
end
|
14335
14468
|
|
14336
14469
|
## END PULL_UINT64
|
14337
|
-
end
|
14338
14470
|
|
14339
|
-
|
14340
|
-
|
14341
|
-
|
14342
|
-
|
14343
|
-
|
14344
|
-
|
14345
|
-
|
14346
|
-
|
14347
|
-
|
14348
|
-
|
14349
|
-
|
14350
|
-
|
14351
|
-
|
14352
|
-
|
14353
|
-
|
14354
|
-
|
14355
|
-
|
14356
|
-
|
14357
|
-
|
14358
|
-
|
14359
|
-
|
14360
|
-
index
|
14361
|
-
|
14362
|
-
(
|
14363
|
-
|
14364
|
-
|
14365
|
-
(byte6
|
14366
|
-
|
14367
|
-
(
|
14368
|
-
|
14369
|
-
|
14370
|
-
|
14371
|
-
|
14372
|
-
|
14373
|
-
|
14374
|
-
|
14375
|
-
|
14376
|
-
|
14377
|
-
|
14378
|
-
|
14379
|
-
|
14380
|
-
|
14471
|
+
return self if index >= len
|
14472
|
+
## PULL_UINT64
|
14473
|
+
tag =
|
14474
|
+
if (byte0 = buff.getbyte(index)) < 0x80
|
14475
|
+
index += 1
|
14476
|
+
byte0
|
14477
|
+
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
14478
|
+
index += 2
|
14479
|
+
(byte1 << 7) | (byte0 & 0x7F)
|
14480
|
+
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
14481
|
+
index += 3
|
14482
|
+
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14483
|
+
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
14484
|
+
index += 4
|
14485
|
+
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
14486
|
+
(byte0 & 0x7F)
|
14487
|
+
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
14488
|
+
index += 5
|
14489
|
+
(byte4 << 28) | ((byte3 & 0x7F) << 21) |
|
14490
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
14491
|
+
(byte0 & 0x7F)
|
14492
|
+
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
14493
|
+
index += 6
|
14494
|
+
(byte5 << 35) | ((byte4 & 0x7F) << 28) |
|
14495
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
14496
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14497
|
+
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
14498
|
+
index += 7
|
14499
|
+
(byte6 << 42) | ((byte5 & 0x7F) << 35) |
|
14500
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
14501
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
14502
|
+
(byte0 & 0x7F)
|
14503
|
+
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
14504
|
+
index += 8
|
14505
|
+
(byte7 << 49) | ((byte6 & 0x7F) << 42) |
|
14506
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
14507
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
14508
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14509
|
+
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
14510
|
+
index += 9
|
14511
|
+
(byte8 << 56) | ((byte7 & 0x7F) << 49) |
|
14512
|
+
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
14513
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
14514
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
14515
|
+
(byte0 & 0x7F)
|
14516
|
+
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
14517
|
+
index += 10
|
14381
14518
|
|
14382
|
-
|
14383
|
-
|
14384
|
-
|
14385
|
-
|
14386
|
-
|
14387
|
-
|
14388
|
-
|
14519
|
+
(byte9 << 63) | ((byte8 & 0x7F) << 56) |
|
14520
|
+
((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
14521
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
14522
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
14523
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
14524
|
+
else
|
14525
|
+
raise "integer decoding error"
|
14526
|
+
end
|
14389
14527
|
|
14390
|
-
|
14528
|
+
## END PULL_UINT64
|
14529
|
+
|
14530
|
+
break unless tag == 0x8
|
14531
|
+
end
|
14532
|
+
## END DECODE REPEATED
|
14533
|
+
|
14534
|
+
return self if index >= len
|
14391
14535
|
end
|
14392
14536
|
|
14393
14537
|
return self if index >= len
|
@@ -14396,18 +14540,11 @@ module Api
|
|
14396
14540
|
def _encode(buff)
|
14397
14541
|
list = @dead_units
|
14398
14542
|
if list.size > 0
|
14399
|
-
buff << 0x0a
|
14400
|
-
|
14401
|
-
# Save the buffer size before appending the repeated bytes
|
14402
|
-
current_len = buff.bytesize
|
14403
|
-
|
14404
|
-
# Write a single dummy byte to later store encoded length
|
14405
|
-
buff << 42 # "*"
|
14406
|
-
|
14407
|
-
# write each item
|
14408
14543
|
list.each do |item|
|
14409
14544
|
val = item
|
14410
14545
|
if val != 0
|
14546
|
+
buff << 0x08
|
14547
|
+
|
14411
14548
|
while val != 0
|
14412
14549
|
byte = val & 0x7F
|
14413
14550
|
val >>= 7
|
@@ -14416,55 +14553,21 @@ module Api
|
|
14416
14553
|
end
|
14417
14554
|
end
|
14418
14555
|
end
|
14556
|
+
end
|
14557
|
+
buff << @_unknown_fields if @_unknown_fields
|
14558
|
+
buff
|
14559
|
+
end
|
14419
14560
|
|
14420
|
-
|
14421
|
-
|
14422
|
-
|
14423
|
-
|
14424
|
-
|
14425
|
-
|
14426
|
-
|
14427
|
-
|
14428
|
-
|
14429
|
-
|
14430
|
-
if submessage_size > 0
|
14431
|
-
current_len += 1
|
14432
|
-
|
14433
|
-
# compute how much we need to shift
|
14434
|
-
encoded_int_len = 0
|
14435
|
-
remaining_size = submessage_size
|
14436
|
-
while remaining_size != 0
|
14437
|
-
remaining_size >>= 7
|
14438
|
-
encoded_int_len += 1
|
14439
|
-
end
|
14440
|
-
|
14441
|
-
# Make space in the string with dummy bytes
|
14442
|
-
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
|
14443
|
-
|
14444
|
-
# Overwrite the dummy bytes with the encoded length
|
14445
|
-
while submessage_size != 0
|
14446
|
-
byte = submessage_size & 0x7F
|
14447
|
-
submessage_size >>= 7
|
14448
|
-
byte |= 0x80 if submessage_size > 0
|
14449
|
-
buff.setbyte(current_len, byte)
|
14450
|
-
current_len += 1
|
14451
|
-
end
|
14452
|
-
end
|
14453
|
-
end
|
14454
|
-
|
14455
|
-
buff
|
14456
|
-
end
|
14457
|
-
|
14458
|
-
def to_h
|
14459
|
-
result = {}
|
14460
|
-
result["dead_units".to_sym] = @dead_units
|
14461
|
-
result
|
14462
|
-
end
|
14463
|
-
end
|
14464
|
-
class Effect
|
14465
|
-
def self.decode(buff)
|
14466
|
-
allocate.decode_from(buff.b, 0, buff.bytesize)
|
14467
|
-
end
|
14561
|
+
def to_h
|
14562
|
+
result = {}
|
14563
|
+
result["dead_units".to_sym] = @dead_units
|
14564
|
+
result
|
14565
|
+
end
|
14566
|
+
end
|
14567
|
+
class Effect
|
14568
|
+
def self.decode(buff)
|
14569
|
+
allocate.decode_from(buff.b, 0, buff.bytesize)
|
14570
|
+
end
|
14468
14571
|
|
14469
14572
|
def self.encode(obj)
|
14470
14573
|
obj._encode("".b)
|
@@ -14654,20 +14757,38 @@ module Api
|
|
14654
14757
|
# unexpected, so discard it and continue.
|
14655
14758
|
if !found
|
14656
14759
|
wire_type = tag & 0x7
|
14760
|
+
|
14761
|
+
unknown_bytes = +"".b
|
14762
|
+
val = tag
|
14763
|
+
while val != 0
|
14764
|
+
byte = val & 0x7F
|
14765
|
+
|
14766
|
+
val >>= 7
|
14767
|
+
# This drops the top bits,
|
14768
|
+
# Otherwise, with a signed right shift,
|
14769
|
+
# we get infinity one bits at the top
|
14770
|
+
val &= (1 << 57) - 1
|
14771
|
+
|
14772
|
+
byte |= 0x80 if val != 0
|
14773
|
+
unknown_bytes << byte
|
14774
|
+
end
|
14775
|
+
|
14657
14776
|
case wire_type
|
14658
14777
|
when 0
|
14659
14778
|
i = 0
|
14660
14779
|
while true
|
14661
14780
|
newbyte = buff.getbyte(index)
|
14662
14781
|
index += 1
|
14663
|
-
break if newbyte.nil?
|
14782
|
+
break if newbyte.nil?
|
14783
|
+
unknown_bytes << newbyte
|
14784
|
+
break if newbyte < 0x80
|
14664
14785
|
i += 1
|
14665
14786
|
break if i > 9
|
14666
14787
|
end
|
14667
14788
|
when 1
|
14789
|
+
unknown_bytes << buff.byteslice(index, 8)
|
14668
14790
|
index += 8
|
14669
14791
|
when 2
|
14670
|
-
## PULL_BYTES
|
14671
14792
|
value =
|
14672
14793
|
if (byte0 = buff.getbyte(index)) < 0x80
|
14673
14794
|
index += 1
|
@@ -14723,15 +14844,29 @@ module Api
|
|
14723
14844
|
raise "integer decoding error"
|
14724
14845
|
end
|
14725
14846
|
|
14726
|
-
|
14727
|
-
|
14847
|
+
val = value
|
14848
|
+
while val != 0
|
14849
|
+
byte = val & 0x7F
|
14850
|
+
|
14851
|
+
val >>= 7
|
14852
|
+
# This drops the top bits,
|
14853
|
+
# Otherwise, with a signed right shift,
|
14854
|
+
# we get infinity one bits at the top
|
14855
|
+
val &= (1 << 57) - 1
|
14856
|
+
|
14857
|
+
byte |= 0x80 if val != 0
|
14858
|
+
unknown_bytes << byte
|
14859
|
+
end
|
14728
14860
|
|
14729
|
-
|
14861
|
+
unknown_bytes << buff.byteslice(index, value)
|
14862
|
+
index += value
|
14730
14863
|
when 5
|
14864
|
+
unknown_bytes << buff.byteslice(index, 4)
|
14731
14865
|
index += 4
|
14732
14866
|
else
|
14733
14867
|
raise "unknown wire type #{wire_type}"
|
14734
14868
|
end
|
14869
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
14735
14870
|
return self if index >= len
|
14736
14871
|
## PULL_UINT64
|
14737
14872
|
tag =
|
@@ -15441,7 +15576,7 @@ module Api
|
|
15441
15576
|
|
15442
15577
|
[val].pack("e", buffer: buff)
|
15443
15578
|
end
|
15444
|
-
|
15579
|
+
buff << @_unknown_fields if @_unknown_fields
|
15445
15580
|
buff
|
15446
15581
|
end
|
15447
15582
|
|
@@ -15585,20 +15720,38 @@ module Api
|
|
15585
15720
|
# unexpected, so discard it and continue.
|
15586
15721
|
if !found
|
15587
15722
|
wire_type = tag & 0x7
|
15723
|
+
|
15724
|
+
unknown_bytes = +"".b
|
15725
|
+
val = tag
|
15726
|
+
while val != 0
|
15727
|
+
byte = val & 0x7F
|
15728
|
+
|
15729
|
+
val >>= 7
|
15730
|
+
# This drops the top bits,
|
15731
|
+
# Otherwise, with a signed right shift,
|
15732
|
+
# we get infinity one bits at the top
|
15733
|
+
val &= (1 << 57) - 1
|
15734
|
+
|
15735
|
+
byte |= 0x80 if val != 0
|
15736
|
+
unknown_bytes << byte
|
15737
|
+
end
|
15738
|
+
|
15588
15739
|
case wire_type
|
15589
15740
|
when 0
|
15590
15741
|
i = 0
|
15591
15742
|
while true
|
15592
15743
|
newbyte = buff.getbyte(index)
|
15593
15744
|
index += 1
|
15594
|
-
break if newbyte.nil?
|
15745
|
+
break if newbyte.nil?
|
15746
|
+
unknown_bytes << newbyte
|
15747
|
+
break if newbyte < 0x80
|
15595
15748
|
i += 1
|
15596
15749
|
break if i > 9
|
15597
15750
|
end
|
15598
15751
|
when 1
|
15752
|
+
unknown_bytes << buff.byteslice(index, 8)
|
15599
15753
|
index += 8
|
15600
15754
|
when 2
|
15601
|
-
## PULL_BYTES
|
15602
15755
|
value =
|
15603
15756
|
if (byte0 = buff.getbyte(index)) < 0x80
|
15604
15757
|
index += 1
|
@@ -15654,15 +15807,29 @@ module Api
|
|
15654
15807
|
raise "integer decoding error"
|
15655
15808
|
end
|
15656
15809
|
|
15657
|
-
|
15658
|
-
|
15810
|
+
val = value
|
15811
|
+
while val != 0
|
15812
|
+
byte = val & 0x7F
|
15813
|
+
|
15814
|
+
val >>= 7
|
15815
|
+
# This drops the top bits,
|
15816
|
+
# Otherwise, with a signed right shift,
|
15817
|
+
# we get infinity one bits at the top
|
15818
|
+
val &= (1 << 57) - 1
|
15819
|
+
|
15820
|
+
byte |= 0x80 if val != 0
|
15821
|
+
unknown_bytes << byte
|
15822
|
+
end
|
15659
15823
|
|
15660
|
-
|
15824
|
+
unknown_bytes << buff.byteslice(index, value)
|
15825
|
+
index += value
|
15661
15826
|
when 5
|
15827
|
+
unknown_bytes << buff.byteslice(index, 4)
|
15662
15828
|
index += 4
|
15663
15829
|
else
|
15664
15830
|
raise "unknown wire type #{wire_type}"
|
15665
15831
|
end
|
15832
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
15666
15833
|
return self if index >= len
|
15667
15834
|
## PULL_UINT64
|
15668
15835
|
tag =
|
@@ -16217,7 +16384,7 @@ module Api
|
|
16217
16384
|
|
16218
16385
|
buff
|
16219
16386
|
end
|
16220
|
-
|
16387
|
+
buff << @_unknown_fields if @_unknown_fields
|
16221
16388
|
buff
|
16222
16389
|
end
|
16223
16390
|
|
@@ -16437,20 +16604,38 @@ module Api
|
|
16437
16604
|
# unexpected, so discard it and continue.
|
16438
16605
|
if !found
|
16439
16606
|
wire_type = tag & 0x7
|
16607
|
+
|
16608
|
+
unknown_bytes = +"".b
|
16609
|
+
val = tag
|
16610
|
+
while val != 0
|
16611
|
+
byte = val & 0x7F
|
16612
|
+
|
16613
|
+
val >>= 7
|
16614
|
+
# This drops the top bits,
|
16615
|
+
# Otherwise, with a signed right shift,
|
16616
|
+
# we get infinity one bits at the top
|
16617
|
+
val &= (1 << 57) - 1
|
16618
|
+
|
16619
|
+
byte |= 0x80 if val != 0
|
16620
|
+
unknown_bytes << byte
|
16621
|
+
end
|
16622
|
+
|
16440
16623
|
case wire_type
|
16441
16624
|
when 0
|
16442
16625
|
i = 0
|
16443
16626
|
while true
|
16444
16627
|
newbyte = buff.getbyte(index)
|
16445
16628
|
index += 1
|
16446
|
-
break if newbyte.nil?
|
16629
|
+
break if newbyte.nil?
|
16630
|
+
unknown_bytes << newbyte
|
16631
|
+
break if newbyte < 0x80
|
16447
16632
|
i += 1
|
16448
16633
|
break if i > 9
|
16449
16634
|
end
|
16450
16635
|
when 1
|
16636
|
+
unknown_bytes << buff.byteslice(index, 8)
|
16451
16637
|
index += 8
|
16452
16638
|
when 2
|
16453
|
-
## PULL_BYTES
|
16454
16639
|
value =
|
16455
16640
|
if (byte0 = buff.getbyte(index)) < 0x80
|
16456
16641
|
index += 1
|
@@ -16506,15 +16691,29 @@ module Api
|
|
16506
16691
|
raise "integer decoding error"
|
16507
16692
|
end
|
16508
16693
|
|
16509
|
-
|
16510
|
-
|
16694
|
+
val = value
|
16695
|
+
while val != 0
|
16696
|
+
byte = val & 0x7F
|
16697
|
+
|
16698
|
+
val >>= 7
|
16699
|
+
# This drops the top bits,
|
16700
|
+
# Otherwise, with a signed right shift,
|
16701
|
+
# we get infinity one bits at the top
|
16702
|
+
val &= (1 << 57) - 1
|
16703
|
+
|
16704
|
+
byte |= 0x80 if val != 0
|
16705
|
+
unknown_bytes << byte
|
16706
|
+
end
|
16511
16707
|
|
16512
|
-
|
16708
|
+
unknown_bytes << buff.byteslice(index, value)
|
16709
|
+
index += value
|
16513
16710
|
when 5
|
16711
|
+
unknown_bytes << buff.byteslice(index, 4)
|
16514
16712
|
index += 4
|
16515
16713
|
else
|
16516
16714
|
raise "unknown wire type #{wire_type}"
|
16517
16715
|
end
|
16716
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
16518
16717
|
return self if index >= len
|
16519
16718
|
## PULL_UINT64
|
16520
16719
|
tag =
|
@@ -16911,64 +17110,11 @@ module Api
|
|
16911
17110
|
|
16912
17111
|
## END PULL_UINT64
|
16913
17112
|
end
|
16914
|
-
if tag ==
|
17113
|
+
if tag == 0x20
|
16915
17114
|
found = true
|
16916
|
-
##
|
16917
|
-
value =
|
16918
|
-
if (byte0 = buff.getbyte(index)) < 0x80
|
16919
|
-
index += 1
|
16920
|
-
byte0
|
16921
|
-
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
16922
|
-
index += 2
|
16923
|
-
(byte1 << 7) | (byte0 & 0x7F)
|
16924
|
-
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
16925
|
-
index += 3
|
16926
|
-
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16927
|
-
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
16928
|
-
index += 4
|
16929
|
-
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
16930
|
-
(byte0 & 0x7F)
|
16931
|
-
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
16932
|
-
index += 5
|
16933
|
-
(byte4 << 28) | ((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
16934
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16935
|
-
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
16936
|
-
index += 6
|
16937
|
-
(byte5 << 35) | ((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
16938
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16939
|
-
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
16940
|
-
index += 7
|
16941
|
-
(byte6 << 42) | ((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
16942
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
16943
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16944
|
-
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
16945
|
-
index += 8
|
16946
|
-
(byte7 << 49) | ((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
16947
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
16948
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16949
|
-
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
16950
|
-
index += 9
|
16951
|
-
(byte8 << 56) | ((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
16952
|
-
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
16953
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
16954
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16955
|
-
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
16956
|
-
index += 10
|
16957
|
-
|
16958
|
-
(byte9 << 63) | ((byte8 & 0x7F) << 56) | ((byte7 & 0x7F) << 49) |
|
16959
|
-
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
16960
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
16961
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
16962
|
-
else
|
16963
|
-
raise "integer decoding error"
|
16964
|
-
end
|
16965
|
-
|
16966
|
-
## END PULL_UINT64
|
16967
|
-
|
16968
|
-
goal = index + value
|
17115
|
+
## DECODE REPEATED
|
16969
17116
|
list = @unit_tags
|
16970
17117
|
while true
|
16971
|
-
break if index >= goal
|
16972
17118
|
## PULL_UINT64
|
16973
17119
|
list << if (byte0 = buff.getbyte(index)) < 0x80
|
16974
17120
|
index += 1
|
@@ -17019,60 +17165,71 @@ module Api
|
|
17019
17165
|
end
|
17020
17166
|
|
17021
17167
|
## END PULL_UINT64
|
17022
|
-
end
|
17023
17168
|
|
17024
|
-
|
17025
|
-
|
17026
|
-
|
17027
|
-
|
17028
|
-
|
17029
|
-
|
17030
|
-
|
17031
|
-
|
17032
|
-
|
17033
|
-
|
17034
|
-
|
17035
|
-
|
17036
|
-
|
17037
|
-
|
17038
|
-
|
17039
|
-
|
17040
|
-
|
17041
|
-
|
17042
|
-
|
17043
|
-
|
17044
|
-
|
17045
|
-
index
|
17046
|
-
|
17047
|
-
(
|
17048
|
-
|
17049
|
-
|
17050
|
-
(byte6
|
17051
|
-
|
17052
|
-
(
|
17053
|
-
|
17054
|
-
|
17055
|
-
|
17056
|
-
|
17057
|
-
|
17058
|
-
|
17059
|
-
|
17060
|
-
|
17061
|
-
|
17062
|
-
|
17063
|
-
|
17064
|
-
|
17065
|
-
|
17169
|
+
return self if index >= len
|
17170
|
+
## PULL_UINT64
|
17171
|
+
tag =
|
17172
|
+
if (byte0 = buff.getbyte(index)) < 0x80
|
17173
|
+
index += 1
|
17174
|
+
byte0
|
17175
|
+
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
17176
|
+
index += 2
|
17177
|
+
(byte1 << 7) | (byte0 & 0x7F)
|
17178
|
+
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
17179
|
+
index += 3
|
17180
|
+
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
17181
|
+
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
17182
|
+
index += 4
|
17183
|
+
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
17184
|
+
(byte0 & 0x7F)
|
17185
|
+
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
17186
|
+
index += 5
|
17187
|
+
(byte4 << 28) | ((byte3 & 0x7F) << 21) |
|
17188
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
17189
|
+
(byte0 & 0x7F)
|
17190
|
+
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
17191
|
+
index += 6
|
17192
|
+
(byte5 << 35) | ((byte4 & 0x7F) << 28) |
|
17193
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
17194
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
17195
|
+
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
17196
|
+
index += 7
|
17197
|
+
(byte6 << 42) | ((byte5 & 0x7F) << 35) |
|
17198
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
17199
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
17200
|
+
(byte0 & 0x7F)
|
17201
|
+
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
17202
|
+
index += 8
|
17203
|
+
(byte7 << 49) | ((byte6 & 0x7F) << 42) |
|
17204
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
17205
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
17206
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
17207
|
+
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
17208
|
+
index += 9
|
17209
|
+
(byte8 << 56) | ((byte7 & 0x7F) << 49) |
|
17210
|
+
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
17211
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
17212
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
17213
|
+
(byte0 & 0x7F)
|
17214
|
+
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
17215
|
+
index += 10
|
17066
17216
|
|
17067
|
-
|
17068
|
-
|
17069
|
-
|
17070
|
-
|
17071
|
-
|
17072
|
-
|
17073
|
-
|
17217
|
+
(byte9 << 63) | ((byte8 & 0x7F) << 56) |
|
17218
|
+
((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
17219
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
17220
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
17221
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
17222
|
+
else
|
17223
|
+
raise "integer decoding error"
|
17224
|
+
end
|
17074
17225
|
|
17075
|
-
|
17226
|
+
## END PULL_UINT64
|
17227
|
+
|
17228
|
+
break unless tag == 0x20
|
17229
|
+
end
|
17230
|
+
## END DECODE REPEATED
|
17231
|
+
|
17232
|
+
return self if index >= len
|
17076
17233
|
end
|
17077
17234
|
if tag == 0x28
|
17078
17235
|
found = true
|
@@ -17220,18 +17377,11 @@ module Api
|
|
17220
17377
|
|
17221
17378
|
list = @unit_tags
|
17222
17379
|
if list.size > 0
|
17223
|
-
buff << 0x22
|
17224
|
-
|
17225
|
-
# Save the buffer size before appending the repeated bytes
|
17226
|
-
current_len = buff.bytesize
|
17227
|
-
|
17228
|
-
# Write a single dummy byte to later store encoded length
|
17229
|
-
buff << 42 # "*"
|
17230
|
-
|
17231
|
-
# write each item
|
17232
17380
|
list.each do |item|
|
17233
17381
|
val = item
|
17234
17382
|
if val != 0
|
17383
|
+
buff << 0x20
|
17384
|
+
|
17235
17385
|
while val != 0
|
17236
17386
|
byte = val & 0x7F
|
17237
17387
|
val >>= 7
|
@@ -17240,40 +17390,6 @@ module Api
|
|
17240
17390
|
end
|
17241
17391
|
end
|
17242
17392
|
end
|
17243
|
-
|
17244
|
-
# Calculate the submessage's size
|
17245
|
-
submessage_size = buff.bytesize - current_len - 1
|
17246
|
-
|
17247
|
-
# Hope the size fits in one byte
|
17248
|
-
byte = submessage_size & 0x7F
|
17249
|
-
submessage_size >>= 7
|
17250
|
-
byte |= 0x80 if submessage_size > 0
|
17251
|
-
buff.setbyte(current_len, byte)
|
17252
|
-
|
17253
|
-
# If the sub message was bigger
|
17254
|
-
if submessage_size > 0
|
17255
|
-
current_len += 1
|
17256
|
-
|
17257
|
-
# compute how much we need to shift
|
17258
|
-
encoded_int_len = 0
|
17259
|
-
remaining_size = submessage_size
|
17260
|
-
while remaining_size != 0
|
17261
|
-
remaining_size >>= 7
|
17262
|
-
encoded_int_len += 1
|
17263
|
-
end
|
17264
|
-
|
17265
|
-
# Make space in the string with dummy bytes
|
17266
|
-
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
|
17267
|
-
|
17268
|
-
# Overwrite the dummy bytes with the encoded length
|
17269
|
-
while submessage_size != 0
|
17270
|
-
byte = submessage_size & 0x7F
|
17271
|
-
submessage_size >>= 7
|
17272
|
-
byte |= 0x80 if submessage_size > 0
|
17273
|
-
buff.setbyte(current_len, byte)
|
17274
|
-
current_len += 1
|
17275
|
-
end
|
17276
|
-
end
|
17277
17393
|
end
|
17278
17394
|
|
17279
17395
|
val = @queue_command
|
@@ -17286,7 +17402,7 @@ module Api
|
|
17286
17402
|
else
|
17287
17403
|
raise "bool values should be true or false"
|
17288
17404
|
end
|
17289
|
-
|
17405
|
+
buff << @_unknown_fields if @_unknown_fields
|
17290
17406
|
buff
|
17291
17407
|
end
|
17292
17408
|
|
@@ -17404,20 +17520,38 @@ module Api
|
|
17404
17520
|
# unexpected, so discard it and continue.
|
17405
17521
|
if !found
|
17406
17522
|
wire_type = tag & 0x7
|
17523
|
+
|
17524
|
+
unknown_bytes = +"".b
|
17525
|
+
val = tag
|
17526
|
+
while val != 0
|
17527
|
+
byte = val & 0x7F
|
17528
|
+
|
17529
|
+
val >>= 7
|
17530
|
+
# This drops the top bits,
|
17531
|
+
# Otherwise, with a signed right shift,
|
17532
|
+
# we get infinity one bits at the top
|
17533
|
+
val &= (1 << 57) - 1
|
17534
|
+
|
17535
|
+
byte |= 0x80 if val != 0
|
17536
|
+
unknown_bytes << byte
|
17537
|
+
end
|
17538
|
+
|
17407
17539
|
case wire_type
|
17408
17540
|
when 0
|
17409
17541
|
i = 0
|
17410
17542
|
while true
|
17411
17543
|
newbyte = buff.getbyte(index)
|
17412
17544
|
index += 1
|
17413
|
-
break if newbyte.nil?
|
17545
|
+
break if newbyte.nil?
|
17546
|
+
unknown_bytes << newbyte
|
17547
|
+
break if newbyte < 0x80
|
17414
17548
|
i += 1
|
17415
17549
|
break if i > 9
|
17416
17550
|
end
|
17417
17551
|
when 1
|
17552
|
+
unknown_bytes << buff.byteslice(index, 8)
|
17418
17553
|
index += 8
|
17419
17554
|
when 2
|
17420
|
-
## PULL_BYTES
|
17421
17555
|
value =
|
17422
17556
|
if (byte0 = buff.getbyte(index)) < 0x80
|
17423
17557
|
index += 1
|
@@ -17473,15 +17607,29 @@ module Api
|
|
17473
17607
|
raise "integer decoding error"
|
17474
17608
|
end
|
17475
17609
|
|
17476
|
-
|
17477
|
-
|
17610
|
+
val = value
|
17611
|
+
while val != 0
|
17612
|
+
byte = val & 0x7F
|
17478
17613
|
|
17479
|
-
|
17614
|
+
val >>= 7
|
17615
|
+
# This drops the top bits,
|
17616
|
+
# Otherwise, with a signed right shift,
|
17617
|
+
# we get infinity one bits at the top
|
17618
|
+
val &= (1 << 57) - 1
|
17619
|
+
|
17620
|
+
byte |= 0x80 if val != 0
|
17621
|
+
unknown_bytes << byte
|
17622
|
+
end
|
17623
|
+
|
17624
|
+
unknown_bytes << buff.byteslice(index, value)
|
17625
|
+
index += value
|
17480
17626
|
when 5
|
17627
|
+
unknown_bytes << buff.byteslice(index, 4)
|
17481
17628
|
index += 4
|
17482
17629
|
else
|
17483
17630
|
raise "unknown wire type #{wire_type}"
|
17484
17631
|
end
|
17632
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
17485
17633
|
return self if index >= len
|
17486
17634
|
## PULL_UINT64
|
17487
17635
|
tag =
|
@@ -17702,7 +17850,7 @@ module Api
|
|
17702
17850
|
|
17703
17851
|
buff
|
17704
17852
|
end
|
17705
|
-
|
17853
|
+
buff << @_unknown_fields if @_unknown_fields
|
17706
17854
|
buff
|
17707
17855
|
end
|
17708
17856
|
|
@@ -17848,20 +17996,38 @@ module Api
|
|
17848
17996
|
# unexpected, so discard it and continue.
|
17849
17997
|
if !found
|
17850
17998
|
wire_type = tag & 0x7
|
17999
|
+
|
18000
|
+
unknown_bytes = +"".b
|
18001
|
+
val = tag
|
18002
|
+
while val != 0
|
18003
|
+
byte = val & 0x7F
|
18004
|
+
|
18005
|
+
val >>= 7
|
18006
|
+
# This drops the top bits,
|
18007
|
+
# Otherwise, with a signed right shift,
|
18008
|
+
# we get infinity one bits at the top
|
18009
|
+
val &= (1 << 57) - 1
|
18010
|
+
|
18011
|
+
byte |= 0x80 if val != 0
|
18012
|
+
unknown_bytes << byte
|
18013
|
+
end
|
18014
|
+
|
17851
18015
|
case wire_type
|
17852
18016
|
when 0
|
17853
18017
|
i = 0
|
17854
18018
|
while true
|
17855
18019
|
newbyte = buff.getbyte(index)
|
17856
18020
|
index += 1
|
17857
|
-
break if newbyte.nil?
|
18021
|
+
break if newbyte.nil?
|
18022
|
+
unknown_bytes << newbyte
|
18023
|
+
break if newbyte < 0x80
|
17858
18024
|
i += 1
|
17859
18025
|
break if i > 9
|
17860
18026
|
end
|
17861
18027
|
when 1
|
18028
|
+
unknown_bytes << buff.byteslice(index, 8)
|
17862
18029
|
index += 8
|
17863
18030
|
when 2
|
17864
|
-
## PULL_BYTES
|
17865
18031
|
value =
|
17866
18032
|
if (byte0 = buff.getbyte(index)) < 0x80
|
17867
18033
|
index += 1
|
@@ -17917,15 +18083,29 @@ module Api
|
|
17917
18083
|
raise "integer decoding error"
|
17918
18084
|
end
|
17919
18085
|
|
17920
|
-
|
17921
|
-
|
18086
|
+
val = value
|
18087
|
+
while val != 0
|
18088
|
+
byte = val & 0x7F
|
18089
|
+
|
18090
|
+
val >>= 7
|
18091
|
+
# This drops the top bits,
|
18092
|
+
# Otherwise, with a signed right shift,
|
18093
|
+
# we get infinity one bits at the top
|
18094
|
+
val &= (1 << 57) - 1
|
17922
18095
|
|
17923
|
-
|
18096
|
+
byte |= 0x80 if val != 0
|
18097
|
+
unknown_bytes << byte
|
18098
|
+
end
|
18099
|
+
|
18100
|
+
unknown_bytes << buff.byteslice(index, value)
|
18101
|
+
index += value
|
17924
18102
|
when 5
|
18103
|
+
unknown_bytes << buff.byteslice(index, 4)
|
17925
18104
|
index += 4
|
17926
18105
|
else
|
17927
18106
|
raise "unknown wire type #{wire_type}"
|
17928
18107
|
end
|
18108
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
17929
18109
|
return self if index >= len
|
17930
18110
|
## PULL_UINT64
|
17931
18111
|
tag =
|
@@ -18101,64 +18281,11 @@ module Api
|
|
18101
18281
|
|
18102
18282
|
## END PULL_UINT64
|
18103
18283
|
end
|
18104
|
-
if tag ==
|
18284
|
+
if tag == 0x10
|
18105
18285
|
found = true
|
18106
|
-
##
|
18107
|
-
value =
|
18108
|
-
if (byte0 = buff.getbyte(index)) < 0x80
|
18109
|
-
index += 1
|
18110
|
-
byte0
|
18111
|
-
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
18112
|
-
index += 2
|
18113
|
-
(byte1 << 7) | (byte0 & 0x7F)
|
18114
|
-
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
18115
|
-
index += 3
|
18116
|
-
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18117
|
-
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
18118
|
-
index += 4
|
18119
|
-
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
18120
|
-
(byte0 & 0x7F)
|
18121
|
-
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
18122
|
-
index += 5
|
18123
|
-
(byte4 << 28) | ((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
18124
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18125
|
-
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
18126
|
-
index += 6
|
18127
|
-
(byte5 << 35) | ((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
18128
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18129
|
-
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
18130
|
-
index += 7
|
18131
|
-
(byte6 << 42) | ((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
18132
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
18133
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18134
|
-
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
18135
|
-
index += 8
|
18136
|
-
(byte7 << 49) | ((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
18137
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
18138
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18139
|
-
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
18140
|
-
index += 9
|
18141
|
-
(byte8 << 56) | ((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
18142
|
-
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
18143
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
18144
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18145
|
-
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
18146
|
-
index += 10
|
18147
|
-
|
18148
|
-
(byte9 << 63) | ((byte8 & 0x7F) << 56) | ((byte7 & 0x7F) << 49) |
|
18149
|
-
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
18150
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
18151
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18152
|
-
else
|
18153
|
-
raise "integer decoding error"
|
18154
|
-
end
|
18155
|
-
|
18156
|
-
## END PULL_UINT64
|
18157
|
-
|
18158
|
-
goal = index + value
|
18286
|
+
## DECODE REPEATED
|
18159
18287
|
list = @unit_tags
|
18160
18288
|
while true
|
18161
|
-
break if index >= goal
|
18162
18289
|
## PULL_UINT64
|
18163
18290
|
list << if (byte0 = buff.getbyte(index)) < 0x80
|
18164
18291
|
index += 1
|
@@ -18209,60 +18336,71 @@ module Api
|
|
18209
18336
|
end
|
18210
18337
|
|
18211
18338
|
## END PULL_UINT64
|
18212
|
-
end
|
18213
18339
|
|
18214
|
-
|
18215
|
-
|
18216
|
-
|
18217
|
-
|
18218
|
-
|
18219
|
-
|
18220
|
-
|
18221
|
-
|
18222
|
-
|
18223
|
-
|
18224
|
-
|
18225
|
-
|
18226
|
-
|
18227
|
-
|
18228
|
-
|
18229
|
-
|
18230
|
-
|
18231
|
-
|
18232
|
-
|
18233
|
-
|
18234
|
-
|
18235
|
-
index
|
18236
|
-
|
18237
|
-
(
|
18238
|
-
|
18239
|
-
|
18240
|
-
(byte6
|
18241
|
-
|
18242
|
-
(
|
18243
|
-
|
18244
|
-
|
18245
|
-
|
18246
|
-
|
18247
|
-
|
18248
|
-
|
18249
|
-
|
18250
|
-
|
18251
|
-
|
18252
|
-
|
18253
|
-
|
18254
|
-
|
18255
|
-
|
18340
|
+
return self if index >= len
|
18341
|
+
## PULL_UINT64
|
18342
|
+
tag =
|
18343
|
+
if (byte0 = buff.getbyte(index)) < 0x80
|
18344
|
+
index += 1
|
18345
|
+
byte0
|
18346
|
+
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
18347
|
+
index += 2
|
18348
|
+
(byte1 << 7) | (byte0 & 0x7F)
|
18349
|
+
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
18350
|
+
index += 3
|
18351
|
+
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18352
|
+
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
18353
|
+
index += 4
|
18354
|
+
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
18355
|
+
(byte0 & 0x7F)
|
18356
|
+
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
18357
|
+
index += 5
|
18358
|
+
(byte4 << 28) | ((byte3 & 0x7F) << 21) |
|
18359
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
18360
|
+
(byte0 & 0x7F)
|
18361
|
+
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
18362
|
+
index += 6
|
18363
|
+
(byte5 << 35) | ((byte4 & 0x7F) << 28) |
|
18364
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
18365
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18366
|
+
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
18367
|
+
index += 7
|
18368
|
+
(byte6 << 42) | ((byte5 & 0x7F) << 35) |
|
18369
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
18370
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
18371
|
+
(byte0 & 0x7F)
|
18372
|
+
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
18373
|
+
index += 8
|
18374
|
+
(byte7 << 49) | ((byte6 & 0x7F) << 42) |
|
18375
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
18376
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
18377
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18378
|
+
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
18379
|
+
index += 9
|
18380
|
+
(byte8 << 56) | ((byte7 & 0x7F) << 49) |
|
18381
|
+
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
18382
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
18383
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
18384
|
+
(byte0 & 0x7F)
|
18385
|
+
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
18386
|
+
index += 10
|
18256
18387
|
|
18257
|
-
|
18258
|
-
|
18259
|
-
|
18260
|
-
|
18261
|
-
|
18262
|
-
|
18263
|
-
|
18388
|
+
(byte9 << 63) | ((byte8 & 0x7F) << 56) |
|
18389
|
+
((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
18390
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
18391
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
18392
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
18393
|
+
else
|
18394
|
+
raise "integer decoding error"
|
18395
|
+
end
|
18264
18396
|
|
18265
|
-
|
18397
|
+
## END PULL_UINT64
|
18398
|
+
|
18399
|
+
break unless tag == 0x10
|
18400
|
+
end
|
18401
|
+
## END DECODE REPEATED
|
18402
|
+
|
18403
|
+
return self if index >= len
|
18266
18404
|
end
|
18267
18405
|
|
18268
18406
|
return self if index >= len
|
@@ -18289,18 +18427,11 @@ module Api
|
|
18289
18427
|
|
18290
18428
|
list = @unit_tags
|
18291
18429
|
if list.size > 0
|
18292
|
-
buff << 0x12
|
18293
|
-
|
18294
|
-
# Save the buffer size before appending the repeated bytes
|
18295
|
-
current_len = buff.bytesize
|
18296
|
-
|
18297
|
-
# Write a single dummy byte to later store encoded length
|
18298
|
-
buff << 42 # "*"
|
18299
|
-
|
18300
|
-
# write each item
|
18301
18430
|
list.each do |item|
|
18302
18431
|
val = item
|
18303
18432
|
if val != 0
|
18433
|
+
buff << 0x10
|
18434
|
+
|
18304
18435
|
while val != 0
|
18305
18436
|
byte = val & 0x7F
|
18306
18437
|
val >>= 7
|
@@ -18309,42 +18440,8 @@ module Api
|
|
18309
18440
|
end
|
18310
18441
|
end
|
18311
18442
|
end
|
18312
|
-
|
18313
|
-
# Calculate the submessage's size
|
18314
|
-
submessage_size = buff.bytesize - current_len - 1
|
18315
|
-
|
18316
|
-
# Hope the size fits in one byte
|
18317
|
-
byte = submessage_size & 0x7F
|
18318
|
-
submessage_size >>= 7
|
18319
|
-
byte |= 0x80 if submessage_size > 0
|
18320
|
-
buff.setbyte(current_len, byte)
|
18321
|
-
|
18322
|
-
# If the sub message was bigger
|
18323
|
-
if submessage_size > 0
|
18324
|
-
current_len += 1
|
18325
|
-
|
18326
|
-
# compute how much we need to shift
|
18327
|
-
encoded_int_len = 0
|
18328
|
-
remaining_size = submessage_size
|
18329
|
-
while remaining_size != 0
|
18330
|
-
remaining_size >>= 7
|
18331
|
-
encoded_int_len += 1
|
18332
|
-
end
|
18333
|
-
|
18334
|
-
# Make space in the string with dummy bytes
|
18335
|
-
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
|
18336
|
-
|
18337
|
-
# Overwrite the dummy bytes with the encoded length
|
18338
|
-
while submessage_size != 0
|
18339
|
-
byte = submessage_size & 0x7F
|
18340
|
-
submessage_size >>= 7
|
18341
|
-
byte |= 0x80 if submessage_size > 0
|
18342
|
-
buff.setbyte(current_len, byte)
|
18343
|
-
current_len += 1
|
18344
|
-
end
|
18345
|
-
end
|
18346
18443
|
end
|
18347
|
-
|
18444
|
+
buff << @_unknown_fields if @_unknown_fields
|
18348
18445
|
buff
|
18349
18446
|
end
|
18350
18447
|
|