@projectqai/proto 0.0.44 → 0.0.47

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.
@@ -134,6 +134,11 @@ export declare type Entity = Message<"world.Entity"> & {
134
134
  */
135
135
  capture?: CaptureComponent;
136
136
 
137
+ /**
138
+ * @generated from field: optional world.GnssComponent gnss = 42;
139
+ */
140
+ gnss?: GnssComponent;
141
+
137
142
  /**
138
143
  * experimental, dont use yet externally
139
144
  *
@@ -210,6 +215,11 @@ export declare type Entity = Message<"world.Entity"> & {
210
215
  * @generated from field: optional world.ChatComponent chat = 39;
211
216
  */
212
217
  chat?: ChatComponent;
218
+
219
+ /**
220
+ * @generated from field: optional world.AssemblyComponent assembly = 40;
221
+ */
222
+ assembly?: AssemblyComponent;
213
223
  };
214
224
 
215
225
  /**
@@ -389,6 +399,47 @@ export declare type GeoSpatialComponent = Message<"world.GeoSpatialComponent"> &
389
399
  */
390
400
  export declare const GeoSpatialComponentSchema: GenMessage<GeoSpatialComponent>;
391
401
 
402
+ /**
403
+ * @generated from message world.GnssComponent
404
+ */
405
+ export declare type GnssComponent = Message<"world.GnssComponent"> & {
406
+ /**
407
+ * @generated from field: optional world.GnssFixType fix_type = 1;
408
+ */
409
+ fixType?: GnssFixType;
410
+
411
+ /**
412
+ * @generated from field: optional uint32 satellites_visible = 2;
413
+ */
414
+ satellitesVisible?: number;
415
+
416
+ /**
417
+ * @generated from field: optional uint32 satellites_used = 3;
418
+ */
419
+ satellitesUsed?: number;
420
+
421
+ /**
422
+ * @generated from field: optional float hdop = 4;
423
+ */
424
+ hdop?: number;
425
+
426
+ /**
427
+ * @generated from field: optional float vdop = 5;
428
+ */
429
+ vdop?: number;
430
+
431
+ /**
432
+ * @generated from field: optional float pdop = 6;
433
+ */
434
+ pdop?: number;
435
+ };
436
+
437
+ /**
438
+ * Describes the message world.GnssComponent.
439
+ * Use `create(GnssComponentSchema)` to create a new message.
440
+ */
441
+ export declare const GnssComponentSchema: GenMessage<GnssComponent>;
442
+
392
443
  /**
393
444
  * @generated from message world.SymbolComponent
394
445
  */
@@ -1444,6 +1495,20 @@ export declare type AdministrativeComponent = Message<"world.AdministrativeCompo
1444
1495
  */
1445
1496
  lengthM?: number;
1446
1497
 
1498
+ /**
1499
+ * beam / lateral extent
1500
+ *
1501
+ * @generated from field: optional float width_m = 10;
1502
+ */
1503
+ widthM?: number;
1504
+
1505
+ /**
1506
+ * vertical extent (e.g. air draft)
1507
+ *
1508
+ * @generated from field: optional float height_m = 11;
1509
+ */
1510
+ heightM?: number;
1511
+
1447
1512
  /**
1448
1513
  * @generated from field: optional float tonnage_gt = 8;
1449
1514
  */
@@ -1592,6 +1657,41 @@ export declare type LinkComponent = Message<"world.LinkComponent"> & {
1592
1657
  * @generated from field: optional google.protobuf.Timestamp last_seen = 8;
1593
1658
  */
1594
1659
  lastSeen?: Timestamp;
1660
+
1661
+ /**
1662
+ * link quality as percentage (0-100)
1663
+ *
1664
+ * @generated from field: optional uint32 link_quality_percent = 9;
1665
+ */
1666
+ linkQualityPercent?: number;
1667
+
1668
+ /**
1669
+ * transmit power in milliwatts
1670
+ *
1671
+ * @generated from field: optional uint32 tx_power_mw = 10;
1672
+ */
1673
+ txPowerMw?: number;
1674
+
1675
+ /**
1676
+ * active antenna index (e.g. 0 or 1 for antenna diversity)
1677
+ *
1678
+ * @generated from field: optional uint32 active_antenna = 11;
1679
+ */
1680
+ activeAntenna?: number;
1681
+
1682
+ /**
1683
+ * protocol-specific RF mode label (e.g. "250Hz", "50Hz")
1684
+ *
1685
+ * @generated from field: optional string rf_mode = 12;
1686
+ */
1687
+ rfMode?: string;
1688
+
1689
+ /**
1690
+ * packet rate in Hz
1691
+ *
1692
+ * @generated from field: optional uint32 packet_rate_hz = 13;
1693
+ */
1694
+ packetRateHz?: number;
1595
1695
  };
1596
1696
 
1597
1697
  /**
@@ -1677,6 +1777,20 @@ export declare type PowerComponent = Message<"world.PowerComponent"> & {
1677
1777
  * @generated from field: optional uint32 remaining_seconds = 3;
1678
1778
  */
1679
1779
  remainingSeconds?: number;
1780
+
1781
+ /**
1782
+ * instantaneous current draw in amps
1783
+ *
1784
+ * @generated from field: optional float current_a = 4;
1785
+ */
1786
+ currentA?: number;
1787
+
1788
+ /**
1789
+ * cumulative battery capacity consumed in milliamp-hours
1790
+ *
1791
+ * @generated from field: optional float capacity_used_mah = 5;
1792
+ */
1793
+ capacityUsedMah?: number;
1680
1794
  };
1681
1795
 
1682
1796
  /**
@@ -1879,6 +1993,22 @@ export declare type DeviceComponent = Message<"world.DeviceComponent"> & {
1879
1993
  */
1880
1994
  export declare const DeviceComponentSchema: GenMessage<DeviceComponent>;
1881
1995
 
1996
+ /**
1997
+ * @generated from message world.MissionKit
1998
+ */
1999
+ export declare type MissionKit = Message<"world.MissionKit"> & {
2000
+ /**
2001
+ * @generated from field: map<string, string> layouts = 1;
2002
+ */
2003
+ layouts: { [key: string]: string };
2004
+ };
2005
+
2006
+ /**
2007
+ * Describes the message world.MissionKit.
2008
+ * Use `create(MissionKitSchema)` to create a new message.
2009
+ */
2010
+ export declare const MissionKitSchema: GenMessage<MissionKit>;
2011
+
1882
2012
  /**
1883
2013
  * @generated from message world.NodeDevice
1884
2014
  */
@@ -1917,6 +2047,11 @@ export declare type NodeDevice = Message<"world.NodeDevice"> & {
1917
2047
  * @generated from field: optional string hydris_update_available = 7;
1918
2048
  */
1919
2049
  hydrisUpdateAvailable?: string;
2050
+
2051
+ /**
2052
+ * @generated from field: optional world.MissionKit mission_kit = 8;
2053
+ */
2054
+ missionKit?: MissionKit;
1920
2055
  };
1921
2056
 
1922
2057
  /**
@@ -2210,6 +2345,31 @@ export declare type ChatComponent = Message<"world.ChatComponent"> & {
2210
2345
  */
2211
2346
  export declare const ChatComponentSchema: GenMessage<ChatComponent>;
2212
2347
 
2348
+ /**
2349
+ * @generated from message world.AssemblyComponent
2350
+ */
2351
+ export declare type AssemblyComponent = Message<"world.AssemblyComponent"> & {
2352
+ /**
2353
+ * if set, this entity is part of some other bigger entity, like a vehicle
2354
+ *
2355
+ * @generated from field: optional string parent = 1;
2356
+ */
2357
+ parent?: string;
2358
+
2359
+ /**
2360
+ * pointer to ids of GeoShapeComponent entities that describe the outline of this assembly
2361
+ *
2362
+ * @generated from field: repeated string outline = 2;
2363
+ */
2364
+ outline: string[];
2365
+ };
2366
+
2367
+ /**
2368
+ * Describes the message world.AssemblyComponent.
2369
+ * Use `create(AssemblyComponentSchema)` to create a new message.
2370
+ */
2371
+ export declare const AssemblyComponentSchema: GenMessage<AssemblyComponent>;
2372
+
2213
2373
  /**
2214
2374
  * @generated from message world.EntityFilter
2215
2375
  */
