From 186f070bb20c92e3447d67b5469a50a2e76214ad Mon Sep 17 00:00:00 2001 From: Rodrigo Reichert Date: Wed, 14 Aug 2024 17:03:01 +1000 Subject: [PATCH] Generate --- c/include/libsbp/cpp/message_traits.h | 37 + c/include/libsbp/sbp_msg.h | 12 + c/include/libsbp/sbp_msg_type.h | 3 + c/include/libsbp/signing.h | 1 + .../libsbp/signing/MSG_AES_CMAC_SIGNATURE.h | 226 ++++ c/include/libsbp/signing_macros.h | 49 + c/src/include/libsbp/internal/signing.h | 20 + c/src/signing.c | 161 +++ ...to_check_sbp_signing_MsgAesCmacSignature.c | 336 ++++++ c/test/check_main.c | 1 + c/test/check_suites.h | 1 + ...o_check_sbp_signing_MsgAesCmacSignature.cc | 1030 +++++++++++++++++ docs/sbp.pdf | Bin 561628 -> 565016 bytes haskell/src/SwiftNav/SBP/Msg.hs | 6 + haskell/src/SwiftNav/SBP/Signing.hs | 54 + .../com/swiftnav/sbp/client/MessageTable.java | 3 + .../sbp/signing/MsgAesCmacSignature.java | 117 ++ ...k_sbp_signing_MsgAesCmacSignatureTest.java | 307 +++++ javascript/sbp.bundle.js | 2 +- javascript/sbp/signing.js | 54 + jsonschema/MsgAesCmacSignature.json | 34 + kaitai/ksy/sbp.ksy | 2 + kaitai/ksy/signing.ksy | 45 + kaitai/perl/KaitaiSbp/Sbp.pm | 6 + kaitai/perl/KaitaiSbp/Signing.pm | 79 ++ kaitai/perl/KaitaiSbp/Table.pm | 1 + ...to_check_sbp_signing_MsgAesCmacSignature.t | 66 ++ kaitai/python/kaitai_sbp/sbp.py | 5 + kaitai/python/kaitai_sbp/signing.py | 29 + kaitai/python/kaitai_sbp/table.py | 1 + ...o_check_sbp_signing_MsgAesCmacSignature.py | 51 + proto/signing.proto | 13 + python/sbp/signing.py | 132 +++ rust/sbp/src/messages/mod.rs | 26 + rust/sbp/src/messages/signing.rs | 177 +++ ...heck_sbp_signing_msg_aes_cmac_signature.rs | 559 +++++++++ rust/sbp/tests/integration/main.rs | 1 + sbpjson/elm/SbpJson.elm | 40 +- sbpjson/javascript/SbpJson.js | 19 + sbpjson/typescript/SbpJson.ts | 32 +- 40 files changed, 3735 insertions(+), 3 deletions(-) create mode 100644 c/include/libsbp/signing/MSG_AES_CMAC_SIGNATURE.h create mode 100644 c/test/auto_check_sbp_signing_MsgAesCmacSignature.c create mode 100644 c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc create mode 100644 java/src/com/swiftnav/sbp/signing/MsgAesCmacSignature.java create mode 100644 java/test/auto_check_sbp_signing_MsgAesCmacSignatureTest.java create mode 100644 jsonschema/MsgAesCmacSignature.json create mode 100644 kaitai/perl/KaitaiSbp/t/auto_check_sbp_signing_MsgAesCmacSignature.t create mode 100644 kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_signing_MsgAesCmacSignature.py create mode 100644 rust/sbp/tests/integration/auto_check_sbp_signing_msg_aes_cmac_signature.rs diff --git a/c/include/libsbp/cpp/message_traits.h b/c/include/libsbp/cpp/message_traits.h index 5a2814638f..dbe88518b1 100644 --- a/c/include/libsbp/cpp/message_traits.h +++ b/c/include/libsbp/cpp/message_traits.h @@ -304,6 +304,43 @@ struct MessageTraits { } }; +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgAesCmacSignature; + static constexpr const char *name = "MSG_AES_CMAC_SIGNATURE"; + static const sbp_msg_aes_cmac_signature_t &get(const sbp_msg_t &msg) { + return msg.aes_cmac_signature; + } + static sbp_msg_aes_cmac_signature_t &get(sbp_msg_t &msg) { + return msg.aes_cmac_signature; + } + static void to_sbp_msg(const sbp_msg_aes_cmac_signature_t &msg, + sbp_msg_t *sbp_msg) { + sbp_msg->aes_cmac_signature = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_aes_cmac_signature_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.aes_cmac_signature = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_aes_cmac_signature_t &msg, + sbp_write_fn_t write) { + return sbp_msg_aes_cmac_signature_send(state, sender_id, &msg, write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_aes_cmac_signature_t &msg) { + return sbp_msg_aes_cmac_signature_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_aes_cmac_signature_t *msg) { + return sbp_msg_aes_cmac_signature_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_aes_cmac_signature_t &msg) { + return sbp_msg_aes_cmac_signature_encoded_len(&msg); + } +}; + template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgAgeCorrections; diff --git a/c/include/libsbp/sbp_msg.h b/c/include/libsbp/sbp_msg.h index 51c87a176b..c8c510256f 100644 --- a/c/include/libsbp/sbp_msg.h +++ b/c/include/libsbp/sbp_msg.h @@ -67,6 +67,7 @@ typedef union { sbp_msg_acq_result_t acq_result; sbp_msg_acq_sv_profile_dep_t acq_sv_profile_dep; sbp_msg_acq_sv_profile_t acq_sv_profile; + sbp_msg_aes_cmac_signature_t aes_cmac_signature; sbp_msg_age_corrections_t age_corrections; sbp_msg_almanac_glo_dep_t almanac_glo_dep; sbp_msg_almanac_glo_t almanac_glo; @@ -336,6 +337,9 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, case SbpMsgAcqSvProfile: return sbp_msg_acq_sv_profile_encode(buf, len, n_written, &msg->acq_sv_profile); + case SbpMsgAesCmacSignature: + return sbp_msg_aes_cmac_signature_encode(buf, len, n_written, + &msg->aes_cmac_signature); case SbpMsgAgeCorrections: return sbp_msg_age_corrections_encode(buf, len, n_written, &msg->age_corrections); @@ -1008,6 +1012,9 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, case SbpMsgAcqSvProfile: return sbp_msg_acq_sv_profile_decode(buf, len, n_read, &msg->acq_sv_profile); + case SbpMsgAesCmacSignature: + return sbp_msg_aes_cmac_signature_decode(buf, len, n_read, + &msg->aes_cmac_signature); case SbpMsgAgeCorrections: return sbp_msg_age_corrections_decode(buf, len, n_read, &msg->age_corrections); @@ -1659,6 +1666,8 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, return sbp_msg_acq_sv_profile_dep_encoded_len(&msg->acq_sv_profile_dep); case SbpMsgAcqSvProfile: return sbp_msg_acq_sv_profile_encoded_len(&msg->acq_sv_profile); + case SbpMsgAesCmacSignature: + return sbp_msg_aes_cmac_signature_encoded_len(&msg->aes_cmac_signature); case SbpMsgAgeCorrections: return sbp_msg_age_corrections_encoded_len(&msg->age_corrections); case SbpMsgAlmanacGloDep: @@ -2215,6 +2224,9 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, &b->acq_sv_profile_dep); case SbpMsgAcqSvProfile: return sbp_msg_acq_sv_profile_cmp(&a->acq_sv_profile, &b->acq_sv_profile); + case SbpMsgAesCmacSignature: + return sbp_msg_aes_cmac_signature_cmp(&a->aes_cmac_signature, + &b->aes_cmac_signature); case SbpMsgAgeCorrections: return sbp_msg_age_corrections_cmp(&a->age_corrections, &b->age_corrections); diff --git a/c/include/libsbp/sbp_msg_type.h b/c/include/libsbp/sbp_msg_type.h index 529d1f7b1d..906bdce08c 100644 --- a/c/include/libsbp/sbp_msg_type.h +++ b/c/include/libsbp/sbp_msg_type.h @@ -58,6 +58,7 @@ typedef enum { SbpMsgAcqResult = 0x002F, SbpMsgAcqSvProfileDep = 0x001E, SbpMsgAcqSvProfile = 0x002E, + SbpMsgAesCmacSignature = 0x0C10, SbpMsgAgeCorrections = 0x0210, SbpMsgAlmanacGloDep = 0x0071, SbpMsgAlmanacGlo = 0x0073, @@ -308,6 +309,8 @@ static inline const char *sbp_msg_type_to_string(sbp_msg_type_t msg_type) { return "MSG_ACQ_SV_PROFILE_DEP"; case SbpMsgAcqSvProfile: return "MSG_ACQ_SV_PROFILE"; + case SbpMsgAesCmacSignature: + return "MSG_AES_CMAC_SIGNATURE"; case SbpMsgAgeCorrections: return "MSG_AGE_CORRECTIONS"; case SbpMsgAlmanacGloDep: diff --git a/c/include/libsbp/signing.h b/c/include/libsbp/signing.h index 444407b9a1..f6429a5dd8 100644 --- a/c/include/libsbp/signing.h +++ b/c/include/libsbp/signing.h @@ -18,6 +18,7 @@ #ifndef LIBSBP_SIGNING_MESSAGES_H #define LIBSBP_SIGNING_MESSAGES_H #include +#include #include #include #include diff --git a/c/include/libsbp/signing/MSG_AES_CMAC_SIGNATURE.h b/c/include/libsbp/signing/MSG_AES_CMAC_SIGNATURE.h new file mode 100644 index 0000000000..a3205c171c --- /dev/null +++ b/c/include/libsbp/signing/MSG_AES_CMAC_SIGNATURE.h @@ -0,0 +1,226 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +/***************************************************************************** + * Automatically generated from yaml/swiftnav/sbp/signing.yaml + * with generate.py. Please do not hand edit! + *****************************************************************************/ + +#ifndef LIBSBP_SIGNING_MSG_AES_CMAC_SIGNATURE_H +#define LIBSBP_SIGNING_MSG_AES_CMAC_SIGNATURE_H + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * + * SBP_MSG_AES_CMAC_SIGNATURE + * + *****************************************************************************/ +/** AES-CMAC 128 digital signature + * + * Digital signature using AES-CMAC 128 algorithm used for data integrity. + */ +typedef struct { + /** + * Signature message counter. Zero indexed and incremented with each signature + * message. The counter will not increment if this message was in response to + * an on demand request. The counter will roll over after 256 messages. Upon + * connection, the value of the counter may not initially be zero. + */ + u8 stream_counter; + + /** + * On demand message counter. Zero indexed and incremented with each signature + * message sent in response to an on demand message. The counter will roll + * over after 256 messages. Upon connection, the value of the counter may not + * initially be zero. + */ + u8 on_demand_counter; + + /** + * The last 4 bytes of the certificate's SHA-1 fingerprint + */ + u8 certificate_id[SBP_MSG_AES_CMAC_SIGNATURE_CERTIFICATE_ID_MAX]; + + /** + * Signature + */ + u8 signature[SBP_MSG_AES_CMAC_SIGNATURE_SIGNATURE_MAX]; + + /** + * Describes the format of the 'signed messages' field below. + */ + u8 flags; + + /** + * CRCs of the messages covered by this signature. For Skylark, which + * delivers SBP messages wrapped in Swift's proprietary RTCM message, these + * are the 24-bit CRCs from the RTCM message framing. For SBP only streams, + * this will be 16-bit CRCs from the SBP framing. See the `flags` field to + * determine the type of CRCs covered. + */ + u8 signed_messages[SBP_MSG_AES_CMAC_SIGNATURE_SIGNED_MESSAGES_MAX]; + /** + * Number of elements in signed_messages + * + * When sending a message fill in this field with the number elements set in + * signed_messages before calling an appropriate libsbp send function + * + * When receiving a message query this field for the number of elements in + * signed_messages. The value of any elements beyond the index specified in + * this field is undefined + */ + u8 n_signed_messages; +} sbp_msg_aes_cmac_signature_t; + +/** + * Get encoded size of an instance of sbp_msg_aes_cmac_signature_t + * + * @param msg sbp_msg_aes_cmac_signature_t instance + * @return Length of on-wire representation + */ +static inline size_t sbp_msg_aes_cmac_signature_encoded_len( + const sbp_msg_aes_cmac_signature_t *msg) { + return SBP_MSG_AES_CMAC_SIGNATURE_ENCODED_OVERHEAD + + (msg->n_signed_messages * SBP_ENCODED_LEN_U8); +} + +/** + * Encode an instance of sbp_msg_aes_cmac_signature_t to wire representation + * + * This function encodes the given instance in to the user provided buffer. The + * buffer provided to this function must be large enough to store the encoded + * message otherwise it will return SBP_ENCODE_ERROR without writing anything to + * the buffer. + * + * Specify the length of the destination buffer in the \p len parameter. If + * non-null the number of bytes written to the buffer will be returned in \p + * n_written. + * + * @param buf Destination buffer + * @param len Length of \p buf + * @param n_written If not null, on success will be set to the number of bytes + * written to \p buf + * @param msg Instance of sbp_msg_aes_cmac_signature_t to encode + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 +sbp_msg_aes_cmac_signature_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_aes_cmac_signature_t *msg); + +/** + * Decode an instance of sbp_msg_aes_cmac_signature_t from wire representation + * + * This function decodes the wire representation of a + * sbp_msg_aes_cmac_signature_t message to the given instance. The caller must + * specify the length of the buffer in the \p len parameter. If non-null the + * number of bytes read from the buffer will be returned in \p n_read. + * + * @param buf Wire representation of the sbp_msg_aes_cmac_signature_t instance + * @param len Length of \p buf + * @param n_read If not null, on success will be set to the number of bytes read + * from \p buf + * @param msg Destination + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_aes_cmac_signature_decode( + const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_aes_cmac_signature_t *msg); +/** + * Send an instance of sbp_msg_aes_cmac_signature_t with the given write + * function + * + * An equivalent of #sbp_message_send which operates specifically on + * sbp_msg_aes_cmac_signature_t + * + * The given message will be encoded to wire representation and passed in to the + * given write function callback. The write callback will be called several + * times for each invocation of this function. + * + * @param s SBP state + * @param sender_id SBP sender id + * @param msg Message to send + * @param write Write function + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_aes_cmac_signature_send( + sbp_state_t *s, u16 sender_id, const sbp_msg_aes_cmac_signature_t *msg, + sbp_write_fn_t write); + +/** + * Compare two instances of sbp_msg_aes_cmac_signature_t + * + * The two instances will be compared and a value returned consistent with the + * return codes of comparison functions from the C standard library + * + * 0 will be returned if \p a and \p b are considered equal + * A value less than 0 will be returned if \p a is considered to be less than \p + * b A value greater than 0 will be returned if \p b is considered to be greater + * than \p b + * + * @param a sbp_msg_aes_cmac_signature_t instance + * @param b sbp_msg_aes_cmac_signature_t instance + * @return 0, <0, >0 + */ +SBP_EXPORT int sbp_msg_aes_cmac_signature_cmp( + const sbp_msg_aes_cmac_signature_t *a, + const sbp_msg_aes_cmac_signature_t *b); + +#ifdef __cplusplus +} + +static inline bool operator==(const sbp_msg_aes_cmac_signature_t &lhs, + const sbp_msg_aes_cmac_signature_t &rhs) { + return sbp_msg_aes_cmac_signature_cmp(&lhs, &rhs) == 0; +} + +static inline bool operator!=(const sbp_msg_aes_cmac_signature_t &lhs, + const sbp_msg_aes_cmac_signature_t &rhs) { + return sbp_msg_aes_cmac_signature_cmp(&lhs, &rhs) != 0; +} + +static inline bool operator<(const sbp_msg_aes_cmac_signature_t &lhs, + const sbp_msg_aes_cmac_signature_t &rhs) { + return sbp_msg_aes_cmac_signature_cmp(&lhs, &rhs) < 0; +} + +static inline bool operator<=(const sbp_msg_aes_cmac_signature_t &lhs, + const sbp_msg_aes_cmac_signature_t &rhs) { + return sbp_msg_aes_cmac_signature_cmp(&lhs, &rhs) <= 0; +} + +static inline bool operator>(const sbp_msg_aes_cmac_signature_t &lhs, + const sbp_msg_aes_cmac_signature_t &rhs) { + return sbp_msg_aes_cmac_signature_cmp(&lhs, &rhs) > 0; +} + +static inline bool operator>=(const sbp_msg_aes_cmac_signature_t &lhs, + const sbp_msg_aes_cmac_signature_t &rhs) { + return sbp_msg_aes_cmac_signature_cmp(&lhs, &rhs) >= 0; +} + +#endif // ifdef __cplusplus + +#endif /* LIBSBP_SIGNING_MSG_AES_CMAC_SIGNATURE_H */ diff --git a/c/include/libsbp/signing_macros.h b/c/include/libsbp/signing_macros.h index a25421e0b9..6adb3894f0 100644 --- a/c/include/libsbp/signing_macros.h +++ b/c/include/libsbp/signing_macros.h @@ -137,6 +137,55 @@ */ #define SBP_MSG_CERTIFICATE_CHAIN_DEP_ENCODED_LEN 135u +/** + * The maximum number of items that can be stored in + * sbp_msg_aes_cmac_signature_t::certificate_id before the maximum SBP message + * size is exceeded + */ +#define SBP_MSG_AES_CMAC_SIGNATURE_CERTIFICATE_ID_MAX 4u + +/** + * The maximum number of items that can be stored in + * sbp_msg_aes_cmac_signature_t::signature before the maximum SBP message size + * is exceeded + */ +#define SBP_MSG_AES_CMAC_SIGNATURE_SIGNATURE_MAX 16u + +#define SBP_AES_CMAC_SIGNATURE_CRC_TYPE_MASK (0x3u) +#define SBP_AES_CMAC_SIGNATURE_CRC_TYPE_SHIFT (0u) +#define SBP_AES_CMAC_SIGNATURE_CRC_TYPE_GET(flags) \ + ((u8)((u8)((flags) >> SBP_AES_CMAC_SIGNATURE_CRC_TYPE_SHIFT) & \ + SBP_AES_CMAC_SIGNATURE_CRC_TYPE_MASK)) +#define SBP_AES_CMAC_SIGNATURE_CRC_TYPE_SET(flags, val) \ + do { \ + (flags) = (u8)((flags & (~(SBP_AES_CMAC_SIGNATURE_CRC_TYPE_MASK \ + << SBP_AES_CMAC_SIGNATURE_CRC_TYPE_SHIFT))) | \ + (((val) & (SBP_AES_CMAC_SIGNATURE_CRC_TYPE_MASK)) \ + << (SBP_AES_CMAC_SIGNATURE_CRC_TYPE_SHIFT))); \ + } while (0) + +#define SBP_AES_CMAC_SIGNATURE_CRC_TYPE_24_BIT_CRCS_FROM_RTCM_FRAMING (0) +#define SBP_AES_CMAC_SIGNATURE_CRC_TYPE_16_BIT_CRCS_FROM_SBP_FRAMING (1) +/** + * The maximum number of items that can be stored in + * sbp_msg_aes_cmac_signature_t::signed_messages before the maximum SBP message + * size is exceeded + */ +#define SBP_MSG_AES_CMAC_SIGNATURE_SIGNED_MESSAGES_MAX 232u + +/** + * Encoded length of sbp_msg_aes_cmac_signature_t + * + * This type is not fixed size and an instance of this message may be longer + * than the value indicated by this symbol. Users call + * #sbp_msg_aes_cmac_signature_encoded_len to determine the actual size of an + * instance of this message. + * + * See the documentation for libsbp for more details regarding the message + * structure and its variable length component(s) + */ +#define SBP_MSG_AES_CMAC_SIGNATURE_ENCODED_OVERHEAD 23u + #define SBP_ECDSA_SIGNATURE_CRC_TYPE_MASK (0x3u) #define SBP_ECDSA_SIGNATURE_CRC_TYPE_SHIFT (0u) #define SBP_ECDSA_SIGNATURE_CRC_TYPE_GET(flags) \ diff --git a/c/src/include/libsbp/internal/signing.h b/c/src/include/libsbp/internal/signing.h index 353d725ce9..cca25fc52a 100644 --- a/c/src/include/libsbp/internal/signing.h +++ b/c/src/include/libsbp/internal/signing.h @@ -126,6 +126,26 @@ bool sbp_msg_certificate_chain_dep_encode_internal( bool sbp_msg_certificate_chain_dep_decode_internal( sbp_decode_ctx_t *ctx, sbp_msg_certificate_chain_dep_t *msg); +/** + * Internal function to encode an SBP type to a buffer + * + * @param ctx Encode context + * @param msg SBP type instance + * @return true on success, false otherwise + */ +bool sbp_msg_aes_cmac_signature_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_aes_cmac_signature_t *msg); + +/** + * Internal function to decode an SBP type from a buffer + * + * @param ctx Decode context + * @param msg SBP type instance + * @return true on success, false otherwise + */ +bool sbp_msg_aes_cmac_signature_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_aes_cmac_signature_t *msg); + /** * Internal function to encode an SBP type to a buffer * diff --git a/c/src/signing.c b/c/src/signing.c index 5a08f1c2b6..2797863bd1 100644 --- a/c/src/signing.c +++ b/c/src/signing.c @@ -650,6 +650,167 @@ int sbp_msg_certificate_chain_dep_cmp( return ret; } +bool sbp_msg_aes_cmac_signature_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_aes_cmac_signature_t *msg) { + if (!sbp_u8_encode(ctx, &msg->stream_counter)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->on_demand_counter)) { + return false; + } + for (size_t i = 0; i < SBP_MSG_AES_CMAC_SIGNATURE_CERTIFICATE_ID_MAX; i++) { + if (!sbp_u8_encode(ctx, &msg->certificate_id[i])) { + return false; + } + } + for (size_t i = 0; i < SBP_MSG_AES_CMAC_SIGNATURE_SIGNATURE_MAX; i++) { + if (!sbp_u8_encode(ctx, &msg->signature[i])) { + return false; + } + } + if (!sbp_u8_encode(ctx, &msg->flags)) { + return false; + } + for (size_t i = 0; i < msg->n_signed_messages; i++) { + if (!sbp_u8_encode(ctx, &msg->signed_messages[i])) { + return false; + } + } + return true; +} + +s8 sbp_msg_aes_cmac_signature_encode(uint8_t *buf, uint8_t len, + uint8_t *n_written, + const sbp_msg_aes_cmac_signature_t *msg) { + sbp_encode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_aes_cmac_signature_encode_internal(&ctx, msg)) { + return SBP_ENCODE_ERROR; + } + if (n_written != NULL) { + *n_written = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +bool sbp_msg_aes_cmac_signature_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_aes_cmac_signature_t *msg) { + if (!sbp_u8_decode(ctx, &msg->stream_counter)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->on_demand_counter)) { + return false; + } + for (uint8_t i = 0; i < SBP_MSG_AES_CMAC_SIGNATURE_CERTIFICATE_ID_MAX; i++) { + if (!sbp_u8_decode(ctx, &msg->certificate_id[i])) { + return false; + } + } + for (uint8_t i = 0; i < SBP_MSG_AES_CMAC_SIGNATURE_SIGNATURE_MAX; i++) { + if (!sbp_u8_decode(ctx, &msg->signature[i])) { + return false; + } + } + if (!sbp_u8_decode(ctx, &msg->flags)) { + return false; + } + if (((ctx->buf_len - ctx->offset) % SBP_ENCODED_LEN_U8) != 0) { + return false; + } + msg->n_signed_messages = + (uint8_t)((ctx->buf_len - ctx->offset) / SBP_ENCODED_LEN_U8); + for (uint8_t i = 0; i < msg->n_signed_messages; i++) { + if (!sbp_u8_decode(ctx, &msg->signed_messages[i])) { + return false; + } + } + return true; +} + +s8 sbp_msg_aes_cmac_signature_decode(const uint8_t *buf, uint8_t len, + uint8_t *n_read, + sbp_msg_aes_cmac_signature_t *msg) { + sbp_decode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_aes_cmac_signature_decode_internal(&ctx, msg)) { + return SBP_DECODE_ERROR; + } + if (n_read != NULL) { + *n_read = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +s8 sbp_msg_aes_cmac_signature_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_aes_cmac_signature_t *msg, + sbp_write_fn_t write) { + uint8_t payload[SBP_MAX_PAYLOAD_LEN]; + uint8_t payload_len; + s8 ret = sbp_msg_aes_cmac_signature_encode(payload, sizeof(payload), + &payload_len, msg); + if (ret != SBP_OK) { + return ret; + } + return sbp_internal_forward_payload(s, SbpMsgAesCmacSignature, sender_id, + payload_len, payload, write); +} + +int sbp_msg_aes_cmac_signature_cmp(const sbp_msg_aes_cmac_signature_t *a, + const sbp_msg_aes_cmac_signature_t *b) { + int ret = 0; + + ret = sbp_u8_cmp(&a->stream_counter, &b->stream_counter); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->on_demand_counter, &b->on_demand_counter); + if (ret != 0) { + return ret; + } + + for (uint8_t i = 0; i < SBP_MSG_AES_CMAC_SIGNATURE_CERTIFICATE_ID_MAX; i++) { + ret = sbp_u8_cmp(&a->certificate_id[i], &b->certificate_id[i]); + if (ret != 0) { + return ret; + } + } + if (ret != 0) { + return ret; + } + + for (uint8_t i = 0; i < SBP_MSG_AES_CMAC_SIGNATURE_SIGNATURE_MAX; i++) { + ret = sbp_u8_cmp(&a->signature[i], &b->signature[i]); + if (ret != 0) { + return ret; + } + } + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->flags, &b->flags); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->n_signed_messages, &b->n_signed_messages); + if (ret != 0) { + return ret; + } + for (uint8_t i = 0; i < a->n_signed_messages; i++) { + ret = sbp_u8_cmp(&a->signed_messages[i], &b->signed_messages[i]); + if (ret != 0) { + return ret; + } + } + return ret; +} + bool sbp_msg_ecdsa_signature_encode_internal( sbp_encode_ctx_t *ctx, const sbp_msg_ecdsa_signature_t *msg) { if (!sbp_u8_encode(ctx, &msg->flags)) { diff --git a/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c b/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c new file mode 100644 index 0000000000..51d12917e9 --- /dev/null +++ b/c/test/auto_check_sbp_signing_MsgAesCmacSignature.c @@ -0,0 +1,336 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/signing/test_MsgAesCmacSignature.yaml by +// generate.py. Do not modify by hand! + +#include +#include +#include +#include // for debugging +#include // for malloc + +static struct { + u32 n_callbacks_logged; + u16 sender_id; + sbp_msg_type_t msg_type; + sbp_msg_t msg; + void *context; +} last_msg; + +static size_t dummy_wr = 0; +static size_t dummy_rd = 0; +static u8 dummy_buff[1024]; +static void *last_io_context; + +static void *DUMMY_MEMORY_FOR_CALLBACKS = (void *)0xdeadbeef; +static void *DUMMY_MEMORY_FOR_IO = (void *)0xdead0000; + +static void dummy_reset() { + dummy_rd = dummy_wr = 0; + memset(dummy_buff, 0, sizeof(dummy_buff)); +} + +static s32 dummy_write(u8 *buff, u32 n, void *context) { + last_io_context = context; + size_t real_n = n; //(dummy_n > n) ? n : dummy_n; + memcpy(dummy_buff + dummy_wr, buff, real_n); + dummy_wr += real_n; + return (s32)real_n; +} + +static s32 dummy_read(u8 *buff, u32 n, void *context) { + last_io_context = context; + size_t real_n = n; //(dummy_n > n) ? n : dummy_n; + memcpy(buff, dummy_buff + dummy_rd, real_n); + dummy_rd += real_n; + return (s32)real_n; +} + +static void logging_reset() { memset(&last_msg, 0, sizeof(last_msg)); } + +static void msg_callback(u16 sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg, void *context) { + last_msg.n_callbacks_logged++; + last_msg.sender_id = sender_id; + last_msg.msg_type = msg_type; + last_msg.msg = *msg; + last_msg.context = context; +} + +START_TEST(test_auto_check_sbp_signing_MsgAesCmacSignature) { + static sbp_msg_callbacks_node_t n; + + // State of the SBP message parser. + // Must be statically allocated. + sbp_state_t sbp_state; + + // + // Run tests: + // + // Test successful parsing of a message + { + // SBP parser state must be initialized before sbp_process is called. + // We re-initialize before every test so that callbacks for the same message + // types can be + // allocated multiple times across different tests. + sbp_state_init(&sbp_state); + + sbp_state_set_io_context(&sbp_state, &DUMMY_MEMORY_FOR_IO); + + logging_reset(); + + sbp_callback_register(&sbp_state, 0xC10, &msg_callback, + &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 encoded_frame[] = { + 85, 16, 12, 66, 0, 26, 1, 2, 1, 2, 3, 4, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 11, 22, 33, 192, 21, + }; + + dummy_reset(); + + sbp_msg_t test_msg; + memset(&test_msg, 0, sizeof(test_msg)); + + test_msg.aes_cmac_signature.certificate_id[0] = 1; + + test_msg.aes_cmac_signature.certificate_id[1] = 2; + + test_msg.aes_cmac_signature.certificate_id[2] = 3; + + test_msg.aes_cmac_signature.certificate_id[3] = 4; + + test_msg.aes_cmac_signature.flags = 0; + + test_msg.aes_cmac_signature.n_signed_messages = 3; + + test_msg.aes_cmac_signature.on_demand_counter = 2; + + test_msg.aes_cmac_signature.signature[0] = 0; + + test_msg.aes_cmac_signature.signature[1] = 1; + + test_msg.aes_cmac_signature.signature[2] = 2; + + test_msg.aes_cmac_signature.signature[3] = 3; + + test_msg.aes_cmac_signature.signature[4] = 4; + + test_msg.aes_cmac_signature.signature[5] = 5; + + test_msg.aes_cmac_signature.signature[6] = 6; + + test_msg.aes_cmac_signature.signature[7] = 7; + + test_msg.aes_cmac_signature.signature[8] = 8; + + test_msg.aes_cmac_signature.signature[9] = 9; + + test_msg.aes_cmac_signature.signature[10] = 10; + + test_msg.aes_cmac_signature.signature[11] = 11; + + test_msg.aes_cmac_signature.signature[12] = 12; + + test_msg.aes_cmac_signature.signature[13] = 13; + + test_msg.aes_cmac_signature.signature[14] = 14; + + test_msg.aes_cmac_signature.signature[15] = 15; + + test_msg.aes_cmac_signature.signed_messages[0] = 11; + + test_msg.aes_cmac_signature.signed_messages[1] = 22; + + test_msg.aes_cmac_signature.signed_messages[2] = 33; + + test_msg.aes_cmac_signature.stream_counter = 1; + + sbp_message_send(&sbp_state, SbpMsgAesCmacSignature, 66, &test_msg, + &dummy_write); + + ck_assert_msg(dummy_wr == sizeof(encoded_frame), + "not enough data was written to dummy_buff (expected: %zu, " + "actual: %zu)", + sizeof(encoded_frame), dummy_wr); + ck_assert_msg(memcmp(dummy_buff, encoded_frame, sizeof(encoded_frame)) == 0, + "frame was not encoded properly"); + + while (dummy_rd < dummy_wr) { + ck_assert_msg(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + ck_assert_msg(last_msg.n_callbacks_logged == 1, + "msg_callback: one callback should have been logged"); + ck_assert_msg(last_msg.sender_id == 66, + "msg_callback: sender_id decoded incorrectly"); + + ck_assert_msg( + sbp_message_cmp(SbpMsgAesCmacSignature, &last_msg.msg, &test_msg) == 0, + "Sent and received messages did not compare equal"); + + ck_assert_msg(last_msg.msg.aes_cmac_signature.certificate_id[0] == 1, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.certificate_id[0], expected " + "1, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.certificate_id[0]); + ck_assert_msg(last_msg.msg.aes_cmac_signature.certificate_id[1] == 2, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.certificate_id[1], expected " + "2, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.certificate_id[1]); + ck_assert_msg(last_msg.msg.aes_cmac_signature.certificate_id[2] == 3, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.certificate_id[2], expected " + "3, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.certificate_id[2]); + ck_assert_msg(last_msg.msg.aes_cmac_signature.certificate_id[3] == 4, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.certificate_id[3], expected " + "4, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.certificate_id[3]); + + ck_assert_msg(last_msg.msg.aes_cmac_signature.flags == 0, + "incorrect value for last_msg.msg.aes_cmac_signature.flags, " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.flags); + + ck_assert_msg(last_msg.msg.aes_cmac_signature.n_signed_messages == 3, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.n_signed_messages, expected " + "3, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.n_signed_messages); + + ck_assert_msg(last_msg.msg.aes_cmac_signature.on_demand_counter == 2, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.on_demand_counter, expected " + "2, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.on_demand_counter); + + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[0] == 0, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[0], " + "expected 0, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[0]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[1] == 1, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[1], " + "expected 1, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[1]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[2] == 2, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[2], " + "expected 2, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[2]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[3] == 3, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[3], " + "expected 3, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[3]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[4] == 4, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[4], " + "expected 4, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[4]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[5] == 5, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[5], " + "expected 5, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[5]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[6] == 6, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[6], " + "expected 6, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[6]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[7] == 7, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[7], " + "expected 7, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[7]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[8] == 8, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[8], " + "expected 8, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[8]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[9] == 9, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[9], " + "expected 9, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[9]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[10] == 10, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[10], " + "expected 10, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[10]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[11] == 11, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[11], " + "expected 11, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[11]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[12] == 12, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[12], " + "expected 12, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[12]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[13] == 13, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[13], " + "expected 13, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[13]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[14] == 14, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[14], " + "expected 14, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[14]); + ck_assert_msg( + last_msg.msg.aes_cmac_signature.signature[15] == 15, + "incorrect value for last_msg.msg.aes_cmac_signature.signature[15], " + "expected 15, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signature[15]); + + ck_assert_msg(last_msg.msg.aes_cmac_signature.signed_messages[0] == 11, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.signed_messages[0], " + "expected 11, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signed_messages[0]); + ck_assert_msg(last_msg.msg.aes_cmac_signature.signed_messages[1] == 22, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.signed_messages[1], " + "expected 22, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signed_messages[1]); + ck_assert_msg(last_msg.msg.aes_cmac_signature.signed_messages[2] == 33, + "incorrect value for " + "last_msg.msg.aes_cmac_signature.signed_messages[2], " + "expected 33, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.signed_messages[2]); + + ck_assert_msg( + last_msg.msg.aes_cmac_signature.stream_counter == 1, + "incorrect value for last_msg.msg.aes_cmac_signature.stream_counter, " + "expected 1, is %" PRId64, + (int64_t)last_msg.msg.aes_cmac_signature.stream_counter); + } +} +END_TEST + +Suite *auto_check_sbp_signing_MsgAesCmacSignature_suite(void) { + Suite *s = suite_create( + "SBP generated test suite: auto_check_sbp_signing_MsgAesCmacSignature"); + TCase *tc_acq = tcase_create( + "Automated_Suite_auto_check_sbp_signing_MsgAesCmacSignature"); + tcase_add_test(tc_acq, test_auto_check_sbp_signing_MsgAesCmacSignature); + suite_add_tcase(s, tc_acq); + return s; +} \ No newline at end of file diff --git a/c/test/check_main.c b/c/test/check_main.c index 8359ba976b..a3a17a23e6 100644 --- a/c/test/check_main.c +++ b/c/test/check_main.c @@ -225,6 +225,7 @@ int main(void) { srunner_add_suite(sr, auto_check_sbp_settings_MsgSettingsSave_suite()); srunner_add_suite(sr, auto_check_sbp_settings_MsgSettingsWrite_suite()); srunner_add_suite(sr, auto_check_sbp_settings_MsgSettingsWriteResp_suite()); + srunner_add_suite(sr, auto_check_sbp_signing_MsgAesCmacSignature_suite()); srunner_add_suite(sr, auto_check_sbp_signing_MsgCertificateChain_suite()); srunner_add_suite(sr, auto_check_sbp_signing_MsgCertificateChainDep_suite()); srunner_add_suite(sr, auto_check_sbp_signing_MsgEcdsaCertificate_suite()); diff --git a/c/test/check_suites.h b/c/test/check_suites.h index 402d5738af..745a5b3b5e 100644 --- a/c/test/check_suites.h +++ b/c/test/check_suites.h @@ -196,6 +196,7 @@ Suite* auto_check_sbp_settings_MsgSettingsRegisterResp_suite(void); Suite* auto_check_sbp_settings_MsgSettingsSave_suite(void); Suite* auto_check_sbp_settings_MsgSettingsWrite_suite(void); Suite* auto_check_sbp_settings_MsgSettingsWriteResp_suite(void); +Suite* auto_check_sbp_signing_MsgAesCmacSignature_suite(void); Suite* auto_check_sbp_signing_MsgCertificateChain_suite(void); Suite* auto_check_sbp_signing_MsgCertificateChainDep_suite(void); Suite* auto_check_sbp_signing_MsgEcdsaCertificate_suite(void); diff --git a/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc b/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc new file mode 100644 index 0000000000..f3ef5ed3e6 --- /dev/null +++ b/c/test/cpp/auto_check_sbp_signing_MsgAesCmacSignature.cc @@ -0,0 +1,1030 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/signing/test_MsgAesCmacSignature.yaml by +// generate.py. Do not modify by hand! + +#include +#include +#include +#include +#include + +namespace { + +template +void assign(T &dest, const U &source) { + dest = static_cast(source); +} +class Testauto_check_sbp_signing_MsgAesCmacSignature0 : public ::testing::Test { + public: + Testauto_check_sbp_signing_MsgAesCmacSignature0() { + assign(test_msg_.certificate_id[0], 1); + + assign(test_msg_.certificate_id[1], 2); + + assign(test_msg_.certificate_id[2], 3); + + assign(test_msg_.certificate_id[3], 4); + assign(test_msg_.flags, 0); + assign(test_msg_.n_signed_messages, 3); + assign(test_msg_.on_demand_counter, 2); + + assign(test_msg_.signature[0], 0); + + assign(test_msg_.signature[1], 1); + + assign(test_msg_.signature[2], 2); + + assign(test_msg_.signature[3], 3); + + assign(test_msg_.signature[4], 4); + + assign(test_msg_.signature[5], 5); + + assign(test_msg_.signature[6], 6); + + assign(test_msg_.signature[7], 7); + + assign(test_msg_.signature[8], 8); + + assign(test_msg_.signature[9], 9); + + assign(test_msg_.signature[10], 10); + + assign(test_msg_.signature[11], 11); + + assign(test_msg_.signature[12], 12); + + assign(test_msg_.signature[13], 13); + + assign(test_msg_.signature[14], 14); + + assign(test_msg_.signature[15], 15); + + assign(test_msg_.signed_messages[0], 11); + + assign(test_msg_.signed_messages[1], 22); + + assign(test_msg_.signed_messages[2], 33); + assign(test_msg_.stream_counter, 1); + } + + class SlowReader final : public sbp::IReader { + public: + SlowReader(const uint8_t *buf, uint32_t len) + : sbp::IReader(), buf_{buf}, len_{len} {} + + s32 read(uint8_t *buf, const uint32_t n) override { + if (n == 0) { + return 0; + } + if (remaining() == 0) { + return -1; + } + skip_next_read = !skip_next_read; + if (skip_next_read) { + return 0; + } + uint32_t real_n = std::min(n, 1u); + memcpy(buf, buf_ + offset_, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return len_ - offset_; } + + static s32 read_static(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->read(buf, len); + } + + private: + const uint8_t *buf_; + uint32_t len_; + uint32_t offset_{}; + bool skip_next_read{}; + }; + + class Reader final : public sbp::IReader { + public: + Reader(const uint8_t *buf, uint32_t len) + : sbp::IReader(), buf_{buf}, len_{len} {} + + s32 read(uint8_t *buf, const uint32_t n) override { + if (n == 0) { + return 0; + } + uint32_t real_n = std::min(n, remaining()); + if (real_n == 0) { + return -1; + } + memcpy(buf, buf_ + offset_, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return len_ - offset_; } + + static s32 read_static(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->read(buf, len); + } + + private: + const uint8_t *buf_; + uint32_t len_; + uint32_t offset_{}; + }; + + class SlowWriter final : public sbp::IWriter { + public: + explicit SlowWriter(uint32_t max_len = cMaxLen) + : IWriter(), max_len_{max_len} {} + static constexpr uint32_t cMaxLen = SBP_MAX_FRAME_LEN; + + s32 write(const uint8_t *buf, uint32_t n) override { + if (n == 0) { + return 0; + } + uint32_t real_n = std::min(n, 1u); + if (real_n == 0) { + return -1; + } + memcpy(buf_ + offset_, buf, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return max_len_ - offset_; } + + const uint8_t *data() const noexcept { return buf_; } + + uint32_t len() const noexcept { return offset_; } + + static s32 write_static(const uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + static s32 write_c(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + private: + uint8_t buf_[cMaxLen]; + uint32_t max_len_; + uint32_t offset_{}; + }; + + class Writer final : public sbp::IWriter { + public: + explicit Writer(uint32_t max_len = cMaxLen) + : IWriter(), max_len_{max_len} {} + static constexpr uint32_t cMaxLen = SBP_MAX_FRAME_LEN; + + s32 write(const uint8_t *buf, uint32_t n) override { + if (n == 0) { + return 0; + } + uint32_t real_n = std::min(n, remaining()); + if (real_n == 0) { + return -1; + } + memcpy(buf_ + offset_, buf, real_n); + offset_ += real_n; + return static_cast(real_n); + } + + uint32_t remaining() const noexcept { return max_len_ - offset_; } + + const uint8_t *data() const noexcept { return buf_; } + + uint32_t len() const noexcept { return offset_; } + + static s32 write_static(const uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + static s32 write_c(uint8_t *buf, uint32_t len, void *ctx) { + return static_cast(ctx)->write(buf, len); + } + + private: + uint8_t buf_[cMaxLen]; + uint32_t max_len_; + uint32_t offset_{}; + }; + + struct CppHandler final + : public sbp::MessageHandler { + using sbp::MessageHandler::MessageHandler; + + struct Output final { + uint16_t sender_id; + sbp_msg_aes_cmac_signature_t msg; + }; + + std::vector outputs{}; + + protected: + void handle_sbp_msg(uint16_t sender_id, + const sbp_msg_aes_cmac_signature_t &msg) override { + outputs.emplace_back(); + outputs.back().sender_id = sender_id; + memcpy(&outputs.back().msg, &msg, sizeof(msg)); + } + }; + + struct CHandler final { + explicit CHandler(sbp_state_t *state) : state_{state} { + sbp_callback_register(state, SbpMsgAesCmacSignature, + &CHandler::callback_static, this, &node_); + } + + ~CHandler() { sbp_remove_callback(state_, &node_); } + + struct Output final { + uint16_t sender_id; + sbp_msg_aes_cmac_signature_t msg; + }; + + std::vector outputs{}; + + private: + void callback(uint16_t sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg) { + ASSERT_EQ(msg_type, SbpMsgAesCmacSignature); + outputs.emplace_back(); + outputs.back().sender_id = sender_id; + memcpy(&outputs.back().msg, &msg->aes_cmac_signature, + sizeof(msg->aes_cmac_signature)); + } + + static void callback_static(uint16_t sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg, void *ctx) { + static_cast(ctx)->callback(sender_id, msg_type, msg); + } + + sbp_msg_callbacks_node_t node_{}; + sbp_state_t *state_; + }; + + struct TestMsgInfo { + sbp_msg_aes_cmac_signature_t test_msg; + sbp_msg_t test_msg_wrapped; + sbp_msg_type_t msg_type; + uint16_t sender_id; + uint8_t preamble; + uint16_t crc; + const uint8_t *encoded_frame; + uint32_t frame_len; + const uint8_t *encoded_payload; + uint8_t payload_len; + + Reader get_frame_reader() const noexcept { + return Reader{encoded_frame, frame_len}; + } + + Reader get_frame_reader(uint32_t max) const noexcept { + assert(max <= frame_len); + return Reader{encoded_frame, max}; + } + + SlowReader get_slow_frame_reader() const noexcept { + return SlowReader{encoded_frame, frame_len}; + } + + Writer get_frame_writer() const noexcept { return Writer{frame_len}; } + + Writer get_frame_writer(uint32_t max) const noexcept { return Writer{max}; } + + SlowWriter get_slow_frame_writer() const noexcept { + return SlowWriter{frame_len}; + } + }; + + TestMsgInfo get_test_msg_info() const noexcept { + TestMsgInfo info; + memcpy(&info.test_msg, &test_msg_, sizeof(test_msg_)); + memcpy(&info.test_msg_wrapped.aes_cmac_signature, &test_msg_, + sizeof(test_msg_)); + info.msg_type = static_cast(SbpMsgAesCmacSignature); + info.sender_id = 66; + info.preamble = 0x55; + info.crc = 0x15C0; + info.encoded_frame = encoded_frame_; + info.frame_len = sizeof(encoded_frame_); + info.encoded_payload = encoded_payload_; + info.payload_len = 26; + + return info; + } + + protected: + void comparison_tests(const sbp_msg_aes_cmac_signature_t &lesser, + const sbp_msg_aes_cmac_signature_t &greater) { + sbp_msg_t wrapped_lesser = + sbp::MessageTraits::to_sbp_msg(lesser); + sbp_msg_t wrapped_greater = + sbp::MessageTraits::to_sbp_msg(greater); + + EXPECT_EQ(sbp_msg_aes_cmac_signature_cmp(&lesser, &lesser), 0); + EXPECT_EQ(sbp_msg_aes_cmac_signature_cmp(&greater, &greater), 0); + EXPECT_LE(sbp_msg_aes_cmac_signature_cmp(&lesser, &greater), 0); + EXPECT_GT(sbp_msg_aes_cmac_signature_cmp(&greater, &lesser), 0); + + EXPECT_EQ(sbp_message_cmp(SbpMsgAesCmacSignature, &wrapped_lesser, + &wrapped_lesser), + 0); + EXPECT_EQ(sbp_message_cmp(SbpMsgAesCmacSignature, &wrapped_greater, + &wrapped_greater), + 0); + EXPECT_LE(sbp_message_cmp(SbpMsgAesCmacSignature, &wrapped_lesser, + &wrapped_greater), + 0); + EXPECT_GT(sbp_message_cmp(SbpMsgAesCmacSignature, &wrapped_greater, + &wrapped_lesser), + 0); + + // lesser vs lesser + EXPECT_TRUE(lesser == lesser); + EXPECT_FALSE(lesser != lesser); + EXPECT_FALSE(lesser < lesser); + EXPECT_TRUE(lesser <= lesser); + EXPECT_FALSE(lesser > lesser); + EXPECT_TRUE(lesser >= lesser); + + // greater vs greater + EXPECT_TRUE(greater == greater); + EXPECT_FALSE(greater != greater); + EXPECT_FALSE(greater < greater); + EXPECT_TRUE(greater <= greater); + EXPECT_FALSE(greater > greater); + EXPECT_TRUE(greater >= greater); + + // lesser vs greater + EXPECT_FALSE(lesser == greater); + EXPECT_TRUE(lesser != greater); + EXPECT_TRUE(lesser < greater); + EXPECT_TRUE(lesser <= greater); + EXPECT_FALSE(lesser > greater); + EXPECT_FALSE(lesser >= greater); + + // greater vs lesser + EXPECT_FALSE(greater == lesser); + EXPECT_TRUE(greater != lesser); + EXPECT_FALSE(greater < lesser); + EXPECT_FALSE(greater <= lesser); + EXPECT_TRUE(greater > lesser); + EXPECT_TRUE(greater >= lesser); + } + + template ::value, bool> = true> + void make_lesser_greater(T &lesser, T &greater) { + if (lesser > std::numeric_limits::min()) { + lesser--; + } else { + greater++; + } + } + + template ::value, bool> = true> + void make_lesser_greater(T &lesser, T &greater) { + (void)lesser; + greater += static_cast(1.0); + } + + void make_lesser_greater(sbp_string_t &lesser, sbp_string_t &greater) { + if (greater.data[0] == 'z') { + lesser.data[0]--; + } else { + greater.data[0]++; + } + } + + template + void make_lesser_greater(char (&lesser)[N], char (&greater)[N]) { + if (lesser[0] == 'z') { + lesser[0]--; + } else { + greater[0]++; + } + } + + private: + sbp_msg_aes_cmac_signature_t test_msg_{}; + uint8_t encoded_frame_[26 + 8] = { + 85, 16, 12, 66, 0, 26, 1, 2, 1, 2, 3, 4, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 11, 22, 33, 192, 21, + }; + uint8_t encoded_payload_[26] = { + 1, 2, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 11, 22, 33, + }; +}; + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, EncodedLen) { + auto info = get_test_msg_info(); + EXPECT_EQ(sbp_msg_aes_cmac_signature_encoded_len(&info.test_msg), + info.payload_len); + + EXPECT_EQ( + sbp_message_encoded_len(SbpMsgAesCmacSignature, &info.test_msg_wrapped), + info.payload_len); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, EncodeToBuf) { + auto info = get_test_msg_info(); + uint8_t buf[26]; + uint8_t n_written; + + EXPECT_EQ(sbp_msg_aes_cmac_signature_encode(&buf[0], sizeof(buf), &n_written, + &info.test_msg), + SBP_OK); + EXPECT_EQ(n_written, 26); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 26), 0); + + memset(&buf[0], 0, sizeof(buf)); + EXPECT_EQ(sbp_message_encode(&buf[0], sizeof(buf), &n_written, + SbpMsgAesCmacSignature, &info.test_msg_wrapped), + SBP_OK); + EXPECT_EQ(n_written, 26); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 26), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + EncodeToBufWithoutNwritten) { + auto info = get_test_msg_info(); + uint8_t buf[26]; + + EXPECT_EQ(sbp_msg_aes_cmac_signature_encode(&buf[0], sizeof(buf), nullptr, + &info.test_msg), + SBP_OK); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 26), 0); +} +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, EncodedToBufUnderflow) { + auto info = get_test_msg_info(); + uint8_t buf[26]; + + for (uint8_t i = 0; i < 26; i++) { + EXPECT_EQ( + sbp_msg_aes_cmac_signature_encode(&buf[0], i, nullptr, &info.test_msg), + SBP_ENCODE_ERROR); + } +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, DecodeFromBuf) { + auto info = get_test_msg_info(); + sbp_msg_aes_cmac_signature_t msg{}; + uint8_t n_read; + + EXPECT_EQ(sbp_msg_aes_cmac_signature_decode(&info.encoded_payload[0], + info.payload_len, &n_read, &msg), + SBP_OK); + EXPECT_EQ(n_read, 26); + EXPECT_EQ(msg, info.test_msg); + + sbp_msg_t wrapped_msg{}; + EXPECT_EQ(sbp_message_decode(&info.encoded_payload[0], info.payload_len, + &n_read, SbpMsgAesCmacSignature, &wrapped_msg), + SBP_OK); + EXPECT_EQ(n_read, 26); + EXPECT_EQ(msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + DecodeFromBufWithoutNread) { + auto info = get_test_msg_info(); + sbp_msg_aes_cmac_signature_t msg{}; + + EXPECT_EQ(sbp_msg_aes_cmac_signature_decode(&info.encoded_payload[0], + info.payload_len, nullptr, &msg), + SBP_OK); + EXPECT_EQ(msg, info.test_msg); +} +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + DecodeFromBufUnderflow) { + auto info = get_test_msg_info(); + sbp_msg_aes_cmac_signature_t msg{}; + + for (uint8_t i = 0; i < info.payload_len; i++) { + int expected_return = SBP_DECODE_ERROR; + size_t overhead = []() -> size_t { + sbp_msg_aes_cmac_signature_t t{}; + return sbp_msg_aes_cmac_signature_encoded_len(&t); + }(); + size_t elem_size = []() -> size_t { + sbp_msg_aes_cmac_signature_t t{}; + t.n_signed_messages = 1; + return sbp_msg_aes_cmac_signature_encoded_len(&t); + }() - overhead; + + if (i >= overhead) { + if (((i - overhead) % elem_size) == 0) { + expected_return = SBP_OK; + } + } + + EXPECT_EQ(sbp_msg_aes_cmac_signature_decode(&info.encoded_payload[0], i, + nullptr, &msg), + expected_return); + } +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + ReceiveThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto reader = info.get_frame_reader(); + sbp_state_set_io_context(&state, &reader); + + CHandler handler{&state}; + + while (reader.remaining() > 0) { + EXPECT_GE(sbp_process(&state, &Reader::read_static), SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + ReceiveThroughSbpStateUnderflow) { + auto info = get_test_msg_info(); + + for (uint32_t i = 0; i < info.frame_len; i++) { + sbp_state_t state; + sbp_state_init(&state); + + auto reader = info.get_frame_reader(i); + sbp_state_set_io_context(&state, &reader); + + CHandler handler(&state); + + int most_recent_return = sbp_process(&state, &Reader::read_static); + while (most_recent_return == SBP_OK || reader.remaining() > 0) { + most_recent_return = sbp_process(&state, &Reader::read_static); + } + + EXPECT_NE(most_recent_return, SBP_OK); + EXPECT_EQ(reader.remaining(), 0); + + EXPECT_EQ(handler.outputs.size(), 0); + } +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, SlowRead) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto reader = info.get_slow_frame_reader(); + sbp_state_set_io_context(&state, &reader); + + CHandler handler{&state}; + + while (reader.remaining() > 0) { + EXPECT_GE(sbp_process(&state, &SlowReader::read_static), SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, BadCRC) { + auto info = get_test_msg_info(); + uint8_t buf[SBP_MAX_FRAME_LEN]; + memcpy(&buf[0], info.encoded_frame, info.frame_len); + + // Introduce a CRC error which should cause an error return and no callback + buf[info.frame_len - 1]++; + + sbp_state_t state; + sbp_state_init(&state); + + Reader reader{buf, info.frame_len}; + sbp_state_set_io_context(&state, &reader); + + CHandler handler{&state}; + + while (reader.remaining() > 0) { + int res = sbp_process(&state, &Reader::read_static); + EXPECT_EQ(res, reader.remaining() == 0 ? SBP_CRC_ERROR : SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, SendThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp_msg_aes_cmac_signature_send(&state, info.sender_id, + &info.test_msg, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), &info.encoded_frame[0], writer.len()), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + SendWrappedThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp_message_send(&state, SbpMsgAesCmacSignature, info.sender_id, + &info.test_msg_wrapped, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + SendThroughSbpStateUnderflow) { + auto info = get_test_msg_info(); + + for (uint32_t i = 0; i < info.frame_len; i++) { + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(i); + sbp_state_set_io_context(&state, &writer); + + EXPECT_NE(sbp_message_send(&state, SbpMsgAesCmacSignature, info.sender_id, + &info.test_msg_wrapped, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), i); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, i), 0); + } +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, DISABLED_SlowWrite) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_slow_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp_message_send(&state, SbpMsgAesCmacSignature, info.sender_id, + &info.test_msg_wrapped, &SlowWriter::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, Comparison) { + auto info = get_test_msg_info(); + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.certificate_id[0], greater.certificate_id[0]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.certificate_id[1], greater.certificate_id[1]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.certificate_id[2], greater.certificate_id[2]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.certificate_id[3], greater.certificate_id[3]); + comparison_tests(lesser, greater); + } + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.flags, greater.flags); + comparison_tests(lesser, greater); + } + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.n_signed_messages, greater.n_signed_messages); + comparison_tests(lesser, greater); + } + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.on_demand_counter, greater.on_demand_counter); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[0], greater.signature[0]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[1], greater.signature[1]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[2], greater.signature[2]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[3], greater.signature[3]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[4], greater.signature[4]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[5], greater.signature[5]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[6], greater.signature[6]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[7], greater.signature[7]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[8], greater.signature[8]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[9], greater.signature[9]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[10], greater.signature[10]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[11], greater.signature[11]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[12], greater.signature[12]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[13], greater.signature[13]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[14], greater.signature[14]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signature[15], greater.signature[15]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signed_messages[0], greater.signed_messages[0]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signed_messages[1], greater.signed_messages[1]); + comparison_tests(lesser, greater); + } + + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.signed_messages[2], greater.signed_messages[2]); + comparison_tests(lesser, greater); + } + { + sbp_msg_aes_cmac_signature_t lesser = info.test_msg; + sbp_msg_aes_cmac_signature_t greater = info.test_msg; + make_lesser_greater(lesser.stream_counter, greater.stream_counter); + comparison_tests(lesser, greater); + } +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, CppTraitsProperties) { + // EXPECT_EQ(sbp::MessageTraits::id, + // SbpMsgAesCmacSignature); + EXPECT_STREQ(sbp::MessageTraits::name, + "MSG_AES_CMAC_SIGNATURE"); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, CppTraitsFromSbpMsgT) { + auto info = get_test_msg_info(); + + const sbp_msg_t &const_sbp_msg_t = info.test_msg_wrapped; + sbp_msg_t &non_const_sbp_msg_t = info.test_msg_wrapped; + + const sbp_msg_aes_cmac_signature_t &const_unwrapped = + sbp::MessageTraits::get(const_sbp_msg_t); + sbp_msg_aes_cmac_signature_t &non_const_unwrapped = + sbp::MessageTraits::get( + non_const_sbp_msg_t); + + EXPECT_EQ((const void *)&const_sbp_msg_t, (const void *)&const_unwrapped); + EXPECT_EQ((void *)&non_const_sbp_msg_t, (void *)&non_const_unwrapped); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, CppTraitsToSbpMsgT) { + auto info = get_test_msg_info(); + + sbp_msg_t msg1 = sbp::MessageTraits::to_sbp_msg( + info.test_msg); + EXPECT_EQ(msg1.aes_cmac_signature, info.test_msg); + + sbp_msg_t msg2; + sbp::MessageTraits::to_sbp_msg(info.test_msg, + &msg2); + EXPECT_EQ(msg2.aes_cmac_signature, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, CppTraitsEncodedLen) { + auto info = get_test_msg_info(); + EXPECT_EQ(sbp::MessageTraits::encoded_len( + info.test_msg), + info.payload_len); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + CppTraitsSendThroughSbpState) { + auto info = get_test_msg_info(); + sbp_state_t state; + sbp_state_init(&state); + + auto writer = info.get_frame_writer(); + sbp_state_set_io_context(&state, &writer); + + EXPECT_EQ(sbp::MessageTraits::send( + &state, info.sender_id, info.test_msg, &Writer::write_c), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), &info.encoded_frame[0], writer.len()), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, CppTraitsEncodeToBuf) { + auto info = get_test_msg_info(); + uint8_t buf[26]; + uint8_t n_written; + + EXPECT_EQ(sbp::MessageTraits::encode( + &buf[0], sizeof(buf), &n_written, info.test_msg), + SBP_OK); + EXPECT_EQ(n_written, 26); + EXPECT_EQ(memcmp(&buf[0], info.encoded_payload, 26), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + CppTraitsDecodeFromBuf) { + auto info = get_test_msg_info(); + sbp_msg_aes_cmac_signature_t msg{}; + uint8_t n_read; + + EXPECT_EQ(sbp::MessageTraits::decode( + &info.encoded_payload[0], info.payload_len, &n_read, &msg), + SBP_OK); + EXPECT_EQ(n_read, 26); + EXPECT_EQ(msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + ReceiveThroughMessageHandler) { + auto info = get_test_msg_info(); + auto reader = info.get_frame_reader(); + + sbp::State state{}; + state.set_reader(&reader); + + CppHandler handler{&state}; + + while (reader.remaining() > 0) { + EXPECT_GE(state.process(), SBP_OK); + } + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + ProcessSbpMsgTThroughMessageHandler) { + auto info = get_test_msg_info(); + sbp::State state{}; + CppHandler handler(&state); + + state.process_message(info.sender_id, SbpMsgAesCmacSignature, + &info.test_msg_wrapped); + + EXPECT_EQ(handler.outputs.size(), 1); + EXPECT_EQ(handler.outputs[0].sender_id, info.sender_id); + EXPECT_EQ(handler.outputs[0].msg, info.test_msg); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, SendThroughCppState) { + auto info = get_test_msg_info(); + auto writer = info.get_frame_writer(); + + sbp::State state{}; + state.set_writer(&writer); + + EXPECT_EQ(state.send_message(info.sender_id, info.test_msg), SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +TEST_F(Testauto_check_sbp_signing_MsgAesCmacSignature0, + SendWrappedSbpMsgTThroughCppState) { + auto info = get_test_msg_info(); + auto writer = info.get_frame_writer(); + + sbp::State state{}; + state.set_writer(&writer); + + EXPECT_EQ(state.send_message(info.sender_id, SbpMsgAesCmacSignature, + info.test_msg_wrapped), + SBP_OK); + EXPECT_EQ(writer.len(), info.frame_len); + EXPECT_EQ(memcmp(writer.data(), info.encoded_frame, info.frame_len), 0); +} + +} // namespace \ No newline at end of file diff --git a/docs/sbp.pdf b/docs/sbp.pdf index e09f1129cec4204d50b95529fd47dcc2969253bd..7b49d5a08d5ba3087a669c37afb3a7c951c8090a 100644 GIT binary patch delta 338002 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%0DaGh@;aDr!2 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

5V43g6n=NoAVvGy$ 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∓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�!WFxZiZixU6-dQ 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

!Bn%Vm1P(kzPa@#m_3Xk97 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

nYg=C8y& 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

XdKm5hlbrl;s`NZ;R;-4X$h6haxs zO1{`t_;1lIRXW)cKe0}>*}|)ojftKXK6&I@I1-y*fLmIyVqo(*$t@_skx4$XaY`9`a;7_sKuD8uk92Ma$*q z+%pfpgljvi5T-11xb@e0SdTx_Ihp@kg2DiBaVIsvQv;3q3nlE2!Ziq^VpIVCL=)R?2V@BA22^r^LZ=gcuDOEvXRQ zgz>sNUtgZi1pAKEl^QFl8h6}q&0waIgbui6S%_={pLbu&+cC1u#=w`K z`n1`Y1-D)emJmF%)}1|)cF$~y4=>1+d@@yYT4pB}u~T7O7?rny&(4W5_inb;0&IRy z*qG+5iQ3}jyg-um9=BC4WUi{aY@u{+uyEYv6Aj(NQXds0OfrT7FZSO4!SGPo#e|AZF zuvj>GdXZ?2(!maY>aPB9GQ|$9f3wwXeLcP{y>ItNhm4Ff`BbI#HvwF@Ujb#>?|A)w z%)2MG%|J2t4tlPso}dL2Sf)EXx_|lp^QL@`ZF==gQ0g{6*FrIU9cMP~l`?b)y2*-& z6gvOb>G6Kl^6QT8z-^@|V3gt_AUz3T?oWs7e^9u5S6T5Nw0Cmhm-Wk&-r6~ zphAXNPr}*u$9!_LC+zVllEir2D}wp{kO#1pjshTy;bIA>{fnDUz*jmBs1(*_(>UQ2 za5sH@Zhb$LC!=n1J}udDe1a|mlgprPCD}lp@E%>e237@!pGS zmwWi#&2A#N=5o{8)TZ-P+Ob3pmEC=7C9k35Q-Qaf2h`-=H#ns??0(a)$qAiz{aEu?66 zwkEW&mw??)eB ztA$FpUF|li6O!ro5cjJ@IL6uPXwag&+bPxJy|uLC5KdPZMRgQ25)0{5!eyXso6$2h z=LXz&4$1w$t;1xNekSeE~Cry^9C;e6l*HQ-UKdwyeDD>C0+kyVwvFJV1Rx&#H#uPS6v`o zjTWSVv)gFdYTh$B21o+=BH@oVWk~iJnY^Xz!fXRkc}8E%ui8%hX5igyMxF)TL=quP z^1n4ffNs< zC2~zL{Nsj#ubP+=e}U%O{en2+Jca$w36waEHy#Wh;r|z-&i+l2QG-!`$EeFX;7Y>x zo@@SY=!p&;8v6|*;m>#0ECdJcglHFohbKuDh@(P8EA)E(=0q;Iyq1W&S4~V9p>s{N+-P@l_K1dj=Vy`a%p&C1*X5C7^)XQWHaH@R;Q1l!LB=hMEK?iV4;?W8co_K!RSCJ9>O(Q!JR8NzLQ|r; zO!RjeP9Qwv9;*`KmJ}0yrBN|QD1BCfibw_lGoC~q5qUH?C39AZC;T6gM*$YM#~FI( zOkzHb04`KKj~tULP$(iN?3e#xP=9ReWRjjveexy>*j%D%2q+1dTXy9@V+Re1S+vx_ zt4C#LyQ#Pq{h1C2QGk&#r^2Dg^0p8D!W$@mv z*aD7^s@8m5Pix9MKh0jf+&ca>^X2K+uB(o{**$#@tu>7tJ7)GXiRkJ0!HNEqwe-H8 zvKc75e*qNb)OO{)-4izD^qYCzoo-foe?AVqUr#)&0Zm@~S}!0K9m)h1ff)jVC07F< z++%X_x8;t?DW(z-V01+ke3F+R}*`n zP<+4fFM@m-Ok8ZjS1g$g5v6Tk)zV|5&FqWw$~*G#3Z;pcgraLDzQuPbo>3p6YgHbB zTdJW4S6fV6l1$Zm!tA~1qh%7RF2rjrP&prsa-&U=s;XTB+!sydZzQtUM#!(m$p8_NYs-L4x3J*mYd7^Jlud2P zU&p-{#&wYtzEWCS_^1+Z9cH3y#%Vy`35swZ0vMS6-T42WE~>A#Vf|Erea>a9>ySh( zuI?`Oe72pK%heRYlR$-v;8n?`K|~4gssz>PyDxh65~a|nymjb8;! z)&7fL>f3sVn-01mo_PJIrC9U!w}<#&WIXMjaGg-YprkOCn(hOkmzlkC_c0qVHvbxY z{_J9Ngf2JF_acAkgd??g0k=?UJW7Y{i#?LGgSd@;Wb|o#Mu}Fr0aOL^f{sQ+wBa8T zOZCX`;k@YnIa(FAX9Gp7j@^intTuIpmuUC?oZc8-_RIbLe;cX)ti{2Ync4qmM3H8` z1V96RD?J;=)E8tFkeo(ERg;IQ#V5%y);}Kgk@MxGlgDyT#lbPFHa`R|z{s>9$=b1e zvt#@|@G^uTe z<|Oq`o%Xb^=@?EJu?SvnZ*}TYFf>_DoYX)U8>e3axct#nSY)7^A)*Z?bW(qct_7u- z!iuW=jf{WYtkTp5g-iDveWgMz&gYTtp%D1to2-fc1_ePvUrzV`e|UPw_DI{V3oxnJ zwylnB+a0rG+pgHQZQEwY>ex0q?09lN@63Ft&^Bw zi`I?~jl76LOg*S*)QVEhPkYiew05_t zX@@{+h3>90L+vBgtV6X)UyyJA3*zxzEfwE)zi*}{xT;_KSQ~tVR(E8-KA;!{jYT7# zJjb3z{oz&M5J=c+x~TVUojN$rTmLe|su!kUf=xDZr!!Yr?Q^r{oOG_!10K%KypF1= z0cZ|mb$wqRY3~=((1X5&d<4>~|Ng35hDOP?uJXm z)-gswsO}>twULuP8wTf+kQvJB5E#}6*RHN)nSF)gqMp`Jwhtyw@}uSHm{qm(Kw6Q8 z*nKCOS14r)sr&-#Np>!oqbkp#-Eb)~2(N%H6-7TQ8bz4OHi`t?0MR`JStz*KEUe_U z8pdXD;2|+oE$dI&KT>TgV%K7uM^#y&nr&x!f!_0Yp%q+rXX9Q~iv0=|YtP)=S4k{E zDGQQ96s5>7bPCT4k$2ET58Kb@7Z=Ue7=}fKqAT?WAO@?CfBBj1m{|AcU@@5Pn>`T% z&S#A&cdrUoK>>pKKn0Oq+-xhqL;PXY-W-8i1j_gr?-|>Rk_mWtk;;mjzivypT@%9q zqcys|G!$-*_mZQvmaIs(M;45$8O4zSlKZddaTQZKn$2!6#kE|8FX%$d=Cn_!WL9Gg z&FAmfPm!S{rkM{k6rNOHDS;Ey%di1g?H>X4Dh+TNAU75>z&h2WKn`Q)1e)K5TjJQl za?e}0foM~H&Wl$FNRmt543*o+ZpIE-Y&y^2r?dG(Hy}0&%t<$1B<>c%mF<3>Z>)hd ze-*#%Ns6dz&bQ$7jRM!WW;m<osv606d8ZybOnpLG;eQsx zn%bE-yEvH|rs4hp!2i$Z1kTLK!Is2aN|PqA2KY8iFd=01FcvE+Ses|3sjdO2A+yFW zF2*O*0@ncaK%KY|l%EYCb_dO7XRfJKrpTk8NjZItV1XZn9J5*tfAFcwR+7SCKtor_ zbX=i-CVMq49ZqUoP8(j-grUTd-OMA`@(EL{<_qe0Eslr5xM4o+EE}ygrU!sdsgR3c z|HGmC%T$%P~-cO?i;0Q&m9n0dXuobwTH_6hX#0C{qHS1^Y^5lR27IjI4QUysP|W%D+mqxDwDia)<%pBcOrcGQ?;(jCy1XG z!{oJ>?C7d)yrb_P=4*Yz(4pQ z8c-zi0x_H9E#2a5 zHngIo!%=&to_7yNlx52f0I@cm0rU7t>hH^$Mbp-a)-2nZnHC{#x;xzHa@>eyIYl7n zE*H?f11bk^kc&|F9i8bYPZwPEl}K?q@_6Y99W=HEjqparSP+|GGeb%Ee({-4??M?=;*OA7gW zwsC+{rBCuiYT`7%YTv)(8J8KSQ0S-+Cb#lj^*7?}^YbQ5L=j=|W}Mqvd^pI;y#|G< z0)aY7LTVa+ixYu@S@?Np&xK5}t~1ha zh5=BDR@@9?&3K_bAJz?&$)aA~OFHOdLm4pKT07}xh#nbVvvCq6F+heg!9o;{TrkjA z@OvK~0HiViqT3Y$p{g_?17&^>_^5*~j<3Kx;UMlX7_UvH3j=;AkqcvAuKoDT&E1ik zEyNzo6n8|O5zxy~wEyJh()13*>QrYrRJ{1`)`%}|pd77uvop5~QkV zGvRJKyZjdgaSQJ>!6(Y1p$--vTJ;Eg`nj29QTL8v%&3zfv-)kWBhynnR)|h{)&98h zvbMJdZ@mMfSpEtJ{=d79J7IVa_1FpCuP3YJRlZ4Jz{V7wZl~Q(9>jXheml+A#fmpr zK@maF{1P4@s(aUVpci%>qe1=xGqL_9&LU&&-c=*(6gy_SjRxn-;NR9b=y;xDcY5n$ z5}CpHu`#Tw2wYR0a8qfd0@}C{1%*QB-p~WT>^F8>6d-x zS1fAz)k>xT?6y`(4Jbzw`sh#0hlVqg!)Z{=QO1^|wP-Y0!{foUsX!dSlp$%%sal2Xd2GY# zF3oq_T{M2w&ST1enST?gi+v+kB`Zk`5~CnRet}bXu8d>~*nO(MS>mies7(>ljwrAm zM-BplkLnR!qnY9=Plu^PhZSU={Q$ zU{^ZMazD_@BnxDZCX)}#6UnZ*x-+4KX+A0J+-JwKt8`@;S*)zVKk{WFoJczJxut*2 zRtvaEKtT2zZDzm>T)i-JVi zhej&@enAEHe4E}SpS1c3vfvuG%*8{=9tC49@jw3W$r>PpLK9WA-b?(tM8qq(G?4pnMF{Q>O<%f!D_(CMjbw)4*fdWTqe3KSc~u{fR|)3fEM6 zZT6XERoUc?F+P&&7AWf`{=L1!Iuf?`{if6N^o9#{zmY^3h8vP) z=Jy@nac@V9?;&jp95151e%-e~_?8x~bI9x0uE#`kwAL=Fad}Q;wO|R>+>floWnFho zjiP$!Yt}UaW8_UP!YZe%fVm8KU61A!Y48IVbH0BwJ+~m#I0o{%$bp^i5r%bIVZsuw zO$f;7Oam$OEYC8~LX@lEzh}728SrO{&ZZw9v5hwSFDz^@XC|uMGuKFW4&R1)@VJl; z{aut(5Q6cdhs5XB4xiI0{cjc@z;Ee~U~tg=Vmcy$47JAn&a94!%j&nSt+56-Lpz}1 zJKQbqzSYAX^{x8FNHv+k?NwJaAhy32Q!A&0GT?N_W=1$T&Y!XVOkVL^=WtlQ+GXBs8TQC<*0{X z5L+JzWAdSh;9IekH= z2t#b#e{p_$)%-_|xgWUsZ~jM(ss2Ze;S`W^F^&MDg8UD-s8`+A6!psct3dWkE)Z-t zUoXXIJckT?odOsa5?g(d{8xfR3MK?$8 z1bj1MrDb{I)kMzQ)G*AjQ@meKsZsvEdrO_(Tj@frA4iHCR_25Ub=FrNgENCI#R!ZX zvc1&C{VY)_4XIb%SGXh43!eVIm9ew+2=*Tj7Ed=J z{fLg$J={1s`!bUqZ0YVVR}|RrvtDRh3Bz*OzLum2ziIL^uluZX1pNqa)GqO+d;aE~ zz}PP+1Lw#B!(LO9tGPf`#}8+0b8r>Z*ZGz7`QLUIA5!$p12);@m`E27Sd1O(7>3=Y zTPg1mbm|2MX?r7;hJ{paD^{9dBFT!-_fWx|U81PsUJ4aPb#Z-?C?UV5(kyfAImg@1*imOt z570GvYw*NQUMT5-Nex4ae?J@Kutzp{-t%nX>>XXW2|loynWRv>-NI0YxHD@c+jgik zhpMc_B3v-}AxGGM>WadDnnPqp3&dEU8GhlAEqkNDK?@NN{U|VC6#M&pc<$$v5j{|2 z$Y)g{Vu=ns;+j{=-ING`Zs<>E5jjDr49$v#U3APK8w!z3->+A?ys&?A=umxaUH?>-$%yjh15(R^vhjn#e%G8vPU$myQB4v%Qz z9|+6pq-Tx~@ZpslT`a3JU~mrg4m$e@b_m+JnF&&6TZ96qxB$6Wl^N~p2d0o#xdSXs z;jl8+&Ze?>9~G?Nk`{zHrb{sy?z!_X`@}DWA2a$kBG`o?*XbTu77QyiF6hn^yR%u{ zkc}k`=8tE^W{wT8CC)ZJH%oi&1l!rYn{cm#BvBQ`aQRwCB!tJMfKz zYRpT8yZpzhblvH65qs?q)toK5zl3d@!r^mD!0Fyx%7sCILX;T^m7hM|yQ@nP&F{^1US!qM zy0m)Wylb1BUuQvK!O3*{&Nqr<@QWo@1%K&fqe^7O)iT1EbJ10u*i*?=4meuQ zL3mt(6QQGtN{bGTiDyNV|8tOVtTM%vY&`g~ZYMX5Y^{-w`*I}HvgP&S`5|4b4JAT9 zPG3QCmNDsvj3Z@9cxjXrQ+B-+1&kR0`u>zIa}y(qgYbLR=1NHSP}M%YVWc;*Q)W+^ zTcT+SBgH#yEzKB3TX*0XdcE~23M5boT(0@ZsgWgfbYUj=z*k0=BJETOGaAuk(~0Tz zqngLp?}>oM)WY4;8dXbXg5gM?ov>hewHE6Rc~dlRxYV2)03oEwGy>dJW86^I*;8Wu z#r~5ydVnrpSNluRPC!4quhSEUHKcb_SFf-0A0BlQ(r6;QFPU5?#*6&Zv(&x&Zr zW+h+G)fVd5^0X zzksiMrwjLs5btCDm)zr{BLM|*_LaVd7{((mG}vTvF0u@jJJ{87IegR<0K2WNDb7CU zU<$*DdA%$Rt+pip+#lpRL12$Bubpd8V6(;J=J-Tahd1wvX#*`E|Cs@_i$=4oWKK<$ zx`r_EzbplY&*%#O_?|w2@IB562pn?1*bb2sdt=J^GC0`|pRd0;(o6T6PHa65m%jws z-66+1%=r%Ux=LD~0vpJOgNjcxKAtj)&dpNo`6P>gcCPIAHqLrAI>4<50rh2#>kk_k z_F?D=^Ie|jh1aPcufGM`E;v+)eA*{2fZeOzLoJY0L21mFs{3fj?QyI2HI%;IzQ6an zqKgV0XCFt2Pf9kp5m@IN5X-Y%7tsY}uG~ll%?O-0p>^8JoT0)!rGAlZIv-s({HR=R z+8AwoK5GRfk`C-Q00r*#YI8X$PfuLwW(^;SfxE?GUU->afO)LH#UN&`9FS;m**l-B zawyXM{t@Vz&C<+9`@9W_-NbQ*!3wR^qSphRn{RG7;zoD7Yt^c&!r$j> zyQrvW@v8cOt7lf4VKBD(VeQg4<+kO$YZD*5_i$^Yq)Wh$2dU75j);aqfisl-PjvUg z2vm#1#!SR-7^X8!ER?;4k8}w2&*`0fB=7)z;|*+ zDwm-~DX4QTI?xLOp@e~BPnYmcwUGRHe2)e;m;0Co)~{^$8BFbvoVr09syp`y8J!l9si%oB3dR_=M2jeiV66DZkW2|wsEnNO zJz9QGb0OaVlgy)Xn`&;qS}5z{fy_L&?Q30Y4o`3sNw=Gb-O$VkCuT;)H zZ7L2abe8?+$~XjOzI&a_){8L|z4NYmTUW$cfovwh-y{t#I|IG*^H#k~7Np&RDM=86 z%g~*HP+)4hC$jER9sP^}Ks~OGo`eZOl!6xl@4PDR;^LyAy`Z!@WQxnd>%7dJvrl4tnDDmEJCNKyHAi{d=HrJTm+8mN(8oMkGHv)n zQtaG8iHLu~ghB;hpNVvs;(GTJ)`cLx=r3fmTmCcj7k!}&)cAe2dO72SLEDX)!{aA} z`>>9powN&|Ybkr%6&@@8g5%2fVCf67HP{fCy}7!4DRLxO%KXGGWPc7=y6j$m*Gz#I z8QoeQtiL^PtmM0H%XV8B<-B^=f>65sG-h|wKr!&efJ%?oTP!%Tbkr}T$&+;D;tR89 z$%tX_CP#g{)R&B+?zPlUMKl?{2oy@lKszUNi3emCiYKbmFOaSS;p_k7Xzc$p8iR7A z`HMr+0aH}J4D{r5H;Gi&3J3g6*Wq*0TQqUvLd`s7w%|bsmkf2 za1C{gD*`9E&N!K5p)*B`TwcIZey2ZpMM`|4GD`IEOPR0`0W_ThMJG1uNx4dxNN7fX zRX7ySZM5RM{-H|Wlt1EDe(<&-g7z7DDw&%tb&m&tV+5CVUHiK&b2SL@krVjE- zdw=-ewgzLojjTqj#W)$`I?%5X)_&WBamz(}j?D-eVu=>|`2sBr5pfX#vI_Rh&=kn4RpoD+U%VT)f3B=qbH z?`r$iDS91JLiL;0QGJ+N2>3J?*yZk^hmJHgBOlF~$!iA^_ud(a*|5){G!RqYQNHpp zTy3dDDuomqtMrWnG1=ZG?FFd1Yx^dQ6W-HkgyH^nF0C;UPP;?oH$E_z?ALlHlf{dF zfMd<+D@ag#&i=D;^Dw+z0qqNactV=f>H;GoLaDY+a`J^!{{a14oF%iC?6h3QwAJ)# zDIY7z1*k7}(bq(U$v~X{gs%&Qm8V?0{)3g^zA(GtB;`_=JU0!-ohU!0csUTgV-RD| z@Z?nBz7Pq7X(>C))S>OzWZOE|`}zW{2II8-e@6lKG*IAo9z6H|s0DCZN7i|R3$^!6 z;})}#V}JJ}U57HFNm@R4xwMovNoF3^wn?Itj}*iHX~q6P7$=w}GSxXfN<7d2xE1p` zhkz_GZW@@VLDe^{=*NA;qulYG4}TvOoRFO)=9G&Di7*c1S*Sr?Zl+jDalHpg! z5Y?)^vbOS)6>OCvI}H?G_xQE(preMBWmCFHbp1I*IYh13_H<*^!-A@)Kco05FhGn< z;ZcS-LqRgW|N6avPyVqtp9Ov-S9Q4T)~&#WVi4qMo06U5!za8gVlmELnmD+1%mQOC zNZ@teO@=gK5yN3C6q@c(9Ej=O` z>@P40b)CU}-nNbMf+75K*7*9XbiwKD-D3C$9J1+6?PMtp!{q3eUNz_SKHCu2R%l&F zr;sEk_R8nlsSv}YoX}#S&0X$m01hd1B~A#ov>B6_n77JyZqKXR)917M&UWuqKkFIa z0gvx-_Z=1KpdPT`D>t_=&9Q1%j5P?)bF#o7g)Ew2;=Pi^4!PPnvZLV4NUu#??M-sT zYUy#U1BD0USuXJw)< zrl>A{uy@@7lj|22POHAu80TZ&s9{TWRoU51nRW4j=80u0@C{T#$8=+Ip+DYuzZV^x7{6~+L?}Pz3(t=%Ron@qfEWT zO+{-TTXFcD8|kNm-@J|O%|+uA!#kQII9JZ5XQFv^Ym=xp+}u~PPcus|OD<&(*Evwbb-CU9NWhBP9V z#sSFAR`3nwgt;^Whr6~FzEDE}B#B%%UE^JM83W=By8pTxoUOTvkW7qcNGM1!%#Edw zwr%*7%&DbzSoUtKni<))f9bLv5sxE)&amcwT1<|PR-6sFFyvE1zvXl^b7_I6bmSLO z?f>bta@O;Au0Lk^P_(7Oq{IkRwSW$$Nnv2|RpyA2cU@Ey3Cb-bUwOza!}c)CD|0ZC z3DbBMCrROzE?vq}aHy@9;V^YVNuzoLkg;5a4U3)ptX!2#FrM=UZ^BYZzr&|p5jagv zM9~~~ruPJ=vrrIz9Is+2f`d+={+ z5EuY32K>}jnJjw_U1nIr3GXG+(POKxrCHRrXJXQ+Q~eU8rH1T$~P=F?!BXo2Vo z1ddFP;^||`ZDG=gC%vn42NoNmR~EdP@1&b#G#f)(%5H35;{9U_Enz-O^R8@QqrWA8 zwuHUkJdUd8nb{jcR1@TeAAMfYMFN?ll78}+ON^3%!7k0~7 zY4=_o5K6BjyIb|fzzZa{liWS{YyiguQoBi>!0v2`-Yo!Or#odQ8_*w`s9~phtbrSDLDg#pnVtA`u# z5mP+O+{ii{va)r<|5%u0oF_NV{!j_2i+i!dn_(O2-W1(2$5H&%^ZxYyQKrb4msQjB za`AlQ-z8J@{WBiZbKdK~bHLcKRq!PBt`%T`QW0oA_TBYE!Qj#OV?SfaLIWe&KX!%t z=)cxXj<4ghxvY%TvBATW4h$x{BzunYTJ`%nHGqxHkJ}PEH^jr-P$WuPaHt+g*pTK& z_z{AmZfBfjm@{+Ln`p_?wBx8-rS~P0wZ+GR6+3dQ+?>%HHazgeb30{UH?*|X)+Xwi z$lRrUgElQHM~Mrk5qYy&Ca;+b&K&4WY4M!$@vBxckB57pYxefvEfAISXLlc(Kt_4N zzK2L{O!tu#4}eE*0ok>RvUpvf`s9S^@&n-?!P4tbp2`>tLAe$s@9-vjwU48%l}%r; z&t)^N4@VV+-`NQqxo#@H9YuQO)0=)tfw%TCuul_y)NH{HdF5rrgfjFAL}Sq5lF^5X zCc)XMy{{8Q|9d_ZPjaedxI9FjYA`6+$hQ)RbklRD(}Kdiua!^o7C$LZD_^W>Yt zR|lDk3um@jk&tT-w+32d6HkzqHsDP5XV75^3%E6naMxnZ46msxSUpCUvIdIhd0?+dD544$0q6!_cK zJ*~%u@S{HY-z<a?Of;cv9kI8zl~K zle1Q|W?dD!mhnT*Dv$ITxSBU#oE`CkDwjHzMjduk(s?SWp zWkMwKxcfJes{uy|P%`gBdF73+94In6IR4zMv0QSZK6mJ>$u&G41YH_*sHbc5I?Qy) z)C)0fz5Od)tq`C8_|4L21N@zsJX#a1pDHm+&3SRfIKM^3R8@wwmOhzHR9BB-9vvTI@_uQZ^_yUa43 zPxJZ)t{=2WP+%&*3t81nWc~x0e4Rn5p1fnOF$)=LU)eEyM|uz1G6RkuIgVI_<)hqy z6fhdb$55O@f;Py^0#3ly8BMaGt++A7r`FL(RWxkZSSt2%%dErS0z5xqA#tCSU9>8a zb(yCaz6Mq=3%S6|^Hv=dSsUnZa4lP+N^<^^P=o&?qMg8iI*8$^Ybq4cDcdBPWTCXe z1S6V5Ddz2lMvr~v)$)dSq{5!6g&Q8EQ*dMC(IvSloko2f!U|m(sSZxw4 zSs7eLe7ON?G;_bJV~}7C9;r9yjq3BanQ9yY!5Xlemy(mMdDUko$qMAooD9Vne@sb% zql90X$i`Vr@9eX72n+xxOF@KANXE_-v=k8d#}<}x_$gI+I8AwoJ%ntzHCiS*oF%jOqKAF4!ew19#H(M$_jDvvRG1|Kp-IVN~>smNXsP6wQw{(hJ#7ba|A6?O0~ zw_kLsV`}Jgk}PRX$u3*rRU18#Z}g%Cia@O1t@g*KJBkyg$>iM)n=I_`{K@#~N;nxY znGXSC88LW|nW5YIky|q8MBdH~J*16Kf}7nl%_01!!Pe0vH%3?8F0} z&yS&8&APa>1~4!xpgLT8NoJNS)H-%+fBmWi#gk!vM?S31)(}%PPle);g_9>TAk(lQ8I8s@+cgMnp+6e8 zZiy4f$9l!XX;{f3Fwlo$2Jesc%Q=cYstiH*Ox!^(U!?bzNnM<@NtAo4GKqMWJ0L|d z5OEdcFUT!?av2Sg5jBN^am=FXh02=F$(`NNg(55$Dacs8gLB8R5O16>%f^FN_FhlR zz@g;U`%xwha81;8x~=_B{mBqFp)sDME_G#&wL~;a$a7oPM>n)OSgpRGAjR$uD*F7dq6vU@|R-K?#hP z{%s^g5*&HqizxjZFPl{H85i|2z4zS5Dr;A6$pV_KCH=CS?MU)?WhL^Lm<)=4R5;A) zcy2EVL6R=$v88W<}rmL>hYq<0L_J?p3^y978$k$OTI0MIKhClp;97)Q5^l2j| zP%|ZCkRqny?!Li>0)iGNk7bDs#s&JH;e9vLc zb=f<}+}RC)%ib*>i$0*}&v@5}sf@0eIoFd@gF00 zxboEK$Oov+t>i7?y%Xvb=`Qgw4yZG}!apl>b!!u~<+!VeU?~3xrDhtN55EElK(=~b z@o>tI`v3P%q&ez-x5+ZIF{ka3g3+cKLxEud61Z85D*FhaBC~6Tu17r0EW} zGp*c=2XD_L&LgiBJ-u%E;HF_N2+OkP&=Ra8+8s0JwC%ASqBfkOvrZTw*2RQuc26fT z-8YLFx)^37Ybbn=Piu3Uq0Yi7M$sNkrnqT5uKq8BvhENRuv%uuJkPB8(cwLs@FI5% zfEYf^Bujk=!ML5BllRrKewi61xA5Sn;xQzWk00wu5Ib;XGJ~%yH==SAMcFr##h1le zv%vS-s-yR|!(wX}^=|+!&fc}5a%BU^(!@$`n>a98)K_tIXG*>1NW^jxoWbB?k)p1XXlS7z31lR=lgWpJ<`og zZ#OUmB2(XFuw+*Hw>;KJ1iqzZxT;k)8QIi4zI^^HX$9px0FNTd@S|RLSsV@6FM;A9 zgYWux(!BC?MXuyoUily=gnt1Aq5R=FCym4k36lgq00Io9PL#aOox6WJo8?Tfs!{m8 zxB*?N@16u}F#W+)nX&b#v?^{~$`QKt4rDrfszHi*IEUogSb4&dG(a-^ZnEYk8)ed_ zkv`G14ppSNB_o^zf2lb{06`t-{tCIwtB}q&w+4Apz%$Q)?JSye*{(23z&uLGRS6Sx zM3szaFcM5^VJTX}>n&2FJdDGx{(Ti=^3%RDjQ#H_#+^Dy?iJ=*R?YbVIYN=yuqS$v zmQuGx5=UeQn?{FBA6(s(AI8}2QhwC_`o|zKt6UU+bPjvgh<6% zvZ1P4Ouz-HtEk)&%2=7^N^Tgr0o%!Q39)CYO*`qksQ8_Sp@&YLbNWho10ivja8Wak zDw$P*X(h!h*l~UhSZ1J%jkk?0`a^m4*3K4)42uD2xat(fowU;|cy89E!`7Al{29;n z6dd)&vzVYY=2HY6)`L~z{XK)?K0GsKac+9Vy^9CJ@!oe1p(7XG! zBd!Ooz7V@TpU-P}Q8ux2sfX+Yp)Pl zCRCQfb`z25KO^-^hv%bFlktF+rCXEQlYs7^RNVLkJ|}{Exig>*b`KNNjEq zpmSEDsv&U0RzFSr=%uTPWO~qDyZ-uDG(OS3lIcuLXyq4XXeBTMyYf>EztT?>SPog? zSl)^|(Yb^yc?!-M3&uVbfY<~z70hMW$=y~)evm;13`ecrV23y$v$;D5Op&; zEkG$4I7e%PDPZQBzeS%?rL6qoJiuq(6dzBtA{ZH{WLh60 z7z^;VQ(D{W$^b=LnikRmjZF0)g)H1Hkp?c)tTaTe-Y4=zlr>I~#?;3E^P)!pXjuwq@X!g+cPDQ`UUcJ@jf}Z39XX{I`x3 zt}VYry+u*>yuH252|B6B;Y8$|6&L!b3Lt?rCC~6F;r_>9SsVu9=|b^ynO$~|{jD;@ zMPlAMu`3}#;0BE&`T zZ92-~1%rmg)a;mgHmubqPL+C&4wC9oFkaTcV`YW!Gv#*N#Q(IpYqBQB$#n2a!yE@T zudcrh^XJuZ#*$rBCMG#J**=~;z zVS__oF&KUMqihJ(_7JyYfg=H(G zFM`ee;4+a22rpGYI(nyhb`;_Yz#LRjzbZ&y(#97-(Xa{&E`^66MW0K~B0>4tjt&qv zQVg!wlFp+nVmW$d(JpP)lP4F))*NjXgU|N?xOEph%Bw=TX}@uw7grG=>>Fiud2g_= z8T^rFX>2P$XXN?YW`DEf*!t&|iY?h>eK<`J1&oHE^{J{98LRcavX&4+*cl!0jL^$7 zla33(5D$%{ObbB)qb05R$b`PM*+mR16o8F76$VQU9G1B zrUIMDbh((CQ$N}e+no&0@PZ!dm@T-*)`GadBP7691F`nvWpS)QE+O+0HV~5s@B=9L zkxhj-45a%ZR5AI&SqcljLfa9*odz?6H~FBo@gbQ2$d$cQ z7YqRW##F2UpkQq1;tcWRPQTfcBh!4)z|avcKF8g2U?s~%;S(p=(sIzi1VL@nw$Q-% z6xej~@cbxq2gYI#dY>XF$-*a!J}Wlz#IwmG2mE@CDFZZ*yMU+x4B@c{M<06cgZ!R- zdapnXn5Q`E((WOt4Kn3Ux}}L`=b10+K<|?OUL4g zDzCN~{bVz_lH_bwS~jr8l1NZfGe{4ilZQVZ`MZ9w5cg9~L{ZFLcU(Q^Oyd5hq`xt% zt26J*`~Mzay?z>0HYE|_iMib@sZeD#xHGgGf_OXldfpJM-yxKmdw=)o}bH-?l^49C&MfZkf;IgKX6?vRfdWeNOYJBvYw z7|0~@$0cP&rvW%pA%ANgG)YEv=dLb*tv4Iw?bgVH;yRVN7DHYU{9yG>oy#kY+e%{p z0%qLmbC+PWf{+)Nr9)j&t>S;a_A5s~YYG%LL(mO^2Tm<7cP^4yr3gtx)M|f&$-&za zVebFHr0W|@@C&EYA1gD;sKc_WEjC`ertaM5K>q_1g7VN6v0grhZ!iIZhS4wG+!t4Pro3b;lx7}XP|V`zP*I2xXJjT7r8-bgke#HO)XDKHR;Kq>IM zQv;OH4JEAMAXX1qdf0)IBp0VJd=^{fhH~w=$Eno?Y{PV42DA3c*R2T^jr#`kHivKg z?8LKlcK*+hDCdZ$7w|OIAc~*H+kVY&_@7p}s)5HX#h#+7SAt@a%vbFj^C$0LbTp_M z(!MR1e@anw7|YfMNL0|&*FaB*J^IO&ME*G|seM=Eph8p4k$?bEQe5WF4FcGCu>XS& zq>$Ec=pctuHj@K)6Cr*i3PQ_II#bRfg|M+^{3f-PtKd*>4S(nI<_w4CtL z#Sm2<9vz>R4hs6*0lG9mH+1&3-&)s2~;0 z%!|l`s%_=_1L)AhI2MFhXehhO2$GZb0DsE!dOiTi1ZFj9r#Rvwu94#tcKUKpmp~#G zJYmzWbD5-=HbaHM4oOkO4UzoLS081@UO;CaiAz#`bK*lR7>`%|fW`Ncp53i4s)GuP z`oR!siCvt;RQ= zUl1F3k<>mW8#wIFe|vLVm*X%~TH5sq7cg*?KMDrS>+@GCV4QmmtQvTi3EROVv?_5F8MS-4B z!q5>WR+8Mn7A>;~4>swkm)@Jg`qL6iJtnhTfaC47t*j7PBJ%f`B+dAm;D_RXpb_+Q zbN@t|F?z7Xyija=s+|oiP4eaSsZWZav=!LgMFTo*h{9@G4cxN)6iSjDKrqv_#fypo ztaCL4Q3ore!a@`=n!wBZg`#icN?y!cH^3|-hvs|RIqx4Fdt+R?hka-SsxxrnWYyfU z)ZA!Y-2l6Jc6JaDnGSzwm3Fymyh6j(x*?5o)Qq!rmQV`q%xz#vm0l9`raM&|$D4=$ zEC=$7kW@Y}9cnQi^5$I28rtWVwMyu5OaIcEE1vm8IS!R`aUxq=cDa%Pp%jz`8g zrkC~h-OHu8!v3CSsXY2psKSs-566F6n+8m*;JZyIQ37jDcbOv-i(gal&E*sG z#5IMzt#XDCxn)2h418jYBtLV}NG)Z0F|uE?yaCV2%(wr4+oA1$U-oIle*h5QYKs4} zMRT(J&lU}=(b7p;=Ro&6`K}4btx(%y^t4{ETbE;$CcYY?OmZBkp90x7Xxg}{yGfvE zYGgic^aa(DIw`&J;ThYtK-oLJI(;;G_=sUjkdTlels`r(lbVx)37`&(&~m|xBTBoc zm8Q}7d!tpjA9h4ql{!NC!s3a=T$I29C`PEODboisa;|Ym%fBDy?%1OR9u!szmW@ov z;D4~;_~M};hm$pOh7pTfvgyUy_3c_f3id>OqoQQonljnEg{@P=fHSUBD2 zwpmYX?_f-&uk-YGxPeJMiLghw2xRgK!%%&zx2C#F7HYI3pC4_NkDk4ST(x4q|D&ol z5Q9r5LO2_aXr6Xsir9)Wm;OuMC3{x)QiiIWu^LYwc-@jM^#B+vTK zM=>2IvEq9)?^fq??NPi)XhEg5*d^%{hXQ0HZQ60ilwjQAWB~^iQh*!MsZGFt9)BGwQuy!GjZS6pB@(_ang5x)(F$ErOOD5xU>2 z6zqo}@6jT1qR7nI-N`W_0Gn6uBSvP68)Q!io^hswcxbDlI`_yAkPi;$H5>QTwi%d7- zLJ$+%+f;k+H404qO@H$`B-Le|>GUdhBdB|fBPoHV?mddJ(BC@+vSqNtR!**_%ld1! zRXWtU7}Nycfn*AFRr7WmG+aBuygGyhd~oWVJiMF)r9P7s@t7c-NyvJ4QC7@DQ6cK| z|KaH@qv~kdW{n5;5Zv9}-CcsaTX1(a?!jT>?(XgyAV6?;XXEZUv9TeVAFc9)+*pzlfHK#hDnk3!k4mm zFODF6d=pU;&==|uqX-zHA7be{(&zzHjq~|gFG3iyd$!Fk)r5E#ceplXNL@Ijdk9q| zxTu2}k__g_Xxmyi-{RUY_uqXw6_eynHPLtpzulg)xVV1pqCIw~DOV?!e$x~+%Tk}~ z)UM}VUjQ`^lbHez6WOra5Y7V=k;z}5j?lFP`>M_28t^4)m=U15LuYm0Wc^M8Y3YX( z2}4hzxgZ7~HoyNJ{fQcJ+Kz^q#ThT!X!TccAF;u5Dc;X$GJGONklg17d4XPz!ULih z2EzS~+^-yns;|aOCa>Sdu6nXa_H28?MdvmHF%u_HXC@v23MK^B$zkZf`t0d5i;f?B z2vkGF^{&~*HkV0(3;TJWG8Qf@mZkG?HrYJ5nna9~6Xt9KA9T&EEsNT}~7k=RN{hx=@gAa3~fNmt}s zs07hlY<-*b$WCk${pQ>N^DIJ8pim=n`ie{eHrnsU0CJ}uhDV1(ih+odmD3N#*Qv>_ zwd%KAaHv7l{s`f{YNoFUI?x$~18u;+$e&X`13c>Cni!Wk2$1hC#Pr z|1KHO;;-F%N4jO!c|BBwvT(cA31I0zX}S9>zDb$mezD_xVI|E&rP??8H|Ux55c)lZ zBtgI3QT9jRW&7R+fy9;J1lyK0#$4~*LxRK4r^iiKuF?V_=~cwZ5MR1Jm3?&rlh_XR7P6bm~Wv|B#x-*41Mro%~wmcV&faI>9EGfU-Mb)G{-`uA?+GTjxad zbqID&jh%{F>!Lv2T~Ab0+~xpGq;KQrC_<8|NZYw`F>%^@Go@kZZkn{(K6yDIYtdP? zXm~hrkoITZJ5V9rvQpNlXG8sxyBiwf^{b3wc&p9c*`p6?T{M^m&Jl$@ggrQKrNh?E zP0h=s#cd~9CB7;15EvN%!(?0DRqaP1KMV>(H+hoLRpGufh}o(OX3?6eZE3*lB6bn zS;mO*a%!{)p1?Gs@&R<~L&%F%yjatuGusAR@{+hFHG%{fFZ8#e&0}0f)_*f0ni-jz z7;(NQnhB}2Gj5`CaPq8_y{vfO1>x@qT~I~+i5#&Dvu6=Ia+2$SZDoztrS|7JpxLDq!9!I35rZ0=?8oK)?06t^8R zi-s0RHC}m$u;Rnk#h~6{A2C?=612ur0&K_q&9A#Xx44G=aw>0yqhTo; zXP%vos@*a!+nFwOho?*>z7`OVDki2%C2rP7)DM=6?&h$uiMbf3Z)jX%6=UjTdNH*b z&l1&H)LB-8P>kAUurfx-aK^Ilue_{lpQE`%_J<@?KvJNwW>j{H0hDl_`TpXP zuw~z{00=nU91v=3lX_Zuz5lsqmo(li@L{ZtG!8mFp`;sF)=Cb)9V@H`8#qrqVzrP< zLsI8vxHhgP9uY{|R9FWER_7gDrQhoyiTB6d$+g$ zqH&4!(H`Tl`*+o8(}}Zx^{ww*td8$Q9<}t82GICs?cSe{7Y);%qpvc9nv?^#v;J3= z0u>~Z{7WZ*2zltIKtP5uX1RogY0aG7$yCXQGgz$11^kY2^CZ^7ERnkl!qJ54)L`ll znjGhK5FS7FuJRu!b!o9MsL!d|wGrMYKVIaG$9IXhht=p}T)5$7T$qCqem<_ze|hS? z3vkD0Tex>tu5|SpuPRC!qdkBlBKxwIz(iJ52k{XaC-Zi^dFxx<`B@tC-6n%wZGj{( zfTqMxTE|n6{PN7WCB9t0DQ;h&rN=LWK=`XdS}SB!Dk;8uHnFwnDRo3CCVlc&+e6!| zFvTxCa$*01rU?64SEr{b zSb<#v5gx@7GuC_;{Q*iLDXaqdq3PPwijC8>LjZ5K=FjWy-ICePBC{SfK2!de*T}y{mN7&(*h2b; zjOt?A7uEG3wqTMgX<2>Nl*A#7hmD+)qKK|s9?FB`^!oFpm2T=yg{@E||Hzm7&H|KT zCp?NHO~jdnl#_(XqXyj|?(D^>{&zmL>v%O9hE~D`4WbV>*6{|I2*6 z3e1;SomHd{*o*OJlk@S@uY!H4ZR;dFOw(-m7qo}UdX6k# z+-S^g)PQ25WQiDhMdONTSNhrWCS0F!I~}sN0^6UvKh$j0zKJE{K#Pjm?uNu++a6K_ ztjsaw+A=Hdi`xw0803e3$L1-U(T6c2#;@BKD9vLjDOW3Jy%XcZ^-`hw?L zsKrFnGqGRDhgOD%t9)*6&u85}yMXM3Kt1c5e!X3kID+aXg(uwVXn3OiYZc@Ea2ny{q;efXa*7+TP~B z)Bb0#Ya2uz_8tJA&Ti2A#a1QJ%jBD(f4$%1pOy0#kPluf=+NW+N4>#CM;7E+xSu?e zy{6E)2Giz7?dwAH#<_F-i*a*W=G&2>FU#N-+{5sI&uf%t-9mad^o%8gL8D^h^lu;A zMej`}4?mB*hlWed%+}6107prduSft9dx@+dm=Tq=Et*&7DWI!&WwgHu0Dk|-`?qn+ zeyQ`qqPzQKbJFAe<|6NJKNjHimdvFmOf^B*sLy8U{rvK;u=h2w+{`vy^5%N&(o!!| zW`->-Vb-S|L;jd9fJYJw>M;oEpuP&!vs%;Yq1k#nJUin*ROy8R(B)!0XZrip^Y^eq zihjd?MBAf%5lfF}dW~Z~B-3%U&Yp#KkZ9 zrgwIMqla)BtX}_($};dehDN2|A@y zsk?9AX-EK)8HLHG4LaR9-SgO^VD4Sft7{9zOlbQt|BR)8pQ!hU%(JxKbDI6`6{>3v zstd(DG(qWp&q&x2wL;3+f4k|x~5DIxO*pc`(kQmY2 z3G*Q)_^z=WkkF2-KWUy(NwoAMYg(r=^!R*7xat(L42R}fN4Y_rTURRi2TPGi^$0IG z(&q!IJ#!3sORX*WoK78^sKD(`$GM~waOzytgX#_O@sQDSWNRtFj=4qXMsfepM8DGs z!7{)tBu5x3?j18!TAoyJO)5t4fcArYyC6!K0DlJH)xn8m$(qleWNZ!d!})E?yvN1% z;^0>g>Ah=RWDbTYO=aBj%W@)N@cshA%AWpEs+F2@_?J0WV-OuiOHY0k^RwE>5tMkk!#G!feUee|Ou6DTFZV)G~|9iq39-@ZPC)g-95S)+y8Lm+KR(*;BW%Iktdp%;tX=Raib7^e25pzkMe^E6a@`{|h zBv4owy1WuZ#W8c`BR4^CYWA@ut6cr=4K01IF`?&2G5^cQANLEM%5X#>nlbGOHm4VC zGaDcKzoC!i-<2jN1P2>1{{x%`(4C>{vex!BVC$XkNqSO^8u{W_cXqWi)4FkH^;|CT zkutPLFcG6 zGpTk_F}eJ9Wcaa*@2lN=+Vr9P@sla*+%*xXl-%&LVP&Zk1+6vAicSTvdeuE#{s^L9 znLgz7zupo$w-nyfH+VC=;8fgQxZhZ~)C_>IhN5x_uo@{icsRY)#1+^sMnR(($T-$@ z+T%==&quki%shVh;Up0pK3VvvrOtnN3>L?ZEvjO$Gc05eczK*&y7bRvLEGx?_2)|B z>~W!7dqOZD2NY~MT-5@+G-Sq#Zwn(TB^czt>M+aB;M3=S_o48p!~_(GcggB2E35nG zQnm}VDxie#)2!DCKJ9(FeGZOXdp8BDfMXW7yVFnDVXuv&8~z}{TW%ri6@q~{k5|Vb zn;p}{qcP_c!6yfl6M5sqRO>&PwX%(hv&c;0{2PmtYebE<*#dxsl`I#$zlpguyo%Jk zC_}O**+PWy=0Vv=-}pB#8k+z1JbqL9u|8~e>-jr1wgmFjNYabIlV%0q{o~7oekv8{ zYG*Q@Y*aw?_N#)>Z0DO-o!Ogz_tCaT}s&Y zo@yO3iaeSW{{=IklTDI^23rB}qkZktl2Z}LbEw=6isW z|Je!!mWS@*ai4{>ZJv7NoA_+1z#OMJ)}On@03^XgDb53Y7oX(+##Mc-ja8!d9B%^E z0-|64<{xl&7OS|;n#I(h*X_?Kp@P^IJ>5koTxy1SXoohXs!_SQy#$|+eYbGY1{c|> zG+{>ID;VvXC95OVuQmlSN1K)b+6-D@!Njhr%&Ksy*&}_|90h@OKDQlyZPZ{(s zp$|%E1n<^CuQXS!-3=+c-|$|OFn){X2q z2*=S?jH?vf!SB3o^cq0CsJ4|8R^S4CVyeG$`4eZ*TZj#Pjne3=1?~uIv;j$eKFb{i z7gIPOP3bAE^W)0AQBE}F)h9#XpweKCVl)_6bp{5tNw^MaQ1Pd@UrH{^V*a`Ud^3tjsMZ>9xGE=e3M4?YwWShN&WZb^YI8{>+j1t zg%iDoXbK#x=*YJ(nvab^<%xbwmV{7~bcy2tBcn2QE=Fu5I|=5R-o3oElrh;lnO_Y< z053*8_-d>EtRjvtou+Vqy2`7rfD%S5<9vaIL{|fRffzUhEI*%qG3W36DM5^mEQ05N zK;yo)HX5O0Ly~}ksR^l~6j5zj5immxBj4VLfyKwuA+75vxRD_ZBC3rpd!314OvR1{ z6#MfAi~L~@MzX7AiI`M5HXCJ;9%WvR?K4UCu!P}=UC?94F0%W?y*pEplx<)RD(*^| z=3Vv3kappz!VLw6xx~PXaz-hE{h3JDglc}S1ks}3;Vrf?vwgSMnGutj7$3$)n2Kpb z4s75h`@O5S`W=^TCTv()R76h{L30@saD%L;3^ip&d4LO+bbJbe!YQVzjkfZfMP%n3 z8WQ$2NiNoKE&_@O#CfAm`am@CQ`|5lo{BEYrf^3@Wd?jd|`t^Ta7TWa51802Wr zGIhmf+lPt^hqU@+TN7f!QpRZq#x2l4bq}!~VuP3u$wei`gQM!H%J^nN+Sm^SESa?tsP zOZ`x(y+2mTQC^t@FsagQWeI@YWNA9yWhYj4`3ZiERIRiKL&t-l`uYo51VS3PkWw!l zF+*A0i{s3fsY)>-0)b1>$qxG-i0-n4R@0X!ex zOC(#;z*$sflY*G-@p=E8_D8n|DR~+>nOfB4KbrfeK*Lf;OG&4t2M++t6cFAc3Jn?Q zf_Kw|Spv?AFOm!Wa{fvQ#-`madZwh7_g=*Wgr$ft%g?a zsiLL5qOnmm=iEG9tOW?+n$~A}v?*i9qN?i0@p~SBZ=#;@Ws6(cEA8yqF0azFQg^LQ z{E<~O_y^>%9ivS01q-v?_`-#peq@}s_OBt^$gY{oU9`Ke=VT4Ll$KN~fzBAVF|vs) z2a{8d%Sir1-$xc@rtkf1vl*OyV=(7+XO)Z05|eT#$NM;hTQ5L!yjKAqZ9j0BG!SP{ zN(VN#y+;CBzrbB4^rjOk_Jlb!z$|#416gRUmVmnBUe=gN0xg0)jgeBivur+S-yjIn z#7DK(Nhh2rRJY#Jfs92<42i`%Z76!uDYKmXorOF#dkQb|ZnIqqN&p|@44gED3@wxv z*ym5GK-^HO*$Idjaa>qf#0e3EIS7S?SE;&o1W&u`FEff%Wp3&Wl9Nr|K|2y|^Th}% z=8#8I3`gr)$B!Sn`D@66h^LE-2mFCCY%rQGq1A?y6b{b2;VYL>V9nBztEjs;v2@t* z&6#$cwY|(`yu|s(8w@xl!%pxHxI&Yen4XsHAUGb&qcdQ<3vO-}yLBcA#nii<2ftLI zBJgBX|M4boZCBkk7|-azeVa?*Bd>m$Fc$6-%#XXqhMvYqf8=Eu5_cP~p3|Eo%${U! zo@PH=j5F0ovxad`**H^j1BUS6VHsHhzO+9E35yzEfLUc29xRwEP)jFRN;!DVNHQ(h zO;vXh$po;PTOyZ+|I4{uqOk$5aLe%G^N5vy`XX$;e95hxFKx|Ke#KipnN9vJ@yB}7 zCnItPsm%SX&-#LQpgz4^<#lT960(at%q=#6d zEeTg^7)M9oY;1qA01?F?xd3u)PwDpKD_PDs1`L+0ZwZ?W6YSF#TlSmK^cvD5p91&e zr({;V;w+Rox>I|233`v&W@Z8bG@mu(x;*_{u9u*}1G$N-d7xxugBLD#C%Evdb{0Cp z$OtR9EjOIL!Quv@crSBm>G^i`jSOBm>^bdw{_X?Ek}g1n@oN5d3HavF!(?wkifnia zuoqA4twYDYwKpS`GPwlMGWN(f zXP>fu6pEvVu+)1s1>k3#aBlBVTAVZlnPK%q)g%s#Yo!uc57!pRyZ3m#(oW2tAx|FS z?_JrAK2?BS<8osc2rJWzV?f(*2eWkY%VqXHDg>*m_UhSlskhAL(KaCmBrN6|R^L?V zm1rBoq&uEk3T2hlUrPxUrz4xBr#&oU&U#khWwvn)CW=8n14^D1i2V=k+&~%Kzr8m; zymHg7f{Dt-!=%c6?>hW!Qba@{*YgF=%h?WyWPZ_*?=7* zY>0%ks;}J10|dJNI0DTAHdS=K2Z(j7mjJ}D4d#)jU-?^h=q_%5blT@QU|`I4($|{S zOX7ypz9rjQgoJV4*=_bUUShIW-KsZ3=HgSX?OSZ)7G&B-dlTv;p5)g_>sBCB%d>hV z4|xC520t1j9_aH+$d5zGR7gl>Xvy;Q9fsJN5`U_c2f%w$x)Bi;!luoiw@UxbDQCuE z2$I39|ApbSVg^#A!i)?>6dFwKKXWQ)#tb6(4Ph)lel=aBbw2k+SMY_D0#hm|9ionYan%GLeyy<$YSf!58XCPR7DCe$Q#v;gopI^K3z?9%L_lq^izNTbMgfw zldY@(2Z;2`zH3tyH6<_Rbz~QXq9;;5?T2S4DSPT!j1q_RE*7rG)bBATPNXGdHSB=Sa@MMnKF#c1a;^2c?KEyJ>|q{8)i~>ex1yYRB4&l=AYeYx zzSdAR*2y?fob0{=X%?og5r~PDYC!#cNQ^|S1LUEe$?FZ;s&rF(4K1rQW3BaUMlK7A zI7DB@4q{xN|7dvt&y68|@7xev`aE2gPCbeO0yvbrh`&*w3 ztG1?l_PH&uRu|C6JIhkfg@9BCK92oBa0ITaoJOij_&gVK4$6W(P2klP_Q21EwbHa1 zMmvTbc(_-jur(YvBknx>Hf9Kvmx7#zJUGQ`C6tDg0|)dn#t)(YvGPCs$o1CyX^`ps zGp{{`-9vn(PWTVGs+$(?3oaPn@j@$94u%xOH#fc&y3hmzfBs3xSQ81YbMR31NK)br z?5-%CsjwY%441Mk66F|D8WJyx?+M4d(L7w!_2Ov_SOz_a6wMmjC{tl(!X8oFm<=_E zvgGKNGFAWqFCEFzq`gQ8bxrU|HgJiU%)*Na_IjYbcSEsEA`R6xVHt0gBGfVE_>I&S z3t&|1Ds!Zs;LjJH@S9Lk^e7IhpO%nKqNJflQi6`UqolC`8QiJTgUU94A7f@6+p9BP znK^w47IA~E^}}JL{hL^L6#_8M%onp%BnO~v4_g7==-&2VaCgSvPn0tWjmVg19~>qr$VrHAKp`cfOc|d1UxB z5vyo_{QB#N-m@bd1dhp+^P%bQV*4+ldP?iOhm(cAZ1EMu-hNV@Ta9q!o}J+j_!j;6 zCnEu3gC2_+3HlsCCDudp;bI zm#-oVlY($7QaUiLmcr&rEl%go?1`XzzgnoxfNu2I17aL-@-j@ZJ6doHh!FHV29C({ zY94WnFl@8e>qD?t)Xs0Mu7GYOk4;O@IC;PaD_s)3F7nr)$FYX8)y_nVWzZSpq_+@p zzD_Ce4$--X+)HP*#XQm4{BIKvOt!)gd9DXK0_@C_xPT5UBF)L_Q=q0_ZK&6K?khRV zccH3V{qGsS?hqq?$4exBeR$2Cz#%cd*ZN9yev)gDodVJ43$Y3#OGG8?JgfBE0JjBD zJgwB0un;%UX!7Ox5t^vnYr7(1#U+^^!iQ^Y?}*wfwrr1L+MSob6Ib_YJ~`-U`Qe)V zTUOAhacM!^0BlwD*?nx*B!y;G>pJ*2rm0*0e)!$dB3xNxVtkMDDD;3lh`bIVSF6S( z4EyM4tgeTjp>S{FdOZbUiYAeGNZWoPNNl>EDEL^M>KzauHswIBa#V++EPoa* z+uRz@5HST@3x7R`E;-O|=7^>YQoslmkj_nlQqv|%Ii@`N3w}+2_umB+@Q*JH7Wn^o z?X&=G8IRAZ+fQ8km2|fz*)njmL8!AjX^!wDNxmpGMp^B&d|_;OrJSdy8C)Wv}J#MZ$^HQAB*BKvG=ecugM_afx(8 z^8?18oIr`L<}h^xb0gf81$IZiwz@`Xfs@N8k~Qt#0n%`U6o9c4(Gu5zSc2__Uos<~ zq065``^FT!{hnlxXH)xo%{U?SM}LCSYesEXs6&)%(&wmj9sV(fY?^3WoFmu^4mc)F z0!V%*1{-uPFD|Z~B$s;CZwFt&nCT%TM;JsCDJ9VD5)EZKKB_nOb&%FQA66_&$2K=D z4=l8|w%R?$cmb2NlX7Z11uOl8zS4{dhZWH%!}G*~-to2I%CzzFq$67AQ{fA=anUWg z%kzdkCV`iSq`vgK_!lx9VV@sJ$+;8PSZzDLbltBy zj!!F_ibbHrCy?A1<0xAH=FgDDrL0Pf(Xj}5|2SebCLqv_s_x=TL0w4RyhgI$`D;&f zusR)lRHm3mD;iUqgaRU;CoaAVEJR1E^A#`u z@@YAT;Jt57jfp*0hrpre@TU0h9Bq?H#t}!llqJEBkjrGbRnH`#375~a8hy){h7mBz zAOTdZ1loHl?4QVue%cG-k54}6R%{db4a`nhJ@yldqQj(cTdGcmSu~!NF<@CWzP>#q zMleHIYi(QZXk#<4crN3rftWXD_>ksu40vl=``wmytlJ*gf#QTS=XD!10#WBJbz;6A zT{{iO~LE zuF6a67H3B!`j9v5)sx9m>1&!iX!~|4``k_*>sb+(EwkT=O6?3m;)@TV@-S{|?q5zz zmic5i2{1|u+U*8j{qo_g^hIQD)nHS-h?`P1l@2QUcISAI{?+d ztY2#c;Z(aF)hjzM+;*=OxngTQMPslIK0Bxe_c(N4uJ@`oSj=dr*231CURnZ2O8YzQ zeuqW5YKg0f8fu&ok_8GhW}^<>*Il!1qXFVw{KX1gH$^lEbY$=gKJk_}ilOR$;y zh?#S960+)u|0OF}NQP%%8r9ycFAOMU1V5P)2B+Mx)7vSH52SwD;B4zC^{XAR-Q$m2 zR4CRu8<$YgaNTPLifKAJ6Ct4|TN60;HGmKHja{;Rx&r#zCPM#O9jSxac=lqs&PaDy zMgDjTUr>?PBw3qT3TIi9_x8W5MH9fDcg>;VeL3N$A`Z10prxXQ6qoJ`4+9u%5HO&D zcUP*VwQbf8dSJ^OtMj<-!}H!Cr)q)jMyW$+*2Knu`6&zIffc{f5U~}}!slmFL?T6Z zwb37P@PRYeP((asdw-1KcCC)|(bvQ<3#iK>A;g54$JHuhLgJb#$SPF?Ld`h(D#>4` z7=FN9Q{x<~m4ykt&>qJ^#sj{Wu}p>tVz>O#S+NVL0(VEXAF&E`L>8x)MD|Wg6sGD^ zQ?`;j95~74X(O;3e_;;&nOn?$=s1}0r?8a9G7a(`i{iBqwbP0Gtxc|FGvVYFl$rT* zVXiY|jeCEN8n_~Va#hPcZWFb(Do|F^t*|7s>O&||ttc|Ev{IANSO=KuWWV=LYSTZP zGO=IGG;7Ylz#UmwpU;7CXCTy=#9LsheHBD_eBOHHcKQhkUn1=5teedJde<^KN7lDYk#K>La_t29u_%T$ z!R#YZIy&bkSe#&7T_%q6(a_zD`x5bh%oggPC~5o~BfbP-(?Zx2xkzPRQww!bBC&<0 z5R1H#7sfsT-;mMO)ELdu8fc9&9RZCt> zI=5bxED~~+Fv1WTWv&~4F&u<32ZPr4UPaUu&#q=T5HJE9OwG<<^3D*KL`|`Luk=ZS z{2`-km_%6)kp`zmqGWAA8gnesYLhXYuz5A!*tf7<;1IVf7i)gd$Bi9L?a-A^W{vz~Oxosd-6(uF6LuI-)F$1EZ~ zAWdwO(EqLd`mbIY1A>bOI79XyUtDob_#a>VtdN0Yt=sTLV;<&fbMklzQ$V~-meH6@ z*?DqUt)(xdp{l3MVk3x$&2nlgEsulrc%BC?E6&9_p^+N19YTbjL9D!Y40Ghg44B(FfvB+rbn@lH-mSkHjs9RT{0({ypPOVxH4omTCmkXE6wzvZjwxm7{V)+Jp; zz6gP+N`d$%!~z<=8Xz3>T4n+sUm=ki{w!Fzm`Ob`;O1w7V;;@k6Mfp<<<;n!Z*ZZ} z-Mt}}>>bm_@G^Mbpfj|_9XCks|HBR$e@NF6jINbiC%t7b(IT8ajL|%U(2Iu=#r@P?#B0&Pr^X&^AD2ynXQk*bt90d5&Wq zrTY7K01fzWc@~L45BM$=y%|z9{WjX)8|!nh)jE$wX1XV6EjU@V6msKvcx{STsm8Q0 z@%l9%2yopY-vMiZm~-*T+EvXsMdi$)ZE;5K;u7sp=Htl6IgMm>IwqCoL>f-NNgkY* zjYF|p)3j$EMWOHDOyeYK*CwOktmZS^3JfWBcr#;j@nR!)AkCOn@7*`s>eB*X*M9j| z2I^zfWN?p|DN=AobxR%2d6S?cw6WF(oeYoD55b;Rg#*;K;UHB@PkwxJ9E=`umv%Sa zAnuh~bMqI%;Uh^C!vjdM@f8S}GFxKF3^E^eMJkKRd&q1=alq7CPh5M8fe=l|O=|MnULD{~T42_10M z6cQOOY8bDlSz$w_1h{DmNejsE1qeMqXsq_3Rwlz<5JB`um<6ULG6$ky^_N~)hdj6t1+C;RV7e9|4#`P#IU2|rvUNt{`tZ_o%+CMyR-A=M5 zaX(-C-%LX(6C-W65fEq88}(%PzQ_kde=LOupc^Y(C8Fp-C(_K5WTLhpUQjl|x#2Df z$@OPo6p{deW{@-xmqNe+Ge~j`(E}XZ2Hmw4Vg;yr7|)W(S#cFCM+#UjMGWMbWL;d= zHCN(TRqiAk$uv$klp8jbAQJTXnZU1TE4z9+CPg=qeKRqzP{oV`%qF8U)c0-l1tn4& zzx#mv=8(()W6F%6x`7bljAQI9dNU$d`eAc%1YSw>K6cKL>wuX&so5jU_Rkg4!36B2 z#cxOr8Z=|MEvKLZ#aD9|*<+7aPa$T9dJ?ZniJcW@b49SA{NrD^fqjMLiKI|gH(zux zHcFpnOyQcMl=)XjRL)#+vU{cQVdWjK)ys>M=-RTZ<_@umvTSeS>-jLcfvm8$}8Z44P@=fn?s z<(t6nj+#ai?<}WLZjG7d3z5B=MLyU4rraN-_34|FbEcMR zPH=4iAJt3J7qBXcXh6cVs+qPmx*cg^7ghCQga(HRgpug0GkF&x8yWEQl4dRAM%kk1 zeCG6Hbg&WvczWikx^_OP_>pzrHU-rzZ?Y1EKCqSKdA-UR&&%>-uX)^d-Ug*>WSGi}~Ir z8PpZ=NC1(Hv7KcY`$^i!4eN!YGV*ji6P}c#Mj;uK{Hb z1D-*LtvPx_HI^yHNt$t(u>`f4w*ED8vu>IJJSLn~y~+{{Wa~(*qI%K_{pAkjX?NIB z^ja%vwLscU;i+TNN`zX=;qC#jrEq~`@N+XRb6~kNt^ciD-)Nu7m9@0!6TqG$T{C?- z535f)O#J$y1<8-6%$E9Eg~73>Y*TLR!x~Nn4y$b*+ln^Iq0&I*2u}wSgDNw_y4@U6 zx1!4u7oC7HB2P?@<@P|ky>1Z#O;7VSbiesi_n5GYBd8g&{YVqWm);rr_QddyrTY&H*8>&*LtifwK0?292*XL`7E((V7|=<7UpOgf@K zxrB5ttbbrD5E#^`K@|X`H+e0z{j^Q{oir~Y|8YjKAygbYad5J(beMTR@C{$#1T^{a zV$N$DWkv@nrgxTa2$u7h?nsR5N%fw^`||G5EMO|k8kFM80sH$W0Rfbjvo`&)mpe(c zWqs>DtJmHh(*(;3n+>o&I4HhBD;Qrk|tb-`MsWK zo9xoHvzFexnJqH%^rYDJv$=~FlRIH^%1DPt1d4BR!NXHX8Wb_2U{UH6BFjJc-b<3`|=(XTGw?~PO^~KnbhrPzjQ&TT{IMLDmfwV8L z#Ht;1RP($4_z|zrDl0}*u1=JF(@K4z&3nJFQrR`)PRv4H7@ieFYdtHv&RumY+fSrL zE-g0f9gf(CCK-1(07qb!w$JSS{ZNSADc*+1+gY>*yr+4*?}DKJQDzvWYD)@6}DjHDWqwU3kiB#ti4kX zPAG9Juj=1F>^~_pSn7aV9=g=~h(fNp82}jsx=g!Z0n| zMJ9qKcqxQ)8Q>phrdM*=Y+0xU2Z7EM2Chyx5y}|5c5F9p?BHmthB9}n*GE76!DUFD z+mEe0SYwByB??_7*4#9W4qL9 zZH_xZTis&r(=%(H&L}@x^{bM70>oG`K%e_9Go{>VBYP8btwLY{#qG|!rTVV=2eDauL0R&paTSQs#S7ZD@vCaxz$+%>B~-b0hV6#BmsTokXj#;2133(neC(<0TD~=+2ieM8b=2$N0KG9Rm8}$Z zMkKa@RVsBzpsv)@%|;PNqIJt`4U%63EK2joYzD&j`@XC8C8M@o>cHLHVO~wtJm)q( zY8%hXlb7p@)-gEiU_Yf7YQV#TQ78GM=KCY2ub}3QIc?kBxXxHp!{W) zCezuGL%-G`rqBVbqnd8HF-meTo@TN3Aa|%ar@!f35%#!9O5r>}6e-V_w)ui8@KXN;adllWV6 zEAd%Q=s6y5!nBGZ*pd#@h#Z~1hdazDj7+jYub@xyJz`j>A4tC9M@6Fbs3@xAK)Qb` z>Bq;Bd0w@q*xK6lIx29&3MSWeTr3BqXp&9ki;qIAN*5uXL9lK%=&>3j`}-Lo^O{AE^ZU z0C8>0uK&&HZDniH*wG2-6_^X??ab_wAIaOBudv&VOOt&>`s?BmuI>R)hp$L!E`F#6 zC#SU`zfxmw5gyu+Ct~#s9$yYxaiFcaNikfb$1>MwUr^UbJ(>N>yjE4oZV3Dcm6Yr; zux+UvS-WSlJ^nd!B)~6Q_ zH$EJ+QNqB;v9NB=(&_^QI@tb3Ku`Ta?@wC12E9Jodo{Y{Dxqj=s6C%m`q<6~v_|Nz zfRMJj*Pb@*uIy%{onr%;%v*9S{jXA&a!|e}vnniZ z$*}@~C4s%PiSndT>9@0&7r%5b21njax*sUeuH(jE2QEJOFA;#KhaQ;^hl0H`+kaRw zVpJzhpI@wS+zug8TeY|F{6i@tsPl`{AuPqahK_U)m4c;?E)yiFSzgRZalNq{+@9$A1&e@WA6Q__BD=8u(6 z7n#3eWZj9Uz9(+_LFG7}uT?&gmu>-T;|_*2A)a$-_n9mg-UNHO42ft9^Pm}}D0*r~ zw8zRuywB?9d_`o2_)5?CcCH{g088F4$2AO@W?uSQ5Ztir4DmY6?d(?4H?cUP5xHei5lYJF_-J|=eR|9?cbk|Kch8lYRk)TkpHZi146Gj#f zn58Yl3uB1GV7H$w*cc!3Cm3xGYfU-TDwZ3t#&t`qhwv7 zo}18yKYx+4!>8{^o94H+>6`*y7yzjCA7W8xi{(<^xLL)4X;O2ay)IlXa%sKO zZ7~py^Obi4*HolrJR$t@t4!D<@9Ug&fSrK|IISOzFRAh`VoHCf_lIpWvF1aZ^Yq~J z{K|8Cjq{dBr^$nvXW2@-O&7zcmnxpoi24`gYr7Ck4Pnf`EXYLXJ{A37%{(C_b~%HG1FO2_!gi{w>ErQVUlN?Fe>1Y2|~%W--bYebIFO_R z+3h1wNwmMz*51A*3bf%^u_ZQ;r3HMKDo}Ul;<(K)U?kM}xL~c+(FKB2l>xc^?4$?(y{WIz~L{hvdY3eX;jgwCUDTCue9vQ{05dnWP`ol}(Hz0R9 zO*%K>HOfFZRdI(B+g{1j@aF?Xr*0EACeG~H>7G($$zaOBY=&IvrLcK{yTQOgpI%b` zuqav{YBJBTpY}UlKD%Ocb|yi?&diPhfk-^NZ`p`p9x|2V!YoqZXbdZQ@5a+zE+ZCP zz7uC9D?oA*sT0TkwbSjH|CjsM0su89=a8Ms%7cPFoG?rA-V#V#pI>w3#Uh660s=yH zoQbD9@D)c7RKG|P>Z6)cdR;#MNRUGht{9J(fl?(Qe1Y<$iqdP>N*p`edBi!}9mWz= z)^%(s8!plJ85)O3yo^-bP9FCQr$m!<&BBU9DeraZTKW31WeD|35k+%ZkE(*|$inqA z<&Ze!FC-N)^&BwY>GMYTe@-zT=6^htPyJTTW$v?X`}4eMaX$A>dkkKk_>Kzy!+4PL z44PVY*||#elhK&)IaZx}!O5g%hv*etmzCxkDtXXxx63--I6s^@KkUn=iIb60C^0U< zed18W|KU)6s^5@wx6v$4`iiv6e&TXd{F!PRN|x1cm4LMv|H9*7t#eKGAZ>t(`RnsQ zQR~O!v%jKaht2xdK}{3BB@?6NmIV~{ZiwqYM599L+Df<*w|0N!5}f4v@%{*!J;rCh zyHQ-q*znl~;unNbC5QSm?caT1sni8%F#c0fT;G_4a&rxRdwlN?Ll@?Yh*(nmL;ni! z4SILcK`*RUT&`OO@TA1@a095cQG@H0a~=;UTcup#A>ImTTH22qCPBQN@Rz{Oim|8) zWbx}|kN?NhI|n!Vc<O&Tc(JVD zarLhz?S%A|d-Fs^ZQApYo9=>$JvwF84YdK_c{C6*_!#ONS^F^#OpNo?3{xf$5f3|e z)NM8QSriQtrM`X5p6Dpc-T$46(9Y)9cIiS}$7Z=h#r~kKDz;ldmY-499^6fNTz^I7 z$lEjTsy-TtkEmotOLMHA24uJ z0qYOvip(Fe2_E#mR`~bx{^lGw5Na^sShi)9(lozl?SaWg-#S>u706~Nyo1G~2PYQB zpbSS5tUwYb?)HzAZ8S*XQm+{o8g1Sqzz18~ld_L|2VCENwe>o~pm$PTKTvh6yz+W{ zd;VujMeY<*FFFdNNMnuvt+^T_m;dn^m_tF700|T(FLsAqB`l5_Q@}5vfRhurP9Cr8 zQlnJ3p4mKo`^MP{TjgR~{o49dqvlW7D8wvpq~H6-77pEipw{O55-4y%&)A($66`?~$`IQG6$^ooJen~>hW#6{zdfZmt~^2tSTikpCv;#`w+iG_a)Sue>Xzqz#7lGJ*wU2 z;YjOZBKMaM-Zs!q1f3%9%h>mn)*-heFX9R^P0V7Q4)X;dI<8zS$dvRS1>nmFPh9vG zQxvwAT%Ppkd$_9Zh|=(XWBNg7s^Hs$59h|J0ax0`+)JKvsQ+-IL$YWn=UIYfp(h^c z$zqySk~%G4EIhVZB%=uw%058C<0D@%A2?(TY~m*{MqxX53@&z{&_y^M8yr~TKx|n= z)*CMmp@=rriaK0iY(kE-|6xjgx1Tuc+-8dR?Ja5KA82jE$QgtxHcfMzH)RVkC#EQb zeA0=1%GTBj$wpK!wFAUi_PfSaSoo920qmETG^1u^Ko8glr`qBUq79J@&s%owGn`U~ ziGcvNhiN}M+rzd{A8hgb5aMIo{N2X*2LpI8k3CK?^rJ+1KGsV*PY7Icn977KmTo3S z9N8#jyfb;*{wv)UXRi>;Dg6-_qBfb&G0h9LdN{AQdiR~Z)Q=PBSwgu~E?|9%3D%F{ zG3lE4)r-)LP8_|h!c!Kdr5Jq)_qsF3x%MlMytT=PUCww=tz(j6@CA8M7Iw}AP z<8XiXuA~+QBpxPJRrJ_3-t~!E3xRPqUz1~cf|XIgmk){8Wo7s8vYdg zglYZB;X*=LKSPVcFK^y?49tfHQoDB*y?@r?VZ?}+(-GdE{H;HSB9%c4 zN#Rycfm4qVn-&oCXS2&dpmimrAnSMn9t*UduemmuG11!WRm6XzmhdG@wG z+xE~>umE4CoG{tH8WPQAtZU>7v+E$O%A8{`12G999QmVnCw%uGC;h+FNiQ}@5 z4r%nvS>@?~(qKw|EdKpwH3WcN?^R(3_%43O69R66JM^Fpm zQo5twm5f0b-w*!abJD`#r#U(zJ?Cr3w4^$@=%T?e635l{>KGA)y=ndKKq1_VGmxx= zM;9U9dK;d%%l|>*=m&B6wZjd%%Yj7y!nmL-!(f8aO}>c9I;)AR01UsJnk@?T#@-!S zFt61g{M9XhByRRe!KG?CoqUeUl+sA)#{cDIgs;4eIJRfv{aN*svw>%ytz*oB?Omt(ws=jwVG8vU zqZm6;=gaACyY68o-Yn(P!X>M-<#zLdJ!n?X;D({ z>iKza@v*o`@_B!&6z}li>B2?9@5iEldWTt@27C?qZ0#6m_2I<)VTBo`Pz6Jpu1zZa zgN=*3zlWbcg>x;@?6`h>alYDqG?Z@>$1SS{(S>|=pxXMT{zmMS+5zE_wdVIl-?o=m zyJe@)+{I+Q&iTWtJH(b8_kFWHz~574zOAEqoqs>J4YOFLWMc=EU%5bB%EZ41N~>*v z1Da&e2syfy>gpK6VNskzelK^^#|hz|wu*SY ztA5WWv?*WD+h}jeixc^{P3r2}utTvs%7?!FC+PMD#}HRL&}7S>`|WWiS@%=n0;V-N z)X4aJhkp{%aTNxB2;g&dz0A`IrW8e04>WbKS{8eWfiFxuNz`Za`h6#`Uzsawny3=U zeSiOU`UU7!$ob5v?RGcL$Pb(9kK4vKQ})?zdA+$zgYb^w?4cah!bxjsEMwWroQT9> zdsj|DE{u^272%a1g*Qa16fZyw|k+lrO0!|Mm z|0NviWKL8k{SH_K^GUSJh+1jI?B3#&Dz8FoxF-F2D7B83R0*h3B6!DAMFZ=TW* z@SR1T-Iai~3Wfmsgi6ucC%?90C=1I;i1B7i*o~0}Wobc^F@6gZ&=4iO=of_xL_L9U z)n_|H#i(V0gy zjPFV<4Zk;B{yRuwJ~@XaX}~{uO%(rn-aErA!t4WFDQSl6x!!P_P2XI8ZRJYT-*2+=V;=>26@!zXt)Zg+(vxJFiV1-}3i1LZ& z;8fy_1WI0wV8wZwW^TN?U;PEcH#Fm)7u(nN3;+YWO~a??D{I%ix58ewDDl219W8ve zU3jAG2#Av@d@Gu2SDQW-Oo?+XM=c%D&^7DQw^(*@v0gStpuULUg6Z^T&yDZdk}?9* z3pF6VP)Kqh>HXJtDnge8FPi2Uc=${AdsA+=e$9hFO@}y-#?A|k>g!fCQ{ZrMBV&{r zUCc7R%YE2(7KjeXsp(vIvs5j-3487;-+ralbX3$`D5c%2_|mbRFAY z1kuYp1e|Dcrl6jWe{ROs;30~CpoOuUp$+4zbPs?rSvQ+Vbv2q;pPw8s)oheyt@g;> zoK1)XQc`T??5+VN-yz5i1*_RzDYBd3B7Utt#^dUW!M;YR3lGiAsS9HbS|`;=Jp?no z^$&f*`OoYEnTvR4f;tY0-n@c(5{VX8vzK>TnsH1qME`YLbRj>p?9#7uJ`Y~9PlovI z`78s^oJpp;qOI5Yv)lw{BdlK1J3!#|vO#P}lF-kc@V6|OTS`8d z*AG&VIniL^Wp3lsPbDESEhkzXDiThEhBXU&kfc)u;~^y#htO`pTWUA^cI5n`^NI!Vq3S5h?Q8(<3#E*SvLoBV?bI;&`>~)u(H$qhhT1mJiI= zS2~-WTAgL3sy}bGCF?_D?5t?QUIhST_H!>4!6viTo>$QC=`!{xg|+h}W_8#RQj(~% z;`)d4S@pX0biDNPm-e@xNhrzdEi=hW=j7WW>V+n>p_O*E2D_*NjBv}>qQZLfRKDZS zy;r|w*{xf(jYa2GFTj9Qqd)RF3^6L+oha>U>6`cc0%(isy~*Kcz~6gEJ5fZf1M$1L z1F5&*w>7ogD=mv4LCstNyPDO@Zz3E%^OwvyNN!e^|FCcL z&G3Y$&pkKfhQn@G}He7n$4_94!X3c+$;#p@@DoH zu9l>%+-w}6KUut@FYN*x#vSw??8pFyaB>e_*{_9 z_n@++B_QCd6JI)lax%TZ>4VD;Y*UL1cRXx{`vo-|M^1pZxcm%%JT-qOeSc^7^kIu;o(-sK}GnoOoBxF%28u#Wg)#~@hY^9Q=<4$hB&IVboUuB)?6}( z1HO|{b~u=Q7)YHkMO#e46DFdqj=D?Ng9MZv1brO-&GhD65prOh24sN zoT;f@Q*{GN&hmvf|E!vXJ|sE()j-H>jCb0~vSR^nbCM>AN&fk8g7vB(lRFLypw}J- zp~=(etuBF85R6cns2PaXiK|H?6)fzzSB&QNQ-!J9C}t@@ARU<~JM7PZz(}-wBk@^^ zPW8Gi_yj{w|4dqlu)U7Y1SMC~4&b#-FchL)qz3^f3*8m8QOM`$5c0(l*`V`2z_M{q zgL)l}cV@S%i_iEP@Hss8wGnl4`K@_q|B@{H7LIIq#w+N$$x%Y^uIoy{GV9-0A#xQBPp6tNd_aA6s&;6#wYQPo8v zc(e!DZ^x+ox9pA;dTmV^Lde#hL=mcYf+E1`^Zlj7SkJ;bp^TYW0%-O}MX(bF->**SpRO{RM(t^y4+X8+4d+O7-**VhR;5+HD zcbksGrcWjd(7*1@>)!u%`^Na*AD8cCNvUGdVUomNFbo$SveV9Pp9+V!tA93vYLIUb z_Vga6p<`))4OB8z&k#f%L}T2X0gPCn(Po?yY+rdeCE2X})M6yDXELZ^Y6Cmozj+1j zqmD^2J9jyzG1snU>dId+TYy^>{Fyn#(q(ZUH)-Jijw}Q9 zDoQG+HPrjkx7y4sG^NYyFrA8~BjrgYcNZhji^vT@xOgbw)!*v$i=GWtHPnH)a1<*8 zfrt}>bBQ3#ybMmH6et^umXz@~E9`9~4lgps_>?NKf5wJ0*6~|^K8`LvBrpT`_tA6_ z{jqcK75Xvz76F2X-zo$f1p|3t42~J0y42hQ3;qu*JV!)G#Xt>NV6m$LCgoAfuYjhG zCG&nA=9P8$>u^-m z{vS+O=_1J}0klM5(>#}l?Ef->Ank%jMT&NP{yZuIBe!Us=}(-=A-VzW!=(dn7u(w( zp6r|Mzip19TN<^jhAmFNoAOAD)OK%bSL0jD6JS{A_t(XU9pPW%l5!lr+y2gI$ajcR z7(=_Pezo%87@HT6E;R@Y;iYQk70JJ`Gv#56Jt@(26oq`ln=s4=?1i`k5w#Ubf4c?X zzhuskro@TluZt!!(6;j*db5vilPh|x`e>7asH3V`Lhp$fa0R*AL8c)h!Ngn-zj zCQWY4C*bVwKY#808PBUaX0Zg8GfwQrImSLB#<3h?OU-5>m$lLqo@j>rNFy(kFY#8T z5v3NT>7~vmVm~7vPaq)yHb%uwZhFkoN)yS`71!Mo@EWrkuz5$FRmDLP$bdmJ7c?8z zmzHJyBor0dTN#FSyy9Y+Hn3+wR8{5q%b_fJ1ETvSiJTQjR=%*-7G(Rpw=)-#TfOdv z#6mlGL~iYorFyit^K@NHg3sk3rXp21lYx(0vOgPLa1=#XkXd&GygYcz1eDB-eY3fD zbaF?(4@j=MO;&gUIWWHvQw*+TubCSpteyp|nZxci@myvz?OhZCR&No;U<{1r0ZMl6 zbBk(4j`H6Ul+Zm@1hJAkk~=bj>D($ms@PeU!5zMx1vDeM=zAaoDTI1YiOL@ZJZ9rp zvK!_HxgHB7hwdqWQANNIFun%h&p>@h1fzXg{@)^Q2U6z&4ZZH&+S{49XOkE5gSVF`QJy%Hhq^*)P}!^XWtnwSYUN zgJk8Z4y26YrYw|kA4UVBSt=vjtRhQ*>$~JULG43?rj1p^PP`qvF@Gw0dwbhda@gnu z>TUQAB!e`cNI)Wakhoa)zXIzhr%g1l3Vi&63uH86G@tcAwt0}>s4pi_2R8v;2^kAv zu%~aVV(;KdR{Q9y#4^blssIT9tI#wPJ--L2A`g-hoDlRc50VM|6!e(~NlaX@>VD4+ z;g6QKbp*WiMHWDFNrccQ&ZB}?;EC2h2Jz*88LiNQeDWdn&~Y{$KotWVIcAF_4*x!J zJ(@ws`H)oK#k>$(MiFD>4d@OO>usOw+p|Q6I|yPw0nN+aKc}Ceu4vJ&HVIlVxkggCpGN8Hw$nQ`&T_0kgodQS+@LLdV;n%UngA~5*Al7R@E`^X0z(+sH0wwQP zaWBIQz?f&@6ICMZ*dnTR^VfW;b!=3rF_8kV%hTmUrDplhHmaG1y?P+Lue#uZ4jk&u zUk9#3Z&LlvEiS4QP7aA<*al<5NgQ*J+w%%~sN|f*J*pHgT4}wqIpjxvH#4ZBWWxA2 zeq}wqE4}%7Ns{vF>ci?2ptTQ*#v-J5rB~w-&YU*mx$GG-%pc@}g|-QPM} zop$xlOO?=<^djCti_}u76whlNas5H4U9M4AtI7)`3NAOot1Q;}@1bn? z5KMiKoi9~xpfJ&Uz9(e8f8&o%QJIy)Yv$sW5+Ruh?w2l*gvVGXFoI>dBJZ-)2jxw8 zy~68));I2u{Kpf@1-lTg-KM$Xab||@V4}gAA{8G4Udi=);nVE+NAJ`utwt7{~mOK z%Qd9~7boX-CPvy4bqatGl(8gKp@(4B`SW7_pS3xfc5KCiFwNbRdL7s4l|Feo9R;Au(Z7TD(78lSH)cc-dKs$x$bN?d9W z#M{&&eX3BIwZf*KU(?fAYdaB})2^&=9Xa&JC>PvTG{;d|vwTu!)GqY4&B%mkxM zav}YM#}4NdfQ(^@qYr^MY|TiMi53^05E^xnCJDoBE(v&gyK#ToU+~rz)vA$(JDq?e z;?c~wUf~6AnaDnW4v}>@9#Io7gbI=YivQiv`g9M1!uj`jV6wGQzInW@TXZrO1fwnk zSy5UpklP5A)G7cK!ywx9(G>ncwDkdqIt3`vLdQ`cJ=E1idKZpV@Ej1jj^eW#u>$Go2mi*Ykh8-N`g0o;~#m6Zs}V6Z2>&TR_m zsq1QXKFW=v?Sy!SIo7LtIH2I+@UOnt@($5S$V&x}LN9+hqrk!E)18Ve!HQlN(d(Cmct^7AW4hlTj#slFLyAva3+UG`4@%LqkTv5v^m@1^4{Jf@iAWQiA!Kn(O%z zrw_|bD*3I8cK?F6`ZjZmDkxSiD{rWknbm|f5@Y6uQ9RB4fUnl&r20*0{-j|l?s7?` zhA8i)kr_R!17G#lp5z+8UQg_VGbVO>;P`dsf|KVKP{NBm2Hk`-pu1WNwq9c&&A?N9X#^?BlRk_qu{S9+ch9b|SUyh+yaQ<>gh z$<8(YLy}z;W~$eBsxdTc-G7wIP*AvCoMS)HxH@wo3qi`uej-B!&-ali!7O8_-l(pc zQ)7vxvX29+VB-0<>bCK8j?N+IL^0+pQk*5~8+PS=3s4zSShGuNV^F{KoC&nm^y4c& zApi}?FaK9ffK&n@upn5uL3x7^^dS3fC^+D&=9PvsJ{cI?)wHhuB=; zOr~lfxvEOC!6r0Lp@^)8>AoRm{J#I|AV&ViTEWI@H0Tj`irMUhiZYgbdwq((Cvs1p zk!l+Pr+9`M=-LPNc%)mnA3^;YDoup}Ywf~WYTMQqm2EP_Jn_dL+N~;Q1IRRce z`Zu89-B%30<@^Xe@Vq|w*ja^!44X5_;*ROh^hw$uC}Ez<=w0B8$4H>wSU_VE7@_zl z(xu_)flI<%I*+CiVQNI!Yb)@$c6?srKFymjL@Q%8N_bnFS_o$ULlKV4ndETa51&=G z448&1%aHS;NiuFzl{<(^chpUREDr2ImxG6Pg}l+9cLQj;u^<#I<*3^b+Mcv$?mCtS z!Ho;3h@`#%p;TXfx6lt^YYE(!aDU48(N^HDQ!@SNs32(k)6TUo?!(A%V~#6*kz|M! z+23Wb_uEJVYkncFL_294E-PZUuGbr*%**dqi^`pZ7*M}a5G*2} z@YQKQ>>MD#Qd8e`Yw>01GDUV>+EM;ucmB16}h(KB@#GH8*?&hl9b^WEs| zUBg`5t=C4cSXHR8-l*BN;Y~y74_9J_wPq#|7Ta9I-I%CQ1_SRrV#`^}IhT==T#s|% zfY}+0j81jw6V~%vco_Uey9_#c$~hJ+MszP_NnOj8aup)8H>x;-dn}9Kl({$g<8_p^CfX`~rD3E1LB+eLYzDr^oO)|EplQsyFXHI;YY> z7J2`)`>T0b)&?U+88QX-;N*3}@m0ND`a;Iey25s?=KEC5bvVX z_Y0qe%0T1o$NK58F|HxZ4zQiEodj@Nt1G5_Klu6uWq`s{Gp8IV99nEhGL(C@JyCs6 zpz<0>dIUu?w4fOI79^%?(8kwupoxZY_65}DMID9}9IA<9#~Ce3=T8QQgFm%{Gb-&4 zRtb{-d{zO;E7Vxm-ZSj<(r^|tU~{Ysbh$`yZhWg^*iy>S6l5&Kxd>17aQm!t`pT^6 znAu3K>mhG&_892!n@mcq*PR(HP1o5usktH4Qg%3Pdf=dy8_44}g!fVept59Sp$~m6 zH(4J4y1Nm5gtQjP`$96W-nYyo2=j+Rme8QWFJP097NdBtOn?4n%({3YrOZ05H&#>h zrr_1z>sPEjK-lZ>;b3j_+Thjhk{zMY{F>j{kJp&Ty0+@wQZPG&yXz@MaLs^nJ{;ok z%S6Kfpgl&*)48VSnXEGl2&N7a6{uLc;5Y74unulUgLNu+^f&M#z&;UE_Fiqmhr6F> zPCtaC-@c#?)z96PZz*Y@`0dgr>yy8z7jsx0xGJ{#+NAk4x`tyB{@X64zkKuPdk-&ai!QFNKVOnm?+* zKL$^uhURd|jz)8C=sYQLfyQV;5R(|A0hZ9oq%$q|YNFgmz-^-LkF4>b2a2W+oan4m zD823Ud-ECFt1mq4Fp(gtB|h7)a~UD}KM1|nNH~}Ns9VXx^P=}3$lSO0R35JdQsT7R z1(jOg>n&Pt?A4Y?gz*~X2+1!39H@eIdiy5dudl>DfKyCwzW;By4eBO_!G>hv<^iGm zfYX7F>LJmARIyo+G;TA}=L7eimQjh^Vk!tS66!!dTrjevxxNG+vcLgn5)whi-`uIN z+)v!zLf<+%(4BHs7^zUH8v@iQEptPJlY z0K+;-dK|;^_G;{osjK(_!1A~f)EywvKi&lDI%)s=QizIs0zDI?2-TjUAVbjgQ9SyE87(S1CBD(qhUEL}Qvp0Jii4nE=f~YZ zY?ofw>z34Rjr|>0@l5QM5MGyw7+u2no*`>&4@Jr#1xmGa4DIj9Rnr6sO(evpxU$|j zFD(h6Q!15ObM5#EZ`z}#b#royX1e;I$r7d4@my48CKsZE*4D(z2vLioVyI(qiF8OC zb%jU*cVpUWl-Up>>fv*|beQ&WNX2sHBtF;Vm_^$f?EZ}xBqm0<49|K0rfqrsMDF#m zQd04K5@@3;FF6pg0B;DTS^zJ3$FXg=Qh*&uF`10+;W|tV-(V;@8dat{JZ6`xxxu&I2bzIe zf#e}UysE>ygZ^}!D8AkOvQc;BY`Tt*%?)uX!`vJN8Bfa%F5mu_fXW9WA&+*VQ{e!x zXGB##i(gyHIxMW96hel_xKcpXfKWTG&}w*jH)lEl%8DwudV~9uYsTndmKrZa#&fDa zHnc>Cx?3k78s(Gm7Djj<1I`=72+k~OGSZ8xou%=-qS;s=Z4{d-SSb=PPFD!Gr3m(z zM~Chrocc{oa&4+(G-$cjU&bw>DWDe^?I+U%u)eIp73isDP|k%_e6{R2N)8}btGrCf zxgLc#HuT&|>1*um=cy4eMz2Pj5B|v&lYL!5h2iL=2XVa(Pzk>75k!weU$9_RTaOMy z2!11d@pI!&gP6sK_x%N-(k*m-yTtmGX*2WqF`>^|Ea_T~HNHY`77ZO0tKbPF{{A&u zEu{O*S(`^-+9ZxvY+b)?zI1jB0+`P5nS-Wqae)K?P_I#A@1iPxP69YUV zccf3O^UtU+n^GmuHI$uw6NuPqjJc4!%82j2@#H*R3&=jP%W%uDMpQsQxTbP@N9w>5 z!PuC(^Y#&wkWwMHtnzDki&g_3X$J`=oMAt8rk$My&qZ{9UoDp>ug(irjA|-~lgBOU z)vLQX2D+dBE4wR#Qog4`?*3NIaNL3t1G#D!03qs4zam?JE^()c_a*PSkXm#SN;iL< zeq1h})vHi+uo%@)vs1OCwli2bw+p+ZC}aC?Yn7(g0#4NopWyRWn3XfAe(&a$At;Wi z;^bW^P8@H#qEL%DkxS9Jjc$d6_-nOy;BM&v;j35W?_eTeyZHgRlTUK|zqZ?#(CZum z3xt;k#Q-eQ()GyTM)QBH*|OWVEjS4ZS!#YLJa$q7OjNzj+})w+#_*^8^vx@dD3Nn)Kb^7B2{mH96w5_z z2>n`!-U-o_BOqs(!gE7r4D0dy-ot|Fd|$8(u}auHIf9}C)W88pRuYcvt@zv7p~kDC zSc&6u;c^exR;A@i2f4E}tP5C+baR)e7f7g6b~|BW z*Kxd2?C@81?D?fwajG%Ed6HKg>N&pV`Ii$k3Qxl)^`@1TOqn-YSN3DvDHEC_&X=aZ zQ!1cH(kXuDNs?!lE8Om=zjUkOsQi`3*%P-Q1iUG-Ti!=(`=!3V6sMMt(5PHQhJ^K_ zfk+KuaiRYt<(9i$W5Qd#RVM8nDeq=oa>Rp(bdwB_>*Qk9W&aZ@OGX`_t$(oJ2UBfA zR~L5SgcLm?Yv^p}lLlN}901+AtfrTf8|=jz4NZuq?=7)Tr7oI6JC|6p8GwX1N^`W2 zf$s>_u;Hm6#(EsjGglBD8IPc*x^ZfE9koZNomvf{#q!J+{lEHaK6=#n+X7qNKC8-L zF0res=z<3lM!JLVbj=tmMCOfGJ(eNOZsZ&>;vJQvIz6q%gMHWIlk1)mQx)%T28IqA zd$U|ycD6)FyA9>EOmaB}ee@Eq-y@w%9*UBGFc>8axYwpcI z#T4&O(ne_dl^Ody9(K)b(yPV7HPmsKN}4#h{m$*D&;QnS1{=?hr^x;LJGQPr9#%Z6 zpv4`^p795_NwdP)Iuq&qy3B8P^GjXM^r-DArHC6sh5+yRYZmkO*~BrQA_IK5Fc1Sy zUWI(!>3+F5jfj8KDDIMiSdgJR29_2CbOpI^wmZrhZK$6 z<9<^;;C=58Ds*IH3h;t3>giQeSJHT%$th_|-BBf#NvfJfOMWu+il8jh zC<=dVs`_4Fq(j5+L5+kW0VKtQ)F%^> zC67nd>*vU+vC-FhT|(;T}20(*tK0B-{m1Z(FDXzLaXcocgj70f=Zu0H3! zIKDRW?G9TvT5HU+o_+OaUlG3OYvUID-3y3oyDDA)|8B=wfhYkSJaN)ZIMFbX*j11y zmy&y3`BA6?L9gof%aZ@={CBkVf+Q%aQpu}2{rkSUWQR+td)fI3Ix&I4W%j5YrBL-F zxoa%zjP`aCFTX741k8J=oSGLQ9vn8jBWi8roWIKIXPvjfbT{VDnGN2K_=A0{m~P&t z(K*WN@!qDC5G=W@f5R%b3%EqErB0C6|A9gT$BA%YJOkg@Y?15%1%#IMeD&B>V)!?k zOfIVfzP$0mcY%(9PTetVht-GtXXNL$Km0)9hsw>5A0Gkyn)_nxn>K=>ec#Xwl(|SE z{1Wn^lAXrUBZ~~k_Daq+Xb2){je*NH!xyWUDa^0$HNSe^Apo=95FT9TPaBPfPa8%| z6cJIl@6Xp7y_OJvnt6b}w35GyD-eaQ-xx`sx zJ-Aab;V@*|gJ)em@1IdAzF>L(YkW)}LtsI&vU2=Sji9Nkx%%~oK2>wIx?+K={wTL; z7)Z>WTu*r}cf6e{4xZy?i_d4aY|uq9=6t?JdnU)IAbC6Ciyte=-5T$BXXMK9t%DDn zdS+O9q+o=92MZpbjtp&|G*!Z2_gW25lLR@c?wdwU|B;--N!(mdkTA0s&mSKDOJ zj80@G0c@2=k$*co)Eo=hYN^cFv`XWPE=U?VdW{GWAxxMg`l=MCU0GjVkfqq4PWgKy z2#5qYqoSpi;aOYEyf}#8IeUZQ_RT}S{Oe8$YJ}p1xWnarz1^LhA4cM9lu+W|kDktW zBL+47U4zT+DBe&9!^2Ni^J@`{$riylQc&=vfUsZ{-|lOZU=dd^hQ|8)0a-obsh+<% zXUi;#3J~XTn#yNcKsB)(+LdNFgmDz!wO1D}GC;W2m}@|yWOZ4&IsR-g9$WW4S)(|PEC z34I%?=zQemI3P#J>^_(TyXZ40!OWZ?7Z_;0UQ8Up@akt4ZNlgh!HNLpn&w@6^|NzL2TWg8Tj5rQh834D3e zFRZl@MVnE)zfct(~r$oowaq5}J=bhM_A=pqp!>Acr)2Kmt(saMJ(iw5H z3FDS9G)&>)BE3rr+UBq*alW8*>Vx7EQtY&zZaRsLIMPhq;rk+8Qf5a%`^bozY&1s`bP9C^&59*-Sykc4aCHt1`my=Pn&ykjU zD07zF9j9J*b~~&|Sl@Br8Bi@97B!Dc{_>{jNLX9+t-~Q@%gOO{6T10A#u2e5aP4Re;AG!grzTy1*p=sW^ZWHzjp;k@LK6b73f=B8MHq#iOh>W{3c;{6t+?R% z(nsBqPLPny2(|C|rZmS=^;AU|x7vk6=SjQs2(##4?tMUh>Z&LpfNpXiF~K?hkG2K! z^@L&ux~y{lw-j|HJ;Cua$l<(dotnsErEt~L$BK_=zSwSJ*m*%Uv9-%zM8%o$xo%=0 zOc;&i3Y>CyB*^i`{?453WmmSOzitjsg4!h?YBor#DowdGHG%o=f-YxqBvkqLhG}F` z{4;sQty`LJ#!t*NUURkBjmcF&IhR+OU1Bsa*?#wNNC6_V`pb!`l__Xwdf)W!67C-v zO)Vm9Dt6Ep9D;e1J8gT0b6dVBj-NA(AwRT-u(v5_E%t->T0iW7Ma(f~_k;Qb)#FlB zn63lAtBY_`@_BYYd=)CdzcXgj;4h2Hjt~!!$oRvi1wtc)5MNPE9E+ON**VZsF)9KG z(Dwe*gzzY%%TZsPL0RPAh>}bd)-;+@Q*Jx0Gv&K&V=$0%_OFjW@oyBveZ9I+2Ca@= z#Y&BqGuiil*S?0!Vq?0w?Y{k~_2fAnqM^YNF_x$KT0#PAQeP+W>yXlJ1{7A-T}LQ2 zJe1?_8xD-CWL)S$(!dReoBBBNM7Uibk=DO!z=JQ*cNAKLQ4~pl8Q8c2gQCIEK$=wF zknhThd&{t@wrv}n@oip4X(`BS-h=3o$?scHdz>I|19fHDR7S43%Hz-IEA?mR11=Tf zu5}A2a+Ao}q0|1lS5O%h@zTbr*_3qI23y-=qJGvsQc7k5ay~j%NlkOJ(n+A+(yR3#5 z3|d*jT~$qS##?7wKpb0WTx=5TA~c&z6rJz}xED$5OqtnFKq0J~&|@sk?Y6qf8F~|s zMdE7Hg2Eh;KC|~$luWxEY_1=$=>r$*pR&%fR0mIRIoSCOS$Qu!={?V!zDZ!ce2Yl6 zdhDT(6U@rDVyE%;ko`W{Na0(NGGV8|b?ue24=ps_UqaG`*|?oZ6CP~P$Aq(Qq|mi- zGViZuA-Af1zR6?kJI+~1@Vz9l^fRvGoZ8~3U;6zm1<{x^)3I~c8aTdZ9c$3kwjob1 zS*OYoW1z2iX_elK3>7)IKa|7kk#&gO&7xri$9$_u$s4uyLn z9mpx2>;Vmf(ue*)a-(E{^S=v4PLK*dG$te~$NxaJ&7Omh1<=GKO%t3@JsRSy`;ZKT z7*Uk58Q9dR50@w(u>9HU*Z(U?L=wJA5*~IQP~Z;;dZ5Pt6G)D$l#}E9yj;Wc;z)X-r6I2Wdq=o6!E^3dX!ir&l zu7yyOc3KnpzPsD08U$fZ!uzYbZ9(Nm+a@{jL|eC3h@f_8O)d_K zK4E4lxaA^`-UP`J=>Rmqc}^t#6j(syY6!ry+8b>Ap?t##PsxHF-W_0m`$64rsUMzY$Q`I}BDFj@uwM?Xa5t!AH{g^DQ zVTgtr^DzBlP=E#X_rR}WCq!L@6?Oo!0wNogNlE)08wVSoojt;BY#F{y(g+@P&V`h? zB$6ja$}2y}&{)y9_>lyQn&<}d(qnep5^fETafBACJnv&~(`0D7mF17adxK5H18bm2 z9as5Q1(CYciGfa76~|QBClJ%jRG5ZiR_z;dyM?5otbDWJxQUS=$yL(&Iqbhz`)E(b z1sOhs%`nZ2)LWg`AN(fcS*5byS!R`2XGBw$CdJ?d*Kxl8hGDNX=vhuRxm4C7xZ9}D zeI%v=WfiX!Pb?_iZV-}ukiey?jn6gU6fh~~T66Wcg+`!Di??0-MKOPituNpB((_}E zPbM0>kW^eC-D_=;rU>XHl>`-rNk!cV$v9KH{Vwlw9!WCA0O@+b_SR0s zn@f-8hEv7Q=MyzFVmLJs@=s;aBQ1uAc_xIZa%lNt!Y})zZuU&*cHq?UBcLh+{{oGe zYV6QA0cM#U+NR+F0X?OSdXqXMS1)-0a+}wtA~m6u1_z*FHouH8#<*E1h+;uc$aJDE zubr$>_tl{K{yl%yHOCz{#{}BvK6=2}&DJWxHN&lK)k_?mvuC0*$}X8&!J%3^e6DHP zdlAs7N(c+3YYYji1gtw7+xquY-&7OdEgW!K;q(QRIQR_hpA{c&zaFg7dVn zqHl{6PAMy)JryFFerjPo(oDCbJB<4`k@$R%hS#hflgBZ`Gv@>L>f%b|sJf`3Y&^ZD zi(iwol5Y}>tRBSx&u_nxjVcW{@5Cio@<^Iy8Jk~aLItz{9mc#qm&fO>y2zOvKu?bX zJq)$E;L!Ynib5>q^rpl`xel%M_Uk5uMY8rlfe@%|2GSbb0Yp9fWmPLQMbr#|C>DOy zbzimS*0_QBsqtr(=7{hxDu-pf)JyIXn3$? z`W>(M!31w9e!X%5785i%3yCjWER-N9`On&3|5F$*kkYkF%fMLDV2HV;l%>Zu-PZkd z50v}Yifg^4uuzS)SFuP_H8*@&umg-OTlEwCiC(4s|AoXfCDa#ah7Ghu4#@!2QgHbS ziH`rc?O!3$3I3qLqsB*=IOE>C)8biO27%*#7Bz*E=_HVbX_T{r|4D zH*DEo-k^P4JlzhB`o+#WG!VJ6b1`gLa;iE;j%v{DwP{hm|2LNDoOziV@hMO~+FbK* z>Fj9U6}k}GSZjUms-Z!3zl$jQL-9t^lj?541IKCp!yXwtSr!r))xip8E%|-R6}!(_ z;?43SaeS@i27`a>#jNRjlER-Rpt<%-M4HaUO@MKiJAJ#B>E9$X60Q;6YFn24vzd5?+h4v=2m%hE%kp88qE> zJ;vtU4;T1hApq+@v_VgZ0<`c2Oa&*I)<5kLXC_47M#h#td=zH99;}B_!mieA;C8)! zv|f&??{Ql;hV?XHCKj4p<;(wOXg2N~d#qiE`x`t=WSgCQv1?1v#nUB>t!tA_WK^|B zi0<62GcYH!KpZKB%%PcWiWHe%{TMBQ4jO8Ij)1QIsW%7>jFD-S#3)R;OFyL^c@%!V zHbh67qim0KDhoE9k!-K==E>9DT(=m4fH&Xa&a{Qo2B9it=bzG&~*wr$(CJGPyU zla5gxcWhQ{yJOqz*mlw#cKlZVpL^ds#`#cRc8zmtjI-yewdb0@lIHMzg$shZ65)O# zcDX>}xt7*II0aL3jp|sygr6$EI1-eXDu1y9&5NqR5CzfPx6x(dBH=cD3UKK?B3x1@ zOl}d8Ray{%xMRhpGIOYcE%(OOWXQzJRUrBcu&-GLf;2-cMMeqfi5QW8KdX5jP^ZCf z8P!d*)cdW~Cwxk+1QCm%;_lTIi`wVE=3Bqy{6e-qpji3Gur z^DmR-=srrLg)8c<8cu71Jx<<;r;^C%ma-YF!!=yx+NQ;@8c%C={lj&IT+itH@~`4+ zhCMmqU#Z*`1`4Yo2rJwXgiAWF$yKm|t1?XhW&R(^;PqC^J#-hdJ5ijPyOqUwY|G5T z(-W8H@8i0j=#;L2lB-$in0-06vak==o}2H+1kB36z@K|UeC>+4)L@TZ-3|RYcDzCj ziO7|&@`~JAd=V42V|Ipnx%jgFYPq<);Sjm}tqUHU(&{&Zso7;?jN)UyV#K65&Ma}| zrTG!&?fqn@y0uHbZ}_=cAq$6Klr~KL&2-Ba(!~4Ljsle#KpG z+mf$1E2d0|GlxdKwis=H62250M}SKbp7ph@v0%OCD01Yg#z@id*_J2l&zt57nJH$8 z`N=nAVJyqOA9Gs56i>|lgIfga{M8r0I6E*aX2z<=O+zcONlO-?o|>kPkTyBYESYf^Wy7umSe=KhVaxb|@H39|;2%ZQg zc7~+Umyo^Hjyv_*t2z#~Z#Du*8q(1D=<+;*Gzj6FqRv{Q38Tz#v%@~2QkqYxL1`#N zHLX>rxPtDj2Az{M!CP3vDWq#A;&cmK)lccB^Nznip<&@A<=_9?8F~Mgkqybo&ik(k zN#DA#1}TR`{B8xDByPeRrwIPB11ubhmb;*)bLEx(M9g~+Nce9d-@mbKEC?=+^gVh= z`t;aiNNm8*Q}ukjDEx6AQ$6&yNFct;{x44h2f({ZuftlB`M7$}19cMK`H*1XjYzR2 z@s_NBub^)Lx38->`7Hz6#_73+r5d_SoLoU_c;~4=&s)piX5ue%9e>{)F8AxAU)MYv ze2D;UzPOpYsfbj|xi>(bZeyXD- z;gA#LGOegZ7pMXq$$;+Y=Ei>6orO45bn*yQIhhVR}C zoY3JMy)HuF2XxCz@X!bhcnLQ4C5drmzfwxEx+p;0$25ofG#hD$Z1dRJ%!KXoYPvG> z0Uz|X3!5UBqvlvjoo^N|_5G7 zYplTM>30Vo%2t~kRG1V?l88d*oXSUV_J4#Me&ndCv-6k@SSdnj7%%h+nE|LWG^?~> zI@>(q&nI?sA%nn7S_n>>K+c`bTHG(v+?Av#e%ks9gRTz=rJUghat*T{wWF9JFo6B1 zD%c7KyJrkc%sB?Re!0%?-`HnH0Wm=bYcH;UyiKlQIz!pz(0cV}R>mzyHUtc4ZXNm%4R zzDWODAk)pEhnKaq@vXWd6-vb?S`x*j(6TZUQ@Tu2r7O^VEuHZUWP)!^w?Bha1#e96 zI)jt|`PDzqAPtf9tV{)wWCK{ZO$RX!5MwOr)u+MGUt8dzNh@`dTpEn$b$(u zOT@N3zBi*2Uy2Y1d5+q>kygSOPyO!&NH;qGG35Ap)5R@8+49pm%FYM>l@xT~*y)4L z*EP{R(7_b8XsyDm~C+1pNIp;v>o^(S48g36N~mJZT?#44v#^a9j0F{ zGQGMK5H`eva8G{KN@4lrodFnN_uV=X2i|lpQ(BA8HnQTAkx|z3qo@w@w*#h}Zt(PW zs}u*yzoq#j#>Gpy#*QFcB>gMzN~Z60Xlup`dHtZ<9msw$Kl{6 zf=;v!Q}=lQskOTJRV`|52rkdmJ?JQ1ghf+62O3@S=odK5EHZS3MR^yUI9_VgyCBR_ zIp%ji#);7NZY%Z1D{;IS`K(2@aMkURRrs)O zwM0Oc{8#Z|OJgpN&ORUviPO6OP(zRuEfgsHO@Ke2eJfCd6&jxnFlj~75q=js~xh}7ChhtADefLq9M4 z#+MW^w3$SxWz`Xl$agiDT%9ZTt7lrN4-LT9PF+@60f3k<4%+h0xU>K9mbi>v?9c7K zovs=J3t8_uNdtCxU<4YqX=TG86s{PqnZt(-I4DhN()yY0Xhb+E_-(Ys_&IBKMZ=iF z$H=3CUet4vre#BG@7DK^0!nE9dOy34TgD&+*EZ`iG@ZjCJ$_Lx^yb8BvruZ7iXi~y zSnilD#$luYZ;`(%${%I0u3YeAzC|dj^t8At-#z=x<)A*~S7(;^ z1e=QVc~5V%Q)7v_^A+N*F8)PxL#OP=&{~?eE=u|cDwJn5CRP9$M#s5@}|6e;C3z7@e5c}ug0%RI#9PnU)l2#f0 z?Y=~7CsFI26Eh(;38pNBKf+|hz@vC)4RtnXC;$TDdojl49i-dAWnJ%c-S4wkNC&p7 zBDyc;hu=>Zv2}8#6yT0Q24xxaGUFlsLL?aDE?B@@?o8BfOygK@Y{=LrZ9r@^mjTR| zr=2cUc`SOAriVNO0J2f>q&Idp{b$jKe=7pqV^iUa;PmlPOcCo-5h*1Erg^->06AUZ zFCdEy>X%i&pt>F(Ja+2tr}Lq((TeXx6M56!e@>s!c{s2-@i8LV-g=^5R{nV4C)|!6 zh@OX30Xe4bIO-p(?!GgAeoRhJuY70Y!&^Cs&xm?~`;2B~0kCuyk&kpuRK?nU36wCU zg1$M%4V&+Od#uh54VKE?#S812xoBNu`V#dur`}73OnFRQxu zi(cNA2tx{s0$hCu3**PTTl(HDmM_O z^bMYD^U?WLy_`=MggHpZrKK0oKuH%GDOic*O9*$S#@$B2B%$f)W)#sZtAjAqFC53x zP*FAEQCR8}sGFK*-`G?eY8Gnc980-HOvkEIne6zO4fqoEEis?MPn1ZEj(Xpl))7PA zR_@goa_5JDn!Iog?R$^u=O+CI!ioDQ6{K;L>N^&B#N)UlOS2j;dZl^|s|K zu1k&|g}D(F`lC5u_Qi^q*$knxCA3xvHf5uQE!Aj4LdO`BJ%6iZq~U0LhoIx}w?Zqi z`By=&9{`q~vxFxr01}Yq3~Fzk$`_61erevV+gn9D!mlMfZ%{d=a6a<4MU*Y^54;|X zZ&XGNJ71IbF2rOPvH#W_>!X-J#Z_Eg|LhQN;f&;L+?WH88K(eDM_hGPT`8PvzqW)g zuw6~p$g{aiqiGe#@iw~O#?@0UgmW~2 zJ~UFUhP#D4<|mSBI0iHt4NXTHqVpz=C6i);ZOtThg7djKLAl_16)ZI(qNgT2GSk>Wug=?>;% zBdIIhz7Ch|@KKfI@6Sc=l>tpE5L`zzhHjWHXwV}>)%`Qp9iVqWxRr2||e{q(7x>j8`r zW=BtD^T@VotUUHZsjc2c#Y!4U_QeWYd*0Pabk z^EK3NR3k~Bau)6**$s3CS-~N@ps28v8d;cnZ21?R6nk1wt<_ZatPv2*o-C2#pi*v7 zpaH``MN!}|+m4!X-$aqiE0_oV1ekoEkN3gh^)logzy0Ygm?4VJX7p_e#|-r#xF|tB zp8khgIgbPiyYMVvVhEXC#;T5Pl9+{|ErarN?| zc{hS)cR}03)6A#v+2FZ`>n|7=Aa{&RJrXe1B#OLd#Pkz^?oYB-PrC^k94)0U&TMb* zu;>cq&hj0MdN7bYihiSMH(PZ#U=T`s%V_5ld@if=Je~dVKl%?A1P|vwDlkKO_#-GC zeT$|^aDytgJ78_=4;mq@l4CY^o88MpH(5P(jQAL914aEzyUqy-eN_G3q3MbBZ6J@2 z7qL{F82ZUnW(|>ynph4S9GcZ!!?&J}#g%Vb-a08^*N&HA*P>?{hQ%9GuOhF9e-p*b zu=;G@Z?uhW7MZqvbP``_0KGdtP@NlvfS2~w+DUZU-dP$^8Yq|{6#hAKy5e7Y4m2jc z7B=wlBK&v_a(s15(S)@5MCNq8EuN*xqO`iv33)PdPy@f;qaH{Xfk~=|DrKmRuJ7%| z&-U`wfn0uVoxRD^z=(KK%ZrcegBsZk!MjkwRHGfXqsFk$;Tyo+Mz;t}aa5BT&ni0W z2_8I2^8xbvZ-*{oPI@x&fxWi;;zP@{77ae$d zQC=Dz z7e+WbPB%Y_R%^aEzebI1Ub1)Q<=i8C9_|^9`0(R{5UL3r)^75tJY7D^^dbs}tP)zz z7?++ylNHMr*Ow+~b>8R&8+vzp*6rHElj(O&9^>Rg=Q9a92J$_dR?Iy(_&gI`>>=4= z06kzC)vp|hc(sK?(^BC3re;K(g8?zaZSHUI%TkGv(#}o^&C9(^Cj{xy78We*E+e`+ zJ<(Ljn&!6E<){himB6KmN8qTXSI;*qWT^V#NLz0+WYef}s)2}=Fr4C=m-q}zZ!KH1 z_4AJ(?YM)A0~wpSwVOZP3_^4npX9oi0nDcsJ>z+|X70`!_1Kq*12w-&t#^P_vj=6x zkFU+!TDY@6FIW#KYM;C$dq}`;+_2l_7R9B|Vt*VGWa3AXL zg|vv!Y@C~xDXhRYYIWd9)jSA2v%_`+pWT5GC7awNPb6NgKE7}E4Qc^@vX8Sq0LX_s zHYaAf%n0f7Cg0JdjVcHF<~&pl)~d>B(rSy=6^y01IUdmQMV!xH$d=W0#(C9ez3%)w zbITMVEu81;wK^1vM6BSp&OEzC&)*MVQ9lS|WFC!jXT|nT@k@V$OWReOk&wewR`N-Q zKh{952=G9Qoa##RY^H&FQp`_e055wzX`b!0czLg0zy&0C;dNx8!LP4aKg*-PQkU?S<5 zV6)t@Xxz4TyE#fx?FrnZLPeg>-{927-nMc=J>L@#AX4}dv~^M5;#oJK4uI@jQFFX9 zmUdJq-no%I{M)s25u*FrJz>m@Oxfh@TF>p5I#@t8!5nRjk>i)$0oK98H!7>jXMGWR zqciN2`6AwP)Ss%^>)fV#I@W@nFHXpUCD7=IT|PGQ`i6dXZ9;n=R2?mjT*wkW?4E6X z94!_7!%@0iDv%Lhj(Bvf5s>z{p;)K`r3oLO7yh0z0BeKGkPWlsnw)~q`P++lNqdW+ zI;ai*l?58~C>HA%C_Ro=ZU+sCXMT#QO8cKTEfOVvrI0%eKKmalf{ z%LM66)BeDOuh8vEOQBje>gvWp1$R)gg#3WH4-(tu21M&VpG7vT-@G z(7jRZ%#B2$QFr-><0vo^rVMhN^43iW(QG=R*IgJO8Skcf5pOSVw5jx+Q28%s+vT; zyEPtsJ5-P?H?*`R?mrrK>ZN-WWKGh6h=X2uxs(h3f_79?`;DtX()l#{Kno=b-45$_ zx@;uy@^-KQK^El3_I|%5`egDGxmx*Y3SZkvS6Xec47o3fY(SJE?((`n^2sO+)c;Rl z{ud_ve+5S59TF4LDS13y^BvL{K-$fAOcqsvSM#~maS@P4+qui|xN~@e+6g8OFjy8n z+3?`rKYSV;kB7&Alt3juB||g2oaRlg+bL*8ix=@lOUUr6dx$2CH>WW#|8TfcrUj_v zqmv89qPc<%@2pgRW^8MQngayhnFv?%7_xe`hkg}pymtDnbv*mOinoveuAOfnq~1oq zziO;KAe++|{5JXf(OSMmC?R#h20F6Yy$tnVoUqdBaV;f;@eaJ(2ty7u8 zGMF#yBVC9wdN+y<3vt>3pgtdKf%8JT0P5Bo6O?$+Fi?@jj7PFana@xoL^e|{I}#jvSlXi-51 zbKvX1zpGQnkYXP_V@J} z1#mT9Js5YKa~HOr7gD*!hEZro=EJzb*!z;;2#s;|6Kc;z%?tOm3c}7RUn!4sQCZ`W^sA&gp&V9z zql7DYpm=A;^liO6;X##cCln%qIChS{{A&dghUaYT@DJvHx}c`X3etr~91#8I8sZ$5TU7+kphazMgR$sDZ*5(XkIFeAe3 z14=bM&kHHM<$uBu=3f=USn)CER=}2M#Mt+}#gIFDvFFxX3Mizob znhPMIu>aYCK#l;O^oBK9dO(f7vc^Fh&ek1c*SAVRf&hbDBLI@77yF#Bne`uAhEx<7 zL(HV>RiyZ*i=9+zLV3P8b8AVWjZ;ITJooEZrtD1`K7M{*fb0Ea!x(0m8@-R4YqCoe zlrjiXdgQV%(5_??f21s&sh(S66D^pcZMDx*va?eBV{UqEi7a(|sM}c^ zM6Xz&@P&g>!?;Fv-4wdJdWTq*Na;JvyJ)PX(O{8B`PI(4%fdBHttg7K%S z8$q9ZM)Vak_oR*zTZb=xA6CV}m;z>BEPiaZO1ojE=Rrf^0e<49^u;n+h%k_f9YL|< z@rfPfdz+4dRgN+aa7t;ht-#8_x}-`$2p#QWy|%Rns{9(Q@hnn*S27mT0i7X!WgE@B zz}Gyb#h!Ys)iuO5Xnr=HzPRlXdpLIWB2uEK`W?NNtQ5p@u!zDXYltqIpx3ZjUB`G( zq1A4T^H{&^1W@$(O6=oqA@ZeXYO3Et?ak2;?uY>6<53WOCei#hwUP`eQTxLmuSFvq zRY)73g<~sZvvN?DqzVQ1IcQ9HwMGI(*{fH=@bdjj2X<7vus$7&H(ko;g9}}bcChZq z*WuXVlR)?8z_w3g2QS4HTQRYs*|f`L&B+w2rn#IARiv!`7b#g%kL6Ih+YT6(uuyoSV-b`bh2K719dr0+#r)(XCXSL z!)l2C*fb`wM;Wj69hO*+&i}B1!6mWi74QbRAZ$qc79Cz21J_n4()v{w^+OCm-*WnFOasz z@>Nq1AQt7d(J4A+E7RFucfuPTq4myX;%J^`8w@w1z80JBoH#OM8TW-Yru3wV4p4Vo z>3o&0mNL(jJ08k=p;~Iix7gN8q_LNX>N>vO+TuJ#ysgS#SnOA$D3!efJ8vL8B(p<5 zfGoOj18G?m1%4Q))i%};2pFRzyni*#*CvKcKGlg3jI?ny%rz?bss@Oa9#wQhvt%wRQ^L?rcElu!qH=y;#8z^_XCtO@~$7PHjUc5 z5Vh{ppTB8?z5Glfr&uKiio%rB7D!G%;;3|d;a*_P7SAmY_3Y5t9uBSgropQ1`Q?{X zvG2*R#jj2Ej(_YLdTMSwX#ilWv{MKwmpldJ!gNwW;Mts1^v;x6Xp2veHna&4=#Py4 zY6{LdS+mxFsSRWe3gOI)8g=(>#jhfMyopTR85<~LZ=ZK@<)+NNm940gFa4_xo%~-{ zXf2C0N~h4(7|g_A$Fow`^JM8j!$B*7O7C?qp9F=i9Ndt~8;PYessP7AvRHf# zLc^z6=ooR;s}^fTAOPULSG&)_@5Mx@l-JqQYEs=~tL8PSl%o>T{(@bHe<G0mcX%at2F?8KmxX=jBFF$K3&eHxXb^Z~I zAvrjClG#cb0Q#Ww8a|wW6P>^Fwb!=yW{Qtp9=wRsxQJWC)+A}A>g4RZ>j`rW_~Gvl zepcggR73{scM>sI|0{KBs||@ZVfpxkU;I7pH{_F`=_mN&L#jH-O6dxM{^iZ_H6Yav zo+-NONMjO2|28Ly{9U&nXp9Z?_~!n=ZK@X~l?DJc0-u)4L~t*jd9p0`s$M=fcqsTb zH6M0{t*K>&URIXo>;8vHY~DkoqC>`smtEoI(;XaX=zf}#RN81N}w74e%GX;Sp<4HOCQ`#=W z54E360mDEt`xn-#$V`wBm9op<(T?&7fGvi55_mF+JD)P=%)mjHp+j_8I3Op|oZVdS zEu1+aBOsC@!4tv`z=;(GHR>^QWaoFiA=KucIU+6FXcxmauQ}-P3pp2CxS!*C2>K`J z-=M;-3{6HX!BhSSs0vyYkL?HhPA*)IQzyrSrkv9*!nqy-bW8a@Oq6X-$eTP1h+J9Gxchw1ke!*Sjv`LrUlsegoGq6N6da z|J6aR3YTJ~&*n|WX%ps?=G|itX4KQ^BLzIC(>X6f?>t(ttUezmM-p_&3BOx6B3;7O zM|LU@2GHydNuLH=ChCJm83qATrI2H>0uF}_=WL02@T7fCSZ=l*o!I8)sG?^wbUcr? z1sS`ws>aLj19q@D5Er>IQC?rcG^Di1{M%Ug5-iqw z2dM_N`um9{Ux|<11q?Az#;-OeYBDd7II`M1=eV7NNSj7)dx&_vKvctq(5*0+f;PLg zCkx}WyH~^4fP(b(r4Y~eqpqxrhpmJL&)bSSnRfEzE$XKfmZusd3 zj!$mLp4aCl!cn;n16TiO?>74AEk?`1m-7NT<`2KQ-r1S3^5}ur^jtJ3LMYU+-+}4f zXi(&UTrYo7!MI&VJfF4J&1Ueu)qnlH!uw;kSyiO!N{b1hs|}cCp+{&Z9|sCQmPumE z=_8UuCl=t?_T;VP!q&~sqZo39pY^=*S9hGOUs??lHl_gNstDoDNNLUu-Xi9vY26Q9 z+}>PJdyfcb(%%SMlpXVd0|wLT)J2+~CmWF9R5SYv2es^w>sR}R|4+TDpE_g(8QojO zo*1D1-l!{c*HgQ2eFUvoPq?4o`d|iTGwW<4jjHtMKYpZfqq@)nWqNQQ%2retk+DNf_gyW zC_`WHBNGZ=tX~_-QPvF+y&Is~#c|-}Z)Ys1cA=@v>m^M%01;PFIkFb4 z@1Hiz`Tf?hE+%HTbI?YT){p>u4&76qp52BTdf{bp=Xmc#z=RIZuJ~E1TCXCky!JAS zjWG*;M{z%amRO;*6`ICY3(|z^z|j_10%d1+jEl9cHy^F;8ExRgVr>rH2*+kjp*^Mg za7o-OrOe>uS-!?-p?y`l8r5zwZ&Smc3*7F6jNY8NAqt8pe)}vek@EC)3@BQ_n8mvN z;|y6Wfp74Qb_o8P3gQYbZ+W(k4N2M!Od<3ha9A77n#_dfqH#i}s$;`SUF0a*SH2gF zpUMs{sQ+i-#8U4thBT&(>*8bnOfJLxrC+Pj)X|F^m6@>^d*Ti{dlzcemo*!4whx!v zqe7>qa%canpYz!4-#(5A`AB; zRoTODqziwN=BY;1I9!L*ltXncXIK1ZsrVu5#z0Z zY8Q2(2G_NM@zOFAzDI|Rv3yPWWAd_Dvm@PR2 zYA^ID7Q9uXUjD^12E?~e0IZ~wU_f=Jl`++%ubnJ z^^K9+U03XIg?peVC8{Urwd}mKw|w;GD~!vk@en5G94eAKQ(ak^bgHzE^hN_&5F{cM z8y#4o1uKILsPUN;{)%7SIj581K;clInSH3`Jil};5JEs*Xkab2S){pnfp@hV32=$h zU(!4PC=;U>|L5I+VCPD9F`z}^;s1Y$@7&z~bwIZCC!Gv<(Y7ua+Z=eY_z#8Ppulg- z7a^EchxD4c8(oMB;J(TQ6@i`YJRxD@de#Q3Hg3|a>$;Ecxm;&*4vu=HS(1k_=}8_R zL%^!L7lbMB|0*s(h{$r^JtRnhaEI5n-z}}B7ytU0i}C9l40%M_kOAMJ<}000skY%j zh9SV844vwNvOv93Q2n=Vw3!G}xl9HuPeup#-{CAa@e1-P)TCgP5cw*Waze(8l09KE zz5L=i>{XhW?^!Sut<1yJfA|@pE7xlFa(*<;RGU*p8w>))Cu_`L)X$dZ?Dv=T^QVCW zieE36f0q>>J1P|%YKQn>V#{JfBH-^~w}k`L1s#|QT<$Lb;POInKZ9hz?&+M zkFk!cDQixDUc(m-(DUXEKF=9(O(~m8VllzL3pIou4>9pvp*rc9Vb zss|_WJ9f9qv~h=guC_;@)WA)Un{)@L-p;zBhWmAHV%M zm*i8lMcXZoH8wB2V~lx>k|rFMojgKVp5cL>dVjWDuVn+~^#Fce&x-cyeQ*Osjg7jE z4LuIdj^0L}zueKG0?Le(eb&-`P~*Rqw~ zl*%O~J0dCOGmO%3y4m7S)0PX(<=ZM=^DteUXULUlvnki}+*58s-0|@Mw6kyaGpSHK z<7g+|1N;mJ*_|aD2eDerJhhS?(wqLTq;0N6B*fu#)Q;p)vFOqh;dHHiUj?BGVrf4# zaS5YzMH^mYYth2W#ObU)$x;MJLJc~AO6Bw~wWoOB9Sy!O34+;!E=*I-G}4JtFb8H0 zQ~PbwRr?bVKDFeP)dFB(CktNf1fF&SR(%OptrS$Us@XfQjCR7T+w$IU$Q5_QyoH?h ztFWE~Qr>6Mcev;R`vPl~c$x7-V5O?NA%&TctwqqZeGn#Q18Xu|fnkRs%|Jz1;?;s) zFq^KJ2sceZgNgep{Ae1p_>}xhLJHGM30CVVue_!(Qy@KoUN~STo+JSh5`=l#jR%F9gh0aPusp#73DoQ9fIpnrqz_%dMfnQUi%nns;ei z$&DTdiYz*``g$fLJHiz1<9R4M);QAUe4U4H(5P!2_2@Q;aTL019nw(rN5TB0V>f@X zeZhE%K+b#m3#7(d8ob0)kF}Hh@t`VyNfyB^{E!Xqlj0WFpyui{xS3KTo zb}QJ1C* z9~?%Uq+E9&QsWQCKY~q438ng-=Q$*>lr;+deT-gVZw45?{X5;m`d@Zix)nJ%V=D(S zlsznQ-4o-dRgS5sH2aaT3Ic>9j5CBJ+)eO1Kr)0Z;D1X%)ARo|+W#}tr=w9rp#x5t z<$;CbYQN43)4AY?4A!vEfAY2@=YRGLMmThP5{G|d>1>ok=Fk2zh@Uht>=+bnVl(S( zE!u-sItNPfhz6oUgSes+|Hg|5FZPw6SJICMU5(XhCq&cSwE~@-(nqaZb9%ddwAhLg zIUtIKjaIgNw;j@7eXJ%v-)=;o0Pew)Tl4QmS3KJLm+8Q@QGD>AHnOs75L%R3`>Bc7 z*|j0OPzM@>7Tu4o@-~5E5QlwTE&XfXlChV+_Zz^Nfrch8B_1iB4bS*;fJ9$iPe0IG z`MD?p`!hVaQd@lqeJPIdUY^}?)MGW5um-pDJ1U05N-_R z`Fph(YN9=Hu2f2@sX$F{v>Zc!kv92JTJC$Cc{mo{J3P8-4h70(j3rte)`1;|z81^m zX%$E5JXkjkVyy83HNoo@fZyP~=XIZdeU_f(%kI`n#Ncg<$dFn20UJ?8?+=Zd=mHsi zR5mJ1JcvLADmA!x0;dJILM-1}O!>zwDoHuBA+bOhxR7E*G?aDsw3nm3+Mc>6Why5I zgw}?_Xg+Fzw*Ic7iqiubT9+aSv#DfnNOaRfE^WM^$Q&9DLQQ!XK%97c690F^Bo;7U z+gVwr-BTW5>4Rt0w9|t#ksn7?cf(9HUx2_RJ6kA6z~d^EACfPnJBEU@f`H+OO0|+>qf70oa=5R-ESEL*20uC(@}i$n1_Y~%vIN5D02B# zS3;js^g(R(il%RXDtQi%0hK4cdeAMn@Y*^r99%8$od-0v`=DahMNK5D4YLBhw?hPht^Yb)H>2 zUo%V}ecb|giwkIqDvldb<5l-UFH?vRfM?nj53i!BPsYHY%nHqEcD3Dys-{!QjXZ== zPO8x0!Q1682R(x-=x5A4Z@p^h+2S4j-1nwb>x#uT8ls=yQxRa!!6C=I06kXLw$_A?tkU*9EwyY&k;E?^P#8x6kLo*g|dD}ND}YT+F`)6 zK?fzjDKe`2ES+sm3>CW-Lm(Ak`Lzg=!5m0SD+aK2z{_egw7~*B2&PMw0z+6z->bc( zHH1tGSJ1$}7l^ymWi^*``Qk;j({XIpU2pkfG(Yq7f})nx#+I(sG&E?3!rYj>T1me2 zkv2wL6R=cBJSYc>`Sbs7k<+p-Qz5QiwvYL(oyj5}v8P_`${Kn6&AZ3pe44;8lxJHS zFqdcQkIiUu*&_R!71rciSJk`p>S{14OnPe|hm(OR_jq^p>x_ulS}tkHNF(*9eELYgfulKMaDd#Xys-AWh&Jg8JZ1%X z@5})gfj)n6`>E-km^LeQygDmXE=BqPWNdo|7D_0?YaEO-xcaS^F!S3YUS8^b?VT;F z9xFJ5_1YT54Hk~C)eqyNpMNooBb(&u`54UBi=bNYcgDS105`jz9l4mNm!4Oo*MG!* zNT_F{P$*5q*pOx3?G>tOQrI1$$w6lV5UGNAb;PdcG5Bc`gF>`2a3;Dd`bXaY!ez~d zP9pso=p(w%?g6@2z=+4qA<8XsDD)B86QbSJ=kRM&RjE@?(jN1a#M}6-hOGl=#K1RA z(ztDKlp5)3_EZ>?wF<5+dwBLtM?rHmQa}wpQsHiK!h*qwN2%baqPPSYm~(5Nj4~{C zi$0;&>cy=4(Ufb3`Xf3C{(uBPG>mdi*MMjT?adQGzB9V$;75vQNJzPml!C(6r!%d3 zcq;>9BF2W?kYS!2_$Rr>m}0T&HU}jIdm1@o<6Z2?*9@06gk*f&@QxMeMJ0Fm!D4Ts zj9`4;?|OY$Xqu`M7=2hNl!cZgY|v(>f_w_sS(wlDDM~noKAkc3LN$bd_e0vP{>H`3 zPUCfMvgw&h{U};p$Y0C3-0yt$OmW;SSQH$X_Su7Ckyy)ov~v4O)vkUJA<_df`+AfR z67Y#D(E7yHM&Z@$wbHs+u&c#M=3UJw9*3zpITOd18I}q6r$S&H;PX-Y@L&V0;ylUl zVq{|^xSbuX7FgQ^eVC^lLJinKsrjAXLx-d3(F}r+Z>r}@0GNaohmC&*chQi<)qTd>Y zj|VG#Be@-KIM#G%@x}oq1-N{t&6nbt5GwTi9|bG27`Fl5*jmN_s;xv*9-0MHlDN3F zLp}3l%7wI+(K#d>o#Oth0wH>axFgW)pg+! zbQ8Mpv?mO#QyOdmYk~Y=WDMfUPm_>3zD9p-RsQ1XGH5iauiX?bq*-r92ykiG>Y{gk z4jp;z#=CesdOLwd-Y?^0$i=|V7kJ_$4h398GI@QzL8ra?d_W-v8Vib0;g2_8K({a0 z{*GpF`V_IqJBQI9qshz*+UH5%a&+=| z%#_o1U82na&4KwPU^_}=XDIp@6ydCUpI!Ei4gY`X(+v)a9N}aC&u{Cz2Zhk8$pQr; z#dRuQe>Tb1lNM&&qEI?&A+|=ZD@a(rrhKC6$ta`$x12j2G@*?Rg1dpty7cKS+)$WM zJQaov>7c|CToN(pd^&>A$KfRL`Y%PUD!fuWao3bY-R-`veh-uO=@2|nOn{zf-870+ z_4Tk0bLDt6d{Pa=;<7KsKZf!y_+~9l73ShI#j%Z?E^wanCT!37t zXXz90SCE|QgBe|q_ZD8GBE5zOiVN^FQ>|`lsV<_6<4i_cFW0;5JVBkK4UZN^{ucW%@G@qDM7nP{o~%VAq2Q=*_FM( ziu6+SGlLZW&cF24OPBTj=)8VDL>AYKZACJ|Q7?}j!kwXQX$bw=_~<93(*BOKaRwiL zdX#_9LVBEvSLwZrQ^faEIDg2 z+PwQ#L5qr1V~bA16EAyCT_?ap?4)FXZL2D3Z+FkU$vWF5A>LI+U z0kFl_M}pmh=L?c$9~MS*6cxHl(c{_dQ6s}SxwEKQ(1zBMH1v+Vpez6*g#mx<&S`>F z9s&J{yT4CyfEcrmTa*_WTb{w?jTa3MWIr1xTMG`h3AIidX5C==Jy&vCAQs6asgMJO zpp=7*6;zK2_ZnHDNg*L^QHk%l(!*M4C5o@;LEw;R{ljAouhrPgJMIa}J%jco->Eql znwl-Ke_Np3A1W1ds1M+RnkpGp6fhVT^5P6zVsu!?=4E zH@Y*&!-<3sAy3)2iaipVp4hFWWmi}M__n|O81=;7M6x1L`LM(c5QHyv6ejjFpF)M% zT1Dhtq12`x{w-9hn>d-1L*n=oZ9eIH0#KxMg32-4P`Et0Xgt?mI%o$a1reYL zPeM^ce+yn(5%bUHz(UV!q+6q!9W1qbl9&^uHDA+X!#_{YevhA$&g z+7sygb}P!?fWNu6m$nR|pCYdvy!CI~C?|HJuL8OSF1mw@N&;6eH&EFmMw>I?WuT># zyigEaAg!%e7&^goc&zlmhEu}GD$A^3lrF91U=;EUj}+OFo3;Cp9QG#w>E&PA;$fz|R1rUD`P z-&GarZ~98a!HIk?K+6<+5j$123SVx7^{0r^>{u2l@(LYvC+jNKt>B!bUZ^y zz}25b8qR?fHe?nSQtU&$@>mjoDpfqPWYpj24s4#}q(EPC7Aniuv=hhsWdKK#e}fc} zq#l&g`cdYJRfF-{ro&f`8&w~7xkbi#mo%&x5AG9P;A=@_KhwfA!G5Av7bjmkmy-JW zM&b*kMPN7Fe*SJpM{I<{>m9ox2zj&0l6QOCAB?%1}?j&0jcPWpMz z_iNAnYmKo+%{6P@RdwCAV3#ZkU0;ccR<97y#?vl7_}P}5=tTv5`kPaNO{UMwRcyvd z@y{1O-C0s1^XNH1>eHlomQr{5z|bKW*Kfx8byGk1z?kU6EMXR`lcCtnQ>qDnzH~o~ zwD+%eI1(?zDapR{kbno6P_~Pq7F{m~2R9W>|+%I{9RnHpLCKOC_KWjT{n>L+hL#eV@~?H%;ZnJY_c z?$G0`%IQGX{l2zq8Z<}ygtq*arYEcJ|9mm z9^SBbPAc2GKR;5>6fSRJi~s8G0GNsj*Qi?BJNRh zuC-f7?!VesChHnJmM^1<8Xoyhz29g83`$u6SyBm~1~_&1c@>yXhd6yH_9@Zur~_qA z?k|T`)E#*j)XZUX05fK~%W<)Tt8V*Lg-ff(Or__$HbIAKtY_`uMQfha&GSz`?-E{* z&uhix!M}hPZM#$5)|J%Ajo&*d!?Ki^J z1|1IScCWNtM!!A`!3gTX^;`89FX=fLg@}BtzpZXyV&63upYU-PFd%qBJ)|*pt`^?T z)ak@6svaWu%yDNcdOEX{iL3^|>9R<~RYj=sK%@b^lg5@Jq$X_}%bNa8SDzd-vZ(uY zW8Laqv*Ji?)d&y0x3g^BzJNXY3h(yL-vEo6hCl(<1kB2u)KIYtp4O8 zcuRl;c>>gPf%A6rf|dTfZSti#4z=%ZzsWkuWwO*7a=a#cf%fHMe&+Z+Rg4^d3kn8nCkFmC3wHK=67T&F-R ztjk=dl3ZE1Jn;?^9pW+`V?IW1e^?KYV;{FL<`8h;I+oAv#GrnaupwX}jx>qo^=I1LddF zD7fhmqt7D+7O|nChO1d%ALi`dC<5p%H>{;QN)x#c+&Q!WMhp2n*9iQHv5CU#cRSbL z&=GHi*STf*n`wA=fg6!?*Vb#((w2I$nq|bdza_+OMM~e)^$#m3-<9;iNg@xLaD=wh zfn~{tgs_<)@ZXx25v*TbeDjxp@3I6GEyhHK+Mn1~UAGs%uT?EX^`9cs8)EeX>1!lr zf|@$#6RSriAlEoS414>gIH)L62bii}|3tYzr!=DYDvCz)rK>PXPX#bzt;Cm0YGK~e z>OtrfZpL-R!UE^=MxxOtf(q!WP#ef-ud%`R7}x@W9hV+ZdEORjqHstw%%N(s)zBl z+6-37rf3|Gt9)|SS-JN7iJ%3G6&rG-VU8)Ci?-CZBjl(YnqZJOKKxO@bZ7gTL#f=$ z|52p%%aD+K^j9WfACej1QwcAgG(s(k+w}>xFNW$T)9L(%Lf9)fOY7trGWgj#=MxR} z0RJEP!Q(`CVd4(WH{Ws0$bNc#-slo_e9Yp@aAC}o*68N1-?FE!wpMxziR zYs+riKSrcy0)9(BA$>wT5{Gt@){OE*vvgMc;z~TiYk^~w>-f>TWz*AS-Wj?mh`m0%`_ z%N6XmHyFI1Jt$vnvG$W+wB=cqLo*$9_)C(BYX|@3u?4yO`q1C zdzNC4UV4=P#n8@D!X)4)QA#0&_h9PvTyx6B=V{o%K}-g$#$eESZR-ZTnYeJI@i!?r zwb5`XYEdR(jQl2`Z7L%q_sbz5Wpm@QtRkK(;^vea8n|}#Q9_D>c^dk{1ooB$X{W>r zkkj%RJTq4S0rO5>47n~8&Rw-`7}I72XVH!E;k_LIfY;svm=IkS;^I1f>M)pUCpPT6 z%^EuK$Ix}WpqM|p3?gAKgfZsrEEF>z*XhfM)XN!aNO1-y;ol{JYw2ytPs~X1e7~ zqIis@(&o6~%DqE*9b)JwJ`aJxzg@auIFi{Vy3@)+|JD*f5Mii?OcggkMzU!Bj{33M zPp`3OB&ASS{%6-+ohy#Bg!c@6U@!QbRtb)^oMDqW`gy5rU4y(YZ0hcGhySa$v4cnT z(^V?a7j@8XZWFtZNb$VIN?a=JQu-M1_mBtr|1z2H0jTdxhLI(8hveIKNo&pN8>{B~ zq<$TrRjQ~H2K$yGn<&d-n=xSZ7H7iUAS#umm_Vvrn_PXhD~z5?m64!FivsqDM>};H znCsXO<#2y^cyNDsw8R^UHWn;da6%$Ywac22MVcYp&-;qD#h(;Okv^k3bag8_v^8$J znY1Q%Yx>G=lrGG?XJFd`sJ8Udw7b=19^DP<1a!+l#WY91@T~n@-JL8ynQX=dfp8R! zae+!m60d)l{KLSR(O=MvEN)qx4>{+E??`Qc;H81SvFX#&+Y2{1hmG=!F^Z$&tHrkf z+Vm#U-Tw1c7uDxxmfgoE{+c$YtIqv56Z#{JfRVIibMhZyh29oc0H`1}D^UyuP%&1c z!JL|=hX`a1DhfG~d%hqK>QA??0o~{ zkhjLy`O`7OyE0pWU1wPj%t|$#T6{fgChISTzKy9YKf!EEEoM!LFnzx`M+xa_I8i7G z0)&ib4`$n6U#BLCtH%zCFRm5Y%fF76NrQf2@X)qsDqJvxHF#QLxF2#V3+;ufS&G6b zT;%tN<=V9f065!T+de*iS7EP409ReDmyqiE8lON=*0_})k}tVv}!L!cpTdeNOJXBd}SzquW|yFhOAxY zcw?W~er$Gcc8g2jt%BHIUC~|MV!!Dx8b7`JsBp}x0F;Mm<32AKuI)v*%ud9m2~D7i?`(Q_@UE0ocD947sNdd~LW`kjV?rc_FIvgmNy zPNL-k+Z4w)g@Jc7kFI1R+3W!98K^Q~Ac0~O(&dGbC@4Xp36+81Ukt{?h!AGRIc{S|cqueQ)y>Qj@Mniqlth2AC^Rt(J6Gl8Qk78AOos$sXm@DVsgY zz7{%HBTF^l=w2sEJ@D-Dqn=i*l!W*)^QoCVS~hkKv>iF_MgaQUB4W3El7@0FWXIm# zZl^}UbXPh(NFU6&Ygay>pom~wkNUycU%M5uCv|KCvMPIBL8LiBU~cIn;VEzFU}E97 z5x~+)U+GH+G0~Egc-zU5?D-pW6%bpCM52!a%g=1%_@s6@X7!e_)70p`*12Xc(1y|3 z%Y|J_Pu)XE^+P>GY-}5SrZc__c|`!Mla<0}p6NtDw3C&{XWmQoQ($TEV|IHlCnlsf z0|}*-6U~Pr6q!5^)Y}s8xn^&7dnP>S2tW-sDZ9{0kAWo?(PH}}kJMT;%*RsjdB!;M z-$LS-;Ij`r z6ibOpcwPpS)F1!9MNpr_Mmh4YT{uhu-*jtNJe*dIVg47fWQH^3@GekaKxvHc@fwBw zV`K7(`GlxUp?V$&RZjMuG%pc0t$);-E3zjq*CTI{vS^JJ;?kdRekGgRG5j#Hb-Z1? zGTX}-89xU0aWmHhK8i52+pL0EU}$QypZI3}tCf4KJA$JG6u`JhunFDA^~y!D%U=)j zOJ5()B*+u^6*5du`FX&pglMl4Ji~krHiE745LXml91Ca`^JV-t{Xes9p2n*JrDh!yvj*beKt-8 zl7dFY*C8^$P+Mgw@MO^E{_M`&&=6w@CWbl8CPUtJ)d@Py&n}gb0vh5Cqe~wKLTm)x zVKjsJ8;QvSC%lux-KeM6j%AC^tU;iEfCHGJg(42vb{+pcoZ!agdLn~xK0A{#niUG~-Nu1O{}l8naPa-U7Wie%yN+l`AAJ~fK7FZc^TvK6iPwXK9| z%@LZknPsI^0wGVIEtrWuXcI4L?}L@ZcemIdwM|yu1_7ah3=pl$O3m5wNa$X8JpI<7 znS?{g-^F4<4&U%TOLLvan{J%ni|7H%m}y{rufc#keXn_NZ*AIRDc1+p_e=56UVe$J zhbs^T)VfAdCYzqW1%Jcdo=uOak;GjR)St@Vf2`fQ>9>Lc2kN2@vRa2@KvIsS{tw7KmQ&Lpx77KC;V{ACxOhvZiu z-nudP>+P-DZu4To@&CSx+UkDepogP*TKQP4U^r3OzG4MqGOZzvHC2Itr zdzHJRd5<@8VSS+JUf2UWpt{2hU_D$Q0H19AMS^P?T4kl>(JMNEi~M+AcK~bkqcMrU zS6rvK(wu$JM-$U`v%RxQo3lI*k6dw`%8a~wlTB7+3A`FqTWiy|4*5_gLm+CLUrJ}| z{F~BhSQI$=iQRYQvRO_a+#7Y`DjwX-=G+Hr*AR2RvQpOb8qbN!xwr_9N+9F}z{$Ks zfl}ri95HbcTGJ$=Z;0dvuPFQ(u~yHd>c~ceu9h)=H-+PF+iiMm(QS4Bq5bLuY zraPl|D@Ib?VlEcm6Vc{B?J=oBM(cmjZ+aOFP0c1@q8!`%vXB<0@8X043_>Lx$#kUw zbt+u!?&HV2kx9yMx4Y#+p(DJZ^Go!~#lb$|u!v1#u|0=rxwyK@#m@)>qB{ZSu_5^* zSfNJPUzuby4mp|Z%5Xb(a%Y^lqNz>Qhp#K|wPU$|QyIZ?e8*a*GrOnhue~Kt$b&yAoi3LUqok!gAU^ z0)Uq^USs}m+x?f1v$On<{GD2_^4)$^tARtS(Ts58W*ONhmo?zOXVO$x_4ZIew{751SXXt>OjpktE@~vQ%l6LbIzpSW-;&!p}R01 z0dP=0f3U{fCR0q-6k}|D(IRiUeY3v2p9A$$|u8kL($M%?Jk- z41dB{#`WV)&cPYdBtSw1L{&qCU@a1tr1iVlwgtls+Xa4|FZ|FZY(}~LWxJ?eFO?Vv zZ@y;{+)Cz`>eGhfeTLC;i}4Pjc(^<+$lBVhq2&`^en?J4>LYf~NpaTk=xSfrCa<2p zHJ^UA{+6w;+ci3#+?@LTnt=dm7_DcDYfJr>r>QUOm8bOU`(Es#CpwzZZl@tnV=;N5 zl8>@2uI_D{i!n{S_fR?8BG9xbLVUX-!>_c2Ke*xZYBNffNkk_^?p<3&Iai0QdO)pu zUlXkk?|O&uV!}+3 zx*NG;EozR>Oyx&vU1yCBC{zS0hWq7HVkT3>58Pk{NO#S_7QH`Tfowv+hq%QD{HaZ< z=+HuPe7i=XbKzvGkH}CUz%wwi4UoIU7ZnECbv>4jDs);OR$hga^S1s{I=Hbi(O5=h zlSCJzc>K;CNFs=+@`X1W?0o>XHO5ifdJ62iYOFv+^Pv@0zc{kf7h8OqjvKr2%AZP8 zs@i1DeSMuNH@@Rd<0Sgr7xK+|RUp(QtO23Sh?}OvUgrt{eq`_v6 z)Nz?$o{BO3#FRs^1^X`mQ-#DKFn}5Vm2kghZToLCtIls(n-bXi@;YN0%;@x=!KOlQ_kdOIF97WBXT)*YI6tHl>`f_#{tvG)?m5)Bq#c_SQ3i(T$kH&iKL{L^S zL40XSRZ*m(9*dT|Av4PWcULQYIX;YnI*q2@mEXBUSeP05fa-*DJVQGa?`fK~4(m7{ z&wws%g2qv4rP2ZFL-S#7s&32104bhWw8GcrjH`UCbBLK`#15HlWYxF2=#|epK9v#I zUa1=Zc>6)_8m!9BH5<1Bip--mRS{w9Ky53Cutk&t!6uUYXhw-}f;gn1OSsuSVn|wt z>m{Rr`1y#Nb0F94J^_y0ZF;rQIr{4B>;-Gqf<+6bmdmndhDNDRGgJ^m0P_mdO|6+l z`&gWT89EuD8g{yBej-mteFS??K5}0~Z^J&)zH$UIeK%0L+$%xUEQVaCF9t`5~gZ=LncegW~B;mK(EBRmK=IczY680J?azQ(_^?)u7Ly>OQ>fk&9qOjpOV@5 zDW{(yo!U(QbX1XWXEx^!Swym{F5sq>+$0;o3Yh@!QCAJ`O9e);-}KV>MnBW_*v?*3uv?Zm03nMxfEY_Ed7F;^ zSJ>qk#m=su(hY8x_SyJY_eO*f!l|SxLfM8JpnGjesynebmXB%CJl*;iZZI-#w5#%~ zMYlo;aFF)~Z}CRnR~3dz`HO+Ys#XR;npL=9MpVs%p7>|ZgDU3Ju5zh@#JZV|pr9hJYAp;fj&Ab8wb1#FE>inu| zuT1{^NE>~2P3XC~Dh&o29QnlRTYM#WLVoOOOP)YtrpLZc055qGCb5%=9`&pm$vxXJ zo5Ag#J#u!jGMv;@W=-1oRuNb5$uo}}YkY@Y0q&@zC*;-`WneT5x(*wkc6{nx>V~PD z6+WfjBvBYyS*OMq*k5?1+336Wo`$JaHIX*1k_j9{lx9&OARc9dw7%L!Qhb(0G2UdX zR@8ZR{5t_E=p(70m%b|012m}tT3~2^K-j}-n}^DM@;S)eyWe653f4X@kgKjC#lfXd z4ya?gACo@M=Y+B7$;0>pzh2@Ipc(kLHPpRDR*Gh~H1fR$9tZ5#TgZG_V24~;J>i={ z>(H>OT_jAoW-tf%;(A_l725cp>RoFFfW28>Dil-p*G^x&s;LzDC&%m&R~QWO4~_KM z)qNo*(b$zlbbt3PqHP!HITQTu`~sFbuTB*z{bu=caQ^3g1;WAfkLgR38leq_2x!vl zM2DGRO!_;N1j-l%Exn5^U~!K2SAVO~G!ZF5zSX2?((3n?9|SY0pnPBu*|P^N9n%Cg zdZLN6QEwrUmNbQtDsP-Mx8GQ?94AU`@sVZ8$(2nCyQW%5^C(q#h2g67{iFSwylY(Y z2??HN+wC{1ek9cTlE94CdWvjyVW(=88Ovy5{)kBuP; z^NX!v+KCyV3-Y>5_@PPI4r}|3{;Ya0k)2ouvAW~kk+qArzrvp)FVDET132#;ItLiR zPE3mC@mw72Dff?qftMZGLrcxJ zb?u)ADUo(FM;EjL`oTIlV;z3FTXF7@2~E&Fv>IE%e`u$DNMR#aP6H^7h_y|0NCPP-?Catl!OniAopKy;09whI1+hO^g&t23z`@9?8T}T zwLN&r7DRGgwyGhPD;qR(ahf_yj;T+gfptK87^56Px0B;Kyr)tj6oehw%s8{P15E8M z#!^j>pQE9gXm^WO-3USG!Nv*|Sh=!2J3MZEwURv_C52%3u-K9{poqh3vbIZ7LNs7t zW2Z~rL$kUukCAE50OC`sZ<#2skgtQj#+wel@|OC7$@OqdlVwYrA4sLv3sKR4A=Sw^ zEiOZnH0`h1h@z4FlP984KUw1MYa3Y^5%*AacfJ?Vn+%_Oh=XG}@tFoYjPcPL%uMSV zI(JoEM~eA&3s*`M-bQX_Yi@LZmE&$q0g>K#*;C9_b+|OFqL)41k8QR;;~igM4##RB zq8-Lv2@-Hf#~(heVNLEI46ErG{r}4fx&HHl`WMwV!2i39rB>*H!2oI#DlwazW~N+n z(TtAsT)3@H$#NXeQFxNB&opJ+5{scl7&aHo8dry#_5CNH;_8n%BR6xTW#H^e9`86u9dkQK2o) z=+caGzM}Nj!z_%$v>N(9`7Zt*GS?MO$2p5J>V|tkZ$nso<1Kk28OqL!(?SduDJ`TEGsmFr2DGrxbE^a|c_Q{dY?ATD>LyU94 zlxefOgK)j{{V%vLIOsnILJq(1NqSj5Uug$QhXtY^(rF_@4PBqyV0z2uBl-G=@T}&?p(3DXssYeD-j(-1tGO0akAo@WT6lQpp%u;= z9nmOE@g{osHM4LEQJ4D9P}-N`XWA-sV@qQ_*{qKs#~}@<)vAGE@Jy7+z$oH93z20l zSxhLI{3}?3O}yYhJG+#cb|^^0Hnyv0*nEc|*G$d%qsdWP*jcOuLXP zU=dBco!o9W=+5h_jHHMDUwD6CdeDK{Qu98)`OHP?Yszci&O%S>$4X^dlk(HPw<)Ur zfs4$> z`JZ%?5pOQKe0wSn*Dw2LE?Rt_@%!V25RVZ~*_bD7pDt4gb^a;C{#m}*r~7y{z4!}$bnAt z2rVNI=r--k!!G%tRsdQOfgmnt0DwYCOMK(`OcYTSDaL%mc~$H?QT4}dJ=Cpc+*JeG zX_>yGt`TwMI&2i7Map2@J7{AgwTmV}(cUJ8dMY2l8|Y*X$PLa=8gXeiWjgVH3jA$; zIdG-mk88u#kP2iW(&EG8unt2;&xvT^Q`3Xn8~K*J1XC=(t1tcr;T{??UjiHAe>l`f(?v-HA$3$$7iwK zNJSk}RJZeBL>(hO+eFP35;8d57pRiZyGa*nzwVuk6l>VqN7_>T$S&@@VxZ_U?lcM} zG5pm47QUza#YLQ9LU=3?pv^81fJLO)1WQQN7On|vD=i#fPs;AV)6d`c$__`q&FmQ)O_91}>(Tmb0NR8X0Pu$qyGg5is`=A| z)+`HOGkmvnCO1hmpJ99&Q08+rrOV)~80y$RJpb&Sv11rl>Z>z_INmy_N(xQ6X{eLyLYg`*g)y*oz&rugW8CDe7C|C`!70*ng6$@u@h z9+?^cSA|vAbY2sO^INLkCgoDGed2#jkv!##AXHbOMzze2A~riFLs9oazO68)M}6Y$jEJ;e5zj*P zKTVwqP+V0AQDlF9o}4b=cIU{l82(j%H1|3X(`QQd`vowPRn?dNE_#a10}&)+ApS5m zLIMo_HI^fcu$jP;%M7Jvv5cR-AeC}=^&{M@h-mXAI_Vp>Snxx8oQRYab}=_hRcYK% zU5sfc{UE3YaM_KiJzLe&l|}8MO_}&!bypCc6+^9d8wCiM!r@IpDG11Jr$6h)*EU$& zZ1~r;QJK5eEaA*%SYaD|438M>edr&R8v!n3zoe)F%`1H^&LfvI-P#*B3hRwFI2~wS z5zxj{+w&h|%XRTb+%efJI2Ne&Q@+f&>41iA%T0%Xrpe4ldP*NWiqp79>I2~Z3d$x+ z4k7&*;Q27DEr~Rv#ADxgPnRUj%y-*q@+K3~8ZB(M-}U9x1_xzJGfvB?FPR1h~)meY@;%uL1N2rKYt*i*$!T~fhD#cLi7 ziC_{0@))*)nSuG0Bn)wqd=fkSU|Y)#P=p44%$6e8U>^`pq;^QWFkdi_IKZ;*Hh%n% zT+mtuXgBp0f>!ScEhj=pqque5A7*PCjz6@#o@zlmr{N7`uIL{nT8QqsDKMr;nwJ-Z zc5#|?SrJV)s<@*yZ|d|KZWX@UTEgI5ftk&#pjw;lLYze7gR;xi{UJU+QZ z4eF|S5iNOlxe6E3U-lxI!7uppHdO>1V;IdxhST5Vp54D}D=aa?VEYr9ecjC*uti_C z8?}o^fRa8kX%vqA26ea(fEkoZO zbOSVQbT3%euglXJaCiELGPBSSW7x>4I|~X!+$KR(X(ZT2L-rHul0S9a%WGT|<(=m@ zMX&Qq+R}j?&&S>81t8emGR-9Zyz)zP zm=!+!y))%?V`Ex6m-g9L+Vc9fnF_VH)3UYwx47oD)<^5tEP&OQjFw$}AC~wYvN_q* z3Qwy#UDUKzm^@KCJk7}r>6x}PqrN|%{mb~}7{_Q47p@n=Kt0dGFpQfJ@Q zu4>U!*XBrnQm#ukEz-;M-pfOW58rC8NxNw)8$74__M%CHgGiwm@dE+#;BmHLv-8D( z-p}*F4=0|872tl=EPoYgluoz^{}_6!qGr`ZNf*aRnm*g-)BGXnaqF?HfDO&6^qmp? zjS@V`CyNuFB}=&y@)I>HJpGh&u3j+7Kv0|YX;rmS(O(*DTSjvo=Y7Zq)=6qF1J0rn zE44p-X*zMyy^x)&IPq#MKRs-J(di1{l2i50EPNs}-?TRKb_;50;HAJ&fsC3$N+Zj~zHsuM|Vl4r?D;-wpaSFUj4B zTP-xvH~-!r3C3HgmcUK8@PGIfsh^rD{CP{MK@)V+Mfv-WV=h|ts+s4)yVX)&Tg)s# zFZrzRSq#2}KE^6(>A+2Cs;FY&Cf&)Ne(B%`IiL~Ew$b|c&-{~NxVh$q;tFbLd@I5= zuVDmzTonSCgtjjBol#BwHDod6ldME3S&cNa^{A_Fk~6yN(uhDp*hI0?wHkuFp2~-; zY(H!Gk4ICWFS$=7j3S|?@LF~0h;DR!cfi7K`dQh4Hyd%|HU zZG)hHRY-*CMVdfi8eNf-#vncWh|7+J&{_BEj3L!V!XaW`6@hC@B=@VcYsauqu5Q~P zwYy3s<;@|=v5m}6b(z9GPA1Dwc^Orz4*~lR%0j{kk7eAo=CriR3=`P*#9K>Lqn;R#78pp&OSB%p@e%1sc-@V)f?4Pr|Q-RGCAb{FV zxd8}!SrdQ}iTN+CjBwKE>h$HmSsBo2>{*S8^4@kfqE(TiPDSC8ljQl~vs5HjK(hL0 zHA2`V7C?&n{WU^}tl|T(9exU=-ZC~bp&Zo#=OIgXAMbg~SMG12FPAlgoB+xQhEiK4 zd8v;N`>jk^s*H4-^fh~CJ*RhNF#vUw&ahSQfl<4ZfnwnOJJL$(8au0qmtWYqj00{f z`Lk)YfZ&#!`5)O(d`}hps6NHc^=!tEIz;z@o1%8QDXI;CCm`U$_cF71H6iyf{XLf| z=OpVFb|g+QOE73?3H*3%i9`yhMlj^}y5C!|9ow#eKsgwaFn9Nk9?$JB0Hs~x+0F=b zCwA^>#jut35%FxdRfE*0g;b{Bs)8i8qRBL%0)xqs;@U|Jmy#;;Jfh3}R{B&Tv`r@! zaM0{^QEAYUxXE=Guwd0GnxFRqL_%RyhIzZn*33OL{g^_d&%9O&ss=k zhc)F$JRtPQMh_GXON>wls18^ei4M?>A`+S3z!l1h>41la+iij3WNL^c9!MTuTDI|A zN9vPL1)f=*C$+;+=l`p*R*N)e=%Ajdsc?>RyMcr}ECtY`FeOirTzyGCbIcn` zWyO$HF2fm^A$9(VP*-icJQC#eGstz*mXMvF+x)=5do2upb2&_6YAktZN#4d% zkI0I{17HK$Y@+hN>%|OO5@IxaaE;=$hQAxF>Ms7*r0uuOd-CNFV50y2HO-65r z#WD23)TI}nsqmHNFB+&`pW?lC)(4A}$va0e|4Gbx*IH$v=k}FnQ1w=_$7CP92juNP%?3k6m z-*mhErkV>@TTDnk;g73+l%Fw_IWiVRV*(8NV$6JP-?g-e71vNOY+j3;7awt|;tLxx$l(KzhoSZ^n`4Q^=xB^+2ERG31HX!-)Qd+ZV9A*Cmxt`Ue zfm~Zs272a@S#j4K8|*n4+qa|>EXEwsy(ui8VVhS~M)~V@1T9hFi>Ip3Qfr93LIb(5 zBx<9o`f3#xGhGG9lJDR`C=_s7mp7D(DX7z^672%OHIsVWwFl zI0Gu-$zF%an>f!_l^EwcS~~l~Ncy4ARtK4u2W%`%jK;sW3JWfF<}yzH<)=j-x4SVM zJI5u4*eaWFYO5~7j|yk?A%ny{zQ*`&Yp+PXZq#6vGr~9U{4xX~UvnEEbmYNfC~YAi zi$QFX2zXV8r@)Pn4Wa}sm#9uspvILde8Ay!Y#5fr@G>LFwSIX$dV?jliiZux?ghJ( ztRgX~4bslQm}4Xsw(1BLt|$>Jb4eT%dl=CEsZmB%(Wj!XyYtr2CXtGoNfJIeP#c^7 zL-9IEKLWNXDRkVfZYv!}=p@yXw-2vO``AxV&uQi}!Y|SRtwEuOeO`Yt4^PO2M8Fjg z`oSUOSxe#>5a!MizN&r>=(0WUbhpmqeHB;^9wbV~c(;r5dmzAk6sm|jMeA20)JwH0 zLLI}>T%yy4*w-b|+wF$9_}f$O>*ZlbboBidLLJAI?QzP}UB92c0jgRRQP+JlcnG28`M>)YnxNyr!H%(Br+A?!i<`>5ge8WBwR$=6r!Jqi#;)~_@ zCiUc?Izm41y%=DC3Lx6YCr@uC zVaFI~HCan#Wv2Z1^W4|E&5%J4ZzgdigxuYZPAubY{GNaRr5_M_K#B_%fsB%@@R2|& zfFYhe`1|C!hYo;ntYzXP{5gBNOq%0r336gSS-i_4KPi^ZmFg{|25!!^WM)g_#-!F*{I33xz`Hea z>!}d#@ZO0>UEe65UYbke`0-A$*xEJPyyvkXr>1fB?eFof<`7r>wxXF2 zt;u@~x98SS$EH+aHBE2kgd>z8x(oOdHP-6lN_!$rNKm)t^U*NY%|d67cy`!fDxE+8HoL9y9|kEii6%>J75u80jh5~%A}Vv+m$VH`DKO%HjcPfE zlqV3;c4xa1Yo;5y8r2fsgymDVI;iejNs&HtM;rW?zHYX<_aYDmZ@BR$P$>MCs;h&n zw7^p|47Ha>%+?v}Y;zmz*1BlP^ww{=KikUMEgHbPB1o=6 z1Wv`ygb(-xl|mwH97~!+vUN(h$vKbKM}% z@$team3_>%7V+zd$zQhk74u;B0w|SQua|T12S^Quhd%{W7Ef%qD3eOv7LD;G3oF5z zH-qg`)<^v4ZgX4NZ|@K99zk2sko0up4@kF`Roc!5xiVJy%WUJ%$apX)at^0ApF5QI z@N7f#%~8&0nia_<%jJLO5mE^6!OK`0Iq6w+&Q{J%w)Q(!Tfe5JJd6v8R|lp`9oN=V z0Ki1TM5kj9t~$H*S1V}3w3iwSEzdH~O90>ZS2D{_F-TWV_#91n(Hp-v1-P zaV#mrWcp4napVOq4SFGU3@CuX1D}fONlNQ)$obRP^E?@0h$pgkE#j>| zzcS+ka9${0(*v(2Pw_to$G;U9ddmV~r(#PSC2dJwbCa>~}T$eq8UqeMo*x?{D4c&L=U#KTGHH@RJ!Dmrt);@jN%jv6qkk)<>GCLwA+1|w$YR|Pbz&k2J?E#YoAmPX{$Mitr++$}{h=ewHaj!n$xeSxZSP)}hX%xOh`j)6H8o=r-Io%t zP(k1vMXg-_fhQt|M3TH zlhc*L6rU!^Jn3I^8&a6x(x_`$c6c2rB0ae*AKrtBOE7xt`seP z;1q|zeVW3gyT?Z@qc?X{%^vey#g$_EN`r?F18bJ zfuyfuX-Y}oShe5S@FR^B!ZVL_-rKrF5yZ|kqOmA}pfrmJ!Uew+ zuMQj4S6RE~zk$=HOP5#;x_JK?g1wy&mHfp)?_p6+agC=oS++S`^u-(egYgbWMc-mJ z6b}X8e{-fSYiT<`YJXGSOD8mB0e2qtF4g=JEt$K$5K=GChV|MTt!L+cosL|Ss6urO zwPr8%ZnBH%6GwO^6@J$OY3{*EVQw*@N+onw4nR;MNNk1BgF(V)L>3Vb#Ehyo=pY6A zKMiM+&Vq6!>=>c6oP3e+Fm%BC3}Tt{jpyNJFDh*#T?WM%ih{rF)J$8z)quay)E@@;_`1`WalRZW2{6Lx z=A{QLfASVSvP6i8xmP#&BS!(e0gtT}`s6zbGCzkh$OD?!_v!=!AXm6mVeHLLC+%++ z(LbZFs0DM|)2i9KpkJ<=02}=4aU7~!`TeaU!=)Djy_U9Mp5PD?W&XxV6I9=Br)5nu zZia*ef8ntyoG)8YEsEg4vUsk=vHni$KTJB-#*X z@~X-~8>oB{ihgKvRnTYjz79PNjjnPGJcw1=APvJolMK7q^Ns8(0@Od=uX&AF*GswP zb#J8&2j(D$zIPEaC@)Zq1Z#^p$K9@gmg*e)vQv z*PzHFOkxSihk)NifM4haW8D+0&5zFH5akw*QD*3WG=tO*u&*g+VrC5g8D6y4w=IRQD~rGIen?J39PtLH7tMg@w~vM32BcoZF>TejH6fZ zm`hD6#HBJrZRu=9jfdVmfVh4oi9C5y1~K+LP!epW0P}J;0bH`>h#*Q+w$aUI9pSuq z|2-Ut58so&DlMW}e6AO#efK?L{W1cX4oD;sJ6MN1jR2_uYylBM=UNidZJ%)45Ao;ULvmHq_@!}kYM zaXDT+XJHiZ|EPM$;L4&cTr{?AJL%YV$F^;w1ezNiSG8b}}^P^tzWux`oDoYmrLue-k-ueJB^u`>i@E_*~wu=n} z3kdYwH|GnNv>tq~$c9OY!`foUp+-svQ*JWkRNi*r{$q~c8{ZF;6xyPj(jfY0bq!s% zfy!C1tVYx{>inr(iEpa#TV;t)6*tk2urR*lv4tlHFf5)6gWu!t8wHxcxm#TtU!agq zox(RM2NB(~tZ>GLCEU&M%~#ASr^eH%U~&=cV^kf3GIxI7lj9P^jp7h0iH^@$!;I3a zy+PCi+fHC6HWuq8<_ME0D9_ZJO8v_wI|X+fC61DqKW z-WY;JK2QS6nmiU~1n)mjMP9tWlqppCVe`bWbae#QQpJV#A2zx3qZ5d6ESQe1-jj-% zfs+!>qydG=0j@bF_a%w>ZDD(ADCihFkPNUmXi((Ahh$mUAim?#+cF!E^xvZ?gZ1Qq zi!`_rXu^e3z`bOPKL8+h7-)FvV)R#q;m)?u>Co+Au3T@9%;w5e~)DO4Z5ea zUoG|}j3owvE=!lOlkdsQX{1Y?__!6YY zX)loB-}Pyl&cs237VNM}ruZf0E#hlsEDCLEDh+3E0vxsWOR3-!JEQjg-b#g6sT43P zL~NZNP+AkSXPQFamPY*qe9AE`uzT*MIL@sjSGQltF0zd#j}LJ#P4ABC&1PWlzvr&* z{o+B+B8XjCM9NN&=DvYJUYJb(?~LOJ{6kb^Vou$q{?XeOYv?*>a-#hl|LochPl?aB z4)K>ra!=c2+8s@J)A~yqpNZD3*d1lc&{K7`X@qzJ)*4uYY8{Js^=I_0AH>g7( zn_~C2=W+ocm+s97z|L*!0k&V0@@)0K=vyS24lbR;?~3?%W9_CmGCT`F2xAd99i0uceyX^6tzARIziU^xI$EN$7$P2ml6 zI=_d(#UgDpLLId}X=B;t=V#2pf?w}v5EV>D2VE@f0saqmiCvyq`DAzKa5QM-kN*tK zayLaSbJj}L*bg&d{?!loHVne5sTNbCYYQC8b%FIZzIAO(RYIU6Xm=Lg)o8b+0*Z!kwBUr56p%9A=q@FNt34Jur; znKI7xhF#qI{f3%KIY*_Oa0f4~lEpmKU3S9A1iZtaJd*l7%0cB7ZJO>fp0|d--yrsJ zdB7nvR5+D&HjHe9>u}f-@_O?H73lIUfO-HMf_GG~XunexTULkVo3(jZ#MspO6-x{% zwq+E@c!IkKWyQcK2GEqz2kkC8$F!S$puxFk*nc<;R-okM=Qy*5^1x9d2bTUFYo6#y z1JOFpn91;YFcDlbo5JXG^zC@Uu0dkKBU4RA(`7h)Y%tOmW0a++&l10}KgfIYE1T2G)3 zY%gIa%J=x`6m!)~?ht0#aIs#}CQggQ#cpj0$PL76yW4ubqJBzHmSjCrQKHBt;jZ@WWvi^pO1PNEiywTn*qm@ z3Ge)CA*yWv@l$TVg()Jm*qUuqwIr_A1a|#p&s9o|Gs-a?#JP5vqtk zYlh~kh5>7uX}o+Py&LhF$0qu{+o~cznJ?q||QC^il)xQ)ji@|TH{5U}>E)_%j_&!Np z3;*`EJpXA|D|lgOkT2F`XwPJWqi!j9F7<0QM(_Cx6kj3$zy`cq^Np3?k~uZ6>Y@;x zH{&r~iK^W*HbaEE+Au=P!0@zD*r=R-NrBAu9UkS~W)XzjC0s=DoR4lX2zWChBLmkD z+nPQG%y&{a4fwpam?7P|EZN5wPP6<~X9|eoncXprwag$YWz%3+S$lLgbfE{z&R^+| z2pQzWg)$VtX6#6}5qDu}H@sjQy$)5?esDkR-3lyFf>18+SkB)hZgGViO@gOEgHcmD z4P?YAf!|^`3-*WxY1OL*t&Qw@jnkpJrv~B~#XwDFVsSG(diVBX#{XNR<31C7gf2}m z-y9z*IEM=fOI-<4SociOKr*58utEstBaczZ%B>Q>Ty&&Ri0^w}EUZqpCYlL*(NZqN z{LC;$uC?U^`Wm&#`2hs;3MbfPYEW3$b%+oxM1v4*)V=HAR1U@|$pi}N-tx>U5fe?} zax$|>X5i}NrJKhu9$Yk|;(#H)4N=H8s0#ze*2)i2M+L4o2WMQtqPqne^%X}WSh6jC zvJ?uKJTVj`M1f!r)$f;*{(|zOlf0hjZ$Q=M`wO!&zP4uaMy5j&0Dk+yD+BnvbbH}# z2&7bGeB1wge4HE)g#0d+9w%XJtHddZO zT(cr@vQLwlO^sCLTRJYSHkBmUssxR4Vk;$zpa*X0lt97 zp92Y>rY;Y@-qXO+)CIy)0a-%*qp#g39YgZ4jg0mH-Z9vC8lh{$&}$Nz zTzY*v(2vJ0tEV$hf?6|sb^DY^sK_2Sm#a5a-jC7TwNL2%5t#_$U3@OupjB8Fm)JhYNn+V_StE`((&9lU z#v3ob!kZ6$8nU zl+dy$ykeA*w3Cgo)WrNb(lOIt<#H5c!|ah_0)YydLUpoiPQ6bxlZ#Cc<%wGlW44I< z;sF|!rm}5PD@`!fm@=H$E1HYOBS;9DTzotxzd#UvM^PMs4lcn#g?!ATFlL0Ke)B!$_WgqW{Dv(6Z0a<3n{* zpgjC-laxJ97Fz<9H~Pwnv<7Y+qUdKFR=>}vbcMzCPO{DL$5@MyQ$H<-LitG1B05B3U+;n`?b)pa!h)ON>v(c zRyCY8n}2x?LT=p6HWzeRNcR?@$wp2R2%#6s&7##prYtNu%r=Kh4{zIc7CxtP1Qt#4 zaI9#5kNN=0TEPr)af1M|p$gZ6x9mln1(W*Wxp3Yc!Q~l$0f>zZ9mO3JfFT5b%$ZwoZ3{OR*?_v)v{SvUW zSLy|l-T;<<2i!6vRw90H8dB0-{{wt)7w8wi9b>eD;6Lg9^vPX6*&yYb2ldx4A!xSV z8!T5$Q%lM8x-e;AIo1m){1Dx7p3=HrU~1=qlm8(T%&Ce$rn(?p z?Elqn0E*Qnoie5V6I){joovB;J-Ve!*;1)fkFPzkMOKcMBF?M|#pP$jqn}Fvf#y#T zf1T#!KusJ#I(!r+NHQ`7SfQ)GSfL9}c&O|=nPywKvoHEDDih&e> zKtn+hT{-*@I*~ZMJIN7H;&2XvOjjio>$(dfS>hK6pc5(VpZ0UXs;~`NGys`hQPq!` z@eyM81o(KIp1(hziLAEqbwfwi29?*5$OmPmebKWGsOwi+0!LEEip?Q8z?lOdFMk3w z+EE_%1baH%d<_doTH-T{5X&bww3~?xFLOSEGpi~nc*h5$$DQgW?xYfFQG=9OBJ|NVGkEq@CB`%7!I%Mxt8#ta&=}y(CF&HU9f#JFd z4Ff9(F@+B4Dgf)oO^W2AU9CALq_WlDhtb-Fa@49x5sYmjt2QB+m&w};xYy>vp zS<8OsY8Ef0H4zFrVzsc@AigBWToUPb`)#(hgnmeE{E3^akhp(^y@~dURrF?AO9}Q0 z*E`=sh(BWSNRzZa@CB}Ya4hwEmIZE(Ze+EG+wwioyvFS^{{#);AOcN5;VqTX&JBvVYB+M}gHJmH><*;iCr-$Qy|F;o zjFvh8Gt63n7{})Na!W7Bd;=hr<(QOzM|b=ZT3yO}@fc_f)S~iNYzN8D~jRLqm<*;}OT95n@(-S(C_y2wMKWhK~)COQ- z2%1!`3@{`B<~Egr8Fv$SLJsBxW6gO{x@6Y=^ZW68=l`LVu>TjWWOR(>7i+Yy6hoK)UqR?yVlG$P;Qiw575ooe8Dw!_{kgbC zBOl>zRYVvF|VoUp-X$M%L-~Tu5edj7nOeEyuhWE4mr`nR?_n|l;(9EruLRjWU4JUV%=6uuYg$`RdT(!f=lCJY|HKJZeGg8IZ-%s*1?2s8XG?GS9JrJU~^#2SHK&yieNd z@{+M`FjE(I0}X9}pIDtOw60oEQHf;YWhdRoN-?NQVcZF054lcl<(~y3?T1qJ*M_zG zxgg2b;LM<|3J3o6WgUMzz|Kbl1el&yc2Fc;)#%?{ukLIMlF2XPnc$#tXL97wC{Mo_Idw|ED^am z*dHsuH$f&j z6m_~L$~wT6Jc09KHLf^+p0T->4ld49&`z49H&fG}p=n91KtFQl?tKHdWC^G9mPgu2 z4)9h%EV*s5kYY`!=e^iZQDIeYy1v4oPL+(m-4ef2PU$S3mmHK9r5gp|Pt+DUr1!i8E($sO}@NCl&>Zzyi)#c{g*@Xmg zdT+qp@j`+V6sGGt9zz6$F{4C4sGqSgk+&{_xi}Pa4)}4Zpxw;^GB8Cpc_q7pc+y;0 ze!E(nq60=BZP42PsI5gHvH`&NWX_)9Q{7ZWOlyVQ`BY}4$Cmz+Js6-l{2hjP6y5}% z^k3zkfy-H-xu$CI!jZo0kMlumlZ>=zWS4!@)R39^WJ?$_ms7~eDzW;evnzADiY8#o zs@4!W4fMEI$1lLTVxW|}a_-1B>Szi_R&ONwu6HqHty6hOgCez739l*QmpQf5cy++d zF>fs`j^wnW=qcRz(EzcBexsGn(er1Ujj7a-jMk(0=GYW{$#%&uoY8GO+OM_sE}~4* zzSW^IEXL?;YySbQu37&9sgeFC(p-RorDMo~oJFaGKFh28FiH1q&GnkM*3Q)sVua*9 za(>^;<#6+Wtw~rz2sM(AKa6w-eFtCd`T93&8bt2Z({-1gCC;SRo8k`oOx$)<}htlddP}Z`n z9eJ?#%T1DM+}$Qdvr{4)hhjz-b!XBL4hv7`UO`0hH}I2)_eh`-bKA!jx$qL4Y2ch~ zI9ag}z4~`#3RK7>2;vJwC1DGKPB9j6@QJ(1oZb_qsxIQj*uD~^*uInImdUj#^QrS2 ze&jIYL4y|W?|^05<5%Wi1&w4MhBfvPVY?2hOTEvP?F5bvOgJALM2tiTV=VXqWX1iT zMmMLh2oyK9tv_kY1p%cU2PC^Hf^csw9*lS&Y<+S;Ml8YwNFndm%h#dm844)AZDBKh zlT_S^d%cAA->lVxibIJv$zRyIX(bzxd(m9)QRR&0F94pA1^Pc3x)$6%;?(`59Ff2`g1oeb0UR-ql^y(wG) z&cy>9mP>GnsYh)Rl(GVeKF)fgl4(98GA7TeEEgS~I_mU=-WhTfVwPn|s`Yj}E3NA1 zM(MILg8<#3X`OqA6xC%PMv1{^f~CgonU$0^Os0SEC3P(C3FFy~y<#hIm!c2> z4PTDjzZxr2>T?jIP_oj#y+`m?HhbfyifqcJ&Y3?EQqHJCZlu^ML@89!(Go9Az))-BZGQEq3T6EThQ!}X@uZ5^gkbC zsw|@6v!Zh|jwce>k}VumC+QYwks^4sl`3uCP`-X9BLfnA1rBXUA!rwqg!Zyqg2gl< zh)?b^CJn-acLjXIcny*t`ghGz>B}U62{}^ex&Xy^CaRcg3Wr(55SC#xhxOkUkqOr; z9>B-_sQs-5rnOp1=b(WUaSX=*krMI9yLlWrQ&~zIT#bEGw@>7Bps@1%wo=NG7N$CP zZf0Z$Sfn{-;@*PDGOxq(;77`bbkd9CWt?y8l{jcJD?*x{O!xD~-fz(t*-K z8wg)x2gJRf56MOw1Yc(d#l2s*60}bi9DtW-?o}5}a{~8I7o353k*!W*vi5-aJN*)| zv^t0$c1OzHaBms73(P|NX#epsbECvVm9ID6mSIVJNe~s)HKW2q7)dtcH2$7g3OEY>x#32z%ovdz9hUXMRWEb5*6Ixr_w!XV zJ#WID)7UA3p8%zItCf+jI=#))U;xxF#YS$T!Hw&qRo{=NJJarMu-UMMph;qx`KmI7 z`Gr(n6aClqIY)W@Kk+_dHl(d2{5Dg+|9SN?{oEAndQ3qBxX)?=51hBDEz2s!x#EyY zo9z1gCTEOwu7K<^<3a$(lt!#-5<*37k?pD;!zO)IZI10~1I^uGRVV{tJm7e1<^o~= zmnn~*XSQ1Hd`zk*`E{L$8|O>J+L6PSE^UgLW_|207B#O=%QtY~i8PMw)s>W=dxGbg z=>)m0KEnQifqfngGhN=3mLWeJ+>WCM z@b>u`SzqO@*}FkHdvLC_0IbJRMDb5o<@b_!@7K2$H!^1A+@99XpjNsy~^q>31^)ve`s3RDTt@cBAduK)A+g z?}v^T?w4ivv)foC%XD8rDZ$bnF%2Vwa?vaHmX3J|zd`%*A;z%aH? z8;R=ZPe?&r5ZoM!?0ioc5SY;p|E^(bWMC%{WNKjJ_-^X6FeHp6wFhH5WEP1~pvDia z3T`T((%~a+I?_VI11~0l3gLVDDuHC9s_=Zg)Xy^5=$AqBQ~TkZW{X_Qyh3QK>UXTI zs6!j|#LlUir5c`&48%7a6kQnTkL+GVLB^6%7rv&(kuk8B9~{fEIv~_(p9V=K0P(2V zl#$?rt1lPQ#staQo+wB!dZBZN6RE(6dS9M(}feyMwZ zP%wg1&N!Js^P;5e8%qpphG)7M8t4rqA2B~ix^#qdo{+d77 zkHM3epBqRQM=A;tk*slJ5_XMG=?xLhYDs^WN1Ca(pX~rreT)-t1p+Smj0_2Kc(n|m zg2G+eQgmEzwC!Qj=n0GHhcy*p4^)eN4U^TkT$lDbrW&a#hZN}Xlg^HJMNP3@-IK6VwEurP|J0fYn%G)oppvQ?i6|3Z*{5Ojfx;icZ_ zk^jzzF39N0##7~a=qB^I;UhoI2aGo)7u&a&((z5IrHtBYTjtc6UK!0U9WgAb+vZ^Q ztVhVk)BP~fNKu5FtlaEtJ0U7^I_?#s|5R>B8CFaYO)ZQ76c!ftK%C;pB}zVMwbf^7 z6hSd7u0+)6F7%&IZ_>V6*3ABVc$S+|k{3kdSFN1TaYJK6;_Yyt;>Y6$WUSl2>(T#SyBdMsBLFJV8oKo>lOrct}`@ zxgI*yQelPzRMCP>8m7kgUW=#}Xe$(2XVf(f0~EO|$W7LtPxYu7z^U&&Ahdk5^}rm6 zcN7@V+@h5D-+C%;cYhW=hdt|#zqBvA@QUSD8=t5S85XsF*I-6d9iE*WzAW}FsLRsl zbZ2BS==_$Qqh08=%t&tEufo}ggkFzHTOU9$E)D|dr(X8A#|8A}$GM009gtpUp0&?u zA7rb>*|*r|9A`{N+P3tZBl*d#Rvr+K=@+?09CPnRjy@3$OWQAxpDB!!Tq5P;2)>*7 z(9gx%v5jGzs-4!8gc^WJR?AU4HD$31&g{ajVupvN(;$S`G|;4p>MV_$Y0`qdW=8BE zI3)rWJ-_*MchDmXZ=z3DC6}t65+|_{IlaM9%YO+2r`e^lrPeuy{ngJ0eZ4upJ(O+C za5shx4+>616^}-@W_kZYAWk->xR+0_wWN<6{3-^$kbXfWHmc0 z*OOwpkoAfAilM^0vhAromkL70rUmc`p;Ap*^ROV8_=Ql19$}i;JPuAJ zwQ5|YwdO>Io$~Saz-vObhLx#Pwd}sA-`kU8iN_1U`NE791DQMPfkKr8g$#M1iKIMa zNyPP=H6+;50W~J4Q4>FVP9sF!l5DW_f~mUE2zx7<0VIWr3>9Jh>AG2Z&?X&_GB1hJ z)AlSd8Ma$jc6nVi7Cq9x=6*Bl=O>I87tIAGDHS+w{T;C z1?^h=<3!a;?DP32`Lm3fQqGl(=nC}{dK(-1+@sJqzmmph@#>JvdXC@&hAP+7wqq*7 zl3nutW4O8v4O=t#e2KOCljCs{_P*duv*oq2V!`uLmddOaka5R^+)oAQ508{M;9L~9 ziUuaGq^0B);wv^-UGJ^UOQAwo2(EF}B-ZAYU3Wu^4>J}Gy1&ks-ksxyM zWX-1@Wp^a>B<{4wa+setjy)wzaUZX_Ykk+Xijq?t&QlR_@%Ooc0*Ik$f~(^Af5&Fa zll+l6A?%&db!s{kX;IbL6{$;qRS-vu`QN|WU^CNL=jkt8#M<0(Q!|Qe$W#71K94nQ z1yOU9pLJ&P(Jy@TR7iJwR~_4L^d$-7*}uva2}cnUIHwFzsTEldx$(`fp*AVlzQr2J zrZ&`qkpcd|+h`unDfp;wxM;<#OcGA+uic{cFvs*=&s>d=*Ykfc6gUnO*EH$g*$>!_ zErWj%t#Oat@{Ganb&L^`=|H|>uqYNi^1Q&`$3S^#ud%0gMDR}($57@-chE)N^{^g4 z>gBRWou%IiiMz^R=lFy=jqu9Ih97V?O=+SRQv>emT6hBim(<7XZIz%^Ywv#fsD}95 z?Yi(@a&He-2*aQj&5gb8QqY|DP?v`*=K^U;Aa*blJ4LU+=IWSDUVjPYO4-kr{&TUU zY>9YgN7Jmha&~lf<#%u%Mr5zgj057D%nG({{A~x)e95rapvy1h*aLuhoZ~Y`h~5qX zu-HDFn>PPVgnNr${33u$y;_t!*egdhixFvPKL}KjJ@Sn2acw-%A?}aqSi7WVhT=yr zQZ>n)rM9<4gE|^BWBwSnJ+Y8NBF}{PW?^h*CPl-$saRus{ANS1joY#I1Dpb(irP63Dx0o&J*;L?9IsZXI4Jy#%8>} zwDCYRCTB4w-yHwcpw=EV@zP?kte$)<(%YC>!*+R_#n)p2vE;ULx62Avg`VGmn??&P z?GgTtq4M|Du?_JGgD9Z1?8zw2-JBTaeh%dC_YF6~xgKMogmah4;6K3WoX-BXg~Ec2#@e_cdRXJDvxk>u5A(SrAuQ zZFTqL8X=3#v;u!NaX3=Q^@<{(&ASvN;&U>xwN^jp{N7ron1Arwh)$xFjf7^C+lL8G zt{4Z;%NZ-}TGK3xk>{mE#O2q=%S{cX z>COty$AKvvDI(v1B}~RW6kDkppYqtP(r=7*paF1-2Je9m`qn5JZkF;pBZZC-K286m zZ}gO#5n+T%bg&L<%mD6`1=%Ey@B7mCP{ZiYl12fIXQu|RE@&`+%WBd6S@V(Z{h@`0 zxRd3?fipYPDTCd~5naoN3@}A#WVT+>eiP6}bG3mJLf=2JOj<)EyrQgUQ_Un!KpY7Yell{Bw+kDhsxi5n zlmkoy^9Fz!VP~;CVbdPe&wcvwdza5*8N1lo05N2gmvK4?EMkhyg;67fB=SE%wXQ&( z#V?o9dPE9U5dPoYkwJdLoF#iKuMyM*6!tLzEm4VDU!B{zRL18>TfSs`%1aIMW-tVe{Il+$qTYKhN#d`^BW07WsstATaymXTfx^X z`q3Mf0)od!)$L&$=lg-oY7ywB0_Ja<--rG^S@j7|M;_!=gUC#!e1qn7f3ylpCt>RU zv5W`&sx;y2S=<0-#c{}Xtpuj^yC>VRLKaL8`=5;l1F1aFxN~(azG?ocmd<-NQ~y4&!z)doSn$C--!Ym;x;m@HuL4C-FmrYFFrka z&Xm}nR8kxIq#xpV)>R;V3S>1;T8aF0HD%CL^vU;V11WDXGzN4c?+$B7cPUfB?6=@@y)L474uP2RGssf!wN06jhPgt7XbdMg<)k zJj1H-fUMC>}MwNX?5dAzS+r3%&tvIa!|@*Mj>-p?MWIZLI) z+WEOaq*p-FegzWrtW@DX#sKV)P=^h`4a59V+fxPe8J0TfhCSqx99ex5GOO3!5sG$L zslZRSM&Fz|xoM)6E1LBBgTkQxOw1er1(GkO8(J{F3}d5<|9;W9c-{j1#jlDt5*_ae zOwpq}R1pvR85^C^Z^m{~BpZ)ikfHQ1_XKKM$CWrfbB%a4ZM6u>Q8hU!AeV2b-SGwN2 z2stc>*3&C;hoc4&!yzWw+0kt7T-n2Zf!3hwZvC%G{X{V0fd61EEX@DMH85FS+W9BB zsOMb$Mq);kihvC02}6EghPgU%#EKz&R75&%2s>Owf+qIsjlRxL=5LafKA8jX#j{~9 zP&7Mo^!9WOM&nLRBky0bROV=mbE-qKgZK&N0cE7B0*2emSf?#==bVa{5($-$?oBjZ zP4)4ueGxJzS(P0BmPzaE6F@~(1V#GsEyKsxB3aak>#=X@sGP-EYm)EBwc!ce4UqE1CZIU$Jd~TASZfr4~`4ieq1($)7C4kA26_WQC=l-u2 zQ`kvof@|3g3|wOY(Jto825Q2n-18O)$jpK&2eEGPaOxCoykD(is_FQ02MyaZ6ywH? ztcTB{BPIP})~udO=~iM19uo^Mmy)`E`%KJe_2ns#6IBWt?pEM4s;+GM$zICMyZZy} zv-rsgSx4@Rf%SMPC4jS=w9UkIAq`G7H3}m*;H=+IjH{Relb?>Uv>8DQZDj!oB3mto zgEN5Y^O19CuTLR^MFUkPwHqH(Q<^lNydH}!+IX;>Rp2o z_7PgzpBf_u-eFWboNBz$n50{4odAf_N^_mPl2N2I7^El$T=l=)B_|GOoQ~t3O!PiF z0|3?cWJp$j)mT`X&0sl*{+2pgHG$1s;B{dr=?zP!Og*B3nrnkCBew_b$xlOd2q&@N z?-C(e)|Yk!PypiCe&8>sI5pjN-YXb^b5e1Bh$5F)RzsB0dj&6Y`sX|ielpFn%&?@G zPs2*{GA~qB6=osMq%K8tRpIRF0@P0-ku}x$qAaRQ+@aCO4z|RZPbro&cej$@dfMo| zKnwE1ua1qo9nnD8oJwIJ*%Sm7okIC1cE7Y4iw`%|KY;3J#S{^S^}u1Q+2XLBHX1J| ze47cS^b}F&$D$oS(;3YO|1Ip*&u|)YDCKrl)8WBJ4hpSUuVfYZ>TGJszf+hfXBv=Q zz+U3YBzf4ef}zWA`U()R!6+gsKEQ0IqJI0xRxs*N@w&qJU>MTqd!8=KYJhn+%(#Ae zY#n7i8^AweCp*63(6PY+Hu%|Uubj5D;v@y1`OOLd;ap21vy<8LDWOi#NiK zQ$SCv7^DGHdeZ>mhd~WA?p&JcZ-nmrc;>hv&UU}w{8jFL&OYN?*e$%wIB4MEc0;_< zIrt7gfDzx_eohFr;Ut$xo{L4)kn4y40%3WQAHdd;-dGU9jgf!pTE%Y}rcLtZy!tqd zS7g{Xc!q{Fj}pnf-s2^k>{hPo2gEr3GmHs8Phxe141vs~M{~ z-pA>EtWkIpWiE>9H&e+D`u|RtMZ}Tj)xV#2>W{%DAPM`_8~S@)b$iWdPT@d21H*00 z>d8~q(rchV#SJmRmqhv*^*QumgQivZd)%;feWm}ZIDu0p&?`np{2sqrpwUL3e?ATM zBLle!D!2H2&H&`EXvWtRHj;U_9Otee2kcca3z%2x{Ladfrxc)&01pCQFA4-2e|wS__4qcTC;vN1ROx* z4}G^D$SHx=My=_$`frPn_Qf-VD5%5)xu!>G;J&JjLmt51o>4BLg3YHLHDSB020fN^sz_+fgM zWvLW8?mKmK`IhEN4NTq()Y$iA>F4N+g@q{dyu2=WeLvt1)$;|&+tU+W#4u-(ts4G$ zC-Ng&H3Gj9YP*;gxsV@O$jZMd! z$+8vm8e>;ETDBZdkH%ft;9h-!T;xZk=_aV#8WKRVq-N{!OJzM!3Yo|Xhr3Lrnm_0< zza=dAVWB|TTGj!vCJb2FeYDBlE2Hk}b{W7+3*SjRIC+MBRskj(fSj-zx;I4=RTlR>de(K zbLRMbP;Fb*fUH{^+M5Yl10s`d@mxw1q23&Qq6(_?R*ezJ_&FHz!0>BRh+tBePz#Rb z1mRBO>un4kfXMy8^m*laA_vHu=Y6UiI~v66h~!Hd;D3^h|18Uf?geNo%`Qlh} zfrlZ(%0qbTS_a0DSH*G<*=Xk(x1R+f+^_G!Z`(IlV-;eb9qS#f$sl|*{Pic4RwDeG zKE|C?NF2R#3+0`S@fItgV^Z_Q$uz!eI29QZM6@G~Ep9^OyJ?hw^Z?M+`uyw96^l7_ z>xKOJlg!%m#d6S{@?hQOMo~6@f0xa}r^CK${)R1!Ma62Gf@7jsk5E5@(VlYs|Yy_73&yQCjd?gX4QaND&45626 zqyM>6anr|ZtX~kp1Bh^5ARjM*n{7uk?bWi_AW4k{%?2tfjb>_z|nrT39PC0Ymn5bxx-*6faRh!gFq9G=vMFu8v_edPxUhL z_LQWJ6*mc~7&3h#o}Waed1tebpU+UgvR~jzBj$6Xeytdu1)B7D;Ja!cH43YOFwume z5wd1FHu|5h)wMpb+SxCBr4vTXNQgbA+h@E*tamoF|d zUP?3IU3RiLnbXTv;N4za@Q2GHhaZ4eER-?J?>o?s!ru+exL=RZ(-!POR0f87v9sLo z{d5e6NSE}E@!xEA%TK$nbsDtLYk^JOov!Y7Tm9p2QSPjrUe9BFd%N1}j}u_!)88-W zlh!gLjR7M}jmw*{H(v|^7w8FaHXp;vR;mUeC80jDK7 zzE+aoPy#(}%+AW1i)t%Ir^16ck&02q_BM70!0b7S$i5+a^e9+|dlSEfuLRUfGyoaZ z-}`~aj0}!YPtZ~Wh-T=>I0RaqwFn*mp9BRJr zfWL-XC31LCk6%KP&`H2*5Jw=OU`?U>7*siB-*9O^$}6oCPq_Ag5ygK*1MWq=dDlpq z!!xX|rsCOJm)jF^sblN6%2F*_e{S(}kw|Vu=QSu%;jOQo|L9_W=CsYky8fvUDa|AI< z*v_P}$>&J(>|V?CZ-a&!;F55nAYk)op$2^x!g4hJulgpvX=P1Rn@o^VCH)7%l(?`` z<>~CLu;dW<>F9~#B0d*HTdLCm-fj#L=&tnZJmeLW6J7`DxQqU?>E*o%(Xmm+gKgd8 zXAwM409-x8;cvosw-s%wBW*;njb$(j-y{$9pv%P?p@8~xI|HBGRN8ScB|vsfO3!={ zC6!4mkQ(LlmxVWjm4Gd2#30${%1HO+Q#yt&^$oz*YY|k2vygKRi#2JEdyHG-L4#2re?BhK|)=ggMT9@Y`1Z?9!f zU^FcJ=Q~l+$b?-VP9tUBu(8$niqEJ7-pT3$zpD$1)l#O zPwy0*S=)B)#_ZU()3I%JY#SZhxMSP4ZQZeLr(<+%cC_+*|66Nk*4&v@S4~|f#yJj7 zno2+(NRCx^h-eoufGH^H{>8J;SOPi4LJ!|HbfDV!-)IQRa6Q^(%-YU3u5?`;81*xP zsZe9w>puH^-(s8Xy!D8(J*P1J4&0j_=7L#ci%>KX#{lUasXft_;eRncXWF;W937mK zohglk0fM%TXA+_rim(lsVy}R9!PqZ9=^cn3Ok(4XJ4!1LWPcG{O|4@7-=$ptE42Iv zA2A1|NsGsYgaB-CVf+5oc$uHFYwpxcZHc?2%yHQ$&MJOeaKnZc+t*^Mu=QFu=uI?J z88_5{(Fei1_5BOPCm?}`Qut01WcB%FKidoWq(I^hs68~HP@vGEqm}*1JWWu1;I4Zu zCat^z$S}8yRWSV~a~Ehg4;LAc?7;`n`nXb7LPuBH^Z{m`+OmuuFDeEA>Qb1{tV+Ke zd-aL^!#krp*T7<7?0f=z2<(x5AO6<|NGSN%DD${TpwtJ%7;8Ipl&vP7lnh5~cR*)9)0M zvueEZ;6EM@+&=3j(#vItugTfE&?adH3aB6ATm&9>v2yl@-SkiKqNaU-n4T^77I8br z@Jh*QnT!vvkMs}uEmHUN04wBH13(hHyoQd_89-QT`;(ULv8;uf@k~NVShSC1RXFW5 z3Bq;J_hFE{m>3S$o!8HKAZ8sEF-1)g)8;GZH23LThq}Y{~@nlVZX% z0npu?&6`d$B!qv-DrR2Fs3LVtFy3{Y5eVTRpG@Pr8QYEA-#A&DPB6w{3NqS&h`v&; z1HklxAQL)#n0K_YuwJ4`1cxPS)nMCY7x9-GB&bWset;pkvtq}LEN&}CJLkZ0$QtsW z(0WY&ajgMcg?^m^D~{Y}%49Z`4auw)0l4;O9A4GxIYsg(hs}3j1Q|jVD)-)pi4#gD z-hB2}s^k`i7wyp#TxrU9&t~6e-l;ZFFSL@7D%VMv4apS&(U>_r@3#zgQvQ2f99znl zD$LT<=C#$Tx8-=TzAWi!#{)cAZ)*BED`)WxwCj9Jx5*lL;^{IOYa6T~Rt>8Y0|?+t zZyxJ`JH&?|!Wkf@QzJSG4Jv6X@z973S!Zy^z@USN&W?efQ6qDB7%*U;=sotkUHpO` zY-r-cSE@7etVi%{8VK(v9)8a%VsTM?X&ex83`f70>lyRAY*^uS5>FMV9covOFUHJS zgdu&S6h4Xm5kZhVAaON`2tezMQeM;dtuXR(RgNT^SgJ#BMX{Gp-$hV1MckCogXsxo zBEdHvdaUsS$lni7DA6*3-$r=nCYRs-O@=$B#=!hulI96P$$-=Mk``}M4JB(F7}x4m zHQlgTj@5~}$&yiI&M$!KPDo4`Pjpu(%Yyt?U zSCS*mRh3PnSbaznkn7sgW+li2@zICDu6~iicLe2Y%KO5a^4P+%(NkZEpRJ-zhH^T} zUUUy>VGfu%Pe>e2;-JlQS)@Mp-Z@T0pCT2vl;(`!jh&Nb$8pwvso6aA95(Fo(#Bt| zrwNx@xWn=knh)XvO!4lH6LCUX*s^>X8)dj?6`-RTV`P~Q*pxx&<{QiS&MAg<4iLY5yaCkdu%P(kvP%6FqKG4D^}!FNw*ZE@V> z-?%t>D31&<%V(JLdQgc*vYz`b;FH6H!cdLk8N(G0F zzx*oWX-+8@wP@P%Y|`>xvRUCa8;Nc*+oBp)Ysk@foM$r1DL(5V3ePSN!;~Z_w+2sj z$C36UC>})S8KaSve49ltQba$pW2J>c-i>m3yvzQqz3$qo%^U>4aI`Tk%|h|K7KejS zzb-D}iWht9UI1btHUs|uUG2Xf_kWXD|BpGOWvlYdy8O&F*o&KKo)GVS5KexhY4G4R> zH|r!+aCtwxQdltwJW#XznpKA{a(vkHd2kjJB8inULljP2`0d8o**-LnPv{%Tw6855 zr+&kL$`-(#zKS{T;=(iF7s?a}VU*av^^dZ0C%5})$&)GqMgrGb*%>K83jEt#Wol<* ztB$TS9XZ;OuUiJ5j_^nG=c*yE9N-5?ETtIPOvv-!&+VmGtK8HI&w1^KE`4Go*0POB zKrSJUqh5FUK~p#L{O!)wF#{KlbGduHpvYAy?2R9xFUN?hOkH=j}RNSEi6-X-U&xl<;- zSBsCVtGTFXqQ)DjDOActyD3bc@dtZ|;IxAH%#1u)ERxA$bM^e3lM( z{9V-?QWuRb3Axx5#)`=76#y{7un1CPVoJIRjTFrqJm)>2EQE;t(mkf&iljpJF<9Vr zz$oA`x_zrouepB{BF@Q8G%WPkqfu;`S0QJ?aeq+8NS|n)H^z}`XFsrl6kst+cSAn#}B#|5!A=!2Cimh6>>f@$rhdOKmu3nZ zBG6`*lxE7HSa37N13bm=UTB?rDfJ3wy14mXjGLC>1aO%Nyiq(3Lx1WF3iVvbyhla& zyisV&Y9XpVROt zogST2bFB5HTG?!?wR`VYj#t%Hqr)_9pL#lg_27lr>uRE5_ZLKCS=`KlYV-wr^alm3 zt!K^vlG30F{!& zHJa`IHb$0_C;*d9Nfh&;&&@)ZpjDS2v0Uq?A%Mghc5r1Wv{I5L*bS+x&H0+2W z)nKG3yvOMNoDiWVzV;X|W*F4n+3JY2IK)KRKx-FOHemRprm-(YC|JrO*QcAlS;(Cp9zm7Xpbq}$ z8o{{;_>-`nqUWoZ<=V(J9uoCW3LuNG30MHxTSZSy7uhmr{Op1xjK)t9zQGjxYSK~A#i0`3*4(U+?5YL0WDR#w%j8%Y+Z_WO5kTt}pa*&0r6pQ@a}cS%_0BRRI| z2tn2==`oO`;E_WwucsTXEe2%yX)?XF(!-o)`S;8PXNT2-tnhJ)RgoN+yilBg+y{*otsztUv^4zya* z7Ej8zR93;z1&w7P8^NGthpD)!G*=tEv3s6tl^tFiq;%`dna8)>ta8>ZHLR1a2+l7L z2Y8c`Sol~}4CmKxM}xLLA5M>?m zmk0ckOrJdG(RNZ+mz7DYlep&_sZYvo7&!)cu! zLZ#4!?yq&IO6U!RSr$^$6v;92ohpFc2hg8dV-0Er$SA@dG2ObnuVO!)obLC#nBsVs zkl;ldfl%=D^estw)H6pC44l&Jd1+g6H9h5QH-^{>^F#{s zZTczRE&S=wAnHxZ7B3DhRC1%8Qvb?rG9_nw1 zf?%IS(HCoDGKdwq9K;J16*lny2~LFf9sh4P=T4g^hd@iiL;$Bxv)h9}fYT=N0H2z6 zykN^n3)zF9g|d4v=kan)YuWo2?TYr1#;B4DZQST?K2lEa`|w2!P_2IQ5~1PS$-MDy zR!0xb54$|rihWn+q-qd_BNq%?3H5e%4G~3&z@j~hgNWSrdA?^75RRMF9N7P{4Qz{? z2nR9^=ch0Rncv?RDE%eCL5?QHPxuzziJ-tPyR zI-teSj%!>`xhr`%em|xR5ULQ$?-=w53gSgkXY02IFs92qhZ5a#A8+Z0raZ*! znXsWM^Ng{Uo#+TPFiLZ50;ZBWtocX-$eyj(GZjhnoKp{vDd-m&(<`)eDQmyrF+Fsa zdeUuezxjBRa|+an>)=x3uv6saM~}H&N$F%FVw^MRD&7axR6%SIrEp?H@k2uyAFIYn zpVJ@gciR-${*Z}^I{QeOZWmH&5=KCWv{DDm|?k=4_)DtfA~8E zeq+4xlEDXAm?1VI0ki|4vhMU-XP~M-g;@lLyMc6KF#zDN|4d<#{{3Rt3WGa%h&@}s z?9{wk&9x*(__Lh*AM0w{l72tjdO;#Lwj-3EN*`2|8rOXDF~-Or1p0(banfdQjrY5ihMfPb;W@TeU~F}7a>(&h1&@;d z*Vk(s&@+ubQN57?`ZC@8^VY7h1FvfO{=Um|F0kfs!CJgxz7l%aN|+74CiH5ENxI4N z?)R$c6_f=a%T^t?4(-w>J@wh{kR-QbnNDw0(;`>Pb+%>DCq7qthiMf#Q$LV(XEo^cq-78%K`r)#wttyB_(IRwu91UT z18(6}WaY-SpuGPwsw|-o-7*-Ila|^}eb(|LM>@R#9)!FrdF*lQkM*hp;fNXydnorK z)1o2EMt!cC9-Om{nLEzufu>((^kSM^pc=hdCQIwV7YCg8My;}UVSLjQAM{s?lHWf| zSB=FeUJhRm)8n_GDz2_UccIPEf+Cf&5U(N39pOhyR{xDGj-N{=PcJHbUG7QOFcnT_ zLa*BZT}zr?&Ed)Y8-|^br_*_)t-Kq7rDFf+eZkQs-Tp_4J1k63a+S6KgR!NbhjEfD zu6VB@vRfihrJo-3DtWs%Mx}P}UNkCg7r$8^b0~%m#yX28;Kw^lBD-&BMe-QCO7|GM zj+YJkF-UyhyTU@P3wNA<9VC)XDRdMg43+u=-l`8{)_h#0#Z3yuWR_g>4Yq<)i(&e; z+A?o+>3-7}E`>Ac$ypLE$u+=4vs09mEmJ;01_>tGz>aqLu4IiV|4ZI{7b>IusUtT6udo?t&(6fJUCWU1N7YUVAgw8yvnSGG8{PrVS#-9*jgfzCvGp|+SQzPI0( zd;=NEK?En|28BOBEW0K@(I8Q>kUSU;s1~gy5jBPZ_>;q+@sNX=s}Rd|(t)+Z`8+$b z(5fI#o}{zH^G6dyW{)v}quxNTO|ofCyR(+T#UKt2N|d12wSTMfU1)+y`lZ;b7`1VI zkZ68#S2yg3U#O>L@qt!DK-)7bKAQABl^%{4)4aVd-1M5XFOO8!bo7as{=ixRSh)sQ zq$QH92nZAG3MrRRgf8-%k@M{wrs|kWBpBO=wESg2#Bv=;MijK?IHK863Zj>K+5R)X zI?h)^Q}Ff1pBoTPo|)aK2)@Y%fo`4?e^EqClp4l;$!jBT-Vntx?7F{}y@{UPo*Cd1 zW3ZT&`g(RCkaWEUmu;xR44)$r-8&dwbzr zy*C2h0q&45fYha3qf)}y18zi4BqQRSW?#?)H0Noc#{XFiaDO8sNkGxSS(rG|P!&lvsVekM^#ApJwV}+_YQ@MMt*D%E|LmrZ|N(Y}G~2x6`ZtT7O}( zVcY^)P;Lbu_12exl&|eRXbq&2g=6_`fLjZ-#W+`$*73q{qKC&iTM>t@^QEt4J2LOC zPJR6kU-5iV{DdNI2w0h-<)^a`N&K3vwquTB}9R-Jln#os-4>U0}{c< z_(Pb%>y%}CdwuDk$d}j0YgoC1qw}=7Ji%X$r26_O#$1bDvRgMla~Mwn}J=9us^gLss(5gl9Wuy|duUL4U}EK^XMC{k^eTk7Yys3!^E zbw^K`WHxD#W0`cxOyMWI z0hoddFI1z(Kw@p=m>j6Ix%2N))w~q=x}**WM|{o8jaKb(`=ss?T%mZ7y_?I7afDGq z9j>(s2PQK7YAi&q1O{?(n=U5XSf6YPnfh9X*po$p3Kso*^hWi)J4LkyM+-kS?mjj} zWt%@4d1{DP0XIVI8JLz>9r27&onuI_adg;;F@?_%P5poUVz^J1+ZbJ|0HI+gdxaR1 z`rPJI@A%GBFLXu^*dff^@j=G<`-?36;G7<&tQ%{yYe#=w&e zt-`}p{)BE_WnTFK2s>x(usq%THs{p+=;*-22AhoSyf)Rl)aJ~K6ZSX?xEO>vT#|5t zh#^M#;$SZ&AF-xdk13A=MP3#`pLqCO`M%C>l@RGyrU$boM9&fq<5n;ZE0X zZLA-Rh5gUqdwoHhtMf^vZ+c++O_P@K!RC$zNhyBE{yIwKuR^t0wNz< zhJfpLXTYjd{yrG`HvpPYyE&Z?-fS@R_xEX2Iv=cA(RU+r2^qaXy-i>SmW`^zgK@0GnRZ$lMm*D!g!$Pkn6Dqrbs8#7l_L8$Z*vMS$~H z%eJqr$RQ=h*Wj6?wkGScZt!?a7+;bMq6;o1C*hqe5BC@}Kw|L0+^Gwi`^b>ftf>j@ zU*fR`<;4n8&Mjv9IzHA9Ym%%E>owqcy!5B4m? zl}jGUwRpf#b<;T|9O5$`vPidR6`3a7^66LRm2&wxegFk3GMD9L&~=g9L|xx{{+uT{ z{r)xG`mSz|q~j6D`qHrNRm6~7lRXl6W3Z@27_YQ>aQ^CBtKKnS2YKi?>rqe1 z*hSVP`lUsy3cfrliR>)^p?|OE9v2vliG;w0Ee>X7=%APH6gmFrK_6(7;H)b8rA zf{S5gA^P0A67H~&k)Kb0^#<6V<8^dwx4N?Rftj<3o;Gp)*p=Q$bLBH3Y9vN;su8CA z=z1!id`#oxd-x$RYnC`bC8=RIB_U6ZYi0f$&_pN4|Ei@H?R?yXk1cXflSL$XLWX@3 z2r>X3<6&0` zo!8PWc?0FphFwnNEWRc35#etxyPxtaUm$_7x#ek&jF9O6!B^42SUA%PM!;wRm)g?q zn`0>7;`m+6o8gPoZqS`BD!&Hvk!0uaODa)v>OBOk3=m0mKi^6(P*CJxp;>mULe7=Y z%DPHCxuVT*iE9RZeZBWP^%5l!S zTCzcgvZOzRaE2do9?1ahwEoyNTJ>fXJ6=gVnKg8{POl4AbA>Hyo#rm*7|%ljggo6z4~5lT(?mP!3`((d&fiMqO0m35Ib%E|H|CbJvS!GWyx-f78!*fJf$ z%3K$&e{T$>npGpsf*P5=6fd;aO>P2yNogFI%|R%e+Jquvqnlfa5pM6k zS>a288a*!q!CinSAyq%;oBI&Bq&m!6=cKw;B(!PcIB|0EhP^hdICK*+x^+)S*mh8^ zowYed8ZtgJIV%3~R>U|C6Cy$roUj|NC})@i4hteu@N93<;^FnMG0PPa*_nE`q&3I# zX4nu#9K}LTRc)E%Wro?6)%#07l_Q{0$XWa8*xrG8H8Vi;PxE1VOH#8^Oc#6(abD@} zo{EvjJJA$R2c7GmOyj08z}o!qHwldcnQ;R~leevUg**Py1Sx(}k8bw3XStHV%c&R( z)pVaGu1Ti|eDwBS~eYP)gImd)L3a~y*@(yV{?agSJ#$lWZgx{3FW zsLikizi+%g#Vs!Ui6rOVHZ)tLoMWI?t2RGWxGO+Ghmm`F{1pGdUmea&uZ!TH1R7`o z6Yg(NKAL-Rc0ec8Dbph{Z>l9iqg*YSRXm~wQa!lt8))met1N<3Y>2`NF###4CUo#M z^h)W?=5$L`4Q4Ci3Yi`=Uu|rQQB0K_v!8gllq|ttmU#rGfC!F878yBc?OUQ@b1yh$ zq;vp0@^AbBkrqI3J=ZBRrVgT!V~+UR=PvxZP`CsKvd9R7;M=ojV%qtKfF{7s4d&xwrn+R5Z%1voG2KGVPmg{iB}t+5Nw{Brl7kTK`_)+uOiZ)k`LQLRb3viJ+X)! z5!v^HV~(AzYdDP$1T|!lGIEs8dyW!fTqwyfB(>CVGyB|HVjfxFlV~&TF!`kOa5zBW z;BweB$m(akr4xaQaJI=_5{6iqRCo&L-kV7YjnA6*p=rwZRfL_SFHAVry*#p+q`FtD zoE)|k40Ykj9N-WV=X~&&-EuwkLkx00a04Ur9A{#hhgFc|q9tfV`H3TSJ3cNkKCC+o z^@+&!6_$CY`ws+mk@X3WSBs5A!vL?|Pz+p7*Q=>Tx9aM6IRy8QP_MO3jaue5afs@s z@fD)BXQs~asxZE1==sopN&7K^rNWdP87s2&8ZSpTnf6scB`q}=liBPIc{(oUKhdF( zieU~^ZY&ICZfjnK*pnO}qCs_g2g+7q4Wpr;Bi(CrhCg7JZxV1G@lBA-mjH+b{;1$q z4~1f)G2jyPjkI`a3P5F#d~E9}5Of3@o9Iead}GxT7N4j7TetT8LnolK3OICrfq=x1 z`MshTDIOwQhnW#SW3b(mo19WAAzlMpC}l=0-_cD=5zT?oQEUa<+xQ}0)ot4oK+TlT&dK|oKYF3A8xuRxC9Y{T97!zKwTn6=R7XP?!?wfy$E%5xc- zg9Z$dhDnU(sG3T+29ZI4HQgDll8-jl=m-fZF|#_#EyAyJSK z)0awUz%gI$$8GzB8-Q;x-t2ZzF97JC{rzMH9DlwA+CJTJ%Gx%P0O-?5{nq5T$j{!q zy_twhX8jj@PY{RMYP;Nd<)~B2`2QArssUa?&!|4bOJ0^Cf&q{HF&?e6_4Ex#;Wdhe zr0^+0h%Nj-oYsNxJv0}H0k3HRH6>`)mtKC(eVt%^iGvLxZ&;PxS4UvGp=D#zPW60g zJerE5n=zXa)_jeUfW0QyS9+gH1{qF_*vyul+Vk{Nk{r{TB%4$6K=}pO-M=*t@`|v5 zGfusfh8|(#oYbc-Zq|aDj>|8G!>)Rq`$MF4cLa0Odf!dV-ON#MLDN~bUCWZoy`@J# zr?WSf(LZHF+~1h#Ao?+>Xl8`?kE5R&F(FJfXTR_P?(o{l0ObL#?tI7L0#G^JT~TtQ z>18o6bk+3HO@$Cav7tz{=pgCB2J*z z>p@{Kh>)QB_xRK|Q2-NiHO!h=QTzK)>iAmZdaeOxPGp#)gnwilE$2Ysd;-2V1kShvo2RwDR8a?L&P& zmEmJVWs7}}c0@`KAgF*Oy$}pr7Diej)xUY0FCJ?9o;(N@NBD-dC9mPlCIoy!W0C^+Fy-{+;8&cD@PD^?QD9jEN?b6H>bk!cY!mYrDqE*P<`f!eLC_ksLc< ztu!YKLoXdw3>H)UvEz4!cBs2Z8&@%aMIaexGYF1d;V3J?BfFGEVL4NV7?(Kv~} zmz`E-AGqH(4jSss3NrH^)^dZLT%f=M3T8Wb1U$3pebh_qNzz*GS?J5o&vP;r2g=sZ zJ{j&Gx8HnUs0Yi5_LCUQgzd&K1IuHIYm<472KZ{*(77p&TJyLKQ zK#k6%+a?$4)*D@WvHa){eV=JNQg^4sQ#%X#XPaz%BJD!k+*I)vso{gye>8m5;K<^E z4jde?%IzV>dVfR$#QH`30~IWYYG=0r(f7nrcjQL>kG_3U=t;ye2jNV=H6c0o_B%T5 zE&c|V>=6yqBLGy9#C4Xl)}PNAL8qIj0n;WYwlDhg4+R_Oz;#c;p0WEnAdZC5R%Gv_ z*R(g^+vC5BYt|nGg&;&z{Yo-Y^*%hn*VsS|-G8Y0;YV6G^maaQ#)*B{FS9HC`xiSF zQZdNdh1iS91M62La|(4MwKCV_pb|>4PSqXIWlD&<#$&s@M$Zlg{nOkMFdyd?^)VKfUb?65E|wYccvWk4RASte zXglfJ{r;;Jhb%=SZ=#fjP}Nv~G<9?IuHujD+QgNH3EVjK6&Q-c0_4%o+Zi-dh34R5%It+dU@(qI4cRc6 z*z_HrsO9cO3!;LgrpYjc)6X9>Q|PT(dh;#Bp&l3?+Z0P z4Gf48R?*F@-15MpA?%D1;L{6?)5s76fpNmTqpEeQdiA^nT{7BK(iz?3C^^lcuPj1g zRBzZaxpZK!OAC(+Vz~ClRm-cK2amKjAA+E0!#;{KYw{3l^=P;_I;8`=s>lbtvAe zu0?($sA?z~9Dz>x57V#_(Q*kzqf`mt@?WRSDY|Kylg!g)@KF&;bTL$K^F@gG|vCKRE*3>iIf3aj-20|~+OC5I84 zdLt?eeL-3TH(Zx|kC|Q-Zf+VR+)1q67KShUZ$Fr;@OD(I0ObkmFJroP0agC4kAFxE zU2nLnVKtzhQ7^E3^8@9hR(p{`{&lVDawBpn4VKB1bskr(zV>ymQj1SaPD#;8n-_y>fkt)@bgISoq>VG*iEif!V`?yg~KcQ6xWslm?* z27b(}u)Dc_*a2U=O#Z)S0|S%a?_A;Tu&N)q;S1>O#mkrPV8&Qnr*T<(rh+-+i`-Q9veeLi5Pbn(f~*=_wl20Y*D)39dVyadrf!d%dX3x$jU zp*a18mDjQs)pf=A6YiLm#!Yl*0nr z25d{UFf5X~Bo*N2PI;h5^I6pnMF1MBRk*mQQrP;;rlbY{D%=SA;g!jQx%ay^ahlt- zMwbH31q%{|Sbh1g>!%tOeYFY(dCEgV&L&|9S{#+4#s#h{f?}gc&FhVRZ;l26p3MVe z4XUljbR<$nLZ2uC5Ni^Iw3!LNOwQsH!xLX(@TFQ>$Vg((3`yVagu>j^pwZUT;CUK> zJhG4Of2l2tWeI4QU5WLgG{e(=pXl0?swD0m5e%J`cFaw56lsk?etnaK=-8STBH z3XguxM(@_^u1;3^GPiwM&%RsA3hwvtoT=6hvB_Yh&^RT>wbyC$XE5M4R(TEiLY|LD z&--r;n^ZQvNf!w_&oD)?7X3qcR`34)Ik5&U9<$frrp33n9r9;zXF>wxhhA|uM4U-< z><{1%9!1q2OQ(c&zSq}yQqQnqT=Cb)4g1Yu1tf+xe6+UvnnR|T2rPqF_1P2^g?Tn-G3{^ ztgz_~r$|(xRtpF71rrdAfR;L@Brp4WHnAR*|L=9s0sWtq^E9~+a+RM`oIDfW4We4( zoD+Mg-b!D?qxLPLi>E&cfPGU2?@Rh<`@v{+hjC*l<0eKAo0_4IX?)}D_*&&X=!25i zsfZH^-}jr5U|Bkr@~u5jm*;A!B=-CM0$uP@J#@otbPcRd+X2qZ4pG`7hO$--vDz2u z+R9yiU@a1C(Z#;rplGM!eHmSbqz8PCXw2~INye1TS&`o_C>v{hj+sqkuXlyHp>rjP z*gv;o?#G_~7U%t9hg8QNa<*z6RL+Q|2L6cOhO@9cZRC_Fu>7Q?B$43`hG;06euyaE z#j2PLXq-@%y^WsMX{{lUahcWL|@VpQp?@!NNKr5X6qxHX9t_GrI(@zo6r5ED(5CdzaJ4_QezuiFVnjfWq4 zFq^F9mVK8FCUw%UZi@@?lD?nx`&jTDE6ao-t^SKMnm*tX?>>v&H1+9!{dFmefc^i9 zr~hH7!8kep59pA_hysZKIGdiC@jJ%63&1V0MJ^93<>nGn{)I>`g!;JS{tk;R8tm2o zboX>Qm6c%u|1<<~4&ANf;8eoz{0FaS?IeL_yv0=AngQdd?3y0eyA+Xz5`79nFI57< z&SIHq%8bSQ$4O>^`yVeko3MsqWyTzeDC(!Zox4{zlmM8&Rr~IIfLW)JT_^M|D52m$ zVKhVsItn~NX!qwpxsy6;%J#chU-UkU(vkxFJ6jw)s30L#oYp#aX6)I1?$VZna_8e! ze;uO`i)D&!zo|Bq%4xJ!vD?fF^%T;^6DPHPxGT`JMYsw-_@9x%)-u|7;@V;3q8vXT z3mP5PN9F|9w8{FP02b_Aw8q2T;Pj;Gsl180i)zaM#K$-yYn-qnw?qPz|Bx(Ynf!}iqdT;Akx=24h@p$Xgsw>x2ja|riv?0n;1#n~MJa{d(%IK_;ucf|u zyxpw;6=yA-bQy@^hjgM-Z2m)S01nKw{fX{ng%~%raD&rJmMp#ra}+?w7NbZoLKgpP zk{;ViUMu&LHIYTOk#hn8nYk;SVKnNYgd>l?AH+eZ#RSt7Q4*Sr8dgv3ml(55a6N#R zzN9DMzG(m)5-_dGV9!n=B-CsNPCeV}3Tie}PJ;h5BTz5|x856}7%GSuq(-Ib7UYVc zZ{fNb!ph6F9s!=g$sE6G@Wbrr-yH0aUj79{CES`IkjC-5ipu>0T3>xX+R=o=vbrtANfKCP7NUl*{E<0a#MK0lA-v%VKeAJ_v(TDMdGJ z(ayZS9ef_-8E<_4r9#&Xd)4+e=N!prZ@eLTGouFvbw4fixcU4bcCd{7hq>lUlqRd} zfLz&t3sV+lc3)%MzRM!tm?kKF1YEV(dfWml)J_zsj3sC9*5qTOgqvvNe<0%XLsx|} zvom#eNpoj}LH-(z>~l%eslrZ87shVLY7 zWg?MG`PKvQ!9kcT6j?}Z#)t~T@n+5T76Rq?fWCKfcXD`q5(l3khD)J*cXG_Uj}D7V zLxOz7#2jIFFt78ei5U8gYPaT5ysdku`Fa0pXBFj1LSXNQR}Ya$DdEN##M)guum$Mkkw$wI7IFT1L4~C? zLO5=)WaIhg7i>+JoJB{DYvi#l^I_&<2_dsTf5OPg)h)p5UX(;fc5{2;b65*7q}_t~ z3L56NoIwo;(F$9(1_P9<;;P~!fGV+`A=~G&5@SifcVd$}a?HSc*BspX>|gU8S|(uF zy(eOb|2vd+5}h$Hh#_K!I~MyBV*|(eTUiGE4HMeuiI#)W?H*SBDQ>6zZ(bgvvb4?@>pcL|aHh6(jhUEu z$=PHg95#x~Ez3|kUB80nE2UUM#mszGa4U5t11 zMR3A(J{=g44hUY=)YVL3&{tMuo(CHR%-*4HL!^;|D)@n_p=3&7=9vw9B=o9(?o`qg z#vf*F!)30Q(tvqU@Qg$j@hl+FM15QV@)1uvWts)?TU%J(FN9Crx z3tj&h^U|_kn;vwd#-gm`@TeQXlnr!Mj95*+Q-~hD+wyWP;=*<{n0}Mq3wvv|22fUu zV+AHgkm-CcXz$k7pwkN3aN_RPMj7y|_rC5n#}Kv~F9aE$@`r>5?5*EXV4HaU{nS8? z2rj9d15mdOs9(*22+R>!jk!QKx<^3W1u!Uy>Z5jmZvuz6&+J^IaG$O?FT0BZe9PUJ z`fA*}raN!xpe^AX@`IKj%JI4grc)V_){TL^UV~|CP8Ged5(T8H9|#8ULmjj2PVR`m z{k@8=;X7IWA*Wo-fFh{c-w>2vLJ<`*JYJ#K1L8tCSzXPVT`5!M-C%a?nhS2k1%$=5 zuVPQ+9PI0T+1pswkl$Sd=q7AuD8F6E=L@x3RI-rP!wrV_D%VYOgxn+flWHI6%TGGqBw=hu!&sqq-IgVb@`) z17IB#6M(lC+E=s-J3D~({JS_?sKgOh>YSHRJL3a-1%It`mvF|rM8|nMbawgdl*D8| zIbQ8mTFP@(P(cGi$`r4&p7im6P_Q=sISzXmB2lD9_T58x7p}u z7<(zz;_XusHKLwXWB{4IIaFz8pVq_&)tNd!+Kz~JszJY~Wzi%mUwq8pjf}lO0BnBQ z3T5}4o1e^Sj|`C++(1KE%X6OUq>{%TeeU3@*1#-Q@{EgXGp+{NYINyd@&%Bm+7&F1 zBP$Z8S^5Q`r_YsuKUel7PCIOkajm?IQb9^bo&-_9pSv7TUVWSl(4+h;i)sAbfj!!~ z9eUJ#%j`=c_`n(Ju)vwrU*-cGfbi+5&Q(hUpYr@4yiaYpde+OVYx_PL;tgy9w4Od6 zC!ezmEUskmCQzk~tY4D@9wj(x(+b}19OI)5LVao*$B`*a(Uh%?CR24IvRv5Md}d8k z?54lYugwt)BOLe2N`UhlBYG{Myp2>?L#@(hr4n+kl2(kEABV)5)g0kEOwpRQ6W* zY*_2*B&TbU7Ai-2jM+_40nwI4KK#I4<%|!bUi`^Tj(^@)i|q(CUy=&s{P%43*5enz zb@-C&^-voSqV{$8fT$k5v2FuRYb=&vs4()+AJrO+jU@dAn?s7hEux}Y-4`7?HWQA! zcFf5KO9U;Mz9dqI61A;QA}yZC;EoUa7CHp2QtXAAS56e2lPRYBfC~0hc?waVqgYPx z+5=Cm%fwy;F`JpwowEC-u;khGiwd9ZN)WgsOo})BAUEuCWhu)WCVFJd>O@6GQ5V5i>CGPg-WyF_O6x27X5R5fjke-HYiJXxuuq`F6y=%38pOYMER z%(K3>zXLtjRBVzFl+|#Kxcfh((Z$k=t@aQwOnCsi8!*-QmLni|9)?@Z6qr6Mpu$oK zEi@r~eWutg%(2$%!{B29P=}kl2~0!86Q7t!y{UwJxYp}e08B7G1QsYIeCf+L1%^8t z9<5&MGyeU#*wxB42hbwSrfKCH9^+uWZgW*NsoFb_tQJT|e48N3AA|u@q2e0vQp6|B z>yH?a=HayEAP_Q@49~q#$(>{T#-(A-fnJQ zoyXWpOHS3tiQ~@fQrem`qFzp9LuQPB@95S-(p_F&dpW`u2oD{6R;iXX?v= z2N;KdPJVcBrYm`sl|GAC_ObWnoyb08vRs+2bS>Ki)U3bMpue@NOLiB-482MGu$tr+ zKvZ*8na9yW=c}((uk3S*`cifOIS*N>S2(_Mvyj-5H4Mkf+utpK_h)J>7Ht^jiKI$V zbl*m)TEIFPhKxtHtZudf37D6<_3-UYZFxBt1CL%Qr2N9FhgF9rrsk*b!IQ z_V46G^{RM=?PwC4hw`jJt4VaA>(8&5m0wB+%bUQe-a01LaEW$y=rCrIqV==0O(eF= z!K!C6^hP$EOSArEYEt|S;!j)dO#P2@IIW+Dqd$kF!*{<*mWj%)gM}@ba{SaH7{AcX zKbd{22n}}5Mk~BNV_`G^G~bou?jt*fSSHk%gq$oewmq=_59dG_zZ#7u0Gm*vVDEnB zP&~oGW;;%Ud{$KQnFO1kS*2e+6p*Y`_A0NcY@uJw)@7X)Wu>0#pZZ@9<@+ali{*|C0f3$C})>T0tt=S8_txmB?!v!yPo>KC&_G=Ch0DN0qt z7rB@t5o#-$)zT=D)8fNJgAYBr%Cl-G%dYaWektBVV=7f{pD&jxC3B#-G7~bYtcI6G ztskFYPG);uwp=WAcH0$@e$aW@X0t4$S)x9pz-+zR?3xN&pvG2VPEpP$yN%g$tQvl3 zFK{9h-IN5knlDAAe(R@AF@MXJOU;o?b0`0MSNsyzFQNUqWMh;_OFJNe36E6j>zJm& z-59gr%}14Um_Q0AuR=+=hAbV_<1`8}<}USO8lR+I$D)z|SK|>UEaXT}{?Ct(6-qhe^ywX1Qtczi|@e-c?XA6Emxd8`*=~ReuIOiW3;RKg*(q zabO&$uz;M5w|WKUt}cMSdRRu!czOrgV|Dv@os zeVdOS-35-v$GsiF%1mO_PPrJhaF+2Hv5>+7?qJ%TbrBOoK^jvFl$`-(IHXXo1Ij>k zXmk$LnpT*_AxZ3(?tdsb1Do(L0$J-}kLnj~R_jv9>PB&3mlM^pHBmS78fnu7w(^_o=`q`miGSJ>!Nwg*1Ou2{0B*=& z0}myG0ldTf0(3)&zJ1+I2m|`^C^x*Yp$GHAz?Qt&m*?SIYB=~qsbS#TQ(dOY-Rc3n znv+D;Qy%1RN@XSxZx zOFWi+|L#3j=6`0oT6HwD^^ED=v(+@cD&`@$sUEAijjd;@Z@0BG)x>_YE-T?6%T3y( z+Q25{JEHMSII@ZDJSPFzIi6608n;R1zWXqyB={^{EP+66S8OI7*fPernUhboeZj6EgEMjk3jCbA~#Wl8GM z+h%3QjI}EoEHGvx1Z8LIdG0AOjs-&{#@7H%jX7; zbI^Eisv#sRkyfOBa^e7My7>aPbTg4X<-|eOlskjmO*s?US5Er$_E|Y`Dr%^ArV-uL zGaFH?=l4~$^-~kq08KmJUTkS+8gTm=+#-fjxm#yghc!ipjEIXIH*^_;OZJC;^)o9M zdAB(#1t9?eW4Bu?1*-!AyO#$q1xOy=@0zP+xQSd4L|DfdN0^1M@Eqm=c5jRQA8I|? zZkNHx0TTl_GBuNMTPF@SGzu?FWo~D5Xdp2(Gne5h11o<^ZxlxmzVEN-V{+-~s;=tl zmMkP5F^QB&2>X!4;$X}wLa}y{StRoB^VO_{SY|9{c8$P$f!dyW^;ci@W5!fjLJHMd z5D8S7Ap8FoIA<4H$Qgq*g>32rB?vVL7*(q- zg0c@mA+>)3Nua^%z6B4mW~d=_Zk|X+C=v39Fi;ct7g!ZzsA0&c_W=Vd9!ii>OFpJ4 za7qF-h2Y~=Fs;-)JaS-G_p5@bN`qQ~&@uvGoF(@@Fs99O(;B!m&ka7zCsdI$TXi3Z z%+2Rf3x}Mt$0`|8?PCE$Vs}?c$ZU)dr2&om<8FQiXsU&m^Ke5y_!I(o)PLQDz1i9rSwmMzLcH@ zP7BK(AIjnm$U)bX8bTmrB>?GADfP8PcFH{v&{eLzI}M6i`&bSNe=dPM+7|-gs(~m1 zD>Z*}X2FwI&Wm2Fmfn(sHu6L;k&=K5icFypaP)_TsdrW(p=Nj}p@?JH@J~_jx@Scx zPRy1JludO32^OZkp3~ST;c-fH=o;l<34|1o&yo|ep;SgrNN2X8xGt4o-X(C-f{A)| zR0HbelYozsdsBtvd}&C>YU-W9ps^b;xRrlE8c1LRA;sEU(B1$&O3uRuAkkMo3AAPv z<;BU#qI(uD(3*@^ei^zy|N0v&h?o_E#0-d5AFi)oEgn6(Lzi8*NQ(gXbJfs2U0<(n z&fZ;KEkoWKytv$KmN%<#YyZo~&GWO((wTloP_Qabk%fgc8aPvr?-DU zP*Y{S{eiVZW%~qSyB9a>tFz@MTp-r7)6ktSKW@UOy{s*dNO`Z!e#$KZc8hfdZlc@mC0Rc>`-G0%}*>fyZV*X#*%V z#e#Z%S1h|zjOrGI{ejIq1U9Grfz5w39oQY+TVOT%8u2hmn#%~5G7-yMhgj+iEOoTs zka)wm-0vrUSd9`&~)8KYTibPx1lq$qe}9xO!aL2$psLmURY}^~b^Tv$nn; zU^NecRoWj|opD&wAM&ttKWnGj2(Eenu4M+U<%ewk`vJC$Y)U$HQz|k5w#gf0gV+GY^ihJ==cRD(#48CQP<<`R`Gh-pls(0kk?b{4wl>+^L$jego(zP?_@tIKzr zx9e5p)P8n!c4|1|x?+>AD|hJ%{3;zo&()Ehvjcjr&gi+Cj`+%0M|PB|`!`^fdu_mC zktzH8=&0G>PS#kki?C5lBvTrYc+h}##;#Xq?0R){*CU;zD#X#>$3B0|b-c-tMvW)Z zsM&xh(ITf35R=095d4-8p(i0El;P>j_y}zG}JAr4fgoEbR}7| zdJJn*OKF5ubsnj9z-luJ)&@l=C6-zrW`njge7Dt7-n&8DZKn6N&R2^F69@+_V+l+( zdZ`HqEy>f?dHb?K{o8-n)Ozpg-gyPTOPAoc9>sf*M#B#s{)KPfrt^=8lZ!w!d6gW| zEy>Bl541taMsU{y8nk_jgP3ZI(O!;zlPVD}B4B zyN{~!NH=lXzpC_2s>%t~)cmQcEGZgIsw&fGp1r(RCp8*sDH#Rww5dtZHrB+LC+CUJ#`&aDImda*l zW}mr*JWwOr27!8Lnu7x*MRFhsBvJo;$1fnp5JkPP_VDeu^ZdL@+zTaoQFjy_U6>%e z4AyEfx)U0uLE(&%sM#4f-yZ~1=poPdfKtKxUO$a2Q$d=x!Jz=TS`+8vM%QH&p=>l-B|{MV&WQU@>I z3gCk58zguyjPa68&ioWfr<@9+S~~Av^KFc3@^osV&W5SZ zDtqL}=UD}(WB{m7D^m4a8C3*aQ?hN87!#+r*|f}m50^#SCWiOHI~yl#e^i4{d8}pd zK!wNJNzW-aydsBRxa^XS)1G3rTPV<4dLlmANEJe}RJ2tp%^d@qN^NuSUdqozX`Ma9 z!EltC{oCOPB#Arszc}hxKIUk|qV~>};YRk37p8W;Oy|XHnoTy9rel8gJ|52Q=V?~j z$BX%Yay8AeVu-$!w%c@G?OH#K7n7=G>aIGvV8=JdLqMrC)nmGxO=PjBK)!R7oV4q4 zZtJy8o+xl{1QL#C&xV~mIdbbf1(2HTI!`USqe!9?4lMU3mZ$$r5aTp^;n0AH;; z{5*TCwP%kr01`;=Xa#G-r=3w8gsF<9k`5t%LEO6EsHbb!rRfzHS4dN+wi) zIuhOcE4ZX85rQWlsk)1a9lMgcaUOE+VjP!BmS~$bvgn9ZJejYb1_4q4L{Si(jY)$L zP6If78fbzzxDRk}aq{l!Af33f6UGy$r&DNuF8va)Qe_4+R4vVV(J1>^9#gq3} zCqGXJG>8MznnO@bX)u30xxT@{0v>$~Fyd(vJl7Q;13@F`gZ$Ytn4Ek)!B!8W-5!zz zVfcM*^{2^&G$;)xlW+Rw>iwy@JN^9a8{88fUVZp{smgv}8mT+{Uo6hgf80_c7_0lz zSkcj^D8eX-gxjZ>#e4hIF_temg&r-n|Q1I0LEe<|OYd>EL014Uri2@LyAQxpc6*JCb=?Y^(G;LasZ6n6|Z z

You can have MSG_AES_CMAC_SIGNATURE inherent its fields directly from an inherited SBP object, + * or construct it inline using a dict of its fields. + * + *

Digital signature using AES-CMAC 128 algorithm used for data integrity. + */ +public class MsgAesCmacSignature extends SBPMessage { + public static final int TYPE = 0x0C10; + + /** + * Signature message counter. Zero indexed and incremented with each signature message. The + * counter will not increment if this message was in response to an on demand request. The + * counter will roll over after 256 messages. Upon connection, the value of the counter may not + * initially be zero. + */ + public int stream_counter; + + /** + * On demand message counter. Zero indexed and incremented with each signature message sent in + * response to an on demand message. The counter will roll over after 256 messages. Upon + * connection, the value of the counter may not initially be zero. + */ + public int on_demand_counter; + + /** The last 4 bytes of the certificate's SHA-1 fingerprint */ + public int[] certificate_id; + + /** Signature */ + public int[] signature; + + /** Describes the format of the 'signed messages' field below. */ + public int flags; + + /** + * CRCs of the messages covered by this signature. For Skylark, which delivers SBP messages + * wrapped in Swift's proprietary RTCM message, these are the 24-bit CRCs from the RTCM message + * framing. For SBP only streams, this will be 16-bit CRCs from the SBP framing. See the `flags` + * field to determine the type of CRCs covered. + */ + public int[] signed_messages; + + public MsgAesCmacSignature(int sender) { + super(sender, TYPE); + } + + public MsgAesCmacSignature() { + super(TYPE); + } + + public MsgAesCmacSignature(SBPMessage msg) throws SBPBinaryException { + super(msg); + if (msg.type != TYPE) + throw new SBPBinaryException( + "Type mismatch for MsgAesCmacSignature, expected 3088, actual " + msg.type); + } + + @Override + protected void parse(Parser parser) throws SBPBinaryException { + /* Parse fields from binary */ + stream_counter = parser.getU8(); + on_demand_counter = parser.getU8(); + certificate_id = parser.getArrayofU8(4); + signature = parser.getArrayofU8(16); + flags = parser.getU8(); + signed_messages = parser.getArrayofU8(); + } + + @Override + protected void build(Builder builder) { + builder.putU8(stream_counter); + builder.putU8(on_demand_counter); + builder.putArrayofU8(certificate_id, 4); + builder.putArrayofU8(signature, 16); + builder.putU8(flags); + builder.putArrayofU8(signed_messages); + } + + @Override + public JSONObject toJSON() { + JSONObject obj = super.toJSON(); + obj.put("stream_counter", stream_counter); + obj.put("on_demand_counter", on_demand_counter); + obj.put("certificate_id", new JSONArray(certificate_id)); + obj.put("signature", new JSONArray(signature)); + obj.put("flags", flags); + obj.put("signed_messages", new JSONArray(signed_messages)); + return obj; + } + + @Override + public String getFriendlyName() { + return "AES CMAC SIGNATURE"; + } +} diff --git a/java/test/auto_check_sbp_signing_MsgAesCmacSignatureTest.java b/java/test/auto_check_sbp_signing_MsgAesCmacSignatureTest.java new file mode 100644 index 0000000000..36ca1657f6 --- /dev/null +++ b/java/test/auto_check_sbp_signing_MsgAesCmacSignatureTest.java @@ -0,0 +1,307 @@ +/* Copyright (C) 2015-2022 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ +package com.swiftnav.sbp.test; + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/signing/test_MsgAesCmacSignature.yaml by generate.py. Do not modify +// by hand! + + +import com.swiftnav.sbp.SBPMessage; +import com.swiftnav.sbp.signing.MsgAesCmacSignature; +import java.math.BigInteger; +import org.json.JSONObject; +import org.junit.Test; + +public class auto_check_sbp_signing_MsgAesCmacSignatureTest { + + public static boolean debug = false; + private static final double DELTA = 1e-15; + + @Test + public void test1() throws Throwable { + if (debug) + System.out.format("%n%s%n", "auto_check_sbp_signing_MsgAesCmacSignatureTest.test1"); + byte[] payload = + new byte[] { + (byte) 1, (byte) 2, (byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 0, (byte) 1, + (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 6, (byte) 7, (byte) 8, (byte) 9, + (byte) 10, (byte) 11, (byte) 12, (byte) 13, (byte) 14, (byte) 15, (byte) 0, + (byte) 11, (byte) 22, (byte) 33, + }; + SBPMessage sbp = new SBPMessage(0x42, 0xC10, payload); + MsgAesCmacSignature msg = new MsgAesCmacSignature(sbp); + JSONObject json = msg.toJSON(); + Number value; + Number expected; + value = msg.certificate_id[0]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.certificate_id[0] + "' != '" + 1 + "'", + value.equals(BigInteger.valueOf(1L))); + } else { + value = value.longValue(); + expected = 1L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.certificate_id[1]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.certificate_id[1] + "' != '" + 2 + "'", + value.equals(BigInteger.valueOf(2L))); + } else { + value = value.longValue(); + expected = 2L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.certificate_id[2]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.certificate_id[2] + "' != '" + 3 + "'", + value.equals(BigInteger.valueOf(3L))); + } else { + value = value.longValue(); + expected = 3L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.certificate_id[3]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.certificate_id[3] + "' != '" + 4 + "'", + value.equals(BigInteger.valueOf(4L))); + } else { + value = value.longValue(); + expected = 4L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.flags; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.flags + "' != '" + 0 + "'", value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.on_demand_counter; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.on_demand_counter + "' != '" + 2 + "'", + value.equals(BigInteger.valueOf(2L))); + } else { + value = value.longValue(); + expected = 2L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[0]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[0] + "' != '" + 0 + "'", + value.equals(BigInteger.valueOf(0L))); + } else { + value = value.longValue(); + expected = 0L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[1]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[1] + "' != '" + 1 + "'", + value.equals(BigInteger.valueOf(1L))); + } else { + value = value.longValue(); + expected = 1L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[2]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[2] + "' != '" + 2 + "'", + value.equals(BigInteger.valueOf(2L))); + } else { + value = value.longValue(); + expected = 2L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[3]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[3] + "' != '" + 3 + "'", + value.equals(BigInteger.valueOf(3L))); + } else { + value = value.longValue(); + expected = 3L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[4]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[4] + "' != '" + 4 + "'", + value.equals(BigInteger.valueOf(4L))); + } else { + value = value.longValue(); + expected = 4L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[5]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[5] + "' != '" + 5 + "'", + value.equals(BigInteger.valueOf(5L))); + } else { + value = value.longValue(); + expected = 5L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[6]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[6] + "' != '" + 6 + "'", + value.equals(BigInteger.valueOf(6L))); + } else { + value = value.longValue(); + expected = 6L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[7]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[7] + "' != '" + 7 + "'", + value.equals(BigInteger.valueOf(7L))); + } else { + value = value.longValue(); + expected = 7L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[8]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[8] + "' != '" + 8 + "'", + value.equals(BigInteger.valueOf(8L))); + } else { + value = value.longValue(); + expected = 8L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[9]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[9] + "' != '" + 9 + "'", + value.equals(BigInteger.valueOf(9L))); + } else { + value = value.longValue(); + expected = 9L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[10]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[10] + "' != '" + 10 + "'", + value.equals(BigInteger.valueOf(10L))); + } else { + value = value.longValue(); + expected = 10L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[11]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[11] + "' != '" + 11 + "'", + value.equals(BigInteger.valueOf(11L))); + } else { + value = value.longValue(); + expected = 11L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[12]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[12] + "' != '" + 12 + "'", + value.equals(BigInteger.valueOf(12L))); + } else { + value = value.longValue(); + expected = 12L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[13]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[13] + "' != '" + 13 + "'", + value.equals(BigInteger.valueOf(13L))); + } else { + value = value.longValue(); + expected = 13L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[14]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[14] + "' != '" + 14 + "'", + value.equals(BigInteger.valueOf(14L))); + } else { + value = value.longValue(); + expected = 14L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signature[15]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signature[15] + "' != '" + 15 + "'", + value.equals(BigInteger.valueOf(15L))); + } else { + value = value.longValue(); + expected = 15L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signed_messages[0]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signed_messages[0] + "' != '" + 11 + "'", + value.equals(BigInteger.valueOf(11L))); + } else { + value = value.longValue(); + expected = 11L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signed_messages[1]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signed_messages[1] + "' != '" + 22 + "'", + value.equals(BigInteger.valueOf(22L))); + } else { + value = value.longValue(); + expected = 22L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.signed_messages[2]; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.signed_messages[2] + "' != '" + 33 + "'", + value.equals(BigInteger.valueOf(33L))); + } else { + value = value.longValue(); + expected = 33L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.stream_counter; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.stream_counter + "' != '" + 1 + "'", + value.equals(BigInteger.valueOf(1L))); + } else { + value = value.longValue(); + expected = 1L; + org.junit.Assert.assertEquals(value, expected); + } + + org.junit.Assert.assertNotEquals("", msg.getFriendlyName()); + } +} diff --git a/javascript/sbp.bundle.js b/javascript/sbp.bundle.js index c31442bce6..a707a15517 100644 --- a/javascript/sbp.bundle.js +++ b/javascript/sbp.bundle.js @@ -12,4 +12,4 @@ var r=p(25),o=p(26),i=p(16);function s(){return a.TYPED_ARRAY_SUPPORT?2147483647 * @author Feross Aboukhadijeh * @license MIT */ -function r(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o=0;l--)if(c[l]!==u[l])return!1;for(l=c.length-1;l>=0;l--)if(a=c[l],!g(e[a],t[a],p,r))return!1;return!0}(e,t,p,s))}return p?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,p,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof p&&(r=p,p=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(p&&p.name?" ("+p.name+").":".")+(r?" "+r:"."),e&&!o&&_(o,p,"Missing expected exception"+r);var s="string"==typeof r,n=!e&&o&&!p;if((!e&&i.isError(o)&&s&&E(o,p)||n)&&_(o,p,"Got unwanted exception"+r),e&&o&&p&&!E(o,p)||!e&&o)throw o}u.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return h(d(e.actual),128)+" "+e.operator+" "+h(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var p=new Error;if(p.stack){var r=p.stack,o=f(t),i=r.indexOf("\n"+o);if(i>=0){var s=r.indexOf("\n",i+1);r=r.substring(s+1)}this.stack=r}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,p){e!=t&&_(e,t,p,"==",u.equal)},u.notEqual=function(e,t,p){e==t&&_(e,t,p,"!=",u.notEqual)},u.deepEqual=function(e,t,p){g(e,t,!1)||_(e,t,p,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,p){g(e,t,!0)||_(e,t,p,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,p){g(e,t,!1)&&_(e,t,p,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,p,r){g(t,p,!0)&&_(t,p,r,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,p){e!==t&&_(e,t,p,"===",u.strictEqual)},u.notStrictEqual=function(e,t,p){e===t&&_(e,t,p,"!==",u.notStrictEqual)},u.throws=function(e,t,p){m(!0,e,t,p)},u.doesNotThrow=function(e,t,p){m(!1,e,t,p)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var p in e)s.call(e,p)&&t.push(p);return t}}).call(this,p(5))},function(e,t,p){var r;!function(p){o(Math.pow(36,5)),o(Math.pow(16,7)),o(Math.pow(10,9)),o(Math.pow(2,30)),o(36),o(16),o(10),o(2);function o(e,t){return this instanceof o?(this._low=0,this._high=0,this.remainder=null,void 0===t?s.call(this,e):"string"==typeof e?n.call(this,e,t):void i.call(this,e,t)):new o(e,t)}function i(e,t){return this._low=0|e,this._high=0|t,this}function s(e){return this._low=65535&e,this._high=e>>>16,this}function n(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}o.prototype.fromBits=i,o.prototype.fromNumber=s,o.prototype.fromString=n,o.prototype.toNumber=function(){return 65536*this._high+this._low},o.prototype.toString=function(e){return this.toNumber().toString(e||10)},o.prototype.add=function(e){var t=this._low+e._low,p=t>>>16;return p+=this._high+e._high,this._low=65535&t,this._high=65535&p,this},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.prototype.multiply=function(e){var t,p,r=this._high,o=this._low,i=e._high,s=e._low;return t=(p=o*s)>>>16,t+=r*s,t&=65535,t+=o*i,this._low=65535&p,this._high=65535&t,this},o.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new o(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new o(0),this._low=1,this._high=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._low=0,this._high=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=16?this._high|=1<>>16)&65535,this},o.prototype.equals=o.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},o.prototype.greaterThan=o.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},o.prototype.lessThan=o.prototype.lt=function(e){return this._highe._high)&&this._low16?(this._low=this._high>>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},o.prototype.shiftLeft=o.prototype.shiftl=function(e,t){return e>16?(this._high=this._low<>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.rotateRight=o.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.clone=function(){return new o(this._low,this._high)},void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r;!function(p){var o={16:s(Math.pow(16,5)),10:s(Math.pow(10,5)),2:s(Math.pow(2,5))},i={16:s(16),10:s(10),2:s(2)};function s(e,t,p,r){return this instanceof s?(this.remainder=null,"string"==typeof e?l.call(this,e,t):void 0===t?a.call(this,e):void n.apply(this,arguments)):new s(e,t,p,r)}function n(e,t,p,r){return void 0===p?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16,this):(this._a00=0|e,this._a16=0|t,this._a32=0|p,this._a48=0|r,this)}function a(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function l(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=o[t]||new s(Math.pow(t,5)),r=0,i=e.length;r=0&&(p.div(t),r[o]=p.remainder.toNumber().toString(e),p.gt(t));o--);return r[o-1]=p.toNumber().toString(e),r.join("")},s.prototype.add=function(e){var t=this._a00+e._a00,p=t>>>16,r=(p+=this._a16+e._a16)>>>16,o=(r+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&p,this._a32=65535&r,this._a48=65535&o,this},s.prototype.subtract=function(e){return this.add(e.clone().negate())},s.prototype.multiply=function(e){var t=this._a00,p=this._a16,r=this._a32,o=this._a48,i=e._a00,s=e._a16,n=e._a32,a=t*i,l=a>>>16,c=(l+=t*s)>>>16;l&=65535,c+=(l+=p*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=p*s)>>>16,c&=65535,u+=(c+=r*i)>>>16,u+=t*e._a48,u&=65535,u+=p*n,u&=65535,u+=r*s,u&=65535,u+=o*i,this._a00=65535&a,this._a16=65535&l,this._a32=65535&c,this._a48=65535&u,this},s.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new s(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new s(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=48?this._a48|=1<=32?this._a32|=1<=16?this._a16|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},s.prototype.equals=s.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},s.prototype.greaterThan=s.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},s.prototype.lessThan=s.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00=48?(this._a00=this._a48>>e-48,this._a16=0,this._a32=0,this._a48=0):e>=32?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):e>=16?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},s.prototype.shiftLeft=s.prototype.shiftl=function(e,t){return(e%=64)>=48?(this._a48=this._a00<=32?(e-=32,this._a48=this._a16<>16-e,this._a32=this._a00<=16?(e-=16,this._a48=this._a32<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p<>>32-e,i=r<>>32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.rotateRight=s.prototype.rotr=function(e){if(0==(e%=64))return this;if(e>=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p>>>e|r<<32-e,i=r>>>e|p<<32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.clone=function(){return new s(this._a00,this._a16,this._a32,this._a48)},void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=(p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT",n.prototype.msg_type=47,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:i.prototype.parser}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),n.prototype.fieldSpec.push(["cp","writeFloatLE",4]),n.prototype.fieldSpec.push(["cf","writeFloatLE",4]),n.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_C",a.prototype.msg_type=31,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),a.prototype.fieldSpec.push(["cp","writeFloatLE",4]),a.prototype.fieldSpec.push(["cf","writeFloatLE",4]),a.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_B",l.prototype.msg_type=20,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["snr","writeFloatLE",4]),l.prototype.fieldSpec.push(["cp","writeFloatLE",4]),l.prototype.fieldSpec.push(["cf","writeFloatLE",4]),l.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_A",c.prototype.msg_type=21,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").uint8("prn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["snr","writeFloatLE",4]),c.prototype.fieldSpec.push(["cp","writeFloatLE",4]),c.prototype.fieldSpec.push(["cf","writeFloatLE",4]),c.prototype.fieldSpec.push(["prn","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="AcqSvProfile",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:i.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["job_type","writeUInt8",1]),u.prototype.fieldSpec.push(["status","writeUInt8",1]),u.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),u.prototype.fieldSpec.push(["int_time","writeUInt8",1]),u.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),u.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),u.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),u.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf","writeInt32LE",4]),u.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="AcqSvProfileDep",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:s.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["job_type","writeUInt8",1]),y.prototype.fieldSpec.push(["status","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),y.prototype.fieldSpec.push(["int_time","writeUInt8",1]),y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),y.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),y.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),y.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf","writeInt32LE",4]),y.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE",f.prototype.msg_type=46,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",h.prototype.msg_type=30,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["acq_sv_profile","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={47:n,MsgAcqResult:n,31:a,MsgAcqResultDepC:a,20:l,MsgAcqResultDepB:l,21:c,MsgAcqResultDepA:c,AcqSvProfile:u,AcqSvProfileDep:y,46:f,MsgAcqSvProfile:f,30:h,MsgAcqSvProfileDep:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",i.prototype.msg_type=179,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",s.prototype.msg_type=180,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("flags").string("version",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt32LE",4]),s.prototype.fieldSpec.push(["version","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_JUMP_TO_APP",n.prototype.msg_type=177,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("jump"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["jump","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_REQ",a.prototype.msg_type=222,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little"),a.prototype.fieldSpec=[];let l=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_RESP",l.prototype.msg_type=221,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("dna",{length:8,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["dna","array","writeUInt8",function(){return 1},8]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",c.prototype.msg_type=176,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").array("handshake",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["handshake","array","writeUInt8",function(){return 1},null]),e.exports={179:i,MsgBootloaderHandshakeReq:i,180:s,MsgBootloaderHandshakeResp:s,177:n,MsgBootloaderJumpToApp:n,222:a,MsgNapDeviceDnaReq:a,221:l,MsgNapDeviceDnaResp:l,176:c,MsgBootloaderHandshakeDepA:c}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_EXT_EVENT",i.prototype.msg_type=257,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags").uint8("pin"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]),i.prototype.fieldSpec.push(["pin","writeUInt8",1]),e.exports={257:i,MsgExtEvent:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_REQ",i.prototype.msg_type=168,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").uint8("chunk_size").string("filename",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),i.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),i.prototype.fieldSpec.push(["chunk_size","writeUInt8",1]),i.prototype.fieldSpec.push(["filename","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_RESP",s.prototype.msg_type=163,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),s.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_REQ",n.prototype.msg_type=169,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("dirname",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),n.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),n.prototype.fieldSpec.push(["dirname","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_RESP",a.prototype.msg_type=170,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("sequence").string("contents",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_REMOVE",l.prototype.msg_type=172,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("filename",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["filename","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_REQ",c.prototype.msg_type=173,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("filename",{greedy:!0}).array("data",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),c.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),c.prototype.fieldSpec.push(["filename","string",null]),c.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_RESP",u.prototype.msg_type=171,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sequence"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_REQ",y.prototype.msg_type=4097,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sequence"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",f.prototype.msg_type=4098,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),f.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["fileio_version","writeUInt32LE",4]),e.exports={168:i,MsgFileioReadReq:i,163:s,MsgFileioReadResp:s,169:n,MsgFileioReadDirReq:n,170:a,MsgFileioReadDirResp:a,172:l,MsgFileioRemove:l,173:c,MsgFileioWriteReq:c,171:u,MsgFileioWriteResp:u,4097:y,MsgFileioConfigReq:y,4098:f,MsgFileioConfigResp:f}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_PROGRAM",i.prototype.msg_type=230,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len").array("data",{type:"uint8",length:"addr_len"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["target","writeUInt8",1]),i.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),i.prototype.fieldSpec.push(["addr_len","writeUInt8",1]),i.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},"addr_len"]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_DONE",s.prototype.msg_type=224,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("response"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["response","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_REQ",n.prototype.msg_type=231,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["target","writeUInt8",1]),n.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),n.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_RESP",a.prototype.msg_type=225,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["target","writeUInt8",1]),a.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),a.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_ERASE",l.prototype.msg_type=226,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("target").uint32("sector_num"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["target","writeUInt8",1]),l.prototype.fieldSpec.push(["sector_num","writeUInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_LOCK_SECTOR",c.prototype.msg_type=227,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sector"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_UNLOCK_SECTOR",u.prototype.msg_type=228,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sector"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_REQ",y.prototype.msg_type=232,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",f.prototype.msg_type=229,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",h.prototype.msg_type=243,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["status","array","writeUInt8",function(){return 1},1]),e.exports={230:i,MsgFlashProgram:i,224:s,MsgFlashDone:s,231:n,MsgFlashReadReq:n,225:a,MsgFlashReadResp:a,226:l,MsgFlashErase:l,227:c,MsgStmFlashLockSector:c,228:u,MsgStmFlashUnlockSector:u,232:y,MsgStmUniqueIdReq:y,229:f,MsgStmUniqueIdResp:f,243:h,MsgM25FlashWriteStatus:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_IMU_RAW",i.prototype.msg_type=2304,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("acc_x").int16("acc_y").int16("acc_z").int16("gyr_x").int16("gyr_y").int16("gyr_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["acc_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_z","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_z","writeInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_IMU_AUX",s.prototype.msg_type=2305,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("imu_type").int16("temp").uint8("imu_conf"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["imu_type","writeUInt8",1]),s.prototype.fieldSpec.push(["temp","writeInt16LE",2]),s.prototype.fieldSpec.push(["imu_conf","writeUInt8",1]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal,p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),s=p(0).SvId,n=function(e,t){return r.call(this,e),this.messageType="IntegritySSRHeader",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="IntegritySSRHeader",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),n.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),n.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),n.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),n.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["chain_id","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL",a.prototype.msg_type=3001,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").uint8("use_qzss_sat").array("reserved",{length:5,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["corr_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),a.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_qzss_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},5]),a.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_SATELLITES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_SATELLITES",l.prototype.msg_type=3005,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint8("chain_id").uint8("const_id").uint8("n_faulty_sats").array("faulty_sats",{type:"uint8",length:"n_faulty_sats"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),l.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),l.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),l.prototype.fieldSpec.push(["const_id","writeUInt8",1]),l.prototype.fieldSpec.push(["n_faulty_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["faulty_sats","array","writeUInt8",function(){return 1},"n_faulty_sats"]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",c.prototype.msg_type=3011,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),c.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",u.prototype.msg_type=3015,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),u.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",y.prototype.msg_type=3021,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),y.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",f.prototype.msg_type=3025,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint16("grid_point_id").uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),f.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),f.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),f.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ACKNOWLEDGE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACKNOWLEDGE",h.prototype.msg_type=3026,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("request_id").uint32("area_id").uint8("response_code").uint16("correction_mask_on_demand").uint16("correction_mask_stream").uint8("solution_id"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["request_id","writeUInt8",1]),h.prototype.fieldSpec.push(["area_id","writeUInt32LE",4]),h.prototype.fieldSpec.push(["response_code","writeUInt8",1]),h.prototype.fieldSpec.push(["correction_mask_on_demand","writeUInt16LE",2]),h.prototype.fieldSpec.push(["correction_mask_stream","writeUInt16LE",2]),h.prototype.fieldSpec.push(["solution_id","writeUInt8",1]),e.exports={IntegritySSRHeader:n,3001:a,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:f,MsgSsrFlagIonoGridPointSatLos:f,3026:h,MsgAcknowledge:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE_DEP_A",i.prototype.msg_type=32512,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").string("tname",{length:15}).string("cmdline",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["index","writeUInt8",1]),i.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),i.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),i.prototype.fieldSpec.push(["tname","string",15]),i.prototype.fieldSpec.push(["cmdline","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE_DEP_A",s.prototype.msg_type=32513,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").string("tname",{length:15}).string("cmdline",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["index","writeUInt8",1]),s.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),s.prototype.fieldSpec.push(["pmem","writeUInt8",1]),s.prototype.fieldSpec.push(["tname","string",15]),s.prototype.fieldSpec.push(["cmdline","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE_DEP_A",n.prototype.msg_type=32514,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),n.prototype.fieldSpec.push(["pmem","writeUInt8",1]),n.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),n.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",a.prototype.msg_type=32515,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("socket_count").uint16("socket_types").uint16("socket_states").string("cmdline",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["index","writeUInt8",1]),a.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_count","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),a.prototype.fieldSpec.push(["cmdline","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",l.prototype.msg_type=32516,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("recv_queued").uint16("send_queued").uint16("socket_types").uint16("socket_states").string("address_of_largest",{length:64}).string("cmdline",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["index","writeUInt8",1]),l.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),l.prototype.fieldSpec.push(["recv_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["send_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),l.prototype.fieldSpec.push(["address_of_largest","string",64]),l.prototype.fieldSpec.push(["cmdline","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SOCKET_USAGE",c.prototype.msg_type=32517,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("avg_queue_depth").uint32("max_queue_depth").array("socket_state_counts",{length:16,type:"uint16le"}).array("socket_type_counts",{length:16,type:"uint16le"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["avg_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["max_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["socket_state_counts","array","writeUInt16LE",function(){return 2},16]),c.prototype.fieldSpec.push(["socket_type_counts","array","writeUInt16LE",function(){return 2},16]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_COUNT",u.prototype.msg_type=32518,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("fd_count").string("cmdline",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt8",1]),u.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),u.prototype.fieldSpec.push(["fd_count","writeUInt16LE",2]),u.prototype.fieldSpec.push(["cmdline","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_SUMMARY",y.prototype.msg_type=32519,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sys_fd_count").string("most_opened",{greedy:!0}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sys_fd_count","writeUInt32LE",4]),y.prototype.fieldSpec.push(["most_opened","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE",f.prototype.msg_type=32520,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["index","writeUInt8",1]),f.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),f.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),f.prototype.fieldSpec.push(["time","writeUInt32LE",4]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["tname","string",15]),f.prototype.fieldSpec.push(["cmdline","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",h.prototype.msg_type=32521,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["index","writeUInt8",1]),h.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pmem","writeUInt8",1]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["tname","string",15]),h.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",d.prototype.msg_type=32522,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count").uint32("time").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),d.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={32512:i,MsgLinuxCpuStateDepA:i,32513:s,MsgLinuxMemStateDepA:s,32514:n,MsgLinuxSysStateDepA:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y,32520:f,MsgLinuxCpuState:f,32521:h,MsgLinuxMemState:h,32522:d,MsgLinuxSysState:d}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LOG",i.prototype.msg_type=1025,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("level").string("text",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["level","writeUInt8",1]),i.prototype.fieldSpec.push(["text","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").array("fwd_payload",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PRINT_DEP",n.prototype.msg_type=16,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").string("text",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["text","string",null]),e.exports={1025:i,MsgLog:i,1026:s,MsgFwd:s,16:n,MsgPrintDep:n}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MAG_RAW",i.prototype.msg_type=2306,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("mag_x").int16("mag_y").int16("mag_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["mag_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_z","writeInt16LE",2]),e.exports={2306:i,MsgMagRaw:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME",i.prototype.msg_type=258,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_GNSS",s.prototype.msg_type=260,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME",n.prototype.msg_type=259,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["year","writeUInt16LE",2]),n.prototype.fieldSpec.push(["month","writeUInt8",1]),n.prototype.fieldSpec.push(["day","writeUInt8",1]),n.prototype.fieldSpec.push(["hours","writeUInt8",1]),n.prototype.fieldSpec.push(["minutes","writeUInt8",1]),n.prototype.fieldSpec.push(["seconds","writeUInt8",1]),n.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME_GNSS",a.prototype.msg_type=261,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]),a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["year","writeUInt16LE",2]),a.prototype.fieldSpec.push(["month","writeUInt8",1]),a.prototype.fieldSpec.push(["day","writeUInt8",1]),a.prototype.fieldSpec.push(["hours","writeUInt8",1]),a.prototype.fieldSpec.push(["minutes","writeUInt8",1]),a.prototype.fieldSpec.push(["seconds","writeUInt8",1]),a.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_DOPS",l.prototype.msg_type=520,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF",c.prototype.msg_type=521,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["x","writeDoubleLE",8]),c.prototype.fieldSpec.push(["y","writeDoubleLE",8]),c.prototype.fieldSpec.push(["z","writeDoubleLE",8]),c.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV",u.prototype.msg_type=532,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["x","writeDoubleLE",8]),u.prototype.fieldSpec.push(["y","writeDoubleLE",8]),u.prototype.fieldSpec.push(["z","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH",y.prototype.msg_type=522,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),y.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),y.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),y.prototype.fieldSpec.push(["height","writeDoubleLE",8]),y.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV",f.prototype.msg_type=529,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),f.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),f.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),f.prototype.fieldSpec.push(["height","writeDoubleLE",8]),f.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),h.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),h.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",d.prototype.msg_type=536,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").doublele("orthometric_height").floatle("h_accuracy").floatle("v_accuracy").floatle("ct_accuracy").floatle("at_accuracy").nest("h_ellipse",{type:h.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),d.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),d.prototype.fieldSpec.push(["height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["h_ellipse",h.prototype.fieldSpec]),d.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF",_.prototype.msg_type=523,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["x","writeInt32LE",4]),_.prototype.fieldSpec.push(["y","writeInt32LE",4]),_.prototype.fieldSpec.push(["z","writeInt32LE",4]),_.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED",S.prototype.msg_type=524,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),S.prototype.fieldSpec.push(["n","writeInt32LE",4]),S.prototype.fieldSpec.push(["e","writeInt32LE",4]),S.prototype.fieldSpec.push(["d","writeInt32LE",4]),S.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF",g.prototype.msg_type=525,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeInt32LE",4]),g.prototype.fieldSpec.push(["y","writeInt32LE",4]),g.prototype.fieldSpec.push(["z","writeInt32LE",4]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV",w.prototype.msg_type=533,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeInt32LE",4]),w.prototype.fieldSpec.push(["y","writeInt32LE",4]),w.prototype.fieldSpec.push(["z","writeInt32LE",4]),w.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED",E.prototype.msg_type=526,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["n","writeInt32LE",4]),E.prototype.fieldSpec.push(["e","writeInt32LE",4]),E.prototype.fieldSpec.push(["d","writeInt32LE",4]),E.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),E.prototype.fieldSpec.push(["flags","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV",m.prototype.msg_type=530,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["n","writeInt32LE",4]),m.prototype.fieldSpec.push(["e","writeInt32LE",4]),m.prototype.fieldSpec.push(["d","writeInt32LE",4]),m.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),m.prototype.fieldSpec.push(["flags","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_GNSS",b.prototype.msg_type=553,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeDoubleLE",8]),b.prototype.fieldSpec.push(["y","writeDoubleLE",8]),b.prototype.fieldSpec.push(["z","writeDoubleLE",8]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",I.prototype.msg_type=564,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["x","writeDoubleLE",8]),I.prototype.fieldSpec.push(["y","writeDoubleLE",8]),I.prototype.fieldSpec.push(["z","writeDoubleLE",8]),I.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_GNSS",L.prototype.msg_type=554,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),L.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),L.prototype.fieldSpec.push(["height","writeDoubleLE",8]),L.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["flags","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV_GNSS",T.prototype.msg_type=561,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),T.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),T.prototype.fieldSpec.push(["height","writeDoubleLE",8]),T.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",U.prototype.msg_type=557,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["x","writeInt32LE",4]),U.prototype.fieldSpec.push(["y","writeInt32LE",4]),U.prototype.fieldSpec.push(["z","writeInt32LE",4]),U.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",v.prototype.msg_type=565,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),v.prototype.fieldSpec.push(["x","writeInt32LE",4]),v.prototype.fieldSpec.push(["y","writeInt32LE",4]),v.prototype.fieldSpec.push(["z","writeInt32LE",4]),v.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",M.prototype.msg_type=558,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["n","writeInt32LE",4]),M.prototype.fieldSpec.push(["e","writeInt32LE",4]),M.prototype.fieldSpec.push(["d","writeInt32LE",4]),M.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),M.prototype.fieldSpec.push(["flags","writeUInt8",1]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",D.prototype.msg_type=562,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["n","writeInt32LE",4]),D.prototype.fieldSpec.push(["e","writeInt32LE",4]),D.prototype.fieldSpec.push(["d","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",O.prototype.msg_type=531,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeInt32LE",4]),O.prototype.fieldSpec.push(["y","writeInt32LE",4]),O.prototype.fieldSpec.push(["z","writeInt32LE",4]),O.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",G.prototype.msg_type=540,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint32("tow").uint32("cog").uint32("sog").int32("v_up").uint32("cog_accuracy").uint32("sog_accuracy").uint32("v_up_accuracy").uint16("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),G.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",A.prototype.msg_type=528,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.prototype.fieldSpec.push(["age","writeUInt16LE",2]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_DEP_A",C.prototype.msg_type=256,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",R.prototype.msg_type=518,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_DEP_A",P.prototype.msg_type=512,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["x","writeDoubleLE",8]),P.prototype.fieldSpec.push(["y","writeDoubleLE",8]),P.prototype.fieldSpec.push(["z","writeDoubleLE",8]),P.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",N.prototype.msg_type=513,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),N.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),N.prototype.fieldSpec.push(["height","writeDoubleLE",8]),N.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",j.prototype.msg_type=514,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["x","writeInt32LE",4]),j.prototype.fieldSpec.push(["y","writeInt32LE",4]),j.prototype.fieldSpec.push(["z","writeInt32LE",4]),j.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),j.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),j.prototype.fieldSpec.push(["flags","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED_DEP_A",x.prototype.msg_type=515,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),x.prototype.fieldSpec.push(["n","writeInt32LE",4]),x.prototype.fieldSpec.push(["e","writeInt32LE",4]),x.prototype.fieldSpec.push(["d","writeInt32LE",4]),x.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),x.prototype.fieldSpec.push(["flags","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_DEP_A",F.prototype.msg_type=516,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),F.prototype.fieldSpec.push(["x","writeInt32LE",4]),F.prototype.fieldSpec.push(["y","writeInt32LE",4]),F.prototype.fieldSpec.push(["z","writeInt32LE",4]),F.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),F.prototype.fieldSpec.push(["flags","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_DEP_A",k.prototype.msg_type=517,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),k.prototype.fieldSpec.push(["n","writeInt32LE",4]),k.prototype.fieldSpec.push(["e","writeInt32LE",4]),k.prototype.fieldSpec.push(["d","writeInt32LE",4]),k.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["flags","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",B.prototype.msg_type=519,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),B.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["flags","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL_DEP_A",q.prototype.msg_type=534,q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),q.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),q.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),q.prototype.fieldSpec.push(["height","writeDoubleLE",8]),q.prototype.fieldSpec.push(["flags","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL",z.prototype.msg_type=535,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("tow").int16("wn").uint16("hpl").uint16("vpl").uint16("atpl").uint16("ctpl").uint16("hvpl").uint16("vvpl").uint16("hopl").uint16("popl").uint16("ropl").doublele("lat").doublele("lon").doublele("height").int32("v_x").int32("v_y").int32("v_z").int32("roll").int32("pitch").int32("heading").uint32("flags"),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),z.prototype.fieldSpec.push(["wn","writeInt16LE",2]),z.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["atpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ctpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hopl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["popl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ropl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),z.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),z.prototype.fieldSpec.push(["height","writeDoubleLE",8]),z.prototype.fieldSpec.push(["v_x","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_y","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_z","writeInt32LE",4]),z.prototype.fieldSpec.push(["roll","writeInt32LE",4]),z.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),z.prototype.fieldSpec.push(["heading","writeInt32LE",4]),z.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",H.prototype.msg_type=570,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").int16("reserved_0").int16("reserved_1").int8("reserved_2").int8("count_before").uint16("reserved_3").uint16("reserved_4").uint16("ref_wn").uint8("ref_dn").int8("count_after"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["reserved_0","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_1","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_2","writeInt8",1]),H.prototype.fieldSpec.push(["count_before","writeInt8",1]),H.prototype.fieldSpec.push(["reserved_3","writeUInt16LE",2]),H.prototype.fieldSpec.push(["reserved_4","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),H.prototype.fieldSpec.push(["count_after","writeInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",V.prototype.msg_type=580,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint8("ssr_iod").string("sn",{length:32}).string("tn",{length:32}).uint8("sin").uint16("utn").uint16("re_t0").int32("delta_X0").int32("delta_Y0").int32("delta_Z0").int32("theta_01").int32("theta_02").int32("theta_03").int32("scale").int32("dot_delta_X0").int32("dot_delta_Y0").int32("dot_delta_Z0").int32("dot_theta_01").int32("dot_theta_02").int32("dot_theta_03").int16("dot_scale"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["sn","string",32]),V.prototype.fieldSpec.push(["tn","string",32]),V.prototype.fieldSpec.push(["sin","writeUInt8",1]),V.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),V.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["scale","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_POSE_RELATIVE",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_POSE_RELATIVE",Y.prototype.msg_type=581,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").uint32("tow").uint8("sensor_id").uint32("timestamp_1").uint32("timestamp_2").array("trans",{length:3,type:"int32le"}).int32("w").int32("x").int32("y").int32("z").floatle("cov_r_x_x").floatle("cov_r_x_y").floatle("cov_r_x_z").floatle("cov_r_y_y").floatle("cov_r_y_z").floatle("cov_r_z_z").floatle("cov_c_x_x").floatle("cov_c_x_y").floatle("cov_c_x_z").floatle("cov_c_y_y").floatle("cov_c_y_z").floatle("cov_c_z_z").uint8("flags"),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["sensor_id","writeUInt8",1]),Y.prototype.fieldSpec.push(["timestamp_1","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["timestamp_2","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["trans","array","writeInt32LE",function(){return 4},3]),Y.prototype.fieldSpec.push(["w","writeInt32LE",4]),Y.prototype.fieldSpec.push(["x","writeInt32LE",4]),Y.prototype.fieldSpec.push(["y","writeInt32LE",4]),Y.prototype.fieldSpec.push(["z","writeInt32LE",4]),Y.prototype.fieldSpec.push(["cov_r_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_z_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_z_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={258:i,MsgGpsTime:i,260:s,MsgGpsTimeGnss:s,259:n,MsgUtcTime:n,261:a,MsgUtcTimeGnss:a,520:l,MsgDops:l,521:c,MsgPosEcef:c,532:u,MsgPosEcefCov:u,522:y,MsgPosLlh:y,529:f,MsgPosLlhCov:f,EstimatedHorizontalErrorEllipse:h,536:d,MsgPosLlhAcc:d,523:_,MsgBaselineEcef:_,524:S,MsgBaselineNed:S,525:g,MsgVelEcef:g,533:w,MsgVelEcefCov:w,526:E,MsgVelNed:E,530:m,MsgVelNedCov:m,553:b,MsgPosEcefGnss:b,564:I,MsgPosEcefCovGnss:I,554:L,MsgPosLlhGnss:L,561:T,MsgPosLlhCovGnss:T,557:U,MsgVelEcefGnss:U,565:v,MsgVelEcefCovGnss:v,558:M,MsgVelNedGnss:M,562:D,MsgVelNedCovGnss:D,531:O,MsgVelBody:O,540:G,MsgVelCog:G,528:A,MsgAgeCorrections:A,256:C,MsgGpsTimeDepA:C,518:R,MsgDopsDepA:R,512:P,MsgPosEcefDepA:P,513:N,MsgPosLlhDepA:N,514:j,MsgBaselineEcefDepA:j,515:x,MsgBaselineNedDepA:x,516:F,MsgVelEcefDepA:F,517:k,MsgVelNedDepA:k,519:B,MsgBaselineHeadingDepA:B,534:q,MsgProtectionLevelDepA:q,535:z,MsgProtectionLevel:z,570:H,MsgUtcLeapSecond:H,580:V,MsgReferenceFrameParam:V,581:Y,MsgPoseRelative:Y}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_NDB_EVENT",s.prototype.msg_type=1024,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("recv_time").uint8("event").uint8("object_type").uint8("result").uint8("data_source").nest("object_sid",{type:i.prototype.parser}).nest("src_sid",{type:i.prototype.parser}).uint16("original_sender"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["event","writeUInt8",1]),s.prototype.fieldSpec.push(["object_type","writeUInt8",1]),s.prototype.fieldSpec.push(["result","writeUInt8",1]),s.prototype.fieldSpec.push(["data_source","writeUInt8",1]),s.prototype.fieldSpec.push(["object_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["src_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["original_sender","writeUInt16LE",2]),e.exports={1024:s,MsgNdbEvent:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=p(0).GPSTimeSec,u=(p(0).SvId,function(e,t){return r.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(r.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:a.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="Doppler",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("i").uint8("f"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["i","writeInt16LE",2]),y.prototype.fieldSpec.push(["f","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="PackedObsContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let h=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_OBS",d.prototype.msg_type=74,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_LLH",_.prototype.msg_type=68,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").doublele("lat").doublele("lon").doublele("height"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),_.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),_.prototype.fieldSpec.push(["height","writeDoubleLE",8]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_ECEF",S.prototype.msg_type=72,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").doublele("x").doublele("y").doublele("z"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["x","writeDoubleLE",8]),S.prototype.fieldSpec.push(["y","writeDoubleLE",8]),S.prototype.fieldSpec.push(["z","writeDoubleLE",8]);let g=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),g.prototype.fieldSpec.push(["ura","writeFloatLE",4]),g.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),g.prototype.fieldSpec.push(["valid","writeUInt8",1]),g.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),w.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),w.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),w.prototype.fieldSpec.push(["valid","writeUInt8",1]),w.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",l.prototype.fieldSpec]),E.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),E.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),E.prototype.fieldSpec.push(["valid","writeUInt8",1]),E.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_E",m.prototype.msg_type=129,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:l.prototype.parser}).uint8("iode").uint16("iodc"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),m.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),m.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["w","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),m.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_F",b.prototype.msg_type=134,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),b.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),b.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),b.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["w","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),b.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS",I.prototype.msg_type=138,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),I.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),I.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["w","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af0","writeFloatLE",4]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_QZSS",L.prototype.msg_type=142,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),L.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),L.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["w","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af0","writeFloatLE",4]),L.prototype.fieldSpec.push(["af1","writeFloatLE",4]),L.prototype.fieldSpec.push(["af2","writeFloatLE",4]),L.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_BDS",T.prototype.msg_type=137,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd1").floatle("tgd2").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),T.prototype.fieldSpec.push(["tgd2","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),T.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),T.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["w","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af1","writeFloatLE",4]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt8",1]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",U.prototype.msg_type=149,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),U.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),U.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),U.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),U.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["w","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af2","writeFloatLE",4]),U.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),U.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),U.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",v.prototype.msg_type=141,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),v.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),v.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),v.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["w","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),v.prototype.fieldSpec.push(["source","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",M.prototype.msg_type=130,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),M.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),M.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",D.prototype.msg_type=131,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),D.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),D.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),D.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",O.prototype.msg_type=132,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),O.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),O.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",G.prototype.msg_type=140,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"floatle"}).array("acc",{length:3,type:"floatle"}).floatle("a_gf0").floatle("a_gf1"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),G.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",A.prototype.msg_type=133,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),A.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),A.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",C.prototype.msg_type=135,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),C.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),C.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["fcn","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",R.prototype.msg_type=136,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn").uint8("iod"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),R.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),R.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["fcn","writeUInt8",1]),R.prototype.fieldSpec.push(["iod","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO",P.prototype.msg_type=139,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("gamma").floatle("tau").floatle("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"floatle"}).uint8("fcn").uint8("iod"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),P.prototype.fieldSpec.push(["gamma","writeFloatLE",4]),P.prototype.fieldSpec.push(["tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["d_tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),P.prototype.fieldSpec.push(["fcn","writeUInt8",1]),P.prototype.fieldSpec.push(["iod","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",N.prototype.msg_type=128,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),N.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),N.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["w","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["valid","writeUInt8",1]),N.prototype.fieldSpec.push(["healthy","writeUInt8",1]),N.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",j.prototype.msg_type=26,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),j.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),j.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["w","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["valid","writeUInt8",1]),j.prototype.fieldSpec.push(["healthy","writeUInt8",1]),j.prototype.fieldSpec.push(["prn","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_B",x.prototype.msg_type=70,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn").uint8("iode"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),x.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),x.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["w","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["valid","writeUInt8",1]),x.prototype.fieldSpec.push(["healthy","writeUInt8",1]),x.prototype.fieldSpec.push(["prn","writeUInt8",1]),x.prototype.fieldSpec.push(["iode","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_C",F.prototype.msg_type=71,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),F.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),F.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["w","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["valid","writeUInt8",1]),F.prototype.fieldSpec.push(["healthy","writeUInt8",1]),F.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),F.prototype.fieldSpec.push(["iode","writeUInt8",1]),F.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),F.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let k=function(e,t){return r.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="ObservationHeaderDep",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("t",{type:l.prototype.parser}).uint8("n_obs"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["t",l.prototype.fieldSpec]),k.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="CarrierPhaseDepA",B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["i","writeInt32LE",4]),B.prototype.fieldSpec.push(["f","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepA",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").uint8("prn"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["P","writeUInt32LE",4]),q.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),q.prototype.fieldSpec.push(["cn0","writeUInt8",1]),q.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),q.prototype.fieldSpec.push(["prn","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepB",z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["P","writeUInt32LE",4]),z.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),z.prototype.fieldSpec.push(["cn0","writeUInt8",1]),z.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let H=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",V.prototype.msg_type=69,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),V.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",Y.prototype.msg_type=67,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);let W=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_C",W.prototype.msg_type=73,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:H.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",H.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Q=function(e,t){return r.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(r.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).doublele("a0").doublele("a1").doublele("a2").doublele("a3").doublele("b0").doublele("b1").doublele("b2").doublele("b3"),Q.prototype.fieldSpec=[],Q.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Q.prototype.fieldSpec.push(["a0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a3","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b3","writeDoubleLE",8]);let K=function(e,t){return r.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(r.prototype)).messageType="MSG_SV_CONFIGURATION_GPS_DEP",K.prototype.msg_type=145,K.prototype.constructor=K,K.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);let X=function(e,t){return r.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(r.prototype)).messageType="GnssCapb",X.prototype.constructor=X,X.prototype.parser=(new o).endianess("little").uint64("gps_active").uint64("gps_l2c").uint64("gps_l5").uint32("glo_active").uint32("glo_l2of").uint32("glo_l3").uint64("sbas_active").uint64("sbas_l5").uint64("bds_active").uint64("bds_d2nav").uint64("bds_b2").uint64("bds_b2a").uint32("qzss_active").uint64("gal_active").uint64("gal_e5"),X.prototype.fieldSpec=[],X.prototype.fieldSpec.push(["gps_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l2c","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["glo_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l2of","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l3","writeUInt32LE",4]),X.prototype.fieldSpec.push(["sbas_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["sbas_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_d2nav","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2a","writeUInt64LE",8]),X.prototype.fieldSpec.push(["qzss_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["gal_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gal_e5","writeUInt64LE",8]);let J=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",J.prototype.msg_type=150,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",Z.prototype.msg_type=146,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["prn","writeUInt8",1]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",$.prototype.msg_type=147,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:n.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),$.prototype.fieldSpec.push(["valid","writeUInt8",1]),$.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let ee=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY",ee.prototype.msg_type=148,ee.prototype.constructor=ee,ee.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:s.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["valid","writeUInt8",1]),ee.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let te=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),te.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),te.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),te.prototype.fieldSpec.push(["valid","writeUInt8",1]),te.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let pe=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContentDep",pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),pe.prototype.fieldSpec.push(["valid","writeUInt8",1]),pe.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let re=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS_DEP",re.prototype.msg_type=112,re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),re.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),re.prototype.fieldSpec.push(["w","writeDoubleLE",8]),re.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let oe=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS",oe.prototype.msg_type=114,oe.prototype.constructor=oe,oe.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),oe.prototype.fieldSpec=[],oe.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),oe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let ie=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO_DEP",ie.prototype.msg_type=113,ie.prototype.constructor=ie,ie.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),ie.prototype.fieldSpec=[],ie.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),ie.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["i","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let se=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO",se.prototype.msg_type=115,se.prototype.constructor=se,se.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),se.prototype.fieldSpec=[],se.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),se.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["i","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),se.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),se.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let ne=function(e,t){return r.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(r.prototype)).messageType="MSG_GLO_BIASES",ne.prototype.msg_type=117,ne.prototype.constructor=ne,ne.prototype.parser=(new o).endianess("little").uint8("mask").int16("l1ca_bias").int16("l1p_bias").int16("l2ca_bias").int16("l2p_bias"),ne.prototype.fieldSpec=[],ne.prototype.fieldSpec.push(["mask","writeUInt8",1]),ne.prototype.fieldSpec.push(["l1ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l1p_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2p_bias","writeInt16LE",2]);let ae=function(e,t){return r.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(r.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);let le=function(e,t){return r.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(r.prototype)).messageType="MSG_SV_AZ_EL",le.prototype.msg_type=151,le.prototype.constructor=le,le.prototype.parser=(new o).endianess("little").array("azel",{type:ae.prototype.parser,readUntil:"eof"}),le.prototype.fieldSpec=[],le.prototype.fieldSpec.push(["azel","array",ae.prototype.fieldSpec,function(){return this.fields.array.length},null]);let ce=function(e,t){return r.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(r.prototype)).messageType="MSG_OSR",ce.prototype.msg_type=1600,ce.prototype.constructor=ce,ce.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:h.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:f,PackedOsrContent:h,74:d,MsgObs:d,68:_,MsgBasePosLlh:_,72:S,MsgBasePosEcef:S,EphemerisCommonContent:g,EphemerisCommonContentDepB:w,EphemerisCommonContentDepA:E,129:m,MsgEphemerisGpsDepE:m,134:b,MsgEphemerisGpsDepF:b,138:I,MsgEphemerisGps:I,142:L,MsgEphemerisQzss:L,137:T,MsgEphemerisBds:T,149:U,MsgEphemerisGalDepA:U,141:v,MsgEphemerisGal:v,130:M,MsgEphemerisSbasDepA:M,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:C,MsgEphemerisGloDepC:C,136:R,MsgEphemerisGloDepD:R,139:P,MsgEphemerisGlo:P,128:N,MsgEphemerisDepD:N,26:j,MsgEphemerisDepA:j,70:x,MsgEphemerisDepB:x,71:F,MsgEphemerisDepC:F,ObservationHeaderDep:k,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:H,69:V,MsgObsDepA:V,67:Y,MsgObsDepB:Y,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:Z,MsgGroupDelayDepA:Z,147:$,MsgGroupDelayDepB:$,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:pe,112:re,MsgAlmanacGpsDep:re,114:oe,MsgAlmanacGps:oe,113:ie,MsgAlmanacGloDep:ie,115:se,MsgAlmanacGlo:se,117:ne,MsgGloBiases:ne,SvAzEl:ae,151:le,MsgSvAzEl:le,1600:ce,MsgOsr:ce}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING",i.prototype.msg_type=527,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),i.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_QUAT",s.prototype.msg_type=544,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("tow").int32("w").int32("x").int32("y").int32("z").floatle("w_accuracy").floatle("x_accuracy").floatle("y_accuracy").floatle("z_accuracy").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["w","writeInt32LE",4]),s.prototype.fieldSpec.push(["x","writeInt32LE",4]),s.prototype.fieldSpec.push(["y","writeInt32LE",4]),s.prototype.fieldSpec.push(["z","writeInt32LE",4]),s.prototype.fieldSpec.push(["w_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["x_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["y_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["z_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_EULER",n.prototype.msg_type=545,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").int32("roll").int32("pitch").int32("yaw").floatle("roll_accuracy").floatle("pitch_accuracy").floatle("yaw_accuracy").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["roll","writeInt32LE",4]),n.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),n.prototype.fieldSpec.push(["yaw","writeInt32LE",4]),n.prototype.fieldSpec.push(["roll_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["pitch_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["yaw_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ANGULAR_RATE",a.prototype.msg_type=546,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeInt32LE",4]),a.prototype.fieldSpec.push(["y","writeInt32LE",4]),a.prototype.fieldSpec.push(["z","writeInt32LE",4]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={527:i,MsgBaselineHeading:i,544:s,MsgOrientQuat:s,545:n,MsgOrientEuler:n,546:a,MsgAngularRate:a}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=p(0).GPSTime,a=p(0).GPSTimeDep,l=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];let c=function(e,t){return r.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];let u=function(e,t){return r.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_RESET",u.prototype.msg_type=182,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CW_RESULTS",f.prototype.msg_type=192,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",h.prototype.msg_type=193,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",d.prototype.msg_type=34,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("filter"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["filter","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];let S=function(e,t){return r.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_THREAD_STATE",S.prototype.msg_type=23,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").string("name",{length:20}).uint16("cpu").uint32("stack_free"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["name","string",20]),S.prototype.fieldSpec.push(["cpu","writeUInt16LE",2]),S.prototype.fieldSpec.push(["stack_free","writeUInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="UARTChannel",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").floatle("tx_throughput").floatle("rx_throughput").uint16("crc_error_count").uint16("io_error_count").uint8("tx_buffer_level").uint8("rx_buffer_level"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["rx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["crc_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["io_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tx_buffer_level","writeUInt8",1]),g.prototype.fieldSpec.push(["rx_buffer_level","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="Period",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").int32("avg").int32("pmin").int32("pmax").int32("current"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["avg","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmin","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmax","writeInt32LE",4]),w.prototype.fieldSpec.push(["current","writeInt32LE",4]);let E=function(e,t){return r.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="Latency",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").int32("avg").int32("lmin").int32("lmax").int32("current"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["avg","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmin","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmax","writeInt32LE",4]),E.prototype.fieldSpec.push(["current","writeInt32LE",4]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE",m.prototype.msg_type=29,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}).nest("obs_period",{type:w.prototype.parser}),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["obs_period",w.prototype.fieldSpec]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE_DEPA",b.prototype.msg_type=24,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_IAR_STATE",I.prototype.msg_type=25,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("num_hyps"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE",L.prototype.msg_type=43,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:i.prototype.parser}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["mask","writeUInt8",1]),L.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE_DEP",T.prototype.msg_type=27,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["mask","writeUInt8",1]),T.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",U.prototype.msg_type=181,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),U.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",v.prototype.msg_type=184,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),v.prototype.fieldSpec.push(["command","string",null]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",M.prototype.msg_type=185,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["code","writeInt32LE",4]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",D.prototype.msg_type=188,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),D.prototype.fieldSpec.push(["line","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",O.prototype.msg_type=186,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little"),O.prototype.fieldSpec=[];let G=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",G.prototype.msg_type=187,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").array("ipv4_address",{length:4,type:"uint8"}).uint8("ipv4_mask_size").array("ipv6_address",{length:16,type:"uint8"}).uint8("ipv6_mask_size").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}).uint32("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),G.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),G.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]),G.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let A=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="NetworkUsage",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),A.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["interface_name","string",16]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",C.prototype.msg_type=189,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").array("interfaces",{type:A.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",R.prototype.msg_type=190,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),R.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),R.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN_DEP",P.prototype.msg_type=80,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:a.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),P.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),P.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",N.prototype.msg_type=81,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:n.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),N.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",j.prototype.msg_type=191,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),j.prototype.fieldSpec.push(["if_gain","array","writeInt8",function(){return 1},8]),e.exports={105:l,MsgAlmanac:l,104:c,MsgSetTime:c,182:u,MsgReset:u,178:y,MsgResetDep:y,192:f,MsgCwResults:f,193:h,MsgCwStart:h,34:d,MsgResetFilters:d,35:_,MsgInitBaseDep:_,23:S,MsgThreadState:S,UARTChannel:g,Period:w,Latency:E,29:m,MsgUartState:m,24:b,MsgUartStateDepa:b,25:I,MsgIarState:I,43:L,MsgMaskSatellite:L,27:T,MsgMaskSatelliteDep:T,181:U,MsgDeviceMonitor:U,184:v,MsgCommandReq:v,185:M,MsgCommandResp:M,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:C,MsgNetworkBandwidthUsage:C,190:R,MsgCellModemStatus:R,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_POINT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_POINT",i.prototype.msg_type=52992,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("total_time").uint16("num_executions").uint32("min").uint32("max").uint64("return_addr").uint64("id").uint64("slice_time").uint16("line").string("func",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["total_time","writeUInt32LE",4]),i.prototype.fieldSpec.push(["num_executions","writeUInt16LE",2]),i.prototype.fieldSpec.push(["min","writeUInt32LE",4]),i.prototype.fieldSpec.push(["max","writeUInt32LE",4]),i.prototype.fieldSpec.push(["return_addr","writeUInt64LE",8]),i.prototype.fieldSpec.push(["id","writeUInt64LE",8]),i.prototype.fieldSpec.push(["slice_time","writeUInt64LE",8]),i.prototype.fieldSpec.push(["line","writeUInt16LE",2]),i.prototype.fieldSpec.push(["func","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_SYSTEM_INFO",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_SYSTEM_INFO",s.prototype.msg_type=52993,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("n_threads").uint32("heap_usage"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["age","writeUInt64LE",8]),s.prototype.fieldSpec.push(["n_threads","writeUInt8",1]),s.prototype.fieldSpec.push(["heap_usage","writeUInt32LE",4]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_THREAD_INFO",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_THREAD_INFO",n.prototype.msg_type=52994,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("state").uint32("stack_size").uint32("stack_usage").string("name",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),n.prototype.fieldSpec.push(["age","writeUInt64LE",8]),n.prototype.fieldSpec.push(["state","writeUInt8",1]),n.prototype.fieldSpec.push(["stack_size","writeUInt32LE",4]),n.prototype.fieldSpec.push(["stack_usage","writeUInt32LE",4]),n.prototype.fieldSpec.push(["name","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="ResourceBucket",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="ResourceBucket",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("name",{length:21}).uint8("thread").uint8("mutex").uint8("cv").uint8("io").uint32("heap_bytes_alloc").uint32("heap_bytes_free").uint32("io_write").uint32("io_read"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["name","string",21]),a.prototype.fieldSpec.push(["thread","writeUInt8",1]),a.prototype.fieldSpec.push(["mutex","writeUInt8",1]),a.prototype.fieldSpec.push(["cv","writeUInt8",1]),a.prototype.fieldSpec.push(["io","writeUInt8",1]),a.prototype.fieldSpec.push(["heap_bytes_alloc","writeUInt32LE",4]),a.prototype.fieldSpec.push(["heap_bytes_free","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_write","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_read","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_RESOURCE_COUNTER",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_RESOURCE_COUNTER",l.prototype.msg_type=52995,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("seq_no").uint8("seq_len").array("buckets",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["seq_no","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_len","writeUInt8",1]),l.prototype.fieldSpec.push(["buckets","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={52992:i,MsgMeasurementPoint:i,52993:s,MsgProfilingSystemInfo:s,52994:n,MsgProfilingThreadInfo:n,ResourceBucket:a,52995:l,MsgProfilingResourceCounter:l}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_SBAS_RAW",s.prototype.msg_type=30583,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint32("tow").uint8("message_type").array("data",{length:27,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["message_type","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},27]),e.exports={30583:s,MsgSbasRaw:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE",s.prototype.msg_type=160,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["setting","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE_RESP",n.prototype.msg_type=175,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["status","writeUInt8",1]),n.prototype.fieldSpec.push(["setting","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_REQ",a.prototype.msg_type=164,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["setting","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_RESP",l.prototype.msg_type=165,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["setting","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",c.prototype.msg_type=162,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("index"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["index","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",u.prototype.msg_type=167,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("index").string("setting",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt16LE",2]),u.prototype.fieldSpec.push(["setting","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",y.prototype.msg_type=166,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER",f.prototype.msg_type=174,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["setting","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",h.prototype.msg_type=431,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["status","writeUInt8",1]),h.prototype.fieldSpec.push(["setting","string",null]),e.exports={161:i,MsgSettingsSave:i,160:s,MsgSettingsWrite:s,175:n,MsgSettingsWriteResp:n,164:a,MsgSettingsReadReq:a,165:l,MsgSettingsReadResp:l,162:c,MsgSettingsReadByIndexReq:c,167:u,MsgSettingsReadByIndexResp:u,166:y,MsgSettingsReadByIndexDone:y,174:f,MsgSettingsRegister:f,431:h,MsgSettingsRegisterResp:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="UtcTime",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="UtcTime",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["year","writeUInt16LE",2]),i.prototype.fieldSpec.push(["month","writeUInt8",1]),i.prototype.fieldSpec.push(["day","writeUInt8",1]),i.prototype.fieldSpec.push(["hours","writeUInt8",1]),i.prototype.fieldSpec.push(["minutes","writeUInt8",1]),i.prototype.fieldSpec.push(["seconds","writeUInt8",1]),i.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let s=function(e,t){return r.call(this,e),this.messageType="ECDSASignature",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="ECDSASignature",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("len").array("data",{length:72,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["len","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},72]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_CERTIFICATE",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_CERTIFICATE",n.prototype.msg_type=3076,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("n_msg").array("certificate_id",{length:4,type:"uint8"}).uint8("flags").array("certificate_bytes",{type:"uint8",readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN",a.prototype.msg_type=3081,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).nest("signature",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN_DEP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN_DEP",l.prototype.msg_type=3077,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).array("signature",{length:64,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE",c.prototype.msg_type=3080,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).nest("signature",{type:s.prototype.parser}).array("signed_messages",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),c.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),c.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_B",u.prototype.msg_type=3079,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).uint8("n_signature_bytes").array("signature",{length:72,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt8",1]),u.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),u.prototype.fieldSpec.push(["n_signature_bytes","writeUInt8",1]),u.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},72]),u.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_A",y.prototype.msg_type=3078,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:64,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt8",1]),y.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),y.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),y.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_CERTIFICATE_DEP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_CERTIFICATE_DEP",f.prototype.msg_type=3074,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("n_msg").array("fingerprint",{length:20,type:"uint8"}).array("certificate_bytes",{type:"uint8",readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),f.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),f.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_A",h.prototype.msg_type=3073,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),h.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),h.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_B",d.prototype.msg_type=3075,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),d.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),d.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),d.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),d.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]),e.exports={UtcTime:i,ECDSASignature:s,3076:n,MsgEcdsaCertificate:n,3081:a,MsgCertificateChain:a,3077:l,MsgCertificateChainDep:l,3080:c,MsgEcdsaSignature:c,3079:u,MsgEcdsaSignatureDepB:u,3078:y,MsgEcdsaSignatureDepA:y,3074:f,MsgEd25519CertificateDep:f,3073:h,MsgEd25519SignatureDepA:h,3075:d,MsgEd25519SignatureDepB:d}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="SolutionInputType",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="SolutionInputType",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sensor_type").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META_DEP_A",s.prototype.msg_type=65295,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("pdop").uint16("hdop").uint16("vdop").uint8("n_sats").uint16("age_corrections").uint8("alignment_status").uint32("last_used_gnss_pos_tow").uint32("last_used_gnss_vel_tow").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),s.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),s.prototype.fieldSpec.push(["alignment_status","writeUInt8",1]),s.prototype.fieldSpec.push(["last_used_gnss_pos_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["last_used_gnss_vel_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META",n.prototype.msg_type=65294,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("pdop").uint16("hdop").uint16("vdop").uint16("age_corrections").uint32("age_gnss").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_gnss","writeUInt32LE",4]),n.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let a=function(e,t){return r.call(this,e),this.messageType="GNSSInputType",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GNSSInputType",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="IMUInputType",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="IMUInputType",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="OdoInputType",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="OdoInputType",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={SolutionInputType:i,65295:s,MsgSolnMetaDepA:s,65294:n,MsgSolnMeta:n,GNSSInputType:a,IMUInputType:l,OdoInputType:c}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),n=p(0).SvId,a=function(e,t){return r.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="CodeBiasesContent",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("code").int16("value"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["code","writeUInt8",1]),a.prototype.fieldSpec.push(["value","writeInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="PhaseBiasesContent",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("code").uint8("integer_indicator").uint8("widelane_integer_indicator").uint8("discontinuity_counter").int32("bias"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["code","writeUInt8",1]),l.prototype.fieldSpec.push(["integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["widelane_integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["discontinuity_counter","writeUInt8",1]),l.prototype.fieldSpec.push(["bias","writeInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="STECHeader",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),c.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),u.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),u.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),u.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),u.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="STECSatElement",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).uint8("stec_quality_indicator").array("stec_coeff",{length:4,type:"int16le"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["stec_quality_indicator","writeUInt8",1]),y.prototype.fieldSpec.push(["stec_coeff","array","writeInt16LE",function(){return 2},4]);let f=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrectionNoStd",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]),h.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),d.prototype.fieldSpec.push(["residual","writeInt16LE",2]);let _=function(e,t){return r.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="STECResidual",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual").uint8("stddev"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),_.prototype.fieldSpec.push(["residual","writeInt16LE",2]),_.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",S.prototype.msg_type=1501,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint32("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),S.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),S.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),S.prototype.fieldSpec.push(["radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["along","writeInt32LE",4]),S.prototype.fieldSpec.push(["cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["c0","writeInt32LE",4]),S.prototype.fieldSpec.push(["c1","writeInt32LE",4]),S.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_BIASES",g.prototype.msg_type=1505,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").array("biases",{type:a.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),g.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),g.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_SSR_PHASE_BIASES",w.prototype.msg_type=1510,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("dispersive_bias").uint8("mw_consistency").uint16("yaw").int8("yaw_rate").array("biases",{type:l.prototype.parser,readUntil:"eof"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),w.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),w.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),w.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),w.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),w.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),w.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP",E.prototype.msg_type=1531,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),E.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let m=function(e,t){return r.call(this,e),this.messageType="BoundsHeader",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="BoundsHeader",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("sol_id"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),m.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["sol_id","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION",b.prototype.msg_type=1533,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("n_sats").array("stec_sat_list",{type:y.prototype.parser,length:"n_sats"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),b.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),b.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",I.prototype.msg_type=1532,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["index","writeUInt16LE",2]),I.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),I.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let L=function(e,t){return r.call(this,e),this.messageType="STECSatElementIntegrity",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="STECSatElementIntegrity",L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("stec_residual",{type:_.prototype.parser}).uint8("stec_bound_mu").uint8("stec_bound_sig").uint8("stec_bound_mu_dot").uint8("stec_bound_sig_dot"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["stec_residual",_.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_bound_mu","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_mu_dot","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig_dot","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",T.prototype.msg_type=1534,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("tropo_qi").uint16("grid_point_id").nest("tropo_delay_correction",{type:h.prototype.parser}).uint8("tropo_v_hydro_bound_mu").uint8("tropo_v_hydro_bound_sig").uint8("tropo_v_wet_bound_mu").uint8("tropo_v_wet_bound_sig").uint8("n_sats").array("stec_sat_list",{type:L.prototype.parser,length:"n_sats"}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),T.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),T.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_qi","writeUInt8",1]),T.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["stec_sat_list","array",L.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_A",U.prototype.msg_type=1526,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),U.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),U.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),U.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_B",v.prototype.msg_type=1527,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),v.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),v.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),v.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),v.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",M.prototype.msg_type=1528,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_atmo").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),M.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),M.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),M.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),M.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),M.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),M.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),M.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let D=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("sat_info").uint16("svn").array("pco",{length:3,type:"int16le"}).array("pcv",{length:21,type:"int8"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),D.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),D.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),D.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),D.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC_DEP",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC_DEP",O.prototype.msg_type=1540,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").array("apc",{type:D.prototype.parser,readUntil:"eof"}),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",G.prototype.msg_type=1541,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_ssr").array("apc",{type:D.prototype.parser,readUntil:"eof"}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),G.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",A.prototype.msg_type=1500,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),A.prototype.fieldSpec.push(["iod","writeUInt8",1]),A.prototype.fieldSpec.push(["radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["along","writeInt32LE",4]),A.prototype.fieldSpec.push(["cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["c0","writeInt32LE",4]),A.prototype.fieldSpec.push(["c1","writeInt32LE",4]),A.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let C=function(e,t){return r.call(this,e),this.messageType="STECHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="STECHeaderDepA",C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),C.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),C.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),C.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),C.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),R.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),R.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),R.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),R.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),R.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="GridDefinitionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="GridDefinitionHeaderDepA",P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint8("region_size_inverse").uint16("area_width").uint16("lat_nw_corner_enc").uint16("lon_nw_corner_enc").uint8("num_msgs").uint8("seq_num"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),P.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),P.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",N.prototype.msg_type=1515,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",j.prototype.msg_type=1520,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("header",{type:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),j.prototype.fieldSpec.push(["index","writeUInt16LE",2]),j.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),j.prototype.fieldSpec.push(["stec_residuals","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",x.prototype.msg_type=1530,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").nest("header",{type:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),x.prototype.fieldSpec.push(["index","writeUInt16LE",2]),x.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),x.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRID_DEFINITION_DEP_A",F.prototype.msg_type=1525,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").nest("header",{type:P.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["header",P.prototype.fieldSpec]),F.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]);let k=function(e,t){return r.call(this,e),this.messageType="OrbitClockBound",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="OrbitClockBound",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("orb_radial_bound_mu").uint8("orb_along_bound_mu").uint8("orb_cross_bound_mu").uint8("orb_radial_bound_sig").uint8("orb_along_bound_sig").uint8("orb_cross_bound_sig").uint8("clock_bound_mu").uint8("clock_bound_sig"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_sig","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",B.prototype.msg_type=1502,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats").array("orbit_clock_bounds",{type:k.prototype.parser,length:"n_sats"}),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),B.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),B.prototype.fieldSpec.push(["const_id","writeUInt8",1]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["orbit_clock_bounds","array",k.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let q=function(e,t){return r.call(this,e),this.messageType="CodePhaseBiasesSatSig",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="CodePhaseBiasesSatSig",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("signal_id").uint8("code_bias_bound_mu").uint8("code_bias_bound_sig").uint8("phase_bias_bound_mu").uint8("phase_bias_bound_sig"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),q.prototype.fieldSpec.push(["signal_id","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_sig","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_sig","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",z.prototype.msg_type=1516,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats_signals").array("satellites_signals",{type:q.prototype.parser,length:"n_sats_signals"}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),z.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),z.prototype.fieldSpec.push(["const_id","writeUInt8",1]),z.prototype.fieldSpec.push(["n_sats_signals","writeUInt8",1]),z.prototype.fieldSpec.push(["satellites_signals","array",q.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats_signals"]);let H=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint8("orb_radial_bound_mu_dot").uint8("orb_along_bound_mu_dot").uint8("orb_cross_bound_mu_dot").uint8("orb_radial_bound_sig_dot").uint8("orb_along_bound_sig_dot").uint8("orb_cross_bound_sig_dot").uint8("clock_bound_mu_dot").uint8("clock_bound_sig_dot"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",V.prototype.msg_type=1503,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint64("sat_bitmask").nest("orbit_clock_bounds_degradation",{type:H.prototype.parser}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["const_id","writeUInt8",1]),V.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),V.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",H.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:f,TroposphericDelayCorrection:h,STECResidualNoStd:d,STECResidual:_,1501:S,MsgSsrOrbitClock:S,1505:g,MsgSsrCodeBiases:g,1510:w,MsgSsrPhaseBiases:w,1531:E,MsgSsrStecCorrectionDep:E,BoundsHeader:m,1533:b,MsgSsrStecCorrection:b,1532:I,MsgSsrGriddedCorrection:I,STECSatElementIntegrity:L,1534:T,MsgSsrGriddedCorrectionBounds:T,1526:U,MsgSsrTileDefinitionDepA:U,1527:v,MsgSsrTileDefinitionDepB:v,1528:M,MsgSsrTileDefinition:M,SatelliteAPC:D,1540:O,MsgSsrSatelliteApcDep:O,1541:G,MsgSsrSatelliteApc:G,1500:A,MsgSsrOrbitClockDepA:A,STECHeaderDepA:C,GriddedCorrectionHeaderDepA:R,GridDefinitionHeaderDepA:P,1515:N,MsgSsrStecCorrectionDepA:N,1520:j,MsgSsrGriddedCorrectionNoStdDepA:j,1530:x,MsgSsrGriddedCorrectionDepA:x,1525:F,MsgSsrGridDefinitionDepA:F,OrbitClockBound:k,1502:B,MsgSsrOrbitClockBounds:B,CodePhaseBiasesSatSig:q,1516:z,MsgSsrCodePhaseBiasesBounds:z,OrbitClockBoundDegradation:H,1503:V,MsgSsrOrbitClockBoundsDegradation:V}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_STARTUP",i.prototype.msg_type=65280,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("cause").uint8("startup_type").uint16("reserved"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["cause","writeUInt8",1]),i.prototype.fieldSpec.push(["startup_type","writeUInt8",1]),i.prototype.fieldSpec.push(["reserved","writeUInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_DGNSS_STATUS",s.prototype.msg_type=65282,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint16("latency").uint8("num_signals").string("source",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["latency","writeUInt16LE",2]),s.prototype.fieldSpec.push(["num_signals","writeUInt8",1]),s.prototype.fieldSpec.push(["source","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_HEARTBEAT",n.prototype.msg_type=65535,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="SubSystemReport",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="SubSystemReport",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint16("component").uint8("generic").uint8("specific"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["component","writeUInt16LE",2]),a.prototype.fieldSpec.push(["generic","writeUInt8",1]),a.prototype.fieldSpec.push(["specific","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_REPORT",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_REPORT",l.prototype.msg_type=65534,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("sequence").uint32("uptime").array("status",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),l.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),l.prototype.fieldSpec.push(["status","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let c=function(e,t){return r.call(this,e),this.messageType="StatusJournalItem",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="StatusJournalItem",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("uptime").nest("report",{type:a.prototype.parser}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["report",a.prototype.fieldSpec]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_JOURNAL",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_JOURNAL",u.prototype.msg_type=65533,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("total_status_reports").uint8("sequence_descriptor").array("journal",{type:c.prototype.parser,readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),u.prototype.fieldSpec.push(["total_status_reports","writeUInt32LE",4]),u.prototype.fieldSpec.push(["sequence_descriptor","writeUInt8",1]),u.prototype.fieldSpec.push(["journal","array",c.prototype.fieldSpec,function(){return this.fields.array.length},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_INS_STATUS",y.prototype.msg_type=65283,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY",f.prototype.msg_type=65284,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["id","writeUInt8",1]),f.prototype.fieldSpec.push(["telemetry","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",h.prototype.msg_type=65285,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["id","writeUInt8",1]),h.prototype.fieldSpec.push(["telemetry_labels","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",d.prototype.msg_type=65286,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),d.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),d.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),d.prototype.fieldSpec.push(["speed","writeUInt8",1]),d.prototype.fieldSpec.push(["nhc","writeUInt8",1]),d.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_TIME_OFFSET",_.prototype.msg_type=65287,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),_.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),_.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_PPS_TIME",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_PPS_TIME",S.prototype.msg_type=65288,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time","writeUInt64LE",8]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SENSOR_AID_EVENT",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SENSOR_AID_EVENT",g.prototype.msg_type=65289,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("time").uint8("sensor_type").uint16("sensor_id").uint8("sensor_state").uint8("n_available_meas").uint8("n_attempted_meas").uint8("n_accepted_meas").uint32("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time","writeUInt32LE",4]),g.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),g.prototype.fieldSpec.push(["sensor_id","writeUInt16LE",2]),g.prototype.fieldSpec.push(["sensor_state","writeUInt8",1]),g.prototype.fieldSpec.push(["n_available_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_attempted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_accepted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_META",w.prototype.msg_type=65290,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("group_id").uint8("flags").uint8("n_group_msgs").array("group_msgs",{type:"uint16le",length:"n_group_msgs"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["group_id","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]),w.prototype.fieldSpec.push(["n_group_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},"n_group_msgs"]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,SubSystemReport:a,65534:l,MsgStatusReport:l,StatusJournalItem:c,65533:u,MsgStatusJournal:u,65283:y,MsgInsStatus:y,65284:f,MsgCsacTelemetry:f,65285:h,MsgCsacTelemetryLabels:h,65286:d,MsgInsUpdates:d,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",c.prototype.msg_type=33,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:a.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),c.prototype.fieldSpec.push(["tot",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),c.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),c.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),c.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),c.prototype.fieldSpec.push(["acceleration","writeInt8",1]),c.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP",u.prototype.msg_type=17,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:l.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),u.prototype.fieldSpec.push(["tot",l.prototype.fieldSpec]),u.prototype.fieldSpec.push(["P","writeUInt32LE",4]),u.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),u.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),u.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),u.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),u.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),u.prototype.fieldSpec.push(["acceleration","writeInt8",1]),u.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE",f.prototype.msg_type=65,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let h=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MeasurementState",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelation",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("I").int16("Q"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["I","writeInt16LE",2]),_.prototype.fieldSpec.push(["Q","writeInt16LE",2]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ",S.prototype.msg_type=45,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);let g=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelationDep",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").int32("I").int32("Q"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["I","writeInt32LE",4]),g.prototype.fieldSpec.push(["Q","writeInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_B",w.prototype.msg_type=44,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["channel","writeUInt8",1]),w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_A",E.prototype.msg_type=28,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:n.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["channel","writeUInt8",1]),E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let m=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepA",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint8("state").uint8("prn").floatle("cn0"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["state","writeUInt8",1]),m.prototype.fieldSpec.push(["prn","writeUInt8",1]),m.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_A",b.prototype.msg_type=22,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").array("states",{type:m.prototype.parser,readUntil:"eof"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["states","array",m.prototype.fieldSpec,function(){return this.fields.array.length},null]);let I=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepB",I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:n.prototype.parser}).floatle("cn0"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["state","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),I.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_B",L.prototype.msg_type=19,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").array("states",{type:I.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",I.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:f,MsgTrackingState:f,MeasurementState:h,97:d,MsgMeasurementState:d,TrackingChannelCorrelation:_,45:S,MsgTrackingIq:S,TrackingChannelCorrelationDep:g,44:w,MsgTrackingIqDepB:w,28:E,MsgTrackingIqDepA:E,TrackingChannelStateDepA:m,22:b,MsgTrackingStateDepA:b,TrackingChannelStateDepB:I,19:L,MsgTrackingStateDepB:L}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_USER_DATA",i.prototype.msg_type=2048,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").array("contents",{type:"uint8",readUntil:"eof"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]),e.exports={2048:i,MsgUserData:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_ODOMETRY",i.prototype.msg_type=2307,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").int32("velocity").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["velocity","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_WHEELTICK",s.prototype.msg_type=2308,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags").uint8("source").int32("ticks"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["ticks","writeInt32LE",4]),e.exports={2307:i,MsgOdometry:i,2308:s,MsgWheeltick:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="TelemetrySV",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="TelemetrySV",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("az").int8("el").uint8("availability_flags").int16("pseudorange_residual").int16("phase_residual").uint8("outlier_flags").uint8("ephemeris_flags").uint8("correction_flags").nest("sid",{type:i.prototype.parser}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["az","writeUInt8",1]),s.prototype.fieldSpec.push(["el","writeInt8",1]),s.prototype.fieldSpec.push(["availability_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["pseudorange_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["phase_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["outlier_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["ephemeris_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["correction_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_TEL_SV",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_TEL_SV",n.prototype.msg_type=288,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").uint8("n_obs").uint8("origin_flags").array("sv_tel",{type:s.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["n_obs","writeUInt8",1]),n.prototype.fieldSpec.push(["origin_flags","writeUInt8",1]),n.prototype.fieldSpec.push(["sv_tel","array",s.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={TelemetrySV:s,288:n,MsgTelSv:n}}]); \ No newline at end of file +function r(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o=0;l--)if(c[l]!==u[l])return!1;for(l=c.length-1;l>=0;l--)if(a=c[l],!g(e[a],t[a],p,r))return!1;return!0}(e,t,p,s))}return p?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,p,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof p&&(r=p,p=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(p&&p.name?" ("+p.name+").":".")+(r?" "+r:"."),e&&!o&&_(o,p,"Missing expected exception"+r);var s="string"==typeof r,n=!e&&o&&!p;if((!e&&i.isError(o)&&s&&E(o,p)||n)&&_(o,p,"Got unwanted exception"+r),e&&o&&p&&!E(o,p)||!e&&o)throw o}u.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return h(d(e.actual),128)+" "+e.operator+" "+h(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var p=new Error;if(p.stack){var r=p.stack,o=f(t),i=r.indexOf("\n"+o);if(i>=0){var s=r.indexOf("\n",i+1);r=r.substring(s+1)}this.stack=r}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,p){e!=t&&_(e,t,p,"==",u.equal)},u.notEqual=function(e,t,p){e==t&&_(e,t,p,"!=",u.notEqual)},u.deepEqual=function(e,t,p){g(e,t,!1)||_(e,t,p,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,p){g(e,t,!0)||_(e,t,p,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,p){g(e,t,!1)&&_(e,t,p,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,p,r){g(t,p,!0)&&_(t,p,r,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,p){e!==t&&_(e,t,p,"===",u.strictEqual)},u.notStrictEqual=function(e,t,p){e===t&&_(e,t,p,"!==",u.notStrictEqual)},u.throws=function(e,t,p){m(!0,e,t,p)},u.doesNotThrow=function(e,t,p){m(!1,e,t,p)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var p in e)s.call(e,p)&&t.push(p);return t}}).call(this,p(5))},function(e,t,p){var r;!function(p){o(Math.pow(36,5)),o(Math.pow(16,7)),o(Math.pow(10,9)),o(Math.pow(2,30)),o(36),o(16),o(10),o(2);function o(e,t){return this instanceof o?(this._low=0,this._high=0,this.remainder=null,void 0===t?s.call(this,e):"string"==typeof e?n.call(this,e,t):void i.call(this,e,t)):new o(e,t)}function i(e,t){return this._low=0|e,this._high=0|t,this}function s(e){return this._low=65535&e,this._high=e>>>16,this}function n(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}o.prototype.fromBits=i,o.prototype.fromNumber=s,o.prototype.fromString=n,o.prototype.toNumber=function(){return 65536*this._high+this._low},o.prototype.toString=function(e){return this.toNumber().toString(e||10)},o.prototype.add=function(e){var t=this._low+e._low,p=t>>>16;return p+=this._high+e._high,this._low=65535&t,this._high=65535&p,this},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.prototype.multiply=function(e){var t,p,r=this._high,o=this._low,i=e._high,s=e._low;return t=(p=o*s)>>>16,t+=r*s,t&=65535,t+=o*i,this._low=65535&p,this._high=65535&t,this},o.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new o(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new o(0),this._low=1,this._high=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._low=0,this._high=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=16?this._high|=1<>>16)&65535,this},o.prototype.equals=o.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},o.prototype.greaterThan=o.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},o.prototype.lessThan=o.prototype.lt=function(e){return this._highe._high)&&this._low16?(this._low=this._high>>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},o.prototype.shiftLeft=o.prototype.shiftl=function(e,t){return e>16?(this._high=this._low<>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.rotateRight=o.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.clone=function(){return new o(this._low,this._high)},void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r;!function(p){var o={16:s(Math.pow(16,5)),10:s(Math.pow(10,5)),2:s(Math.pow(2,5))},i={16:s(16),10:s(10),2:s(2)};function s(e,t,p,r){return this instanceof s?(this.remainder=null,"string"==typeof e?l.call(this,e,t):void 0===t?a.call(this,e):void n.apply(this,arguments)):new s(e,t,p,r)}function n(e,t,p,r){return void 0===p?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16,this):(this._a00=0|e,this._a16=0|t,this._a32=0|p,this._a48=0|r,this)}function a(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function l(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=o[t]||new s(Math.pow(t,5)),r=0,i=e.length;r=0&&(p.div(t),r[o]=p.remainder.toNumber().toString(e),p.gt(t));o--);return r[o-1]=p.toNumber().toString(e),r.join("")},s.prototype.add=function(e){var t=this._a00+e._a00,p=t>>>16,r=(p+=this._a16+e._a16)>>>16,o=(r+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&p,this._a32=65535&r,this._a48=65535&o,this},s.prototype.subtract=function(e){return this.add(e.clone().negate())},s.prototype.multiply=function(e){var t=this._a00,p=this._a16,r=this._a32,o=this._a48,i=e._a00,s=e._a16,n=e._a32,a=t*i,l=a>>>16,c=(l+=t*s)>>>16;l&=65535,c+=(l+=p*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=p*s)>>>16,c&=65535,u+=(c+=r*i)>>>16,u+=t*e._a48,u&=65535,u+=p*n,u&=65535,u+=r*s,u&=65535,u+=o*i,this._a00=65535&a,this._a16=65535&l,this._a32=65535&c,this._a48=65535&u,this},s.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new s(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new s(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=48?this._a48|=1<=32?this._a32|=1<=16?this._a16|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},s.prototype.equals=s.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},s.prototype.greaterThan=s.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},s.prototype.lessThan=s.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00=48?(this._a00=this._a48>>e-48,this._a16=0,this._a32=0,this._a48=0):e>=32?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):e>=16?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},s.prototype.shiftLeft=s.prototype.shiftl=function(e,t){return(e%=64)>=48?(this._a48=this._a00<=32?(e-=32,this._a48=this._a16<>16-e,this._a32=this._a00<=16?(e-=16,this._a48=this._a32<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p<>>32-e,i=r<>>32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.rotateRight=s.prototype.rotr=function(e){if(0==(e%=64))return this;if(e>=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p>>>e|r<<32-e,i=r>>>e|p<<32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.clone=function(){return new s(this._a00,this._a16,this._a32,this._a48)},void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=(p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT",n.prototype.msg_type=47,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:i.prototype.parser}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),n.prototype.fieldSpec.push(["cp","writeFloatLE",4]),n.prototype.fieldSpec.push(["cf","writeFloatLE",4]),n.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_C",a.prototype.msg_type=31,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),a.prototype.fieldSpec.push(["cp","writeFloatLE",4]),a.prototype.fieldSpec.push(["cf","writeFloatLE",4]),a.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_B",l.prototype.msg_type=20,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["snr","writeFloatLE",4]),l.prototype.fieldSpec.push(["cp","writeFloatLE",4]),l.prototype.fieldSpec.push(["cf","writeFloatLE",4]),l.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_A",c.prototype.msg_type=21,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").uint8("prn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["snr","writeFloatLE",4]),c.prototype.fieldSpec.push(["cp","writeFloatLE",4]),c.prototype.fieldSpec.push(["cf","writeFloatLE",4]),c.prototype.fieldSpec.push(["prn","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="AcqSvProfile",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:i.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["job_type","writeUInt8",1]),u.prototype.fieldSpec.push(["status","writeUInt8",1]),u.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),u.prototype.fieldSpec.push(["int_time","writeUInt8",1]),u.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),u.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),u.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),u.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf","writeInt32LE",4]),u.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="AcqSvProfileDep",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:s.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["job_type","writeUInt8",1]),y.prototype.fieldSpec.push(["status","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),y.prototype.fieldSpec.push(["int_time","writeUInt8",1]),y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),y.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),y.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),y.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf","writeInt32LE",4]),y.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE",f.prototype.msg_type=46,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",h.prototype.msg_type=30,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["acq_sv_profile","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={47:n,MsgAcqResult:n,31:a,MsgAcqResultDepC:a,20:l,MsgAcqResultDepB:l,21:c,MsgAcqResultDepA:c,AcqSvProfile:u,AcqSvProfileDep:y,46:f,MsgAcqSvProfile:f,30:h,MsgAcqSvProfileDep:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",i.prototype.msg_type=179,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",s.prototype.msg_type=180,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("flags").string("version",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt32LE",4]),s.prototype.fieldSpec.push(["version","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_JUMP_TO_APP",n.prototype.msg_type=177,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("jump"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["jump","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_REQ",a.prototype.msg_type=222,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little"),a.prototype.fieldSpec=[];let l=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_RESP",l.prototype.msg_type=221,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("dna",{length:8,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["dna","array","writeUInt8",function(){return 1},8]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",c.prototype.msg_type=176,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").array("handshake",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["handshake","array","writeUInt8",function(){return 1},null]),e.exports={179:i,MsgBootloaderHandshakeReq:i,180:s,MsgBootloaderHandshakeResp:s,177:n,MsgBootloaderJumpToApp:n,222:a,MsgNapDeviceDnaReq:a,221:l,MsgNapDeviceDnaResp:l,176:c,MsgBootloaderHandshakeDepA:c}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_EXT_EVENT",i.prototype.msg_type=257,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags").uint8("pin"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]),i.prototype.fieldSpec.push(["pin","writeUInt8",1]),e.exports={257:i,MsgExtEvent:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_REQ",i.prototype.msg_type=168,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").uint8("chunk_size").string("filename",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),i.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),i.prototype.fieldSpec.push(["chunk_size","writeUInt8",1]),i.prototype.fieldSpec.push(["filename","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_RESP",s.prototype.msg_type=163,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),s.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_REQ",n.prototype.msg_type=169,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("dirname",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),n.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),n.prototype.fieldSpec.push(["dirname","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_RESP",a.prototype.msg_type=170,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("sequence").string("contents",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_REMOVE",l.prototype.msg_type=172,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("filename",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["filename","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_REQ",c.prototype.msg_type=173,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("filename",{greedy:!0}).array("data",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),c.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),c.prototype.fieldSpec.push(["filename","string",null]),c.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_RESP",u.prototype.msg_type=171,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sequence"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_REQ",y.prototype.msg_type=4097,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sequence"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",f.prototype.msg_type=4098,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),f.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),f.prototype.fieldSpec.push(["fileio_version","writeUInt32LE",4]),e.exports={168:i,MsgFileioReadReq:i,163:s,MsgFileioReadResp:s,169:n,MsgFileioReadDirReq:n,170:a,MsgFileioReadDirResp:a,172:l,MsgFileioRemove:l,173:c,MsgFileioWriteReq:c,171:u,MsgFileioWriteResp:u,4097:y,MsgFileioConfigReq:y,4098:f,MsgFileioConfigResp:f}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_PROGRAM",i.prototype.msg_type=230,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len").array("data",{type:"uint8",length:"addr_len"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["target","writeUInt8",1]),i.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),i.prototype.fieldSpec.push(["addr_len","writeUInt8",1]),i.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},"addr_len"]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_DONE",s.prototype.msg_type=224,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("response"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["response","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_REQ",n.prototype.msg_type=231,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["target","writeUInt8",1]),n.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),n.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_RESP",a.prototype.msg_type=225,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["target","writeUInt8",1]),a.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),a.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_ERASE",l.prototype.msg_type=226,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("target").uint32("sector_num"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["target","writeUInt8",1]),l.prototype.fieldSpec.push(["sector_num","writeUInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_LOCK_SECTOR",c.prototype.msg_type=227,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sector"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_UNLOCK_SECTOR",u.prototype.msg_type=228,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sector"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_REQ",y.prototype.msg_type=232,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",f.prototype.msg_type=229,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",h.prototype.msg_type=243,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["status","array","writeUInt8",function(){return 1},1]),e.exports={230:i,MsgFlashProgram:i,224:s,MsgFlashDone:s,231:n,MsgFlashReadReq:n,225:a,MsgFlashReadResp:a,226:l,MsgFlashErase:l,227:c,MsgStmFlashLockSector:c,228:u,MsgStmFlashUnlockSector:u,232:y,MsgStmUniqueIdReq:y,229:f,MsgStmUniqueIdResp:f,243:h,MsgM25FlashWriteStatus:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_IMU_RAW",i.prototype.msg_type=2304,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("acc_x").int16("acc_y").int16("acc_z").int16("gyr_x").int16("gyr_y").int16("gyr_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["acc_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_z","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_z","writeInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_IMU_AUX",s.prototype.msg_type=2305,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("imu_type").int16("temp").uint8("imu_conf"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["imu_type","writeUInt8",1]),s.prototype.fieldSpec.push(["temp","writeInt16LE",2]),s.prototype.fieldSpec.push(["imu_conf","writeUInt8",1]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal,p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),s=p(0).SvId,n=function(e,t){return r.call(this,e),this.messageType="IntegritySSRHeader",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="IntegritySSRHeader",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),n.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),n.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),n.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),n.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["chain_id","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL",a.prototype.msg_type=3001,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").uint8("use_qzss_sat").array("reserved",{length:5,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["corr_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),a.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_qzss_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},5]),a.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_SATELLITES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_SATELLITES",l.prototype.msg_type=3005,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint8("chain_id").uint8("const_id").uint8("n_faulty_sats").array("faulty_sats",{type:"uint8",length:"n_faulty_sats"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),l.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),l.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),l.prototype.fieldSpec.push(["const_id","writeUInt8",1]),l.prototype.fieldSpec.push(["n_faulty_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["faulty_sats","array","writeUInt8",function(){return 1},"n_faulty_sats"]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",c.prototype.msg_type=3011,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),c.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",u.prototype.msg_type=3015,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),u.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",y.prototype.msg_type=3021,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),y.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",f.prototype.msg_type=3025,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint16("grid_point_id").uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),f.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),f.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),f.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ACKNOWLEDGE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACKNOWLEDGE",h.prototype.msg_type=3026,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("request_id").uint32("area_id").uint8("response_code").uint16("correction_mask_on_demand").uint16("correction_mask_stream").uint8("solution_id"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["request_id","writeUInt8",1]),h.prototype.fieldSpec.push(["area_id","writeUInt32LE",4]),h.prototype.fieldSpec.push(["response_code","writeUInt8",1]),h.prototype.fieldSpec.push(["correction_mask_on_demand","writeUInt16LE",2]),h.prototype.fieldSpec.push(["correction_mask_stream","writeUInt16LE",2]),h.prototype.fieldSpec.push(["solution_id","writeUInt8",1]),e.exports={IntegritySSRHeader:n,3001:a,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:f,MsgSsrFlagIonoGridPointSatLos:f,3026:h,MsgAcknowledge:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE_DEP_A",i.prototype.msg_type=32512,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").string("tname",{length:15}).string("cmdline",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["index","writeUInt8",1]),i.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),i.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),i.prototype.fieldSpec.push(["tname","string",15]),i.prototype.fieldSpec.push(["cmdline","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE_DEP_A",s.prototype.msg_type=32513,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").string("tname",{length:15}).string("cmdline",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["index","writeUInt8",1]),s.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),s.prototype.fieldSpec.push(["pmem","writeUInt8",1]),s.prototype.fieldSpec.push(["tname","string",15]),s.prototype.fieldSpec.push(["cmdline","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE_DEP_A",n.prototype.msg_type=32514,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),n.prototype.fieldSpec.push(["pmem","writeUInt8",1]),n.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),n.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",a.prototype.msg_type=32515,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("socket_count").uint16("socket_types").uint16("socket_states").string("cmdline",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["index","writeUInt8",1]),a.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_count","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),a.prototype.fieldSpec.push(["cmdline","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",l.prototype.msg_type=32516,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("recv_queued").uint16("send_queued").uint16("socket_types").uint16("socket_states").string("address_of_largest",{length:64}).string("cmdline",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["index","writeUInt8",1]),l.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),l.prototype.fieldSpec.push(["recv_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["send_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),l.prototype.fieldSpec.push(["address_of_largest","string",64]),l.prototype.fieldSpec.push(["cmdline","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SOCKET_USAGE",c.prototype.msg_type=32517,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("avg_queue_depth").uint32("max_queue_depth").array("socket_state_counts",{length:16,type:"uint16le"}).array("socket_type_counts",{length:16,type:"uint16le"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["avg_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["max_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["socket_state_counts","array","writeUInt16LE",function(){return 2},16]),c.prototype.fieldSpec.push(["socket_type_counts","array","writeUInt16LE",function(){return 2},16]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_COUNT",u.prototype.msg_type=32518,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("fd_count").string("cmdline",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt8",1]),u.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),u.prototype.fieldSpec.push(["fd_count","writeUInt16LE",2]),u.prototype.fieldSpec.push(["cmdline","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_SUMMARY",y.prototype.msg_type=32519,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sys_fd_count").string("most_opened",{greedy:!0}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sys_fd_count","writeUInt32LE",4]),y.prototype.fieldSpec.push(["most_opened","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE",f.prototype.msg_type=32520,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["index","writeUInt8",1]),f.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),f.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),f.prototype.fieldSpec.push(["time","writeUInt32LE",4]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["tname","string",15]),f.prototype.fieldSpec.push(["cmdline","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",h.prototype.msg_type=32521,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["index","writeUInt8",1]),h.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pmem","writeUInt8",1]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["tname","string",15]),h.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",d.prototype.msg_type=32522,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count").uint32("time").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),d.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={32512:i,MsgLinuxCpuStateDepA:i,32513:s,MsgLinuxMemStateDepA:s,32514:n,MsgLinuxSysStateDepA:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y,32520:f,MsgLinuxCpuState:f,32521:h,MsgLinuxMemState:h,32522:d,MsgLinuxSysState:d}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LOG",i.prototype.msg_type=1025,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("level").string("text",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["level","writeUInt8",1]),i.prototype.fieldSpec.push(["text","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").array("fwd_payload",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PRINT_DEP",n.prototype.msg_type=16,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").string("text",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["text","string",null]),e.exports={1025:i,MsgLog:i,1026:s,MsgFwd:s,16:n,MsgPrintDep:n}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MAG_RAW",i.prototype.msg_type=2306,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("mag_x").int16("mag_y").int16("mag_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["mag_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_z","writeInt16LE",2]),e.exports={2306:i,MsgMagRaw:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME",i.prototype.msg_type=258,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_GNSS",s.prototype.msg_type=260,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME",n.prototype.msg_type=259,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["year","writeUInt16LE",2]),n.prototype.fieldSpec.push(["month","writeUInt8",1]),n.prototype.fieldSpec.push(["day","writeUInt8",1]),n.prototype.fieldSpec.push(["hours","writeUInt8",1]),n.prototype.fieldSpec.push(["minutes","writeUInt8",1]),n.prototype.fieldSpec.push(["seconds","writeUInt8",1]),n.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME_GNSS",a.prototype.msg_type=261,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]),a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["year","writeUInt16LE",2]),a.prototype.fieldSpec.push(["month","writeUInt8",1]),a.prototype.fieldSpec.push(["day","writeUInt8",1]),a.prototype.fieldSpec.push(["hours","writeUInt8",1]),a.prototype.fieldSpec.push(["minutes","writeUInt8",1]),a.prototype.fieldSpec.push(["seconds","writeUInt8",1]),a.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_DOPS",l.prototype.msg_type=520,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF",c.prototype.msg_type=521,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["x","writeDoubleLE",8]),c.prototype.fieldSpec.push(["y","writeDoubleLE",8]),c.prototype.fieldSpec.push(["z","writeDoubleLE",8]),c.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV",u.prototype.msg_type=532,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["x","writeDoubleLE",8]),u.prototype.fieldSpec.push(["y","writeDoubleLE",8]),u.prototype.fieldSpec.push(["z","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH",y.prototype.msg_type=522,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),y.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),y.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),y.prototype.fieldSpec.push(["height","writeDoubleLE",8]),y.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV",f.prototype.msg_type=529,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),f.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),f.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),f.prototype.fieldSpec.push(["height","writeDoubleLE",8]),f.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),f.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),h.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),h.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",d.prototype.msg_type=536,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").doublele("orthometric_height").floatle("h_accuracy").floatle("v_accuracy").floatle("ct_accuracy").floatle("at_accuracy").nest("h_ellipse",{type:h.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),d.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),d.prototype.fieldSpec.push(["height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["h_ellipse",h.prototype.fieldSpec]),d.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF",_.prototype.msg_type=523,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["x","writeInt32LE",4]),_.prototype.fieldSpec.push(["y","writeInt32LE",4]),_.prototype.fieldSpec.push(["z","writeInt32LE",4]),_.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED",S.prototype.msg_type=524,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),S.prototype.fieldSpec.push(["n","writeInt32LE",4]),S.prototype.fieldSpec.push(["e","writeInt32LE",4]),S.prototype.fieldSpec.push(["d","writeInt32LE",4]),S.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF",g.prototype.msg_type=525,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeInt32LE",4]),g.prototype.fieldSpec.push(["y","writeInt32LE",4]),g.prototype.fieldSpec.push(["z","writeInt32LE",4]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV",w.prototype.msg_type=533,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeInt32LE",4]),w.prototype.fieldSpec.push(["y","writeInt32LE",4]),w.prototype.fieldSpec.push(["z","writeInt32LE",4]),w.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED",E.prototype.msg_type=526,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["n","writeInt32LE",4]),E.prototype.fieldSpec.push(["e","writeInt32LE",4]),E.prototype.fieldSpec.push(["d","writeInt32LE",4]),E.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),E.prototype.fieldSpec.push(["flags","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV",m.prototype.msg_type=530,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["n","writeInt32LE",4]),m.prototype.fieldSpec.push(["e","writeInt32LE",4]),m.prototype.fieldSpec.push(["d","writeInt32LE",4]),m.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),m.prototype.fieldSpec.push(["flags","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_GNSS",b.prototype.msg_type=553,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeDoubleLE",8]),b.prototype.fieldSpec.push(["y","writeDoubleLE",8]),b.prototype.fieldSpec.push(["z","writeDoubleLE",8]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",I.prototype.msg_type=564,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["x","writeDoubleLE",8]),I.prototype.fieldSpec.push(["y","writeDoubleLE",8]),I.prototype.fieldSpec.push(["z","writeDoubleLE",8]),I.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_GNSS",L.prototype.msg_type=554,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),L.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),L.prototype.fieldSpec.push(["height","writeDoubleLE",8]),L.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["flags","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV_GNSS",T.prototype.msg_type=561,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),T.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),T.prototype.fieldSpec.push(["height","writeDoubleLE",8]),T.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",U.prototype.msg_type=557,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["x","writeInt32LE",4]),U.prototype.fieldSpec.push(["y","writeInt32LE",4]),U.prototype.fieldSpec.push(["z","writeInt32LE",4]),U.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",v.prototype.msg_type=565,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),v.prototype.fieldSpec.push(["x","writeInt32LE",4]),v.prototype.fieldSpec.push(["y","writeInt32LE",4]),v.prototype.fieldSpec.push(["z","writeInt32LE",4]),v.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",M.prototype.msg_type=558,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["n","writeInt32LE",4]),M.prototype.fieldSpec.push(["e","writeInt32LE",4]),M.prototype.fieldSpec.push(["d","writeInt32LE",4]),M.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),M.prototype.fieldSpec.push(["flags","writeUInt8",1]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",D.prototype.msg_type=562,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["n","writeInt32LE",4]),D.prototype.fieldSpec.push(["e","writeInt32LE",4]),D.prototype.fieldSpec.push(["d","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",O.prototype.msg_type=531,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeInt32LE",4]),O.prototype.fieldSpec.push(["y","writeInt32LE",4]),O.prototype.fieldSpec.push(["z","writeInt32LE",4]),O.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",G.prototype.msg_type=540,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint32("tow").uint32("cog").uint32("sog").int32("v_up").uint32("cog_accuracy").uint32("sog_accuracy").uint32("v_up_accuracy").uint16("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),G.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",A.prototype.msg_type=528,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.prototype.fieldSpec.push(["age","writeUInt16LE",2]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_DEP_A",C.prototype.msg_type=256,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",R.prototype.msg_type=518,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_DEP_A",P.prototype.msg_type=512,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["x","writeDoubleLE",8]),P.prototype.fieldSpec.push(["y","writeDoubleLE",8]),P.prototype.fieldSpec.push(["z","writeDoubleLE",8]),P.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",N.prototype.msg_type=513,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),N.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),N.prototype.fieldSpec.push(["height","writeDoubleLE",8]),N.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",j.prototype.msg_type=514,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["x","writeInt32LE",4]),j.prototype.fieldSpec.push(["y","writeInt32LE",4]),j.prototype.fieldSpec.push(["z","writeInt32LE",4]),j.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),j.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),j.prototype.fieldSpec.push(["flags","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED_DEP_A",x.prototype.msg_type=515,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),x.prototype.fieldSpec.push(["n","writeInt32LE",4]),x.prototype.fieldSpec.push(["e","writeInt32LE",4]),x.prototype.fieldSpec.push(["d","writeInt32LE",4]),x.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),x.prototype.fieldSpec.push(["flags","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_DEP_A",F.prototype.msg_type=516,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),F.prototype.fieldSpec.push(["x","writeInt32LE",4]),F.prototype.fieldSpec.push(["y","writeInt32LE",4]),F.prototype.fieldSpec.push(["z","writeInt32LE",4]),F.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),F.prototype.fieldSpec.push(["flags","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_DEP_A",k.prototype.msg_type=517,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),k.prototype.fieldSpec.push(["n","writeInt32LE",4]),k.prototype.fieldSpec.push(["e","writeInt32LE",4]),k.prototype.fieldSpec.push(["d","writeInt32LE",4]),k.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["flags","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",B.prototype.msg_type=519,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),B.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["flags","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL_DEP_A",q.prototype.msg_type=534,q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),q.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),q.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),q.prototype.fieldSpec.push(["height","writeDoubleLE",8]),q.prototype.fieldSpec.push(["flags","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL",z.prototype.msg_type=535,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("tow").int16("wn").uint16("hpl").uint16("vpl").uint16("atpl").uint16("ctpl").uint16("hvpl").uint16("vvpl").uint16("hopl").uint16("popl").uint16("ropl").doublele("lat").doublele("lon").doublele("height").int32("v_x").int32("v_y").int32("v_z").int32("roll").int32("pitch").int32("heading").uint32("flags"),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),z.prototype.fieldSpec.push(["wn","writeInt16LE",2]),z.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["atpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ctpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hopl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["popl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ropl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),z.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),z.prototype.fieldSpec.push(["height","writeDoubleLE",8]),z.prototype.fieldSpec.push(["v_x","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_y","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_z","writeInt32LE",4]),z.prototype.fieldSpec.push(["roll","writeInt32LE",4]),z.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),z.prototype.fieldSpec.push(["heading","writeInt32LE",4]),z.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",H.prototype.msg_type=570,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").int16("reserved_0").int16("reserved_1").int8("reserved_2").int8("count_before").uint16("reserved_3").uint16("reserved_4").uint16("ref_wn").uint8("ref_dn").int8("count_after"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["reserved_0","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_1","writeInt16LE",2]),H.prototype.fieldSpec.push(["reserved_2","writeInt8",1]),H.prototype.fieldSpec.push(["count_before","writeInt8",1]),H.prototype.fieldSpec.push(["reserved_3","writeUInt16LE",2]),H.prototype.fieldSpec.push(["reserved_4","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),H.prototype.fieldSpec.push(["count_after","writeInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",V.prototype.msg_type=580,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint8("ssr_iod").string("sn",{length:32}).string("tn",{length:32}).uint8("sin").uint16("utn").uint16("re_t0").int32("delta_X0").int32("delta_Y0").int32("delta_Z0").int32("theta_01").int32("theta_02").int32("theta_03").int32("scale").int32("dot_delta_X0").int32("dot_delta_Y0").int32("dot_delta_Z0").int32("dot_theta_01").int32("dot_theta_02").int32("dot_theta_03").int16("dot_scale"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["sn","string",32]),V.prototype.fieldSpec.push(["tn","string",32]),V.prototype.fieldSpec.push(["sin","writeUInt8",1]),V.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),V.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["scale","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_POSE_RELATIVE",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_POSE_RELATIVE",Y.prototype.msg_type=581,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").uint32("tow").uint8("sensor_id").uint32("timestamp_1").uint32("timestamp_2").array("trans",{length:3,type:"int32le"}).int32("w").int32("x").int32("y").int32("z").floatle("cov_r_x_x").floatle("cov_r_x_y").floatle("cov_r_x_z").floatle("cov_r_y_y").floatle("cov_r_y_z").floatle("cov_r_z_z").floatle("cov_c_x_x").floatle("cov_c_x_y").floatle("cov_c_x_z").floatle("cov_c_y_y").floatle("cov_c_y_z").floatle("cov_c_z_z").uint8("flags"),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["sensor_id","writeUInt8",1]),Y.prototype.fieldSpec.push(["timestamp_1","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["timestamp_2","writeUInt32LE",4]),Y.prototype.fieldSpec.push(["trans","array","writeInt32LE",function(){return 4},3]),Y.prototype.fieldSpec.push(["w","writeInt32LE",4]),Y.prototype.fieldSpec.push(["x","writeInt32LE",4]),Y.prototype.fieldSpec.push(["y","writeInt32LE",4]),Y.prototype.fieldSpec.push(["z","writeInt32LE",4]),Y.prototype.fieldSpec.push(["cov_r_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_r_z_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_x","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_x_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_y","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_y_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["cov_c_z_z","writeFloatLE",4]),Y.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={258:i,MsgGpsTime:i,260:s,MsgGpsTimeGnss:s,259:n,MsgUtcTime:n,261:a,MsgUtcTimeGnss:a,520:l,MsgDops:l,521:c,MsgPosEcef:c,532:u,MsgPosEcefCov:u,522:y,MsgPosLlh:y,529:f,MsgPosLlhCov:f,EstimatedHorizontalErrorEllipse:h,536:d,MsgPosLlhAcc:d,523:_,MsgBaselineEcef:_,524:S,MsgBaselineNed:S,525:g,MsgVelEcef:g,533:w,MsgVelEcefCov:w,526:E,MsgVelNed:E,530:m,MsgVelNedCov:m,553:b,MsgPosEcefGnss:b,564:I,MsgPosEcefCovGnss:I,554:L,MsgPosLlhGnss:L,561:T,MsgPosLlhCovGnss:T,557:U,MsgVelEcefGnss:U,565:v,MsgVelEcefCovGnss:v,558:M,MsgVelNedGnss:M,562:D,MsgVelNedCovGnss:D,531:O,MsgVelBody:O,540:G,MsgVelCog:G,528:A,MsgAgeCorrections:A,256:C,MsgGpsTimeDepA:C,518:R,MsgDopsDepA:R,512:P,MsgPosEcefDepA:P,513:N,MsgPosLlhDepA:N,514:j,MsgBaselineEcefDepA:j,515:x,MsgBaselineNedDepA:x,516:F,MsgVelEcefDepA:F,517:k,MsgVelNedDepA:k,519:B,MsgBaselineHeadingDepA:B,534:q,MsgProtectionLevelDepA:q,535:z,MsgProtectionLevel:z,570:H,MsgUtcLeapSecond:H,580:V,MsgReferenceFrameParam:V,581:Y,MsgPoseRelative:Y}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_NDB_EVENT",s.prototype.msg_type=1024,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("recv_time").uint8("event").uint8("object_type").uint8("result").uint8("data_source").nest("object_sid",{type:i.prototype.parser}).nest("src_sid",{type:i.prototype.parser}).uint16("original_sender"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["event","writeUInt8",1]),s.prototype.fieldSpec.push(["object_type","writeUInt8",1]),s.prototype.fieldSpec.push(["result","writeUInt8",1]),s.prototype.fieldSpec.push(["data_source","writeUInt8",1]),s.prototype.fieldSpec.push(["object_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["src_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["original_sender","writeUInt16LE",2]),e.exports={1024:s,MsgNdbEvent:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=p(0).GPSTimeSec,u=(p(0).SvId,function(e,t){return r.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(r.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:a.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="Doppler",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("i").uint8("f"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["i","writeInt16LE",2]),y.prototype.fieldSpec.push(["f","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="PackedObsContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let h=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),h.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_OBS",d.prototype.msg_type=74,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_LLH",_.prototype.msg_type=68,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").doublele("lat").doublele("lon").doublele("height"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),_.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),_.prototype.fieldSpec.push(["height","writeDoubleLE",8]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_ECEF",S.prototype.msg_type=72,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").doublele("x").doublele("y").doublele("z"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["x","writeDoubleLE",8]),S.prototype.fieldSpec.push(["y","writeDoubleLE",8]),S.prototype.fieldSpec.push(["z","writeDoubleLE",8]);let g=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),g.prototype.fieldSpec.push(["ura","writeFloatLE",4]),g.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),g.prototype.fieldSpec.push(["valid","writeUInt8",1]),g.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),w.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),w.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),w.prototype.fieldSpec.push(["valid","writeUInt8",1]),w.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",l.prototype.fieldSpec]),E.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),E.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),E.prototype.fieldSpec.push(["valid","writeUInt8",1]),E.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_E",m.prototype.msg_type=129,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:l.prototype.parser}).uint8("iode").uint16("iodc"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),m.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),m.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["w","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),m.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_F",b.prototype.msg_type=134,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),b.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),b.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),b.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["w","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),b.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS",I.prototype.msg_type=138,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),I.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),I.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["w","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af0","writeFloatLE",4]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_QZSS",L.prototype.msg_type=142,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),L.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),L.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["w","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af0","writeFloatLE",4]),L.prototype.fieldSpec.push(["af1","writeFloatLE",4]),L.prototype.fieldSpec.push(["af2","writeFloatLE",4]),L.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_BDS",T.prototype.msg_type=137,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd1").floatle("tgd2").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),T.prototype.fieldSpec.push(["tgd2","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),T.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),T.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["w","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af1","writeFloatLE",4]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt8",1]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",U.prototype.msg_type=149,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),U.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),U.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),U.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),U.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["w","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af2","writeFloatLE",4]),U.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),U.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),U.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",v.prototype.msg_type=141,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),v.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),v.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),v.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["w","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),v.prototype.fieldSpec.push(["source","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",M.prototype.msg_type=130,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),M.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),M.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",D.prototype.msg_type=131,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),D.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),D.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),D.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",O.prototype.msg_type=132,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),O.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),O.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",G.prototype.msg_type=140,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"floatle"}).array("acc",{length:3,type:"floatle"}).floatle("a_gf0").floatle("a_gf1"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),G.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",A.prototype.msg_type=133,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),A.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),A.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",C.prototype.msg_type=135,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),C.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),C.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["fcn","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",R.prototype.msg_type=136,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn").uint8("iod"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),R.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),R.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["fcn","writeUInt8",1]),R.prototype.fieldSpec.push(["iod","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO",P.prototype.msg_type=139,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("gamma").floatle("tau").floatle("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"floatle"}).uint8("fcn").uint8("iod"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),P.prototype.fieldSpec.push(["gamma","writeFloatLE",4]),P.prototype.fieldSpec.push(["tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["d_tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),P.prototype.fieldSpec.push(["fcn","writeUInt8",1]),P.prototype.fieldSpec.push(["iod","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",N.prototype.msg_type=128,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),N.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),N.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["w","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["valid","writeUInt8",1]),N.prototype.fieldSpec.push(["healthy","writeUInt8",1]),N.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",j.prototype.msg_type=26,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),j.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),j.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["w","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["valid","writeUInt8",1]),j.prototype.fieldSpec.push(["healthy","writeUInt8",1]),j.prototype.fieldSpec.push(["prn","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_B",x.prototype.msg_type=70,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn").uint8("iode"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),x.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),x.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["w","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["valid","writeUInt8",1]),x.prototype.fieldSpec.push(["healthy","writeUInt8",1]),x.prototype.fieldSpec.push(["prn","writeUInt8",1]),x.prototype.fieldSpec.push(["iode","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_C",F.prototype.msg_type=71,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),F.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),F.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),F.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["w","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),F.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),F.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),F.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),F.prototype.fieldSpec.push(["valid","writeUInt8",1]),F.prototype.fieldSpec.push(["healthy","writeUInt8",1]),F.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),F.prototype.fieldSpec.push(["iode","writeUInt8",1]),F.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),F.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let k=function(e,t){return r.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="ObservationHeaderDep",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("t",{type:l.prototype.parser}).uint8("n_obs"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["t",l.prototype.fieldSpec]),k.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="CarrierPhaseDepA",B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["i","writeInt32LE",4]),B.prototype.fieldSpec.push(["f","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepA",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").uint8("prn"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["P","writeUInt32LE",4]),q.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),q.prototype.fieldSpec.push(["cn0","writeUInt8",1]),q.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),q.prototype.fieldSpec.push(["prn","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepB",z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["P","writeUInt32LE",4]),z.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),z.prototype.fieldSpec.push(["cn0","writeUInt8",1]),z.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let H=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",V.prototype.msg_type=69,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),V.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",Y.prototype.msg_type=67,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);let W=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_C",W.prototype.msg_type=73,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:k.prototype.parser}).array("obs",{type:H.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",k.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",H.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Q=function(e,t){return r.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(r.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).doublele("a0").doublele("a1").doublele("a2").doublele("a3").doublele("b0").doublele("b1").doublele("b2").doublele("b3"),Q.prototype.fieldSpec=[],Q.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Q.prototype.fieldSpec.push(["a0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a3","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b3","writeDoubleLE",8]);let K=function(e,t){return r.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(r.prototype)).messageType="MSG_SV_CONFIGURATION_GPS_DEP",K.prototype.msg_type=145,K.prototype.constructor=K,K.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);let X=function(e,t){return r.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(r.prototype)).messageType="GnssCapb",X.prototype.constructor=X,X.prototype.parser=(new o).endianess("little").uint64("gps_active").uint64("gps_l2c").uint64("gps_l5").uint32("glo_active").uint32("glo_l2of").uint32("glo_l3").uint64("sbas_active").uint64("sbas_l5").uint64("bds_active").uint64("bds_d2nav").uint64("bds_b2").uint64("bds_b2a").uint32("qzss_active").uint64("gal_active").uint64("gal_e5"),X.prototype.fieldSpec=[],X.prototype.fieldSpec.push(["gps_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l2c","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["glo_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l2of","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l3","writeUInt32LE",4]),X.prototype.fieldSpec.push(["sbas_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["sbas_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_d2nav","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2a","writeUInt64LE",8]),X.prototype.fieldSpec.push(["qzss_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["gal_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gal_e5","writeUInt64LE",8]);let J=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",J.prototype.msg_type=150,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",Z.prototype.msg_type=146,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["prn","writeUInt8",1]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",$.prototype.msg_type=147,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:n.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),$.prototype.fieldSpec.push(["valid","writeUInt8",1]),$.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let ee=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY",ee.prototype.msg_type=148,ee.prototype.constructor=ee,ee.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:s.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["valid","writeUInt8",1]),ee.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let te=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),te.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),te.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),te.prototype.fieldSpec.push(["valid","writeUInt8",1]),te.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let pe=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContentDep",pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),pe.prototype.fieldSpec.push(["valid","writeUInt8",1]),pe.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let re=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS_DEP",re.prototype.msg_type=112,re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),re.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),re.prototype.fieldSpec.push(["w","writeDoubleLE",8]),re.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let oe=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS",oe.prototype.msg_type=114,oe.prototype.constructor=oe,oe.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),oe.prototype.fieldSpec=[],oe.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),oe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let ie=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO_DEP",ie.prototype.msg_type=113,ie.prototype.constructor=ie,ie.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),ie.prototype.fieldSpec=[],ie.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),ie.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["i","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let se=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO",se.prototype.msg_type=115,se.prototype.constructor=se,se.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),se.prototype.fieldSpec=[],se.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),se.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["i","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),se.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),se.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let ne=function(e,t){return r.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(r.prototype)).messageType="MSG_GLO_BIASES",ne.prototype.msg_type=117,ne.prototype.constructor=ne,ne.prototype.parser=(new o).endianess("little").uint8("mask").int16("l1ca_bias").int16("l1p_bias").int16("l2ca_bias").int16("l2p_bias"),ne.prototype.fieldSpec=[],ne.prototype.fieldSpec.push(["mask","writeUInt8",1]),ne.prototype.fieldSpec.push(["l1ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l1p_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2p_bias","writeInt16LE",2]);let ae=function(e,t){return r.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(r.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);let le=function(e,t){return r.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(r.prototype)).messageType="MSG_SV_AZ_EL",le.prototype.msg_type=151,le.prototype.constructor=le,le.prototype.parser=(new o).endianess("little").array("azel",{type:ae.prototype.parser,readUntil:"eof"}),le.prototype.fieldSpec=[],le.prototype.fieldSpec.push(["azel","array",ae.prototype.fieldSpec,function(){return this.fields.array.length},null]);let ce=function(e,t){return r.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(r.prototype)).messageType="MSG_OSR",ce.prototype.msg_type=1600,ce.prototype.constructor=ce,ce.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:h.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:f,PackedOsrContent:h,74:d,MsgObs:d,68:_,MsgBasePosLlh:_,72:S,MsgBasePosEcef:S,EphemerisCommonContent:g,EphemerisCommonContentDepB:w,EphemerisCommonContentDepA:E,129:m,MsgEphemerisGpsDepE:m,134:b,MsgEphemerisGpsDepF:b,138:I,MsgEphemerisGps:I,142:L,MsgEphemerisQzss:L,137:T,MsgEphemerisBds:T,149:U,MsgEphemerisGalDepA:U,141:v,MsgEphemerisGal:v,130:M,MsgEphemerisSbasDepA:M,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:C,MsgEphemerisGloDepC:C,136:R,MsgEphemerisGloDepD:R,139:P,MsgEphemerisGlo:P,128:N,MsgEphemerisDepD:N,26:j,MsgEphemerisDepA:j,70:x,MsgEphemerisDepB:x,71:F,MsgEphemerisDepC:F,ObservationHeaderDep:k,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:H,69:V,MsgObsDepA:V,67:Y,MsgObsDepB:Y,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:Z,MsgGroupDelayDepA:Z,147:$,MsgGroupDelayDepB:$,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:pe,112:re,MsgAlmanacGpsDep:re,114:oe,MsgAlmanacGps:oe,113:ie,MsgAlmanacGloDep:ie,115:se,MsgAlmanacGlo:se,117:ne,MsgGloBiases:ne,SvAzEl:ae,151:le,MsgSvAzEl:le,1600:ce,MsgOsr:ce}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING",i.prototype.msg_type=527,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),i.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_QUAT",s.prototype.msg_type=544,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("tow").int32("w").int32("x").int32("y").int32("z").floatle("w_accuracy").floatle("x_accuracy").floatle("y_accuracy").floatle("z_accuracy").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["w","writeInt32LE",4]),s.prototype.fieldSpec.push(["x","writeInt32LE",4]),s.prototype.fieldSpec.push(["y","writeInt32LE",4]),s.prototype.fieldSpec.push(["z","writeInt32LE",4]),s.prototype.fieldSpec.push(["w_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["x_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["y_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["z_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_EULER",n.prototype.msg_type=545,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").int32("roll").int32("pitch").int32("yaw").floatle("roll_accuracy").floatle("pitch_accuracy").floatle("yaw_accuracy").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["roll","writeInt32LE",4]),n.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),n.prototype.fieldSpec.push(["yaw","writeInt32LE",4]),n.prototype.fieldSpec.push(["roll_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["pitch_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["yaw_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ANGULAR_RATE",a.prototype.msg_type=546,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeInt32LE",4]),a.prototype.fieldSpec.push(["y","writeInt32LE",4]),a.prototype.fieldSpec.push(["z","writeInt32LE",4]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={527:i,MsgBaselineHeading:i,544:s,MsgOrientQuat:s,545:n,MsgOrientEuler:n,546:a,MsgAngularRate:a}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=p(0).GPSTime,a=p(0).GPSTimeDep,l=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];let c=function(e,t){return r.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];let u=function(e,t){return r.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_RESET",u.prototype.msg_type=182,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CW_RESULTS",f.prototype.msg_type=192,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",h.prototype.msg_type=193,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",d.prototype.msg_type=34,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("filter"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["filter","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];let S=function(e,t){return r.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_THREAD_STATE",S.prototype.msg_type=23,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").string("name",{length:20}).uint16("cpu").uint32("stack_free"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["name","string",20]),S.prototype.fieldSpec.push(["cpu","writeUInt16LE",2]),S.prototype.fieldSpec.push(["stack_free","writeUInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="UARTChannel",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").floatle("tx_throughput").floatle("rx_throughput").uint16("crc_error_count").uint16("io_error_count").uint8("tx_buffer_level").uint8("rx_buffer_level"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["rx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["crc_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["io_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tx_buffer_level","writeUInt8",1]),g.prototype.fieldSpec.push(["rx_buffer_level","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="Period",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").int32("avg").int32("pmin").int32("pmax").int32("current"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["avg","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmin","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmax","writeInt32LE",4]),w.prototype.fieldSpec.push(["current","writeInt32LE",4]);let E=function(e,t){return r.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="Latency",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").int32("avg").int32("lmin").int32("lmax").int32("current"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["avg","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmin","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmax","writeInt32LE",4]),E.prototype.fieldSpec.push(["current","writeInt32LE",4]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE",m.prototype.msg_type=29,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}).nest("obs_period",{type:w.prototype.parser}),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["obs_period",w.prototype.fieldSpec]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE_DEPA",b.prototype.msg_type=24,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_IAR_STATE",I.prototype.msg_type=25,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("num_hyps"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE",L.prototype.msg_type=43,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:i.prototype.parser}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["mask","writeUInt8",1]),L.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE_DEP",T.prototype.msg_type=27,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["mask","writeUInt8",1]),T.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",U.prototype.msg_type=181,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),U.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),U.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",v.prototype.msg_type=184,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),v.prototype.fieldSpec.push(["command","string",null]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",M.prototype.msg_type=185,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["code","writeInt32LE",4]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",D.prototype.msg_type=188,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),D.prototype.fieldSpec.push(["line","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",O.prototype.msg_type=186,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little"),O.prototype.fieldSpec=[];let G=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",G.prototype.msg_type=187,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").array("ipv4_address",{length:4,type:"uint8"}).uint8("ipv4_mask_size").array("ipv6_address",{length:16,type:"uint8"}).uint8("ipv6_mask_size").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}).uint32("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),G.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),G.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]),G.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let A=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="NetworkUsage",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),A.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["interface_name","string",16]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",C.prototype.msg_type=189,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").array("interfaces",{type:A.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",R.prototype.msg_type=190,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),R.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),R.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN_DEP",P.prototype.msg_type=80,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:a.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),P.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),P.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",N.prototype.msg_type=81,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:n.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),N.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",j.prototype.msg_type=191,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),j.prototype.fieldSpec.push(["if_gain","array","writeInt8",function(){return 1},8]),e.exports={105:l,MsgAlmanac:l,104:c,MsgSetTime:c,182:u,MsgReset:u,178:y,MsgResetDep:y,192:f,MsgCwResults:f,193:h,MsgCwStart:h,34:d,MsgResetFilters:d,35:_,MsgInitBaseDep:_,23:S,MsgThreadState:S,UARTChannel:g,Period:w,Latency:E,29:m,MsgUartState:m,24:b,MsgUartStateDepa:b,25:I,MsgIarState:I,43:L,MsgMaskSatellite:L,27:T,MsgMaskSatelliteDep:T,181:U,MsgDeviceMonitor:U,184:v,MsgCommandReq:v,185:M,MsgCommandResp:M,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:C,MsgNetworkBandwidthUsage:C,190:R,MsgCellModemStatus:R,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_POINT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_POINT",i.prototype.msg_type=52992,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("total_time").uint16("num_executions").uint32("min").uint32("max").uint64("return_addr").uint64("id").uint64("slice_time").uint16("line").string("func",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["total_time","writeUInt32LE",4]),i.prototype.fieldSpec.push(["num_executions","writeUInt16LE",2]),i.prototype.fieldSpec.push(["min","writeUInt32LE",4]),i.prototype.fieldSpec.push(["max","writeUInt32LE",4]),i.prototype.fieldSpec.push(["return_addr","writeUInt64LE",8]),i.prototype.fieldSpec.push(["id","writeUInt64LE",8]),i.prototype.fieldSpec.push(["slice_time","writeUInt64LE",8]),i.prototype.fieldSpec.push(["line","writeUInt16LE",2]),i.prototype.fieldSpec.push(["func","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_SYSTEM_INFO",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_SYSTEM_INFO",s.prototype.msg_type=52993,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("n_threads").uint32("heap_usage"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["age","writeUInt64LE",8]),s.prototype.fieldSpec.push(["n_threads","writeUInt8",1]),s.prototype.fieldSpec.push(["heap_usage","writeUInt32LE",4]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_THREAD_INFO",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_THREAD_INFO",n.prototype.msg_type=52994,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint64("total_cpu_time").uint64("age").uint8("state").uint32("stack_size").uint32("stack_usage").string("name",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["total_cpu_time","writeUInt64LE",8]),n.prototype.fieldSpec.push(["age","writeUInt64LE",8]),n.prototype.fieldSpec.push(["state","writeUInt8",1]),n.prototype.fieldSpec.push(["stack_size","writeUInt32LE",4]),n.prototype.fieldSpec.push(["stack_usage","writeUInt32LE",4]),n.prototype.fieldSpec.push(["name","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="ResourceBucket",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="ResourceBucket",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("name",{length:21}).uint8("thread").uint8("mutex").uint8("cv").uint8("io").uint32("heap_bytes_alloc").uint32("heap_bytes_free").uint32("io_write").uint32("io_read"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["name","string",21]),a.prototype.fieldSpec.push(["thread","writeUInt8",1]),a.prototype.fieldSpec.push(["mutex","writeUInt8",1]),a.prototype.fieldSpec.push(["cv","writeUInt8",1]),a.prototype.fieldSpec.push(["io","writeUInt8",1]),a.prototype.fieldSpec.push(["heap_bytes_alloc","writeUInt32LE",4]),a.prototype.fieldSpec.push(["heap_bytes_free","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_write","writeUInt32LE",4]),a.prototype.fieldSpec.push(["io_read","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_PROFILING_RESOURCE_COUNTER",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_PROFILING_RESOURCE_COUNTER",l.prototype.msg_type=52995,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("seq_no").uint8("seq_len").array("buckets",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["seq_no","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_len","writeUInt8",1]),l.prototype.fieldSpec.push(["buckets","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={52992:i,MsgMeasurementPoint:i,52993:s,MsgProfilingSystemInfo:s,52994:n,MsgProfilingThreadInfo:n,ResourceBucket:a,52995:l,MsgProfilingResourceCounter:l}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_SBAS_RAW",s.prototype.msg_type=30583,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint32("tow").uint8("message_type").array("data",{length:27,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["message_type","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},27]),e.exports={30583:s,MsgSbasRaw:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE",s.prototype.msg_type=160,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["setting","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE_RESP",n.prototype.msg_type=175,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["status","writeUInt8",1]),n.prototype.fieldSpec.push(["setting","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_REQ",a.prototype.msg_type=164,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["setting","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_RESP",l.prototype.msg_type=165,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["setting","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",c.prototype.msg_type=162,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("index"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["index","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",u.prototype.msg_type=167,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("index").string("setting",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt16LE",2]),u.prototype.fieldSpec.push(["setting","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",y.prototype.msg_type=166,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER",f.prototype.msg_type=174,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["setting","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",h.prototype.msg_type=431,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["status","writeUInt8",1]),h.prototype.fieldSpec.push(["setting","string",null]),e.exports={161:i,MsgSettingsSave:i,160:s,MsgSettingsWrite:s,175:n,MsgSettingsWriteResp:n,164:a,MsgSettingsReadReq:a,165:l,MsgSettingsReadResp:l,162:c,MsgSettingsReadByIndexReq:c,167:u,MsgSettingsReadByIndexResp:u,166:y,MsgSettingsReadByIndexDone:y,174:f,MsgSettingsRegister:f,431:h,MsgSettingsRegisterResp:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="UtcTime",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="UtcTime",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["year","writeUInt16LE",2]),i.prototype.fieldSpec.push(["month","writeUInt8",1]),i.prototype.fieldSpec.push(["day","writeUInt8",1]),i.prototype.fieldSpec.push(["hours","writeUInt8",1]),i.prototype.fieldSpec.push(["minutes","writeUInt8",1]),i.prototype.fieldSpec.push(["seconds","writeUInt8",1]),i.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let s=function(e,t){return r.call(this,e),this.messageType="ECDSASignature",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="ECDSASignature",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("len").array("data",{length:72,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["len","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},72]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_CERTIFICATE",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_CERTIFICATE",n.prototype.msg_type=3076,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("n_msg").array("certificate_id",{length:4,type:"uint8"}).uint8("flags").array("certificate_bytes",{type:"uint8",readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN",a.prototype.msg_type=3081,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).nest("signature",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),a.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_CERTIFICATE_CHAIN_DEP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_CERTIFICATE_CHAIN_DEP",l.prototype.msg_type=3077,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("root_certificate",{length:20,type:"uint8"}).array("intermediate_certificate",{length:20,type:"uint8"}).array("corrections_certificate",{length:20,type:"uint8"}).nest("expiration",{type:i.prototype.parser}).array("signature",{length:64,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["root_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["intermediate_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["corrections_certificate","array","writeUInt8",function(){return 1},20]),l.prototype.fieldSpec.push(["expiration",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_AES_CMAC_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_AES_CMAC_SIGNATURE",c.prototype.msg_type=3088,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:16,type:"uint8"}).uint8("flags").array("signed_messages",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),c.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),c.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},16]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]),c.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE",u.prototype.msg_type=3080,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).nest("signature",{type:s.prototype.parser}).array("signed_messages",{type:"uint8",readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt8",1]),u.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),u.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),u.prototype.fieldSpec.push(["signature",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_B",y.prototype.msg_type=3079,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).uint8("n_signature_bytes").array("signature",{length:72,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt8",1]),y.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),y.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),y.prototype.fieldSpec.push(["n_signature_bytes","writeUInt8",1]),y.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},72]),y.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ECDSA_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ECDSA_SIGNATURE_DEP_A",f.prototype.msg_type=3078,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("flags").uint8("stream_counter").uint8("on_demand_counter").array("certificate_id",{length:4,type:"uint8"}).array("signature",{length:64,type:"uint8"}).array("signed_messages",{type:"uint8",readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),f.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),f.prototype.fieldSpec.push(["certificate_id","array","writeUInt8",function(){return 1},4]),f.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),f.prototype.fieldSpec.push(["signed_messages","array","writeUInt8",function(){return 1},null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_CERTIFICATE_DEP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_CERTIFICATE_DEP",h.prototype.msg_type=3074,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("n_msg").array("fingerprint",{length:20,type:"uint8"}).array("certificate_bytes",{type:"uint8",readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["n_msg","writeUInt8",1]),h.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),h.prototype.fieldSpec.push(["certificate_bytes","array","writeUInt8",function(){return 1},null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_A",d.prototype.msg_type=3073,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),d.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),d.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_ED25519_SIGNATURE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_ED25519_SIGNATURE_DEP_B",_.prototype.msg_type=3075,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint8("stream_counter").uint8("on_demand_counter").array("signature",{length:64,type:"uint8"}).array("fingerprint",{length:20,type:"uint8"}).array("signed_messages",{type:"uint32le",readUntil:"eof"}),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["stream_counter","writeUInt8",1]),_.prototype.fieldSpec.push(["on_demand_counter","writeUInt8",1]),_.prototype.fieldSpec.push(["signature","array","writeUInt8",function(){return 1},64]),_.prototype.fieldSpec.push(["fingerprint","array","writeUInt8",function(){return 1},20]),_.prototype.fieldSpec.push(["signed_messages","array","writeUInt32LE",function(){return 4},null]),e.exports={UtcTime:i,ECDSASignature:s,3076:n,MsgEcdsaCertificate:n,3081:a,MsgCertificateChain:a,3077:l,MsgCertificateChainDep:l,3088:c,MsgAesCmacSignature:c,3080:u,MsgEcdsaSignature:u,3079:y,MsgEcdsaSignatureDepB:y,3078:f,MsgEcdsaSignatureDepA:f,3074:h,MsgEd25519CertificateDep:h,3073:d,MsgEd25519SignatureDepA:d,3075:_,MsgEd25519SignatureDepB:_}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="SolutionInputType",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="SolutionInputType",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sensor_type").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META_DEP_A",s.prototype.msg_type=65295,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("pdop").uint16("hdop").uint16("vdop").uint8("n_sats").uint16("age_corrections").uint8("alignment_status").uint32("last_used_gnss_pos_tow").uint32("last_used_gnss_vel_tow").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),s.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),s.prototype.fieldSpec.push(["alignment_status","writeUInt8",1]),s.prototype.fieldSpec.push(["last_used_gnss_pos_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["last_used_gnss_vel_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META",n.prototype.msg_type=65294,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("pdop").uint16("hdop").uint16("vdop").uint16("age_corrections").uint32("age_gnss").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_gnss","writeUInt32LE",4]),n.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let a=function(e,t){return r.call(this,e),this.messageType="GNSSInputType",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GNSSInputType",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="IMUInputType",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="IMUInputType",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="OdoInputType",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="OdoInputType",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={SolutionInputType:i,65295:s,MsgSolnMetaDepA:s,65294:n,MsgSolnMeta:n,GNSSInputType:a,IMUInputType:l,OdoInputType:c}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),n=p(0).SvId,a=function(e,t){return r.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="CodeBiasesContent",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("code").int16("value"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["code","writeUInt8",1]),a.prototype.fieldSpec.push(["value","writeInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="PhaseBiasesContent",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("code").uint8("integer_indicator").uint8("widelane_integer_indicator").uint8("discontinuity_counter").int32("bias"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["code","writeUInt8",1]),l.prototype.fieldSpec.push(["integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["widelane_integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["discontinuity_counter","writeUInt8",1]),l.prototype.fieldSpec.push(["bias","writeInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="STECHeader",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),c.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),u.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),u.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),u.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),u.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="STECSatElement",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).uint8("stec_quality_indicator").array("stec_coeff",{length:4,type:"int16le"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["stec_quality_indicator","writeUInt8",1]),y.prototype.fieldSpec.push(["stec_coeff","array","writeInt16LE",function(){return 2},4]);let f=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrectionNoStd",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]),h.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),d.prototype.fieldSpec.push(["residual","writeInt16LE",2]);let _=function(e,t){return r.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="STECResidual",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual").uint8("stddev"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),_.prototype.fieldSpec.push(["residual","writeInt16LE",2]),_.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",S.prototype.msg_type=1501,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint32("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),S.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),S.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),S.prototype.fieldSpec.push(["radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["along","writeInt32LE",4]),S.prototype.fieldSpec.push(["cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["c0","writeInt32LE",4]),S.prototype.fieldSpec.push(["c1","writeInt32LE",4]),S.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_BIASES",g.prototype.msg_type=1505,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").array("biases",{type:a.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),g.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),g.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_SSR_PHASE_BIASES",w.prototype.msg_type=1510,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("dispersive_bias").uint8("mw_consistency").uint16("yaw").int8("yaw_rate").array("biases",{type:l.prototype.parser,readUntil:"eof"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),w.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),w.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),w.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),w.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),w.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),w.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP",E.prototype.msg_type=1531,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),E.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let m=function(e,t){return r.call(this,e),this.messageType="BoundsHeader",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="BoundsHeader",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("sol_id"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),m.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["sol_id","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION",b.prototype.msg_type=1533,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("n_sats").array("stec_sat_list",{type:y.prototype.parser,length:"n_sats"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),b.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),b.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",I.prototype.msg_type=1532,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["index","writeUInt16LE",2]),I.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),I.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let L=function(e,t){return r.call(this,e),this.messageType="STECSatElementIntegrity",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="STECSatElementIntegrity",L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("stec_residual",{type:_.prototype.parser}).uint8("stec_bound_mu").uint8("stec_bound_sig").uint8("stec_bound_mu_dot").uint8("stec_bound_sig_dot"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["stec_residual",_.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_bound_mu","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_mu_dot","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig_dot","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",T.prototype.msg_type=1534,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("tropo_qi").uint16("grid_point_id").nest("tropo_delay_correction",{type:h.prototype.parser}).uint8("tropo_v_hydro_bound_mu").uint8("tropo_v_hydro_bound_sig").uint8("tropo_v_wet_bound_mu").uint8("tropo_v_wet_bound_sig").uint8("n_sats").array("stec_sat_list",{type:L.prototype.parser,length:"n_sats"}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),T.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),T.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_qi","writeUInt8",1]),T.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["stec_sat_list","array",L.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_A",U.prototype.msg_type=1526,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),U.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),U.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),U.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP_B",v.prototype.msg_type=1527,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),v.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),v.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),v.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),v.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",M.prototype.msg_type=1528,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_atmo").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),M.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),M.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),M.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),M.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),M.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),M.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),M.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),M.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),M.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let D=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("sat_info").uint16("svn").array("pco",{length:3,type:"int16le"}).array("pcv",{length:21,type:"int8"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),D.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),D.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),D.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),D.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC_DEP",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC_DEP",O.prototype.msg_type=1540,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").array("apc",{type:D.prototype.parser,readUntil:"eof"}),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",G.prototype.msg_type=1541,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("update_interval").uint8("sol_id").uint8("iod_ssr").array("apc",{type:D.prototype.parser,readUntil:"eof"}),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["sol_id","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),G.prototype.fieldSpec.push(["apc","array",D.prototype.fieldSpec,function(){return this.fields.array.length},null]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",A.prototype.msg_type=1500,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),A.prototype.fieldSpec.push(["iod","writeUInt8",1]),A.prototype.fieldSpec.push(["radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["along","writeInt32LE",4]),A.prototype.fieldSpec.push(["cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),A.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),A.prototype.fieldSpec.push(["c0","writeInt32LE",4]),A.prototype.fieldSpec.push(["c1","writeInt32LE",4]),A.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let C=function(e,t){return r.call(this,e),this.messageType="STECHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="STECHeaderDepA",C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),C.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),C.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),C.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),C.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),R.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),R.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),R.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),R.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),R.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="GridDefinitionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="GridDefinitionHeaderDepA",P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint8("region_size_inverse").uint16("area_width").uint16("lat_nw_corner_enc").uint16("lon_nw_corner_enc").uint8("num_msgs").uint8("seq_num"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),P.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),P.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),P.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",N.prototype.msg_type=1515,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",j.prototype.msg_type=1520,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("header",{type:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),j.prototype.fieldSpec.push(["index","writeUInt16LE",2]),j.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),j.prototype.fieldSpec.push(["stec_residuals","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",x.prototype.msg_type=1530,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").nest("header",{type:R.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["header",R.prototype.fieldSpec]),x.prototype.fieldSpec.push(["index","writeUInt16LE",2]),x.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),x.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRID_DEFINITION_DEP_A",F.prototype.msg_type=1525,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").nest("header",{type:P.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["header",P.prototype.fieldSpec]),F.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]);let k=function(e,t){return r.call(this,e),this.messageType="OrbitClockBound",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="OrbitClockBound",k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("orb_radial_bound_mu").uint8("orb_along_bound_mu").uint8("orb_cross_bound_mu").uint8("orb_radial_bound_sig").uint8("orb_along_bound_sig").uint8("orb_cross_bound_sig").uint8("clock_bound_mu").uint8("clock_bound_sig"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_radial_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_along_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["orb_cross_bound_sig","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_mu","writeUInt8",1]),k.prototype.fieldSpec.push(["clock_bound_sig","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",B.prototype.msg_type=1502,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats").array("orbit_clock_bounds",{type:k.prototype.parser,length:"n_sats"}),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),B.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),B.prototype.fieldSpec.push(["const_id","writeUInt8",1]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["orbit_clock_bounds","array",k.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let q=function(e,t){return r.call(this,e),this.messageType="CodePhaseBiasesSatSig",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="CodePhaseBiasesSatSig",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("signal_id").uint8("code_bias_bound_mu").uint8("code_bias_bound_sig").uint8("phase_bias_bound_mu").uint8("phase_bias_bound_sig"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),q.prototype.fieldSpec.push(["signal_id","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["code_bias_bound_sig","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_mu","writeUInt8",1]),q.prototype.fieldSpec.push(["phase_bias_bound_sig","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",z.prototype.msg_type=1516,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats_signals").array("satellites_signals",{type:q.prototype.parser,length:"n_sats_signals"}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),z.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),z.prototype.fieldSpec.push(["const_id","writeUInt8",1]),z.prototype.fieldSpec.push(["n_sats_signals","writeUInt8",1]),z.prototype.fieldSpec.push(["satellites_signals","array",q.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats_signals"]);let H=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint8("orb_radial_bound_mu_dot").uint8("orb_along_bound_mu_dot").uint8("orb_cross_bound_mu_dot").uint8("orb_radial_bound_sig_dot").uint8("orb_along_bound_sig_dot").uint8("orb_cross_bound_sig_dot").uint8("clock_bound_mu_dot").uint8("clock_bound_sig_dot"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),H.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",V.prototype.msg_type=1503,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint64("sat_bitmask").nest("orbit_clock_bounds_degradation",{type:H.prototype.parser}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["const_id","writeUInt8",1]),V.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),V.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",H.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:f,TroposphericDelayCorrection:h,STECResidualNoStd:d,STECResidual:_,1501:S,MsgSsrOrbitClock:S,1505:g,MsgSsrCodeBiases:g,1510:w,MsgSsrPhaseBiases:w,1531:E,MsgSsrStecCorrectionDep:E,BoundsHeader:m,1533:b,MsgSsrStecCorrection:b,1532:I,MsgSsrGriddedCorrection:I,STECSatElementIntegrity:L,1534:T,MsgSsrGriddedCorrectionBounds:T,1526:U,MsgSsrTileDefinitionDepA:U,1527:v,MsgSsrTileDefinitionDepB:v,1528:M,MsgSsrTileDefinition:M,SatelliteAPC:D,1540:O,MsgSsrSatelliteApcDep:O,1541:G,MsgSsrSatelliteApc:G,1500:A,MsgSsrOrbitClockDepA:A,STECHeaderDepA:C,GriddedCorrectionHeaderDepA:R,GridDefinitionHeaderDepA:P,1515:N,MsgSsrStecCorrectionDepA:N,1520:j,MsgSsrGriddedCorrectionNoStdDepA:j,1530:x,MsgSsrGriddedCorrectionDepA:x,1525:F,MsgSsrGridDefinitionDepA:F,OrbitClockBound:k,1502:B,MsgSsrOrbitClockBounds:B,CodePhaseBiasesSatSig:q,1516:z,MsgSsrCodePhaseBiasesBounds:z,OrbitClockBoundDegradation:H,1503:V,MsgSsrOrbitClockBoundsDegradation:V}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_STARTUP",i.prototype.msg_type=65280,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("cause").uint8("startup_type").uint16("reserved"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["cause","writeUInt8",1]),i.prototype.fieldSpec.push(["startup_type","writeUInt8",1]),i.prototype.fieldSpec.push(["reserved","writeUInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_DGNSS_STATUS",s.prototype.msg_type=65282,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint16("latency").uint8("num_signals").string("source",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["latency","writeUInt16LE",2]),s.prototype.fieldSpec.push(["num_signals","writeUInt8",1]),s.prototype.fieldSpec.push(["source","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_HEARTBEAT",n.prototype.msg_type=65535,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="SubSystemReport",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="SubSystemReport",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint16("component").uint8("generic").uint8("specific"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["component","writeUInt16LE",2]),a.prototype.fieldSpec.push(["generic","writeUInt8",1]),a.prototype.fieldSpec.push(["specific","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_REPORT",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_REPORT",l.prototype.msg_type=65534,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("sequence").uint32("uptime").array("status",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),l.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),l.prototype.fieldSpec.push(["status","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let c=function(e,t){return r.call(this,e),this.messageType="StatusJournalItem",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="StatusJournalItem",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("uptime").nest("report",{type:a.prototype.parser}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["report",a.prototype.fieldSpec]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_JOURNAL",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_JOURNAL",u.prototype.msg_type=65533,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("total_status_reports").uint8("sequence_descriptor").array("journal",{type:c.prototype.parser,readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),u.prototype.fieldSpec.push(["total_status_reports","writeUInt32LE",4]),u.prototype.fieldSpec.push(["sequence_descriptor","writeUInt8",1]),u.prototype.fieldSpec.push(["journal","array",c.prototype.fieldSpec,function(){return this.fields.array.length},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_INS_STATUS",y.prototype.msg_type=65283,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY",f.prototype.msg_type=65284,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["id","writeUInt8",1]),f.prototype.fieldSpec.push(["telemetry","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",h.prototype.msg_type=65285,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["id","writeUInt8",1]),h.prototype.fieldSpec.push(["telemetry_labels","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",d.prototype.msg_type=65286,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),d.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),d.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),d.prototype.fieldSpec.push(["speed","writeUInt8",1]),d.prototype.fieldSpec.push(["nhc","writeUInt8",1]),d.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_TIME_OFFSET",_.prototype.msg_type=65287,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),_.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),_.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_PPS_TIME",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_PPS_TIME",S.prototype.msg_type=65288,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time","writeUInt64LE",8]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SENSOR_AID_EVENT",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SENSOR_AID_EVENT",g.prototype.msg_type=65289,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("time").uint8("sensor_type").uint16("sensor_id").uint8("sensor_state").uint8("n_available_meas").uint8("n_attempted_meas").uint8("n_accepted_meas").uint32("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time","writeUInt32LE",4]),g.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),g.prototype.fieldSpec.push(["sensor_id","writeUInt16LE",2]),g.prototype.fieldSpec.push(["sensor_state","writeUInt8",1]),g.prototype.fieldSpec.push(["n_available_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_attempted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_accepted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_META",w.prototype.msg_type=65290,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("group_id").uint8("flags").uint8("n_group_msgs").array("group_msgs",{type:"uint16le",length:"n_group_msgs"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["group_id","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]),w.prototype.fieldSpec.push(["n_group_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},"n_group_msgs"]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,SubSystemReport:a,65534:l,MsgStatusReport:l,StatusJournalItem:c,65533:u,MsgStatusJournal:u,65283:y,MsgInsStatus:y,65284:f,MsgCsacTelemetry:f,65285:h,MsgCsacTelemetryLabels:h,65286:d,MsgInsUpdates:d,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",c.prototype.msg_type=33,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:a.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),c.prototype.fieldSpec.push(["tot",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),c.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),c.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),c.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),c.prototype.fieldSpec.push(["acceleration","writeInt8",1]),c.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP",u.prototype.msg_type=17,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:l.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),u.prototype.fieldSpec.push(["tot",l.prototype.fieldSpec]),u.prototype.fieldSpec.push(["P","writeUInt32LE",4]),u.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),u.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),u.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),u.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),u.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),u.prototype.fieldSpec.push(["acceleration","writeInt8",1]),u.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE",f.prototype.msg_type=65,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let h=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MeasurementState",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelation",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("I").int16("Q"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["I","writeInt16LE",2]),_.prototype.fieldSpec.push(["Q","writeInt16LE",2]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ",S.prototype.msg_type=45,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);let g=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelationDep",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").int32("I").int32("Q"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["I","writeInt32LE",4]),g.prototype.fieldSpec.push(["Q","writeInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_B",w.prototype.msg_type=44,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["channel","writeUInt8",1]),w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_A",E.prototype.msg_type=28,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:n.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["channel","writeUInt8",1]),E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let m=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepA",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint8("state").uint8("prn").floatle("cn0"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["state","writeUInt8",1]),m.prototype.fieldSpec.push(["prn","writeUInt8",1]),m.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_A",b.prototype.msg_type=22,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").array("states",{type:m.prototype.parser,readUntil:"eof"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["states","array",m.prototype.fieldSpec,function(){return this.fields.array.length},null]);let I=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepB",I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:n.prototype.parser}).floatle("cn0"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["state","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),I.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_B",L.prototype.msg_type=19,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").array("states",{type:I.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",I.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:f,MsgTrackingState:f,MeasurementState:h,97:d,MsgMeasurementState:d,TrackingChannelCorrelation:_,45:S,MsgTrackingIq:S,TrackingChannelCorrelationDep:g,44:w,MsgTrackingIqDepB:w,28:E,MsgTrackingIqDepA:E,TrackingChannelStateDepA:m,22:b,MsgTrackingStateDepA:b,TrackingChannelStateDepB:I,19:L,MsgTrackingStateDepB:L}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_USER_DATA",i.prototype.msg_type=2048,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").array("contents",{type:"uint8",readUntil:"eof"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]),e.exports={2048:i,MsgUserData:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_ODOMETRY",i.prototype.msg_type=2307,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").int32("velocity").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["velocity","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_WHEELTICK",s.prototype.msg_type=2308,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags").uint8("source").int32("ticks"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["ticks","writeInt32LE",4]),e.exports={2307:i,MsgOdometry:i,2308:s,MsgWheeltick:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="TelemetrySV",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="TelemetrySV",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("az").int8("el").uint8("availability_flags").int16("pseudorange_residual").int16("phase_residual").uint8("outlier_flags").uint8("ephemeris_flags").uint8("correction_flags").nest("sid",{type:i.prototype.parser}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["az","writeUInt8",1]),s.prototype.fieldSpec.push(["el","writeInt8",1]),s.prototype.fieldSpec.push(["availability_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["pseudorange_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["phase_residual","writeInt16LE",2]),s.prototype.fieldSpec.push(["outlier_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["ephemeris_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["correction_flags","writeUInt8",1]),s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_TEL_SV",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_TEL_SV",n.prototype.msg_type=288,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").uint8("n_obs").uint8("origin_flags").array("sv_tel",{type:s.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["n_obs","writeUInt8",1]),n.prototype.fieldSpec.push(["origin_flags","writeUInt8",1]),n.prototype.fieldSpec.push(["sv_tel","array",s.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={TelemetrySV:s,288:n,MsgTelSv:n}}]); \ No newline at end of file diff --git a/javascript/sbp/signing.js b/javascript/sbp/signing.js index 7448e39d6c..6d06a8c745 100644 --- a/javascript/sbp/signing.js +++ b/javascript/sbp/signing.js @@ -223,6 +223,58 @@ MsgCertificateChainDep.prototype.fieldSpec.push(['corrections_certificate', 'arr MsgCertificateChainDep.prototype.fieldSpec.push(['expiration', UtcTime.prototype.fieldSpec]); MsgCertificateChainDep.prototype.fieldSpec.push(['signature', 'array', 'writeUInt8', function () { return 1; }, 64]); +/** + * SBP class for message MSG_AES_CMAC_SIGNATURE (0x0C10). + * + * Digital signature using AES-CMAC 128 algorithm used for data integrity. + * + * Fields in the SBP payload (`sbp.payload`): + * @field stream_counter number (unsigned 8-bit int, 1 byte) Signature message counter. Zero indexed and incremented with each signature + * message. The counter will not increment if this message was in response to an + * on demand request. The counter will roll over after 256 messages. Upon + * connection, the value of the counter may not initially be zero. + * @field on_demand_counter number (unsigned 8-bit int, 1 byte) On demand message counter. Zero indexed and incremented with each signature + * message sent in response to an on demand message. The counter will roll over + * after 256 messages. Upon connection, the value of the counter may not initially + * be zero. + * @field certificate_id array The last 4 bytes of the certificate's SHA-1 fingerprint + * @field signature array Signature + * @field flags number (unsigned 8-bit int, 1 byte) Describes the format of the 'signed messages' field below. + * @field signed_messages array CRCs of the messages covered by this signature. For Skylark, which delivers SBP + * messages wrapped in Swift's proprietary RTCM message, these are the 24-bit CRCs + * from the RTCM message framing. For SBP only streams, this will be 16-bit CRCs + * from the SBP framing. See the `flags` field to determine the type of CRCs + * covered. + * + * @param sbp An SBP object with a payload to be decoded. + */ +let MsgAesCmacSignature = function (sbp, fields) { + SBP.call(this, sbp); + this.messageType = "MSG_AES_CMAC_SIGNATURE"; + this.fields = (fields || this.parser.parse(sbp.payload)); + + return this; +}; +MsgAesCmacSignature.prototype = Object.create(SBP.prototype); +MsgAesCmacSignature.prototype.messageType = "MSG_AES_CMAC_SIGNATURE"; +MsgAesCmacSignature.prototype.msg_type = 0x0C10; +MsgAesCmacSignature.prototype.constructor = MsgAesCmacSignature; +MsgAesCmacSignature.prototype.parser = new Parser() + .endianess('little') + .uint8('stream_counter') + .uint8('on_demand_counter') + .array('certificate_id', { length: 4, type: 'uint8' }) + .array('signature', { length: 16, type: 'uint8' }) + .uint8('flags') + .array('signed_messages', { type: 'uint8', readUntil: 'eof' }); +MsgAesCmacSignature.prototype.fieldSpec = []; +MsgAesCmacSignature.prototype.fieldSpec.push(['stream_counter', 'writeUInt8', 1]); +MsgAesCmacSignature.prototype.fieldSpec.push(['on_demand_counter', 'writeUInt8', 1]); +MsgAesCmacSignature.prototype.fieldSpec.push(['certificate_id', 'array', 'writeUInt8', function () { return 1; }, 4]); +MsgAesCmacSignature.prototype.fieldSpec.push(['signature', 'array', 'writeUInt8', function () { return 1; }, 16]); +MsgAesCmacSignature.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); +MsgAesCmacSignature.prototype.fieldSpec.push(['signed_messages', 'array', 'writeUInt8', function () { return 1; }, null]); + /** * SBP class for message MSG_ECDSA_SIGNATURE (0x0C08). * @@ -505,6 +557,8 @@ module.exports = { MsgCertificateChain: MsgCertificateChain, 0x0C05: MsgCertificateChainDep, MsgCertificateChainDep: MsgCertificateChainDep, + 0x0C10: MsgAesCmacSignature, + MsgAesCmacSignature: MsgAesCmacSignature, 0x0C08: MsgEcdsaSignature, MsgEcdsaSignature: MsgEcdsaSignature, 0x0C07: MsgEcdsaSignatureDepB, diff --git a/jsonschema/MsgAesCmacSignature.json b/jsonschema/MsgAesCmacSignature.json new file mode 100644 index 0000000000..b4d17b1c31 --- /dev/null +++ b/jsonschema/MsgAesCmacSignature.json @@ -0,0 +1,34 @@ +{ + "copyright": [ + "Copyright (C) 2019-2021 Swift Navigation Inc.", + "Contact: https://support.swiftnav.com", + "", + "This source is subject to the license found in the file 'LICENSE' which must", + "be distributed together with this source. All other rights reserved.", + "", + "THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND,", + "EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED", + "WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE." + ], + "$schema": "http://json-schema.org/draft-06/schema#", + "$id": "#MsgAesCmacSignature", + "title":"MsgAesCmacSignature", + "description":"Digital signature using AES-CMAC 128 algorithm used for data integrity.\n", + "type": "object", + "properties": { + "stream_counter": {"type": "integer"}, + "on_demand_counter": {"type": "integer"}, + "certificate_id": {"type": "array", "items": {"type": "integer"}}, + "signature": {"type": "array", "items": {"type": "integer"}}, + "flags": {"type": "integer"}, + "signed_messages": {"type": "array", "items": {"type": "integer"}} + }, + "required": [ + "stream_counter", + "on_demand_counter", + "certificate_id", + "signature", + "flags", + "signed_messages" + ] +} \ No newline at end of file diff --git a/kaitai/ksy/sbp.ksy b/kaitai/ksy/sbp.ksy index 41c28783dc..f60844e304 100644 --- a/kaitai/ksy/sbp.ksy +++ b/kaitai/ksy/sbp.ksy @@ -257,6 +257,7 @@ enums: 3076: msg_ecdsa_certificate 3081: msg_certificate_chain 3077: msg_certificate_chain_dep + 3088: msg_aes_cmac_signature 3080: msg_ecdsa_signature 3079: msg_ecdsa_signature_dep_b 3078: msg_ecdsa_signature_dep_a @@ -539,6 +540,7 @@ types: 3076: signing::msg_ecdsa_certificate 3081: signing::msg_certificate_chain 3077: signing::msg_certificate_chain_dep + 3088: signing::msg_aes_cmac_signature 3080: signing::msg_ecdsa_signature 3079: signing::msg_ecdsa_signature_dep_b 3078: signing::msg_ecdsa_signature_dep_a diff --git a/kaitai/ksy/signing.ksy b/kaitai/ksy/signing.ksy index 4f8c5cf68c..e7b3bf0b15 100644 --- a/kaitai/ksy/signing.ksy +++ b/kaitai/ksy/signing.ksy @@ -168,6 +168,51 @@ types: repeat: expr repeat-expr: 64 + msg_aes_cmac_signature: + doc: | + Digital signature using AES-CMAC 128 algorithm used for data integrity. + seq: + - id: stream_counter + doc: | + Signature message counter. Zero indexed and incremented with each + signature message. The counter will not increment if this message + was in response to an on demand request. The counter will roll over + after 256 messages. Upon connection, the value of the counter may + not initially be zero. + type: u1 + - id: on_demand_counter + doc: | + On demand message counter. Zero indexed and incremented with each + signature message sent in response to an on demand message. The + counter will roll over after 256 messages. Upon connection, the + value of the counter may not initially be zero. + type: u1 + - id: certificate_id + doc: | + The last 4 bytes of the certificate's SHA-1 fingerprint + type: u1 + repeat: expr + repeat-expr: 4 + - id: signature + doc: | + Signature + type: u1 + repeat: expr + repeat-expr: 16 + - id: flags + doc: | + Describes the format of the 'signed messages' field below. + type: u1 + - id: signed_messages + doc: | + CRCs of the messages covered by this signature. For Skylark, which + delivers SBP messages wrapped in Swift's proprietary RTCM message, + these are the 24-bit CRCs from the RTCM message framing. For SBP + only streams, this will be 16-bit CRCs from the SBP framing. See + the `flags` field to determine the type of CRCs covered. + type: u1 + repeat: eos + msg_ecdsa_signature: doc: | An ECDSA-256 signature using SHA-256 as the message digest algorithm. diff --git a/kaitai/perl/KaitaiSbp/Sbp.pm b/kaitai/perl/KaitaiSbp/Sbp.pm index d15db3734f..444adedc19 100644 --- a/kaitai/perl/KaitaiSbp/Sbp.pm +++ b/kaitai/perl/KaitaiSbp/Sbp.pm @@ -249,6 +249,7 @@ our $MSG_IDS_MSG_ECDSA_SIGNATURE_DEP_A = 3078; our $MSG_IDS_MSG_ECDSA_SIGNATURE_DEP_B = 3079; our $MSG_IDS_MSG_ECDSA_SIGNATURE = 3080; our $MSG_IDS_MSG_CERTIFICATE_CHAIN = 3081; +our $MSG_IDS_MSG_AES_CMAC_SIGNATURE = 3088; our $MSG_IDS_MSG_FILEIO_CONFIG_REQ = 4097; our $MSG_IDS_MSG_FILEIO_CONFIG_RESP = 4098; our $MSG_IDS_MSG_SBAS_RAW = 30583; @@ -975,6 +976,11 @@ sub _read { my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); $self->{payload} = Settings::MsgSettingsReadByIndexDone->new($io__raw_payload, $self, $self->{_root}); } + elsif ($_on == 3088) { + $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); + my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); + $self->{payload} = Signing::MsgAesCmacSignature->new($io__raw_payload, $self, $self->{_root}); + } elsif ($_on == 114) { $self->{_raw_payload} = $self->{_io}->read_bytes($self->length()); my $io__raw_payload = IO::KaitaiStruct::Stream->new($self->{_raw_payload}); diff --git a/kaitai/perl/KaitaiSbp/Signing.pm b/kaitai/perl/KaitaiSbp/Signing.pm index 5720d3f6eb..ac433e98c4 100644 --- a/kaitai/perl/KaitaiSbp/Signing.pm +++ b/kaitai/perl/KaitaiSbp/Signing.pm @@ -244,6 +244,85 @@ sub certificate_bytes { return $self->{certificate_bytes}; } +######################################################################## +package Signing::MsgAesCmacSignature; + +our @ISA = 'IO::KaitaiStruct::Struct'; + +sub from_file { + my ($class, $filename) = @_; + my $fd; + + open($fd, '<', $filename) or return undef; + binmode($fd); + return new($class, IO::KaitaiStruct::Stream->new($fd)); +} + +sub new { + my ($class, $_io, $_parent, $_root) = @_; + my $self = IO::KaitaiStruct::Struct->new($_io); + + bless $self, $class; + $self->{_parent} = $_parent; + $self->{_root} = $_root || $self;; + + $self->_read(); + + return $self; +} + +sub _read { + my ($self) = @_; + + $self->{stream_counter} = $self->{_io}->read_u1(); + $self->{on_demand_counter} = $self->{_io}->read_u1(); + $self->{certificate_id} = []; + my $n_certificate_id = 4; + for (my $i = 0; $i < $n_certificate_id; $i++) { + push @{$self->{certificate_id}}, $self->{_io}->read_u1(); + } + $self->{signature} = []; + my $n_signature = 16; + for (my $i = 0; $i < $n_signature; $i++) { + push @{$self->{signature}}, $self->{_io}->read_u1(); + } + $self->{flags} = $self->{_io}->read_u1(); + $self->{signed_messages} = []; + while (!$self->{_io}->is_eof()) { + push @{$self->{signed_messages}}, $self->{_io}->read_u1(); + } +} + +sub stream_counter { + my ($self) = @_; + return $self->{stream_counter}; +} + +sub on_demand_counter { + my ($self) = @_; + return $self->{on_demand_counter}; +} + +sub certificate_id { + my ($self) = @_; + return $self->{certificate_id}; +} + +sub signature { + my ($self) = @_; + return $self->{signature}; +} + +sub flags { + my ($self) = @_; + return $self->{flags}; +} + +sub signed_messages { + my ($self) = @_; + return $self->{signed_messages}; +} + ######################################################################## package Signing::UtcTime; diff --git a/kaitai/perl/KaitaiSbp/Table.pm b/kaitai/perl/KaitaiSbp/Table.pm index 47ed33a104..b4cb0d3916 100644 --- a/kaitai/perl/KaitaiSbp/Table.pm +++ b/kaitai/perl/KaitaiSbp/Table.pm @@ -251,6 +251,7 @@ our %TABLE = ( 3076 => sub{Signing::MsgEcdsaCertificate->new(@_)}, 3081 => sub{Signing::MsgCertificateChain->new(@_)}, 3077 => sub{Signing::MsgCertificateChainDep->new(@_)}, + 3088 => sub{Signing::MsgAesCmacSignature->new(@_)}, 3080 => sub{Signing::MsgEcdsaSignature->new(@_)}, 3079 => sub{Signing::MsgEcdsaSignatureDepB->new(@_)}, 3078 => sub{Signing::MsgEcdsaSignatureDepA->new(@_)}, diff --git a/kaitai/perl/KaitaiSbp/t/auto_check_sbp_signing_MsgAesCmacSignature.t b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_signing_MsgAesCmacSignature.t new file mode 100644 index 0000000000..6ffb81c549 --- /dev/null +++ b/kaitai/perl/KaitaiSbp/t/auto_check_sbp_signing_MsgAesCmacSignature.t @@ -0,0 +1,66 @@ +#!/usr/bin/perl -w +# +# Copyright (C) 2015-2023 Swift Navigation Inc. +# Contact: https://support.swiftnav.com +# +# This source is subject to the license found in the file 'LICENSE' which must +# be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +# +# Test cases automatically generated from spec/tests/yaml/swiftnav/sbp/signing/test_MsgAesCmacSignature.yaml +# with generate.py. Do not modify by hand! + +use strict; + +BEGIN { + # add grandparent directory to include path + use Cwd qw(realpath); + use File::Basename; + unshift @INC, realpath(dirname($0))."/../../"; +} + +use KaitaiSbp::Sbp; +use KaitaiSbp::ParseUtils; +use IO::KaitaiStruct; +use Test::More; +use JSON::PP; +use MIME::Base64; +sub test_auto_check_sbp_signing_msg_aes_cmac_signature_1() { + my $buf = decode_base64("VRAMQgAaAQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiHAFQ=="); + my $stream = IO::KaitaiStruct::Stream->new($buf); + my $msg = ParseUtils::get_flattened_msg(Sbp::SbpMessage->new($stream)); + + is($msg->{'crc'}, 0x15C0, "crc"); + + is($msg->{'length'}, 26, "length"); + + is($msg->{'msg_type'}, 0xC10, "msg_type"); + + is($msg->{'payload'}, "AQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiE=", "payload"); + + is($msg->{'preamble'}, 0x55, "preamble"); + + is($msg->{'sender'}, 0x42, "sender"); + + my $json = JSON::PP->new->convert_blessed->canonical; + + is($json->encode($msg->certificate_id()), $json->encode($json->decode(q{[1,2,3,4]})), "certificate_id"); + + is($msg->flags(), 0, "flags"); + + is($msg->on_demand_counter(), 2, "on_demand_counter"); + + is($json->encode($msg->signature()), $json->encode($json->decode(q{[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]})), "signature"); + + is($json->encode($msg->signed_messages()), $json->encode($json->decode(q{[11,22,33]})), "signed_messages"); + + is($msg->stream_counter(), 1, "stream_counter"); + + is($json->encode($msg), $json->encode($json->decode(q{{"certificate_id":[1,2,3,4],"crc":5568,"flags":0,"length":26,"msg_type":3088,"on_demand_counter":2,"payload":"AQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiE=","preamble":85,"sender":66,"signature":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"signed_messages":[11,22,33],"stream_counter":1}})), "raw_json"); +} +test_auto_check_sbp_signing_msg_aes_cmac_signature_1(); + +done_testing(); \ No newline at end of file diff --git a/kaitai/python/kaitai_sbp/sbp.py b/kaitai/python/kaitai_sbp/sbp.py index a1ad08f349..3a0adf2b4e 100644 --- a/kaitai/python/kaitai_sbp/sbp.py +++ b/kaitai/python/kaitai_sbp/sbp.py @@ -242,6 +242,7 @@ class MsgIds(Enum): msg_ecdsa_signature_dep_b = 3079 msg_ecdsa_signature = 3080 msg_certificate_chain = 3081 + msg_aes_cmac_signature = 3088 msg_fileio_config_req = 4097 msg_fileio_config_resp = 4098 msg_sbas_raw = 30583 @@ -808,6 +809,10 @@ def _read(self): self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) self.payload = Settings.MsgSettingsReadByIndexDone(_io__raw_payload, self, self._root) + elif _on == 3088: + self._raw_payload = self._io.read_bytes(self.length) + _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) + self.payload = Signing.MsgAesCmacSignature(_io__raw_payload, self, self._root) elif _on == 114: self._raw_payload = self._io.read_bytes(self.length) _io__raw_payload = KaitaiStream(BytesIO(self._raw_payload)) diff --git a/kaitai/python/kaitai_sbp/signing.py b/kaitai/python/kaitai_sbp/signing.py index 354dfb32c7..a5283a78e4 100644 --- a/kaitai/python/kaitai_sbp/signing.py +++ b/kaitai/python/kaitai_sbp/signing.py @@ -97,6 +97,35 @@ def _read(self): + class MsgAesCmacSignature(KaitaiStruct): + """Digital signature using AES-CMAC 128 algorithm used for data integrity. + """ + def __init__(self, _io, _parent=None, _root=None): + self._io = _io + self._parent = _parent + self._root = _root if _root else self + self._read() + + def _read(self): + self.stream_counter = self._io.read_u1() + self.on_demand_counter = self._io.read_u1() + self.certificate_id = [] + for i in range(4): + self.certificate_id.append(self._io.read_u1()) + + self.signature = [] + for i in range(16): + self.signature.append(self._io.read_u1()) + + self.flags = self._io.read_u1() + self.signed_messages = [] + i = 0 + while not self._io.is_eof(): + self.signed_messages.append(self._io.read_u1()) + i += 1 + + + class UtcTime(KaitaiStruct): def __init__(self, _io, _parent=None, _root=None): self._io = _io diff --git a/kaitai/python/kaitai_sbp/table.py b/kaitai/python/kaitai_sbp/table.py index 678927382e..d6fff9e27e 100644 --- a/kaitai/python/kaitai_sbp/table.py +++ b/kaitai/python/kaitai_sbp/table.py @@ -245,6 +245,7 @@ 3076: Signing.MsgEcdsaCertificate, 3081: Signing.MsgCertificateChain, 3077: Signing.MsgCertificateChainDep, + 3088: Signing.MsgAesCmacSignature, 3080: Signing.MsgEcdsaSignature, 3079: Signing.MsgEcdsaSignatureDepB, 3078: Signing.MsgEcdsaSignatureDepA, diff --git a/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_signing_MsgAesCmacSignature.py b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_signing_MsgAesCmacSignature.py new file mode 100644 index 0000000000..8257200313 --- /dev/null +++ b/kaitai/python/kaitai_sbp/tests/test_auto_check_sbp_signing_MsgAesCmacSignature.py @@ -0,0 +1,51 @@ +# Copyright (C) 2015-2023 Swift Navigation Inc. +# Contact: https://support.swiftnav.com +# +# This source is subject to the license found in the file 'LICENSE' which must +# be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +# +# Test cases automatically generated from spec/tests/yaml/swiftnav/sbp/signing/test_MsgAesCmacSignature.yaml +# with generate.py. Do not modify by hand! + +import kaitai_sbp.sbp as sbp +from kaitai_sbp.parse_utils import get_flattened_msg +from kaitai_sbp.tests.utils import dictify +from kaitaistruct import KaitaiStream +import io +import base64 + +def test_auto_check_sbp_signing_msg_aes_cmac_signature_1(): + buf = base64.standard_b64decode("VRAMQgAaAQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiHAFQ==") + + stream = KaitaiStream(io.BytesIO(buf)) + msg = get_flattened_msg(sbp.Sbp.SbpMessage(stream)) + + assert msg.crc == 0x15C0 + + assert msg.length == 26 + + assert msg.msg_type == 0xC10 + + assert msg.payload == "AQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiE=" + + assert msg.preamble == 0x55 + + assert msg.sender == 0x42 + + assert dictify(msg.certificate_id) == [1, 2, 3, 4] + + assert dictify(msg.flags) == 0 + + assert dictify(msg.on_demand_counter) == 2 + + assert dictify(msg.signature) == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + + assert dictify(msg.signed_messages) == [11, 22, 33] + + assert dictify(msg.stream_counter) == 1 + + assert dictify(msg) == {'crc': 5568, 'length': 26, 'msg_type': 3088, 'payload': 'AQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiE=', 'preamble': 85, 'sender': 66, 'stream_counter': 1, 'on_demand_counter': 2, 'certificate_id': [1, 2, 3, 4], 'signature': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], 'flags': 0, 'signed_messages': [11, 22, 33]} \ No newline at end of file diff --git a/proto/signing.proto b/proto/signing.proto index fd5c591b15..4078ebe8de 100644 --- a/proto/signing.proto +++ b/proto/signing.proto @@ -66,6 +66,19 @@ message MsgCertificateChain { ECDSASignature signature = 5; } +/** AES-CMAC 128 digital signature + * + * Digital signature using AES-CMAC 128 algorithm used for data integrity. + */ +message MsgAesCmacSignature { + uint32 stream_counter = 1; + uint32 on_demand_counter = 2; + repeated uint32 certificate_id = 3; + repeated uint32 signature = 4; + uint32 flags = 5; + repeated uint32 signed_messages = 6; +} + /** An ECDSA signature * * An ECDSA-256 signature using SHA-256 as the message digest algorithm. diff --git a/python/sbp/signing.py b/python/sbp/signing.py index 492603998a..1c8f49e8c2 100644 --- a/python/sbp/signing.py +++ b/python/sbp/signing.py @@ -476,6 +476,137 @@ def to_json_dict(self): d.update(j) return d +SBP_MSG_AES_CMAC_SIGNATURE = 0x0C10 +class MsgAesCmacSignature(SBP): + """SBP class for message MSG_AES_CMAC_SIGNATURE (0x0C10). + + You can have MSG_AES_CMAC_SIGNATURE inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + Digital signature using AES-CMAC 128 algorithm used for data integrity. + + Parameters + ---------- + sbp : SBP + SBP parent object to inherit from. + stream_counter : int + Signature message counter. Zero indexed and incremented with each + signature message. The counter will not increment if this message was in + response to an on demand request. The counter will roll over after 256 + messages. Upon connection, the value of the counter may not initially be + zero. + on_demand_counter : int + On demand message counter. Zero indexed and incremented with each + signature message sent in response to an on demand message. The counter + will roll over after 256 messages. Upon connection, the value of the + counter may not initially be zero. + certificate_id : array + The last 4 bytes of the certificate's SHA-1 fingerprint + signature : array + Signature + flags : int + Describes the format of the 'signed messages' field below. + signed_messages : array + CRCs of the messages covered by this signature. For Skylark, which + delivers SBP messages wrapped in Swift's proprietary RTCM message, these + are the 24-bit CRCs from the RTCM message framing. For SBP only streams, + this will be 16-bit CRCs from the SBP framing. See the `flags` field to + determine the type of CRCs covered. + sender : int + Optional sender ID, defaults to SENDER_ID (see sbp/msg.py). + + """ + _parser = construct.Struct( + 'stream_counter' / construct.Int8ul, + 'on_demand_counter' / construct.Int8ul, + 'certificate_id' / construct.Array(4, construct.Int8ul), + 'signature' / construct.Array(16, construct.Int8ul), + 'flags' / construct.Int8ul, + 'signed_messages' / construct.GreedyRange(construct.Int8ul),) + __slots__ = [ + 'stream_counter', + 'on_demand_counter', + 'certificate_id', + 'signature', + 'flags', + 'signed_messages', + ] + + def __init__(self, sbp=None, **kwargs): + if sbp: + super( MsgAesCmacSignature, + self).__init__(sbp.msg_type, sbp.sender, sbp.length, + sbp.payload, sbp.crc) + self.from_binary(sbp.payload) + else: + super( MsgAesCmacSignature, self).__init__() + self.msg_type = SBP_MSG_AES_CMAC_SIGNATURE + self.sender = kwargs.pop('sender', SENDER_ID) + self.stream_counter = kwargs.pop('stream_counter') + self.on_demand_counter = kwargs.pop('on_demand_counter') + self.certificate_id = kwargs.pop('certificate_id') + self.signature = kwargs.pop('signature') + self.flags = kwargs.pop('flags') + self.signed_messages = kwargs.pop('signed_messages') + + def __repr__(self): + return fmt_repr(self) + + @staticmethod + def from_json(s): + """Given a JSON-encoded string s, build a message object. + + """ + d = json.loads(s) + return MsgAesCmacSignature.from_json_dict(d) + + @staticmethod + def from_json_dict(d): + sbp = SBP.from_json_dict(d) + return MsgAesCmacSignature(sbp, **d) + + + def from_binary(self, d): + """Given a binary payload d, update the appropriate payload fields of + the message. + + """ + p = MsgAesCmacSignature._parser.parse(d) + for n in self.__class__.__slots__: + setattr(self, n, getattr(p, n)) + + def to_binary(self): + """Produce a framed/packed SBP message. + + """ + c = containerize(exclude_fields(self)) + self.payload = MsgAesCmacSignature._parser.build(c) + return self.pack() + + def friendly_name(self): + """Produces friendly human-readable name for this message + + """ + return "AES CMAC SIGNATURE" + + def into_buffer(self, buf, offset): + """Produce a framed/packed SBP message into the provided buffer and offset. + + """ + self.payload = containerize(exclude_fields(self)) + self.parser = MsgAesCmacSignature._parser + self.stream_payload.reset(buf, offset) + return self.pack_into(buf, offset, self._build_payload) + + def to_json_dict(self): + self.to_binary() + d = super( MsgAesCmacSignature, self).to_json_dict() + j = walk_json_dict(exclude_fields(self)) + d.update(j) + return d + SBP_MSG_ECDSA_SIGNATURE = 0x0C08 class MsgEcdsaSignature(SBP): """SBP class for message MSG_ECDSA_SIGNATURE (0x0C08). @@ -1216,6 +1347,7 @@ def to_json_dict(self): 0x0C04: MsgEcdsaCertificate, 0x0C09: MsgCertificateChain, 0x0C05: MsgCertificateChainDep, + 0x0C10: MsgAesCmacSignature, 0x0C08: MsgEcdsaSignature, 0x0C07: MsgEcdsaSignatureDepB, 0x0C06: MsgEcdsaSignatureDepA, diff --git a/rust/sbp/src/messages/mod.rs b/rust/sbp/src/messages/mod.rs index 468b9b07ae..bad1920949 100644 --- a/rust/sbp/src/messages/mod.rs +++ b/rust/sbp/src/messages/mod.rs @@ -225,6 +225,7 @@ use self::settings::msg_settings_register_resp::MsgSettingsRegisterResp; use self::settings::msg_settings_save::MsgSettingsSave; use self::settings::msg_settings_write::MsgSettingsWrite; use self::settings::msg_settings_write_resp::MsgSettingsWriteResp; +use self::signing::msg_aes_cmac_signature::MsgAesCmacSignature; use self::signing::msg_certificate_chain::MsgCertificateChain; use self::signing::msg_certificate_chain_dep::MsgCertificateChainDep; use self::signing::msg_ecdsa_certificate::MsgEcdsaCertificate; @@ -797,6 +798,8 @@ pub enum Sbp { MsgEcdsaSignature(MsgEcdsaSignature), /// The certificate chain MsgCertificateChain(MsgCertificateChain), + /// AES-CMAC 128 digital signature + MsgAesCmacSignature(MsgAesCmacSignature), /// Request advice on the optimal configuration for FileIO MsgFileioConfigReq(MsgFileioConfigReq), /// Response with advice on the optimal configuration for FileIO. @@ -1526,6 +1529,9 @@ impl<'de> serde::Deserialize<'de> for Sbp { Some(MsgCertificateChain::MESSAGE_TYPE) => { serde_json::from_value::(value).map(Sbp::MsgCertificateChain) } + Some(MsgAesCmacSignature::MESSAGE_TYPE) => { + serde_json::from_value::(value).map(Sbp::MsgAesCmacSignature) + } Some(MsgFileioConfigReq::MESSAGE_TYPE) => { serde_json::from_value::(value).map(Sbp::MsgFileioConfigReq) } @@ -2230,6 +2236,9 @@ impl Sbp { MsgCertificateChain::MESSAGE_TYPE => { MsgCertificateChain::parse(&mut payload).map(Sbp::MsgCertificateChain) } + MsgAesCmacSignature::MESSAGE_TYPE => { + MsgAesCmacSignature::parse(&mut payload).map(Sbp::MsgAesCmacSignature) + } MsgFileioConfigReq::MESSAGE_TYPE => { MsgFileioConfigReq::parse(&mut payload).map(Sbp::MsgFileioConfigReq) } @@ -2550,6 +2559,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.message_name(), Sbp::MsgEcdsaSignature(msg) => msg.message_name(), Sbp::MsgCertificateChain(msg) => msg.message_name(), + Sbp::MsgAesCmacSignature(msg) => msg.message_name(), Sbp::MsgFileioConfigReq(msg) => msg.message_name(), Sbp::MsgFileioConfigResp(msg) => msg.message_name(), Sbp::MsgSbasRaw(msg) => msg.message_name(), @@ -2794,6 +2804,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.message_type(), Sbp::MsgEcdsaSignature(msg) => msg.message_type(), Sbp::MsgCertificateChain(msg) => msg.message_type(), + Sbp::MsgAesCmacSignature(msg) => msg.message_type(), Sbp::MsgFileioConfigReq(msg) => msg.message_type(), Sbp::MsgFileioConfigResp(msg) => msg.message_type(), Sbp::MsgSbasRaw(msg) => msg.message_type(), @@ -3038,6 +3049,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.sender_id(), Sbp::MsgEcdsaSignature(msg) => msg.sender_id(), Sbp::MsgCertificateChain(msg) => msg.sender_id(), + Sbp::MsgAesCmacSignature(msg) => msg.sender_id(), Sbp::MsgFileioConfigReq(msg) => msg.sender_id(), Sbp::MsgFileioConfigResp(msg) => msg.sender_id(), Sbp::MsgSbasRaw(msg) => msg.sender_id(), @@ -3282,6 +3294,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.set_sender_id(new_id), Sbp::MsgEcdsaSignature(msg) => msg.set_sender_id(new_id), Sbp::MsgCertificateChain(msg) => msg.set_sender_id(new_id), + Sbp::MsgAesCmacSignature(msg) => msg.set_sender_id(new_id), Sbp::MsgFileioConfigReq(msg) => msg.set_sender_id(new_id), Sbp::MsgFileioConfigResp(msg) => msg.set_sender_id(new_id), Sbp::MsgSbasRaw(msg) => msg.set_sender_id(new_id), @@ -3526,6 +3539,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.encoded_len(), Sbp::MsgEcdsaSignature(msg) => msg.encoded_len(), Sbp::MsgCertificateChain(msg) => msg.encoded_len(), + Sbp::MsgAesCmacSignature(msg) => msg.encoded_len(), Sbp::MsgFileioConfigReq(msg) => msg.encoded_len(), Sbp::MsgFileioConfigResp(msg) => msg.encoded_len(), Sbp::MsgSbasRaw(msg) => msg.encoded_len(), @@ -3773,6 +3787,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.gps_time(), Sbp::MsgEcdsaSignature(msg) => msg.gps_time(), Sbp::MsgCertificateChain(msg) => msg.gps_time(), + Sbp::MsgAesCmacSignature(msg) => msg.gps_time(), Sbp::MsgFileioConfigReq(msg) => msg.gps_time(), Sbp::MsgFileioConfigResp(msg) => msg.gps_time(), Sbp::MsgSbasRaw(msg) => msg.gps_time(), @@ -4017,6 +4032,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.friendly_name(), Sbp::MsgEcdsaSignature(msg) => msg.friendly_name(), Sbp::MsgCertificateChain(msg) => msg.friendly_name(), + Sbp::MsgAesCmacSignature(msg) => msg.friendly_name(), Sbp::MsgFileioConfigReq(msg) => msg.friendly_name(), Sbp::MsgFileioConfigResp(msg) => msg.friendly_name(), Sbp::MsgSbasRaw(msg) => msg.friendly_name(), @@ -4261,6 +4277,7 @@ impl SbpMessage for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => msg.is_valid(), Sbp::MsgEcdsaSignature(msg) => msg.is_valid(), Sbp::MsgCertificateChain(msg) => msg.is_valid(), + Sbp::MsgAesCmacSignature(msg) => msg.is_valid(), Sbp::MsgFileioConfigReq(msg) => msg.is_valid(), Sbp::MsgFileioConfigResp(msg) => msg.is_valid(), Sbp::MsgSbasRaw(msg) => msg.is_valid(), @@ -4586,6 +4603,7 @@ impl SbpMessage for Sbp { } Sbp::MsgEcdsaSignature(msg) => Ok(Sbp::MsgEcdsaSignature(msg.into_valid_msg()?)), Sbp::MsgCertificateChain(msg) => Ok(Sbp::MsgCertificateChain(msg.into_valid_msg()?)), + Sbp::MsgAesCmacSignature(msg) => Ok(Sbp::MsgAesCmacSignature(msg.into_valid_msg()?)), Sbp::MsgFileioConfigReq(msg) => Ok(Sbp::MsgFileioConfigReq(msg.into_valid_msg()?)), Sbp::MsgFileioConfigResp(msg) => Ok(Sbp::MsgFileioConfigResp(msg.into_valid_msg()?)), Sbp::MsgSbasRaw(msg) => Ok(Sbp::MsgSbasRaw(msg.into_valid_msg()?)), @@ -4859,6 +4877,7 @@ impl WireFormat for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => WireFormat::write(msg, buf), Sbp::MsgEcdsaSignature(msg) => WireFormat::write(msg, buf), Sbp::MsgCertificateChain(msg) => WireFormat::write(msg, buf), + Sbp::MsgAesCmacSignature(msg) => WireFormat::write(msg, buf), Sbp::MsgFileioConfigReq(msg) => WireFormat::write(msg, buf), Sbp::MsgFileioConfigResp(msg) => WireFormat::write(msg, buf), Sbp::MsgSbasRaw(msg) => WireFormat::write(msg, buf), @@ -5103,6 +5122,7 @@ impl WireFormat for Sbp { Sbp::MsgEcdsaSignatureDepB(msg) => WireFormat::len(msg), Sbp::MsgEcdsaSignature(msg) => WireFormat::len(msg), Sbp::MsgCertificateChain(msg) => WireFormat::len(msg), + Sbp::MsgAesCmacSignature(msg) => WireFormat::len(msg), Sbp::MsgFileioConfigReq(msg) => WireFormat::len(msg), Sbp::MsgFileioConfigResp(msg) => WireFormat::len(msg), Sbp::MsgSbasRaw(msg) => WireFormat::len(msg), @@ -6366,6 +6386,12 @@ impl From for Sbp { } } +impl From for Sbp { + fn from(msg: MsgAesCmacSignature) -> Self { + Sbp::MsgAesCmacSignature(msg) + } +} + impl From for Sbp { fn from(msg: MsgFileioConfigReq) -> Self { Sbp::MsgFileioConfigReq(msg) diff --git a/rust/sbp/src/messages/signing.rs b/rust/sbp/src/messages/signing.rs index 283496122d..2719888808 100644 --- a/rust/sbp/src/messages/signing.rs +++ b/rust/sbp/src/messages/signing.rs @@ -14,6 +14,7 @@ //****************************************************************************/ //! Messages relating to signatures pub use ecdsa_signature::ECDSASignature; +pub use msg_aes_cmac_signature::MsgAesCmacSignature; pub use msg_certificate_chain::MsgCertificateChain; pub use msg_certificate_chain_dep::MsgCertificateChainDep; pub use msg_ecdsa_certificate::MsgEcdsaCertificate; @@ -64,6 +65,182 @@ pub mod ecdsa_signature { } } +pub mod msg_aes_cmac_signature { + #![allow(unused_imports)] + + use super::*; + use crate::messages::lib::*; + + /// AES-CMAC 128 digital signature + /// + /// Digital signature using AES-CMAC 128 algorithm used for data integrity. + /// + #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Debug, PartialEq, Clone)] + pub struct MsgAesCmacSignature { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing, alias = "sender"))] + pub sender_id: Option, + /// Signature message counter. Zero indexed and incremented with each + /// signature message. The counter will not increment if this message was + /// in response to an on demand request. The counter will roll over after + /// 256 messages. Upon connection, the value of the counter may not + /// initially be zero. + #[cfg_attr(feature = "serde", serde(rename = "stream_counter"))] + pub stream_counter: u8, + /// On demand message counter. Zero indexed and incremented with each + /// signature message sent in response to an on demand message. The counter + /// will roll over after 256 messages. Upon connection, the value of the + /// counter may not initially be zero. + #[cfg_attr(feature = "serde", serde(rename = "on_demand_counter"))] + pub on_demand_counter: u8, + /// The last 4 bytes of the certificate's SHA-1 fingerprint + #[cfg_attr(feature = "serde", serde(rename = "certificate_id"))] + pub certificate_id: [u8; 4], + /// Signature + #[cfg_attr(feature = "serde", serde(rename = "signature"))] + pub signature: [u8; 16], + /// Describes the format of the 'signed messages' field below. + #[cfg_attr(feature = "serde", serde(rename = "flags"))] + pub flags: u8, + /// CRCs of the messages covered by this signature. For Skylark, which + /// delivers SBP messages wrapped in Swift's proprietary RTCM message, these + /// are the 24-bit CRCs from the RTCM message framing. For SBP only streams, + /// this will be 16-bit CRCs from the SBP framing. See the `flags` field to + /// determine the type of CRCs covered. + #[cfg_attr(feature = "serde", serde(rename = "signed_messages"))] + pub signed_messages: Vec, + } + + impl MsgAesCmacSignature { + /// Gets the [CrcType][self::CrcType] stored in the `flags` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `CrcType` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `CrcType` were added. + pub fn crc_type(&self) -> Result { + get_bit_range!(self.flags, u8, u8, 1, 0).try_into() + } + + /// Set the bitrange corresponding to the [CrcType][CrcType] of the `flags` bitfield. + pub fn set_crc_type(&mut self, crc_type: CrcType) { + set_bit_range!(&mut self.flags, crc_type, u8, u8, 1, 0); + } + } + + impl ConcreteMessage for MsgAesCmacSignature { + const MESSAGE_TYPE: u16 = 3088; + const MESSAGE_NAME: &'static str = "MSG_AES_CMAC_SIGNATURE"; + } + + impl SbpMessage for MsgAesCmacSignature { + fn message_name(&self) -> &'static str { + ::MESSAGE_NAME + } + fn message_type(&self) -> Option { + Some(::MESSAGE_TYPE) + } + fn sender_id(&self) -> Option { + self.sender_id + } + fn set_sender_id(&mut self, new_id: u16) { + self.sender_id = Some(new_id); + } + fn encoded_len(&self) -> usize { + WireFormat::len(self) + crate::HEADER_LEN + crate::CRC_LEN + } + fn is_valid(&self) -> bool { + true + } + fn into_valid_msg(self) -> Result { + Ok(self) + } + } + + impl FriendlyName for MsgAesCmacSignature { + fn friendly_name() -> &'static str { + "AES CMAC SIGNATURE" + } + } + + impl TryFrom for MsgAesCmacSignature { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgAesCmacSignature(m) => Ok(m), + _ => Err(TryFromSbpError(msg)), + } + } + } + + impl WireFormat for MsgAesCmacSignature { + const MIN_LEN: usize = ::MIN_LEN + + ::MIN_LEN + + <[u8; 4] as WireFormat>::MIN_LEN + + <[u8; 16] as WireFormat>::MIN_LEN + + ::MIN_LEN + + as WireFormat>::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.stream_counter) + + WireFormat::len(&self.on_demand_counter) + + WireFormat::len(&self.certificate_id) + + WireFormat::len(&self.signature) + + WireFormat::len(&self.flags) + + WireFormat::len(&self.signed_messages) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.stream_counter, buf); + WireFormat::write(&self.on_demand_counter, buf); + WireFormat::write(&self.certificate_id, buf); + WireFormat::write(&self.signature, buf); + WireFormat::write(&self.flags, buf); + WireFormat::write(&self.signed_messages, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgAesCmacSignature { + sender_id: None, + stream_counter: WireFormat::parse_unchecked(buf), + on_demand_counter: WireFormat::parse_unchecked(buf), + certificate_id: WireFormat::parse_unchecked(buf), + signature: WireFormat::parse_unchecked(buf), + flags: WireFormat::parse_unchecked(buf), + signed_messages: WireFormat::parse_unchecked(buf), + } + } + } + + /// CRC type + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub enum CrcType { + /// 24-bit CRCs from RTCM framing + _24BitCrcsFromRtcmFraming = 0, + + /// 16-bit CRCs from SBP framing + _16BitCrcsFromSbpFraming = 1, + } + + impl std::fmt::Display for CrcType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + CrcType::_24BitCrcsFromRtcmFraming => f.write_str("24-bit CRCs from RTCM framing"), + CrcType::_16BitCrcsFromSbpFraming => f.write_str("16-bit CRCs from SBP framing"), + } + } + } + + impl TryFrom for CrcType { + type Error = u8; + fn try_from(i: u8) -> Result { + match i { + 0 => Ok(CrcType::_24BitCrcsFromRtcmFraming), + 1 => Ok(CrcType::_16BitCrcsFromSbpFraming), + i => Err(i), + } + } + } +} + pub mod msg_certificate_chain { #![allow(unused_imports)] diff --git a/rust/sbp/tests/integration/auto_check_sbp_signing_msg_aes_cmac_signature.rs b/rust/sbp/tests/integration/auto_check_sbp_signing_msg_aes_cmac_signature.rs new file mode 100644 index 0000000000..04d79e29f0 --- /dev/null +++ b/rust/sbp/tests/integration/auto_check_sbp_signing_msg_aes_cmac_signature.rs @@ -0,0 +1,559 @@ +// +// Copyright (C) 2019-2021 Swift Navigation Inc. +// Contact: https://support.swiftnav.com +// +// This source is subject to the license found in the file 'LICENSE' which must +// be distributed together with this source. All other rights reserved. +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/signing/test_MsgAesCmacSignature.yaml by generate.py. Do not modify by hand! + +use crate::*; + +/// Tests [`sbp::iter_messages`], from payload into SBP messages +/// +/// Asserts: +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +fn test_auto_check_sbp_signing_msg_aes_cmac_signature() { + { + let mut payload = Cursor::new(vec![ + 85, 16, 12, 66, 0, 26, 1, 2, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 0, 11, 22, 33, 192, 21, + ]); + + // Test the round trip payload parsing + let sbp_msg = { + let mut msgs = iter_messages(&mut payload); + msgs.next() + .expect("no message found") + .expect("failed to parse message") + }; + match &sbp_msg { + sbp::messages::Sbp::MsgAesCmacSignature(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 0xC10, + "Incorrect message type, expected 0xC10, is {}", + msg_type + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x42, + "incorrect sender id, expected 0x42, is {sender_id}" + ); + assert_eq!( + msg.certificate_id[0], 1, + "incorrect value for certificate_id[0], expected 1, is {}", + msg.certificate_id[0] + ); + assert_eq!( + msg.certificate_id[1], 2, + "incorrect value for certificate_id[1], expected 2, is {}", + msg.certificate_id[1] + ); + assert_eq!( + msg.certificate_id[2], 3, + "incorrect value for certificate_id[2], expected 3, is {}", + msg.certificate_id[2] + ); + assert_eq!( + msg.certificate_id[3], 4, + "incorrect value for certificate_id[3], expected 4, is {}", + msg.certificate_id[3] + ); + assert_eq!( + msg.flags, 0, + "incorrect value for flags, expected 0, is {}", + msg.flags + ); + assert_eq!( + msg.on_demand_counter, 2, + "incorrect value for on_demand_counter, expected 2, is {}", + msg.on_demand_counter + ); + assert_eq!( + msg.signature[0], 0, + "incorrect value for signature[0], expected 0, is {}", + msg.signature[0] + ); + assert_eq!( + msg.signature[1], 1, + "incorrect value for signature[1], expected 1, is {}", + msg.signature[1] + ); + assert_eq!( + msg.signature[2], 2, + "incorrect value for signature[2], expected 2, is {}", + msg.signature[2] + ); + assert_eq!( + msg.signature[3], 3, + "incorrect value for signature[3], expected 3, is {}", + msg.signature[3] + ); + assert_eq!( + msg.signature[4], 4, + "incorrect value for signature[4], expected 4, is {}", + msg.signature[4] + ); + assert_eq!( + msg.signature[5], 5, + "incorrect value for signature[5], expected 5, is {}", + msg.signature[5] + ); + assert_eq!( + msg.signature[6], 6, + "incorrect value for signature[6], expected 6, is {}", + msg.signature[6] + ); + assert_eq!( + msg.signature[7], 7, + "incorrect value for signature[7], expected 7, is {}", + msg.signature[7] + ); + assert_eq!( + msg.signature[8], 8, + "incorrect value for signature[8], expected 8, is {}", + msg.signature[8] + ); + assert_eq!( + msg.signature[9], 9, + "incorrect value for signature[9], expected 9, is {}", + msg.signature[9] + ); + assert_eq!( + msg.signature[10], 10, + "incorrect value for signature[10], expected 10, is {}", + msg.signature[10] + ); + assert_eq!( + msg.signature[11], 11, + "incorrect value for signature[11], expected 11, is {}", + msg.signature[11] + ); + assert_eq!( + msg.signature[12], 12, + "incorrect value for signature[12], expected 12, is {}", + msg.signature[12] + ); + assert_eq!( + msg.signature[13], 13, + "incorrect value for signature[13], expected 13, is {}", + msg.signature[13] + ); + assert_eq!( + msg.signature[14], 14, + "incorrect value for signature[14], expected 14, is {}", + msg.signature[14] + ); + assert_eq!( + msg.signature[15], 15, + "incorrect value for signature[15], expected 15, is {}", + msg.signature[15] + ); + assert_eq!( + msg.signed_messages[0], 11, + "incorrect value for signed_messages[0], expected 11, is {}", + msg.signed_messages[0] + ); + assert_eq!( + msg.signed_messages[1], 22, + "incorrect value for signed_messages[1], expected 22, is {}", + msg.signed_messages[1] + ); + assert_eq!( + msg.signed_messages[2], 33, + "incorrect value for signed_messages[2], expected 33, is {}", + msg.signed_messages[2] + ); + assert_eq!( + msg.stream_counter, 1, + "incorrect value for stream_counter, expected 1, is {}", + msg.stream_counter + ); + } + _ => panic!("Invalid message type! Expected a MsgAesCmacSignature"), + }; + let frame = sbp::to_vec(&sbp_msg).unwrap(); + assert_eq!(frame, payload.into_inner()); + } +} + +/// Tests [`sbp::json::iter_messages`] for JSON payload -> SBP message +/// and [`sbp::json::iter_messages_from_fields`] for JSON fields -> SBP message. +/// +/// Asserts: +/// - SBP message constructed via payload is identical to from fields +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +#[cfg(feature = "json")] +fn test_json2sbp_auto_check_sbp_signing_msg_aes_cmac_signature() { + { + let json_input = r#"{"crc":5568,"length":26,"msg_type":3088,"payload":"AQIBAgMEAAECAwQFBgcICQoLDA0ODwALFiE=","preamble":85,"sender":66,"stream_counter":1,"on_demand_counter":2,"certificate_id":[1,2,3,4],"signature":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"flags":0,"signed_messages":[11,22,33]}"#.as_bytes(); + + let sbp_msg = { + // JSON to SBP message from payload + let mut iter = json2sbp_iter_msg(json_input); + let from_payload = iter + .next() + .expect("no message found") + .expect("failed to parse message"); + + // JSON to SBP message from fields + let mut iter = iter_messages_from_fields(json_input); + let from_fields = iter + .next() + .expect("no message found") + .expect("failed to parse message"); + + assert_eq!(from_fields, from_payload); + from_fields + }; + match &sbp_msg { + sbp::messages::Sbp::MsgAesCmacSignature(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 0xC10, + "Incorrect message type, expected 0xC10, is {}", + msg_type + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x42, + "incorrect sender id, expected 0x42, is {sender_id}" + ); + assert_eq!( + msg.certificate_id[0], 1, + "incorrect value for certificate_id[0], expected 1, is {}", + msg.certificate_id[0] + ); + assert_eq!( + msg.certificate_id[1], 2, + "incorrect value for certificate_id[1], expected 2, is {}", + msg.certificate_id[1] + ); + assert_eq!( + msg.certificate_id[2], 3, + "incorrect value for certificate_id[2], expected 3, is {}", + msg.certificate_id[2] + ); + assert_eq!( + msg.certificate_id[3], 4, + "incorrect value for certificate_id[3], expected 4, is {}", + msg.certificate_id[3] + ); + assert_eq!( + msg.flags, 0, + "incorrect value for flags, expected 0, is {}", + msg.flags + ); + assert_eq!( + msg.on_demand_counter, 2, + "incorrect value for on_demand_counter, expected 2, is {}", + msg.on_demand_counter + ); + assert_eq!( + msg.signature[0], 0, + "incorrect value for signature[0], expected 0, is {}", + msg.signature[0] + ); + assert_eq!( + msg.signature[1], 1, + "incorrect value for signature[1], expected 1, is {}", + msg.signature[1] + ); + assert_eq!( + msg.signature[2], 2, + "incorrect value for signature[2], expected 2, is {}", + msg.signature[2] + ); + assert_eq!( + msg.signature[3], 3, + "incorrect value for signature[3], expected 3, is {}", + msg.signature[3] + ); + assert_eq!( + msg.signature[4], 4, + "incorrect value for signature[4], expected 4, is {}", + msg.signature[4] + ); + assert_eq!( + msg.signature[5], 5, + "incorrect value for signature[5], expected 5, is {}", + msg.signature[5] + ); + assert_eq!( + msg.signature[6], 6, + "incorrect value for signature[6], expected 6, is {}", + msg.signature[6] + ); + assert_eq!( + msg.signature[7], 7, + "incorrect value for signature[7], expected 7, is {}", + msg.signature[7] + ); + assert_eq!( + msg.signature[8], 8, + "incorrect value for signature[8], expected 8, is {}", + msg.signature[8] + ); + assert_eq!( + msg.signature[9], 9, + "incorrect value for signature[9], expected 9, is {}", + msg.signature[9] + ); + assert_eq!( + msg.signature[10], 10, + "incorrect value for signature[10], expected 10, is {}", + msg.signature[10] + ); + assert_eq!( + msg.signature[11], 11, + "incorrect value for signature[11], expected 11, is {}", + msg.signature[11] + ); + assert_eq!( + msg.signature[12], 12, + "incorrect value for signature[12], expected 12, is {}", + msg.signature[12] + ); + assert_eq!( + msg.signature[13], 13, + "incorrect value for signature[13], expected 13, is {}", + msg.signature[13] + ); + assert_eq!( + msg.signature[14], 14, + "incorrect value for signature[14], expected 14, is {}", + msg.signature[14] + ); + assert_eq!( + msg.signature[15], 15, + "incorrect value for signature[15], expected 15, is {}", + msg.signature[15] + ); + assert_eq!( + msg.signed_messages[0], 11, + "incorrect value for signed_messages[0], expected 11, is {}", + msg.signed_messages[0] + ); + assert_eq!( + msg.signed_messages[1], 22, + "incorrect value for signed_messages[1], expected 22, is {}", + msg.signed_messages[1] + ); + assert_eq!( + msg.signed_messages[2], 33, + "incorrect value for signed_messages[2], expected 33, is {}", + msg.signed_messages[2] + ); + assert_eq!( + msg.stream_counter, 1, + "incorrect value for stream_counter, expected 1, is {}", + msg.stream_counter + ); + } + _ => panic!("Invalid message type! Expected a MsgAesCmacSignature"), + }; + } +} + +/// Tests [`sbp::json::JsonEncoder`] for roundtrip SBP message -> JSON +/// +/// Assumes: +/// - [`self::test_auto_check_sbp_signing_msg_aes_cmac_signature`] passes +/// +/// Asserts: +/// - SBP fields equates to that of the field +/// - Payload is identical +#[test] +#[cfg(feature = "json")] +fn test_sbp2json_auto_check_sbp_signing_msg_aes_cmac_signature() { + { + let mut payload = Cursor::new(vec![ + 85, 16, 12, 66, 0, 26, 1, 2, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 0, 11, 22, 33, 192, 21, + ]); + + // Construct sbp message + let sbp_msg = { + let mut msgs = iter_messages(&mut payload); + msgs.next() + .expect("no message found") + .expect("failed to parse message") + }; + + let mut json_buffer = vec![]; + // Populate json buffer, CompactFormatter + sbp::json::JsonEncoder::new(&mut json_buffer, sbp::json::CompactFormatter {}) + .send(&sbp_msg) + .unwrap(); + + // Reconstruct Sbp message from json fields, roundtrip + let sbp_msg = sbp::messages::Sbp::MsgAesCmacSignature( + serde_json::from_str( + std::str::from_utf8(json_buffer.as_slice()) + .unwrap() + .to_string() + .as_str(), + ) + .unwrap(), + ); + match &sbp_msg { + sbp::messages::Sbp::MsgAesCmacSignature(msg) => { + let msg_type = msg.message_type().unwrap(); + assert_eq!( + msg_type, 0xC10, + "Incorrect message type, expected 0xC10, is {}", + msg_type + ); + let sender_id = msg.sender_id().unwrap(); + assert_eq!( + sender_id, 0x42, + "incorrect sender id, expected 0x42, is {sender_id}" + ); + assert_eq!( + msg.certificate_id[0], 1, + "incorrect value for certificate_id[0], expected 1, is {}", + msg.certificate_id[0] + ); + assert_eq!( + msg.certificate_id[1], 2, + "incorrect value for certificate_id[1], expected 2, is {}", + msg.certificate_id[1] + ); + assert_eq!( + msg.certificate_id[2], 3, + "incorrect value for certificate_id[2], expected 3, is {}", + msg.certificate_id[2] + ); + assert_eq!( + msg.certificate_id[3], 4, + "incorrect value for certificate_id[3], expected 4, is {}", + msg.certificate_id[3] + ); + assert_eq!( + msg.flags, 0, + "incorrect value for flags, expected 0, is {}", + msg.flags + ); + assert_eq!( + msg.on_demand_counter, 2, + "incorrect value for on_demand_counter, expected 2, is {}", + msg.on_demand_counter + ); + assert_eq!( + msg.signature[0], 0, + "incorrect value for signature[0], expected 0, is {}", + msg.signature[0] + ); + assert_eq!( + msg.signature[1], 1, + "incorrect value for signature[1], expected 1, is {}", + msg.signature[1] + ); + assert_eq!( + msg.signature[2], 2, + "incorrect value for signature[2], expected 2, is {}", + msg.signature[2] + ); + assert_eq!( + msg.signature[3], 3, + "incorrect value for signature[3], expected 3, is {}", + msg.signature[3] + ); + assert_eq!( + msg.signature[4], 4, + "incorrect value for signature[4], expected 4, is {}", + msg.signature[4] + ); + assert_eq!( + msg.signature[5], 5, + "incorrect value for signature[5], expected 5, is {}", + msg.signature[5] + ); + assert_eq!( + msg.signature[6], 6, + "incorrect value for signature[6], expected 6, is {}", + msg.signature[6] + ); + assert_eq!( + msg.signature[7], 7, + "incorrect value for signature[7], expected 7, is {}", + msg.signature[7] + ); + assert_eq!( + msg.signature[8], 8, + "incorrect value for signature[8], expected 8, is {}", + msg.signature[8] + ); + assert_eq!( + msg.signature[9], 9, + "incorrect value for signature[9], expected 9, is {}", + msg.signature[9] + ); + assert_eq!( + msg.signature[10], 10, + "incorrect value for signature[10], expected 10, is {}", + msg.signature[10] + ); + assert_eq!( + msg.signature[11], 11, + "incorrect value for signature[11], expected 11, is {}", + msg.signature[11] + ); + assert_eq!( + msg.signature[12], 12, + "incorrect value for signature[12], expected 12, is {}", + msg.signature[12] + ); + assert_eq!( + msg.signature[13], 13, + "incorrect value for signature[13], expected 13, is {}", + msg.signature[13] + ); + assert_eq!( + msg.signature[14], 14, + "incorrect value for signature[14], expected 14, is {}", + msg.signature[14] + ); + assert_eq!( + msg.signature[15], 15, + "incorrect value for signature[15], expected 15, is {}", + msg.signature[15] + ); + assert_eq!( + msg.signed_messages[0], 11, + "incorrect value for signed_messages[0], expected 11, is {}", + msg.signed_messages[0] + ); + assert_eq!( + msg.signed_messages[1], 22, + "incorrect value for signed_messages[1], expected 22, is {}", + msg.signed_messages[1] + ); + assert_eq!( + msg.signed_messages[2], 33, + "incorrect value for signed_messages[2], expected 33, is {}", + msg.signed_messages[2] + ); + assert_eq!( + msg.stream_counter, 1, + "incorrect value for stream_counter, expected 1, is {}", + msg.stream_counter + ); + } + _ => panic!("Invalid message type! Expected a MsgAesCmacSignature"), + }; + + // Check payload is still identical + let frame = sbp::to_vec(&sbp_msg).unwrap(); + assert_eq!(frame, payload.into_inner()); + } +} diff --git a/rust/sbp/tests/integration/main.rs b/rust/sbp/tests/integration/main.rs index 7392ebb4a5..cfc224e26f 100644 --- a/rust/sbp/tests/integration/main.rs +++ b/rust/sbp/tests/integration/main.rs @@ -191,6 +191,7 @@ mod auto_check_sbp_settings_msg_settings_register_resp; mod auto_check_sbp_settings_msg_settings_save; mod auto_check_sbp_settings_msg_settings_write; mod auto_check_sbp_settings_msg_settings_write_resp; +mod auto_check_sbp_signing_msg_aes_cmac_signature; mod auto_check_sbp_signing_msg_certificate_chain; mod auto_check_sbp_signing_msg_certificate_chain_dep; mod auto_check_sbp_signing_msg_ecdsa_certificate; diff --git a/sbpjson/elm/SbpJson.elm b/sbpjson/elm/SbpJson.elm index 7738cd5b61..bcee891a1a 100644 --- a/sbpjson/elm/SbpJson.elm +++ b/sbpjson/elm/SbpJson.elm @@ -5,7 +5,7 @@ -- add these imports -- -- import Json.Decode exposing (decodeString)`); --- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ecdsaSignature, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcknowledge, msgAcqResult, msgAcqSvProfile, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCertificateChain, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEcdsaCertificate, msgEcdsaSignature, msgEphemerisBds, msgEphemerisGPS, msgEphemerisGal, msgEphemerisGlo, msgEphemerisQzss, msgEphemerisSbas, msgEXTEvent, msgFileioConfigReq, msgFileioConfigResp, msgFileioReadDirReq, msgFileioReadDirResp, msgFileioReadReq, msgFileioReadResp, msgFileioRemove, msgFileioWriteReq, msgFileioWriteResp, msgFlashDone, msgFlashErase, msgFlashProgram, msgFlashReadReq, msgFlashReadResp, msgFrontEndGain, msgFwd, msgGPSTime, msgGPSTimeGnss, msgGloBiases, msgGnssCapb, msgGnssTimeOffset, msgGroupDelay, msgGroupMeta, msgHeartbeat, msgIarState, msgImuAux, msgImuRaw, msgInsStatus, msgInsUpdates, msgIono, msgLinuxCPUState, msgLinuxMemState, msgLinuxProcessFdCount, msgLinuxProcessFdSummary, msgLinuxProcessSocketCounts, msgLinuxProcessSocketQueues, msgLinuxSocketUsage, msgLinuxSysState, msgLog, msgM25FlashWriteStatus, msgMagRaw, msgMaskSatellite, msgMeasurementPoint, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPoseRelative, msgPpsTime, msgProfilingResourceCounter, msgProfilingSystemInfo, msgProfilingThreadInfo, msgProtectionLevel, msgReferenceFrameParam, msgReset, msgResetFilters, msgSbasRaw, msgSensorAidEvent, msgSetTime, msgSettingsReadByIndexDone, msgSettingsReadByIndexReq, msgSettingsReadByIndexResp, msgSettingsReadReq, msgSettingsReadResp, msgSettingsRegister, msgSettingsRegisterResp, msgSettingsSave, msgSettingsWrite, msgSettingsWriteResp, msgSolnMeta, msgSpecan, msgSsrCodeBiases, msgSsrCodePhaseBiasesBounds, msgSsrFlagHighLevel, msgSsrFlagIonoGridPointSatLos, msgSsrFlagIonoGridPoints, msgSsrFlagIonoTileSatLos, msgSsrFlagSatellites, msgSsrFlagTropoGridPoints, msgSsrGriddedCorrection, msgSsrGriddedCorrectionBounds, msgSsrOrbitClock, msgSsrOrbitClockBounds, msgSsrOrbitClockBoundsDegradation, msgSsrPhaseBiases, msgSsrSatelliteApc, msgSsrStecCorrection, msgSsrTileDefinition, msgStartup, msgStatusJournal, msgStatusReport, msgStmFlashLockSector, msgStmFlashUnlockSector, msgStmUniqueIDReq, msgStmUniqueIDResp, msgSvAzEl, msgTelSv, msgThreadState, msgTrackingIq, msgTrackingState, msgUARTState, msgUserData, msgUTCLeapSecond, msgUTCTime, msgUTCTimeGnss, msgVelBody, msgVelCog, msgVelECEF, msgVelECEFCov, msgVelECEFCovGnss, msgVelECEFGnss, msgVelNED, msgVelNEDCov, msgVelNEDCovGnss, msgVelNEDGnss, msgWheeltick, networkUsage, observationHeader, odoInputType, orbitClockBound, orbitClockBoundDegradation, packedObsContent, packedOsrContent, period, phaseBiasesContent, resourceBucket, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, telemetrySV, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel, utcTime) +-- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ecdsaSignature, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcknowledge, msgAcqResult, msgAcqSvProfile, msgAESCmacSignature, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCertificateChain, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEcdsaCertificate, msgEcdsaSignature, msgEphemerisBds, msgEphemerisGPS, msgEphemerisGal, msgEphemerisGlo, msgEphemerisQzss, msgEphemerisSbas, msgEXTEvent, msgFileioConfigReq, msgFileioConfigResp, msgFileioReadDirReq, msgFileioReadDirResp, msgFileioReadReq, msgFileioReadResp, msgFileioRemove, msgFileioWriteReq, msgFileioWriteResp, msgFlashDone, msgFlashErase, msgFlashProgram, msgFlashReadReq, msgFlashReadResp, msgFrontEndGain, msgFwd, msgGPSTime, msgGPSTimeGnss, msgGloBiases, msgGnssCapb, msgGnssTimeOffset, msgGroupDelay, msgGroupMeta, msgHeartbeat, msgIarState, msgImuAux, msgImuRaw, msgInsStatus, msgInsUpdates, msgIono, msgLinuxCPUState, msgLinuxMemState, msgLinuxProcessFdCount, msgLinuxProcessFdSummary, msgLinuxProcessSocketCounts, msgLinuxProcessSocketQueues, msgLinuxSocketUsage, msgLinuxSysState, msgLog, msgM25FlashWriteStatus, msgMagRaw, msgMaskSatellite, msgMeasurementPoint, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPoseRelative, msgPpsTime, msgProfilingResourceCounter, msgProfilingSystemInfo, msgProfilingThreadInfo, msgProtectionLevel, msgReferenceFrameParam, msgReset, msgResetFilters, msgSbasRaw, msgSensorAidEvent, msgSetTime, msgSettingsReadByIndexDone, msgSettingsReadByIndexReq, msgSettingsReadByIndexResp, msgSettingsReadReq, msgSettingsReadResp, msgSettingsRegister, msgSettingsRegisterResp, msgSettingsSave, msgSettingsWrite, msgSettingsWriteResp, msgSolnMeta, msgSpecan, msgSsrCodeBiases, msgSsrCodePhaseBiasesBounds, msgSsrFlagHighLevel, msgSsrFlagIonoGridPointSatLos, msgSsrFlagIonoGridPoints, msgSsrFlagIonoTileSatLos, msgSsrFlagSatellites, msgSsrFlagTropoGridPoints, msgSsrGriddedCorrection, msgSsrGriddedCorrectionBounds, msgSsrOrbitClock, msgSsrOrbitClockBounds, msgSsrOrbitClockBoundsDegradation, msgSsrPhaseBiases, msgSsrSatelliteApc, msgSsrStecCorrection, msgSsrTileDefinition, msgStartup, msgStatusJournal, msgStatusReport, msgStmFlashLockSector, msgStmFlashUnlockSector, msgStmUniqueIDReq, msgStmUniqueIDResp, msgSvAzEl, msgTelSv, msgThreadState, msgTrackingIq, msgTrackingState, msgUARTState, msgUserData, msgUTCLeapSecond, msgUTCTime, msgUTCTimeGnss, msgVelBody, msgVelCog, msgVelECEF, msgVelECEFCov, msgVelECEFCovGnss, msgVelECEFGnss, msgVelNED, msgVelNEDCov, msgVelNEDCovGnss, msgVelNEDGnss, msgWheeltick, networkUsage, observationHeader, odoInputType, orbitClockBound, orbitClockBoundDegradation, packedObsContent, packedOsrContent, period, phaseBiasesContent, resourceBucket, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, telemetrySV, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel, utcTime) -- -- and you're off to the races with -- @@ -34,6 +34,7 @@ -- decodeString msgAcknowledge myJsonString -- decodeString msgAcqResult myJsonString -- decodeString msgAcqSvProfile myJsonString +-- decodeString msgAESCmacSignature myJsonString -- decodeString msgAgeCorrections myJsonString -- decodeString msgAlmanac myJsonString -- decodeString msgAlmanacGPS myJsonString @@ -306,6 +307,9 @@ module SbpJson exposing , MsgAcqSvProfile , msgAcqSvProfileToString , msgAcqSvProfile + , MsgAESCmacSignature + , msgAESCmacSignatureToString + , msgAESCmacSignature , MsgAgeCorrections , msgAgeCorrectionsToString , msgAgeCorrections @@ -1032,6 +1036,16 @@ type alias AcqSvProfile = , timestamp : Int } +{-| Digital signature using AES-CMAC 128 algorithm used for data integrity. -} +type alias MsgAESCmacSignature = + { certificateID : Array Int + , flags : Int + , onDemandCounter : Int + , signature : Array Int + , signedMessages : Array Int + , streamCounter : Int + } + {-| This message reports the Age of the corrections used for the current Differential solution. -} @@ -3642,6 +3656,9 @@ msgAcqResultToString r = Jenc.encode 0 (encodeMsgAcqResult r) msgAcqSvProfileToString : MsgAcqSvProfile -> String msgAcqSvProfileToString r = Jenc.encode 0 (encodeMsgAcqSvProfile r) +msgAESCmacSignatureToString : MsgAESCmacSignature -> String +msgAESCmacSignatureToString r = Jenc.encode 0 (encodeMsgAESCmacSignature r) + msgAgeCorrectionsToString : MsgAgeCorrections -> String msgAgeCorrectionsToString r = Jenc.encode 0 (encodeMsgAgeCorrections r) @@ -4473,6 +4490,27 @@ encodeAcqSvProfile x = , ("timestamp", Jenc.int x.timestamp) ] +msgAESCmacSignature : Jdec.Decoder MsgAESCmacSignature +msgAESCmacSignature = + Jpipe.decode MsgAESCmacSignature + |> Jpipe.required "certificate_id" (Jdec.array Jdec.int) + |> Jpipe.required "flags" Jdec.int + |> Jpipe.required "on_demand_counter" Jdec.int + |> Jpipe.required "signature" (Jdec.array Jdec.int) + |> Jpipe.required "signed_messages" (Jdec.array Jdec.int) + |> Jpipe.required "stream_counter" Jdec.int + +encodeMsgAESCmacSignature : MsgAESCmacSignature -> Jenc.Value +encodeMsgAESCmacSignature x = + Jenc.object + [ ("certificate_id", makeArrayEncoder Jenc.int x.certificateID) + , ("flags", Jenc.int x.flags) + , ("on_demand_counter", Jenc.int x.onDemandCounter) + , ("signature", makeArrayEncoder Jenc.int x.signature) + , ("signed_messages", makeArrayEncoder Jenc.int x.signedMessages) + , ("stream_counter", Jenc.int x.streamCounter) + ] + msgAgeCorrections : Jdec.Decoder MsgAgeCorrections msgAgeCorrections = Jpipe.decode MsgAgeCorrections diff --git a/sbpjson/javascript/SbpJson.js b/sbpjson/javascript/SbpJson.js index 9c19f57212..e539bb8278 100644 --- a/sbpjson/javascript/SbpJson.js +++ b/sbpjson/javascript/SbpJson.js @@ -27,6 +27,7 @@ // const msgAcknowledge = Convert.toMsgAcknowledge(json); // const msgAcqResult = Convert.toMsgAcqResult(json); // const msgAcqSvProfile = Convert.toMsgAcqSvProfile(json); +// const msgAESCmacSignature = Convert.toMsgAESCmacSignature(json); // const msgAgeCorrections = Convert.toMsgAgeCorrections(json); // const msgAlmanac = Convert.toMsgAlmanac(json); // const msgAlmanacGPS = Convert.toMsgAlmanacGPS(json); @@ -428,6 +429,14 @@ function msgAcqSvProfileToJson(value) { return JSON.stringify(uncast(value, r("MsgAcqSvProfile")), null, 2); } +function toMsgAESCmacSignature(json) { + return cast(JSON.parse(json), r("MsgAESCmacSignature")); +} + +function msgAESCmacSignatureToJson(value) { + return JSON.stringify(uncast(value, r("MsgAESCmacSignature")), null, 2); +} + function toMsgAgeCorrections(json) { return cast(JSON.parse(json), r("MsgAgeCorrections")); } @@ -2214,6 +2223,14 @@ const typeMap = { { json: "time_spent", js: "time_spent", typ: 0 }, { json: "timestamp", js: "timestamp", typ: 0 }, ], "any"), + "MsgAESCmacSignature": o([ + { json: "certificate_id", js: "certificate_id", typ: a(0) }, + { json: "flags", js: "flags", typ: 0 }, + { json: "on_demand_counter", js: "on_demand_counter", typ: 0 }, + { json: "signature", js: "signature", typ: a(0) }, + { json: "signed_messages", js: "signed_messages", typ: a(0) }, + { json: "stream_counter", js: "stream_counter", typ: 0 }, + ], "any"), "MsgAgeCorrections": o([ { json: "age", js: "age", typ: 0 }, { json: "tow", js: "tow", typ: 0 }, @@ -3753,6 +3770,8 @@ module.exports = { "toMsgAcqResult": toMsgAcqResult, "msgAcqSvProfileToJson": msgAcqSvProfileToJson, "toMsgAcqSvProfile": toMsgAcqSvProfile, + "msgAESCmacSignatureToJson": msgAESCmacSignatureToJson, + "toMsgAESCmacSignature": toMsgAESCmacSignature, "msgAgeCorrectionsToJson": msgAgeCorrectionsToJson, "toMsgAgeCorrections": toMsgAgeCorrections, "msgAlmanacToJson": msgAlmanacToJson, diff --git a/sbpjson/typescript/SbpJson.ts b/sbpjson/typescript/SbpJson.ts index 7278e6380c..1915dcdbe8 100644 --- a/sbpjson/typescript/SbpJson.ts +++ b/sbpjson/typescript/SbpJson.ts @@ -1,6 +1,6 @@ // To parse this data: // -// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, ECDSASignature, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcknowledge, MsgAcqResult, MsgAcqSvProfile, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCertificateChain, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEcdsaCertificate, MsgEcdsaSignature, MsgEphemerisBds, MsgEphemerisGPS, MsgEphemerisGal, MsgEphemerisGlo, MsgEphemerisQzss, MsgEphemerisSbas, MsgEXTEvent, MsgFileioConfigReq, MsgFileioConfigResp, MsgFileioReadDirReq, MsgFileioReadDirResp, MsgFileioReadReq, MsgFileioReadResp, MsgFileioRemove, MsgFileioWriteReq, MsgFileioWriteResp, MsgFlashDone, MsgFlashErase, MsgFlashProgram, MsgFlashReadReq, MsgFlashReadResp, MsgFrontEndGain, MsgFwd, MsgGPSTime, MsgGPSTimeGnss, MsgGloBiases, MsgGnssCapb, MsgGnssTimeOffset, MsgGroupDelay, MsgGroupMeta, MsgHeartbeat, MsgIarState, MsgImuAux, MsgImuRaw, MsgInsStatus, MsgInsUpdates, MsgIono, MsgLinuxCPUState, MsgLinuxMemState, MsgLinuxProcessFdCount, MsgLinuxProcessFdSummary, MsgLinuxProcessSocketCounts, MsgLinuxProcessSocketQueues, MsgLinuxSocketUsage, MsgLinuxSysState, MsgLog, MsgM25FlashWriteStatus, MsgMagRaw, MsgMaskSatellite, MsgMeasurementPoint, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPoseRelative, MsgPpsTime, MsgProfilingResourceCounter, MsgProfilingSystemInfo, MsgProfilingThreadInfo, MsgProtectionLevel, MsgReferenceFrameParam, MsgReset, MsgResetFilters, MsgSbasRaw, MsgSensorAidEvent, MsgSettingsReadByIndexReq, MsgSettingsReadByIndexResp, MsgSettingsReadReq, MsgSettingsReadResp, MsgSettingsRegister, MsgSettingsRegisterResp, MsgSettingsWrite, MsgSettingsWriteResp, MsgSolnMeta, MsgSpecan, MsgSsrCodeBiases, MsgSsrCodePhaseBiasesBounds, MsgSsrFlagHighLevel, MsgSsrFlagIonoGridPointSatLos, MsgSsrFlagIonoGridPoints, MsgSsrFlagIonoTileSatLos, MsgSsrFlagSatellites, MsgSsrFlagTropoGridPoints, MsgSsrGriddedCorrection, MsgSsrGriddedCorrectionBounds, MsgSsrOrbitClock, MsgSsrOrbitClockBounds, MsgSsrOrbitClockBoundsDegradation, MsgSsrPhaseBiases, MsgSsrSatelliteApc, MsgSsrStecCorrection, MsgSsrTileDefinition, MsgStartup, MsgStatusJournal, MsgStatusReport, MsgStmFlashLockSector, MsgStmFlashUnlockSector, MsgStmUniqueIDResp, MsgSvAzEl, MsgTelSv, MsgThreadState, MsgTrackingIq, MsgTrackingState, MsgUARTState, MsgUserData, MsgUTCLeapSecond, MsgUTCTime, MsgUTCTimeGnss, MsgVelBody, MsgVelCog, MsgVelECEF, MsgVelECEFCov, MsgVelECEFCovGnss, MsgVelECEFGnss, MsgVelNED, MsgVelNEDCov, MsgVelNEDCovGnss, MsgVelNEDGnss, MsgWheeltick, NetworkUsage, ObservationHeader, OdoInputType, OrbitClockBound, OrbitClockBoundDegradation, PackedObsContent, PackedOsrContent, Period, PhaseBiasesContent, ResourceBucket, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TelemetrySV, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel, UTCTime } from "./file"; +// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, ECDSASignature, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcknowledge, MsgAcqResult, MsgAcqSvProfile, MsgAESCmacSignature, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCertificateChain, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEcdsaCertificate, MsgEcdsaSignature, MsgEphemerisBds, MsgEphemerisGPS, MsgEphemerisGal, MsgEphemerisGlo, MsgEphemerisQzss, MsgEphemerisSbas, MsgEXTEvent, MsgFileioConfigReq, MsgFileioConfigResp, MsgFileioReadDirReq, MsgFileioReadDirResp, MsgFileioReadReq, MsgFileioReadResp, MsgFileioRemove, MsgFileioWriteReq, MsgFileioWriteResp, MsgFlashDone, MsgFlashErase, MsgFlashProgram, MsgFlashReadReq, MsgFlashReadResp, MsgFrontEndGain, MsgFwd, MsgGPSTime, MsgGPSTimeGnss, MsgGloBiases, MsgGnssCapb, MsgGnssTimeOffset, MsgGroupDelay, MsgGroupMeta, MsgHeartbeat, MsgIarState, MsgImuAux, MsgImuRaw, MsgInsStatus, MsgInsUpdates, MsgIono, MsgLinuxCPUState, MsgLinuxMemState, MsgLinuxProcessFdCount, MsgLinuxProcessFdSummary, MsgLinuxProcessSocketCounts, MsgLinuxProcessSocketQueues, MsgLinuxSocketUsage, MsgLinuxSysState, MsgLog, MsgM25FlashWriteStatus, MsgMagRaw, MsgMaskSatellite, MsgMeasurementPoint, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPoseRelative, MsgPpsTime, MsgProfilingResourceCounter, MsgProfilingSystemInfo, MsgProfilingThreadInfo, MsgProtectionLevel, MsgReferenceFrameParam, MsgReset, MsgResetFilters, MsgSbasRaw, MsgSensorAidEvent, MsgSettingsReadByIndexReq, MsgSettingsReadByIndexResp, MsgSettingsReadReq, MsgSettingsReadResp, MsgSettingsRegister, MsgSettingsRegisterResp, MsgSettingsWrite, MsgSettingsWriteResp, MsgSolnMeta, MsgSpecan, MsgSsrCodeBiases, MsgSsrCodePhaseBiasesBounds, MsgSsrFlagHighLevel, MsgSsrFlagIonoGridPointSatLos, MsgSsrFlagIonoGridPoints, MsgSsrFlagIonoTileSatLos, MsgSsrFlagSatellites, MsgSsrFlagTropoGridPoints, MsgSsrGriddedCorrection, MsgSsrGriddedCorrectionBounds, MsgSsrOrbitClock, MsgSsrOrbitClockBounds, MsgSsrOrbitClockBoundsDegradation, MsgSsrPhaseBiases, MsgSsrSatelliteApc, MsgSsrStecCorrection, MsgSsrTileDefinition, MsgStartup, MsgStatusJournal, MsgStatusReport, MsgStmFlashLockSector, MsgStmFlashUnlockSector, MsgStmUniqueIDResp, MsgSvAzEl, MsgTelSv, MsgThreadState, MsgTrackingIq, MsgTrackingState, MsgUARTState, MsgUserData, MsgUTCLeapSecond, MsgUTCTime, MsgUTCTimeGnss, MsgVelBody, MsgVelCog, MsgVelECEF, MsgVelECEFCov, MsgVelECEFCovGnss, MsgVelECEFGnss, MsgVelNED, MsgVelNEDCov, MsgVelNEDCovGnss, MsgVelNEDGnss, MsgWheeltick, NetworkUsage, ObservationHeader, OdoInputType, OrbitClockBound, OrbitClockBoundDegradation, PackedObsContent, PackedOsrContent, Period, PhaseBiasesContent, ResourceBucket, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TelemetrySV, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel, UTCTime } from "./file"; // // const acqSvProfile = Convert.toAcqSvProfile(json); // const almanacCommonContent = Convert.toAlmanacCommonContent(json); @@ -27,6 +27,7 @@ // const msgAcknowledge = Convert.toMsgAcknowledge(json); // const msgAcqResult = Convert.toMsgAcqResult(json); // const msgAcqSvProfile = Convert.toMsgAcqSvProfile(json); +// const msgAESCmacSignature = Convert.toMsgAESCmacSignature(json); // const msgAgeCorrections = Convert.toMsgAgeCorrections(json); // const msgAlmanac = Convert.toMsgAlmanac(json); // const msgAlmanacGPS = Convert.toMsgAlmanacGPS(json); @@ -373,6 +374,19 @@ export interface AcqSvProfile { [property: string]: any; } +/** + * Digital signature using AES-CMAC 128 algorithm used for data integrity. + */ +export interface MsgAESCmacSignature { + certificate_id: number[]; + flags: number; + on_demand_counter: number; + signature: number[]; + signed_messages: number[]; + stream_counter: number; + [property: string]: any; +} + /** * This message reports the Age of the corrections used for the current Differential * solution. @@ -3506,6 +3520,14 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgAcqSvProfile")), null, 2); } + public static toMsgAESCmacSignature(json: string): MsgAESCmacSignature { + return cast(JSON.parse(json), r("MsgAESCmacSignature")); + } + + public static msgAESCmacSignatureToJson(value: MsgAESCmacSignature): string { + return JSON.stringify(uncast(value, r("MsgAESCmacSignature")), null, 2); + } + public static toMsgAgeCorrections(json: string): MsgAgeCorrections { return cast(JSON.parse(json), r("MsgAgeCorrections")); } @@ -5293,6 +5315,14 @@ const typeMap: any = { { json: "time_spent", js: "time_spent", typ: 0 }, { json: "timestamp", js: "timestamp", typ: 0 }, ], "any"), + "MsgAESCmacSignature": o([ + { json: "certificate_id", js: "certificate_id", typ: a(0) }, + { json: "flags", js: "flags", typ: 0 }, + { json: "on_demand_counter", js: "on_demand_counter", typ: 0 }, + { json: "signature", js: "signature", typ: a(0) }, + { json: "signed_messages", js: "signed_messages", typ: a(0) }, + { json: "stream_counter", js: "stream_counter", typ: 0 }, + ], "any"), "MsgAgeCorrections": o([ { json: "age", js: "age", typ: 0 }, { json: "tow", js: "tow", typ: 0 },

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%0D>xBa4nt)tgt{!t$??s8ckl^Qq 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�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 Iq6EzU03#Q*k^lez diff --git a/haskell/src/SwiftNav/SBP/Msg.hs b/haskell/src/SwiftNav/SBP/Msg.hs index 3e46239095..0cbaebe6d4 100644 --- a/haskell/src/SwiftNav/SBP/Msg.hs +++ b/haskell/src/SwiftNav/SBP/Msg.hs @@ -66,6 +66,7 @@ data SBPMsg = | SBPMsgAcqResultDepC MsgAcqResultDepC Msg | SBPMsgAcqSvProfile MsgAcqSvProfile Msg | SBPMsgAcqSvProfileDep MsgAcqSvProfileDep Msg + | SBPMsgAesCmacSignature MsgAesCmacSignature Msg | SBPMsgAgeCorrections MsgAgeCorrections Msg | SBPMsgAlmanac MsgAlmanac Msg | SBPMsgAlmanacGlo MsgAlmanacGlo Msg @@ -316,6 +317,7 @@ instance Binary SBPMsg where | _msgSBPType == msgAcqResultDepC = SBPMsgAcqResultDepC (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgAcqSvProfile = SBPMsgAcqSvProfile (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgAcqSvProfileDep = SBPMsgAcqSvProfileDep (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgAesCmacSignature = SBPMsgAesCmacSignature (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgAgeCorrections = SBPMsgAgeCorrections (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgAlmanac = SBPMsgAlmanac (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgAlmanacGlo = SBPMsgAlmanacGlo (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -558,6 +560,7 @@ instance Binary SBPMsg where encoder (SBPMsgAcqResultDepC _ m) = put m encoder (SBPMsgAcqSvProfile _ m) = put m encoder (SBPMsgAcqSvProfileDep _ m) = put m + encoder (SBPMsgAesCmacSignature _ m) = put m encoder (SBPMsgAgeCorrections _ m) = put m encoder (SBPMsgAlmanac _ m) = put m encoder (SBPMsgAlmanacGlo _ m) = put m @@ -804,6 +807,7 @@ instance FromJSON SBPMsg where | msgType == msgAcqResultDepC = SBPMsgAcqResultDepC <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgAcqSvProfile = SBPMsgAcqSvProfile <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgAcqSvProfileDep = SBPMsgAcqSvProfileDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgAesCmacSignature = SBPMsgAesCmacSignature <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgAgeCorrections = SBPMsgAgeCorrections <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgAlmanac = SBPMsgAlmanac <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgAlmanacGlo = SBPMsgAlmanacGlo <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -1051,6 +1055,7 @@ instance ToJSON SBPMsg where toJSON (SBPMsgAcqResultDepC n m) = toJSON n <<>> toJSON m toJSON (SBPMsgAcqSvProfile n m) = toJSON n <<>> toJSON m toJSON (SBPMsgAcqSvProfileDep n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgAesCmacSignature n m) = toJSON n <<>> toJSON m toJSON (SBPMsgAgeCorrections n m) = toJSON n <<>> toJSON m toJSON (SBPMsgAlmanac _ m) = toJSON m toJSON (SBPMsgAlmanacGlo n m) = toJSON n <<>> toJSON m @@ -1292,6 +1297,7 @@ instance HasMsg SBPMsg where msg f (SBPMsgAcqResultDepC n m) = SBPMsgAcqResultDepC n <$> f m msg f (SBPMsgAcqSvProfile n m) = SBPMsgAcqSvProfile n <$> f m msg f (SBPMsgAcqSvProfileDep n m) = SBPMsgAcqSvProfileDep n <$> f m + msg f (SBPMsgAesCmacSignature n m) = SBPMsgAesCmacSignature n <$> f m msg f (SBPMsgAgeCorrections n m) = SBPMsgAgeCorrections n <$> f m msg f (SBPMsgAlmanac n m) = SBPMsgAlmanac n <$> f m msg f (SBPMsgAlmanacGlo n m) = SBPMsgAlmanacGlo n <$> f m diff --git a/haskell/src/SwiftNav/SBP/Signing.hs b/haskell/src/SwiftNav/SBP/Signing.hs index 258117e11b..abaea2555a 100644 --- a/haskell/src/SwiftNav/SBP/Signing.hs +++ b/haskell/src/SwiftNav/SBP/Signing.hs @@ -224,6 +224,60 @@ $(makeSBP 'msgCertificateChainDep ''MsgCertificateChainDep) $(makeJSON "_msgCertificateChainDep_" ''MsgCertificateChainDep) $(makeLenses ''MsgCertificateChainDep) +msgAesCmacSignature :: Word16 +msgAesCmacSignature = 0x0C10 + +-- | SBP class for message MSG_AES_CMAC_SIGNATURE (0x0C10). +-- +-- Digital signature using AES-CMAC 128 algorithm used for data integrity. +data MsgAesCmacSignature = MsgAesCmacSignature + { _msgAesCmacSignature_stream_counter :: !Word8 + -- ^ Signature message counter. Zero indexed and incremented with each + -- signature message. The counter will not increment if this message was + -- in response to an on demand request. The counter will roll over after + -- 256 messages. Upon connection, the value of the counter may not + -- initially be zero. + , _msgAesCmacSignature_on_demand_counter :: !Word8 + -- ^ On demand message counter. Zero indexed and incremented with each + -- signature message sent in response to an on demand message. The counter + -- will roll over after 256 messages. Upon connection, the value of the + -- counter may not initially be zero. + , _msgAesCmacSignature_certificate_id :: ![Word8] + -- ^ The last 4 bytes of the certificate's SHA-1 fingerprint + , _msgAesCmacSignature_signature :: ![Word8] + -- ^ Signature + , _msgAesCmacSignature_flags :: !Word8 + -- ^ Describes the format of the 'signed messages' field below. + , _msgAesCmacSignature_signed_messages :: ![Word8] + -- ^ CRCs of the messages covered by this signature. For Skylark, which + -- delivers SBP messages wrapped in Swift's proprietary RTCM message, + -- these are the 24-bit CRCs from the RTCM message framing. For SBP only + -- streams, this will be 16-bit CRCs from the SBP framing. See the + -- `flags` field to determine the type of CRCs covered. + } deriving ( Show, Read, Eq ) + +instance Binary MsgAesCmacSignature where + get = do + _msgAesCmacSignature_stream_counter <- getWord8 + _msgAesCmacSignature_on_demand_counter <- getWord8 + _msgAesCmacSignature_certificate_id <- replicateM 4 getWord8 + _msgAesCmacSignature_signature <- replicateM 16 getWord8 + _msgAesCmacSignature_flags <- getWord8 + _msgAesCmacSignature_signed_messages <- whileM (not <$> isEmpty) getWord8 + pure MsgAesCmacSignature {..} + + put MsgAesCmacSignature {..} = do + putWord8 _msgAesCmacSignature_stream_counter + putWord8 _msgAesCmacSignature_on_demand_counter + mapM_ putWord8 _msgAesCmacSignature_certificate_id + mapM_ putWord8 _msgAesCmacSignature_signature + putWord8 _msgAesCmacSignature_flags + mapM_ putWord8 _msgAesCmacSignature_signed_messages + +$(makeSBP 'msgAesCmacSignature ''MsgAesCmacSignature) +$(makeJSON "_msgAesCmacSignature_" ''MsgAesCmacSignature) +$(makeLenses ''MsgAesCmacSignature) + msgEcdsaSignature :: Word16 msgEcdsaSignature = 0x0C08 diff --git a/java/src/com/swiftnav/sbp/client/MessageTable.java b/java/src/com/swiftnav/sbp/client/MessageTable.java index f73abf745e..048adecf9f 100644 --- a/java/src/com/swiftnav/sbp/client/MessageTable.java +++ b/java/src/com/swiftnav/sbp/client/MessageTable.java @@ -193,6 +193,7 @@ import com.swiftnav.sbp.settings.MsgSettingsSave; import com.swiftnav.sbp.settings.MsgSettingsWrite; import com.swiftnav.sbp.settings.MsgSettingsWriteResp; +import com.swiftnav.sbp.signing.MsgAesCmacSignature; import com.swiftnav.sbp.signing.MsgCertificateChain; import com.swiftnav.sbp.signing.MsgCertificateChainDep; import com.swiftnav.sbp.signing.MsgEcdsaCertificate; @@ -620,6 +621,8 @@ static SBPMessage dispatch(SBPMessage msg) throws SBPBinaryException { return new MsgCertificateChain(msg); case MsgCertificateChainDep.TYPE: return new MsgCertificateChainDep(msg); + case MsgAesCmacSignature.TYPE: + return new MsgAesCmacSignature(msg); case MsgEcdsaSignature.TYPE: return new MsgEcdsaSignature(msg); case MsgEcdsaSignatureDepB.TYPE: diff --git a/java/src/com/swiftnav/sbp/signing/MsgAesCmacSignature.java b/java/src/com/swiftnav/sbp/signing/MsgAesCmacSignature.java new file mode 100644 index 0000000000..675b601b4b --- /dev/null +++ b/java/src/com/swiftnav/sbp/signing/MsgAesCmacSignature.java @@ -0,0 +1,117 @@ +/* Copyright (C) 2015-2022 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ +package com.swiftnav.sbp.signing; + +// This file was auto-generated from yaml/swiftnav/sbp/signing.yaml by generate.py. +// Do not modify by hand! + + +import com.swiftnav.sbp.SBPBinaryException; +import com.swiftnav.sbp.SBPMessage; +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * SBP class for message MSG_AES_CMAC_SIGNATURE (0x0C10). + * + *