sc2ai 0.4.1 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- 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 +4 -4
- data/lib/sc2ai/player/geo.rb +1 -0
- 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
- data/sig/sc2ai.rbs +2 -2
- 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
@@ -527,20 +527,38 @@ module Api
|
|
527
527
|
# unexpected, so discard it and continue.
|
528
528
|
if !found
|
529
529
|
wire_type = tag & 0x7
|
530
|
+
|
531
|
+
unknown_bytes = +"".b
|
532
|
+
val = tag
|
533
|
+
while val != 0
|
534
|
+
byte = val & 0x7F
|
535
|
+
|
536
|
+
val >>= 7
|
537
|
+
# This drops the top bits,
|
538
|
+
# Otherwise, with a signed right shift,
|
539
|
+
# we get infinity one bits at the top
|
540
|
+
val &= (1 << 57) - 1
|
541
|
+
|
542
|
+
byte |= 0x80 if val != 0
|
543
|
+
unknown_bytes << byte
|
544
|
+
end
|
545
|
+
|
530
546
|
case wire_type
|
531
547
|
when 0
|
532
548
|
i = 0
|
533
549
|
while true
|
534
550
|
newbyte = buff.getbyte(index)
|
535
551
|
index += 1
|
536
|
-
break if newbyte.nil?
|
552
|
+
break if newbyte.nil?
|
553
|
+
unknown_bytes << newbyte
|
554
|
+
break if newbyte < 0x80
|
537
555
|
i += 1
|
538
556
|
break if i > 9
|
539
557
|
end
|
540
558
|
when 1
|
559
|
+
unknown_bytes << buff.byteslice(index, 8)
|
541
560
|
index += 8
|
542
561
|
when 2
|
543
|
-
## PULL_BYTES
|
544
562
|
value =
|
545
563
|
if (byte0 = buff.getbyte(index)) < 0x80
|
546
564
|
index += 1
|
@@ -596,15 +614,29 @@ module Api
|
|
596
614
|
raise "integer decoding error"
|
597
615
|
end
|
598
616
|
|
599
|
-
|
600
|
-
|
617
|
+
val = value
|
618
|
+
while val != 0
|
619
|
+
byte = val & 0x7F
|
620
|
+
|
621
|
+
val >>= 7
|
622
|
+
# This drops the top bits,
|
623
|
+
# Otherwise, with a signed right shift,
|
624
|
+
# we get infinity one bits at the top
|
625
|
+
val &= (1 << 57) - 1
|
626
|
+
|
627
|
+
byte |= 0x80 if val != 0
|
628
|
+
unknown_bytes << byte
|
629
|
+
end
|
601
630
|
|
602
|
-
|
631
|
+
unknown_bytes << buff.byteslice(index, value)
|
632
|
+
index += value
|
603
633
|
when 5
|
634
|
+
unknown_bytes << buff.byteslice(index, 4)
|
604
635
|
index += 4
|
605
636
|
else
|
606
637
|
raise "unknown wire type #{wire_type}"
|
607
638
|
end
|
639
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
608
640
|
return self if index >= len
|
609
641
|
## PULL_UINT64
|
610
642
|
tag =
|
@@ -2151,7 +2183,7 @@ module Api
|
|
2151
2183
|
|
2152
2184
|
[val].pack("e", buffer: buff)
|
2153
2185
|
end
|
2154
|
-
|
2186
|
+
buff << @_unknown_fields if @_unknown_fields
|
2155
2187
|
buff
|
2156
2188
|
end
|
2157
2189
|
|
@@ -2297,20 +2329,38 @@ module Api
|
|
2297
2329
|
# unexpected, so discard it and continue.
|
2298
2330
|
if !found
|
2299
2331
|
wire_type = tag & 0x7
|
2332
|
+
|
2333
|
+
unknown_bytes = +"".b
|
2334
|
+
val = tag
|
2335
|
+
while val != 0
|
2336
|
+
byte = val & 0x7F
|
2337
|
+
|
2338
|
+
val >>= 7
|
2339
|
+
# This drops the top bits,
|
2340
|
+
# Otherwise, with a signed right shift,
|
2341
|
+
# we get infinity one bits at the top
|
2342
|
+
val &= (1 << 57) - 1
|
2343
|
+
|
2344
|
+
byte |= 0x80 if val != 0
|
2345
|
+
unknown_bytes << byte
|
2346
|
+
end
|
2347
|
+
|
2300
2348
|
case wire_type
|
2301
2349
|
when 0
|
2302
2350
|
i = 0
|
2303
2351
|
while true
|
2304
2352
|
newbyte = buff.getbyte(index)
|
2305
2353
|
index += 1
|
2306
|
-
break if newbyte.nil?
|
2354
|
+
break if newbyte.nil?
|
2355
|
+
unknown_bytes << newbyte
|
2356
|
+
break if newbyte < 0x80
|
2307
2357
|
i += 1
|
2308
2358
|
break if i > 9
|
2309
2359
|
end
|
2310
2360
|
when 1
|
2361
|
+
unknown_bytes << buff.byteslice(index, 8)
|
2311
2362
|
index += 8
|
2312
2363
|
when 2
|
2313
|
-
## PULL_BYTES
|
2314
2364
|
value =
|
2315
2365
|
if (byte0 = buff.getbyte(index)) < 0x80
|
2316
2366
|
index += 1
|
@@ -2366,15 +2416,29 @@ module Api
|
|
2366
2416
|
raise "integer decoding error"
|
2367
2417
|
end
|
2368
2418
|
|
2369
|
-
|
2370
|
-
|
2419
|
+
val = value
|
2420
|
+
while val != 0
|
2421
|
+
byte = val & 0x7F
|
2422
|
+
|
2423
|
+
val >>= 7
|
2424
|
+
# This drops the top bits,
|
2425
|
+
# Otherwise, with a signed right shift,
|
2426
|
+
# we get infinity one bits at the top
|
2427
|
+
val &= (1 << 57) - 1
|
2428
|
+
|
2429
|
+
byte |= 0x80 if val != 0
|
2430
|
+
unknown_bytes << byte
|
2431
|
+
end
|
2371
2432
|
|
2372
|
-
|
2433
|
+
unknown_bytes << buff.byteslice(index, value)
|
2434
|
+
index += value
|
2373
2435
|
when 5
|
2436
|
+
unknown_bytes << buff.byteslice(index, 4)
|
2374
2437
|
index += 4
|
2375
2438
|
else
|
2376
2439
|
raise "unknown wire type #{wire_type}"
|
2377
2440
|
end
|
2441
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
2378
2442
|
return self if index >= len
|
2379
2443
|
## PULL_UINT64
|
2380
2444
|
tag =
|
@@ -2637,7 +2701,7 @@ module Api
|
|
2637
2701
|
|
2638
2702
|
[val].pack("e", buffer: buff)
|
2639
2703
|
end
|
2640
|
-
|
2704
|
+
buff << @_unknown_fields if @_unknown_fields
|
2641
2705
|
buff
|
2642
2706
|
end
|
2643
2707
|
|
@@ -2882,20 +2946,38 @@ module Api
|
|
2882
2946
|
# unexpected, so discard it and continue.
|
2883
2947
|
if !found
|
2884
2948
|
wire_type = tag & 0x7
|
2949
|
+
|
2950
|
+
unknown_bytes = +"".b
|
2951
|
+
val = tag
|
2952
|
+
while val != 0
|
2953
|
+
byte = val & 0x7F
|
2954
|
+
|
2955
|
+
val >>= 7
|
2956
|
+
# This drops the top bits,
|
2957
|
+
# Otherwise, with a signed right shift,
|
2958
|
+
# we get infinity one bits at the top
|
2959
|
+
val &= (1 << 57) - 1
|
2960
|
+
|
2961
|
+
byte |= 0x80 if val != 0
|
2962
|
+
unknown_bytes << byte
|
2963
|
+
end
|
2964
|
+
|
2885
2965
|
case wire_type
|
2886
2966
|
when 0
|
2887
2967
|
i = 0
|
2888
2968
|
while true
|
2889
2969
|
newbyte = buff.getbyte(index)
|
2890
2970
|
index += 1
|
2891
|
-
break if newbyte.nil?
|
2971
|
+
break if newbyte.nil?
|
2972
|
+
unknown_bytes << newbyte
|
2973
|
+
break if newbyte < 0x80
|
2892
2974
|
i += 1
|
2893
2975
|
break if i > 9
|
2894
2976
|
end
|
2895
2977
|
when 1
|
2978
|
+
unknown_bytes << buff.byteslice(index, 8)
|
2896
2979
|
index += 8
|
2897
2980
|
when 2
|
2898
|
-
## PULL_BYTES
|
2899
2981
|
value =
|
2900
2982
|
if (byte0 = buff.getbyte(index)) < 0x80
|
2901
2983
|
index += 1
|
@@ -2951,15 +3033,29 @@ module Api
|
|
2951
3033
|
raise "integer decoding error"
|
2952
3034
|
end
|
2953
3035
|
|
2954
|
-
|
2955
|
-
|
3036
|
+
val = value
|
3037
|
+
while val != 0
|
3038
|
+
byte = val & 0x7F
|
3039
|
+
|
3040
|
+
val >>= 7
|
3041
|
+
# This drops the top bits,
|
3042
|
+
# Otherwise, with a signed right shift,
|
3043
|
+
# we get infinity one bits at the top
|
3044
|
+
val &= (1 << 57) - 1
|
3045
|
+
|
3046
|
+
byte |= 0x80 if val != 0
|
3047
|
+
unknown_bytes << byte
|
3048
|
+
end
|
2956
3049
|
|
2957
|
-
|
3050
|
+
unknown_bytes << buff.byteslice(index, value)
|
3051
|
+
index += value
|
2958
3052
|
when 5
|
3053
|
+
unknown_bytes << buff.byteslice(index, 4)
|
2959
3054
|
index += 4
|
2960
3055
|
else
|
2961
3056
|
raise "unknown wire type #{wire_type}"
|
2962
3057
|
end
|
3058
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
2963
3059
|
return self if index >= len
|
2964
3060
|
## PULL_UINT64
|
2965
3061
|
tag =
|
@@ -3661,7 +3757,7 @@ module Api
|
|
3661
3757
|
|
3662
3758
|
[val].pack("e", buffer: buff)
|
3663
3759
|
end
|
3664
|
-
|
3760
|
+
buff << @_unknown_fields if @_unknown_fields
|
3665
3761
|
buff
|
3666
3762
|
end
|
3667
3763
|
|
@@ -4246,20 +4342,38 @@ module Api
|
|
4246
4342
|
# unexpected, so discard it and continue.
|
4247
4343
|
if !found
|
4248
4344
|
wire_type = tag & 0x7
|
4345
|
+
|
4346
|
+
unknown_bytes = +"".b
|
4347
|
+
val = tag
|
4348
|
+
while val != 0
|
4349
|
+
byte = val & 0x7F
|
4350
|
+
|
4351
|
+
val >>= 7
|
4352
|
+
# This drops the top bits,
|
4353
|
+
# Otherwise, with a signed right shift,
|
4354
|
+
# we get infinity one bits at the top
|
4355
|
+
val &= (1 << 57) - 1
|
4356
|
+
|
4357
|
+
byte |= 0x80 if val != 0
|
4358
|
+
unknown_bytes << byte
|
4359
|
+
end
|
4360
|
+
|
4249
4361
|
case wire_type
|
4250
4362
|
when 0
|
4251
4363
|
i = 0
|
4252
4364
|
while true
|
4253
4365
|
newbyte = buff.getbyte(index)
|
4254
4366
|
index += 1
|
4255
|
-
break if newbyte.nil?
|
4367
|
+
break if newbyte.nil?
|
4368
|
+
unknown_bytes << newbyte
|
4369
|
+
break if newbyte < 0x80
|
4256
4370
|
i += 1
|
4257
4371
|
break if i > 9
|
4258
4372
|
end
|
4259
4373
|
when 1
|
4374
|
+
unknown_bytes << buff.byteslice(index, 8)
|
4260
4375
|
index += 8
|
4261
4376
|
when 2
|
4262
|
-
## PULL_BYTES
|
4263
4377
|
value =
|
4264
4378
|
if (byte0 = buff.getbyte(index)) < 0x80
|
4265
4379
|
index += 1
|
@@ -4315,15 +4429,29 @@ module Api
|
|
4315
4429
|
raise "integer decoding error"
|
4316
4430
|
end
|
4317
4431
|
|
4318
|
-
|
4319
|
-
|
4432
|
+
val = value
|
4433
|
+
while val != 0
|
4434
|
+
byte = val & 0x7F
|
4320
4435
|
|
4321
|
-
|
4436
|
+
val >>= 7
|
4437
|
+
# This drops the top bits,
|
4438
|
+
# Otherwise, with a signed right shift,
|
4439
|
+
# we get infinity one bits at the top
|
4440
|
+
val &= (1 << 57) - 1
|
4441
|
+
|
4442
|
+
byte |= 0x80 if val != 0
|
4443
|
+
unknown_bytes << byte
|
4444
|
+
end
|
4445
|
+
|
4446
|
+
unknown_bytes << buff.byteslice(index, value)
|
4447
|
+
index += value
|
4322
4448
|
when 5
|
4449
|
+
unknown_bytes << buff.byteslice(index, 4)
|
4323
4450
|
index += 4
|
4324
4451
|
else
|
4325
4452
|
raise "unknown wire type #{wire_type}"
|
4326
4453
|
end
|
4454
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
4327
4455
|
return self if index >= len
|
4328
4456
|
## PULL_UINT64
|
4329
4457
|
tag =
|
@@ -5565,64 +5693,11 @@ module Api
|
|
5565
5693
|
|
5566
5694
|
## END PULL_UINT64
|
5567
5695
|
end
|
5568
|
-
if tag ==
|
5696
|
+
if tag == 0xa8
|
5569
5697
|
found = true
|
5570
|
-
##
|
5571
|
-
value =
|
5572
|
-
if (byte0 = buff.getbyte(index)) < 0x80
|
5573
|
-
index += 1
|
5574
|
-
byte0
|
5575
|
-
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
5576
|
-
index += 2
|
5577
|
-
(byte1 << 7) | (byte0 & 0x7F)
|
5578
|
-
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
5579
|
-
index += 3
|
5580
|
-
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5581
|
-
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
5582
|
-
index += 4
|
5583
|
-
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
5584
|
-
(byte0 & 0x7F)
|
5585
|
-
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
5586
|
-
index += 5
|
5587
|
-
(byte4 << 28) | ((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
5588
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5589
|
-
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
5590
|
-
index += 6
|
5591
|
-
(byte5 << 35) | ((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
5592
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5593
|
-
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
5594
|
-
index += 7
|
5595
|
-
(byte6 << 42) | ((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
5596
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
5597
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5598
|
-
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
5599
|
-
index += 8
|
5600
|
-
(byte7 << 49) | ((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
5601
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
5602
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5603
|
-
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
5604
|
-
index += 9
|
5605
|
-
(byte8 << 56) | ((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
5606
|
-
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
5607
|
-
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
5608
|
-
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5609
|
-
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
5610
|
-
index += 10
|
5611
|
-
|
5612
|
-
(byte9 << 63) | ((byte8 & 0x7F) << 56) | ((byte7 & 0x7F) << 49) |
|
5613
|
-
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
5614
|
-
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
5615
|
-
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5616
|
-
else
|
5617
|
-
raise "integer decoding error"
|
5618
|
-
end
|
5619
|
-
|
5620
|
-
## END PULL_UINT64
|
5621
|
-
|
5622
|
-
goal = index + value
|
5698
|
+
## DECODE REPEATED
|
5623
5699
|
list = @tech_alias
|
5624
5700
|
while true
|
5625
|
-
break if index >= goal
|
5626
5701
|
## PULL_UINT64
|
5627
5702
|
list << if (byte0 = buff.getbyte(index)) < 0x80
|
5628
5703
|
index += 1
|
@@ -5673,60 +5748,71 @@ module Api
|
|
5673
5748
|
end
|
5674
5749
|
|
5675
5750
|
## END PULL_UINT64
|
5676
|
-
end
|
5677
5751
|
|
5678
|
-
|
5679
|
-
|
5680
|
-
|
5681
|
-
|
5682
|
-
|
5683
|
-
|
5684
|
-
|
5685
|
-
|
5686
|
-
|
5687
|
-
|
5688
|
-
|
5689
|
-
|
5690
|
-
|
5691
|
-
|
5692
|
-
|
5693
|
-
|
5694
|
-
|
5695
|
-
|
5696
|
-
|
5697
|
-
|
5698
|
-
|
5699
|
-
index
|
5700
|
-
|
5701
|
-
(
|
5702
|
-
|
5703
|
-
|
5704
|
-
(byte6
|
5705
|
-
|
5706
|
-
(
|
5707
|
-
|
5708
|
-
|
5709
|
-
|
5710
|
-
|
5711
|
-
|
5712
|
-
|
5713
|
-
|
5714
|
-
|
5715
|
-
|
5716
|
-
|
5717
|
-
|
5718
|
-
|
5719
|
-
|
5752
|
+
return self if index >= len
|
5753
|
+
## PULL_UINT64
|
5754
|
+
tag =
|
5755
|
+
if (byte0 = buff.getbyte(index)) < 0x80
|
5756
|
+
index += 1
|
5757
|
+
byte0
|
5758
|
+
elsif (byte1 = buff.getbyte(index + 1)) < 0x80
|
5759
|
+
index += 2
|
5760
|
+
(byte1 << 7) | (byte0 & 0x7F)
|
5761
|
+
elsif (byte2 = buff.getbyte(index + 2)) < 0x80
|
5762
|
+
index += 3
|
5763
|
+
(byte2 << 14) | ((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5764
|
+
elsif (byte3 = buff.getbyte(index + 3)) < 0x80
|
5765
|
+
index += 4
|
5766
|
+
(byte3 << 21) | ((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
5767
|
+
(byte0 & 0x7F)
|
5768
|
+
elsif (byte4 = buff.getbyte(index + 4)) < 0x80
|
5769
|
+
index += 5
|
5770
|
+
(byte4 << 28) | ((byte3 & 0x7F) << 21) |
|
5771
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
5772
|
+
(byte0 & 0x7F)
|
5773
|
+
elsif (byte5 = buff.getbyte(index + 5)) < 0x80
|
5774
|
+
index += 6
|
5775
|
+
(byte5 << 35) | ((byte4 & 0x7F) << 28) |
|
5776
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
5777
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5778
|
+
elsif (byte6 = buff.getbyte(index + 6)) < 0x80
|
5779
|
+
index += 7
|
5780
|
+
(byte6 << 42) | ((byte5 & 0x7F) << 35) |
|
5781
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
5782
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
5783
|
+
(byte0 & 0x7F)
|
5784
|
+
elsif (byte7 = buff.getbyte(index + 7)) < 0x80
|
5785
|
+
index += 8
|
5786
|
+
(byte7 << 49) | ((byte6 & 0x7F) << 42) |
|
5787
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
5788
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
5789
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5790
|
+
elsif (byte8 = buff.getbyte(index + 8)) < 0x80
|
5791
|
+
index += 9
|
5792
|
+
(byte8 << 56) | ((byte7 & 0x7F) << 49) |
|
5793
|
+
((byte6 & 0x7F) << 42) | ((byte5 & 0x7F) << 35) |
|
5794
|
+
((byte4 & 0x7F) << 28) | ((byte3 & 0x7F) << 21) |
|
5795
|
+
((byte2 & 0x7F) << 14) | ((byte1 & 0x7F) << 7) |
|
5796
|
+
(byte0 & 0x7F)
|
5797
|
+
elsif (byte9 = buff.getbyte(index + 9)) < 0x80
|
5798
|
+
index += 10
|
5720
5799
|
|
5721
|
-
|
5722
|
-
|
5723
|
-
|
5724
|
-
|
5725
|
-
|
5726
|
-
|
5727
|
-
|
5800
|
+
(byte9 << 63) | ((byte8 & 0x7F) << 56) |
|
5801
|
+
((byte7 & 0x7F) << 49) | ((byte6 & 0x7F) << 42) |
|
5802
|
+
((byte5 & 0x7F) << 35) | ((byte4 & 0x7F) << 28) |
|
5803
|
+
((byte3 & 0x7F) << 21) | ((byte2 & 0x7F) << 14) |
|
5804
|
+
((byte1 & 0x7F) << 7) | (byte0 & 0x7F)
|
5805
|
+
else
|
5806
|
+
raise "integer decoding error"
|
5807
|
+
end
|
5728
5808
|
|
5729
|
-
|
5809
|
+
## END PULL_UINT64
|
5810
|
+
|
5811
|
+
break unless tag == 0xa8
|
5812
|
+
end
|
5813
|
+
## END DECODE REPEATED
|
5814
|
+
|
5815
|
+
return self if index >= len
|
5730
5816
|
end
|
5731
5817
|
if tag == 0xb0
|
5732
5818
|
found = true
|
@@ -6555,19 +6641,12 @@ module Api
|
|
6555
6641
|
|
6556
6642
|
list = @tech_alias
|
6557
6643
|
if list.size > 0
|
6558
|
-
buff << 0xaa
|
6559
|
-
buff << 0x01
|
6560
|
-
|
6561
|
-
# Save the buffer size before appending the repeated bytes
|
6562
|
-
current_len = buff.bytesize
|
6563
|
-
|
6564
|
-
# Write a single dummy byte to later store encoded length
|
6565
|
-
buff << 42 # "*"
|
6566
|
-
|
6567
|
-
# write each item
|
6568
6644
|
list.each do |item|
|
6569
6645
|
val = item
|
6570
6646
|
if val != 0
|
6647
|
+
buff << 0xa8
|
6648
|
+
buff << 0x01
|
6649
|
+
|
6571
6650
|
while val != 0
|
6572
6651
|
byte = val & 0x7F
|
6573
6652
|
val >>= 7
|
@@ -6576,40 +6655,6 @@ module Api
|
|
6576
6655
|
end
|
6577
6656
|
end
|
6578
6657
|
end
|
6579
|
-
|
6580
|
-
# Calculate the submessage's size
|
6581
|
-
submessage_size = buff.bytesize - current_len - 1
|
6582
|
-
|
6583
|
-
# Hope the size fits in one byte
|
6584
|
-
byte = submessage_size & 0x7F
|
6585
|
-
submessage_size >>= 7
|
6586
|
-
byte |= 0x80 if submessage_size > 0
|
6587
|
-
buff.setbyte(current_len, byte)
|
6588
|
-
|
6589
|
-
# If the sub message was bigger
|
6590
|
-
if submessage_size > 0
|
6591
|
-
current_len += 1
|
6592
|
-
|
6593
|
-
# compute how much we need to shift
|
6594
|
-
encoded_int_len = 0
|
6595
|
-
remaining_size = submessage_size
|
6596
|
-
while remaining_size != 0
|
6597
|
-
remaining_size >>= 7
|
6598
|
-
encoded_int_len += 1
|
6599
|
-
end
|
6600
|
-
|
6601
|
-
# Make space in the string with dummy bytes
|
6602
|
-
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
|
6603
|
-
|
6604
|
-
# Overwrite the dummy bytes with the encoded length
|
6605
|
-
while submessage_size != 0
|
6606
|
-
byte = submessage_size & 0x7F
|
6607
|
-
submessage_size >>= 7
|
6608
|
-
byte |= 0x80 if submessage_size > 0
|
6609
|
-
buff.setbyte(current_len, byte)
|
6610
|
-
current_len += 1
|
6611
|
-
end
|
6612
|
-
end
|
6613
6658
|
end
|
6614
6659
|
|
6615
6660
|
val = @unit_alias
|
@@ -6739,7 +6784,7 @@ module Api
|
|
6739
6784
|
end
|
6740
6785
|
end
|
6741
6786
|
end
|
6742
|
-
|
6787
|
+
buff << @_unknown_fields if @_unknown_fields
|
6743
6788
|
buff
|
6744
6789
|
end
|
6745
6790
|
|
@@ -7013,20 +7058,38 @@ module Api
|
|
7013
7058
|
# unexpected, so discard it and continue.
|
7014
7059
|
if !found
|
7015
7060
|
wire_type = tag & 0x7
|
7061
|
+
|
7062
|
+
unknown_bytes = +"".b
|
7063
|
+
val = tag
|
7064
|
+
while val != 0
|
7065
|
+
byte = val & 0x7F
|
7066
|
+
|
7067
|
+
val >>= 7
|
7068
|
+
# This drops the top bits,
|
7069
|
+
# Otherwise, with a signed right shift,
|
7070
|
+
# we get infinity one bits at the top
|
7071
|
+
val &= (1 << 57) - 1
|
7072
|
+
|
7073
|
+
byte |= 0x80 if val != 0
|
7074
|
+
unknown_bytes << byte
|
7075
|
+
end
|
7076
|
+
|
7016
7077
|
case wire_type
|
7017
7078
|
when 0
|
7018
7079
|
i = 0
|
7019
7080
|
while true
|
7020
7081
|
newbyte = buff.getbyte(index)
|
7021
7082
|
index += 1
|
7022
|
-
break if newbyte.nil?
|
7083
|
+
break if newbyte.nil?
|
7084
|
+
unknown_bytes << newbyte
|
7085
|
+
break if newbyte < 0x80
|
7023
7086
|
i += 1
|
7024
7087
|
break if i > 9
|
7025
7088
|
end
|
7026
7089
|
when 1
|
7090
|
+
unknown_bytes << buff.byteslice(index, 8)
|
7027
7091
|
index += 8
|
7028
7092
|
when 2
|
7029
|
-
## PULL_BYTES
|
7030
7093
|
value =
|
7031
7094
|
if (byte0 = buff.getbyte(index)) < 0x80
|
7032
7095
|
index += 1
|
@@ -7082,15 +7145,29 @@ module Api
|
|
7082
7145
|
raise "integer decoding error"
|
7083
7146
|
end
|
7084
7147
|
|
7085
|
-
|
7086
|
-
|
7148
|
+
val = value
|
7149
|
+
while val != 0
|
7150
|
+
byte = val & 0x7F
|
7087
7151
|
|
7088
|
-
|
7152
|
+
val >>= 7
|
7153
|
+
# This drops the top bits,
|
7154
|
+
# Otherwise, with a signed right shift,
|
7155
|
+
# we get infinity one bits at the top
|
7156
|
+
val &= (1 << 57) - 1
|
7157
|
+
|
7158
|
+
byte |= 0x80 if val != 0
|
7159
|
+
unknown_bytes << byte
|
7160
|
+
end
|
7161
|
+
|
7162
|
+
unknown_bytes << buff.byteslice(index, value)
|
7163
|
+
index += value
|
7089
7164
|
when 5
|
7165
|
+
unknown_bytes << buff.byteslice(index, 4)
|
7090
7166
|
index += 4
|
7091
7167
|
else
|
7092
7168
|
raise "unknown wire type #{wire_type}"
|
7093
7169
|
end
|
7170
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
7094
7171
|
return self if index >= len
|
7095
7172
|
## PULL_UINT64
|
7096
7173
|
tag =
|
@@ -7819,7 +7896,7 @@ module Api
|
|
7819
7896
|
buff << byte
|
7820
7897
|
end
|
7821
7898
|
end
|
7822
|
-
|
7899
|
+
buff << @_unknown_fields if @_unknown_fields
|
7823
7900
|
buff
|
7824
7901
|
end
|
7825
7902
|
|
@@ -7967,20 +8044,38 @@ module Api
|
|
7967
8044
|
# unexpected, so discard it and continue.
|
7968
8045
|
if !found
|
7969
8046
|
wire_type = tag & 0x7
|
8047
|
+
|
8048
|
+
unknown_bytes = +"".b
|
8049
|
+
val = tag
|
8050
|
+
while val != 0
|
8051
|
+
byte = val & 0x7F
|
8052
|
+
|
8053
|
+
val >>= 7
|
8054
|
+
# This drops the top bits,
|
8055
|
+
# Otherwise, with a signed right shift,
|
8056
|
+
# we get infinity one bits at the top
|
8057
|
+
val &= (1 << 57) - 1
|
8058
|
+
|
8059
|
+
byte |= 0x80 if val != 0
|
8060
|
+
unknown_bytes << byte
|
8061
|
+
end
|
8062
|
+
|
7970
8063
|
case wire_type
|
7971
8064
|
when 0
|
7972
8065
|
i = 0
|
7973
8066
|
while true
|
7974
8067
|
newbyte = buff.getbyte(index)
|
7975
8068
|
index += 1
|
7976
|
-
break if newbyte.nil?
|
8069
|
+
break if newbyte.nil?
|
8070
|
+
unknown_bytes << newbyte
|
8071
|
+
break if newbyte < 0x80
|
7977
8072
|
i += 1
|
7978
8073
|
break if i > 9
|
7979
8074
|
end
|
7980
8075
|
when 1
|
8076
|
+
unknown_bytes << buff.byteslice(index, 8)
|
7981
8077
|
index += 8
|
7982
8078
|
when 2
|
7983
|
-
## PULL_BYTES
|
7984
8079
|
value =
|
7985
8080
|
if (byte0 = buff.getbyte(index)) < 0x80
|
7986
8081
|
index += 1
|
@@ -8036,15 +8131,29 @@ module Api
|
|
8036
8131
|
raise "integer decoding error"
|
8037
8132
|
end
|
8038
8133
|
|
8039
|
-
|
8040
|
-
|
8134
|
+
val = value
|
8135
|
+
while val != 0
|
8136
|
+
byte = val & 0x7F
|
8137
|
+
|
8138
|
+
val >>= 7
|
8139
|
+
# This drops the top bits,
|
8140
|
+
# Otherwise, with a signed right shift,
|
8141
|
+
# we get infinity one bits at the top
|
8142
|
+
val &= (1 << 57) - 1
|
8041
8143
|
|
8042
|
-
|
8144
|
+
byte |= 0x80 if val != 0
|
8145
|
+
unknown_bytes << byte
|
8146
|
+
end
|
8147
|
+
|
8148
|
+
unknown_bytes << buff.byteslice(index, value)
|
8149
|
+
index += value
|
8043
8150
|
when 5
|
8151
|
+
unknown_bytes << buff.byteslice(index, 4)
|
8044
8152
|
index += 4
|
8045
8153
|
else
|
8046
8154
|
raise "unknown wire type #{wire_type}"
|
8047
8155
|
end
|
8156
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
8048
8157
|
return self if index >= len
|
8049
8158
|
## PULL_UINT64
|
8050
8159
|
tag =
|
@@ -8348,7 +8457,7 @@ module Api
|
|
8348
8457
|
|
8349
8458
|
buff << (val.ascii_only? ? val : val.b)
|
8350
8459
|
end
|
8351
|
-
|
8460
|
+
buff << @_unknown_fields if @_unknown_fields
|
8352
8461
|
buff
|
8353
8462
|
end
|
8354
8463
|
|
@@ -8530,20 +8639,38 @@ module Api
|
|
8530
8639
|
# unexpected, so discard it and continue.
|
8531
8640
|
if !found
|
8532
8641
|
wire_type = tag & 0x7
|
8642
|
+
|
8643
|
+
unknown_bytes = +"".b
|
8644
|
+
val = tag
|
8645
|
+
while val != 0
|
8646
|
+
byte = val & 0x7F
|
8647
|
+
|
8648
|
+
val >>= 7
|
8649
|
+
# This drops the top bits,
|
8650
|
+
# Otherwise, with a signed right shift,
|
8651
|
+
# we get infinity one bits at the top
|
8652
|
+
val &= (1 << 57) - 1
|
8653
|
+
|
8654
|
+
byte |= 0x80 if val != 0
|
8655
|
+
unknown_bytes << byte
|
8656
|
+
end
|
8657
|
+
|
8533
8658
|
case wire_type
|
8534
8659
|
when 0
|
8535
8660
|
i = 0
|
8536
8661
|
while true
|
8537
8662
|
newbyte = buff.getbyte(index)
|
8538
8663
|
index += 1
|
8539
|
-
break if newbyte.nil?
|
8664
|
+
break if newbyte.nil?
|
8665
|
+
unknown_bytes << newbyte
|
8666
|
+
break if newbyte < 0x80
|
8540
8667
|
i += 1
|
8541
8668
|
break if i > 9
|
8542
8669
|
end
|
8543
8670
|
when 1
|
8671
|
+
unknown_bytes << buff.byteslice(index, 8)
|
8544
8672
|
index += 8
|
8545
8673
|
when 2
|
8546
|
-
## PULL_BYTES
|
8547
8674
|
value =
|
8548
8675
|
if (byte0 = buff.getbyte(index)) < 0x80
|
8549
8676
|
index += 1
|
@@ -8599,15 +8726,29 @@ module Api
|
|
8599
8726
|
raise "integer decoding error"
|
8600
8727
|
end
|
8601
8728
|
|
8602
|
-
|
8603
|
-
|
8729
|
+
val = value
|
8730
|
+
while val != 0
|
8731
|
+
byte = val & 0x7F
|
8604
8732
|
|
8605
|
-
|
8733
|
+
val >>= 7
|
8734
|
+
# This drops the top bits,
|
8735
|
+
# Otherwise, with a signed right shift,
|
8736
|
+
# we get infinity one bits at the top
|
8737
|
+
val &= (1 << 57) - 1
|
8738
|
+
|
8739
|
+
byte |= 0x80 if val != 0
|
8740
|
+
unknown_bytes << byte
|
8741
|
+
end
|
8742
|
+
|
8743
|
+
unknown_bytes << buff.byteslice(index, value)
|
8744
|
+
index += value
|
8606
8745
|
when 5
|
8746
|
+
unknown_bytes << buff.byteslice(index, 4)
|
8607
8747
|
index += 4
|
8608
8748
|
else
|
8609
8749
|
raise "unknown wire type #{wire_type}"
|
8610
8750
|
end
|
8751
|
+
(@_unknown_fields ||= +"".b) << unknown_bytes
|
8611
8752
|
return self if index >= len
|
8612
8753
|
## PULL_UINT64
|
8613
8754
|
tag =
|
@@ -9101,7 +9242,7 @@ module Api
|
|
9101
9242
|
|
9102
9243
|
[val].pack("e", buffer: buff)
|
9103
9244
|
end
|
9104
|
-
|
9245
|
+
buff << @_unknown_fields if @_unknown_fields
|
9105
9246
|
buff
|
9106
9247
|
end
|
9107
9248
|
|