@projectqai/proto 0.0.46 → 0.0.48

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
  *
@@ -394,6 +399,47 @@ export declare type GeoSpatialComponent = Message<"world.GeoSpatialComponent"> &
394
399
  */
395
400
  export declare const GeoSpatialComponentSchema: GenMessage<GeoSpatialComponent>;
396
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
+
397
443
  /**
398
444
  * @generated from message world.SymbolComponent
399
445
  */
@@ -1611,6 +1657,41 @@ export declare type LinkComponent = Message<"world.LinkComponent"> & {
1611
1657
  * @generated from field: optional google.protobuf.Timestamp last_seen = 8;
1612
1658
  */
1613
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;
1614
1695
  };
1615
1696
 
1616
1697
  /**
@@ -1696,6 +1777,20 @@ export declare type PowerComponent = Message<"world.PowerComponent"> & {
1696
1777
  * @generated from field: optional uint32 remaining_seconds = 3;
1697
1778
  */
1698
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;
1699
1794
  };
1700
1795
 
1701
1796
  /**
@@ -1898,6 +1993,22 @@ export declare type DeviceComponent = Message<"world.DeviceComponent"> & {
1898
1993
  */
1899
1994
  export declare const DeviceComponentSchema: GenMessage<DeviceComponent>;
1900
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
+
1901
2012
  /**
1902
2013
  * @generated from message world.NodeDevice
1903
2014
  */
@@ -1936,6 +2047,11 @@ export declare type NodeDevice = Message<"world.NodeDevice"> & {
1936
2047
  * @generated from field: optional string hydris_update_available = 7;
1937
2048
  */
1938
2049
  hydrisUpdateAvailable?: string;
2050
+
2051
+ /**
2052
+ * @generated from field: optional world.MissionKit mission_kit = 8;
2053
+ */
2054
+ missionKit?: MissionKit;
1939
2055
  };
1940
2056
 
1941
2057
  /**
@@ -2947,6 +3063,10 @@ export declare const RunTaskResponseSchema: GenMessage<RunTaskResponse>;
2947
3063
  * @generated from message world.HardResetRequest
2948
3064
  */
2949
3065
  export declare type HardResetRequest = Message<"world.HardResetRequest"> & {
3066
+ /**
3067
+ * @generated from field: optional string mission_id = 1;
3068
+ */
3069
+ missionId?: string;
2950
3070
  };
2951
3071
 
2952
3072
  /**
@@ -3007,6 +3127,46 @@ export enum Priority {
3007
3127
  */
3008
3128
  export declare const PrioritySchema: GenEnum<Priority>;
3009
3129
 
3130
+ /**
3131
+ * @generated from enum world.GnssFixType
3132
+ */
3133
+ export enum GnssFixType {
3134
+ /**
3135
+ * @generated from enum value: GnssFixTypeNone = 0;
3136
+ */
3137
+ GnssFixTypeNone = 0,
3138
+
3139
+ /**
3140
+ * @generated from enum value: GnssFixType2D = 1;
3141
+ */
3142
+ GnssFixType2D = 1,
3143
+
3144
+ /**
3145
+ * @generated from enum value: GnssFixType3D = 2;
3146
+ */
3147
+ GnssFixType3D = 2,
3148
+
3149
+ /**
3150
+ * @generated from enum value: GnssFixTypeDGPS = 3;
3151
+ */
3152
+ GnssFixTypeDGPS = 3,
3153
+
3154
+ /**
3155
+ * @generated from enum value: GnssFixTypeRtkFloat = 4;
3156
+ */
3157
+ GnssFixTypeRtkFloat = 4,
3158
+
3159
+ /**
3160
+ * @generated from enum value: GnssFixTypeRtkFixed = 5;
3161
+ */
3162
+ GnssFixTypeRtkFixed = 5,
3163
+ }
3164
+
3165
+ /**
3166
+ * Describes the enum world.GnssFixType.
3167
+ */
3168
+ export declare const GnssFixTypeSchema: GenEnum<GnssFixType>;
3169
+
3010
3170
  /**
3011
3171
  * @generated from enum world.MediaStreamProtocol
3012
3172
  */