@@ -2963,6 +3123,46 @@ export enum Priority {
2963
3123
  */
2964
3124
  export declare const PrioritySchema: GenEnum<Priority>;
2965
3125
 
3126
+ /**
3127
+ * @generated from enum world.GnssFixType
3128
+ */
3129
+ export enum GnssFixType {
3130
+ /**
3131
+ * @generated from enum value: GnssFixTypeNone = 0;
3132
+ */
3133
+ GnssFixTypeNone = 0,
3134
+
3135
+ /**
3136
+ * @generated from enum value: GnssFixType2D = 1;
3137
+ */
3138
+ GnssFixType2D = 1,
3139
+
3140
+ /**
3141
+ * @generated from enum value: GnssFixType3D = 2;
3142
+ */
3143
+ GnssFixType3D = 2,
3144
+
3145
+ /**
3146
+ * @generated from enum value: GnssFixTypeDGPS = 3;
3147
+ */
3148
+ GnssFixTypeDGPS = 3,
3149
+
3150
+ /**
3151
+ * @generated from enum value: GnssFixTypeRtkFloat = 4;
3152
+ */
3153
+ GnssFixTypeRtkFloat = 4,
3154
+
3155
+ /**
3156
+ * @generated from enum value: GnssFixTypeRtkFixed = 5;
3157
+ */
3158
+ GnssFixTypeRtkFixed = 5,
3159
+ }
3160
+
3161
+ /**
3162
+ * Describes the enum world.GnssFixType.
3163
+ */
3164
+ export declare const GnssFixTypeSchema: GenEnum<GnssFixType>;
3165
+
2966
3166
  /**
2967
3167
  * @generated from enum world.MediaStreamProtocol
2968
3168
  */
@@ -3587,6 +3787,11 @@ export enum EntityComponent {
3587
3787
  */
3588
3788
  EntityComponentTaskExecution = 41,
3589
3789
 
3790
+ /**
3791
+ * @generated from enum value: EntityComponentGnss = 42;
3792
+ */
3793
+ EntityComponentGnss = 42,
3794
+
3590
3795
  /**
3591
3796
  * @generated from enum value: EntityComponentDevice = 50;
3592
3797
  */
package/dist/world_pb.js CHANGED
@@ -11,7 +11,7 @@ import { file_metrics } from "./metrics_pb.js";
11
11
  * Describes the file world.proto.
12
12
  */
13
13
  export const file_world = /*@__PURE__*/
14
- fileDesc("Cgt3b3JsZC5wcm90bxIFd29ybGQi3REKBkVudGl0eRIKCgJpZBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBEioKCmNvbnRyb2xsZXIYAyABKAsyES53b3JsZC5Db250cm9sbGVySAGIAQESJgoIbGlmZXRpbWUYBCABKAsyDy53b3JsZC5MaWZldGltZUgCiAEBEiYKCHByaW9yaXR5GAUgASgOMg8ud29ybGQuUHJpb3JpdHlIA4gBARIgCgVsZWFzZRgGIAEoCzIMLndvcmxkLkxlYXNlSASIAQESJAoHcm91dGluZxgHIAEoCzIOLndvcmxkLlJvdXRpbmdIBYgBARIsCgNnZW8YCyABKAsyGi53b3JsZC5HZW9TcGF0aWFsQ29tcG9uZW50SAaIAQESKwoGc3ltYm9sGAwgASgLMhYud29ybGQuU3ltYm9sQ29tcG9uZW50SAeIAQESKwoGY2FtZXJhGA8gASgLMhYud29ybGQuQ2FtZXJhQ29tcG9uZW50SAiIAQESMQoJZGV0ZWN0aW9uGBAgASgLMhkud29ybGQuRGV0ZWN0aW9uQ29tcG9uZW50SAmIAQESLQoHYmVhcmluZxgRIAEoCzIXLndvcmxkLkJlYXJpbmdDb21wb25lbnRICogBARIpCgV0cmFjaxgVIAEoCzIVLndvcmxkLlRyYWNrQ29tcG9uZW50SAuIAQESLQoHbG9jYXRvchgWIAEoCzIXLndvcmxkLkxvY2F0b3JDb21wb25lbnRIDIgBARIzCgpraW5lbWF0aWNzGBggASgLMhoud29ybGQuS2luZW1hdGljc0NvbXBvbmVudEgNiAEBEiwKBXNoYXBlGBkgASgLMhgud29ybGQuR2VvU2hhcGVDb21wb25lbnRIDogBARI7Cg5jbGFzc2lmaWNhdGlvbhgaIAEoCzIeLndvcmxkLkNsYXNzaWZpY2F0aW9uQ29tcG9uZW50SA+IAQESNQoLdHJhbnNwb25kZXIYGyABKAsyGy53b3JsZC5UcmFuc3BvbmRlckNvbXBvbmVudEgQiAEBEjsKDmFkbWluaXN0cmF0aXZlGBwgASgLMh4ud29ybGQuQWRtaW5pc3RyYXRpdmVDb21wb25lbnRIEYgBARI1CgtvcmllbnRhdGlvbhgeIAEoCzIbLndvcmxkLk9yaWVudGF0aW9uQ29tcG9uZW50SBKIAQESMwoKbmF2aWdhdGlvbhgiIAEoCzIaLndvcmxkLk5hdmlnYXRpb25Db21wb25lbnRIE4gBARIpCgVwb3dlchghIAEoCzIVLndvcmxkLlBvd2VyQ29tcG9uZW50SBSIAQESLQoHY2FwdHVyZRgjIAEoCzIXLndvcmxkLkNhcHR1cmVDb21wb25lbnRIFYgBARIvCgh0YXNrYWJsZRgXIAEoCzIYLndvcmxkLlRhc2thYmxlQ29tcG9uZW50SBaIAQESKwoGZGV2aWNlGDIgASgLMhYud29ybGQuRGV2aWNlQ29tcG9uZW50SBeIAQESMgoGY29uZmlnGDMgASgLMh0ud29ybGQuQ29uZmlndXJhdGlvbkNvbXBvbmVudEgYiAEBEjcKDGNvbmZpZ3VyYWJsZRg0IAEoCzIcLndvcmxkLkNvbmZpZ3VyYWJsZUNvbXBvbmVudEgZiAEBEi0KB21pc3Npb24YHyABKAsyFy53b3JsZC5NaXNzaW9uQ29tcG9uZW50SBqIAQESJwoEbGluaxggIAEoCzIULndvcmxkLkxpbmtDb21wb25lbnRIG4gBARIrCgZtZXRyaWMYJCABKAsyFi53b3JsZC5NZXRyaWNDb21wb25lbnRIHIgBARIrCgZzZW5zb3IYJSABKAsyFi53b3JsZC5TZW5zb3JDb21wb25lbnRIHYgBARI0Cgtsb2NhbF9zaGFwZRgdIAEoCzIaLndvcmxkLkxvY2FsU2hhcGVDb21wb25lbnRIHogBARInCgRwb3NlGCYgASgLMhQud29ybGQuUG9zZUNvbXBvbmVudEgfiAEBEjoKDnRhc2tfZXhlY3V0aW9uGCkgASgLMh0ud29ybGQuVGFza0V4ZWN1dGlvbkNvbXBvbmVudEggiAEBEjkKDWludGVyYWN0aXZpdHkYPCABKAsyHS53b3JsZC5JbnRlcmFjdGl2aXR5Q29tcG9uZW50SCGIAQESLwoIYXJ0aWZhY3QYPSABKAsyGC53b3JsZC5BcnRpZmFjdENvbXBvbmVudEgiiAEBEjQKC3RhcmdldF9wb3NlGD4gASgLMhoud29ybGQuVGFyZ2V0UG9zZUNvbXBvbmVudEgjiAEBEicKBGNoYXQYJyABKAsyFC53b3JsZC5DaGF0Q29tcG9uZW50SCSIAQFCCAoGX2xhYmVsQg0KC19jb250cm9sbGVyQgsKCV9saWZldGltZUILCglfcHJpb3JpdHlCCAoGX2xlYXNlQgoKCF9yb3V0aW5nQgYKBF9nZW9CCQoHX3N5bWJvbEIJCgdfY2FtZXJhQgwKCl9kZXRlY3Rpb25CCgoIX2JlYXJpbmdCCAoGX3RyYWNrQgoKCF9sb2NhdG9yQg0KC19raW5lbWF0aWNzQggKBl9zaGFwZUIRCg9fY2xhc3NpZmljYXRpb25CDgoMX3RyYW5zcG9uZGVyQhEKD19hZG1pbmlzdHJhdGl2ZUIOCgxfb3JpZW50YXRpb25CDQoLX25hdmlnYXRpb25CCAoGX3Bvd2VyQgoKCF9jYXB0dXJlQgsKCV90YXNrYWJsZUIJCgdfZGV2aWNlQgkKB19jb25maWdCDwoNX2NvbmZpZ3VyYWJsZUIKCghfbWlzc2lvbkIHCgVfbGlua0IJCgdfbWV0cmljQgkKB19zZW5zb3JCDgoMX2xvY2FsX3NoYXBlQgcKBV9wb3NlQhEKD190YXNrX2V4ZWN1dGlvbkIQCg5faW50ZXJhY3Rpdml0eUILCglfYXJ0aWZhY3RCDgoMX3RhcmdldF9wb3NlQgcKBV9jaGF0SgQICBAJSgQICRAKSgQIChALImAKCkNvbnRyb2xsZXISDwoCaWQYASABKAlIAIgBARIRCgRub2RlGAIgASgJSAGIAQESEwoGb3JpZ2luGAMgASgJSAKIAQFCBQoDX2lkQgcKBV9ub2RlQgkKB19vcmlnaW4iWQoFTGVhc2USEgoKY29udHJvbGxlchgBIAEoCRIwCgdleHBpcmVzGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQgoKCF9leHBpcmVzIq8CCghMaWZldGltZRItCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEi4KBXVudGlsGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEi4KBWZyZXNoGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjMKCmNvbXBvbmVudHMYBCADKAsyHy53b3JsZC5MaWZldGltZS5Db21wb25lbnRzRW50cnkaQgoPQ29tcG9uZW50c0VudHJ5EgsKA2tleRgBIAEoBRIeCgV2YWx1ZRgCIAEoCzIPLndvcmxkLkxpZmV0aW1lOgI4AUIHCgVfZnJvbUIICgZfdW50aWxCCAoGX2ZyZXNoIhcKB0NoYW5uZWwSDAoEbmFtZRgBIAEoCSIrCgdSb3V0aW5nEiAKCGNoYW5uZWxzGAEgAygLMg4ud29ybGQuQ2hhbm5lbCKfAQoTR2VvU3BhdGlhbENvbXBvbmVudBIRCglsb25naXR1ZGUYASABKAESEAoIbGF0aXR1ZGUYAiABKAESFQoIYWx0aXR1ZGUYAyABKAFIAIgBARIwCgpjb3ZhcmlhbmNlGAQgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEgBiAEBQgsKCV9hbHRpdHVkZUINCgtfY292YXJpYW5jZSImCg9TeW1ib2xDb21wb25lbnQSEwoLbWlsU3RkMjUyNUMYASABKAkiYgoWSW50ZXJhY3Rpdml0eUNvbXBvbmVudBIRCgRpY29uGAEgASgJSACIAQESGgoNcmVmZXJlbmNlX3VybBgDIAEoCUgBiAEBQgcKBV9pY29uQhAKDl9yZWZlcmVuY2VfdXJsIsoBCgtNZWRpYVN0cmVhbRINCgVsYWJlbBgBIAEoCRILCgN1cmwYAiABKAkSLAoIcHJvdG9jb2wYAyABKA4yGi53b3JsZC5NZWRpYVN0cmVhbVByb3RvY29sEiQKBHJvbGUYCSABKA4yFi53b3JsZC5NZWRpYVN0cmVhbVJvbGUSDQoFY29kZWMYCiABKAkSEgoFd2lkdGgYCyABKAVIAIgBARITCgZoZWlnaHQYDCABKAVIAYgBAUIICgZfd2lkdGhCCQoHX2hlaWdodCKOAgoPQ2FtZXJhQ29tcG9uZW50EiMKB3N0cmVhbXMYASADKAsyEi53b3JsZC5NZWRpYVN0cmVhbRIYCgtmb2NhbF9wb2ludBgCIAEoCUgAiAEBEhAKA2ZvdhgDIAEoAUgBiAEBEhYKCXJhbmdlX21pbhgEIAEoAUgCiAEBEhYKCXJhbmdlX21heBgFIAEoAUgDiAEBEhUKCGZvdl93aWRlGAYgASgBSASIAQESFQoIZm92X3RlbGUYByABKAFIBYgBAUIOCgxfZm9jYWxfcG9pbnRCBgoEX2ZvdkIMCgpfcmFuZ2VfbWluQgwKCl9yYW5nZV9tYXhCCwoJX2Zvdl93aWRlQgsKCV9mb3ZfdGVsZSIfChBBcnRpZmFjdExvY2F0aW9uEgsKA3VybBgBIAEoCSKoAQoRQXJ0aWZhY3RDb21wb25lbnQSCgoCaWQYASABKAkSFAoMY29udGVudF90eXBlGAIgASgJEikKCGxvY2F0aW9uGAMgAygLMhcud29ybGQuQXJ0aWZhY3RMb2NhdGlvbhIXCgpzaXplX2J5dGVzGAQgASgDSACIAQESEwoGc2hhMjU2GAUgASgJSAGIAQFCDQoLX3NpemVfYnl0ZXNCCQoHX3NoYTI1NiLSAQoSRGV0ZWN0aW9uQ29tcG9uZW50Eh0KEGRldGVjdG9yRW50aXR5SWQYASABKAlIAIgBARIbCg5jbGFzc2lmaWNhdGlvbhgCIAEoCUgBiAEBEjUKDGxhc3RNZWFzdXJlZBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIQCghldmlkZW5jZRgEIAMoCUITChFfZGV0ZWN0b3JFbnRpdHlJZEIRCg9fY2xhc3NpZmljYXRpb25CDwoNX2xhc3RNZWFzdXJlZCJaChBCZWFyaW5nQ29tcG9uZW50EhQKB2F6aW11dGgYASABKAFIAIgBARIWCgllbGV2YXRpb24YAiABKAFIAYgBAUIKCghfYXppbXV0aEIMCgpfZWxldmF0aW9uIiMKD1NlbnNvckNvbXBvbmVudBIQCghjb3ZlcmFnZRgCIAMoCSI4CgpRdWF0ZXJuaW9uEgkKAXgYASABKAESCQoBeRgCIAEoARIJCgF6GAMgASgBEgkKAXcYBCABKAEirgEKEENvdmFyaWFuY2VNYXRyaXgSEAoDbXh4GAEgASgBSACIAQESEAoDbXh5GAIgASgBSAGIAQESEAoDbXh6GAMgASgBSAKIAQESEAoDbXl5GAQgASgBSAOIAQESEAoDbXl6GAUgASgBSASIAQESEAoDbXp6GAYgASgBSAWIAQFCBgoEX214eEIGCgRfbXh5QgYKBF9teHpCBgoEX215eUIGCgRfbXl6QgYKBF9tenoizAEKD0NhcnRlc2lhbk9mZnNldBIOCgZlYXN0X20YASABKAESDwoHbm9ydGhfbRgCIAEoARIRCgR1cF9tGAMgASgBSACIAQESMAoKY292YXJpYW5jZRgEIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhIAYgBARIrCgtvcmllbnRhdGlvbhgFIAEoCzIRLndvcmxkLlF1YXRlcm5pb25IAogBAUIHCgVfdXBfbUINCgtfY292YXJpYW5jZUIOCgxfb3JpZW50YXRpb24iggMKC1BvbGFyT2Zmc2V0Eg8KB2F6aW11dGgYASABKAESFgoJZWxldmF0aW9uGAIgASgBSACIAQESEgoFcmFuZ2UYAyABKAFIAYgBARI0Cgpjb3ZhcmlhbmNlGAQgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEICGAFIAogBARIeChFhemltdXRoX2Vycm9yX2RlZxgKIAEoAUgDiAEBEiAKE2VsZXZhdGlvbl9lcnJvcl9kZWcYCyABKAFIBIgBARIaCg1yYW5nZV9lcnJvcl9tGAwgASgBSAWIAQESKwoLb3JpZW50YXRpb24YBSABKAsyES53b3JsZC5RdWF0ZXJuaW9uSAaIAQFCDAoKX2VsZXZhdGlvbkIICgZfcmFuZ2VCDQoLX2NvdmFyaWFuY2VCFAoSX2F6aW11dGhfZXJyb3JfZGVnQhYKFF9lbGV2YXRpb25fZXJyb3JfZGVnQhAKDl9yYW5nZV9lcnJvcl9tQg4KDF9vcmllbnRhdGlvbiJ7Cg1Qb3NlQ29tcG9uZW50Eg4KBnBhcmVudBgBIAEoCRIrCgljYXJ0ZXNpYW4YAiABKAsyFi53b3JsZC5DYXJ0ZXNpYW5PZmZzZXRIABIjCgVwb2xhchgDIAEoCzISLndvcmxkLlBvbGFyT2Zmc2V0SABCCAoGb2Zmc2V0InEKE1RhcmdldFBvc2VDb21wb25lbnQSKwoJY2FydGVzaWFuGAEgASgLMhYud29ybGQuQ2FydGVzaWFuT2Zmc2V0SAASIwoFcG9sYXIYAiABKAsyEi53b3JsZC5Qb2xhck9mZnNldEgAQggKBm9mZnNldCJKCg9Bbmd1bGFyVmVsb2NpdHkSEQoJcm9sbF9yYXRlGAEgASgBEhIKCnBpdGNoX3JhdGUYAiABKAESEAoIeWF3X3JhdGUYAyABKAEifwoUT3JpZW50YXRpb25Db21wb25lbnQSJgoLb3JpZW50YXRpb24YASABKAsyES53b3JsZC5RdWF0ZXJuaW9uEjAKCmNvdmFyaWFuY2UYAiABKAsyFy53b3JsZC5Db3ZhcmlhbmNlTWF0cml4SACIAQFCDQoLX2NvdmFyaWFuY2UikAEKDlRyYWNrQ29tcG9uZW50EhQKB3RyYWNrZXIYASABKAlIAIgBARIUCgdoaXN0b3J5GAIgASgJSAGIAQESFwoKcHJlZGljdGlvbhgDIAEoCUgCiAEBEhIKCmRldGVjdGlvbnMYBCADKAlCCgoIX3RyYWNrZXJCCgoIX2hpc3RvcnlCDQoLX3ByZWRpY3Rpb24iKwoQTG9jYXRvckNvbXBvbmVudBIXCg9sb2NhdGVkRW50aXR5SWQYASABKAkiNQoPVGFza2FibGVDb250ZXh0EhUKCGVudGl0eUlkGAEgASgJSACIAQFCCwoJX2VudGl0eUlkIjYKEFRhc2thYmxlQXNzaWduZWUSFQoIZW50aXR5SWQYASABKAlIAIgBAUILCglfZW50aXR5SWQi9QEKEVRhc2thYmxlQ29tcG9uZW50EhUKCHJlc2VydmVkGAEgASgJSACIAQESEgoFbGFiZWwYAiABKAlIAYgBARInCgdjb250ZXh0GAMgAygLMhYud29ybGQuVGFza2FibGVDb250ZXh0EikKCGFzc2lnbmVlGAQgAygLMhcud29ybGQuVGFza2FibGVBc3NpZ25lZRInCgZzY2hlbWEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiEKBG1vZGUYBiABKA4yEy53b3JsZC5UYXNrYWJsZU1vZGVCCwoJX3Jlc2VydmVkQggKBl9sYWJlbCLVAQoWVGFza0V4ZWN1dGlvbkNvbXBvbmVudBIMCgR0YXNrGAEgASgJEjAKCnBhcmFtZXRlcnMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESKAoFc3RhdGUYAyABKA4yGS53b3JsZC5UYXNrRXhlY3V0aW9uU3RhdGUSEwoGcmVhc29uGAQgASgJSAGIAQESFQoIcHJpb3JpdHkYBSABKA1IAogBAUINCgtfcGFyYW1ldGVyc0IJCgdfcmVhc29uQgsKCV9wcmlvcml0eSKiAQoNS2luZW1hdGljc0VudRIRCgRlYXN0GAEgASgBSACIAQESEgoFbm9ydGgYAiABKAFIAYgBARIPCgJ1cBgDIAEoAUgCiAEBEjAKCmNvdmFyaWFuY2UYBCABKAsyFy53b3JsZC5Db3ZhcmlhbmNlTWF0cml4SAOIAQFCBwoFX2Vhc3RCCAoGX25vcnRoQgUKA191cEINCgtfY292YXJpYW5jZSLvAQoTS2luZW1hdGljc0NvbXBvbmVudBIuCgt2ZWxvY2l0eUVudRgBIAEoCzIULndvcmxkLktpbmVtYXRpY3NFbnVIAIgBARIyCg9hY2NlbGVyYXRpb25FbnUYAiABKAsyFC53b3JsZC5LaW5lbWF0aWNzRW51SAGIAQESOAoTYW5ndWxhclZlbG9jaXR5Qm9keRgDIAEoCzIWLndvcmxkLkFuZ3VsYXJWZWxvY2l0eUgCiAEBQg4KDF92ZWxvY2l0eUVudUISChBfYWNjZWxlcmF0aW9uRW51QhYKFF9hbmd1bGFyVmVsb2NpdHlCb2R5IkIKCEdlb21ldHJ5Eg8KA3drYhgBIAEoDEICGAESJQoGcGxhbmFyGAIgASgLMhUud29ybGQuUGxhbmFyR2VvbWV0cnkiSAoRR2VvU2hhcGVDb21wb25lbnQSJgoIZ2VvbWV0cnkYASABKAsyDy53b3JsZC5HZW9tZXRyeUgAiAEBQgsKCV9nZW9tZXRyeSJkChNMb2NhbFNoYXBlQ29tcG9uZW50EhMKC3JlbGF0aXZlX3RvGAIgASgJEisKCGdlb21ldHJ5GAEgASgLMhQud29ybGQuTG9jYWxHZW9tZXRyeUgAiAEBQgsKCV9nZW9tZXRyeSKoAQoXQ2xhc3NpZmljYXRpb25Db21wb25lbnQSPAoJZGltZW5zaW9uGAEgASgOMiQud29ybGQuQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25IAIgBARI0CghpZGVudGl0eRgCIAEoDjIdLndvcmxkLkNsYXNzaWZpY2F0aW9uSWRlbnRpdHlIAYgBAUIMCgpfZGltZW5zaW9uQgsKCV9pZGVudGl0eSKUAQoOVHJhbnNwb25kZXJBSVMSEQoEbW1zaRgBIAEoDUgAiAEBEhAKA2ltbxgCIAEoDUgBiAEBEhUKCGNhbGxzaWduGAMgASgJSAKIAQESGAoLdmVzc2VsX25hbWUYBCABKAlIA4gBAUIHCgVfbW1zaUIGCgRfaW1vQgsKCV9jYWxsc2lnbkIOCgxfdmVzc2VsX25hbWUiYwoPVHJhbnNwb25kZXJBRFNCEhkKDGljYW9fYWRkcmVzcxgBIAEoDUgAiAEBEhYKCWZsaWdodF9pZBgCIAEoCUgBiAEBQg8KDV9pY2FvX2FkZHJlc3NCDAoKX2ZsaWdodF9pZCJ7ChRUcmFuc3BvbmRlckNvbXBvbmVudBInCgNhaXMYASABKAsyFS53b3JsZC5UcmFuc3BvbmRlckFJU0gAiAEBEikKBGFkc2IYAiABKAsyFi53b3JsZC5UcmFuc3BvbmRlckFEU0JIAYgBAUIGCgRfYWlzQgcKBV9hZHNiItsCChdBZG1pbmlzdHJhdGl2ZUNvbXBvbmVudBIPCgJpZBgBIAEoCUgAiAEBEhEKBGZsYWcYAiABKAlIAYgBARISCgVvd25lchgDIAEoCUgCiAEBEhkKDG1hbnVmYWN0dXJlchgEIAEoCUgDiAEBEhIKBW1vZGVsGAUgASgJSASIAQESFwoKeWVhcl9idWlsdBgGIAEoDUgFiAEBEhUKCGxlbmd0aF9tGAcgASgCSAaIAQESFwoKdG9ubmFnZV9ndBgIIAEoAkgHiAEBEhwKD2VuZ2luZV9wb3dlcl9rdxgJIAEoAkgIiAEBQgUKA19pZEIHCgVfZmxhZ0IICgZfb3duZXJCDwoNX21hbnVmYWN0dXJlckIICgZfbW9kZWxCDQoLX3llYXJfYnVpbHRCCwoJX2xlbmd0aF9tQg0KC190b25uYWdlX2d0QhIKEF9lbmdpbmVfcG93ZXJfa3ci8AEKE05hdmlnYXRpb25Db21wb25lbnQSKAoEbW9kZRgBIAEoDjIVLndvcmxkLk5hdmlnYXRpb25Nb2RlSACIAQESEgoFYXJtZWQYAiABKAhIAYgBARIWCgllbWVyZ2VuY3kYAyABKAhIAogBARIdChB3YXlwb2ludF9jdXJyZW50GAQgASgNSAOIAQESGwoOd2F5cG9pbnRfdG90YWwYBSABKA1IBIgBAUIHCgVfbW9kZUIICgZfYXJtZWRCDAoKX2VtZXJnZW5jeUITChFfd2F5cG9pbnRfY3VycmVudEIRCg9fd2F5cG9pbnRfdG90YWwirQEKEE1pc3Npb25Db21wb25lbnQSDwoHbWVtYmVycxgBIAMoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEhgKC2Rlc3RpbmF0aW9uGAMgASgJSAGIAQESLAoDZXRhGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQg4KDF9kZXNjcmlwdGlvbkIOCgxfZGVzdGluYXRpb25CBgoEX2V0YSLEAgoNTGlua0NvbXBvbmVudBImCgZzdGF0dXMYASABKA4yES53b3JsZC5MaW5rU3RhdHVzSACIAQESFQoIcnNzaV9kYm0YAiABKBFIAYgBARITCgZzbnJfZGIYAyABKBFIAogBARIQCgN2aWEYBSABKAlIA4gBARIcCg9sYXN0X2xhdGVuY3lfbXMYBiABKA1IBIgBARIbCg5hdmdfbGF0ZW5jeV9tcxgHIAEoDUgFiAEBEjIKCWxhc3Rfc2VlbhgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBAUIJCgdfc3RhdHVzQgsKCV9yc3NpX2RibUIJCgdfc25yX2RiQgYKBF92aWFCEgoQX2xhc3RfbGF0ZW5jeV9tc0IRCg9fYXZnX2xhdGVuY3lfbXNCDAoKX2xhc3Rfc2VlbiL9AQoQQ2FwdHVyZUNvbXBvbmVudBIUCgdwYXlsb2FkGAEgASgMSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgDIAEoCUgCiAEBEhgKC2NhcHR1cmVkX2J5GAQgASgJSAOIAQESNAoLY2FwdHVyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESDwoHY29udGVudBgGIAMoCUIKCghfcGF5bG9hZEIHCgVfcG9ydEIPCg1fY29udGVudF90eXBlQg4KDF9jYXB0dXJlZF9ieUIOCgxfY2FwdHVyZWRfYXQirAEKDlBvd2VyQ29tcG9uZW50EiUKGGJhdHRlcnlfY2hhcmdlX3JlbWFpbmluZxgBIAEoAkgAiAEBEhQKB3ZvbHRhZ2UYAiABKAJIAYgBARIeChFyZW1haW5pbmdfc2Vjb25kcxgDIAEoDUgCiAEBQhsKGV9iYXR0ZXJ5X2NoYXJnZV9yZW1haW5pbmdCCgoIX3ZvbHRhZ2VCFAoSX3JlbWFpbmluZ19zZWNvbmRzIjEKEURldmljZUNsYXNzT3B0aW9uEg0KBWNsYXNzGAEgASgJEg0KBWxhYmVsGAIgASgJIuoCChVDb25maWd1cmFibGVDb21wb25lbnQSJwoGc2NoZW1hGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJwoFc3RhdGUYAyABKA4yGC53b3JsZC5Db25maWd1cmFibGVTdGF0ZRISCgVlcnJvchgEIAEoCUgAiAEBEhIKBWxhYmVsGAUgASgJSAGIAQESFwoPYXBwbGllZF92ZXJzaW9uGAYgASgEEjoKGHN1cHBvcnRlZF9kZXZpY2VfY2xhc3NlcxgHIAMoCzIYLndvcmxkLkRldmljZUNsYXNzT3B0aW9uEjUKDHNjaGVkdWxlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIICgZfZXJyb3JCCAoGX2xhYmVsQg8KDV9zY2hlZHVsZWRfYXQilAUKD0RldmljZUNvbXBvbmVudBITCgZwYXJlbnQYASABKAlIAIgBARITCgtjb21wb3NpdGlvbhgCIAMoCRIfChJ1bmlxdWVfaGFyZHdhcmVfaWQYBCABKAlIAYgBARIhCgVzdGF0ZRgGIAEoDjISLndvcmxkLkRldmljZVN0YXRlEhIKBWVycm9yGAcgASgJSAKIAQESEgoFY2xhc3MYCiABKAlIA4gBARIVCghjYXRlZ29yeRgNIAEoCUgEiAEBEiQKBG5vZGUYFCABKAsyES53b3JsZC5Ob2RlRGV2aWNlSAWIAQESIgoDdXNiGBUgASgLMhAud29ybGQuVXNiRGV2aWNlSAaIAQESIAoCaXAYFiABKAsyDy53b3JsZC5JcERldmljZUgHiAEBEigKBnNlcmlhbBgXIAEoCzITLndvcmxkLlNlcmlhbERldmljZUgIiAEBEiwKCGV0aGVybmV0GBggASgLMhUud29ybGQuRXRoZXJuZXREZXZpY2VICYgBARImCgVscHdhbhgZIAEoCzISLndvcmxkLkxQV0FORGV2aWNlSAqIAQESMAoKbWVzaHRhc3RpYxgaIAEoCzIXLndvcmxkLk1lc2h0YXN0aWNEZXZpY2VIC4gBARIiCgNibGUYGyABKAsyEC53b3JsZC5CbGVEZXZpY2VIDIgBAUIJCgdfcGFyZW50QhUKE191bmlxdWVfaGFyZHdhcmVfaWRCCAoGX2Vycm9yQggKBl9jbGFzc0ILCglfY2F0ZWdvcnlCBwoFX25vZGVCBgoEX3VzYkIFCgNfaXBCCQoHX3NlcmlhbEILCglfZXRoZXJuZXRCCAoGX2xwd2FuQg0KC19tZXNodGFzdGljQgYKBF9ibGUioAIKCk5vZGVEZXZpY2USFQoIaG9zdG5hbWUYASABKAlIAIgBARIPCgJvcxgCIAEoCUgBiAEBEhEKBGFyY2gYAyABKAlIAogBARIUCgdudW1fY3B1GAQgASgNSAOIAQESFwoKb3NfdmVyc2lvbhgFIAEoCUgEiAEBEhsKDmh5ZHJpc192ZXJzaW9uGAYgASgJSAWIAQESJAoXaHlkcmlzX3VwZGF0ZV9hdmFpbGFibGUYByABKAlIBogBAUILCglfaG9zdG5hbWVCBQoDX29zQgcKBV9hcmNoQgoKCF9udW1fY3B1Qg0KC19vc192ZXJzaW9uQhEKD19oeWRyaXNfdmVyc2lvbkIaChhfaHlkcmlzX3VwZGF0ZV9hdmFpbGFibGUi+QIKCVVzYkRldmljZRIWCgl2ZW5kb3JfaWQYASABKA1IAIgBARIXCgpwcm9kdWN0X2lkGAIgASgNSAGIAQESGQoMZGV2aWNlX2NsYXNzGAMgASgNSAKIAQESHAoPZGV2aWNlX3N1YmNsYXNzGAQgASgNSAOIAQESHAoPZGV2aWNlX3Byb3RvY29sGAUgASgNSASIAQESHgoRbWFudWZhY3R1cmVyX25hbWUYBiABKAlIBYgBARIZCgxwcm9kdWN0X25hbWUYByABKAlIBogBARIaCg1zZXJpYWxfbnVtYmVyGAggASgJSAeIAQFCDAoKX3ZlbmRvcl9pZEINCgtfcHJvZHVjdF9pZEIPCg1fZGV2aWNlX2NsYXNzQhIKEF9kZXZpY2Vfc3ViY2xhc3NCEgoQX2RldmljZV9wcm90b2NvbEIUChJfbWFudWZhY3R1cmVyX25hbWVCDwoNX3Byb2R1Y3RfbmFtZUIQCg5fc2VyaWFsX251bWJlciJCCghJcERldmljZRIRCgRob3N0GAEgASgJSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBQgcKBV9ob3N0QgcKBV9wb3J0IloKDkV0aGVybmV0RGV2aWNlEhgKC21hY19hZGRyZXNzGAEgASgJSACIAQESEwoGdmVuZG9yGAIgASgJSAGIAQFCDgoMX21hY19hZGRyZXNzQgkKB192ZW5kb3IiUAoMU2VyaWFsRGV2aWNlEhEKBHBhdGgYASABKAlIAIgBARIWCgliYXVkX3JhdGUYAiABKA1IAYgBAUIHCgVfcGF0aEIMCgpfYmF1ZF9yYXRlItwBChBNZXNodGFzdGljRGV2aWNlEhUKCG5vZGVfbnVtGAEgASgNSACIAQESFgoJbG9uZ19uYW1lGAIgASgJSAGIAQESFwoKc2hvcnRfbmFtZRgDIAEoCUgCiAEBEhsKDmhhcmR3YXJlX21vZGVsGAQgASgJSAOIAQESFwoKcHVibGljX2tleRgFIAEoDEgEiAEBQgsKCV9ub2RlX251bUIMCgpfbG9uZ19uYW1lQg0KC19zaG9ydF9uYW1lQhEKD19oYXJkd2FyZV9tb2RlbEINCgtfcHVibGljX2tleSJJCgtMUFdBTkRldmljZRIQCgNldWkYASABKAlIAIgBARIUCgdhZGRyZXNzGAIgASgJSAGIAQFCBgoEX2V1aUIKCghfYWRkcmVzcyJgCglCbGVEZXZpY2USFAoHYWRkcmVzcxgBIAEoCUgAiAEBEhEKBG5hbWUYAiABKAlIAYgBARIVCg1zZXJ2aWNlX3V1aWRzGAQgAygJQgoKCF9hZGRyZXNzQgcKBV9uYW1lIlEKFkNvbmZpZ3VyYXRpb25Db21wb25lbnQSJgoFdmFsdWUYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3ZlcnNpb24YBSABKAQioAEKDUNoYXRDb21wb25lbnQSEwoGc2VuZGVyGAEgASgJSACIAQESDwoCdG8YAyABKAlIAYgBARIPCgdtZXNzYWdlGAQgASgJEhUKCHJlcGx5X3RvGAUgASgJSAKIAQESFQoIcmVhY3Rpb24YBiABKAhIA4gBAUIJCgdfc2VuZGVyQgUKA190b0ILCglfcmVwbHlfdG9CCwoJX3JlYWN0aW9uItUECgxFbnRpdHlGaWx0ZXISDwoCaWQYASABKAlIAIgBARISCgVsYWJlbBgCIAEoCUgBiAEBEiIKA2dlbxgDIAEoCzIQLndvcmxkLkdlb0ZpbHRlckgCiAEBEiwKCHRhc2thYmxlGAQgASgLMhUud29ybGQuVGFza2FibGVGaWx0ZXJIA4gBARIRCgljb21wb25lbnQYBSADKA0SMAoKY29udHJvbGxlchgHIAEoCzIXLndvcmxkLkNvbnRyb2xsZXJGaWx0ZXJIBIgBARImCgV0cmFjaxgIIAEoCzISLndvcmxkLlRyYWNrRmlsdGVySAWIAQESKgoHbWlzc2lvbhgJIAEoCzIULndvcmxkLk1pc3Npb25GaWx0ZXJIBogBARIqCgdjaGFubmVsGAogASgLMhQud29ybGQuQ2hhbm5lbEZpbHRlckgHiAEBEigKBmRldmljZRgyIAEoCzITLndvcmxkLkRldmljZUZpbHRlckgIiAEBEi8KBmNvbmZpZxgzIAEoCzIaLndvcmxkLkNvbmZpZ3VyYXRpb25GaWx0ZXJICYgBARIfCgJvchhkIAMoCzITLndvcmxkLkVudGl0eUZpbHRlchIgCgNub3QYZSABKAsyEy53b3JsZC5FbnRpdHlGaWx0ZXJCBQoDX2lkQggKBl9sYWJlbEIGCgRfZ2VvQgsKCV90YXNrYWJsZUINCgtfY29udHJvbGxlckIICgZfdHJhY2tCCgoIX21pc3Npb25CCgoIX2NoYW5uZWxCCQoHX2RldmljZUIJCgdfY29uZmlnIioKEENvbnRyb2xsZXJGaWx0ZXISDwoCaWQYASABKAlIAIgBAUIFCgNfaWQiLwoLVHJhY2tGaWx0ZXISFAoHdHJhY2tlchgBIAEoCUgAiAEBQgoKCF90cmFja2VyIl0KDU1pc3Npb25GaWx0ZXISFwoKbWlzc2lvbl9pZBgBIAEoCUgAiAEBEhYKCW1lbWJlcl9pZBgCIAEoCUgBiAEBQg0KC19taXNzaW9uX2lkQgwKCl9tZW1iZXJfaWQihwEKDlRhc2thYmxlRmlsdGVyEiwKB2NvbnRleHQYASABKAsyFi53b3JsZC5UYXNrYWJsZUNvbnRleHRIAIgBARIuCghhc3NpZ25lZRgCIAEoCzIXLndvcmxkLlRhc2thYmxlQXNzaWduZWVIAYgBAUIKCghfY29udGV4dEILCglfYXNzaWduZWUiTgoJR2VvRmlsdGVyEiMKCGdlb21ldHJ5GAEgASgLMg8ud29ybGQuR2VvbWV0cnlIABIVCgtnZW9FbnRpdHlJZBgCIAEoCUgAQgUKA2dlbyL2AQoMRGV2aWNlRmlsdGVyEhMKBnBhcmVudBgBIAEoCUgAiAEBEh8KEnVuaXF1ZV9oYXJkd2FyZV9pZBgEIAEoCUgBiAEBEhkKDGRldmljZV9jbGFzcxgFIAEoCUgCiAEBEigKA2JsZRgGIAEoCzIWLndvcmxkLkJsZURldmljZUZpbHRlckgDiAEBEigKA3VzYhgHIAEoCzIWLndvcmxkLlVzYkRldmljZUZpbHRlckgEiAEBQgkKB19wYXJlbnRCFQoTX3VuaXF1ZV9oYXJkd2FyZV9pZEIPCg1fZGV2aWNlX2NsYXNzQgYKBF9ibGVCBgoEX3VzYiJmCg9CbGVEZXZpY2VGaWx0ZXISFAoHYWRkcmVzcxgBIAEoCUgAiAEBEhEKBG5hbWUYAiABKAlIAYgBARIVCg1zZXJ2aWNlX3V1aWRzGAQgAygJQgoKCF9hZGRyZXNzQgcKBV9uYW1lIv8CCg9Vc2JEZXZpY2VGaWx0ZXISFgoJdmVuZG9yX2lkGAEgASgNSACIAQESFwoKcHJvZHVjdF9pZBgCIAEoDUgBiAEBEhkKDGRldmljZV9jbGFzcxgDIAEoDUgCiAEBEhwKD2RldmljZV9zdWJjbGFzcxgEIAEoDUgDiAEBEhwKD2RldmljZV9wcm90b2NvbBgFIAEoDUgEiAEBEh4KEW1hbnVmYWN0dXJlcl9uYW1lGAYgASgJSAWIAQESGQoMcHJvZHVjdF9uYW1lGAcgASgJSAaIAQESGgoNc2VyaWFsX251bWJlchgIIAEoCUgHiAEBQgwKCl92ZW5kb3JfaWRCDQoLX3Byb2R1Y3RfaWRCDwoNX2RldmljZV9jbGFzc0ISChBfZGV2aWNlX3N1YmNsYXNzQhIKEF9kZXZpY2VfcHJvdG9jb2xCFAoSX21hbnVmYWN0dXJlcl9uYW1lQg8KDV9wcm9kdWN0X25hbWVCEAoOX3NlcmlhbF9udW1iZXIiFQoTQ29uZmlndXJhdGlvbkZpbHRlciIdCg1DaGFubmVsRmlsdGVyEgwKBG5hbWUYASABKAkitAEKDVdhdGNoQmVoYXZpb3ISGAoLbWF4X3JhdGVfaHoYASABKAJIAIgBARIqCgxtaW5fcHJpb3JpdHkYAyABKA4yDy53b3JsZC5Qcmlvcml0eUgBiAEBEiIKFWtlZXBhbGl2ZV9pbnRlcnZhbF9tcxgEIAEoDUgCiAEBQg4KDF9tYXhfcmF0ZV9oekIPCg1fbWluX3ByaW9yaXR5QhgKFl9rZWVwYWxpdmVfaW50ZXJ2YWxfbXMifAoTTGlzdEVudGl0aWVzUmVxdWVzdBIjCgZmaWx0ZXIYAiABKAsyEy53b3JsZC5FbnRpdHlGaWx0ZXISLAoJYmVoYXZpb3VyGAQgASgLMhQud29ybGQuV2F0Y2hCZWhhdmlvckgAiAEBQgwKCl9iZWhhdmlvdXJKBAgBEAIiNwoUTGlzdEVudGl0aWVzUmVzcG9uc2USHwoIZW50aXRpZXMYASADKAsyDS53b3JsZC5FbnRpdHkiWgoTRW50aXR5Q2hhbmdlUmVxdWVzdBIeCgdjaGFuZ2VzGAEgAygLMg0ud29ybGQuRW50aXR5EiMKDHJlcGxhY2VtZW50cxgCIAMoCzINLndvcmxkLkVudGl0eSIhChNFeHBpcmVFbnRpdHlSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFEV4cGlyZUVudGl0eVJlc3BvbnNlIjcKFEVudGl0eUNoYW5nZVJlc3BvbnNlEhAKCGFjY2VwdGVkGAEgASgIEg0KBWRlYnVnGAIgASgJIlIKEUVudGl0eUNoYW5nZUV2ZW50Eh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eRIeCgF0GAIgASgOMhMud29ybGQuRW50aXR5Q2hhbmdlIj0KEUVudGl0eUNoYW5nZUJhdGNoEigKBmV2ZW50cxgBIAMoCzIYLndvcmxkLkVudGl0eUNoYW5nZUV2ZW50Ih4KEEdldEVudGl0eVJlcXVlc3QSCgoCaWQYASABKAkiMgoRR2V0RW50aXR5UmVzcG9uc2USHQoGZW50aXR5GAEgASgLMg0ud29ybGQuRW50aXR5IhUKE0dldExvY2FsTm9kZVJlcXVlc3QiRgoUR2V0TG9jYWxOb2RlUmVzcG9uc2USHQoGZW50aXR5GAEgASgLMg0ud29ybGQuRW50aXR5Eg8KB25vZGVfaWQYAiABKAkiEQoPT2JzZXJ2ZXJSZXF1ZXN0InMKDU9ic2VydmVyU3RhdGUSHAoDZ2VvGAEgASgLMg8ud29ybGQuR2VvbWV0cnkSNAoLdmlld0hpc3RvcnkYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDgoMX3ZpZXdIaXN0b3J5IkYKDlJ1blRhc2tSZXF1ZXN0EhAKCGVudGl0eUlkGAEgASgJEhUKCHByaW9yaXR5GAIgASgNSACIAQFCCwoJX3ByaW9yaXR5IoMBCg9SdW5UYXNrUmVzcG9uc2USEwoLZXhlY3V0aW9uSWQYASABKAkSIQoGc3RhdHVzGAIgASgOMhEud29ybGQuVGFza1N0YXR1cxIgChNodW1hblJlYWRhYmxlUmVhc29uGAMgASgJSACIAQFCFgoUX2h1bWFuUmVhZGFibGVSZWFzb24iEgoQSGFyZFJlc2V0UmVxdWVzdCITChFIYXJkUmVzZXRSZXNwb25zZSpiCghQcmlvcml0eRIXChNQcmlvcml0eVVuc3BlY2lmaWVkEAASEwoPUHJpb3JpdHlSb3V0aW5lEAESFQoRUHJpb3JpdHlJbW1lZGlhdGUQAhIRCg1Qcmlvcml0eUZsYXNoEAMq7AEKE01lZGlhU3RyZWFtUHJvdG9jb2wSIgoeTWVkaWFTdHJlYW1Qcm90b2NvbFVuc3BlY2lmaWVkEAASHQoZTWVkaWFTdHJlYW1Qcm90b2NvbFdlYnJ0YxABEhoKFk1lZGlhU3RyZWFtUHJvdG9jb2xIbHMQAhIcChhNZWRpYVN0cmVhbVByb3RvY29sTWpwZWcQAxIcChhNZWRpYVN0cmVhbVByb3RvY29sSW1hZ2UQBBIdChlNZWRpYVN0cmVhbVByb3RvY29sSWZyYW1lEAUSGwoXTWVkaWFTdHJlYW1Qcm90b2NvbFJ0c3AQBip/Cg9NZWRpYVN0cmVhbVJvbGUSHgoaTWVkaWFTdHJlYW1Sb2xlVW5zcGVjaWZpZWQQABIXChNNZWRpYVN0cmVhbVJvbGVNYWluEAESFgoSTWVkaWFTdHJlYW1Sb2xlU3ViEAISGwoXTWVkaWFTdHJlYW1Sb2xlU25hcHNob3QQAyp6CgxUYXNrYWJsZU1vZGUSGQoVVGFza2FibGVNb2RlRXhjbHVzaXZlEAASGQoVVGFza2FibGVNb2RlUmVjb25jaWxlEAESFQoRVGFza2FibGVNb2RlU3Bhd24QAhIdChlUYXNrYWJsZU1vZGVQcmlvcml0eVF1ZXVlEAMqkQEKElRhc2tFeGVjdXRpb25TdGF0ZRIdChlUYXNrRXhlY3V0aW9uU3RhdGVQZW5kaW5nEAASHQoZVGFza0V4ZWN1dGlvblN0YXRlUnVubmluZxABEh8KG1Rhc2tFeGVjdXRpb25TdGF0ZUNvbXBsZXRlZBACEhwKGFRhc2tFeGVjdXRpb25TdGF0ZUZhaWxlZBADKowCChZDbGFzc2lmaWNhdGlvbklkZW50aXR5EiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlJbnZhbGlkEAASIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eVBlbmRpbmcQARIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5VW5rbm93bhACEiAKHENsYXNzaWZpY2F0aW9uSWRlbnRpdHlGcmllbmQQAxIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5TmV1dHJhbBAEEiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlIb3N0aWxlEAUSIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eVN1c3BlY3QQBirEAgodQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb24SKAokQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25JbnZhbGlkEAASKAokQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25Vbmtub3duEAESJgoiQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25TcGFjZRACEiQKIENsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uQWlyEAMSJwojQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25Hcm91bmQQBBIrCidDbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvblNlYVN1cmZhY2UQBRIrCidDbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvblN1YnN1cmZhY2UQBir2AQoOTmF2aWdhdGlvbk1vZGUSHQoZTmF2aWdhdGlvbk1vZGVVbnNwZWNpZmllZBAAEhkKFU5hdmlnYXRpb25Nb2RlUGxhbm5lZBABEhwKGE5hdmlnYXRpb25Nb2RlU3RhdGlvbmFyeRACEhoKFk5hdmlnYXRpb25Nb2RlVW5kZXJ3YXkQAxIcChhOYXZpZ2F0aW9uTW9kZUF1dG9ub21vdXMQBBIYChROYXZpZ2F0aW9uTW9kZUd1aWRlZBAFEhsKF05hdmlnYXRpb25Nb2RlTG9pdGVyaW5nEAYSGwoXTmF2aWdhdGlvbk1vZGVSZXR1cm5pbmcQBypsCgpMaW5rU3RhdHVzEhkKFUxpbmtTdGF0dXNVbnNwZWNpZmllZBAAEhcKE0xpbmtTdGF0dXNDb25uZWN0ZWQQARIWChJMaW5rU3RhdHVzRGVncmFkZWQQAhISCg5MaW5rU3RhdHVzTG9zdBADKlMKC0RldmljZVN0YXRlEhYKEkRldmljZVN0YXRlUGVuZGluZxAAEhUKEURldmljZVN0YXRlQWN0aXZlEAESFQoRRGV2aWNlU3RhdGVGYWlsZWQQAirKAQoRQ29uZmlndXJhYmxlU3RhdGUSHQoZQ29uZmlndXJhYmxlU3RhdGVJbmFjdGl2ZRAAEh0KGUNvbmZpZ3VyYWJsZVN0YXRlU3RhcnRpbmcQARIbChdDb25maWd1cmFibGVTdGF0ZUFjdGl2ZRACEhsKF0NvbmZpZ3VyYWJsZVN0YXRlRmFpbGVkEAMSHQoZQ29uZmlndXJhYmxlU3RhdGVDb25mbGljdBAEEh4KGkNvbmZpZ3VyYWJsZVN0YXRlU2NoZWR1bGVkEAUqdQoMRW50aXR5Q2hhbmdlEhcKE0VudGl0eUNoYW5nZUludmFsaWQQABIXChNFbnRpdHlDaGFuZ2VVcGRhdGVkEAESFwoTRW50aXR5Q2hhbmdlRXhwaXJlZBACEhoKFkVudGl0eUNoYW5nZVVub2JzZXJ2ZWQQAyrcCAoPRW50aXR5Q29tcG9uZW50Eh4KGkVudGl0eUNvbXBvbmVudFVuc3BlY2lmaWVkEAASGAoURW50aXR5Q29tcG9uZW50TGFiZWwQAhIdChlFbnRpdHlDb21wb25lbnRDb250cm9sbGVyEAMSGwoXRW50aXR5Q29tcG9uZW50TGlmZXRpbWUQBBIbChdFbnRpdHlDb21wb25lbnRQcmlvcml0eRAFEhgKFEVudGl0eUNvbXBvbmVudExlYXNlEAYSGgoWRW50aXR5Q29tcG9uZW50Um91dGluZxAHEhYKEkVudGl0eUNvbXBvbmVudEdlbxALEhkKFUVudGl0eUNvbXBvbmVudFN5bWJvbBAMEhkKFUVudGl0eUNvbXBvbmVudENhbWVyYRAPEhwKGEVudGl0eUNvbXBvbmVudERldGVjdGlvbhAQEhoKFkVudGl0eUNvbXBvbmVudEJlYXJpbmcQERIYChRFbnRpdHlDb21wb25lbnRUcmFjaxAVEhoKFkVudGl0eUNvbXBvbmVudExvY2F0b3IQFhIbChdFbnRpdHlDb21wb25lbnRUYXNrYWJsZRAXEh0KGUVudGl0eUNvbXBvbmVudEtpbmVtYXRpY3MQGBIYChRFbnRpdHlDb21wb25lbnRTaGFwZRAZEiEKHUVudGl0eUNvbXBvbmVudENsYXNzaWZpY2F0aW9uEBoSHgoaRW50aXR5Q29tcG9uZW50VHJhbnNwb25kZXIQGxIhCh1FbnRpdHlDb21wb25lbnRBZG1pbmlzdHJhdGl2ZRAcEh0KGUVudGl0eUNvbXBvbmVudExvY2FsU2hhcGUQHRIeChpFbnRpdHlDb21wb25lbnRPcmllbnRhdGlvbhAeEhoKFkVudGl0eUNvbXBvbmVudE1pc3Npb24QHxIXChNFbnRpdHlDb21wb25lbnRMaW5rECASGAoURW50aXR5Q29tcG9uZW50UG93ZXIQIRIdChlFbnRpdHlDb21wb25lbnROYXZpZ2F0aW9uECISGgoWRW50aXR5Q29tcG9uZW50Q2FwdHVyZRAjEhkKFUVudGl0eUNvbXBvbmVudE1ldHJpYxAkEhkKFUVudGl0eUNvbXBvbmVudFNlbnNvchAlEhcKE0VudGl0eUNvbXBvbmVudFBvc2UQJhIXChNFbnRpdHlDb21wb25lbnRDaGF0ECcSIAocRW50aXR5Q29tcG9uZW50VGFza0V4ZWN1dGlvbhApEhkKFUVudGl0eUNvbXBvbmVudERldmljZRAyEhkKFUVudGl0eUNvbXBvbmVudENvbmZpZxAzEh8KG0VudGl0eUNvbXBvbmVudENvbmZpZ3VyYWJsZRA0EiAKHEVudGl0eUNvbXBvbmVudEludGVyYWN0aXZpdHkQPBIbChdFbnRpdHlDb21wb25lbnRBcnRpZmFjdBA9Eh0KGUVudGl0eUNvbXBvbmVudFRhcmdldFBvc2UQPippCgpUYXNrU3RhdHVzEhUKEVRhc2tTdGF0dXNJbnZhbGlkEAASFQoRVGFza1N0YXR1c1J1bm5pbmcQARIXChNUYXNrU3RhdHVzQ29tcGxldGVkEAISFAoQVGFza1N0YXR1c0ZhaWxlZBADMq0ECgxXb3JsZFNlcnZpY2USRwoMTGlzdEVudGl0aWVzEhoud29ybGQuTGlzdEVudGl0aWVzUmVxdWVzdBobLndvcmxkLkxpc3RFbnRpdGllc1Jlc3BvbnNlEj4KCUdldEVudGl0eRIXLndvcmxkLkdldEVudGl0eVJlcXVlc3QaGC53b3JsZC5HZXRFbnRpdHlSZXNwb25zZRJHCg1XYXRjaEVudGl0aWVzEhoud29ybGQuTGlzdEVudGl0aWVzUmVxdWVzdBoYLndvcmxkLkVudGl0eUNoYW5nZUV2ZW50MAESPwoEUHVzaBIaLndvcmxkLkVudGl0eUNoYW5nZVJlcXVlc3QaGy53b3JsZC5FbnRpdHlDaGFuZ2VSZXNwb25zZRJHCgxFeHBpcmVFbnRpdHkSGi53b3JsZC5FeHBpcmVFbnRpdHlSZXF1ZXN0Ghsud29ybGQuRXhwaXJlRW50aXR5UmVzcG9uc2USRwoMR2V0TG9jYWxOb2RlEhoud29ybGQuR2V0TG9jYWxOb2RlUmVxdWVzdBobLndvcmxkLkdldExvY2FsTm9kZVJlc3BvbnNlEjgKB1J1blRhc2sSFS53b3JsZC5SdW5UYXNrUmVxdWVzdBoWLndvcmxkLlJ1blRhc2tSZXNwb25zZRI+CglIYXJkUmVzZXQSFy53b3JsZC5IYXJkUmVzZXRSZXF1ZXN0Ghgud29ybGQuSGFyZFJlc2V0UmVzcG9uc2VCIFoeZ2l0aHViLmNvbS9wcm9qZWN0cWFpL3Byb3RvL2dvYgZwcm90bzM", [file_geometry, file_google_protobuf_struct, file_google_protobuf_timestamp, file_metrics]);
14
+ fileDesc("Cgt3b3JsZC5wcm90bxIFd29ybGQizRIKBkVudGl0eRIKCgJpZBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBEioKCmNvbnRyb2xsZXIYAyABKAsyES53b3JsZC5Db250cm9sbGVySAGIAQESJgoIbGlmZXRpbWUYBCABKAsyDy53b3JsZC5MaWZldGltZUgCiAEBEiYKCHByaW9yaXR5GAUgASgOMg8ud29ybGQuUHJpb3JpdHlIA4gBARIgCgVsZWFzZRgGIAEoCzIMLndvcmxkLkxlYXNlSASIAQESJAoHcm91dGluZxgHIAEoCzIOLndvcmxkLlJvdXRpbmdIBYgBARIsCgNnZW8YCyABKAsyGi53b3JsZC5HZW9TcGF0aWFsQ29tcG9uZW50SAaIAQESKwoGc3ltYm9sGAwgASgLMhYud29ybGQuU3ltYm9sQ29tcG9uZW50SAeIAQESKwoGY2FtZXJhGA8gASgLMhYud29ybGQuQ2FtZXJhQ29tcG9uZW50SAiIAQESMQoJZGV0ZWN0aW9uGBAgASgLMhkud29ybGQuRGV0ZWN0aW9uQ29tcG9uZW50SAmIAQESLQoHYmVhcmluZxgRIAEoCzIXLndvcmxkLkJlYXJpbmdDb21wb25lbnRICogBARIpCgV0cmFjaxgVIAEoCzIVLndvcmxkLlRyYWNrQ29tcG9uZW50SAuIAQESLQoHbG9jYXRvchgWIAEoCzIXLndvcmxkLkxvY2F0b3JDb21wb25lbnRIDIgBARIzCgpraW5lbWF0aWNzGBggASgLMhoud29ybGQuS2luZW1hdGljc0NvbXBvbmVudEgNiAEBEiwKBXNoYXBlGBkgASgLMhgud29ybGQuR2VvU2hhcGVDb21wb25lbnRIDogBARI7Cg5jbGFzc2lmaWNhdGlvbhgaIAEoCzIeLndvcmxkLkNsYXNzaWZpY2F0aW9uQ29tcG9uZW50SA+IAQESNQoLdHJhbnNwb25kZXIYGyABKAsyGy53b3JsZC5UcmFuc3BvbmRlckNvbXBvbmVudEgQiAEBEjsKDmFkbWluaXN0cmF0aXZlGBwgASgLMh4ud29ybGQuQWRtaW5pc3RyYXRpdmVDb21wb25lbnRIEYgBARI1CgtvcmllbnRhdGlvbhgeIAEoCzIbLndvcmxkLk9yaWVudGF0aW9uQ29tcG9uZW50SBKIAQESMwoKbmF2aWdhdGlvbhgiIAEoCzIaLndvcmxkLk5hdmlnYXRpb25Db21wb25lbnRIE4gBARIpCgVwb3dlchghIAEoCzIVLndvcmxkLlBvd2VyQ29tcG9uZW50SBSIAQESLQoHY2FwdHVyZRgjIAEoCzIXLndvcmxkLkNhcHR1cmVDb21wb25lbnRIFYgBARInCgRnbnNzGCogASgLMhQud29ybGQuR25zc0NvbXBvbmVudEgWiAEBEi8KCHRhc2thYmxlGBcgASgLMhgud29ybGQuVGFza2FibGVDb21wb25lbnRIF4gBARIrCgZkZXZpY2UYMiABKAsyFi53b3JsZC5EZXZpY2VDb21wb25lbnRIGIgBARIyCgZjb25maWcYMyABKAsyHS53b3JsZC5Db25maWd1cmF0aW9uQ29tcG9uZW50SBmIAQESNwoMY29uZmlndXJhYmxlGDQgASgLMhwud29ybGQuQ29uZmlndXJhYmxlQ29tcG9uZW50SBqIAQESLQoHbWlzc2lvbhgfIAEoCzIXLndvcmxkLk1pc3Npb25Db21wb25lbnRIG4gBARInCgRsaW5rGCAgASgLMhQud29ybGQuTGlua0NvbXBvbmVudEgciAEBEisKBm1ldHJpYxgkIAEoCzIWLndvcmxkLk1ldHJpY0NvbXBvbmVudEgdiAEBEisKBnNlbnNvchglIAEoCzIWLndvcmxkLlNlbnNvckNvbXBvbmVudEgeiAEBEjQKC2xvY2FsX3NoYXBlGB0gASgLMhoud29ybGQuTG9jYWxTaGFwZUNvbXBvbmVudEgfiAEBEicKBHBvc2UYJiABKAsyFC53b3JsZC5Qb3NlQ29tcG9uZW50SCCIAQESOgoOdGFza19leGVjdXRpb24YKSABKAsyHS53b3JsZC5UYXNrRXhlY3V0aW9uQ29tcG9uZW50SCGIAQESOQoNaW50ZXJhY3Rpdml0eRg8IAEoCzIdLndvcmxkLkludGVyYWN0aXZpdHlDb21wb25lbnRIIogBARIvCghhcnRpZmFjdBg9IAEoCzIYLndvcmxkLkFydGlmYWN0Q29tcG9uZW50SCOIAQESNAoLdGFyZ2V0X3Bvc2UYPiABKAsyGi53b3JsZC5UYXJnZXRQb3NlQ29tcG9uZW50SCSIAQESJwoEY2hhdBgnIAEoCzIULndvcmxkLkNoYXRDb21wb25lbnRIJYgBARIvCghhc3NlbWJseRgoIAEoCzIYLndvcmxkLkFzc2VtYmx5Q29tcG9uZW50SCaIAQFCCAoGX2xhYmVsQg0KC19jb250cm9sbGVyQgsKCV9saWZldGltZUILCglfcHJpb3JpdHlCCAoGX2xlYXNlQgoKCF9yb3V0aW5nQgYKBF9nZW9CCQoHX3N5bWJvbEIJCgdfY2FtZXJhQgwKCl9kZXRlY3Rpb25CCgoIX2JlYXJpbmdCCAoGX3RyYWNrQgoKCF9sb2NhdG9yQg0KC19raW5lbWF0aWNzQggKBl9zaGFwZUIRCg9fY2xhc3NpZmljYXRpb25CDgoMX3RyYW5zcG9uZGVyQhEKD19hZG1pbmlzdHJhdGl2ZUIOCgxfb3JpZW50YXRpb25CDQoLX25hdmlnYXRpb25CCAoGX3Bvd2VyQgoKCF9jYXB0dXJlQgcKBV9nbnNzQgsKCV90YXNrYWJsZUIJCgdfZGV2aWNlQgkKB19jb25maWdCDwoNX2NvbmZpZ3VyYWJsZUIKCghfbWlzc2lvbkIHCgVfbGlua0IJCgdfbWV0cmljQgkKB19zZW5zb3JCDgoMX2xvY2FsX3NoYXBlQgcKBV9wb3NlQhEKD190YXNrX2V4ZWN1dGlvbkIQCg5faW50ZXJhY3Rpdml0eUILCglfYXJ0aWZhY3RCDgoMX3RhcmdldF9wb3NlQgcKBV9jaGF0QgsKCV9hc3NlbWJseUoECAgQCUoECAkQCkoECAoQCyJgCgpDb250cm9sbGVyEg8KAmlkGAEgASgJSACIAQESEQoEbm9kZRgCIAEoCUgBiAEBEhMKBm9yaWdpbhgDIAEoCUgCiAEBQgUKA19pZEIHCgVfbm9kZUIJCgdfb3JpZ2luIlkKBUxlYXNlEhIKCmNvbnRyb2xsZXIYASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyKvAgoITGlmZXRpbWUSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgV1bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIuCgVmcmVzaBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIzCgpjb21wb25lbnRzGAQgAygLMh8ud29ybGQuTGlmZXRpbWUuQ29tcG9uZW50c0VudHJ5GkIKD0NvbXBvbmVudHNFbnRyeRILCgNrZXkYASABKAUSHgoFdmFsdWUYAiABKAsyDy53b3JsZC5MaWZldGltZToCOAFCBwoFX2Zyb21CCAoGX3VudGlsQggKBl9mcmVzaCIXCgdDaGFubmVsEgwKBG5hbWUYASABKAkiKwoHUm91dGluZxIgCghjaGFubmVscxgBIAMoCzIOLndvcmxkLkNoYW5uZWwinwEKE0dlb1NwYXRpYWxDb21wb25lbnQSEQoJbG9uZ2l0dWRlGAEgASgBEhAKCGxhdGl0dWRlGAIgASgBEhUKCGFsdGl0dWRlGAMgASgBSACIAQESMAoKY292YXJpYW5jZRgEIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhIAYgBAUILCglfYWx0aXR1ZGVCDQoLX2NvdmFyaWFuY2UihQIKDUduc3NDb21wb25lbnQSKQoIZml4X3R5cGUYASABKA4yEi53b3JsZC5HbnNzRml4VHlwZUgAiAEBEh8KEnNhdGVsbGl0ZXNfdmlzaWJsZRgCIAEoDUgBiAEBEhwKD3NhdGVsbGl0ZXNfdXNlZBgDIAEoDUgCiAEBEhEKBGhkb3AYBCABKAJIA4gBARIRCgR2ZG9wGAUgASgCSASIAQESEQoEcGRvcBgGIAEoAkgFiAEBQgsKCV9maXhfdHlwZUIVChNfc2F0ZWxsaXRlc192aXNpYmxlQhIKEF9zYXRlbGxpdGVzX3VzZWRCBwoFX2hkb3BCBwoFX3Zkb3BCBwoFX3Bkb3AiJgoPU3ltYm9sQ29tcG9uZW50EhMKC21pbFN0ZDI1MjVDGAEgASgJImIKFkludGVyYWN0aXZpdHlDb21wb25lbnQSEQoEaWNvbhgBIAEoCUgAiAEBEhoKDXJlZmVyZW5jZV91cmwYAyABKAlIAYgBAUIHCgVfaWNvbkIQCg5fcmVmZXJlbmNlX3VybCLKAQoLTWVkaWFTdHJlYW0SDQoFbGFiZWwYASABKAkSCwoDdXJsGAIgASgJEiwKCHByb3RvY29sGAMgASgOMhoud29ybGQuTWVkaWFTdHJlYW1Qcm90b2NvbBIkCgRyb2xlGAkgASgOMhYud29ybGQuTWVkaWFTdHJlYW1Sb2xlEg0KBWNvZGVjGAogASgJEhIKBXdpZHRoGAsgASgFSACIAQESEwoGaGVpZ2h0GAwgASgFSAGIAQFCCAoGX3dpZHRoQgkKB19oZWlnaHQijgIKD0NhbWVyYUNvbXBvbmVudBIjCgdzdHJlYW1zGAEgAygLMhIud29ybGQuTWVkaWFTdHJlYW0SGAoLZm9jYWxfcG9pbnQYAiABKAlIAIgBARIQCgNmb3YYAyABKAFIAYgBARIWCglyYW5nZV9taW4YBCABKAFIAogBARIWCglyYW5nZV9tYXgYBSABKAFIA4gBARIVCghmb3Zfd2lkZRgGIAEoAUgEiAEBEhUKCGZvdl90ZWxlGAcgASgBSAWIAQFCDgoMX2ZvY2FsX3BvaW50QgYKBF9mb3ZCDAoKX3JhbmdlX21pbkIMCgpfcmFuZ2VfbWF4QgsKCV9mb3Zfd2lkZUILCglfZm92X3RlbGUiHwoQQXJ0aWZhY3RMb2NhdGlvbhILCgN1cmwYASABKAkiqAEKEUFydGlmYWN0Q29tcG9uZW50EgoKAmlkGAEgASgJEhQKDGNvbnRlbnRfdHlwZRgCIAEoCRIpCghsb2NhdGlvbhgDIAMoCzIXLndvcmxkLkFydGlmYWN0TG9jYXRpb24SFwoKc2l6ZV9ieXRlcxgEIAEoA0gAiAEBEhMKBnNoYTI1NhgFIAEoCUgBiAEBQg0KC19zaXplX2J5dGVzQgkKB19zaGEyNTYi0gEKEkRldGVjdGlvbkNvbXBvbmVudBIdChBkZXRlY3RvckVudGl0eUlkGAEgASgJSACIAQESGwoOY2xhc3NpZmljYXRpb24YAiABKAlIAYgBARI1CgxsYXN0TWVhc3VyZWQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEAoIZXZpZGVuY2UYBCADKAlCEwoRX2RldGVjdG9yRW50aXR5SWRCEQoPX2NsYXNzaWZpY2F0aW9uQg8KDV9sYXN0TWVhc3VyZWQiWgoQQmVhcmluZ0NvbXBvbmVudBIUCgdhemltdXRoGAEgASgBSACIAQESFgoJZWxldmF0aW9uGAIgASgBSAGIAQFCCgoIX2F6aW11dGhCDAoKX2VsZXZhdGlvbiIjCg9TZW5zb3JDb21wb25lbnQSEAoIY292ZXJhZ2UYAiADKAkiOAoKUXVhdGVybmlvbhIJCgF4GAEgASgBEgkKAXkYAiABKAESCQoBehgDIAEoARIJCgF3GAQgASgBIq4BChBDb3ZhcmlhbmNlTWF0cml4EhAKA214eBgBIAEoAUgAiAEBEhAKA214eRgCIAEoAUgBiAEBEhAKA214ehgDIAEoAUgCiAEBEhAKA215eRgEIAEoAUgDiAEBEhAKA215ehgFIAEoAUgEiAEBEhAKA216ehgGIAEoAUgFiAEBQgYKBF9teHhCBgoEX214eUIGCgRfbXh6QgYKBF9teXlCBgoEX215ekIGCgRfbXp6IswBCg9DYXJ0ZXNpYW5PZmZzZXQSDgoGZWFzdF9tGAEgASgBEg8KB25vcnRoX20YAiABKAESEQoEdXBfbRgDIAEoAUgAiAEBEjAKCmNvdmFyaWFuY2UYBCABKAsyFy53b3JsZC5Db3ZhcmlhbmNlTWF0cml4SAGIAQESKwoLb3JpZW50YXRpb24YBSABKAsyES53b3JsZC5RdWF0ZXJuaW9uSAKIAQFCBwoFX3VwX21CDQoLX2NvdmFyaWFuY2VCDgoMX29yaWVudGF0aW9uIoIDCgtQb2xhck9mZnNldBIPCgdhemltdXRoGAEgASgBEhYKCWVsZXZhdGlvbhgCIAEoAUgAiAEBEhIKBXJhbmdlGAMgASgBSAGIAQESNAoKY292YXJpYW5jZRgEIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhCAhgBSAKIAQESHgoRYXppbXV0aF9lcnJvcl9kZWcYCiABKAFIA4gBARIgChNlbGV2YXRpb25fZXJyb3JfZGVnGAsgASgBSASIAQESGgoNcmFuZ2VfZXJyb3JfbRgMIAEoAUgFiAEBEisKC29yaWVudGF0aW9uGAUgASgLMhEud29ybGQuUXVhdGVybmlvbkgGiAEBQgwKCl9lbGV2YXRpb25CCAoGX3JhbmdlQg0KC19jb3ZhcmlhbmNlQhQKEl9hemltdXRoX2Vycm9yX2RlZ0IWChRfZWxldmF0aW9uX2Vycm9yX2RlZ0IQCg5fcmFuZ2VfZXJyb3JfbUIOCgxfb3JpZW50YXRpb24iewoNUG9zZUNvbXBvbmVudBIOCgZwYXJlbnQYASABKAkSKwoJY2FydGVzaWFuGAIgASgLMhYud29ybGQuQ2FydGVzaWFuT2Zmc2V0SAASIwoFcG9sYXIYAyABKAsyEi53b3JsZC5Qb2xhck9mZnNldEgAQggKBm9mZnNldCJxChNUYXJnZXRQb3NlQ29tcG9uZW50EisKCWNhcnRlc2lhbhgBIAEoCzIWLndvcmxkLkNhcnRlc2lhbk9mZnNldEgAEiMKBXBvbGFyGAIgASgLMhIud29ybGQuUG9sYXJPZmZzZXRIAEIICgZvZmZzZXQiSgoPQW5ndWxhclZlbG9jaXR5EhEKCXJvbGxfcmF0ZRgBIAEoARISCgpwaXRjaF9yYXRlGAIgASgBEhAKCHlhd19yYXRlGAMgASgBIn8KFE9yaWVudGF0aW9uQ29tcG9uZW50EiYKC29yaWVudGF0aW9uGAEgASgLMhEud29ybGQuUXVhdGVybmlvbhIwCgpjb3ZhcmlhbmNlGAIgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEgAiAEBQg0KC19jb3ZhcmlhbmNlIpABCg5UcmFja0NvbXBvbmVudBIUCgd0cmFja2VyGAEgASgJSACIAQESFAoHaGlzdG9yeRgCIAEoCUgBiAEBEhcKCnByZWRpY3Rpb24YAyABKAlIAogBARISCgpkZXRlY3Rpb25zGAQgAygJQgoKCF90cmFja2VyQgoKCF9oaXN0b3J5Qg0KC19wcmVkaWN0aW9uIisKEExvY2F0b3JDb21wb25lbnQSFwoPbG9jYXRlZEVudGl0eUlkGAEgASgJIjUKD1Rhc2thYmxlQ29udGV4dBIVCghlbnRpdHlJZBgBIAEoCUgAiAEBQgsKCV9lbnRpdHlJZCI2ChBUYXNrYWJsZUFzc2lnbmVlEhUKCGVudGl0eUlkGAEgASgJSACIAQFCCwoJX2VudGl0eUlkIvUBChFUYXNrYWJsZUNvbXBvbmVudBIVCghyZXNlcnZlZBgBIAEoCUgAiAEBEhIKBWxhYmVsGAIgASgJSAGIAQESJwoHY29udGV4dBgDIAMoCzIWLndvcmxkLlRhc2thYmxlQ29udGV4dBIpCghhc3NpZ25lZRgEIAMoCzIXLndvcmxkLlRhc2thYmxlQXNzaWduZWUSJwoGc2NoZW1hGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIhCgRtb2RlGAYgASgOMhMud29ybGQuVGFza2FibGVNb2RlQgsKCV9yZXNlcnZlZEIICgZfbGFiZWwi1QEKFlRhc2tFeGVjdXRpb25Db21wb25lbnQSDAoEdGFzaxgBIAEoCRIwCgpwYXJhbWV0ZXJzGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEigKBXN0YXRlGAMgASgOMhkud29ybGQuVGFza0V4ZWN1dGlvblN0YXRlEhMKBnJlYXNvbhgEIAEoCUgBiAEBEhUKCHByaW9yaXR5GAUgASgNSAKIAQFCDQoLX3BhcmFtZXRlcnNCCQoHX3JlYXNvbkILCglfcHJpb3JpdHkiogEKDUtpbmVtYXRpY3NFbnUSEQoEZWFzdBgBIAEoAUgAiAEBEhIKBW5vcnRoGAIgASgBSAGIAQESDwoCdXAYAyABKAFIAogBARIwCgpjb3ZhcmlhbmNlGAQgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEgDiAEBQgcKBV9lYXN0QggKBl9ub3J0aEIFCgNfdXBCDQoLX2NvdmFyaWFuY2Ui7wEKE0tpbmVtYXRpY3NDb21wb25lbnQSLgoLdmVsb2NpdHlFbnUYASABKAsyFC53b3JsZC5LaW5lbWF0aWNzRW51SACIAQESMgoPYWNjZWxlcmF0aW9uRW51GAIgASgLMhQud29ybGQuS2luZW1hdGljc0VudUgBiAEBEjgKE2FuZ3VsYXJWZWxvY2l0eUJvZHkYAyABKAsyFi53b3JsZC5Bbmd1bGFyVmVsb2NpdHlIAogBAUIOCgxfdmVsb2NpdHlFbnVCEgoQX2FjY2VsZXJhdGlvbkVudUIWChRfYW5ndWxhclZlbG9jaXR5Qm9keSJCCghHZW9tZXRyeRIPCgN3a2IYASABKAxCAhgBEiUKBnBsYW5hchgCIAEoCzIVLndvcmxkLlBsYW5hckdlb21ldHJ5IkgKEUdlb1NoYXBlQ29tcG9uZW50EiYKCGdlb21ldHJ5GAEgASgLMg8ud29ybGQuR2VvbWV0cnlIAIgBAUILCglfZ2VvbWV0cnkiZAoTTG9jYWxTaGFwZUNvbXBvbmVudBITCgtyZWxhdGl2ZV90bxgCIAEoCRIrCghnZW9tZXRyeRgBIAEoCzIULndvcmxkLkxvY2FsR2VvbWV0cnlIAIgBAUILCglfZ2VvbWV0cnkiqAEKF0NsYXNzaWZpY2F0aW9uQ29tcG9uZW50EjwKCWRpbWVuc2lvbhgBIAEoDjIkLndvcmxkLkNsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uSACIAQESNAoIaWRlbnRpdHkYAiABKA4yHS53b3JsZC5DbGFzc2lmaWNhdGlvbklkZW50aXR5SAGIAQFCDAoKX2RpbWVuc2lvbkILCglfaWRlbnRpdHkilAEKDlRyYW5zcG9uZGVyQUlTEhEKBG1tc2kYASABKA1IAIgBARIQCgNpbW8YAiABKA1IAYgBARIVCghjYWxsc2lnbhgDIAEoCUgCiAEBEhgKC3Zlc3NlbF9uYW1lGAQgASgJSAOIAQFCBwoFX21tc2lCBgoEX2ltb0ILCglfY2FsbHNpZ25CDgoMX3Zlc3NlbF9uYW1lImMKD1RyYW5zcG9uZGVyQURTQhIZCgxpY2FvX2FkZHJlc3MYASABKA1IAIgBARIWCglmbGlnaHRfaWQYAiABKAlIAYgBAUIPCg1faWNhb19hZGRyZXNzQgwKCl9mbGlnaHRfaWQiewoUVHJhbnNwb25kZXJDb21wb25lbnQSJwoDYWlzGAEgASgLMhUud29ybGQuVHJhbnNwb25kZXJBSVNIAIgBARIpCgRhZHNiGAIgASgLMhYud29ybGQuVHJhbnNwb25kZXJBRFNCSAGIAQFCBgoEX2Fpc0IHCgVfYWRzYiKhAwoXQWRtaW5pc3RyYXRpdmVDb21wb25lbnQSDwoCaWQYASABKAlIAIgBARIRCgRmbGFnGAIgASgJSAGIAQESEgoFb3duZXIYAyABKAlIAogBARIZCgxtYW51ZmFjdHVyZXIYBCABKAlIA4gBARISCgVtb2RlbBgFIAEoCUgEiAEBEhcKCnllYXJfYnVpbHQYBiABKA1IBYgBARIVCghsZW5ndGhfbRgHIAEoAkgGiAEBEhQKB3dpZHRoX20YCiABKAJIB4gBARIVCghoZWlnaHRfbRgLIAEoAkgIiAEBEhcKCnRvbm5hZ2VfZ3QYCCABKAJICYgBARIcCg9lbmdpbmVfcG93ZXJfa3cYCSABKAJICogBAUIFCgNfaWRCBwoFX2ZsYWdCCAoGX293bmVyQg8KDV9tYW51ZmFjdHVyZXJCCAoGX21vZGVsQg0KC195ZWFyX2J1aWx0QgsKCV9sZW5ndGhfbUIKCghfd2lkdGhfbUILCglfaGVpZ2h0X21CDQoLX3Rvbm5hZ2VfZ3RCEgoQX2VuZ2luZV9wb3dlcl9rdyLwAQoTTmF2aWdhdGlvbkNvbXBvbmVudBIoCgRtb2RlGAEgASgOMhUud29ybGQuTmF2aWdhdGlvbk1vZGVIAIgBARISCgVhcm1lZBgCIAEoCEgBiAEBEhYKCWVtZXJnZW5jeRgDIAEoCEgCiAEBEh0KEHdheXBvaW50X2N1cnJlbnQYBCABKA1IA4gBARIbCg53YXlwb2ludF90b3RhbBgFIAEoDUgEiAEBQgcKBV9tb2RlQggKBl9hcm1lZEIMCgpfZW1lcmdlbmN5QhMKEV93YXlwb2ludF9jdXJyZW50QhEKD193YXlwb2ludF90b3RhbCKtAQoQTWlzc2lvbkNvbXBvbmVudBIPCgdtZW1iZXJzGAEgAygJEhgKC2Rlc2NyaXB0aW9uGAIgASgJSACIAQESGAoLZGVzdGluYXRpb24YAyABKAlIAYgBARIsCgNldGEYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQg4KDF9kZXN0aW5hdGlvbkIGCgRfZXRhIqwECg1MaW5rQ29tcG9uZW50EiYKBnN0YXR1cxgBIAEoDjIRLndvcmxkLkxpbmtTdGF0dXNIAIgBARIVCghyc3NpX2RibRgCIAEoEUgBiAEBEhMKBnNucl9kYhgDIAEoEUgCiAEBEhAKA3ZpYRgFIAEoCUgDiAEBEhwKD2xhc3RfbGF0ZW5jeV9tcxgGIAEoDUgEiAEBEhsKDmF2Z19sYXRlbmN5X21zGAcgASgNSAWIAQESMgoJbGFzdF9zZWVuGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEiEKFGxpbmtfcXVhbGl0eV9wZXJjZW50GAkgASgNSAeIAQESGAoLdHhfcG93ZXJfbXcYCiABKA1ICIgBARIbCg5hY3RpdmVfYW50ZW5uYRgLIAEoDUgJiAEBEhQKB3JmX21vZGUYDCABKAlICogBARIbCg5wYWNrZXRfcmF0ZV9oehgNIAEoDUgLiAEBQgkKB19zdGF0dXNCCwoJX3Jzc2lfZGJtQgkKB19zbnJfZGJCBgoEX3ZpYUISChBfbGFzdF9sYXRlbmN5X21zQhEKD19hdmdfbGF0ZW5jeV9tc0IMCgpfbGFzdF9zZWVuQhcKFV9saW5rX3F1YWxpdHlfcGVyY2VudEIOCgxfdHhfcG93ZXJfbXdCEQoPX2FjdGl2ZV9hbnRlbm5hQgoKCF9yZl9tb2RlQhEKD19wYWNrZXRfcmF0ZV9oeiL9AQoQQ2FwdHVyZUNvbXBvbmVudBIUCgdwYXlsb2FkGAEgASgMSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgDIAEoCUgCiAEBEhgKC2NhcHR1cmVkX2J5GAQgASgJSAOIAQESNAoLY2FwdHVyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESDwoHY29udGVudBgGIAMoCUIKCghfcGF5bG9hZEIHCgVfcG9ydEIPCg1fY29udGVudF90eXBlQg4KDF9jYXB0dXJlZF9ieUIOCgxfY2FwdHVyZWRfYXQiiAIKDlBvd2VyQ29tcG9uZW50EiUKGGJhdHRlcnlfY2hhcmdlX3JlbWFpbmluZxgBIAEoAkgAiAEBEhQKB3ZvbHRhZ2UYAiABKAJIAYgBARIeChFyZW1haW5pbmdfc2Vjb25kcxgDIAEoDUgCiAEBEhYKCWN1cnJlbnRfYRgEIAEoAkgDiAEBEh4KEWNhcGFjaXR5X3VzZWRfbWFoGAUgASgCSASIAQFCGwoZX2JhdHRlcnlfY2hhcmdlX3JlbWFpbmluZ0IKCghfdm9sdGFnZUIUChJfcmVtYWluaW5nX3NlY29uZHNCDAoKX2N1cnJlbnRfYUIUChJfY2FwYWNpdHlfdXNlZF9tYWgiMQoRRGV2aWNlQ2xhc3NPcHRpb24SDQoFY2xhc3MYASABKAkSDQoFbGFiZWwYAiABKAki6gIKFUNvbmZpZ3VyYWJsZUNvbXBvbmVudBInCgZzY2hlbWEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgVzdGF0ZRgDIAEoDjIYLndvcmxkLkNvbmZpZ3VyYWJsZVN0YXRlEhIKBWVycm9yGAQgASgJSACIAQESEgoFbGFiZWwYBSABKAlIAYgBARIXCg9hcHBsaWVkX3ZlcnNpb24YBiABKAQSOgoYc3VwcG9ydGVkX2RldmljZV9jbGFzc2VzGAcgAygLMhgud29ybGQuRGV2aWNlQ2xhc3NPcHRpb24SNQoMc2NoZWR1bGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQggKBl9lcnJvckIICgZfbGFiZWxCDwoNX3NjaGVkdWxlZF9hdCKUBQoPRGV2aWNlQ29tcG9uZW50EhMKBnBhcmVudBgBIAEoCUgAiAEBEhMKC2NvbXBvc2l0aW9uGAIgAygJEh8KEnVuaXF1ZV9oYXJkd2FyZV9pZBgEIAEoCUgBiAEBEiEKBXN0YXRlGAYgASgOMhIud29ybGQuRGV2aWNlU3RhdGUSEgoFZXJyb3IYByABKAlIAogBARISCgVjbGFzcxgKIAEoCUgDiAEBEhUKCGNhdGVnb3J5GA0gASgJSASIAQESJAoEbm9kZRgUIAEoCzIRLndvcmxkLk5vZGVEZXZpY2VIBYgBARIiCgN1c2IYFSABKAsyEC53b3JsZC5Vc2JEZXZpY2VIBogBARIgCgJpcBgWIAEoCzIPLndvcmxkLklwRGV2aWNlSAeIAQESKAoGc2VyaWFsGBcgASgLMhMud29ybGQuU2VyaWFsRGV2aWNlSAiIAQESLAoIZXRoZXJuZXQYGCABKAsyFS53b3JsZC5FdGhlcm5ldERldmljZUgJiAEBEiYKBWxwd2FuGBkgASgLMhIud29ybGQuTFBXQU5EZXZpY2VICogBARIwCgptZXNodGFzdGljGBogASgLMhcud29ybGQuTWVzaHRhc3RpY0RldmljZUgLiAEBEiIKA2JsZRgbIAEoCzIQLndvcmxkLkJsZURldmljZUgMiAEBQgkKB19wYXJlbnRCFQoTX3VuaXF1ZV9oYXJkd2FyZV9pZEIICgZfZXJyb3JCCAoGX2NsYXNzQgsKCV9jYXRlZ29yeUIHCgVfbm9kZUIGCgRfdXNiQgUKA19pcEIJCgdfc2VyaWFsQgsKCV9ldGhlcm5ldEIICgZfbHB3YW5CDQoLX21lc2h0YXN0aWNCBgoEX2JsZSJtCgpNaXNzaW9uS2l0Ei8KB2xheW91dHMYASADKAsyHi53b3JsZC5NaXNzaW9uS2l0LkxheW91dHNFbnRyeRouCgxMYXlvdXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLdAgoKTm9kZURldmljZRIVCghob3N0bmFtZRgBIAEoCUgAiAEBEg8KAm9zGAIgASgJSAGIAQESEQoEYXJjaBgDIAEoCUgCiAEBEhQKB251bV9jcHUYBCABKA1IA4gBARIXCgpvc192ZXJzaW9uGAUgASgJSASIAQESGwoOaHlkcmlzX3ZlcnNpb24YBiABKAlIBYgBARIkChdoeWRyaXNfdXBkYXRlX2F2YWlsYWJsZRgHIAEoCUgGiAEBEisKC21pc3Npb25fa2l0GAggASgLMhEud29ybGQuTWlzc2lvbktpdEgHiAEBQgsKCV9ob3N0bmFtZUIFCgNfb3NCBwoFX2FyY2hCCgoIX251bV9jcHVCDQoLX29zX3ZlcnNpb25CEQoPX2h5ZHJpc192ZXJzaW9uQhoKGF9oeWRyaXNfdXBkYXRlX2F2YWlsYWJsZUIOCgxfbWlzc2lvbl9raXQi+QIKCVVzYkRldmljZRIWCgl2ZW5kb3JfaWQYASABKA1IAIgBARIXCgpwcm9kdWN0X2lkGAIgASgNSAGIAQESGQoMZGV2aWNlX2NsYXNzGAMgASgNSAKIAQESHAoPZGV2aWNlX3N1YmNsYXNzGAQgASgNSAOIAQESHAoPZGV2aWNlX3Byb3RvY29sGAUgASgNSASIAQESHgoRbWFudWZhY3R1cmVyX25hbWUYBiABKAlIBYgBARIZCgxwcm9kdWN0X25hbWUYByABKAlIBogBARIaCg1zZXJpYWxfbnVtYmVyGAggASgJSAeIAQFCDAoKX3ZlbmRvcl9pZEINCgtfcHJvZHVjdF9pZEIPCg1fZGV2aWNlX2NsYXNzQhIKEF9kZXZpY2Vfc3ViY2xhc3NCEgoQX2RldmljZV9wcm90b2NvbEIUChJfbWFudWZhY3R1cmVyX25hbWVCDwoNX3Byb2R1Y3RfbmFtZUIQCg5fc2VyaWFsX251bWJlciJCCghJcERldmljZRIRCgRob3N0GAEgASgJSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBQgcKBV9ob3N0QgcKBV9wb3J0IloKDkV0aGVybmV0RGV2aWNlEhgKC21hY19hZGRyZXNzGAEgASgJSACIAQESEwoGdmVuZG9yGAIgASgJSAGIAQFCDgoMX21hY19hZGRyZXNzQgkKB192ZW5kb3IiUAoMU2VyaWFsRGV2aWNlEhEKBHBhdGgYASABKAlIAIgBARIWCgliYXVkX3JhdGUYAiABKA1IAYgBAUIHCgVfcGF0aEIMCgpfYmF1ZF9yYXRlItwBChBNZXNodGFzdGljRGV2aWNlEhUKCG5vZGVfbnVtGAEgASgNSACIAQESFgoJbG9uZ19uYW1lGAIgASgJSAGIAQESFwoKc2hvcnRfbmFtZRgDIAEoCUgCiAEBEhsKDmhhcmR3YXJlX21vZGVsGAQgASgJSAOIAQESFwoKcHVibGljX2tleRgFIAEoDEgEiAEBQgsKCV9ub2RlX251bUIMCgpfbG9uZ19uYW1lQg0KC19zaG9ydF9uYW1lQhEKD19oYXJkd2FyZV9tb2RlbEINCgtfcHVibGljX2tleSJJCgtMUFdBTkRldmljZRIQCgNldWkYASABKAlIAIgBARIUCgdhZGRyZXNzGAIgASgJSAGIAQFCBgoEX2V1aUIKCghfYWRkcmVzcyJgCglCbGVEZXZpY2USFAoHYWRkcmVzcxgBIAEoCUgAiAEBEhEKBG5hbWUYAiABKAlIAYgBARIVCg1zZXJ2aWNlX3V1aWRzGAQgAygJQgoKCF9hZGRyZXNzQgcKBV9uYW1lIlEKFkNvbmZpZ3VyYXRpb25Db21wb25lbnQSJgoFdmFsdWUYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3ZlcnNpb24YBSABKAQioAEKDUNoYXRDb21wb25lbnQSEwoGc2VuZGVyGAEgASgJSACIAQESDwoCdG8YAyABKAlIAYgBARIPCgdtZXNzYWdlGAQgASgJEhUKCHJlcGx5X3RvGAUgASgJSAKIAQESFQoIcmVhY3Rpb24YBiABKAhIA4gBAUIJCgdfc2VuZGVyQgUKA190b0ILCglfcmVwbHlfdG9CCwoJX3JlYWN0aW9uIkQKEUFzc2VtYmx5Q29tcG9uZW50EhMKBnBhcmVudBgBIAEoCUgAiAEBEg8KB291dGxpbmUYAiADKAlCCQoHX3BhcmVudCLVBAoMRW50aXR5RmlsdGVyEg8KAmlkGAEgASgJSACIAQESEgoFbGFiZWwYAiABKAlIAYgBARIiCgNnZW8YAyABKAsyEC53b3JsZC5HZW9GaWx0ZXJIAogBARIsCgh0YXNrYWJsZRgEIAEoCzIVLndvcmxkLlRhc2thYmxlRmlsdGVySAOIAQESEQoJY29tcG9uZW50GAUgAygNEjAKCmNvbnRyb2xsZXIYByABKAsyFy53b3JsZC5Db250cm9sbGVyRmlsdGVySASIAQESJgoFdHJhY2sYCCABKAsyEi53b3JsZC5UcmFja0ZpbHRlckgFiAEBEioKB21pc3Npb24YCSABKAsyFC53b3JsZC5NaXNzaW9uRmlsdGVySAaIAQESKgoHY2hhbm5lbBgKIAEoCzIULndvcmxkLkNoYW5uZWxGaWx0ZXJIB4gBARIoCgZkZXZpY2UYMiABKAsyEy53b3JsZC5EZXZpY2VGaWx0ZXJICIgBARIvCgZjb25maWcYMyABKAsyGi53b3JsZC5Db25maWd1cmF0aW9uRmlsdGVySAmIAQESHwoCb3IYZCADKAsyEy53b3JsZC5FbnRpdHlGaWx0ZXISIAoDbm90GGUgASgLMhMud29ybGQuRW50aXR5RmlsdGVyQgUKA19pZEIICgZfbGFiZWxCBgoEX2dlb0ILCglfdGFza2FibGVCDQoLX2NvbnRyb2xsZXJCCAoGX3RyYWNrQgoKCF9taXNzaW9uQgoKCF9jaGFubmVsQgkKB19kZXZpY2VCCQoHX2NvbmZpZyIqChBDb250cm9sbGVyRmlsdGVyEg8KAmlkGAEgASgJSACIAQFCBQoDX2lkIi8KC1RyYWNrRmlsdGVyEhQKB3RyYWNrZXIYASABKAlIAIgBAUIKCghfdHJhY2tlciJdCg1NaXNzaW9uRmlsdGVyEhcKCm1pc3Npb25faWQYASABKAlIAIgBARIWCgltZW1iZXJfaWQYAiABKAlIAYgBAUINCgtfbWlzc2lvbl9pZEIMCgpfbWVtYmVyX2lkIocBCg5UYXNrYWJsZUZpbHRlchIsCgdjb250ZXh0GAEgASgLMhYud29ybGQuVGFza2FibGVDb250ZXh0SACIAQESLgoIYXNzaWduZWUYAiABKAsyFy53b3JsZC5UYXNrYWJsZUFzc2lnbmVlSAGIAQFCCgoIX2NvbnRleHRCCwoJX2Fzc2lnbmVlIk4KCUdlb0ZpbHRlchIjCghnZW9tZXRyeRgBIAEoCzIPLndvcmxkLkdlb21ldHJ5SAASFQoLZ2VvRW50aXR5SWQYAiABKAlIAEIFCgNnZW8i9gEKDERldmljZUZpbHRlchITCgZwYXJlbnQYASABKAlIAIgBARIfChJ1bmlxdWVfaGFyZHdhcmVfaWQYBCABKAlIAYgBARIZCgxkZXZpY2VfY2xhc3MYBSABKAlIAogBARIoCgNibGUYBiABKAsyFi53b3JsZC5CbGVEZXZpY2VGaWx0ZXJIA4gBARIoCgN1c2IYByABKAsyFi53b3JsZC5Vc2JEZXZpY2VGaWx0ZXJIBIgBAUIJCgdfcGFyZW50QhUKE191bmlxdWVfaGFyZHdhcmVfaWRCDwoNX2RldmljZV9jbGFzc0IGCgRfYmxlQgYKBF91c2IiZgoPQmxlRGV2aWNlRmlsdGVyEhQKB2FkZHJlc3MYASABKAlIAIgBARIRCgRuYW1lGAIgASgJSAGIAQESFQoNc2VydmljZV91dWlkcxgEIAMoCUIKCghfYWRkcmVzc0IHCgVfbmFtZSL/AgoPVXNiRGV2aWNlRmlsdGVyEhYKCXZlbmRvcl9pZBgBIAEoDUgAiAEBEhcKCnByb2R1Y3RfaWQYAiABKA1IAYgBARIZCgxkZXZpY2VfY2xhc3MYAyABKA1IAogBARIcCg9kZXZpY2Vfc3ViY2xhc3MYBCABKA1IA4gBARIcCg9kZXZpY2VfcHJvdG9jb2wYBSABKA1IBIgBARIeChFtYW51ZmFjdHVyZXJfbmFtZRgGIAEoCUgFiAEBEhkKDHByb2R1Y3RfbmFtZRgHIAEoCUgGiAEBEhoKDXNlcmlhbF9udW1iZXIYCCABKAlIB4gBAUIMCgpfdmVuZG9yX2lkQg0KC19wcm9kdWN0X2lkQg8KDV9kZXZpY2VfY2xhc3NCEgoQX2RldmljZV9zdWJjbGFzc0ISChBfZGV2aWNlX3Byb3RvY29sQhQKEl9tYW51ZmFjdHVyZXJfbmFtZUIPCg1fcHJvZHVjdF9uYW1lQhAKDl9zZXJpYWxfbnVtYmVyIhUKE0NvbmZpZ3VyYXRpb25GaWx0ZXIiHQoNQ2hhbm5lbEZpbHRlchIMCgRuYW1lGAEgASgJIrQBCg1XYXRjaEJlaGF2aW9yEhgKC21heF9yYXRlX2h6GAEgASgCSACIAQESKgoMbWluX3ByaW9yaXR5GAMgASgOMg8ud29ybGQuUHJpb3JpdHlIAYgBARIiChVrZWVwYWxpdmVfaW50ZXJ2YWxfbXMYBCABKA1IAogBAUIOCgxfbWF4X3JhdGVfaHpCDwoNX21pbl9wcmlvcml0eUIYChZfa2VlcGFsaXZlX2ludGVydmFsX21zInwKE0xpc3RFbnRpdGllc1JlcXVlc3QSIwoGZmlsdGVyGAIgASgLMhMud29ybGQuRW50aXR5RmlsdGVyEiwKCWJlaGF2aW91chgEIAEoCzIULndvcmxkLldhdGNoQmVoYXZpb3JIAIgBAUIMCgpfYmVoYXZpb3VySgQIARACIjcKFExpc3RFbnRpdGllc1Jlc3BvbnNlEh8KCGVudGl0aWVzGAEgAygLMg0ud29ybGQuRW50aXR5IloKE0VudGl0eUNoYW5nZVJlcXVlc3QSHgoHY2hhbmdlcxgBIAMoCzINLndvcmxkLkVudGl0eRIjCgxyZXBsYWNlbWVudHMYAiADKAsyDS53b3JsZC5FbnRpdHkiIQoTRXhwaXJlRW50aXR5UmVxdWVzdBIKCgJpZBgBIAEoCSIWChRFeHBpcmVFbnRpdHlSZXNwb25zZSI3ChRFbnRpdHlDaGFuZ2VSZXNwb25zZRIQCghhY2NlcHRlZBgBIAEoCBINCgVkZWJ1ZxgCIAEoCSJSChFFbnRpdHlDaGFuZ2VFdmVudBIdCgZlbnRpdHkYASABKAsyDS53b3JsZC5FbnRpdHkSHgoBdBgCIAEoDjITLndvcmxkLkVudGl0eUNoYW5nZSI9ChFFbnRpdHlDaGFuZ2VCYXRjaBIoCgZldmVudHMYASADKAsyGC53b3JsZC5FbnRpdHlDaGFuZ2VFdmVudCIeChBHZXRFbnRpdHlSZXF1ZXN0EgoKAmlkGAEgASgJIjIKEUdldEVudGl0eVJlc3BvbnNlEh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eSIVChNHZXRMb2NhbE5vZGVSZXF1ZXN0IkYKFEdldExvY2FsTm9kZVJlc3BvbnNlEh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eRIPCgdub2RlX2lkGAIgASgJIhEKD09ic2VydmVyUmVxdWVzdCJzCg1PYnNlcnZlclN0YXRlEhwKA2dlbxgBIAEoCzIPLndvcmxkLkdlb21ldHJ5EjQKC3ZpZXdIaXN0b3J5GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg4KDF92aWV3SGlzdG9yeSJGCg5SdW5UYXNrUmVxdWVzdBIQCghlbnRpdHlJZBgBIAEoCRIVCghwcmlvcml0eRgCIAEoDUgAiAEBQgsKCV9wcmlvcml0eSKDAQoPUnVuVGFza1Jlc3BvbnNlEhMKC2V4ZWN1dGlvbklkGAEgASgJEiEKBnN0YXR1cxgCIAEoDjIRLndvcmxkLlRhc2tTdGF0dXMSIAoTaHVtYW5SZWFkYWJsZVJlYXNvbhgDIAEoCUgAiAEBQhYKFF9odW1hblJlYWRhYmxlUmVhc29uIhIKEEhhcmRSZXNldFJlcXVlc3QiEwoRSGFyZFJlc2V0UmVzcG9uc2UqYgoIUHJpb3JpdHkSFwoTUHJpb3JpdHlVbnNwZWNpZmllZBAAEhMKD1ByaW9yaXR5Um91dGluZRABEhUKEVByaW9yaXR5SW1tZWRpYXRlEAISEQoNUHJpb3JpdHlGbGFzaBADKo8BCgtHbnNzRml4VHlwZRITCg9HbnNzRml4VHlwZU5vbmUQABIRCg1HbnNzRml4VHlwZTJEEAESEQoNR25zc0ZpeFR5cGUzRBACEhMKD0duc3NGaXhUeXBlREdQUxADEhcKE0duc3NGaXhUeXBlUnRrRmxvYXQQBBIXChNHbnNzRml4VHlwZVJ0a0ZpeGVkEAUq7AEKE01lZGlhU3RyZWFtUHJvdG9jb2wSIgoeTWVkaWFTdHJlYW1Qcm90b2NvbFVuc3BlY2lmaWVkEAASHQoZTWVkaWFTdHJlYW1Qcm90b2NvbFdlYnJ0YxABEhoKFk1lZGlhU3RyZWFtUHJvdG9jb2xIbHMQAhIcChhNZWRpYVN0cmVhbVByb3RvY29sTWpwZWcQAxIcChhNZWRpYVN0cmVhbVByb3RvY29sSW1hZ2UQBBIdChlNZWRpYVN0cmVhbVByb3RvY29sSWZyYW1lEAUSGwoXTWVkaWFTdHJlYW1Qcm90b2NvbFJ0c3AQBip/Cg9NZWRpYVN0cmVhbVJvbGUSHgoaTWVkaWFTdHJlYW1Sb2xlVW5zcGVjaWZpZWQQABIXChNNZWRpYVN0cmVhbVJvbGVNYWluEAESFgoSTWVkaWFTdHJlYW1Sb2xlU3ViEAISGwoXTWVkaWFTdHJlYW1Sb2xlU25hcHNob3QQAyp6CgxUYXNrYWJsZU1vZGUSGQoVVGFza2FibGVNb2RlRXhjbHVzaXZlEAASGQoVVGFza2FibGVNb2RlUmVjb25jaWxlEAESFQoRVGFza2FibGVNb2RlU3Bhd24QAhIdChlUYXNrYWJsZU1vZGVQcmlvcml0eVF1ZXVlEAMqkQEKElRhc2tFeGVjdXRpb25TdGF0ZRIdChlUYXNrRXhlY3V0aW9uU3RhdGVQZW5kaW5nEAASHQoZVGFza0V4ZWN1dGlvblN0YXRlUnVubmluZxABEh8KG1Rhc2tFeGVjdXRpb25TdGF0ZUNvbXBsZXRlZBACEhwKGFRhc2tFeGVjdXRpb25TdGF0ZUZhaWxlZBADKowCChZDbGFzc2lmaWNhdGlvbklkZW50aXR5EiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlJbnZhbGlkEAASIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eVBlbmRpbmcQARIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5VW5rbm93bhACEiAKHENsYXNzaWZpY2F0aW9uSWRlbnRpdHlGcmllbmQQAxIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5TmV1dHJhbBAEEiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlIb3N0aWxlEAUSIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eVN1c3BlY3QQBirEAgodQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb24SKAokQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25JbnZhbGlkEAASKAokQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25Vbmtub3duEAESJgoiQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25TcGFjZRACEiQKIENsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uQWlyEAMSJwojQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25Hcm91bmQQBBIrCidDbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvblNlYVN1cmZhY2UQBRIrCidDbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvblN1YnN1cmZhY2UQBir2AQoOTmF2aWdhdGlvbk1vZGUSHQoZTmF2aWdhdGlvbk1vZGVVbnNwZWNpZmllZBAAEhkKFU5hdmlnYXRpb25Nb2RlUGxhbm5lZBABEhwKGE5hdmlnYXRpb25Nb2RlU3RhdGlvbmFyeRACEhoKFk5hdmlnYXRpb25Nb2RlVW5kZXJ3YXkQAxIcChhOYXZpZ2F0aW9uTW9kZUF1dG9ub21vdXMQBBIYChROYXZpZ2F0aW9uTW9kZUd1aWRlZBAFEhsKF05hdmlnYXRpb25Nb2RlTG9pdGVyaW5nEAYSGwoXTmF2aWdhdGlvbk1vZGVSZXR1cm5pbmcQBypsCgpMaW5rU3RhdHVzEhkKFUxpbmtTdGF0dXNVbnNwZWNpZmllZBAAEhcKE0xpbmtTdGF0dXNDb25uZWN0ZWQQARIWChJMaW5rU3RhdHVzRGVncmFkZWQQAhISCg5MaW5rU3RhdHVzTG9zdBADKlMKC0RldmljZVN0YXRlEhYKEkRldmljZVN0YXRlUGVuZGluZxAAEhUKEURldmljZVN0YXRlQWN0aXZlEAESFQoRRGV2aWNlU3RhdGVGYWlsZWQQAirKAQoRQ29uZmlndXJhYmxlU3RhdGUSHQoZQ29uZmlndXJhYmxlU3RhdGVJbmFjdGl2ZRAAEh0KGUNvbmZpZ3VyYWJsZVN0YXRlU3RhcnRpbmcQARIbChdDb25maWd1cmFibGVTdGF0ZUFjdGl2ZRACEhsKF0NvbmZpZ3VyYWJsZVN0YXRlRmFpbGVkEAMSHQoZQ29uZmlndXJhYmxlU3RhdGVDb25mbGljdBAEEh4KGkNvbmZpZ3VyYWJsZVN0YXRlU2NoZWR1bGVkEAUqdQoMRW50aXR5Q2hhbmdlEhcKE0VudGl0eUNoYW5nZUludmFsaWQQABIXChNFbnRpdHlDaGFuZ2VVcGRhdGVkEAESFwoTRW50aXR5Q2hhbmdlRXhwaXJlZBACEhoKFkVudGl0eUNoYW5nZVVub2JzZXJ2ZWQQAyr1CAoPRW50aXR5Q29tcG9uZW50Eh4KGkVudGl0eUNvbXBvbmVudFVuc3BlY2lmaWVkEAASGAoURW50aXR5Q29tcG9uZW50TGFiZWwQAhIdChlFbnRpdHlDb21wb25lbnRDb250cm9sbGVyEAMSGwoXRW50aXR5Q29tcG9uZW50TGlmZXRpbWUQBBIbChdFbnRpdHlDb21wb25lbnRQcmlvcml0eRAFEhgKFEVudGl0eUNvbXBvbmVudExlYXNlEAYSGgoWRW50aXR5Q29tcG9uZW50Um91dGluZxAHEhYKEkVudGl0eUNvbXBvbmVudEdlbxALEhkKFUVudGl0eUNvbXBvbmVudFN5bWJvbBAMEhkKFUVudGl0eUNvbXBvbmVudENhbWVyYRAPEhwKGEVudGl0eUNvbXBvbmVudERldGVjdGlvbhAQEhoKFkVudGl0eUNvbXBvbmVudEJlYXJpbmcQERIYChRFbnRpdHlDb21wb25lbnRUcmFjaxAVEhoKFkVudGl0eUNvbXBvbmVudExvY2F0b3IQFhIbChdFbnRpdHlDb21wb25lbnRUYXNrYWJsZRAXEh0KGUVudGl0eUNvbXBvbmVudEtpbmVtYXRpY3MQGBIYChRFbnRpdHlDb21wb25lbnRTaGFwZRAZEiEKHUVudGl0eUNvbXBvbmVudENsYXNzaWZpY2F0aW9uEBoSHgoaRW50aXR5Q29tcG9uZW50VHJhbnNwb25kZXIQGxIhCh1FbnRpdHlDb21wb25lbnRBZG1pbmlzdHJhdGl2ZRAcEh0KGUVudGl0eUNvbXBvbmVudExvY2FsU2hhcGUQHRIeChpFbnRpdHlDb21wb25lbnRPcmllbnRhdGlvbhAeEhoKFkVudGl0eUNvbXBvbmVudE1pc3Npb24QHxIXChNFbnRpdHlDb21wb25lbnRMaW5rECASGAoURW50aXR5Q29tcG9uZW50UG93ZXIQIRIdChlFbnRpdHlDb21wb25lbnROYXZpZ2F0aW9uECISGgoWRW50aXR5Q29tcG9uZW50Q2FwdHVyZRAjEhkKFUVudGl0eUNvbXBvbmVudE1ldHJpYxAkEhkKFUVudGl0eUNvbXBvbmVudFNlbnNvchAlEhcKE0VudGl0eUNvbXBvbmVudFBvc2UQJhIXChNFbnRpdHlDb21wb25lbnRDaGF0ECcSIAocRW50aXR5Q29tcG9uZW50VGFza0V4ZWN1dGlvbhApEhcKE0VudGl0eUNvbXBvbmVudEduc3MQKhIZChVFbnRpdHlDb21wb25lbnREZXZpY2UQMhIZChVFbnRpdHlDb21wb25lbnRDb25maWcQMxIfChtFbnRpdHlDb21wb25lbnRDb25maWd1cmFibGUQNBIgChxFbnRpdHlDb21wb25lbnRJbnRlcmFjdGl2aXR5EDwSGwoXRW50aXR5Q29tcG9uZW50QXJ0aWZhY3QQPRIdChlFbnRpdHlDb21wb25lbnRUYXJnZXRQb3NlED4qaQoKVGFza1N0YXR1cxIVChFUYXNrU3RhdHVzSW52YWxpZBAAEhUKEVRhc2tTdGF0dXNSdW5uaW5nEAESFwoTVGFza1N0YXR1c0NvbXBsZXRlZBACEhQKEFRhc2tTdGF0dXNGYWlsZWQQAzKtBAoMV29ybGRTZXJ2aWNlEkcKDExpc3RFbnRpdGllcxIaLndvcmxkLkxpc3RFbnRpdGllc1JlcXVlc3QaGy53b3JsZC5MaXN0RW50aXRpZXNSZXNwb25zZRI+CglHZXRFbnRpdHkSFy53b3JsZC5HZXRFbnRpdHlSZXF1ZXN0Ghgud29ybGQuR2V0RW50aXR5UmVzcG9uc2USRwoNV2F0Y2hFbnRpdGllcxIaLndvcmxkLkxpc3RFbnRpdGllc1JlcXVlc3QaGC53b3JsZC5FbnRpdHlDaGFuZ2VFdmVudDABEj8KBFB1c2gSGi53b3JsZC5FbnRpdHlDaGFuZ2VSZXF1ZXN0Ghsud29ybGQuRW50aXR5Q2hhbmdlUmVzcG9uc2USRwoMRXhwaXJlRW50aXR5Ehoud29ybGQuRXhwaXJlRW50aXR5UmVxdWVzdBobLndvcmxkLkV4cGlyZUVudGl0eVJlc3BvbnNlEkcKDEdldExvY2FsTm9kZRIaLndvcmxkLkdldExvY2FsTm9kZVJlcXVlc3QaGy53b3JsZC5HZXRMb2NhbE5vZGVSZXNwb25zZRI4CgdSdW5UYXNrEhUud29ybGQuUnVuVGFza1JlcXVlc3QaFi53b3JsZC5SdW5UYXNrUmVzcG9uc2USPgoJSGFyZFJlc2V0Ehcud29ybGQuSGFyZFJlc2V0UmVxdWVzdBoYLndvcmxkLkhhcmRSZXNldFJlc3BvbnNlQiBaHmdpdGh1Yi5jb20vcHJvamVjdHFhaS9wcm90by9nb2IGcHJvdG8z", [file_geometry, file_google_protobuf_struct, file_google_protobuf_timestamp, file_metrics]);
15
15
 
16
16
  /**
17
17
  * Describes the message world.Entity.
@@ -62,572 +62,593 @@ export const RoutingSchema = /*@__PURE__*/
62
62
  export const GeoSpatialComponentSchema = /*@__PURE__*/
63
63
  messageDesc(file_world, 6);
64
64
 
65
+ /**
66
+ * Describes the message world.GnssComponent.
67
+ * Use `create(GnssComponentSchema)` to create a new message.
68
+ */
69
+ export const GnssComponentSchema = /*@__PURE__*/
70
+ messageDesc(file_world, 7);
71
+
65
72
  /**
66
73
  * Describes the message world.SymbolComponent.
67
74
  * Use `create(SymbolComponentSchema)` to create a new message.
68
75
  */
69
76
  export const SymbolComponentSchema = /*@__PURE__*/
70
- messageDesc(file_world, 7);
77
+ messageDesc(file_world, 8);
71
78
 
72
79
  /**
73
80
  * Describes the message world.InteractivityComponent.
74
81
  * Use `create(InteractivityComponentSchema)` to create a new message.
75
82
  */
76
83
  export const InteractivityComponentSchema = /*@__PURE__*/
77
- messageDesc(file_world, 8);
84
+ messageDesc(file_world, 9);
78
85
 
79
86
  /**
80
87
  * Describes the message world.MediaStream.
81
88
  * Use `create(MediaStreamSchema)` to create a new message.
82
89
  */
83
90
  export const MediaStreamSchema = /*@__PURE__*/
84
- messageDesc(file_world, 9);
91
+ messageDesc(file_world, 10);
85
92
 
86
93
  /**
87
94
  * Describes the message world.CameraComponent.
88
95
  * Use `create(CameraComponentSchema)` to create a new message.
89
96
  */
90
97
  export const CameraComponentSchema = /*@__PURE__*/
91
- messageDesc(file_world, 10);
98
+ messageDesc(file_world, 11);
92
99
 
93
100
  /**
94
101
  * Describes the message world.ArtifactLocation.
95
102
  * Use `create(ArtifactLocationSchema)` to create a new message.
96
103
  */
97
104
  export const ArtifactLocationSchema = /*@__PURE__*/
98
- messageDesc(file_world, 11);
105
+ messageDesc(file_world, 12);
99
106
 
100
107
  /**
101
108
  * Describes the message world.ArtifactComponent.
102
109
  * Use `create(ArtifactComponentSchema)` to create a new message.
103
110
  */
104
111
  export const ArtifactComponentSchema = /*@__PURE__*/
105
- messageDesc(file_world, 12);
112
+ messageDesc(file_world, 13);
106
113
 
107
114
  /**
108
115
  * Describes the message world.DetectionComponent.
109
116
  * Use `create(DetectionComponentSchema)` to create a new message.
110
117
  */
111
118
  export const DetectionComponentSchema = /*@__PURE__*/
112
- messageDesc(file_world, 13);
119
+ messageDesc(file_world, 14);
113
120
 
114
121
  /**
115
122
  * Describes the message world.BearingComponent.
116
123
  * Use `create(BearingComponentSchema)` to create a new message.
117
124
  */
118
125
  export const BearingComponentSchema = /*@__PURE__*/
119
- messageDesc(file_world, 14);
126
+ messageDesc(file_world, 15);
120
127
 
121
128
  /**
122
129
  * Describes the message world.SensorComponent.
123
130
  * Use `create(SensorComponentSchema)` to create a new message.
124
131
  */
125
132
  export const SensorComponentSchema = /*@__PURE__*/
126
- messageDesc(file_world, 15);
133
+ messageDesc(file_world, 16);
127
134
 
128
135
  /**
129
136
  * Describes the message world.Quaternion.
130
137
  * Use `create(QuaternionSchema)` to create a new message.
131
138
  */
132
139
  export const QuaternionSchema = /*@__PURE__*/
133
- messageDesc(file_world, 16);
140
+ messageDesc(file_world, 17);
134
141
 
135
142
  /**
136
143
  * Describes the message world.CovarianceMatrix.
137
144
  * Use `create(CovarianceMatrixSchema)` to create a new message.
138
145
  */
139
146
  export const CovarianceMatrixSchema = /*@__PURE__*/
140
- messageDesc(file_world, 17);
147
+ messageDesc(file_world, 18);
141
148
 
142
149
  /**
143
150
  * Describes the message world.CartesianOffset.
144
151
  * Use `create(CartesianOffsetSchema)` to create a new message.
145
152
  */
146
153
  export const CartesianOffsetSchema = /*@__PURE__*/
147
- messageDesc(file_world, 18);
154
+ messageDesc(file_world, 19);
148
155
 
149
156
  /**
150
157
  * Describes the message world.PolarOffset.
151
158
  * Use `create(PolarOffsetSchema)` to create a new message.
152
159
  */
153
160
  export const PolarOffsetSchema = /*@__PURE__*/
154
- messageDesc(file_world, 19);
161
+ messageDesc(file_world, 20);
155
162
 
156
163
  /**
157
164
  * Describes the message world.PoseComponent.
158
165
  * Use `create(PoseComponentSchema)` to create a new message.
159
166
  */
160
167
  export const PoseComponentSchema = /*@__PURE__*/
161
- messageDesc(file_world, 20);
168
+ messageDesc(file_world, 21);
162
169
 
163
170
  /**
164
171
  * Describes the message world.TargetPoseComponent.
165
172
  * Use `create(TargetPoseComponentSchema)` to create a new message.
166
173
  */
167
174
  export const TargetPoseComponentSchema = /*@__PURE__*/
168
- messageDesc(file_world, 21);
175
+ messageDesc(file_world, 22);
169
176
 
170
177
  /**
171
178
  * Describes the message world.AngularVelocity.
172
179
  * Use `create(AngularVelocitySchema)` to create a new message.
173
180
  */
174
181
  export const AngularVelocitySchema = /*@__PURE__*/
175
- messageDesc(file_world, 22);
182
+ messageDesc(file_world, 23);
176
183
 
177
184
  /**
178
185
  * Describes the message world.OrientationComponent.
179
186
  * Use `create(OrientationComponentSchema)` to create a new message.
180
187
  */
181
188
  export const OrientationComponentSchema = /*@__PURE__*/
182
- messageDesc(file_world, 23);
189
+ messageDesc(file_world, 24);
183
190
 
184
191
  /**
185
192
  * Describes the message world.TrackComponent.
186
193
  * Use `create(TrackComponentSchema)` to create a new message.
187
194
  */
188
195
  export const TrackComponentSchema = /*@__PURE__*/
189
- messageDesc(file_world, 24);
196
+ messageDesc(file_world, 25);
190
197
 
191
198
  /**
192
199
  * Describes the message world.LocatorComponent.
193
200
  * Use `create(LocatorComponentSchema)` to create a new message.
194
201
  */
195
202
  export const LocatorComponentSchema = /*@__PURE__*/
196
- messageDesc(file_world, 25);
203
+ messageDesc(file_world, 26);
197
204
 
198
205
  /**
199
206
  * Describes the message world.TaskableContext.
200
207
  * Use `create(TaskableContextSchema)` to create a new message.
201
208
  */
202
209
  export const TaskableContextSchema = /*@__PURE__*/
203
- messageDesc(file_world, 26);
210
+ messageDesc(file_world, 27);
204
211
 
205
212
  /**
206
213
  * Describes the message world.TaskableAssignee.
207
214
  * Use `create(TaskableAssigneeSchema)` to create a new message.
208
215
  */
209
216
  export const TaskableAssigneeSchema = /*@__PURE__*/
210
- messageDesc(file_world, 27);
217
+ messageDesc(file_world, 28);
211
218
 
212
219
  /**
213
220
  * Describes the message world.TaskableComponent.
214
221
  * Use `create(TaskableComponentSchema)` to create a new message.
215
222
  */
216
223
  export const TaskableComponentSchema = /*@__PURE__*/
217
- messageDesc(file_world, 28);
224
+ messageDesc(file_world, 29);
218
225
 
219
226
  /**
220
227
  * Describes the message world.TaskExecutionComponent.
221
228
  * Use `create(TaskExecutionComponentSchema)` to create a new message.
222
229
  */
223
230
  export const TaskExecutionComponentSchema = /*@__PURE__*/
224
- messageDesc(file_world, 29);
231
+ messageDesc(file_world, 30);
225
232
 
226
233
  /**
227
234
  * Describes the message world.KinematicsEnu.
228
235
  * Use `create(KinematicsEnuSchema)` to create a new message.
229
236
  */
230
237
  export const KinematicsEnuSchema = /*@__PURE__*/
231
- messageDesc(file_world, 30);
238
+ messageDesc(file_world, 31);
232
239
 
233
240
  /**
234
241
  * Describes the message world.KinematicsComponent.
235
242
  * Use `create(KinematicsComponentSchema)` to create a new message.
236
243
  */
237
244
  export const KinematicsComponentSchema = /*@__PURE__*/
238
- messageDesc(file_world, 31);
245
+ messageDesc(file_world, 32);
239
246
 
240
247
  /**
241
248
  * Describes the message world.Geometry.
242
249
  * Use `create(GeometrySchema)` to create a new message.
243
250
  */
244
251
  export const GeometrySchema = /*@__PURE__*/
245
- messageDesc(file_world, 32);
252
+ messageDesc(file_world, 33);
246
253
 
247
254
  /**
248
255
  * Describes the message world.GeoShapeComponent.
249
256
  * Use `create(GeoShapeComponentSchema)` to create a new message.
250
257
  */
251
258
  export const GeoShapeComponentSchema = /*@__PURE__*/
252
- messageDesc(file_world, 33);
259
+ messageDesc(file_world, 34);
253
260
 
254
261
  /**
255
262
  * Describes the message world.LocalShapeComponent.
256
263
  * Use `create(LocalShapeComponentSchema)` to create a new message.
257
264
  */
258
265
  export const LocalShapeComponentSchema = /*@__PURE__*/
259
- messageDesc(file_world, 34);
266
+ messageDesc(file_world, 35);
260
267
 
261
268
  /**
262
269
  * Describes the message world.ClassificationComponent.
263
270
  * Use `create(ClassificationComponentSchema)` to create a new message.
264
271
  */
265
272
  export const ClassificationComponentSchema = /*@__PURE__*/
266
- messageDesc(file_world, 35);
273
+ messageDesc(file_world, 36);
267
274
 
268
275
  /**
269
276
  * Describes the message world.TransponderAIS.
270
277
  * Use `create(TransponderAISSchema)` to create a new message.
271
278
  */
272
279
  export const TransponderAISSchema = /*@__PURE__*/
273
- messageDesc(file_world, 36);
280
+ messageDesc(file_world, 37);
274
281
 
275
282
  /**
276
283
  * Describes the message world.TransponderADSB.
277
284
  * Use `create(TransponderADSBSchema)` to create a new message.
278
285
  */
279
286
  export const TransponderADSBSchema = /*@__PURE__*/
280
- messageDesc(file_world, 37);
287
+ messageDesc(file_world, 38);
281
288
 
282
289
  /**
283
290
  * Describes the message world.TransponderComponent.
284
291
  * Use `create(TransponderComponentSchema)` to create a new message.
285
292
  */
286
293
  export const TransponderComponentSchema = /*@__PURE__*/
287
- messageDesc(file_world, 38);
294
+ messageDesc(file_world, 39);
288
295
 
289
296
  /**
290
297
  * Describes the message world.AdministrativeComponent.
291
298
  * Use `create(AdministrativeComponentSchema)` to create a new message.
292
299
  */
293
300
  export const AdministrativeComponentSchema = /*@__PURE__*/
294
- messageDesc(file_world, 39);
301
+ messageDesc(file_world, 40);
295
302
 
296
303
  /**
297
304
  * Describes the message world.NavigationComponent.
298
305
  * Use `create(NavigationComponentSchema)` to create a new message.
299
306
  */
300
307
  export const NavigationComponentSchema = /*@__PURE__*/
301
- messageDesc(file_world, 40);
308
+ messageDesc(file_world, 41);
302
309
 
303
310
  /**
304
311
  * Describes the message world.MissionComponent.
305
312
  * Use `create(MissionComponentSchema)` to create a new message.
306
313
  */
307
314
  export const MissionComponentSchema = /*@__PURE__*/
308
- messageDesc(file_world, 41);
315
+ messageDesc(file_world, 42);
309
316
 
310
317
  /**
311
318
  * Describes the message world.LinkComponent.
312
319
  * Use `create(LinkComponentSchema)` to create a new message.
313
320
  */
314
321
  export const LinkComponentSchema = /*@__PURE__*/
315
- messageDesc(file_world, 42);
322
+ messageDesc(file_world, 43);
316
323
 
317
324
  /**
318
325
  * Describes the message world.CaptureComponent.
319
326
  * Use `create(CaptureComponentSchema)` to create a new message.
320
327
  */
321
328
  export const CaptureComponentSchema = /*@__PURE__*/
322
- messageDesc(file_world, 43);
329
+ messageDesc(file_world, 44);
323
330
 
324
331
  /**
325
332
  * Describes the message world.PowerComponent.
326
333
  * Use `create(PowerComponentSchema)` to create a new message.
327
334
  */
328
335
  export const PowerComponentSchema = /*@__PURE__*/
329
- messageDesc(file_world, 44);
336
+ messageDesc(file_world, 45);
330
337
 
331
338
  /**
332
339
  * Describes the message world.DeviceClassOption.
333
340
  * Use `create(DeviceClassOptionSchema)` to create a new message.
334
341
  */
335
342
  export const DeviceClassOptionSchema = /*@__PURE__*/
336
- messageDesc(file_world, 45);
343
+ messageDesc(file_world, 46);
337
344
 
338
345
  /**
339
346
  * Describes the message world.ConfigurableComponent.
340
347
  * Use `create(ConfigurableComponentSchema)` to create a new message.
341
348
  */
342
349
  export const ConfigurableComponentSchema = /*@__PURE__*/
343
- messageDesc(file_world, 46);
350
+ messageDesc(file_world, 47);
344
351
 
345
352
  /**
346
353
  * Describes the message world.DeviceComponent.
347
354
  * Use `create(DeviceComponentSchema)` to create a new message.
348
355
  */
349
356
  export const DeviceComponentSchema = /*@__PURE__*/
350
- messageDesc(file_world, 47);
357
+ messageDesc(file_world, 48);
358
+
359
+ /**
360
+ * Describes the message world.MissionKit.
361
+ * Use `create(MissionKitSchema)` to create a new message.
362
+ */
363
+ export const MissionKitSchema = /*@__PURE__*/
364
+ messageDesc(file_world, 49);
351
365
 
352
366
  /**
353
367
  * Describes the message world.NodeDevice.
354
368
  * Use `create(NodeDeviceSchema)` to create a new message.
355
369
  */
356
370
  export const NodeDeviceSchema = /*@__PURE__*/
357
- messageDesc(file_world, 48);
371
+ messageDesc(file_world, 50);
358
372
 
359
373
  /**
360
374
  * Describes the message world.UsbDevice.
361
375
  * Use `create(UsbDeviceSchema)` to create a new message.
362
376
  */
363
377
  export const UsbDeviceSchema = /*@__PURE__*/
364
- messageDesc(file_world, 49);
378
+ messageDesc(file_world, 51);
365
379
 
366
380
  /**
367
381
  * Describes the message world.IpDevice.
368
382
  * Use `create(IpDeviceSchema)` to create a new message.
369
383
  */
370
384
  export const IpDeviceSchema = /*@__PURE__*/
371
- messageDesc(file_world, 50);
385
+ messageDesc(file_world, 52);
372
386
 
373
387
  /**
374
388
  * Describes the message world.EthernetDevice.
375
389
  * Use `create(EthernetDeviceSchema)` to create a new message.
376
390
  */
377
391
  export const EthernetDeviceSchema = /*@__PURE__*/
378
- messageDesc(file_world, 51);
392
+ messageDesc(file_world, 53);
379
393
 
380
394
  /**
381
395
  * Describes the message world.SerialDevice.
382
396
  * Use `create(SerialDeviceSchema)` to create a new message.
383
397
  */
384
398
  export const SerialDeviceSchema = /*@__PURE__*/
385
- messageDesc(file_world, 52);
399
+ messageDesc(file_world, 54);
386
400
 
387
401
  /**
388
402
  * Describes the message world.MeshtasticDevice.
389
403
  * Use `create(MeshtasticDeviceSchema)` to create a new message.
390
404
  */
391
405
  export const MeshtasticDeviceSchema = /*@__PURE__*/
392
- messageDesc(file_world, 53);
406
+ messageDesc(file_world, 55);
393
407
 
394
408
  /**
395
409
  * Describes the message world.LPWANDevice.
396
410
  * Use `create(LPWANDeviceSchema)` to create a new message.
397
411
  */
398
412
  export const LPWANDeviceSchema = /*@__PURE__*/
399
- messageDesc(file_world, 54);
413
+ messageDesc(file_world, 56);
400
414
 
401
415
  /**
402
416
  * Describes the message world.BleDevice.
403
417
  * Use `create(BleDeviceSchema)` to create a new message.
404
418
  */
405
419
  export const BleDeviceSchema = /*@__PURE__*/
406
- messageDesc(file_world, 55);
420
+ messageDesc(file_world, 57);
407
421
 
408
422
  /**
409
423
  * Describes the message world.ConfigurationComponent.
410
424
  * Use `create(ConfigurationComponentSchema)` to create a new message.
411
425
  */
412
426
  export const ConfigurationComponentSchema = /*@__PURE__*/
413
- messageDesc(file_world, 56);
427
+ messageDesc(file_world, 58);
414
428
 
415
429
  /**
416
430
  * Describes the message world.ChatComponent.
417
431
  * Use `create(ChatComponentSchema)` to create a new message.
418
432
  */
419
433
  export const ChatComponentSchema = /*@__PURE__*/
420
- messageDesc(file_world, 57);
434
+ messageDesc(file_world, 59);
435
+
436
+ /**
437
+ * Describes the message world.AssemblyComponent.
438
+ * Use `create(AssemblyComponentSchema)` to create a new message.
439
+ */
440
+ export const AssemblyComponentSchema = /*@__PURE__*/
441
+ messageDesc(file_world, 60);
421
442
 
422
443
  /**
423
444
  * Describes the message world.EntityFilter.
424
445
  * Use `create(EntityFilterSchema)` to create a new message.
425
446
  */
426
447
  export const EntityFilterSchema = /*@__PURE__*/
427
- messageDesc(file_world, 58);
448
+ messageDesc(file_world, 61);
428
449
 
429
450
  /**
430
451
  * Describes the message world.ControllerFilter.
431
452
  * Use `create(ControllerFilterSchema)` to create a new message.
432
453
  */
433
454
  export const ControllerFilterSchema = /*@__PURE__*/
434
- messageDesc(file_world, 59);
455
+ messageDesc(file_world, 62);
435
456
 
436
457
  /**
437
458
  * Describes the message world.TrackFilter.
438
459
  * Use `create(TrackFilterSchema)` to create a new message.
439
460
  */
440
461
  export const TrackFilterSchema = /*@__PURE__*/
441
- messageDesc(file_world, 60);
462
+ messageDesc(file_world, 63);
442
463
 
443
464
  /**
444
465
  * Describes the message world.MissionFilter.
445
466
  * Use `create(MissionFilterSchema)` to create a new message.
446
467
  */
447
468
  export const MissionFilterSchema = /*@__PURE__*/
448
- messageDesc(file_world, 61);
469
+ messageDesc(file_world, 64);
449
470
 
450
471
  /**
451
472
  * Describes the message world.TaskableFilter.
452
473
  * Use `create(TaskableFilterSchema)` to create a new message.
453
474
  */
454
475
  export const TaskableFilterSchema = /*@__PURE__*/
455
- messageDesc(file_world, 62);
476
+ messageDesc(file_world, 65);
456
477
 
457
478
  /**
458
479
  * Describes the message world.GeoFilter.
459
480
  * Use `create(GeoFilterSchema)` to create a new message.
460
481
  */
461
482
  export const GeoFilterSchema = /*@__PURE__*/
462
- messageDesc(file_world, 63);
483
+ messageDesc(file_world, 66);
463
484
 
464
485
  /**
465
486
  * Describes the message world.DeviceFilter.
466
487
  * Use `create(DeviceFilterSchema)` to create a new message.
467
488
  */
468
489
  export const DeviceFilterSchema = /*@__PURE__*/
469
- messageDesc(file_world, 64);
490
+ messageDesc(file_world, 67);
470
491
 
471
492
  /**
472
493
  * Describes the message world.BleDeviceFilter.
473
494
  * Use `create(BleDeviceFilterSchema)` to create a new message.
474
495
  */
475
496
  export const BleDeviceFilterSchema = /*@__PURE__*/
476
- messageDesc(file_world, 65);
497
+ messageDesc(file_world, 68);
477
498
 
478
499
  /**
479
500
  * Describes the message world.UsbDeviceFilter.
480
501
  * Use `create(UsbDeviceFilterSchema)` to create a new message.
481
502
  */
482
503
  export const UsbDeviceFilterSchema = /*@__PURE__*/
483
- messageDesc(file_world, 66);
504
+ messageDesc(file_world, 69);
484
505
 
485
506
  /**
486
507
  * Describes the message world.ConfigurationFilter.
487
508
  * Use `create(ConfigurationFilterSchema)` to create a new message.
488
509
  */
489
510
  export const ConfigurationFilterSchema = /*@__PURE__*/
490
- messageDesc(file_world, 67);
511
+ messageDesc(file_world, 70);
491
512
 
492
513
  /**
493
514
  * Describes the message world.ChannelFilter.
494
515
  * Use `create(ChannelFilterSchema)` to create a new message.
495
516
  */
496
517
  export const ChannelFilterSchema = /*@__PURE__*/
497
- messageDesc(file_world, 68);
518
+ messageDesc(file_world, 71);
498
519
 
499
520
  /**
500
521
  * Describes the message world.WatchBehavior.
501
522
  * Use `create(WatchBehaviorSchema)` to create a new message.
502
523
  */
503
524
  export const WatchBehaviorSchema = /*@__PURE__*/
504
- messageDesc(file_world, 69);
525
+ messageDesc(file_world, 72);
505
526
 
506
527
  /**
507
528
  * Describes the message world.ListEntitiesRequest.
508
529
  * Use `create(ListEntitiesRequestSchema)` to create a new message.
509
530
  */
510
531
  export const ListEntitiesRequestSchema = /*@__PURE__*/
511
- messageDesc(file_world, 70);
532
+ messageDesc(file_world, 73);
512
533
 
513
534
  /**
514
535
  * Describes the message world.ListEntitiesResponse.
515
536
  * Use `create(ListEntitiesResponseSchema)` to create a new message.
516
537
  */
517
538
  export const ListEntitiesResponseSchema = /*@__PURE__*/
518
- messageDesc(file_world, 71);
539
+ messageDesc(file_world, 74);
519
540
 
520
541
  /**
521
542
  * Describes the message world.EntityChangeRequest.
522
543
  * Use `create(EntityChangeRequestSchema)` to create a new message.
523
544
  */
524
545
  export const EntityChangeRequestSchema = /*@__PURE__*/
525
- messageDesc(file_world, 72);
546
+ messageDesc(file_world, 75);
526
547
 
527
548
  /**
528
549
  * Describes the message world.ExpireEntityRequest.
529
550
  * Use `create(ExpireEntityRequestSchema)` to create a new message.
530
551
  */
531
552
  export const ExpireEntityRequestSchema = /*@__PURE__*/
532
- messageDesc(file_world, 73);
553
+ messageDesc(file_world, 76);
533
554
 
534
555
  /**
535
556
  * Describes the message world.ExpireEntityResponse.
536
557
  * Use `create(ExpireEntityResponseSchema)` to create a new message.
537
558
  */
538
559
  export const ExpireEntityResponseSchema = /*@__PURE__*/
539
- messageDesc(file_world, 74);
560
+ messageDesc(file_world, 77);
540
561
 
541
562
  /**
542
563
  * Describes the message world.EntityChangeResponse.
543
564
  * Use `create(EntityChangeResponseSchema)` to create a new message.
544
565
  */
545
566
  export const EntityChangeResponseSchema = /*@__PURE__*/
546
- messageDesc(file_world, 75);
567
+ messageDesc(file_world, 78);
547
568
 
548
569
  /**
549
570
  * Describes the message world.EntityChangeEvent.
550
571
  * Use `create(EntityChangeEventSchema)` to create a new message.
551
572
  */
552
573
  export const EntityChangeEventSchema = /*@__PURE__*/
553
- messageDesc(file_world, 76);
574
+ messageDesc(file_world, 79);
554
575
 
555
576
  /**
556
577
  * Describes the message world.EntityChangeBatch.
557
578
  * Use `create(EntityChangeBatchSchema)` to create a new message.
558
579
  */
559
580
  export const EntityChangeBatchSchema = /*@__PURE__*/
560
- messageDesc(file_world, 77);
581
+ messageDesc(file_world, 80);
561
582
 
562
583
  /**
563
584
  * Describes the message world.GetEntityRequest.
564
585
  * Use `create(GetEntityRequestSchema)` to create a new message.
565
586
  */
566
587
  export const GetEntityRequestSchema = /*@__PURE__*/
567
- messageDesc(file_world, 78);
588
+ messageDesc(file_world, 81);
568
589
 
569
590
  /**
570
591
  * Describes the message world.GetEntityResponse.
571
592
  * Use `create(GetEntityResponseSchema)` to create a new message.
572
593
  */
573
594
  export const GetEntityResponseSchema = /*@__PURE__*/
574
- messageDesc(file_world, 79);
595
+ messageDesc(file_world, 82);
575
596
 
576
597
  /**
577
598
  * Describes the message world.GetLocalNodeRequest.
578
599
  * Use `create(GetLocalNodeRequestSchema)` to create a new message.
579
600
  */
580
601
  export const GetLocalNodeRequestSchema = /*@__PURE__*/
581
- messageDesc(file_world, 80);
602
+ messageDesc(file_world, 83);
582
603
 
583
604
  /**
584
605
  * Describes the message world.GetLocalNodeResponse.
585
606
  * Use `create(GetLocalNodeResponseSchema)` to create a new message.
586
607
  */
587
608
  export const GetLocalNodeResponseSchema = /*@__PURE__*/
588
- messageDesc(file_world, 81);
609
+ messageDesc(file_world, 84);
589
610
 
590
611
  /**
591
612
  * Describes the message world.ObserverRequest.
592
613
  * Use `create(ObserverRequestSchema)` to create a new message.
593
614
  */
594
615
  export const ObserverRequestSchema = /*@__PURE__*/
595
- messageDesc(file_world, 82);
616
+ messageDesc(file_world, 85);
596
617
 
597
618
  /**
598
619
  * Describes the message world.ObserverState.
599
620
  * Use `create(ObserverStateSchema)` to create a new message.
600
621
  */
601
622
  export const ObserverStateSchema = /*@__PURE__*/
602
- messageDesc(file_world, 83);
623
+ messageDesc(file_world, 86);
603
624
 
604
625
  /**
605
626
  * Describes the message world.RunTaskRequest.
606
627
  * Use `create(RunTaskRequestSchema)` to create a new message.
607
628
  */
608
629
  export const RunTaskRequestSchema = /*@__PURE__*/
609
- messageDesc(file_world, 84);
630
+ messageDesc(file_world, 87);
610
631
 
611
632
  /**
612
633
  * Describes the message world.RunTaskResponse.
613
634
  * Use `create(RunTaskResponseSchema)` to create a new message.
614
635
  */
615
636
  export const RunTaskResponseSchema = /*@__PURE__*/
616
- messageDesc(file_world, 85);
637
+ messageDesc(file_world, 88);
617
638
 
618
639
  /**
619
640
  * Describes the message world.HardResetRequest.
620
641
  * Use `create(HardResetRequestSchema)` to create a new message.
621
642
  */
622
643
  export const HardResetRequestSchema = /*@__PURE__*/
623
- messageDesc(file_world, 86);
644
+ messageDesc(file_world, 89);
624
645
 
625
646
  /**
626
647
  * Describes the message world.HardResetResponse.
627
648
  * Use `create(HardResetResponseSchema)` to create a new message.
628
649
  */
629
650
  export const HardResetResponseSchema = /*@__PURE__*/
630
- messageDesc(file_world, 87);
651
+ messageDesc(file_world, 90);
631
652
 
632
653
  /**
633
654
  * Describes the enum world.Priority.
@@ -641,11 +662,23 @@ export const PrioritySchema = /*@__PURE__*/
641
662
  export const Priority = /*@__PURE__*/
642
663
  tsEnum(PrioritySchema);
643
664
 
665
+ /**
666
+ * Describes the enum world.GnssFixType.
667
+ */
668
+ export const GnssFixTypeSchema = /*@__PURE__*/
669
+ enumDesc(file_world, 1);
670
+
671
+ /**
672
+ * @generated from enum world.GnssFixType
673
+ */
674
+ export const GnssFixType = /*@__PURE__*/
675
+ tsEnum(GnssFixTypeSchema);
676
+
644
677
  /**
645
678
  * Describes the enum world.MediaStreamProtocol.
646
679
  */
647
680
  export const MediaStreamProtocolSchema = /*@__PURE__*/
648
- enumDesc(file_world, 1);
681
+ enumDesc(file_world, 2);
649
682
 
650
683
  /**
651
684
  * @generated from enum world.MediaStreamProtocol
@@ -657,7 +690,7 @@ export const MediaStreamProtocol = /*@__PURE__*/
657
690
  * Describes the enum world.MediaStreamRole.
658
691
  */
659
692
  export const MediaStreamRoleSchema = /*@__PURE__*/
660
- enumDesc(file_world, 2);
693
+ enumDesc(file_world, 3);
661
694
 
662
695
  /**
663
696
  * @generated from enum world.MediaStreamRole
@@ -669,7 +702,7 @@ export const MediaStreamRole = /*@__PURE__*/
669
702
  * Describes the enum world.TaskableMode.
670
703
  */
671
704
  export const TaskableModeSchema = /*@__PURE__*/
672
- enumDesc(file_world, 3);
705
+ enumDesc(file_world, 4);
673
706
 
674
707
  /**
675
708
  * @generated from enum world.TaskableMode
@@ -681,7 +714,7 @@ export const TaskableMode = /*@__PURE__*/
681
714
  * Describes the enum world.TaskExecutionState.
682
715
  */
683
716
  export const TaskExecutionStateSchema = /*@__PURE__*/
684
- enumDesc(file_world, 4);
717
+ enumDesc(file_world, 5);
685
718
 
686
719
  /**
687
720
  * @generated from enum world.TaskExecutionState
@@ -693,7 +726,7 @@ export const TaskExecutionState = /*@__PURE__*/
693
726
  * Describes the enum world.ClassificationIdentity.
694
727
  */
695
728
  export const ClassificationIdentitySchema = /*@__PURE__*/
696
- enumDesc(file_world, 5);
729
+ enumDesc(file_world, 6);
697
730
 
698
731
  /**
699
732
  * @generated from enum world.ClassificationIdentity
@@ -705,7 +738,7 @@ export const ClassificationIdentity = /*@__PURE__*/
705
738
  * Describes the enum world.ClassificationBattleDimension.
706
739
  */
707
740
  export const ClassificationBattleDimensionSchema = /*@__PURE__*/
708
- enumDesc(file_world, 6);
741
+ enumDesc(file_world, 7);
709
742
 
710
743
  /**
711
744
  * @generated from enum world.ClassificationBattleDimension
@@ -717,7 +750,7 @@ export const ClassificationBattleDimension = /*@__PURE__*/
717
750
  * Describes the enum world.NavigationMode.
718
751
  */
719
752
  export const NavigationModeSchema = /*@__PURE__*/
720
- enumDesc(file_world, 7);
753
+ enumDesc(file_world, 8);
721
754
 
722
755
  /**
723
756
  * @generated from enum world.NavigationMode
@@ -729,7 +762,7 @@ export const NavigationMode = /*@__PURE__*/
729
762
  * Describes the enum world.LinkStatus.
730
763
  */
731
764
  export const LinkStatusSchema = /*@__PURE__*/
732
- enumDesc(file_world, 8);
765
+ enumDesc(file_world, 9);
733
766
 
734
767
  /**
735
768
  * @generated from enum world.LinkStatus
@@ -741,7 +774,7 @@ export const LinkStatus = /*@__PURE__*/
741
774
  * Describes the enum world.DeviceState.
742
775
  */
743
776
  export const DeviceStateSchema = /*@__PURE__*/
744
- enumDesc(file_world, 9);
777
+ enumDesc(file_world, 10);
745
778
 
746
779
  /**
747
780
  * @generated from enum world.DeviceState
@@ -753,7 +786,7 @@ export const DeviceState = /*@__PURE__*/
753
786
  * Describes the enum world.ConfigurableState.
754
787
  */
755
788
  export const ConfigurableStateSchema = /*@__PURE__*/
756
- enumDesc(file_world, 10);
789
+ enumDesc(file_world, 11);
757
790
 
758
791
  /**
759
792
  * @generated from enum world.ConfigurableState
@@ -765,7 +798,7 @@ export const ConfigurableState = /*@__PURE__*/
765
798
  * Describes the enum world.EntityChange.
766
799
  */
767
800
  export const EntityChangeSchema = /*@__PURE__*/
768
- enumDesc(file_world, 11);
801
+ enumDesc(file_world, 12);
769
802
 
770
803
  /**
771
804
  * @generated from enum world.EntityChange
@@ -777,7 +810,7 @@ export const EntityChange = /*@__PURE__*/
777
810
  * Describes the enum world.EntityComponent.
778
811
  */
779
812
  export const EntityComponentSchema = /*@__PURE__*/
780
- enumDesc(file_world, 12);
813
+ enumDesc(file_world, 13);
781
814
 
782
815
  /**
783
816
  * Proto field numbers of Entity component fields.
@@ -792,7 +825,7 @@ export const EntityComponent = /*@__PURE__*/
792
825
  * Describes the enum world.TaskStatus.
793
826
  */
794
827
  export const TaskStatusSchema = /*@__PURE__*/
795
- enumDesc(file_world, 13);
828
+ enumDesc(file_world, 14);
796
829
 
797
830
  /**
798
831
  * @generated from enum world.TaskStatus
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectqai/proto",
3
- "version": "0.0.44",
3
+ "version": "0.0.47",
4
4
  "author": "projectq-release-bot",
5
5
  "type": "module",
6
6
  "exports": {