@@ -3631,6 +3791,11 @@ export enum EntityComponent {
3631
3791
  */
3632
3792
  EntityComponentTaskExecution = 41,
3633
3793
 
3794
+ /**
3795
+ * @generated from enum value: EntityComponentGnss = 42;
3796
+ */
3797
+ EntityComponentGnss = 42,
3798
+
3634
3799
  /**
3635
3800
  * @generated from enum value: EntityComponentDevice = 50;
3636
3801
  */
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("Cgt3b3JsZC5wcm90bxIFd29ybGQimxIKBkVudGl0eRIKCgJpZBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBEioKCmNvbnRyb2xsZXIYAyABKAsyES53b3JsZC5Db250cm9sbGVySAGIAQESJgoIbGlmZXRpbWUYBCABKAsyDy53b3JsZC5MaWZldGltZUgCiAEBEiYKCHByaW9yaXR5GAUgASgOMg8ud29ybGQuUHJpb3JpdHlIA4gBARIgCgVsZWFzZRgGIAEoCzIMLndvcmxkLkxlYXNlSASIAQESJAoHcm91dGluZxgHIAEoCzIOLndvcmxkLlJvdXRpbmdIBYgBARIsCgNnZW8YCyABKAsyGi53b3JsZC5HZW9TcGF0aWFsQ29tcG9uZW50SAaIAQESKwoGc3ltYm9sGAwgASgLMhYud29ybGQuU3ltYm9sQ29tcG9uZW50SAeIAQESKwoGY2FtZXJhGA8gASgLMhYud29ybGQuQ2FtZXJhQ29tcG9uZW50SAiIAQESMQoJZGV0ZWN0aW9uGBAgASgLMhkud29ybGQuRGV0ZWN0aW9uQ29tcG9uZW50SAmIAQESLQoHYmVhcmluZxgRIAEoCzIXLndvcmxkLkJlYXJpbmdDb21wb25lbnRICogBARIpCgV0cmFjaxgVIAEoCzIVLndvcmxkLlRyYWNrQ29tcG9uZW50SAuIAQESLQoHbG9jYXRvchgWIAEoCzIXLndvcmxkLkxvY2F0b3JDb21wb25lbnRIDIgBARIzCgpraW5lbWF0aWNzGBggASgLMhoud29ybGQuS2luZW1hdGljc0NvbXBvbmVudEgNiAEBEiwKBXNoYXBlGBkgASgLMhgud29ybGQuR2VvU2hhcGVDb21wb25lbnRIDogBARI7Cg5jbGFzc2lmaWNhdGlvbhgaIAEoCzIeLndvcmxkLkNsYXNzaWZpY2F0aW9uQ29tcG9uZW50SA+IAQESNQoLdHJhbnNwb25kZXIYGyABKAsyGy53b3JsZC5UcmFuc3BvbmRlckNvbXBvbmVudEgQiAEBEjsKDmFkbWluaXN0cmF0aXZlGBwgASgLMh4ud29ybGQuQWRtaW5pc3RyYXRpdmVDb21wb25lbnRIEYgBARI1CgtvcmllbnRhdGlvbhgeIAEoCzIbLndvcmxkLk9yaWVudGF0aW9uQ29tcG9uZW50SBKIAQESMwoKbmF2aWdhdGlvbhgiIAEoCzIaLndvcmxkLk5hdmlnYXRpb25Db21wb25lbnRIE4gBARIpCgVwb3dlchghIAEoCzIVLndvcmxkLlBvd2VyQ29tcG9uZW50SBSIAQESLQoHY2FwdHVyZRgjIAEoCzIXLndvcmxkLkNhcHR1cmVDb21wb25lbnRIFYgBARIvCgh0YXNrYWJsZRgXIAEoCzIYLndvcmxkLlRhc2thYmxlQ29tcG9uZW50SBaIAQESKwoGZGV2aWNlGDIgASgLMhYud29ybGQuRGV2aWNlQ29tcG9uZW50SBeIAQESMgoGY29uZmlnGDMgASgLMh0ud29ybGQuQ29uZmlndXJhdGlvbkNvbXBvbmVudEgYiAEBEjcKDGNvbmZpZ3VyYWJsZRg0IAEoCzIcLndvcmxkLkNvbmZpZ3VyYWJsZUNvbXBvbmVudEgZiAEBEi0KB21pc3Npb24YHyABKAsyFy53b3JsZC5NaXNzaW9uQ29tcG9uZW50SBqIAQESJwoEbGluaxggIAEoCzIULndvcmxkLkxpbmtDb21wb25lbnRIG4gBARIrCgZtZXRyaWMYJCABKAsyFi53b3JsZC5NZXRyaWNDb21wb25lbnRIHIgBARIrCgZzZW5zb3IYJSABKAsyFi53b3JsZC5TZW5zb3JDb21wb25lbnRIHYgBARI0Cgtsb2NhbF9zaGFwZRgdIAEoCzIaLndvcmxkLkxvY2FsU2hhcGVDb21wb25lbnRIHogBARInCgRwb3NlGCYgASgLMhQud29ybGQuUG9zZUNvbXBvbmVudEgfiAEBEjoKDnRhc2tfZXhlY3V0aW9uGCkgASgLMh0ud29ybGQuVGFza0V4ZWN1dGlvbkNvbXBvbmVudEggiAEBEjkKDWludGVyYWN0aXZpdHkYPCABKAsyHS53b3JsZC5JbnRlcmFjdGl2aXR5Q29tcG9uZW50SCGIAQESLwoIYXJ0aWZhY3QYPSABKAsyGC53b3JsZC5BcnRpZmFjdENvbXBvbmVudEgiiAEBEjQKC3RhcmdldF9wb3NlGD4gASgLMhoud29ybGQuVGFyZ2V0UG9zZUNvbXBvbmVudEgjiAEBEicKBGNoYXQYJyABKAsyFC53b3JsZC5DaGF0Q29tcG9uZW50SCSIAQESLwoIYXNzZW1ibHkYKCABKAsyGC53b3JsZC5Bc3NlbWJseUNvbXBvbmVudEgliAEBQggKBl9sYWJlbEINCgtfY29udHJvbGxlckILCglfbGlmZXRpbWVCCwoJX3ByaW9yaXR5QggKBl9sZWFzZUIKCghfcm91dGluZ0IGCgRfZ2VvQgkKB19zeW1ib2xCCQoHX2NhbWVyYUIMCgpfZGV0ZWN0aW9uQgoKCF9iZWFyaW5nQggKBl90cmFja0IKCghfbG9jYXRvckINCgtfa2luZW1hdGljc0IICgZfc2hhcGVCEQoPX2NsYXNzaWZpY2F0aW9uQg4KDF90cmFuc3BvbmRlckIRCg9fYWRtaW5pc3RyYXRpdmVCDgoMX29yaWVudGF0aW9uQg0KC19uYXZpZ2F0aW9uQggKBl9wb3dlckIKCghfY2FwdHVyZUILCglfdGFza2FibGVCCQoHX2RldmljZUIJCgdfY29uZmlnQg8KDV9jb25maWd1cmFibGVCCgoIX21pc3Npb25CBwoFX2xpbmtCCQoHX21ldHJpY0IJCgdfc2Vuc29yQg4KDF9sb2NhbF9zaGFwZUIHCgVfcG9zZUIRCg9fdGFza19leGVjdXRpb25CEAoOX2ludGVyYWN0aXZpdHlCCwoJX2FydGlmYWN0Qg4KDF90YXJnZXRfcG9zZUIHCgVfY2hhdEILCglfYXNzZW1ibHlKBAgIEAlKBAgJEApKBAgKEAsiYAoKQ29udHJvbGxlchIPCgJpZBgBIAEoCUgAiAEBEhEKBG5vZGUYAiABKAlIAYgBARITCgZvcmlnaW4YAyABKAlIAogBAUIFCgNfaWRCBwoFX25vZGVCCQoHX29yaWdpbiJZCgVMZWFzZRISCgpjb250cm9sbGVyGAEgASgJEjAKB2V4cGlyZXMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCCgoIX2V4cGlyZXMirwIKCExpZmV0aW1lEi0KBGZyb20YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESLgoFdW50aWwYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoFZnJlc2gYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESMwoKY29tcG9uZW50cxgEIAMoCzIfLndvcmxkLkxpZmV0aW1lLkNvbXBvbmVudHNFbnRyeRpCCg9Db21wb25lbnRzRW50cnkSCwoDa2V5GAEgASgFEh4KBXZhbHVlGAIgASgLMg8ud29ybGQuTGlmZXRpbWU6AjgBQgcKBV9mcm9tQggKBl91bnRpbEIICgZfZnJlc2giFwoHQ2hhbm5lbBIMCgRuYW1lGAEgASgJIisKB1JvdXRpbmcSIAoIY2hhbm5lbHMYASADKAsyDi53b3JsZC5DaGFubmVsIp8BChNHZW9TcGF0aWFsQ29tcG9uZW50EhEKCWxvbmdpdHVkZRgBIAEoARIQCghsYXRpdHVkZRgCIAEoARIVCghhbHRpdHVkZRgDIAEoAUgAiAEBEjAKCmNvdmFyaWFuY2UYBCABKAsyFy53b3JsZC5Db3ZhcmlhbmNlTWF0cml4SAGIAQFCCwoJX2FsdGl0dWRlQg0KC19jb3ZhcmlhbmNlIiYKD1N5bWJvbENvbXBvbmVudBITCgttaWxTdGQyNTI1QxgBIAEoCSJiChZJbnRlcmFjdGl2aXR5Q29tcG9uZW50EhEKBGljb24YASABKAlIAIgBARIaCg1yZWZlcmVuY2VfdXJsGAMgASgJSAGIAQFCBwoFX2ljb25CEAoOX3JlZmVyZW5jZV91cmwiygEKC01lZGlhU3RyZWFtEg0KBWxhYmVsGAEgASgJEgsKA3VybBgCIAEoCRIsCghwcm90b2NvbBgDIAEoDjIaLndvcmxkLk1lZGlhU3RyZWFtUHJvdG9jb2wSJAoEcm9sZRgJIAEoDjIWLndvcmxkLk1lZGlhU3RyZWFtUm9sZRINCgVjb2RlYxgKIAEoCRISCgV3aWR0aBgLIAEoBUgAiAEBEhMKBmhlaWdodBgMIAEoBUgBiAEBQggKBl93aWR0aEIJCgdfaGVpZ2h0Io4CCg9DYW1lcmFDb21wb25lbnQSIwoHc3RyZWFtcxgBIAMoCzISLndvcmxkLk1lZGlhU3RyZWFtEhgKC2ZvY2FsX3BvaW50GAIgASgJSACIAQESEAoDZm92GAMgASgBSAGIAQESFgoJcmFuZ2VfbWluGAQgASgBSAKIAQESFgoJcmFuZ2VfbWF4GAUgASgBSAOIAQESFQoIZm92X3dpZGUYBiABKAFIBIgBARIVCghmb3ZfdGVsZRgHIAEoAUgFiAEBQg4KDF9mb2NhbF9wb2ludEIGCgRfZm92QgwKCl9yYW5nZV9taW5CDAoKX3JhbmdlX21heEILCglfZm92X3dpZGVCCwoJX2Zvdl90ZWxlIh8KEEFydGlmYWN0TG9jYXRpb24SCwoDdXJsGAEgASgJIqgBChFBcnRpZmFjdENvbXBvbmVudBIKCgJpZBgBIAEoCRIUCgxjb250ZW50X3R5cGUYAiABKAkSKQoIbG9jYXRpb24YAyADKAsyFy53b3JsZC5BcnRpZmFjdExvY2F0aW9uEhcKCnNpemVfYnl0ZXMYBCABKANIAIgBARITCgZzaGEyNTYYBSABKAlIAYgBAUINCgtfc2l6ZV9ieXRlc0IJCgdfc2hhMjU2ItIBChJEZXRlY3Rpb25Db21wb25lbnQSHQoQZGV0ZWN0b3JFbnRpdHlJZBgBIAEoCUgAiAEBEhsKDmNsYXNzaWZpY2F0aW9uGAIgASgJSAGIAQESNQoMbGFzdE1lYXN1cmVkGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhAKCGV2aWRlbmNlGAQgAygJQhMKEV9kZXRlY3RvckVudGl0eUlkQhEKD19jbGFzc2lmaWNhdGlvbkIPCg1fbGFzdE1lYXN1cmVkIloKEEJlYXJpbmdDb21wb25lbnQSFAoHYXppbXV0aBgBIAEoAUgAiAEBEhYKCWVsZXZhdGlvbhgCIAEoAUgBiAEBQgoKCF9hemltdXRoQgwKCl9lbGV2YXRpb24iIwoPU2Vuc29yQ29tcG9uZW50EhAKCGNvdmVyYWdlGAIgAygJIjgKClF1YXRlcm5pb24SCQoBeBgBIAEoARIJCgF5GAIgASgBEgkKAXoYAyABKAESCQoBdxgEIAEoASKuAQoQQ292YXJpYW5jZU1hdHJpeBIQCgNteHgYASABKAFIAIgBARIQCgNteHkYAiABKAFIAYgBARIQCgNteHoYAyABKAFIAogBARIQCgNteXkYBCABKAFIA4gBARIQCgNteXoYBSABKAFIBIgBARIQCgNtenoYBiABKAFIBYgBAUIGCgRfbXh4QgYKBF9teHlCBgoEX214ekIGCgRfbXl5QgYKBF9teXpCBgoEX216eiLMAQoPQ2FydGVzaWFuT2Zmc2V0Eg4KBmVhc3RfbRgBIAEoARIPCgdub3J0aF9tGAIgASgBEhEKBHVwX20YAyABKAFIAIgBARIwCgpjb3ZhcmlhbmNlGAQgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEgBiAEBEisKC29yaWVudGF0aW9uGAUgASgLMhEud29ybGQuUXVhdGVybmlvbkgCiAEBQgcKBV91cF9tQg0KC19jb3ZhcmlhbmNlQg4KDF9vcmllbnRhdGlvbiKCAwoLUG9sYXJPZmZzZXQSDwoHYXppbXV0aBgBIAEoARIWCgllbGV2YXRpb24YAiABKAFIAIgBARISCgVyYW5nZRgDIAEoAUgBiAEBEjQKCmNvdmFyaWFuY2UYBCABKAsyFy53b3JsZC5Db3ZhcmlhbmNlTWF0cml4QgIYAUgCiAEBEh4KEWF6aW11dGhfZXJyb3JfZGVnGAogASgBSAOIAQESIAoTZWxldmF0aW9uX2Vycm9yX2RlZxgLIAEoAUgEiAEBEhoKDXJhbmdlX2Vycm9yX20YDCABKAFIBYgBARIrCgtvcmllbnRhdGlvbhgFIAEoCzIRLndvcmxkLlF1YXRlcm5pb25IBogBAUIMCgpfZWxldmF0aW9uQggKBl9yYW5nZUINCgtfY292YXJpYW5jZUIUChJfYXppbXV0aF9lcnJvcl9kZWdCFgoUX2VsZXZhdGlvbl9lcnJvcl9kZWdCEAoOX3JhbmdlX2Vycm9yX21CDgoMX29yaWVudGF0aW9uInsKDVBvc2VDb21wb25lbnQSDgoGcGFyZW50GAEgASgJEisKCWNhcnRlc2lhbhgCIAEoCzIWLndvcmxkLkNhcnRlc2lhbk9mZnNldEgAEiMKBXBvbGFyGAMgASgLMhIud29ybGQuUG9sYXJPZmZzZXRIAEIICgZvZmZzZXQicQoTVGFyZ2V0UG9zZUNvbXBvbmVudBIrCgljYXJ0ZXNpYW4YASABKAsyFi53b3JsZC5DYXJ0ZXNpYW5PZmZzZXRIABIjCgVwb2xhchgCIAEoCzISLndvcmxkLlBvbGFyT2Zmc2V0SABCCAoGb2Zmc2V0IkoKD0FuZ3VsYXJWZWxvY2l0eRIRCglyb2xsX3JhdGUYASABKAESEgoKcGl0Y2hfcmF0ZRgCIAEoARIQCgh5YXdfcmF0ZRgDIAEoASJ/ChRPcmllbnRhdGlvbkNvbXBvbmVudBImCgtvcmllbnRhdGlvbhgBIAEoCzIRLndvcmxkLlF1YXRlcm5pb24SMAoKY292YXJpYW5jZRgCIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhIAIgBAUINCgtfY292YXJpYW5jZSKQAQoOVHJhY2tDb21wb25lbnQSFAoHdHJhY2tlchgBIAEoCUgAiAEBEhQKB2hpc3RvcnkYAiABKAlIAYgBARIXCgpwcmVkaWN0aW9uGAMgASgJSAKIAQESEgoKZGV0ZWN0aW9ucxgEIAMoCUIKCghfdHJhY2tlckIKCghfaGlzdG9yeUINCgtfcHJlZGljdGlvbiIrChBMb2NhdG9yQ29tcG9uZW50EhcKD2xvY2F0ZWRFbnRpdHlJZBgBIAEoCSI1Cg9UYXNrYWJsZUNvbnRleHQSFQoIZW50aXR5SWQYASABKAlIAIgBAUILCglfZW50aXR5SWQiNgoQVGFza2FibGVBc3NpZ25lZRIVCghlbnRpdHlJZBgBIAEoCUgAiAEBQgsKCV9lbnRpdHlJZCL1AQoRVGFza2FibGVDb21wb25lbnQSFQoIcmVzZXJ2ZWQYASABKAlIAIgBARISCgVsYWJlbBgCIAEoCUgBiAEBEicKB2NvbnRleHQYAyADKAsyFi53b3JsZC5UYXNrYWJsZUNvbnRleHQSKQoIYXNzaWduZWUYBCADKAsyFy53b3JsZC5UYXNrYWJsZUFzc2lnbmVlEicKBnNjaGVtYRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSIQoEbW9kZRgGIAEoDjITLndvcmxkLlRhc2thYmxlTW9kZUILCglfcmVzZXJ2ZWRCCAoGX2xhYmVsItUBChZUYXNrRXhlY3V0aW9uQ29tcG9uZW50EgwKBHRhc2sYASABKAkSMAoKcGFyYW1ldGVycxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIoCgVzdGF0ZRgDIAEoDjIZLndvcmxkLlRhc2tFeGVjdXRpb25TdGF0ZRITCgZyZWFzb24YBCABKAlIAYgBARIVCghwcmlvcml0eRgFIAEoDUgCiAEBQg0KC19wYXJhbWV0ZXJzQgkKB19yZWFzb25CCwoJX3ByaW9yaXR5IqIBCg1LaW5lbWF0aWNzRW51EhEKBGVhc3QYASABKAFIAIgBARISCgVub3J0aBgCIAEoAUgBiAEBEg8KAnVwGAMgASgBSAKIAQESMAoKY292YXJpYW5jZRgEIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhIA4gBAUIHCgVfZWFzdEIICgZfbm9ydGhCBQoDX3VwQg0KC19jb3ZhcmlhbmNlIu8BChNLaW5lbWF0aWNzQ29tcG9uZW50Ei4KC3ZlbG9jaXR5RW51GAEgASgLMhQud29ybGQuS2luZW1hdGljc0VudUgAiAEBEjIKD2FjY2VsZXJhdGlvbkVudRgCIAEoCzIULndvcmxkLktpbmVtYXRpY3NFbnVIAYgBARI4ChNhbmd1bGFyVmVsb2NpdHlCb2R5GAMgASgLMhYud29ybGQuQW5ndWxhclZlbG9jaXR5SAKIAQFCDgoMX3ZlbG9jaXR5RW51QhIKEF9hY2NlbGVyYXRpb25FbnVCFgoUX2FuZ3VsYXJWZWxvY2l0eUJvZHkiQgoIR2VvbWV0cnkSDwoDd2tiGAEgASgMQgIYARIlCgZwbGFuYXIYAiABKAsyFS53b3JsZC5QbGFuYXJHZW9tZXRyeSJIChFHZW9TaGFwZUNvbXBvbmVudBImCghnZW9tZXRyeRgBIAEoCzIPLndvcmxkLkdlb21ldHJ5SACIAQFCCwoJX2dlb21ldHJ5ImQKE0xvY2FsU2hhcGVDb21wb25lbnQSEwoLcmVsYXRpdmVfdG8YAiABKAkSKwoIZ2VvbWV0cnkYASABKAsyFC53b3JsZC5Mb2NhbEdlb21ldHJ5SACIAQFCCwoJX2dlb21ldHJ5IqgBChdDbGFzc2lmaWNhdGlvbkNvbXBvbmVudBI8CglkaW1lbnNpb24YASABKA4yJC53b3JsZC5DbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvbkgAiAEBEjQKCGlkZW50aXR5GAIgASgOMh0ud29ybGQuQ2xhc3NpZmljYXRpb25JZGVudGl0eUgBiAEBQgwKCl9kaW1lbnNpb25CCwoJX2lkZW50aXR5IpQBCg5UcmFuc3BvbmRlckFJUxIRCgRtbXNpGAEgASgNSACIAQESEAoDaW1vGAIgASgNSAGIAQESFQoIY2FsbHNpZ24YAyABKAlIAogBARIYCgt2ZXNzZWxfbmFtZRgEIAEoCUgDiAEBQgcKBV9tbXNpQgYKBF9pbW9CCwoJX2NhbGxzaWduQg4KDF92ZXNzZWxfbmFtZSJjCg9UcmFuc3BvbmRlckFEU0ISGQoMaWNhb19hZGRyZXNzGAEgASgNSACIAQESFgoJZmxpZ2h0X2lkGAIgASgJSAGIAQFCDwoNX2ljYW9fYWRkcmVzc0IMCgpfZmxpZ2h0X2lkInsKFFRyYW5zcG9uZGVyQ29tcG9uZW50EicKA2FpcxgBIAEoCzIVLndvcmxkLlRyYW5zcG9uZGVyQUlTSACIAQESKQoEYWRzYhgCIAEoCzIWLndvcmxkLlRyYW5zcG9uZGVyQURTQkgBiAEBQgYKBF9haXNCBwoFX2Fkc2IioQMKF0FkbWluaXN0cmF0aXZlQ29tcG9uZW50Eg8KAmlkGAEgASgJSACIAQESEQoEZmxhZxgCIAEoCUgBiAEBEhIKBW93bmVyGAMgASgJSAKIAQESGQoMbWFudWZhY3R1cmVyGAQgASgJSAOIAQESEgoFbW9kZWwYBSABKAlIBIgBARIXCgp5ZWFyX2J1aWx0GAYgASgNSAWIAQESFQoIbGVuZ3RoX20YByABKAJIBogBARIUCgd3aWR0aF9tGAogASgCSAeIAQESFQoIaGVpZ2h0X20YCyABKAJICIgBARIXCgp0b25uYWdlX2d0GAggASgCSAmIAQESHAoPZW5naW5lX3Bvd2VyX2t3GAkgASgCSAqIAQFCBQoDX2lkQgcKBV9mbGFnQggKBl9vd25lckIPCg1fbWFudWZhY3R1cmVyQggKBl9tb2RlbEINCgtfeWVhcl9idWlsdEILCglfbGVuZ3RoX21CCgoIX3dpZHRoX21CCwoJX2hlaWdodF9tQg0KC190b25uYWdlX2d0QhIKEF9lbmdpbmVfcG93ZXJfa3ci8AEKE05hdmlnYXRpb25Db21wb25lbnQSKAoEbW9kZRgBIAEoDjIVLndvcmxkLk5hdmlnYXRpb25Nb2RlSACIAQESEgoFYXJtZWQYAiABKAhIAYgBARIWCgllbWVyZ2VuY3kYAyABKAhIAogBARIdChB3YXlwb2ludF9jdXJyZW50GAQgASgNSAOIAQESGwoOd2F5cG9pbnRfdG90YWwYBSABKA1IBIgBAUIHCgVfbW9kZUIICgZfYXJtZWRCDAoKX2VtZXJnZW5jeUITChFfd2F5cG9pbnRfY3VycmVudEIRCg9fd2F5cG9pbnRfdG90YWwirQEKEE1pc3Npb25Db21wb25lbnQSDwoHbWVtYmVycxgBIAMoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEhgKC2Rlc3RpbmF0aW9uGAMgASgJSAGIAQESLAoDZXRhGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQg4KDF9kZXNjcmlwdGlvbkIOCgxfZGVzdGluYXRpb25CBgoEX2V0YSLEAgoNTGlua0NvbXBvbmVudBImCgZzdGF0dXMYASABKA4yES53b3JsZC5MaW5rU3RhdHVzSACIAQESFQoIcnNzaV9kYm0YAiABKBFIAYgBARITCgZzbnJfZGIYAyABKBFIAogBARIQCgN2aWEYBSABKAlIA4gBARIcCg9sYXN0X2xhdGVuY3lfbXMYBiABKA1IBIgBARIbCg5hdmdfbGF0ZW5jeV9tcxgHIAEoDUgFiAEBEjIKCWxhc3Rfc2VlbhgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBAUIJCgdfc3RhdHVzQgsKCV9yc3NpX2RibUIJCgdfc25yX2RiQgYKBF92aWFCEgoQX2xhc3RfbGF0ZW5jeV9tc0IRCg9fYXZnX2xhdGVuY3lfbXNCDAoKX2xhc3Rfc2VlbiL9AQoQQ2FwdHVyZUNvbXBvbmVudBIUCgdwYXlsb2FkGAEgASgMSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgDIAEoCUgCiAEBEhgKC2NhcHR1cmVkX2J5GAQgASgJSAOIAQESNAoLY2FwdHVyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESDwoHY29udGVudBgGIAMoCUIKCghfcGF5bG9hZEIHCgVfcG9ydEIPCg1fY29udGVudF90eXBlQg4KDF9jYXB0dXJlZF9ieUIOCgxfY2FwdHVyZWRfYXQirAEKDlBvd2VyQ29tcG9uZW50EiUKGGJhdHRlcnlfY2hhcmdlX3JlbWFpbmluZxgBIAEoAkgAiAEBEhQKB3ZvbHRhZ2UYAiABKAJIAYgBARIeChFyZW1haW5pbmdfc2Vjb25kcxgDIAEoDUgCiAEBQhsKGV9iYXR0ZXJ5X2NoYXJnZV9yZW1haW5pbmdCCgoIX3ZvbHRhZ2VCFAoSX3JlbWFpbmluZ19zZWNvbmRzIjEKEURldmljZUNsYXNzT3B0aW9uEg0KBWNsYXNzGAEgASgJEg0KBWxhYmVsGAIgASgJIuoCChVDb25maWd1cmFibGVDb21wb25lbnQSJwoGc2NoZW1hGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJwoFc3RhdGUYAyABKA4yGC53b3JsZC5Db25maWd1cmFibGVTdGF0ZRISCgVlcnJvchgEIAEoCUgAiAEBEhIKBWxhYmVsGAUgASgJSAGIAQESFwoPYXBwbGllZF92ZXJzaW9uGAYgASgEEjoKGHN1cHBvcnRlZF9kZXZpY2VfY2xhc3NlcxgHIAMoCzIYLndvcmxkLkRldmljZUNsYXNzT3B0aW9uEjUKDHNjaGVkdWxlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIICgZfZXJyb3JCCAoGX2xhYmVsQg8KDV9zY2hlZHVsZWRfYXQilAUKD0RldmljZUNvbXBvbmVudBITCgZwYXJlbnQYASABKAlIAIgBARITCgtjb21wb3NpdGlvbhgCIAMoCRIfChJ1bmlxdWVfaGFyZHdhcmVfaWQYBCABKAlIAYgBARIhCgVzdGF0ZRgGIAEoDjISLndvcmxkLkRldmljZVN0YXRlEhIKBWVycm9yGAcgASgJSAKIAQESEgoFY2xhc3MYCiABKAlIA4gBARIVCghjYXRlZ29yeRgNIAEoCUgEiAEBEiQKBG5vZGUYFCABKAsyES53b3JsZC5Ob2RlRGV2aWNlSAWIAQESIgoDdXNiGBUgASgLMhAud29ybGQuVXNiRGV2aWNlSAaIAQESIAoCaXAYFiABKAsyDy53b3JsZC5JcERldmljZUgHiAEBEigKBnNlcmlhbBgXIAEoCzITLndvcmxkLlNlcmlhbERldmljZUgIiAEBEiwKCGV0aGVybmV0GBggASgLMhUud29ybGQuRXRoZXJuZXREZXZpY2VICYgBARImCgVscHdhbhgZIAEoCzISLndvcmxkLkxQV0FORGV2aWNlSAqIAQESMAoKbWVzaHRhc3RpYxgaIAEoCzIXLndvcmxkLk1lc2h0YXN0aWNEZXZpY2VIC4gBARIiCgNibGUYGyABKAsyEC53b3JsZC5CbGVEZXZpY2VIDIgBAUIJCgdfcGFyZW50QhUKE191bmlxdWVfaGFyZHdhcmVfaWRCCAoGX2Vycm9yQggKBl9jbGFzc0ILCglfY2F0ZWdvcnlCBwoFX25vZGVCBgoEX3VzYkIFCgNfaXBCCQoHX3NlcmlhbEILCglfZXRoZXJuZXRCCAoGX2xwd2FuQg0KC19tZXNodGFzdGljQgYKBF9ibGUioAIKCk5vZGVEZXZpY2USFQoIaG9zdG5hbWUYASABKAlIAIgBARIPCgJvcxgCIAEoCUgBiAEBEhEKBGFyY2gYAyABKAlIAogBARIUCgdudW1fY3B1GAQgASgNSAOIAQESFwoKb3NfdmVyc2lvbhgFIAEoCUgEiAEBEhsKDmh5ZHJpc192ZXJzaW9uGAYgASgJSAWIAQESJAoXaHlkcmlzX3VwZGF0ZV9hdmFpbGFibGUYByABKAlIBogBAUILCglfaG9zdG5hbWVCBQoDX29zQgcKBV9hcmNoQgoKCF9udW1fY3B1Qg0KC19vc192ZXJzaW9uQhEKD19oeWRyaXNfdmVyc2lvbkIaChhfaHlkcmlzX3VwZGF0ZV9hdmFpbGFibGUi+QIKCVVzYkRldmljZRIWCgl2ZW5kb3JfaWQYASABKA1IAIgBARIXCgpwcm9kdWN0X2lkGAIgASgNSAGIAQESGQoMZGV2aWNlX2NsYXNzGAMgASgNSAKIAQESHAoPZGV2aWNlX3N1YmNsYXNzGAQgASgNSAOIAQESHAoPZGV2aWNlX3Byb3RvY29sGAUgASgNSASIAQESHgoRbWFudWZhY3R1cmVyX25hbWUYBiABKAlIBYgBARIZCgxwcm9kdWN0X25hbWUYByABKAlIBogBARIaCg1zZXJpYWxfbnVtYmVyGAggASgJSAeIAQFCDAoKX3ZlbmRvcl9pZEINCgtfcHJvZHVjdF9pZEIPCg1fZGV2aWNlX2NsYXNzQhIKEF9kZXZpY2Vfc3ViY2xhc3NCEgoQX2RldmljZV9wcm90b2NvbEIUChJfbWFudWZhY3R1cmVyX25hbWVCDwoNX3Byb2R1Y3RfbmFtZUIQCg5fc2VyaWFsX251bWJlciJCCghJcERldmljZRIRCgRob3N0GAEgASgJSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBQgcKBV9ob3N0QgcKBV9wb3J0IloKDkV0aGVybmV0RGV2aWNlEhgKC21hY19hZGRyZXNzGAEgASgJSACIAQESEwoGdmVuZG9yGAIgASgJSAGIAQFCDgoMX21hY19hZGRyZXNzQgkKB192ZW5kb3IiUAoMU2VyaWFsRGV2aWNlEhEKBHBhdGgYASABKAlIAIgBARIWCgliYXVkX3JhdGUYAiABKA1IAYgBAUIHCgVfcGF0aEIMCgpfYmF1ZF9yYXRlItwBChBNZXNodGFzdGljRGV2aWNlEhUKCG5vZGVfbnVtGAEgASgNSACIAQESFgoJbG9uZ19uYW1lGAIgASgJSAGIAQESFwoKc2hvcnRfbmFtZRgDIAEoCUgCiAEBEhsKDmhhcmR3YXJlX21vZGVsGAQgASgJSAOIAQESFwoKcHVibGljX2tleRgFIAEoDEgEiAEBQgsKCV9ub2RlX251bUIMCgpfbG9uZ19uYW1lQg0KC19zaG9ydF9uYW1lQhEKD19oYXJkd2FyZV9tb2RlbEINCgtfcHVibGljX2tleSJJCgtMUFdBTkRldmljZRIQCgNldWkYASABKAlIAIgBARIUCgdhZGRyZXNzGAIgASgJSAGIAQFCBgoEX2V1aUIKCghfYWRkcmVzcyJgCglCbGVEZXZpY2USFAoHYWRkcmVzcxgBIAEoCUgAiAEBEhEKBG5hbWUYAiABKAlIAYgBARIVCg1zZXJ2aWNlX3V1aWRzGAQgAygJQgoKCF9hZGRyZXNzQgcKBV9uYW1lIlEKFkNvbmZpZ3VyYXRpb25Db21wb25lbnQSJgoFdmFsdWUYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3ZlcnNpb24YBSABKAQioAEKDUNoYXRDb21wb25lbnQSEwoGc2VuZGVyGAEgASgJSACIAQESDwoCdG8YAyABKAlIAYgBARIPCgdtZXNzYWdlGAQgASgJEhUKCHJlcGx5X3RvGAUgASgJSAKIAQESFQoIcmVhY3Rpb24YBiABKAhIA4gBAUIJCgdfc2VuZGVyQgUKA190b0ILCglfcmVwbHlfdG9CCwoJX3JlYWN0aW9uIkQKEUFzc2VtYmx5Q29tcG9uZW50EhMKBnBhcmVudBgBIAEoCUgAiAEBEg8KB291dGxpbmUYAiADKAlCCQoHX3BhcmVudCLVBAoMRW50aXR5RmlsdGVyEg8KAmlkGAEgASgJSACIAQESEgoFbGFiZWwYAiABKAlIAYgBARIiCgNnZW8YAyABKAsyEC53b3JsZC5HZW9GaWx0ZXJIAogBARIsCgh0YXNrYWJsZRgEIAEoCzIVLndvcmxkLlRhc2thYmxlRmlsdGVySAOIAQESEQoJY29tcG9uZW50GAUgAygNEjAKCmNvbnRyb2xsZXIYByABKAsyFy53b3JsZC5Db250cm9sbGVyRmlsdGVySASIAQESJgoFdHJhY2sYCCABKAsyEi53b3JsZC5UcmFja0ZpbHRlckgFiAEBEioKB21pc3Npb24YCSABKAsyFC53b3JsZC5NaXNzaW9uRmlsdGVySAaIAQESKgoHY2hhbm5lbBgKIAEoCzIULndvcmxkLkNoYW5uZWxGaWx0ZXJIB4gBARIoCgZkZXZpY2UYMiABKAsyEy53b3JsZC5EZXZpY2VGaWx0ZXJICIgBARIvCgZjb25maWcYMyABKAsyGi53b3JsZC5Db25maWd1cmF0aW9uRmlsdGVySAmIAQESHwoCb3IYZCADKAsyEy53b3JsZC5FbnRpdHlGaWx0ZXISIAoDbm90GGUgASgLMhMud29ybGQuRW50aXR5RmlsdGVyQgUKA19pZEIICgZfbGFiZWxCBgoEX2dlb0ILCglfdGFza2FibGVCDQoLX2NvbnRyb2xsZXJCCAoGX3RyYWNrQgoKCF9taXNzaW9uQgoKCF9jaGFubmVsQgkKB19kZXZpY2VCCQoHX2NvbmZpZyIqChBDb250cm9sbGVyRmlsdGVyEg8KAmlkGAEgASgJSACIAQFCBQoDX2lkIi8KC1RyYWNrRmlsdGVyEhQKB3RyYWNrZXIYASABKAlIAIgBAUIKCghfdHJhY2tlciJdCg1NaXNzaW9uRmlsdGVyEhcKCm1pc3Npb25faWQYASABKAlIAIgBARIWCgltZW1iZXJfaWQYAiABKAlIAYgBAUINCgtfbWlzc2lvbl9pZEIMCgpfbWVtYmVyX2lkIocBCg5UYXNrYWJsZUZpbHRlchIsCgdjb250ZXh0GAEgASgLMhYud29ybGQuVGFza2FibGVDb250ZXh0SACIAQESLgoIYXNzaWduZWUYAiABKAsyFy53b3JsZC5UYXNrYWJsZUFzc2lnbmVlSAGIAQFCCgoIX2NvbnRleHRCCwoJX2Fzc2lnbmVlIk4KCUdlb0ZpbHRlchIjCghnZW9tZXRyeRgBIAEoCzIPLndvcmxkLkdlb21ldHJ5SAASFQoLZ2VvRW50aXR5SWQYAiABKAlIAEIFCgNnZW8i9gEKDERldmljZUZpbHRlchITCgZwYXJlbnQYASABKAlIAIgBARIfChJ1bmlxdWVfaGFyZHdhcmVfaWQYBCABKAlIAYgBARIZCgxkZXZpY2VfY2xhc3MYBSABKAlIAogBARIoCgNibGUYBiABKAsyFi53b3JsZC5CbGVEZXZpY2VGaWx0ZXJIA4gBARIoCgN1c2IYByABKAsyFi53b3JsZC5Vc2JEZXZpY2VGaWx0ZXJIBIgBAUIJCgdfcGFyZW50QhUKE191bmlxdWVfaGFyZHdhcmVfaWRCDwoNX2RldmljZV9jbGFzc0IGCgRfYmxlQgYKBF91c2IiZgoPQmxlRGV2aWNlRmlsdGVyEhQKB2FkZHJlc3MYASABKAlIAIgBARIRCgRuYW1lGAIgASgJSAGIAQESFQoNc2VydmljZV91dWlkcxgEIAMoCUIKCghfYWRkcmVzc0IHCgVfbmFtZSL/AgoPVXNiRGV2aWNlRmlsdGVyEhYKCXZlbmRvcl9pZBgBIAEoDUgAiAEBEhcKCnByb2R1Y3RfaWQYAiABKA1IAYgBARIZCgxkZXZpY2VfY2xhc3MYAyABKA1IAogBARIcCg9kZXZpY2Vfc3ViY2xhc3MYBCABKA1IA4gBARIcCg9kZXZpY2VfcHJvdG9jb2wYBSABKA1IBIgBARIeChFtYW51ZmFjdHVyZXJfbmFtZRgGIAEoCUgFiAEBEhkKDHByb2R1Y3RfbmFtZRgHIAEoCUgGiAEBEhoKDXNlcmlhbF9udW1iZXIYCCABKAlIB4gBAUIMCgpfdmVuZG9yX2lkQg0KC19wcm9kdWN0X2lkQg8KDV9kZXZpY2VfY2xhc3NCEgoQX2RldmljZV9zdWJjbGFzc0ISChBfZGV2aWNlX3Byb3RvY29sQhQKEl9tYW51ZmFjdHVyZXJfbmFtZUIPCg1fcHJvZHVjdF9uYW1lQhAKDl9zZXJpYWxfbnVtYmVyIhUKE0NvbmZpZ3VyYXRpb25GaWx0ZXIiHQoNQ2hhbm5lbEZpbHRlchIMCgRuYW1lGAEgASgJIrQBCg1XYXRjaEJlaGF2aW9yEhgKC21heF9yYXRlX2h6GAEgASgCSACIAQESKgoMbWluX3ByaW9yaXR5GAMgASgOMg8ud29ybGQuUHJpb3JpdHlIAYgBARIiChVrZWVwYWxpdmVfaW50ZXJ2YWxfbXMYBCABKA1IAogBAUIOCgxfbWF4X3JhdGVfaHpCDwoNX21pbl9wcmlvcml0eUIYChZfa2VlcGFsaXZlX2ludGVydmFsX21zInwKE0xpc3RFbnRpdGllc1JlcXVlc3QSIwoGZmlsdGVyGAIgASgLMhMud29ybGQuRW50aXR5RmlsdGVyEiwKCWJlaGF2aW91chgEIAEoCzIULndvcmxkLldhdGNoQmVoYXZpb3JIAIgBAUIMCgpfYmVoYXZpb3VySgQIARACIjcKFExpc3RFbnRpdGllc1Jlc3BvbnNlEh8KCGVudGl0aWVzGAEgAygLMg0ud29ybGQuRW50aXR5IloKE0VudGl0eUNoYW5nZVJlcXVlc3QSHgoHY2hhbmdlcxgBIAMoCzINLndvcmxkLkVudGl0eRIjCgxyZXBsYWNlbWVudHMYAiADKAsyDS53b3JsZC5FbnRpdHkiIQoTRXhwaXJlRW50aXR5UmVxdWVzdBIKCgJpZBgBIAEoCSIWChRFeHBpcmVFbnRpdHlSZXNwb25zZSI3ChRFbnRpdHlDaGFuZ2VSZXNwb25zZRIQCghhY2NlcHRlZBgBIAEoCBINCgVkZWJ1ZxgCIAEoCSJSChFFbnRpdHlDaGFuZ2VFdmVudBIdCgZlbnRpdHkYASABKAsyDS53b3JsZC5FbnRpdHkSHgoBdBgCIAEoDjITLndvcmxkLkVudGl0eUNoYW5nZSI9ChFFbnRpdHlDaGFuZ2VCYXRjaBIoCgZldmVudHMYASADKAsyGC53b3JsZC5FbnRpdHlDaGFuZ2VFdmVudCIeChBHZXRFbnRpdHlSZXF1ZXN0EgoKAmlkGAEgASgJIjIKEUdldEVudGl0eVJlc3BvbnNlEh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eSIVChNHZXRMb2NhbE5vZGVSZXF1ZXN0IkYKFEdldExvY2FsTm9kZVJlc3BvbnNlEh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eRIPCgdub2RlX2lkGAIgASgJIhEKD09ic2VydmVyUmVxdWVzdCJzCg1PYnNlcnZlclN0YXRlEhwKA2dlbxgBIAEoCzIPLndvcmxkLkdlb21ldHJ5EjQKC3ZpZXdIaXN0b3J5GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg4KDF92aWV3SGlzdG9yeSJGCg5SdW5UYXNrUmVxdWVzdBIQCghlbnRpdHlJZBgBIAEoCRIVCghwcmlvcml0eRgCIAEoDUgAiAEBQgsKCV9wcmlvcml0eSKDAQoPUnVuVGFza1Jlc3BvbnNlEhMKC2V4ZWN1dGlvbklkGAEgASgJEiEKBnN0YXR1cxgCIAEoDjIRLndvcmxkLlRhc2tTdGF0dXMSIAoTaHVtYW5SZWFkYWJsZVJlYXNvbhgDIAEoCUgAiAEBQhYKFF9odW1hblJlYWRhYmxlUmVhc29uIhIKEEhhcmRSZXNldFJlcXVlc3QiEwoRSGFyZFJlc2V0UmVzcG9uc2UqYgoIUHJpb3JpdHkSFwoTUHJpb3JpdHlVbnNwZWNpZmllZBAAEhMKD1ByaW9yaXR5Um91dGluZRABEhUKEVByaW9yaXR5SW1tZWRpYXRlEAISEQoNUHJpb3JpdHlGbGFzaBADKuwBChNNZWRpYVN0cmVhbVByb3RvY29sEiIKHk1lZGlhU3RyZWFtUHJvdG9jb2xVbnNwZWNpZmllZBAAEh0KGU1lZGlhU3RyZWFtUHJvdG9jb2xXZWJydGMQARIaChZNZWRpYVN0cmVhbVByb3RvY29sSGxzEAISHAoYTWVkaWFTdHJlYW1Qcm90b2NvbE1qcGVnEAMSHAoYTWVkaWFTdHJlYW1Qcm90b2NvbEltYWdlEAQSHQoZTWVkaWFTdHJlYW1Qcm90b2NvbElmcmFtZRAFEhsKF01lZGlhU3RyZWFtUHJvdG9jb2xSdHNwEAYqfwoPTWVkaWFTdHJlYW1Sb2xlEh4KGk1lZGlhU3RyZWFtUm9sZVVuc3BlY2lmaWVkEAASFwoTTWVkaWFTdHJlYW1Sb2xlTWFpbhABEhYKEk1lZGlhU3RyZWFtUm9sZVN1YhACEhsKF01lZGlhU3RyZWFtUm9sZVNuYXBzaG90EAMqegoMVGFza2FibGVNb2RlEhkKFVRhc2thYmxlTW9kZUV4Y2x1c2l2ZRAAEhkKFVRhc2thYmxlTW9kZVJlY29uY2lsZRABEhUKEVRhc2thYmxlTW9kZVNwYXduEAISHQoZVGFza2FibGVNb2RlUHJpb3JpdHlRdWV1ZRADKpEBChJUYXNrRXhlY3V0aW9uU3RhdGUSHQoZVGFza0V4ZWN1dGlvblN0YXRlUGVuZGluZxAAEh0KGVRhc2tFeGVjdXRpb25TdGF0ZVJ1bm5pbmcQARIfChtUYXNrRXhlY3V0aW9uU3RhdGVDb21wbGV0ZWQQAhIcChhUYXNrRXhlY3V0aW9uU3RhdGVGYWlsZWQQAyqMAgoWQ2xhc3NpZmljYXRpb25JZGVudGl0eRIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5SW52YWxpZBAAEiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlQZW5kaW5nEAESIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eVVua25vd24QAhIgChxDbGFzc2lmaWNhdGlvbklkZW50aXR5RnJpZW5kEAMSIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eU5ldXRyYWwQBBIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5SG9zdGlsZRAFEiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlTdXNwZWN0EAYqxAIKHUNsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uEigKJENsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uSW52YWxpZBAAEigKJENsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uVW5rbm93bhABEiYKIkNsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uU3BhY2UQAhIkCiBDbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvbkFpchADEicKI0NsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uR3JvdW5kEAQSKwonQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25TZWFTdXJmYWNlEAUSKwonQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25TdWJzdXJmYWNlEAYq9gEKDk5hdmlnYXRpb25Nb2RlEh0KGU5hdmlnYXRpb25Nb2RlVW5zcGVjaWZpZWQQABIZChVOYXZpZ2F0aW9uTW9kZVBsYW5uZWQQARIcChhOYXZpZ2F0aW9uTW9kZVN0YXRpb25hcnkQAhIaChZOYXZpZ2F0aW9uTW9kZVVuZGVyd2F5EAMSHAoYTmF2aWdhdGlvbk1vZGVBdXRvbm9tb3VzEAQSGAoUTmF2aWdhdGlvbk1vZGVHdWlkZWQQBRIbChdOYXZpZ2F0aW9uTW9kZUxvaXRlcmluZxAGEhsKF05hdmlnYXRpb25Nb2RlUmV0dXJuaW5nEAcqbAoKTGlua1N0YXR1cxIZChVMaW5rU3RhdHVzVW5zcGVjaWZpZWQQABIXChNMaW5rU3RhdHVzQ29ubmVjdGVkEAESFgoSTGlua1N0YXR1c0RlZ3JhZGVkEAISEgoOTGlua1N0YXR1c0xvc3QQAypTCgtEZXZpY2VTdGF0ZRIWChJEZXZpY2VTdGF0ZVBlbmRpbmcQABIVChFEZXZpY2VTdGF0ZUFjdGl2ZRABEhUKEURldmljZVN0YXRlRmFpbGVkEAIqygEKEUNvbmZpZ3VyYWJsZVN0YXRlEh0KGUNvbmZpZ3VyYWJsZVN0YXRlSW5hY3RpdmUQABIdChlDb25maWd1cmFibGVTdGF0ZVN0YXJ0aW5nEAESGwoXQ29uZmlndXJhYmxlU3RhdGVBY3RpdmUQAhIbChdDb25maWd1cmFibGVTdGF0ZUZhaWxlZBADEh0KGUNvbmZpZ3VyYWJsZVN0YXRlQ29uZmxpY3QQBBIeChpDb25maWd1cmFibGVTdGF0ZVNjaGVkdWxlZBAFKnUKDEVudGl0eUNoYW5nZRIXChNFbnRpdHlDaGFuZ2VJbnZhbGlkEAASFwoTRW50aXR5Q2hhbmdlVXBkYXRlZBABEhcKE0VudGl0eUNoYW5nZUV4cGlyZWQQAhIaChZFbnRpdHlDaGFuZ2VVbm9ic2VydmVkEAMq3AgKD0VudGl0eUNvbXBvbmVudBIeChpFbnRpdHlDb21wb25lbnRVbnNwZWNpZmllZBAAEhgKFEVudGl0eUNvbXBvbmVudExhYmVsEAISHQoZRW50aXR5Q29tcG9uZW50Q29udHJvbGxlchADEhsKF0VudGl0eUNvbXBvbmVudExpZmV0aW1lEAQSGwoXRW50aXR5Q29tcG9uZW50UHJpb3JpdHkQBRIYChRFbnRpdHlDb21wb25lbnRMZWFzZRAGEhoKFkVudGl0eUNvbXBvbmVudFJvdXRpbmcQBxIWChJFbnRpdHlDb21wb25lbnRHZW8QCxIZChVFbnRpdHlDb21wb25lbnRTeW1ib2wQDBIZChVFbnRpdHlDb21wb25lbnRDYW1lcmEQDxIcChhFbnRpdHlDb21wb25lbnREZXRlY3Rpb24QEBIaChZFbnRpdHlDb21wb25lbnRCZWFyaW5nEBESGAoURW50aXR5Q29tcG9uZW50VHJhY2sQFRIaChZFbnRpdHlDb21wb25lbnRMb2NhdG9yEBYSGwoXRW50aXR5Q29tcG9uZW50VGFza2FibGUQFxIdChlFbnRpdHlDb21wb25lbnRLaW5lbWF0aWNzEBgSGAoURW50aXR5Q29tcG9uZW50U2hhcGUQGRIhCh1FbnRpdHlDb21wb25lbnRDbGFzc2lmaWNhdGlvbhAaEh4KGkVudGl0eUNvbXBvbmVudFRyYW5zcG9uZGVyEBsSIQodRW50aXR5Q29tcG9uZW50QWRtaW5pc3RyYXRpdmUQHBIdChlFbnRpdHlDb21wb25lbnRMb2NhbFNoYXBlEB0SHgoaRW50aXR5Q29tcG9uZW50T3JpZW50YXRpb24QHhIaChZFbnRpdHlDb21wb25lbnRNaXNzaW9uEB8SFwoTRW50aXR5Q29tcG9uZW50TGluaxAgEhgKFEVudGl0eUNvbXBvbmVudFBvd2VyECESHQoZRW50aXR5Q29tcG9uZW50TmF2aWdhdGlvbhAiEhoKFkVudGl0eUNvbXBvbmVudENhcHR1cmUQIxIZChVFbnRpdHlDb21wb25lbnRNZXRyaWMQJBIZChVFbnRpdHlDb21wb25lbnRTZW5zb3IQJRIXChNFbnRpdHlDb21wb25lbnRQb3NlECYSFwoTRW50aXR5Q29tcG9uZW50Q2hhdBAnEiAKHEVudGl0eUNvbXBvbmVudFRhc2tFeGVjdXRpb24QKRIZChVFbnRpdHlDb21wb25lbnREZXZpY2UQMhIZChVFbnRpdHlDb21wb25lbnRDb25maWcQMxIfChtFbnRpdHlDb21wb25lbnRDb25maWd1cmFibGUQNBIgChxFbnRpdHlDb21wb25lbnRJbnRlcmFjdGl2aXR5EDwSGwoXRW50aXR5Q29tcG9uZW50QXJ0aWZhY3QQPRIdChlFbnRpdHlDb21wb25lbnRUYXJnZXRQb3NlED4qaQoKVGFza1N0YXR1cxIVChFUYXNrU3RhdHVzSW52YWxpZBAAEhUKEVRhc2tTdGF0dXNSdW5uaW5nEAESFwoTVGFza1N0YXR1c0NvbXBsZXRlZBACEhQKEFRhc2tTdGF0dXNGYWlsZWQQAzKtBAoMV29ybGRTZXJ2aWNlEkcKDExpc3RFbnRpdGllcxIaLndvcmxkLkxpc3RFbnRpdGllc1JlcXVlc3QaGy53b3JsZC5MaXN0RW50aXRpZXNSZXNwb25zZRI+CglHZXRFbnRpdHkSFy53b3JsZC5HZXRFbnRpdHlSZXF1ZXN0Ghgud29ybGQuR2V0RW50aXR5UmVzcG9uc2USRwoNV2F0Y2hFbnRpdGllcxIaLndvcmxkLkxpc3RFbnRpdGllc1JlcXVlc3QaGC53b3JsZC5FbnRpdHlDaGFuZ2VFdmVudDABEj8KBFB1c2gSGi53b3JsZC5FbnRpdHlDaGFuZ2VSZXF1ZXN0Ghsud29ybGQuRW50aXR5Q2hhbmdlUmVzcG9uc2USRwoMRXhwaXJlRW50aXR5Ehoud29ybGQuRXhwaXJlRW50aXR5UmVxdWVzdBobLndvcmxkLkV4cGlyZUVudGl0eVJlc3BvbnNlEkcKDEdldExvY2FsTm9kZRIaLndvcmxkLkdldExvY2FsTm9kZVJlcXVlc3QaGy53b3JsZC5HZXRMb2NhbE5vZGVSZXNwb25zZRI4CgdSdW5UYXNrEhUud29ybGQuUnVuVGFza1JlcXVlc3QaFi53b3JsZC5SdW5UYXNrUmVzcG9uc2USPgoJSGFyZFJlc2V0Ehcud29ybGQuSGFyZFJlc2V0UmVxdWVzdBoYLndvcmxkLkhhcmRSZXNldFJlc3BvbnNlQiBaHmdpdGh1Yi5jb20vcHJvamVjdHFhaS9wcm90by9nb2IGcHJvdG8z", [file_geometry, file_google_protobuf_struct, file_google_protobuf_timestamp, file_metrics]);
14
+ fileDesc("Cgt3b3JsZC5wcm90bxIFd29ybGQizRIKBkVudGl0eRIKCgJpZBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBEioKCmNvbnRyb2xsZXIYAyABKAsyES53b3JsZC5Db250cm9sbGVySAGIAQESJgoIbGlmZXRpbWUYBCABKAsyDy53b3JsZC5MaWZldGltZUgCiAEBEiYKCHByaW9yaXR5GAUgASgOMg8ud29ybGQuUHJpb3JpdHlIA4gBARIgCgVsZWFzZRgGIAEoCzIMLndvcmxkLkxlYXNlSASIAQESJAoHcm91dGluZxgHIAEoCzIOLndvcmxkLlJvdXRpbmdIBYgBARIsCgNnZW8YCyABKAsyGi53b3JsZC5HZW9TcGF0aWFsQ29tcG9uZW50SAaIAQESKwoGc3ltYm9sGAwgASgLMhYud29ybGQuU3ltYm9sQ29tcG9uZW50SAeIAQESKwoGY2FtZXJhGA8gASgLMhYud29ybGQuQ2FtZXJhQ29tcG9uZW50SAiIAQESMQoJZGV0ZWN0aW9uGBAgASgLMhkud29ybGQuRGV0ZWN0aW9uQ29tcG9uZW50SAmIAQESLQoHYmVhcmluZxgRIAEoCzIXLndvcmxkLkJlYXJpbmdDb21wb25lbnRICogBARIpCgV0cmFjaxgVIAEoCzIVLndvcmxkLlRyYWNrQ29tcG9uZW50SAuIAQESLQoHbG9jYXRvchgWIAEoCzIXLndvcmxkLkxvY2F0b3JDb21wb25lbnRIDIgBARIzCgpraW5lbWF0aWNzGBggASgLMhoud29ybGQuS2luZW1hdGljc0NvbXBvbmVudEgNiAEBEiwKBXNoYXBlGBkgASgLMhgud29ybGQuR2VvU2hhcGVDb21wb25lbnRIDogBARI7Cg5jbGFzc2lmaWNhdGlvbhgaIAEoCzIeLndvcmxkLkNsYXNzaWZpY2F0aW9uQ29tcG9uZW50SA+IAQESNQoLdHJhbnNwb25kZXIYGyABKAsyGy53b3JsZC5UcmFuc3BvbmRlckNvbXBvbmVudEgQiAEBEjsKDmFkbWluaXN0cmF0aXZlGBwgASgLMh4ud29ybGQuQWRtaW5pc3RyYXRpdmVDb21wb25lbnRIEYgBARI1CgtvcmllbnRhdGlvbhgeIAEoCzIbLndvcmxkLk9yaWVudGF0aW9uQ29tcG9uZW50SBKIAQESMwoKbmF2aWdhdGlvbhgiIAEoCzIaLndvcmxkLk5hdmlnYXRpb25Db21wb25lbnRIE4gBARIpCgVwb3dlchghIAEoCzIVLndvcmxkLlBvd2VyQ29tcG9uZW50SBSIAQESLQoHY2FwdHVyZRgjIAEoCzIXLndvcmxkLkNhcHR1cmVDb21wb25lbnRIFYgBARInCgRnbnNzGCogASgLMhQud29ybGQuR25zc0NvbXBvbmVudEgWiAEBEi8KCHRhc2thYmxlGBcgASgLMhgud29ybGQuVGFza2FibGVDb21wb25lbnRIF4gBARIrCgZkZXZpY2UYMiABKAsyFi53b3JsZC5EZXZpY2VDb21wb25lbnRIGIgBARIyCgZjb25maWcYMyABKAsyHS53b3JsZC5Db25maWd1cmF0aW9uQ29tcG9uZW50SBmIAQESNwoMY29uZmlndXJhYmxlGDQgASgLMhwud29ybGQuQ29uZmlndXJhYmxlQ29tcG9uZW50SBqIAQESLQoHbWlzc2lvbhgfIAEoCzIXLndvcmxkLk1pc3Npb25Db21wb25lbnRIG4gBARInCgRsaW5rGCAgASgLMhQud29ybGQuTGlua0NvbXBvbmVudEgciAEBEisKBm1ldHJpYxgkIAEoCzIWLndvcmxkLk1ldHJpY0NvbXBvbmVudEgdiAEBEisKBnNlbnNvchglIAEoCzIWLndvcmxkLlNlbnNvckNvbXBvbmVudEgeiAEBEjQKC2xvY2FsX3NoYXBlGB0gASgLMhoud29ybGQuTG9jYWxTaGFwZUNvbXBvbmVudEgfiAEBEicKBHBvc2UYJiABKAsyFC53b3JsZC5Qb3NlQ29tcG9uZW50SCCIAQESOgoOdGFza19leGVjdXRpb24YKSABKAsyHS53b3JsZC5UYXNrRXhlY3V0aW9uQ29tcG9uZW50SCGIAQESOQoNaW50ZXJhY3Rpdml0eRg8IAEoCzIdLndvcmxkLkludGVyYWN0aXZpdHlDb21wb25lbnRIIogBARIvCghhcnRpZmFjdBg9IAEoCzIYLndvcmxkLkFydGlmYWN0Q29tcG9uZW50SCOIAQESNAoLdGFyZ2V0X3Bvc2UYPiABKAsyGi53b3JsZC5UYXJnZXRQb3NlQ29tcG9uZW50SCSIAQESJwoEY2hhdBgnIAEoCzIULndvcmxkLkNoYXRDb21wb25lbnRIJYgBARIvCghhc3NlbWJseRgoIAEoCzIYLndvcmxkLkFzc2VtYmx5Q29tcG9uZW50SCaIAQFCCAoGX2xhYmVsQg0KC19jb250cm9sbGVyQgsKCV9saWZldGltZUILCglfcHJpb3JpdHlCCAoGX2xlYXNlQgoKCF9yb3V0aW5nQgYKBF9nZW9CCQoHX3N5bWJvbEIJCgdfY2FtZXJhQgwKCl9kZXRlY3Rpb25CCgoIX2JlYXJpbmdCCAoGX3RyYWNrQgoKCF9sb2NhdG9yQg0KC19raW5lbWF0aWNzQggKBl9zaGFwZUIRCg9fY2xhc3NpZmljYXRpb25CDgoMX3RyYW5zcG9uZGVyQhEKD19hZG1pbmlzdHJhdGl2ZUIOCgxfb3JpZW50YXRpb25CDQoLX25hdmlnYXRpb25CCAoGX3Bvd2VyQgoKCF9jYXB0dXJlQgcKBV9nbnNzQgsKCV90YXNrYWJsZUIJCgdfZGV2aWNlQgkKB19jb25maWdCDwoNX2NvbmZpZ3VyYWJsZUIKCghfbWlzc2lvbkIHCgVfbGlua0IJCgdfbWV0cmljQgkKB19zZW5zb3JCDgoMX2xvY2FsX3NoYXBlQgcKBV9wb3NlQhEKD190YXNrX2V4ZWN1dGlvbkIQCg5faW50ZXJhY3Rpdml0eUILCglfYXJ0aWZhY3RCDgoMX3RhcmdldF9wb3NlQgcKBV9jaGF0QgsKCV9hc3NlbWJseUoECAgQCUoECAkQCkoECAoQCyJgCgpDb250cm9sbGVyEg8KAmlkGAEgASgJSACIAQESEQoEbm9kZRgCIAEoCUgBiAEBEhMKBm9yaWdpbhgDIAEoCUgCiAEBQgUKA19pZEIHCgVfbm9kZUIJCgdfb3JpZ2luIlkKBUxlYXNlEhIKCmNvbnRyb2xsZXIYASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyKvAgoITGlmZXRpbWUSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgV1bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIuCgVmcmVzaBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIzCgpjb21wb25lbnRzGAQgAygLMh8ud29ybGQuTGlmZXRpbWUuQ29tcG9uZW50c0VudHJ5GkIKD0NvbXBvbmVudHNFbnRyeRILCgNrZXkYASABKAUSHgoFdmFsdWUYAiABKAsyDy53b3JsZC5MaWZldGltZToCOAFCBwoFX2Zyb21CCAoGX3VudGlsQggKBl9mcmVzaCIXCgdDaGFubmVsEgwKBG5hbWUYASABKAkiKwoHUm91dGluZxIgCghjaGFubmVscxgBIAMoCzIOLndvcmxkLkNoYW5uZWwinwEKE0dlb1NwYXRpYWxDb21wb25lbnQSEQoJbG9uZ2l0dWRlGAEgASgBEhAKCGxhdGl0dWRlGAIgASgBEhUKCGFsdGl0dWRlGAMgASgBSACIAQESMAoKY292YXJpYW5jZRgEIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhIAYgBAUILCglfYWx0aXR1ZGVCDQoLX2NvdmFyaWFuY2UihQIKDUduc3NDb21wb25lbnQSKQoIZml4X3R5cGUYASABKA4yEi53b3JsZC5HbnNzRml4VHlwZUgAiAEBEh8KEnNhdGVsbGl0ZXNfdmlzaWJsZRgCIAEoDUgBiAEBEhwKD3NhdGVsbGl0ZXNfdXNlZBgDIAEoDUgCiAEBEhEKBGhkb3AYBCABKAJIA4gBARIRCgR2ZG9wGAUgASgCSASIAQESEQoEcGRvcBgGIAEoAkgFiAEBQgsKCV9maXhfdHlwZUIVChNfc2F0ZWxsaXRlc192aXNpYmxlQhIKEF9zYXRlbGxpdGVzX3VzZWRCBwoFX2hkb3BCBwoFX3Zkb3BCBwoFX3Bkb3AiJgoPU3ltYm9sQ29tcG9uZW50EhMKC21pbFN0ZDI1MjVDGAEgASgJImIKFkludGVyYWN0aXZpdHlDb21wb25lbnQSEQoEaWNvbhgBIAEoCUgAiAEBEhoKDXJlZmVyZW5jZV91cmwYAyABKAlIAYgBAUIHCgVfaWNvbkIQCg5fcmVmZXJlbmNlX3VybCLKAQoLTWVkaWFTdHJlYW0SDQoFbGFiZWwYASABKAkSCwoDdXJsGAIgASgJEiwKCHByb3RvY29sGAMgASgOMhoud29ybGQuTWVkaWFTdHJlYW1Qcm90b2NvbBIkCgRyb2xlGAkgASgOMhYud29ybGQuTWVkaWFTdHJlYW1Sb2xlEg0KBWNvZGVjGAogASgJEhIKBXdpZHRoGAsgASgFSACIAQESEwoGaGVpZ2h0GAwgASgFSAGIAQFCCAoGX3dpZHRoQgkKB19oZWlnaHQijgIKD0NhbWVyYUNvbXBvbmVudBIjCgdzdHJlYW1zGAEgAygLMhIud29ybGQuTWVkaWFTdHJlYW0SGAoLZm9jYWxfcG9pbnQYAiABKAlIAIgBARIQCgNmb3YYAyABKAFIAYgBARIWCglyYW5nZV9taW4YBCABKAFIAogBARIWCglyYW5nZV9tYXgYBSABKAFIA4gBARIVCghmb3Zfd2lkZRgGIAEoAUgEiAEBEhUKCGZvdl90ZWxlGAcgASgBSAWIAQFCDgoMX2ZvY2FsX3BvaW50QgYKBF9mb3ZCDAoKX3JhbmdlX21pbkIMCgpfcmFuZ2VfbWF4QgsKCV9mb3Zfd2lkZUILCglfZm92X3RlbGUiHwoQQXJ0aWZhY3RMb2NhdGlvbhILCgN1cmwYASABKAkiqAEKEUFydGlmYWN0Q29tcG9uZW50EgoKAmlkGAEgASgJEhQKDGNvbnRlbnRfdHlwZRgCIAEoCRIpCghsb2NhdGlvbhgDIAMoCzIXLndvcmxkLkFydGlmYWN0TG9jYXRpb24SFwoKc2l6ZV9ieXRlcxgEIAEoA0gAiAEBEhMKBnNoYTI1NhgFIAEoCUgBiAEBQg0KC19zaXplX2J5dGVzQgkKB19zaGEyNTYi0gEKEkRldGVjdGlvbkNvbXBvbmVudBIdChBkZXRlY3RvckVudGl0eUlkGAEgASgJSACIAQESGwoOY2xhc3NpZmljYXRpb24YAiABKAlIAYgBARI1CgxsYXN0TWVhc3VyZWQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEAoIZXZpZGVuY2UYBCADKAlCEwoRX2RldGVjdG9yRW50aXR5SWRCEQoPX2NsYXNzaWZpY2F0aW9uQg8KDV9sYXN0TWVhc3VyZWQiWgoQQmVhcmluZ0NvbXBvbmVudBIUCgdhemltdXRoGAEgASgBSACIAQESFgoJZWxldmF0aW9uGAIgASgBSAGIAQFCCgoIX2F6aW11dGhCDAoKX2VsZXZhdGlvbiIjCg9TZW5zb3JDb21wb25lbnQSEAoIY292ZXJhZ2UYAiADKAkiOAoKUXVhdGVybmlvbhIJCgF4GAEgASgBEgkKAXkYAiABKAESCQoBehgDIAEoARIJCgF3GAQgASgBIq4BChBDb3ZhcmlhbmNlTWF0cml4EhAKA214eBgBIAEoAUgAiAEBEhAKA214eRgCIAEoAUgBiAEBEhAKA214ehgDIAEoAUgCiAEBEhAKA215eRgEIAEoAUgDiAEBEhAKA215ehgFIAEoAUgEiAEBEhAKA216ehgGIAEoAUgFiAEBQgYKBF9teHhCBgoEX214eUIGCgRfbXh6QgYKBF9teXlCBgoEX215ekIGCgRfbXp6IswBCg9DYXJ0ZXNpYW5PZmZzZXQSDgoGZWFzdF9tGAEgASgBEg8KB25vcnRoX20YAiABKAESEQoEdXBfbRgDIAEoAUgAiAEBEjAKCmNvdmFyaWFuY2UYBCABKAsyFy53b3JsZC5Db3ZhcmlhbmNlTWF0cml4SAGIAQESKwoLb3JpZW50YXRpb24YBSABKAsyES53b3JsZC5RdWF0ZXJuaW9uSAKIAQFCBwoFX3VwX21CDQoLX2NvdmFyaWFuY2VCDgoMX29yaWVudGF0aW9uIoIDCgtQb2xhck9mZnNldBIPCgdhemltdXRoGAEgASgBEhYKCWVsZXZhdGlvbhgCIAEoAUgAiAEBEhIKBXJhbmdlGAMgASgBSAGIAQESNAoKY292YXJpYW5jZRgEIAEoCzIXLndvcmxkLkNvdmFyaWFuY2VNYXRyaXhCAhgBSAKIAQESHgoRYXppbXV0aF9lcnJvcl9kZWcYCiABKAFIA4gBARIgChNlbGV2YXRpb25fZXJyb3JfZGVnGAsgASgBSASIAQESGgoNcmFuZ2VfZXJyb3JfbRgMIAEoAUgFiAEBEisKC29yaWVudGF0aW9uGAUgASgLMhEud29ybGQuUXVhdGVybmlvbkgGiAEBQgwKCl9lbGV2YXRpb25CCAoGX3JhbmdlQg0KC19jb3ZhcmlhbmNlQhQKEl9hemltdXRoX2Vycm9yX2RlZ0IWChRfZWxldmF0aW9uX2Vycm9yX2RlZ0IQCg5fcmFuZ2VfZXJyb3JfbUIOCgxfb3JpZW50YXRpb24iewoNUG9zZUNvbXBvbmVudBIOCgZwYXJlbnQYASABKAkSKwoJY2FydGVzaWFuGAIgASgLMhYud29ybGQuQ2FydGVzaWFuT2Zmc2V0SAASIwoFcG9sYXIYAyABKAsyEi53b3JsZC5Qb2xhck9mZnNldEgAQggKBm9mZnNldCJxChNUYXJnZXRQb3NlQ29tcG9uZW50EisKCWNhcnRlc2lhbhgBIAEoCzIWLndvcmxkLkNhcnRlc2lhbk9mZnNldEgAEiMKBXBvbGFyGAIgASgLMhIud29ybGQuUG9sYXJPZmZzZXRIAEIICgZvZmZzZXQiSgoPQW5ndWxhclZlbG9jaXR5EhEKCXJvbGxfcmF0ZRgBIAEoARISCgpwaXRjaF9yYXRlGAIgASgBEhAKCHlhd19yYXRlGAMgASgBIn8KFE9yaWVudGF0aW9uQ29tcG9uZW50EiYKC29yaWVudGF0aW9uGAEgASgLMhEud29ybGQuUXVhdGVybmlvbhIwCgpjb3ZhcmlhbmNlGAIgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEgAiAEBQg0KC19jb3ZhcmlhbmNlIpABCg5UcmFja0NvbXBvbmVudBIUCgd0cmFja2VyGAEgASgJSACIAQESFAoHaGlzdG9yeRgCIAEoCUgBiAEBEhcKCnByZWRpY3Rpb24YAyABKAlIAogBARISCgpkZXRlY3Rpb25zGAQgAygJQgoKCF90cmFja2VyQgoKCF9oaXN0b3J5Qg0KC19wcmVkaWN0aW9uIisKEExvY2F0b3JDb21wb25lbnQSFwoPbG9jYXRlZEVudGl0eUlkGAEgASgJIjUKD1Rhc2thYmxlQ29udGV4dBIVCghlbnRpdHlJZBgBIAEoCUgAiAEBQgsKCV9lbnRpdHlJZCI2ChBUYXNrYWJsZUFzc2lnbmVlEhUKCGVudGl0eUlkGAEgASgJSACIAQFCCwoJX2VudGl0eUlkIvUBChFUYXNrYWJsZUNvbXBvbmVudBIVCghyZXNlcnZlZBgBIAEoCUgAiAEBEhIKBWxhYmVsGAIgASgJSAGIAQESJwoHY29udGV4dBgDIAMoCzIWLndvcmxkLlRhc2thYmxlQ29udGV4dBIpCghhc3NpZ25lZRgEIAMoCzIXLndvcmxkLlRhc2thYmxlQXNzaWduZWUSJwoGc2NoZW1hGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIhCgRtb2RlGAYgASgOMhMud29ybGQuVGFza2FibGVNb2RlQgsKCV9yZXNlcnZlZEIICgZfbGFiZWwi1QEKFlRhc2tFeGVjdXRpb25Db21wb25lbnQSDAoEdGFzaxgBIAEoCRIwCgpwYXJhbWV0ZXJzGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEigKBXN0YXRlGAMgASgOMhkud29ybGQuVGFza0V4ZWN1dGlvblN0YXRlEhMKBnJlYXNvbhgEIAEoCUgBiAEBEhUKCHByaW9yaXR5GAUgASgNSAKIAQFCDQoLX3BhcmFtZXRlcnNCCQoHX3JlYXNvbkILCglfcHJpb3JpdHkiogEKDUtpbmVtYXRpY3NFbnUSEQoEZWFzdBgBIAEoAUgAiAEBEhIKBW5vcnRoGAIgASgBSAGIAQESDwoCdXAYAyABKAFIAogBARIwCgpjb3ZhcmlhbmNlGAQgASgLMhcud29ybGQuQ292YXJpYW5jZU1hdHJpeEgDiAEBQgcKBV9lYXN0QggKBl9ub3J0aEIFCgNfdXBCDQoLX2NvdmFyaWFuY2Ui7wEKE0tpbmVtYXRpY3NDb21wb25lbnQSLgoLdmVsb2NpdHlFbnUYASABKAsyFC53b3JsZC5LaW5lbWF0aWNzRW51SACIAQESMgoPYWNjZWxlcmF0aW9uRW51GAIgASgLMhQud29ybGQuS2luZW1hdGljc0VudUgBiAEBEjgKE2FuZ3VsYXJWZWxvY2l0eUJvZHkYAyABKAsyFi53b3JsZC5Bbmd1bGFyVmVsb2NpdHlIAogBAUIOCgxfdmVsb2NpdHlFbnVCEgoQX2FjY2VsZXJhdGlvbkVudUIWChRfYW5ndWxhclZlbG9jaXR5Qm9keSJCCghHZW9tZXRyeRIPCgN3a2IYASABKAxCAhgBEiUKBnBsYW5hchgCIAEoCzIVLndvcmxkLlBsYW5hckdlb21ldHJ5IkgKEUdlb1NoYXBlQ29tcG9uZW50EiYKCGdlb21ldHJ5GAEgASgLMg8ud29ybGQuR2VvbWV0cnlIAIgBAUILCglfZ2VvbWV0cnkiZAoTTG9jYWxTaGFwZUNvbXBvbmVudBITCgtyZWxhdGl2ZV90bxgCIAEoCRIrCghnZW9tZXRyeRgBIAEoCzIULndvcmxkLkxvY2FsR2VvbWV0cnlIAIgBAUILCglfZ2VvbWV0cnkiqAEKF0NsYXNzaWZpY2F0aW9uQ29tcG9uZW50EjwKCWRpbWVuc2lvbhgBIAEoDjIkLndvcmxkLkNsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uSACIAQESNAoIaWRlbnRpdHkYAiABKA4yHS53b3JsZC5DbGFzc2lmaWNhdGlvbklkZW50aXR5SAGIAQFCDAoKX2RpbWVuc2lvbkILCglfaWRlbnRpdHkilAEKDlRyYW5zcG9uZGVyQUlTEhEKBG1tc2kYASABKA1IAIgBARIQCgNpbW8YAiABKA1IAYgBARIVCghjYWxsc2lnbhgDIAEoCUgCiAEBEhgKC3Zlc3NlbF9uYW1lGAQgASgJSAOIAQFCBwoFX21tc2lCBgoEX2ltb0ILCglfY2FsbHNpZ25CDgoMX3Zlc3NlbF9uYW1lImMKD1RyYW5zcG9uZGVyQURTQhIZCgxpY2FvX2FkZHJlc3MYASABKA1IAIgBARIWCglmbGlnaHRfaWQYAiABKAlIAYgBAUIPCg1faWNhb19hZGRyZXNzQgwKCl9mbGlnaHRfaWQiewoUVHJhbnNwb25kZXJDb21wb25lbnQSJwoDYWlzGAEgASgLMhUud29ybGQuVHJhbnNwb25kZXJBSVNIAIgBARIpCgRhZHNiGAIgASgLMhYud29ybGQuVHJhbnNwb25kZXJBRFNCSAGIAQFCBgoEX2Fpc0IHCgVfYWRzYiKhAwoXQWRtaW5pc3RyYXRpdmVDb21wb25lbnQSDwoCaWQYASABKAlIAIgBARIRCgRmbGFnGAIgASgJSAGIAQESEgoFb3duZXIYAyABKAlIAogBARIZCgxtYW51ZmFjdHVyZXIYBCABKAlIA4gBARISCgVtb2RlbBgFIAEoCUgEiAEBEhcKCnllYXJfYnVpbHQYBiABKA1IBYgBARIVCghsZW5ndGhfbRgHIAEoAkgGiAEBEhQKB3dpZHRoX20YCiABKAJIB4gBARIVCghoZWlnaHRfbRgLIAEoAkgIiAEBEhcKCnRvbm5hZ2VfZ3QYCCABKAJICYgBARIcCg9lbmdpbmVfcG93ZXJfa3cYCSABKAJICogBAUIFCgNfaWRCBwoFX2ZsYWdCCAoGX293bmVyQg8KDV9tYW51ZmFjdHVyZXJCCAoGX21vZGVsQg0KC195ZWFyX2J1aWx0QgsKCV9sZW5ndGhfbUIKCghfd2lkdGhfbUILCglfaGVpZ2h0X21CDQoLX3Rvbm5hZ2VfZ3RCEgoQX2VuZ2luZV9wb3dlcl9rdyLwAQoTTmF2aWdhdGlvbkNvbXBvbmVudBIoCgRtb2RlGAEgASgOMhUud29ybGQuTmF2aWdhdGlvbk1vZGVIAIgBARISCgVhcm1lZBgCIAEoCEgBiAEBEhYKCWVtZXJnZW5jeRgDIAEoCEgCiAEBEh0KEHdheXBvaW50X2N1cnJlbnQYBCABKA1IA4gBARIbCg53YXlwb2ludF90b3RhbBgFIAEoDUgEiAEBQgcKBV9tb2RlQggKBl9hcm1lZEIMCgpfZW1lcmdlbmN5QhMKEV93YXlwb2ludF9jdXJyZW50QhEKD193YXlwb2ludF90b3RhbCKtAQoQTWlzc2lvbkNvbXBvbmVudBIPCgdtZW1iZXJzGAEgAygJEhgKC2Rlc2NyaXB0aW9uGAIgASgJSACIAQESGAoLZGVzdGluYXRpb24YAyABKAlIAYgBARIsCgNldGEYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQg4KDF9kZXN0aW5hdGlvbkIGCgRfZXRhIqwECg1MaW5rQ29tcG9uZW50EiYKBnN0YXR1cxgBIAEoDjIRLndvcmxkLkxpbmtTdGF0dXNIAIgBARIVCghyc3NpX2RibRgCIAEoEUgBiAEBEhMKBnNucl9kYhgDIAEoEUgCiAEBEhAKA3ZpYRgFIAEoCUgDiAEBEhwKD2xhc3RfbGF0ZW5jeV9tcxgGIAEoDUgEiAEBEhsKDmF2Z19sYXRlbmN5X21zGAcgASgNSAWIAQESMgoJbGFzdF9zZWVuGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBEiEKFGxpbmtfcXVhbGl0eV9wZXJjZW50GAkgASgNSAeIAQESGAoLdHhfcG93ZXJfbXcYCiABKA1ICIgBARIbCg5hY3RpdmVfYW50ZW5uYRgLIAEoDUgJiAEBEhQKB3JmX21vZGUYDCABKAlICogBARIbCg5wYWNrZXRfcmF0ZV9oehgNIAEoDUgLiAEBQgkKB19zdGF0dXNCCwoJX3Jzc2lfZGJtQgkKB19zbnJfZGJCBgoEX3ZpYUISChBfbGFzdF9sYXRlbmN5X21zQhEKD19hdmdfbGF0ZW5jeV9tc0IMCgpfbGFzdF9zZWVuQhcKFV9saW5rX3F1YWxpdHlfcGVyY2VudEIOCgxfdHhfcG93ZXJfbXdCEQoPX2FjdGl2ZV9hbnRlbm5hQgoKCF9yZl9tb2RlQhEKD19wYWNrZXRfcmF0ZV9oeiL9AQoQQ2FwdHVyZUNvbXBvbmVudBIUCgdwYXlsb2FkGAEgASgMSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgDIAEoCUgCiAEBEhgKC2NhcHR1cmVkX2J5GAQgASgJSAOIAQESNAoLY2FwdHVyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESDwoHY29udGVudBgGIAMoCUIKCghfcGF5bG9hZEIHCgVfcG9ydEIPCg1fY29udGVudF90eXBlQg4KDF9jYXB0dXJlZF9ieUIOCgxfY2FwdHVyZWRfYXQiiAIKDlBvd2VyQ29tcG9uZW50EiUKGGJhdHRlcnlfY2hhcmdlX3JlbWFpbmluZxgBIAEoAkgAiAEBEhQKB3ZvbHRhZ2UYAiABKAJIAYgBARIeChFyZW1haW5pbmdfc2Vjb25kcxgDIAEoDUgCiAEBEhYKCWN1cnJlbnRfYRgEIAEoAkgDiAEBEh4KEWNhcGFjaXR5X3VzZWRfbWFoGAUgASgCSASIAQFCGwoZX2JhdHRlcnlfY2hhcmdlX3JlbWFpbmluZ0IKCghfdm9sdGFnZUIUChJfcmVtYWluaW5nX3NlY29uZHNCDAoKX2N1cnJlbnRfYUIUChJfY2FwYWNpdHlfdXNlZF9tYWgiMQoRRGV2aWNlQ2xhc3NPcHRpb24SDQoFY2xhc3MYASABKAkSDQoFbGFiZWwYAiABKAki6gIKFUNvbmZpZ3VyYWJsZUNvbXBvbmVudBInCgZzY2hlbWEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgVzdGF0ZRgDIAEoDjIYLndvcmxkLkNvbmZpZ3VyYWJsZVN0YXRlEhIKBWVycm9yGAQgASgJSACIAQESEgoFbGFiZWwYBSABKAlIAYgBARIXCg9hcHBsaWVkX3ZlcnNpb24YBiABKAQSOgoYc3VwcG9ydGVkX2RldmljZV9jbGFzc2VzGAcgAygLMhgud29ybGQuRGV2aWNlQ2xhc3NPcHRpb24SNQoMc2NoZWR1bGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQggKBl9lcnJvckIICgZfbGFiZWxCDwoNX3NjaGVkdWxlZF9hdCKUBQoPRGV2aWNlQ29tcG9uZW50EhMKBnBhcmVudBgBIAEoCUgAiAEBEhMKC2NvbXBvc2l0aW9uGAIgAygJEh8KEnVuaXF1ZV9oYXJkd2FyZV9pZBgEIAEoCUgBiAEBEiEKBXN0YXRlGAYgASgOMhIud29ybGQuRGV2aWNlU3RhdGUSEgoFZXJyb3IYByABKAlIAogBARISCgVjbGFzcxgKIAEoCUgDiAEBEhUKCGNhdGVnb3J5GA0gASgJSASIAQESJAoEbm9kZRgUIAEoCzIRLndvcmxkLk5vZGVEZXZpY2VIBYgBARIiCgN1c2IYFSABKAsyEC53b3JsZC5Vc2JEZXZpY2VIBogBARIgCgJpcBgWIAEoCzIPLndvcmxkLklwRGV2aWNlSAeIAQESKAoGc2VyaWFsGBcgASgLMhMud29ybGQuU2VyaWFsRGV2aWNlSAiIAQESLAoIZXRoZXJuZXQYGCABKAsyFS53b3JsZC5FdGhlcm5ldERldmljZUgJiAEBEiYKBWxwd2FuGBkgASgLMhIud29ybGQuTFBXQU5EZXZpY2VICogBARIwCgptZXNodGFzdGljGBogASgLMhcud29ybGQuTWVzaHRhc3RpY0RldmljZUgLiAEBEiIKA2JsZRgbIAEoCzIQLndvcmxkLkJsZURldmljZUgMiAEBQgkKB19wYXJlbnRCFQoTX3VuaXF1ZV9oYXJkd2FyZV9pZEIICgZfZXJyb3JCCAoGX2NsYXNzQgsKCV9jYXRlZ29yeUIHCgVfbm9kZUIGCgRfdXNiQgUKA19pcEIJCgdfc2VyaWFsQgsKCV9ldGhlcm5ldEIICgZfbHB3YW5CDQoLX21lc2h0YXN0aWNCBgoEX2JsZSJtCgpNaXNzaW9uS2l0Ei8KB2xheW91dHMYASADKAsyHi53b3JsZC5NaXNzaW9uS2l0LkxheW91dHNFbnRyeRouCgxMYXlvdXRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLdAgoKTm9kZURldmljZRIVCghob3N0bmFtZRgBIAEoCUgAiAEBEg8KAm9zGAIgASgJSAGIAQESEQoEYXJjaBgDIAEoCUgCiAEBEhQKB251bV9jcHUYBCABKA1IA4gBARIXCgpvc192ZXJzaW9uGAUgASgJSASIAQESGwoOaHlkcmlzX3ZlcnNpb24YBiABKAlIBYgBARIkChdoeWRyaXNfdXBkYXRlX2F2YWlsYWJsZRgHIAEoCUgGiAEBEisKC21pc3Npb25fa2l0GAggASgLMhEud29ybGQuTWlzc2lvbktpdEgHiAEBQgsKCV9ob3N0bmFtZUIFCgNfb3NCBwoFX2FyY2hCCgoIX251bV9jcHVCDQoLX29zX3ZlcnNpb25CEQoPX2h5ZHJpc192ZXJzaW9uQhoKGF9oeWRyaXNfdXBkYXRlX2F2YWlsYWJsZUIOCgxfbWlzc2lvbl9raXQi+QIKCVVzYkRldmljZRIWCgl2ZW5kb3JfaWQYASABKA1IAIgBARIXCgpwcm9kdWN0X2lkGAIgASgNSAGIAQESGQoMZGV2aWNlX2NsYXNzGAMgASgNSAKIAQESHAoPZGV2aWNlX3N1YmNsYXNzGAQgASgNSAOIAQESHAoPZGV2aWNlX3Byb3RvY29sGAUgASgNSASIAQESHgoRbWFudWZhY3R1cmVyX25hbWUYBiABKAlIBYgBARIZCgxwcm9kdWN0X25hbWUYByABKAlIBogBARIaCg1zZXJpYWxfbnVtYmVyGAggASgJSAeIAQFCDAoKX3ZlbmRvcl9pZEINCgtfcHJvZHVjdF9pZEIPCg1fZGV2aWNlX2NsYXNzQhIKEF9kZXZpY2Vfc3ViY2xhc3NCEgoQX2RldmljZV9wcm90b2NvbEIUChJfbWFudWZhY3R1cmVyX25hbWVCDwoNX3Byb2R1Y3RfbmFtZUIQCg5fc2VyaWFsX251bWJlciJCCghJcERldmljZRIRCgRob3N0GAEgASgJSACIAQESEQoEcG9ydBgCIAEoDUgBiAEBQgcKBV9ob3N0QgcKBV9wb3J0IloKDkV0aGVybmV0RGV2aWNlEhgKC21hY19hZGRyZXNzGAEgASgJSACIAQESEwoGdmVuZG9yGAIgASgJSAGIAQFCDgoMX21hY19hZGRyZXNzQgkKB192ZW5kb3IiUAoMU2VyaWFsRGV2aWNlEhEKBHBhdGgYASABKAlIAIgBARIWCgliYXVkX3JhdGUYAiABKA1IAYgBAUIHCgVfcGF0aEIMCgpfYmF1ZF9yYXRlItwBChBNZXNodGFzdGljRGV2aWNlEhUKCG5vZGVfbnVtGAEgASgNSACIAQESFgoJbG9uZ19uYW1lGAIgASgJSAGIAQESFwoKc2hvcnRfbmFtZRgDIAEoCUgCiAEBEhsKDmhhcmR3YXJlX21vZGVsGAQgASgJSAOIAQESFwoKcHVibGljX2tleRgFIAEoDEgEiAEBQgsKCV9ub2RlX251bUIMCgpfbG9uZ19uYW1lQg0KC19zaG9ydF9uYW1lQhEKD19oYXJkd2FyZV9tb2RlbEINCgtfcHVibGljX2tleSJJCgtMUFdBTkRldmljZRIQCgNldWkYASABKAlIAIgBARIUCgdhZGRyZXNzGAIgASgJSAGIAQFCBgoEX2V1aUIKCghfYWRkcmVzcyJgCglCbGVEZXZpY2USFAoHYWRkcmVzcxgBIAEoCUgAiAEBEhEKBG5hbWUYAiABKAlIAYgBARIVCg1zZXJ2aWNlX3V1aWRzGAQgAygJQgoKCF9hZGRyZXNzQgcKBV9uYW1lIlEKFkNvbmZpZ3VyYXRpb25Db21wb25lbnQSJgoFdmFsdWUYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3ZlcnNpb24YBSABKAQioAEKDUNoYXRDb21wb25lbnQSEwoGc2VuZGVyGAEgASgJSACIAQESDwoCdG8YAyABKAlIAYgBARIPCgdtZXNzYWdlGAQgASgJEhUKCHJlcGx5X3RvGAUgASgJSAKIAQESFQoIcmVhY3Rpb24YBiABKAhIA4gBAUIJCgdfc2VuZGVyQgUKA190b0ILCglfcmVwbHlfdG9CCwoJX3JlYWN0aW9uIkQKEUFzc2VtYmx5Q29tcG9uZW50EhMKBnBhcmVudBgBIAEoCUgAiAEBEg8KB291dGxpbmUYAiADKAlCCQoHX3BhcmVudCLVBAoMRW50aXR5RmlsdGVyEg8KAmlkGAEgASgJSACIAQESEgoFbGFiZWwYAiABKAlIAYgBARIiCgNnZW8YAyABKAsyEC53b3JsZC5HZW9GaWx0ZXJIAogBARIsCgh0YXNrYWJsZRgEIAEoCzIVLndvcmxkLlRhc2thYmxlRmlsdGVySAOIAQESEQoJY29tcG9uZW50GAUgAygNEjAKCmNvbnRyb2xsZXIYByABKAsyFy53b3JsZC5Db250cm9sbGVyRmlsdGVySASIAQESJgoFdHJhY2sYCCABKAsyEi53b3JsZC5UcmFja0ZpbHRlckgFiAEBEioKB21pc3Npb24YCSABKAsyFC53b3JsZC5NaXNzaW9uRmlsdGVySAaIAQESKgoHY2hhbm5lbBgKIAEoCzIULndvcmxkLkNoYW5uZWxGaWx0ZXJIB4gBARIoCgZkZXZpY2UYMiABKAsyEy53b3JsZC5EZXZpY2VGaWx0ZXJICIgBARIvCgZjb25maWcYMyABKAsyGi53b3JsZC5Db25maWd1cmF0aW9uRmlsdGVySAmIAQESHwoCb3IYZCADKAsyEy53b3JsZC5FbnRpdHlGaWx0ZXISIAoDbm90GGUgASgLMhMud29ybGQuRW50aXR5RmlsdGVyQgUKA19pZEIICgZfbGFiZWxCBgoEX2dlb0ILCglfdGFza2FibGVCDQoLX2NvbnRyb2xsZXJCCAoGX3RyYWNrQgoKCF9taXNzaW9uQgoKCF9jaGFubmVsQgkKB19kZXZpY2VCCQoHX2NvbmZpZyIqChBDb250cm9sbGVyRmlsdGVyEg8KAmlkGAEgASgJSACIAQFCBQoDX2lkIi8KC1RyYWNrRmlsdGVyEhQKB3RyYWNrZXIYASABKAlIAIgBAUIKCghfdHJhY2tlciJdCg1NaXNzaW9uRmlsdGVyEhcKCm1pc3Npb25faWQYASABKAlIAIgBARIWCgltZW1iZXJfaWQYAiABKAlIAYgBAUINCgtfbWlzc2lvbl9pZEIMCgpfbWVtYmVyX2lkIocBCg5UYXNrYWJsZUZpbHRlchIsCgdjb250ZXh0GAEgASgLMhYud29ybGQuVGFza2FibGVDb250ZXh0SACIAQESLgoIYXNzaWduZWUYAiABKAsyFy53b3JsZC5UYXNrYWJsZUFzc2lnbmVlSAGIAQFCCgoIX2NvbnRleHRCCwoJX2Fzc2lnbmVlIk4KCUdlb0ZpbHRlchIjCghnZW9tZXRyeRgBIAEoCzIPLndvcmxkLkdlb21ldHJ5SAASFQoLZ2VvRW50aXR5SWQYAiABKAlIAEIFCgNnZW8i9gEKDERldmljZUZpbHRlchITCgZwYXJlbnQYASABKAlIAIgBARIfChJ1bmlxdWVfaGFyZHdhcmVfaWQYBCABKAlIAYgBARIZCgxkZXZpY2VfY2xhc3MYBSABKAlIAogBARIoCgNibGUYBiABKAsyFi53b3JsZC5CbGVEZXZpY2VGaWx0ZXJIA4gBARIoCgN1c2IYByABKAsyFi53b3JsZC5Vc2JEZXZpY2VGaWx0ZXJIBIgBAUIJCgdfcGFyZW50QhUKE191bmlxdWVfaGFyZHdhcmVfaWRCDwoNX2RldmljZV9jbGFzc0IGCgRfYmxlQgYKBF91c2IiZgoPQmxlRGV2aWNlRmlsdGVyEhQKB2FkZHJlc3MYASABKAlIAIgBARIRCgRuYW1lGAIgASgJSAGIAQESFQoNc2VydmljZV91dWlkcxgEIAMoCUIKCghfYWRkcmVzc0IHCgVfbmFtZSL/AgoPVXNiRGV2aWNlRmlsdGVyEhYKCXZlbmRvcl9pZBgBIAEoDUgAiAEBEhcKCnByb2R1Y3RfaWQYAiABKA1IAYgBARIZCgxkZXZpY2VfY2xhc3MYAyABKA1IAogBARIcCg9kZXZpY2Vfc3ViY2xhc3MYBCABKA1IA4gBARIcCg9kZXZpY2VfcHJvdG9jb2wYBSABKA1IBIgBARIeChFtYW51ZmFjdHVyZXJfbmFtZRgGIAEoCUgFiAEBEhkKDHByb2R1Y3RfbmFtZRgHIAEoCUgGiAEBEhoKDXNlcmlhbF9udW1iZXIYCCABKAlIB4gBAUIMCgpfdmVuZG9yX2lkQg0KC19wcm9kdWN0X2lkQg8KDV9kZXZpY2VfY2xhc3NCEgoQX2RldmljZV9zdWJjbGFzc0ISChBfZGV2aWNlX3Byb3RvY29sQhQKEl9tYW51ZmFjdHVyZXJfbmFtZUIPCg1fcHJvZHVjdF9uYW1lQhAKDl9zZXJpYWxfbnVtYmVyIhUKE0NvbmZpZ3VyYXRpb25GaWx0ZXIiHQoNQ2hhbm5lbEZpbHRlchIMCgRuYW1lGAEgASgJIrQBCg1XYXRjaEJlaGF2aW9yEhgKC21heF9yYXRlX2h6GAEgASgCSACIAQESKgoMbWluX3ByaW9yaXR5GAMgASgOMg8ud29ybGQuUHJpb3JpdHlIAYgBARIiChVrZWVwYWxpdmVfaW50ZXJ2YWxfbXMYBCABKA1IAogBAUIOCgxfbWF4X3JhdGVfaHpCDwoNX21pbl9wcmlvcml0eUIYChZfa2VlcGFsaXZlX2ludGVydmFsX21zInwKE0xpc3RFbnRpdGllc1JlcXVlc3QSIwoGZmlsdGVyGAIgASgLMhMud29ybGQuRW50aXR5RmlsdGVyEiwKCWJlaGF2aW91chgEIAEoCzIULndvcmxkLldhdGNoQmVoYXZpb3JIAIgBAUIMCgpfYmVoYXZpb3VySgQIARACIjcKFExpc3RFbnRpdGllc1Jlc3BvbnNlEh8KCGVudGl0aWVzGAEgAygLMg0ud29ybGQuRW50aXR5IloKE0VudGl0eUNoYW5nZVJlcXVlc3QSHgoHY2hhbmdlcxgBIAMoCzINLndvcmxkLkVudGl0eRIjCgxyZXBsYWNlbWVudHMYAiADKAsyDS53b3JsZC5FbnRpdHkiIQoTRXhwaXJlRW50aXR5UmVxdWVzdBIKCgJpZBgBIAEoCSIWChRFeHBpcmVFbnRpdHlSZXNwb25zZSI3ChRFbnRpdHlDaGFuZ2VSZXNwb25zZRIQCghhY2NlcHRlZBgBIAEoCBINCgVkZWJ1ZxgCIAEoCSJSChFFbnRpdHlDaGFuZ2VFdmVudBIdCgZlbnRpdHkYASABKAsyDS53b3JsZC5FbnRpdHkSHgoBdBgCIAEoDjITLndvcmxkLkVudGl0eUNoYW5nZSI9ChFFbnRpdHlDaGFuZ2VCYXRjaBIoCgZldmVudHMYASADKAsyGC53b3JsZC5FbnRpdHlDaGFuZ2VFdmVudCIeChBHZXRFbnRpdHlSZXF1ZXN0EgoKAmlkGAEgASgJIjIKEUdldEVudGl0eVJlc3BvbnNlEh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eSIVChNHZXRMb2NhbE5vZGVSZXF1ZXN0IkYKFEdldExvY2FsTm9kZVJlc3BvbnNlEh0KBmVudGl0eRgBIAEoCzINLndvcmxkLkVudGl0eRIPCgdub2RlX2lkGAIgASgJIhEKD09ic2VydmVyUmVxdWVzdCJzCg1PYnNlcnZlclN0YXRlEhwKA2dlbxgBIAEoCzIPLndvcmxkLkdlb21ldHJ5EjQKC3ZpZXdIaXN0b3J5GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg4KDF92aWV3SGlzdG9yeSJGCg5SdW5UYXNrUmVxdWVzdBIQCghlbnRpdHlJZBgBIAEoCRIVCghwcmlvcml0eRgCIAEoDUgAiAEBQgsKCV9wcmlvcml0eSKDAQoPUnVuVGFza1Jlc3BvbnNlEhMKC2V4ZWN1dGlvbklkGAEgASgJEiEKBnN0YXR1cxgCIAEoDjIRLndvcmxkLlRhc2tTdGF0dXMSIAoTaHVtYW5SZWFkYWJsZVJlYXNvbhgDIAEoCUgAiAEBQhYKFF9odW1hblJlYWRhYmxlUmVhc29uIjoKEEhhcmRSZXNldFJlcXVlc3QSFwoKbWlzc2lvbl9pZBgBIAEoCUgAiAEBQg0KC19taXNzaW9uX2lkIhMKEUhhcmRSZXNldFJlc3BvbnNlKmIKCFByaW9yaXR5EhcKE1ByaW9yaXR5VW5zcGVjaWZpZWQQABITCg9Qcmlvcml0eVJvdXRpbmUQARIVChFQcmlvcml0eUltbWVkaWF0ZRACEhEKDVByaW9yaXR5Rmxhc2gQAyqPAQoLR25zc0ZpeFR5cGUSEwoPR25zc0ZpeFR5cGVOb25lEAASEQoNR25zc0ZpeFR5cGUyRBABEhEKDUduc3NGaXhUeXBlM0QQAhITCg9HbnNzRml4VHlwZURHUFMQAxIXChNHbnNzRml4VHlwZVJ0a0Zsb2F0EAQSFwoTR25zc0ZpeFR5cGVSdGtGaXhlZBAFKuwBChNNZWRpYVN0cmVhbVByb3RvY29sEiIKHk1lZGlhU3RyZWFtUHJvdG9jb2xVbnNwZWNpZmllZBAAEh0KGU1lZGlhU3RyZWFtUHJvdG9jb2xXZWJydGMQARIaChZNZWRpYVN0cmVhbVByb3RvY29sSGxzEAISHAoYTWVkaWFTdHJlYW1Qcm90b2NvbE1qcGVnEAMSHAoYTWVkaWFTdHJlYW1Qcm90b2NvbEltYWdlEAQSHQoZTWVkaWFTdHJlYW1Qcm90b2NvbElmcmFtZRAFEhsKF01lZGlhU3RyZWFtUHJvdG9jb2xSdHNwEAYqfwoPTWVkaWFTdHJlYW1Sb2xlEh4KGk1lZGlhU3RyZWFtUm9sZVVuc3BlY2lmaWVkEAASFwoTTWVkaWFTdHJlYW1Sb2xlTWFpbhABEhYKEk1lZGlhU3RyZWFtUm9sZVN1YhACEhsKF01lZGlhU3RyZWFtUm9sZVNuYXBzaG90EAMqegoMVGFza2FibGVNb2RlEhkKFVRhc2thYmxlTW9kZUV4Y2x1c2l2ZRAAEhkKFVRhc2thYmxlTW9kZVJlY29uY2lsZRABEhUKEVRhc2thYmxlTW9kZVNwYXduEAISHQoZVGFza2FibGVNb2RlUHJpb3JpdHlRdWV1ZRADKpEBChJUYXNrRXhlY3V0aW9uU3RhdGUSHQoZVGFza0V4ZWN1dGlvblN0YXRlUGVuZGluZxAAEh0KGVRhc2tFeGVjdXRpb25TdGF0ZVJ1bm5pbmcQARIfChtUYXNrRXhlY3V0aW9uU3RhdGVDb21wbGV0ZWQQAhIcChhUYXNrRXhlY3V0aW9uU3RhdGVGYWlsZWQQAyqMAgoWQ2xhc3NpZmljYXRpb25JZGVudGl0eRIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5SW52YWxpZBAAEiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlQZW5kaW5nEAESIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eVVua25vd24QAhIgChxDbGFzc2lmaWNhdGlvbklkZW50aXR5RnJpZW5kEAMSIQodQ2xhc3NpZmljYXRpb25JZGVudGl0eU5ldXRyYWwQBBIhCh1DbGFzc2lmaWNhdGlvbklkZW50aXR5SG9zdGlsZRAFEiEKHUNsYXNzaWZpY2F0aW9uSWRlbnRpdHlTdXNwZWN0EAYqxAIKHUNsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uEigKJENsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uSW52YWxpZBAAEigKJENsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uVW5rbm93bhABEiYKIkNsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uU3BhY2UQAhIkCiBDbGFzc2lmaWNhdGlvbkJhdHRsZURpbWVuc2lvbkFpchADEicKI0NsYXNzaWZpY2F0aW9uQmF0dGxlRGltZW5zaW9uR3JvdW5kEAQSKwonQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25TZWFTdXJmYWNlEAUSKwonQ2xhc3NpZmljYXRpb25CYXR0bGVEaW1lbnNpb25TdWJzdXJmYWNlEAYq9gEKDk5hdmlnYXRpb25Nb2RlEh0KGU5hdmlnYXRpb25Nb2RlVW5zcGVjaWZpZWQQABIZChVOYXZpZ2F0aW9uTW9kZVBsYW5uZWQQARIcChhOYXZpZ2F0aW9uTW9kZVN0YXRpb25hcnkQAhIaChZOYXZpZ2F0aW9uTW9kZVVuZGVyd2F5EAMSHAoYTmF2aWdhdGlvbk1vZGVBdXRvbm9tb3VzEAQSGAoUTmF2aWdhdGlvbk1vZGVHdWlkZWQQBRIbChdOYXZpZ2F0aW9uTW9kZUxvaXRlcmluZxAGEhsKF05hdmlnYXRpb25Nb2RlUmV0dXJuaW5nEAcqbAoKTGlua1N0YXR1cxIZChVMaW5rU3RhdHVzVW5zcGVjaWZpZWQQABIXChNMaW5rU3RhdHVzQ29ubmVjdGVkEAESFgoSTGlua1N0YXR1c0RlZ3JhZGVkEAISEgoOTGlua1N0YXR1c0xvc3QQAypTCgtEZXZpY2VTdGF0ZRIWChJEZXZpY2VTdGF0ZVBlbmRpbmcQABIVChFEZXZpY2VTdGF0ZUFjdGl2ZRABEhUKEURldmljZVN0YXRlRmFpbGVkEAIqygEKEUNvbmZpZ3VyYWJsZVN0YXRlEh0KGUNvbmZpZ3VyYWJsZVN0YXRlSW5hY3RpdmUQABIdChlDb25maWd1cmFibGVTdGF0ZVN0YXJ0aW5nEAESGwoXQ29uZmlndXJhYmxlU3RhdGVBY3RpdmUQAhIbChdDb25maWd1cmFibGVTdGF0ZUZhaWxlZBADEh0KGUNvbmZpZ3VyYWJsZVN0YXRlQ29uZmxpY3QQBBIeChpDb25maWd1cmFibGVTdGF0ZVNjaGVkdWxlZBAFKnUKDEVudGl0eUNoYW5nZRIXChNFbnRpdHlDaGFuZ2VJbnZhbGlkEAASFwoTRW50aXR5Q2hhbmdlVXBkYXRlZBABEhcKE0VudGl0eUNoYW5nZUV4cGlyZWQQAhIaChZFbnRpdHlDaGFuZ2VVbm9ic2VydmVkEAMq9QgKD0VudGl0eUNvbXBvbmVudBIeChpFbnRpdHlDb21wb25lbnRVbnNwZWNpZmllZBAAEhgKFEVudGl0eUNvbXBvbmVudExhYmVsEAISHQoZRW50aXR5Q29tcG9uZW50Q29udHJvbGxlchADEhsKF0VudGl0eUNvbXBvbmVudExpZmV0aW1lEAQSGwoXRW50aXR5Q29tcG9uZW50UHJpb3JpdHkQBRIYChRFbnRpdHlDb21wb25lbnRMZWFzZRAGEhoKFkVudGl0eUNvbXBvbmVudFJvdXRpbmcQBxIWChJFbnRpdHlDb21wb25lbnRHZW8QCxIZChVFbnRpdHlDb21wb25lbnRTeW1ib2wQDBIZChVFbnRpdHlDb21wb25lbnRDYW1lcmEQDxIcChhFbnRpdHlDb21wb25lbnREZXRlY3Rpb24QEBIaChZFbnRpdHlDb21wb25lbnRCZWFyaW5nEBESGAoURW50aXR5Q29tcG9uZW50VHJhY2sQFRIaChZFbnRpdHlDb21wb25lbnRMb2NhdG9yEBYSGwoXRW50aXR5Q29tcG9uZW50VGFza2FibGUQFxIdChlFbnRpdHlDb21wb25lbnRLaW5lbWF0aWNzEBgSGAoURW50aXR5Q29tcG9uZW50U2hhcGUQGRIhCh1FbnRpdHlDb21wb25lbnRDbGFzc2lmaWNhdGlvbhAaEh4KGkVudGl0eUNvbXBvbmVudFRyYW5zcG9uZGVyEBsSIQodRW50aXR5Q29tcG9uZW50QWRtaW5pc3RyYXRpdmUQHBIdChlFbnRpdHlDb21wb25lbnRMb2NhbFNoYXBlEB0SHgoaRW50aXR5Q29tcG9uZW50T3JpZW50YXRpb24QHhIaChZFbnRpdHlDb21wb25lbnRNaXNzaW9uEB8SFwoTRW50aXR5Q29tcG9uZW50TGluaxAgEhgKFEVudGl0eUNvbXBvbmVudFBvd2VyECESHQoZRW50aXR5Q29tcG9uZW50TmF2aWdhdGlvbhAiEhoKFkVudGl0eUNvbXBvbmVudENhcHR1cmUQIxIZChVFbnRpdHlDb21wb25lbnRNZXRyaWMQJBIZChVFbnRpdHlDb21wb25lbnRTZW5zb3IQJRIXChNFbnRpdHlDb21wb25lbnRQb3NlECYSFwoTRW50aXR5Q29tcG9uZW50Q2hhdBAnEiAKHEVudGl0eUNvbXBvbmVudFRhc2tFeGVjdXRpb24QKRIXChNFbnRpdHlDb21wb25lbnRHbnNzECoSGQoVRW50aXR5Q29tcG9uZW50RGV2aWNlEDISGQoVRW50aXR5Q29tcG9uZW50Q29uZmlnEDMSHwobRW50aXR5Q29tcG9uZW50Q29uZmlndXJhYmxlEDQSIAocRW50aXR5Q29tcG9uZW50SW50ZXJhY3Rpdml0eRA8EhsKF0VudGl0eUNvbXBvbmVudEFydGlmYWN0ED0SHQoZRW50aXR5Q29tcG9uZW50VGFyZ2V0UG9zZRA+KmkKClRhc2tTdGF0dXMSFQoRVGFza1N0YXR1c0ludmFsaWQQABIVChFUYXNrU3RhdHVzUnVubmluZxABEhcKE1Rhc2tTdGF0dXNDb21wbGV0ZWQQAhIUChBUYXNrU3RhdHVzRmFpbGVkEAMyrQQKDFdvcmxkU2VydmljZRJHCgxMaXN0RW50aXRpZXMSGi53b3JsZC5MaXN0RW50aXRpZXNSZXF1ZXN0Ghsud29ybGQuTGlzdEVudGl0aWVzUmVzcG9uc2USPgoJR2V0RW50aXR5Ehcud29ybGQuR2V0RW50aXR5UmVxdWVzdBoYLndvcmxkLkdldEVudGl0eVJlc3BvbnNlEkcKDVdhdGNoRW50aXRpZXMSGi53b3JsZC5MaXN0RW50aXRpZXNSZXF1ZXN0Ghgud29ybGQuRW50aXR5Q2hhbmdlRXZlbnQwARI/CgRQdXNoEhoud29ybGQuRW50aXR5Q2hhbmdlUmVxdWVzdBobLndvcmxkLkVudGl0eUNoYW5nZVJlc3BvbnNlEkcKDEV4cGlyZUVudGl0eRIaLndvcmxkLkV4cGlyZUVudGl0eVJlcXVlc3QaGy53b3JsZC5FeHBpcmVFbnRpdHlSZXNwb25zZRJHCgxHZXRMb2NhbE5vZGUSGi53b3JsZC5HZXRMb2NhbE5vZGVSZXF1ZXN0Ghsud29ybGQuR2V0TG9jYWxOb2RlUmVzcG9uc2USOAoHUnVuVGFzaxIVLndvcmxkLlJ1blRhc2tSZXF1ZXN0GhYud29ybGQuUnVuVGFza1Jlc3BvbnNlEj4KCUhhcmRSZXNldBIXLndvcmxkLkhhcmRSZXNldFJlcXVlc3QaGC53b3JsZC5IYXJkUmVzZXRSZXNwb25zZUIgWh5naXRodWIuY29tL3Byb2plY3RxYWkvcHJvdG8vZ29iBnByb3RvMw", [file_geometry, file_google_protobuf_struct, file_google_protobuf_timestamp, file_metrics]);
15
15
 
16
16
  /**
17
17
  * Describes the message world.Entity.
@@ -62,579 +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);
421
435
 
422
436
  /**
423
437
  * Describes the message world.AssemblyComponent.
424
438
  * Use `create(AssemblyComponentSchema)` to create a new message.
425
439
  */
426
440
  export const AssemblyComponentSchema = /*@__PURE__*/
427
- messageDesc(file_world, 58);
441
+ messageDesc(file_world, 60);
428
442
 
429
443
  /**
430
444
  * Describes the message world.EntityFilter.
431
445
  * Use `create(EntityFilterSchema)` to create a new message.
432
446
  */
433
447
  export const EntityFilterSchema = /*@__PURE__*/
434
- messageDesc(file_world, 59);
448
+ messageDesc(file_world, 61);
435
449
 
436
450
  /**
437
451
  * Describes the message world.ControllerFilter.
438
452
  * Use `create(ControllerFilterSchema)` to create a new message.
439
453
  */
440
454
  export const ControllerFilterSchema = /*@__PURE__*/
441
- messageDesc(file_world, 60);
455
+ messageDesc(file_world, 62);
442
456
 
443
457
  /**
444
458
  * Describes the message world.TrackFilter.
445
459
  * Use `create(TrackFilterSchema)` to create a new message.
446
460
  */
447
461
  export const TrackFilterSchema = /*@__PURE__*/
448
- messageDesc(file_world, 61);
462
+ messageDesc(file_world, 63);
449
463
 
450
464
  /**
451
465
  * Describes the message world.MissionFilter.
452
466
  * Use `create(MissionFilterSchema)` to create a new message.
453
467
  */
454
468
  export const MissionFilterSchema = /*@__PURE__*/
455
- messageDesc(file_world, 62);
469
+ messageDesc(file_world, 64);
456
470
 
457
471
  /**
458
472
  * Describes the message world.TaskableFilter.
459
473
  * Use `create(TaskableFilterSchema)` to create a new message.
460
474
  */
461
475
  export const TaskableFilterSchema = /*@__PURE__*/
462
- messageDesc(file_world, 63);
476
+ messageDesc(file_world, 65);
463
477
 
464
478
  /**
465
479
  * Describes the message world.GeoFilter.
466
480
  * Use `create(GeoFilterSchema)` to create a new message.
467
481
  */
468
482
  export const GeoFilterSchema = /*@__PURE__*/
469
- messageDesc(file_world, 64);
483
+ messageDesc(file_world, 66);
470
484
 
471
485
  /**
472
486
  * Describes the message world.DeviceFilter.
473
487
  * Use `create(DeviceFilterSchema)` to create a new message.
474
488
  */
475
489
  export const DeviceFilterSchema = /*@__PURE__*/
476
- messageDesc(file_world, 65);
490
+ messageDesc(file_world, 67);
477
491
 
478
492
  /**
479
493
  * Describes the message world.BleDeviceFilter.
480
494
  * Use `create(BleDeviceFilterSchema)` to create a new message.
481
495
  */
482
496
  export const BleDeviceFilterSchema = /*@__PURE__*/
483
- messageDesc(file_world, 66);
497
+ messageDesc(file_world, 68);
484
498
 
485
499
  /**
486
500
  * Describes the message world.UsbDeviceFilter.
487
501
  * Use `create(UsbDeviceFilterSchema)` to create a new message.
488
502
  */
489
503
  export const UsbDeviceFilterSchema = /*@__PURE__*/
490
- messageDesc(file_world, 67);
504
+ messageDesc(file_world, 69);
491
505
 
492
506
  /**
493
507
  * Describes the message world.ConfigurationFilter.
494
508
  * Use `create(ConfigurationFilterSchema)` to create a new message.
495
509
  */
496
510
  export const ConfigurationFilterSchema = /*@__PURE__*/
497
- messageDesc(file_world, 68);
511
+ messageDesc(file_world, 70);
498
512
 
499
513
  /**
500
514
  * Describes the message world.ChannelFilter.
501
515
  * Use `create(ChannelFilterSchema)` to create a new message.
502
516
  */
503
517
  export const ChannelFilterSchema = /*@__PURE__*/
504
- messageDesc(file_world, 69);
518
+ messageDesc(file_world, 71);
505
519
 
506
520
  /**
507
521
  * Describes the message world.WatchBehavior.
508
522
  * Use `create(WatchBehaviorSchema)` to create a new message.
509
523
  */
510
524
  export const WatchBehaviorSchema = /*@__PURE__*/
511
- messageDesc(file_world, 70);
525
+ messageDesc(file_world, 72);
512
526
 
513
527
  /**
514
528
  * Describes the message world.ListEntitiesRequest.
515
529
  * Use `create(ListEntitiesRequestSchema)` to create a new message.
516
530
  */
517
531
  export const ListEntitiesRequestSchema = /*@__PURE__*/
518
- messageDesc(file_world, 71);
532
+ messageDesc(file_world, 73);
519
533
 
520
534
  /**
521
535
  * Describes the message world.ListEntitiesResponse.
522
536
  * Use `create(ListEntitiesResponseSchema)` to create a new message.
523
537
  */
524
538
  export const ListEntitiesResponseSchema = /*@__PURE__*/
525
- messageDesc(file_world, 72);
539
+ messageDesc(file_world, 74);
526
540
 
527
541
  /**
528
542
  * Describes the message world.EntityChangeRequest.
529
543
  * Use `create(EntityChangeRequestSchema)` to create a new message.
530
544
  */
531
545
  export const EntityChangeRequestSchema = /*@__PURE__*/
532
- messageDesc(file_world, 73);
546
+ messageDesc(file_world, 75);
533
547
 
534
548
  /**
535
549
  * Describes the message world.ExpireEntityRequest.
536
550
  * Use `create(ExpireEntityRequestSchema)` to create a new message.
537
551
  */
538
552
  export const ExpireEntityRequestSchema = /*@__PURE__*/
539
- messageDesc(file_world, 74);
553
+ messageDesc(file_world, 76);
540
554
 
541
555
  /**
542
556
  * Describes the message world.ExpireEntityResponse.
543
557
  * Use `create(ExpireEntityResponseSchema)` to create a new message.
544
558
  */
545
559
  export const ExpireEntityResponseSchema = /*@__PURE__*/
546
- messageDesc(file_world, 75);
560
+ messageDesc(file_world, 77);
547
561
 
548
562
  /**
549
563
  * Describes the message world.EntityChangeResponse.
550
564
  * Use `create(EntityChangeResponseSchema)` to create a new message.
551
565
  */
552
566
  export const EntityChangeResponseSchema = /*@__PURE__*/
553
- messageDesc(file_world, 76);
567
+ messageDesc(file_world, 78);
554
568
 
555
569
  /**
556
570
  * Describes the message world.EntityChangeEvent.
557
571
  * Use `create(EntityChangeEventSchema)` to create a new message.
558
572
  */
559
573
  export const EntityChangeEventSchema = /*@__PURE__*/
560
- messageDesc(file_world, 77);
574
+ messageDesc(file_world, 79);
561
575
 
562
576
  /**
563
577
  * Describes the message world.EntityChangeBatch.
564
578
  * Use `create(EntityChangeBatchSchema)` to create a new message.
565
579
  */
566
580
  export const EntityChangeBatchSchema = /*@__PURE__*/
567
- messageDesc(file_world, 78);
581
+ messageDesc(file_world, 80);
568
582
 
569
583
  /**
570
584
  * Describes the message world.GetEntityRequest.
571
585
  * Use `create(GetEntityRequestSchema)` to create a new message.
572
586
  */
573
587
  export const GetEntityRequestSchema = /*@__PURE__*/
574
- messageDesc(file_world, 79);
588
+ messageDesc(file_world, 81);
575
589
 
576
590
  /**
577
591
  * Describes the message world.GetEntityResponse.
578
592
  * Use `create(GetEntityResponseSchema)` to create a new message.
579
593
  */
580
594
  export const GetEntityResponseSchema = /*@__PURE__*/
581
- messageDesc(file_world, 80);
595
+ messageDesc(file_world, 82);
582
596
 
583
597
  /**
584
598
  * Describes the message world.GetLocalNodeRequest.
585
599
  * Use `create(GetLocalNodeRequestSchema)` to create a new message.
586
600
  */
587
601
  export const GetLocalNodeRequestSchema = /*@__PURE__*/
588
- messageDesc(file_world, 81);
602
+ messageDesc(file_world, 83);
589
603
 
590
604
  /**
591
605
  * Describes the message world.GetLocalNodeResponse.
592
606
  * Use `create(GetLocalNodeResponseSchema)` to create a new message.
593
607
  */
594
608
  export const GetLocalNodeResponseSchema = /*@__PURE__*/
595
- messageDesc(file_world, 82);
609
+ messageDesc(file_world, 84);
596
610
 
597
611
  /**
598
612
  * Describes the message world.ObserverRequest.
599
613
  * Use `create(ObserverRequestSchema)` to create a new message.
600
614
  */
601
615
  export const ObserverRequestSchema = /*@__PURE__*/
602
- messageDesc(file_world, 83);
616
+ messageDesc(file_world, 85);
603
617
 
604
618
  /**
605
619
  * Describes the message world.ObserverState.
606
620
  * Use `create(ObserverStateSchema)` to create a new message.
607
621
  */
608
622
  export const ObserverStateSchema = /*@__PURE__*/
609
- messageDesc(file_world, 84);
623
+ messageDesc(file_world, 86);
610
624
 
611
625
  /**
612
626
  * Describes the message world.RunTaskRequest.
613
627
  * Use `create(RunTaskRequestSchema)` to create a new message.
614
628
  */
615
629
  export const RunTaskRequestSchema = /*@__PURE__*/
616
- messageDesc(file_world, 85);
630
+ messageDesc(file_world, 87);
617
631
 
618
632
  /**
619
633
  * Describes the message world.RunTaskResponse.
620
634
  * Use `create(RunTaskResponseSchema)` to create a new message.
621
635
  */
622
636
  export const RunTaskResponseSchema = /*@__PURE__*/
623
- messageDesc(file_world, 86);
637
+ messageDesc(file_world, 88);
624
638
 
625
639
  /**
626
640
  * Describes the message world.HardResetRequest.
627
641
  * Use `create(HardResetRequestSchema)` to create a new message.
628
642
  */
629
643
  export const HardResetRequestSchema = /*@__PURE__*/
630
- messageDesc(file_world, 87);
644
+ messageDesc(file_world, 89);
631
645
 
632
646
  /**
633
647
  * Describes the message world.HardResetResponse.
634
648
  * Use `create(HardResetResponseSchema)` to create a new message.
635
649
  */
636
650
  export const HardResetResponseSchema = /*@__PURE__*/
637
- messageDesc(file_world, 88);
651
+ messageDesc(file_world, 90);
638
652
 
639
653
  /**
640
654
  * Describes the enum world.Priority.
@@ -648,11 +662,23 @@ export const PrioritySchema = /*@__PURE__*/
648
662
  export const Priority = /*@__PURE__*/
649
663
  tsEnum(PrioritySchema);
650
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
+
651
677
  /**
652
678
  * Describes the enum world.MediaStreamProtocol.
653
679
  */
654
680
  export const MediaStreamProtocolSchema = /*@__PURE__*/
655
- enumDesc(file_world, 1);
681
+ enumDesc(file_world, 2);
656
682
 
657
683
  /**
658
684
  * @generated from enum world.MediaStreamProtocol
@@ -664,7 +690,7 @@ export const MediaStreamProtocol = /*@__PURE__*/
664
690
  * Describes the enum world.MediaStreamRole.
665
691
  */
666
692
  export const MediaStreamRoleSchema = /*@__PURE__*/
667
- enumDesc(file_world, 2);
693
+ enumDesc(file_world, 3);
668
694
 
669
695
  /**
670
696
  * @generated from enum world.MediaStreamRole
@@ -676,7 +702,7 @@ export const MediaStreamRole = /*@__PURE__*/
676
702
  * Describes the enum world.TaskableMode.
677
703
  */
678
704
  export const TaskableModeSchema = /*@__PURE__*/
679
- enumDesc(file_world, 3);
705
+ enumDesc(file_world, 4);
680
706
 
681
707
  /**
682
708
  * @generated from enum world.TaskableMode
@@ -688,7 +714,7 @@ export const TaskableMode = /*@__PURE__*/
688
714
  * Describes the enum world.TaskExecutionState.
689
715
  */
690
716
  export const TaskExecutionStateSchema = /*@__PURE__*/
691
- enumDesc(file_world, 4);
717
+ enumDesc(file_world, 5);
692
718
 
693
719
  /**
694
720
  * @generated from enum world.TaskExecutionState
@@ -700,7 +726,7 @@ export const TaskExecutionState = /*@__PURE__*/
700
726
  * Describes the enum world.ClassificationIdentity.
701
727
  */
702
728
  export const ClassificationIdentitySchema = /*@__PURE__*/
703
- enumDesc(file_world, 5);
729
+ enumDesc(file_world, 6);
704
730
 
705
731
  /**
706
732
  * @generated from enum world.ClassificationIdentity
@@ -712,7 +738,7 @@ export const ClassificationIdentity = /*@__PURE__*/
712
738
  * Describes the enum world.ClassificationBattleDimension.
713
739
  */
714
740
  export const ClassificationBattleDimensionSchema = /*@__PURE__*/
715
- enumDesc(file_world, 6);
741
+ enumDesc(file_world, 7);
716
742
 
717
743
  /**
718
744
  * @generated from enum world.ClassificationBattleDimension
@@ -724,7 +750,7 @@ export const ClassificationBattleDimension = /*@__PURE__*/
724
750
  * Describes the enum world.NavigationMode.
725
751
  */
726
752
  export const NavigationModeSchema = /*@__PURE__*/
727
- enumDesc(file_world, 7);
753
+ enumDesc(file_world, 8);
728
754
 
729
755
  /**
730
756
  * @generated from enum world.NavigationMode
@@ -736,7 +762,7 @@ export const NavigationMode = /*@__PURE__*/
736
762
  * Describes the enum world.LinkStatus.
737
763
  */
738
764
  export const LinkStatusSchema = /*@__PURE__*/
739
- enumDesc(file_world, 8);
765
+ enumDesc(file_world, 9);
740
766
 
741
767
  /**
742
768
  * @generated from enum world.LinkStatus
@@ -748,7 +774,7 @@ export const LinkStatus = /*@__PURE__*/
748
774
  * Describes the enum world.DeviceState.
749
775
  */
750
776
  export const DeviceStateSchema = /*@__PURE__*/
751
- enumDesc(file_world, 9);
777
+ enumDesc(file_world, 10);
752
778
 
753
779
  /**
754
780
  * @generated from enum world.DeviceState
@@ -760,7 +786,7 @@ export const DeviceState = /*@__PURE__*/
760
786
  * Describes the enum world.ConfigurableState.
761
787
  */
762
788
  export const ConfigurableStateSchema = /*@__PURE__*/
763
- enumDesc(file_world, 10);
789
+ enumDesc(file_world, 11);
764
790
 
765
791
  /**
766
792
  * @generated from enum world.ConfigurableState
@@ -772,7 +798,7 @@ export const ConfigurableState = /*@__PURE__*/
772
798
  * Describes the enum world.EntityChange.
773
799
  */
774
800
  export const EntityChangeSchema = /*@__PURE__*/
775
- enumDesc(file_world, 11);
801
+ enumDesc(file_world, 12);
776
802
 
777
803
  /**
778
804
  * @generated from enum world.EntityChange
@@ -784,7 +810,7 @@ export const EntityChange = /*@__PURE__*/
784
810
  * Describes the enum world.EntityComponent.
785
811
  */
786
812
  export const EntityComponentSchema = /*@__PURE__*/
787
- enumDesc(file_world, 12);
813
+ enumDesc(file_world, 13);
788
814
 
789
815
  /**
790
816
  * Proto field numbers of Entity component fields.
@@ -799,7 +825,7 @@ export const EntityComponent = /*@__PURE__*/
799
825
  * Describes the enum world.TaskStatus.
800
826
  */
801
827
  export const TaskStatusSchema = /*@__PURE__*/
802
- enumDesc(file_world, 13);
828
+ enumDesc(file_world, 14);
803
829
 
804
830
  /**
805
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.46",
3
+ "version": "0.0.48",
4
4
  "author": "projectq-release-bot",
5
5
  "type": "module",
6
6
  "exports": {