From 8f13f7e434d5ddba594319831a19924d93da48b2 Mon Sep 17 00:00:00 2001 From: Sam Lewis Date: Wed, 6 Jul 2022 10:51:50 +1000 Subject: [PATCH] Add stubbed signing messages [GV2-90] --- c/include/libsbp/cpp/message_traits.h | 72 ++++++ c/include/libsbp/legacy/cpp/message_traits.h | 13 ++ c/include/libsbp/legacy/signing.h | 45 ++++ c/include/libsbp/sbp_msg_type.h | 3 + c/include/libsbp/signing.h | 30 +++ c/include/libsbp/signing_macros.h | 68 ++++++ c/include/libsbp/v4/sbp_msg.h | 25 +++ c/include/libsbp/v4/signing.h | 23 ++ .../v4/signing/MSG_ED25519_CERTIFICATE.h | 184 ++++++++++++++++ .../libsbp/v4/signing/MSG_ED25519_SIGNATURE.h | 182 ++++++++++++++++ c/src/include/libsbp/internal/v4/signing.h | 75 +++++++ c/src/v4/signing.c | 179 +++++++++++++++ docs/sbp.pdf | Bin 481362 -> 483637 bytes haskell/sbp.cabal | 1 + haskell/src/SwiftNav/SBP.hs | 1 + haskell/src/SwiftNav/SBP/Msg.hs | 13 ++ haskell/src/SwiftNav/SBP/Signing.hs | 75 +++++++ .../com/swiftnav/sbp/client/MessageTable.java | 6 + .../sbp/signing/MsgEd25519Certificate.java | 58 +++++ .../sbp/signing/MsgEd25519Signature.java | 58 +++++ javascript/sbp/msg.js | 1 + javascript/sbp/signing.js | 90 ++++++++ jsonschema/MsgEd25519Certificate.json | 24 ++ jsonschema/MsgEd25519Signature.json | 24 ++ proto/signing.proto | 38 ++++ python/sbp/signing.py | 206 ++++++++++++++++++ python/sbp/table.py | 2 + python/tests/sbp/test_messages.py | 2 +- python/tests/sbp/test_table.py | 4 +- rust/sbp/src/messages/mod.rs | 45 ++++ rust/sbp/src/messages/signing.rs | 151 +++++++++++++ sbpjson/elm/SbpJson.elm | 46 +++- sbpjson/javascript/SbpJson.js | 28 +++ sbpjson/typescript/SbpJson.ts | 34 ++- spec/yaml/swiftnav/sbp/signing.yaml | 33 +++ 35 files changed, 1835 insertions(+), 4 deletions(-) create mode 100644 c/include/libsbp/legacy/signing.h create mode 100644 c/include/libsbp/signing.h create mode 100644 c/include/libsbp/signing_macros.h create mode 100644 c/include/libsbp/v4/signing.h create mode 100644 c/include/libsbp/v4/signing/MSG_ED25519_CERTIFICATE.h create mode 100644 c/include/libsbp/v4/signing/MSG_ED25519_SIGNATURE.h create mode 100644 c/src/include/libsbp/internal/v4/signing.h create mode 100644 c/src/v4/signing.c create mode 100644 haskell/src/SwiftNav/SBP/Signing.hs create mode 100644 java/src/com/swiftnav/sbp/signing/MsgEd25519Certificate.java create mode 100644 java/src/com/swiftnav/sbp/signing/MsgEd25519Signature.java create mode 100644 javascript/sbp/signing.js create mode 100644 jsonschema/MsgEd25519Certificate.json create mode 100644 jsonschema/MsgEd25519Signature.json create mode 100644 proto/signing.proto create mode 100644 python/sbp/signing.py create mode 100644 rust/sbp/src/messages/signing.rs create mode 100644 spec/yaml/swiftnav/sbp/signing.yaml diff --git a/c/include/libsbp/cpp/message_traits.h b/c/include/libsbp/cpp/message_traits.h index 15cfc59fc4..3f3d25f6e8 100644 --- a/c/include/libsbp/cpp/message_traits.h +++ b/c/include/libsbp/cpp/message_traits.h @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -1331,6 +1332,77 @@ struct MessageTraits { } }; +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgEd25519Certificate; + static const sbp_msg_ed25519_certificate_t &get(const sbp_msg_t &msg) { + return msg.ed25519_certificate; + } + static sbp_msg_ed25519_certificate_t &get(sbp_msg_t &msg) { + return msg.ed25519_certificate; + } + static void to_sbp_msg(const sbp_msg_ed25519_certificate_t &msg, + sbp_msg_t *sbp_msg) { + sbp_msg->ed25519_certificate = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_ed25519_certificate_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.ed25519_certificate = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_ed25519_certificate_t &msg, + sbp_write_fn_t write) { + return sbp_msg_ed25519_certificate_send(state, sender_id, &msg, write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ed25519_certificate_t &msg) { + return sbp_msg_ed25519_certificate_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ed25519_certificate_t *msg) { + return sbp_msg_ed25519_certificate_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_ed25519_certificate_t &msg) { + return sbp_msg_ed25519_certificate_encoded_len(&msg); + } +}; + +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgEd25519Signature; + static const sbp_msg_ed25519_signature_t &get(const sbp_msg_t &msg) { + return msg.ed25519_signature; + } + static sbp_msg_ed25519_signature_t &get(sbp_msg_t &msg) { + return msg.ed25519_signature; + } + static void to_sbp_msg(const sbp_msg_ed25519_signature_t &msg, + sbp_msg_t *sbp_msg) { + sbp_msg->ed25519_signature = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_ed25519_signature_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.ed25519_signature = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_ed25519_signature_t &msg, sbp_write_fn_t write) { + return sbp_msg_ed25519_signature_send(state, sender_id, &msg, write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ed25519_signature_t &msg) { + return sbp_msg_ed25519_signature_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ed25519_signature_t *msg) { + return sbp_msg_ed25519_signature_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_ed25519_signature_t &msg) { + return sbp_msg_ed25519_signature_encoded_len(&msg); + } +}; + template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgEphemerisBds; diff --git a/c/include/libsbp/legacy/cpp/message_traits.h b/c/include/libsbp/legacy/cpp/message_traits.h index a81bcb944b..549d82bac9 100644 --- a/c/include/libsbp/legacy/cpp/message_traits.h +++ b/c/include/libsbp/legacy/cpp/message_traits.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -1129,6 +1130,18 @@ struct MessageTraits { }; +template<> +struct MessageTraits { + static constexpr u16 id = 3073; +}; + + +template<> +struct MessageTraits { + static constexpr u16 id = 3074; +}; + + template<> struct MessageTraits { static constexpr u16 id = 4097; diff --git a/c/include/libsbp/legacy/signing.h b/c/include/libsbp/legacy/signing.h new file mode 100644 index 0000000000..d25832342c --- /dev/null +++ b/c/include/libsbp/legacy/signing.h @@ -0,0 +1,45 @@ +/* + * 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 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! + *****************************************************************************/ + +/** \defgroup signing Signing + * + * Messages relating to signatures + * \{ */ + +#ifndef LIBSBP_LEGACY_SIGNING_MESSAGES_H +#define LIBSBP_LEGACY_SIGNING_MESSAGES_H + +#include + +#include +#include + +SBP_PACK_START + +typedef struct SBP_ATTR_PACKED { + u8 stub[0]; +} msg_ed25519_signature_t; + +typedef struct SBP_ATTR_PACKED { + u8 stub[0]; +} msg_ed25519_certificate_t; + +/** \} */ + +SBP_PACK_END + +#endif /* LIBSBP_LEGACY_SIGNING_MESSAGES_H */ \ No newline at end of file diff --git a/c/include/libsbp/sbp_msg_type.h b/c/include/libsbp/sbp_msg_type.h index 9dda8899e0..8003ffe7f6 100644 --- a/c/include/libsbp/sbp_msg_type.h +++ b/c/include/libsbp/sbp_msg_type.h @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -88,6 +89,8 @@ typedef enum { SbpMsgDgnssStatus = SBP_MSG_DGNSS_STATUS, SbpMsgDopsDepA = SBP_MSG_DOPS_DEP_A, SbpMsgDops = SBP_MSG_DOPS, + SbpMsgEd25519Certificate = SBP_MSG_ED25519_CERTIFICATE, + SbpMsgEd25519Signature = SBP_MSG_ED25519_SIGNATURE, SbpMsgEphemerisBds = SBP_MSG_EPHEMERIS_BDS, SbpMsgEphemerisDepA = SBP_MSG_EPHEMERIS_DEP_A, SbpMsgEphemerisDepB = SBP_MSG_EPHEMERIS_DEP_B, diff --git a/c/include/libsbp/signing.h b/c/include/libsbp/signing.h new file mode 100644 index 0000000000..f7df942c92 --- /dev/null +++ b/c/include/libsbp/signing.h @@ -0,0 +1,30 @@ +/* + * 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 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_MESSAGES_H +#define LIBSBP_SIGNING_MESSAGES_H + +#include + +SBP_MESSAGE( + "Legacy SBP definitions have moved. To continue using legacy message " + "definitions include `libsbp/legacy/signing.h` instead. Access to legacy " + "types via `libsbp/signing.h` will be removed in version 5.") + +#include + +#endif /* LIBSBP_SIGNING_MESSAGES_H */ diff --git a/c/include/libsbp/signing_macros.h b/c/include/libsbp/signing_macros.h new file mode 100644 index 0000000000..ee7196d3b0 --- /dev/null +++ b/c/include/libsbp/signing_macros.h @@ -0,0 +1,68 @@ +/* + * 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 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_MACROS_H +#define LIBSBP_SIGNING_MACROS_H + +#define SBP_MSG_ED25519_SIGNATURE 0x0C01 +/** + * The maximum number of items that can be stored in + * sbp_msg_ed25519_signature_t::stub (V4 API) or msg_ed25519_signature_t::stub + * (legacy API) before the maximum SBP message size is exceeded + */ +#define SBP_MSG_ED25519_SIGNATURE_STUB_MAX 255u + +/** + * Encoded length of sbp_msg_ed25519_signature_t (V4 API) and + * msg_ed25519_signature_t (legacy API) + * + * This type is not fixed size and an instance of this message may be longer + * than the value indicated by this symbol. Users of the V4 API should call + * #sbp_msg_ed25519_signature_encoded_len to determine the actual size of an + * instance of this message. Users of the legacy API are required to track the + * encoded message length when interacting with the legacy type. + * + * See the documentation for libsbp for more details regarding the message + * structure and its variable length component(s) + */ +#define SBP_MSG_ED25519_SIGNATURE_ENCODED_OVERHEAD 0u + +#define SBP_MSG_ED25519_CERTIFICATE 0x0C02 +/** + * The maximum number of items that can be stored in + * sbp_msg_ed25519_certificate_t::stub (V4 API) or + * msg_ed25519_certificate_t::stub (legacy API) before the maximum SBP message + * size is exceeded + */ +#define SBP_MSG_ED25519_CERTIFICATE_STUB_MAX 255u + +/** + * Encoded length of sbp_msg_ed25519_certificate_t (V4 API) and + * msg_ed25519_certificate_t (legacy API) + * + * This type is not fixed size and an instance of this message may be longer + * than the value indicated by this symbol. Users of the V4 API should call + * #sbp_msg_ed25519_certificate_encoded_len to determine the actual size of an + * instance of this message. Users of the legacy API are required to track the + * encoded message length when interacting with the legacy type. + * + * See the documentation for libsbp for more details regarding the message + * structure and its variable length component(s) + */ +#define SBP_MSG_ED25519_CERTIFICATE_ENCODED_OVERHEAD 0u + +#endif /* LIBSBP_SIGNING_MACROS_H */ diff --git a/c/include/libsbp/v4/sbp_msg.h b/c/include/libsbp/v4/sbp_msg.h index 340c230437..b625ffa181 100644 --- a/c/include/libsbp/v4/sbp_msg.h +++ b/c/include/libsbp/v4/sbp_msg.h @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -94,6 +95,8 @@ typedef union { sbp_msg_dgnss_status_t dgnss_status; sbp_msg_dops_dep_a_t dops_dep_a; sbp_msg_dops_t dops; + sbp_msg_ed25519_certificate_t ed25519_certificate; + sbp_msg_ed25519_signature_t ed25519_signature; sbp_msg_ephemeris_bds_t ephemeris_bds; sbp_msg_ephemeris_dep_a_t ephemeris_dep_a; sbp_msg_ephemeris_dep_b_t ephemeris_dep_b; @@ -398,6 +401,12 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, return sbp_msg_dops_dep_a_encode(buf, len, n_written, &msg->dops_dep_a); case SbpMsgDops: return sbp_msg_dops_encode(buf, len, n_written, &msg->dops); + case SbpMsgEd25519Certificate: + return sbp_msg_ed25519_certificate_encode(buf, len, n_written, + &msg->ed25519_certificate); + case SbpMsgEd25519Signature: + return sbp_msg_ed25519_signature_encode(buf, len, n_written, + &msg->ed25519_signature); case SbpMsgEphemerisBds: return sbp_msg_ephemeris_bds_encode(buf, len, n_written, &msg->ephemeris_bds); @@ -1013,6 +1022,12 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, return sbp_msg_dops_dep_a_decode(buf, len, n_read, &msg->dops_dep_a); case SbpMsgDops: return sbp_msg_dops_decode(buf, len, n_read, &msg->dops); + case SbpMsgEd25519Certificate: + return sbp_msg_ed25519_certificate_decode(buf, len, n_read, + &msg->ed25519_certificate); + case SbpMsgEd25519Signature: + return sbp_msg_ed25519_signature_decode(buf, len, n_read, + &msg->ed25519_signature); case SbpMsgEphemerisBds: return sbp_msg_ephemeris_bds_decode(buf, len, n_read, &msg->ephemeris_bds); @@ -1600,6 +1615,10 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, return sbp_msg_dops_dep_a_encoded_len(&msg->dops_dep_a); case SbpMsgDops: return sbp_msg_dops_encoded_len(&msg->dops); + case SbpMsgEd25519Certificate: + return sbp_msg_ed25519_certificate_encoded_len(&msg->ed25519_certificate); + case SbpMsgEd25519Signature: + return sbp_msg_ed25519_signature_encoded_len(&msg->ed25519_signature); case SbpMsgEphemerisBds: return sbp_msg_ephemeris_bds_encoded_len(&msg->ephemeris_bds); case SbpMsgEphemerisDepA: @@ -2116,6 +2135,12 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, return sbp_msg_dops_dep_a_cmp(&a->dops_dep_a, &b->dops_dep_a); case SbpMsgDops: return sbp_msg_dops_cmp(&a->dops, &b->dops); + case SbpMsgEd25519Certificate: + return sbp_msg_ed25519_certificate_cmp(&a->ed25519_certificate, + &b->ed25519_certificate); + case SbpMsgEd25519Signature: + return sbp_msg_ed25519_signature_cmp(&a->ed25519_signature, + &b->ed25519_signature); case SbpMsgEphemerisBds: return sbp_msg_ephemeris_bds_cmp(&a->ephemeris_bds, &b->ephemeris_bds); case SbpMsgEphemerisDepA: diff --git a/c/include/libsbp/v4/signing.h b/c/include/libsbp/v4/signing.h new file mode 100644 index 0000000000..a10c7c4a4e --- /dev/null +++ b/c/include/libsbp/v4/signing.h @@ -0,0 +1,23 @@ +/* + * 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 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_V4_SIGNING_MESSAGES_H +#define LIBSBP_V4_SIGNING_MESSAGES_H +#include +#include + +#endif /* LIBSBP_V4_SIGNING_MESSAGES_H */ diff --git a/c/include/libsbp/v4/signing/MSG_ED25519_CERTIFICATE.h b/c/include/libsbp/v4/signing/MSG_ED25519_CERTIFICATE.h new file mode 100644 index 0000000000..3d4fc41f11 --- /dev/null +++ b/c/include/libsbp/v4/signing/MSG_ED25519_CERTIFICATE.h @@ -0,0 +1,184 @@ +/* + * 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 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_V4_SIGNING_MSG_ED25519_CERTIFICATE_H +#define LIBSBP_V4_SIGNING_MSG_ED25519_CERTIFICATE_H + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * + * SBP_MSG_ED25519_CERTIFICATE + * + *****************************************************************************/ +typedef struct { + u8 stub[SBP_MSG_ED25519_CERTIFICATE_STUB_MAX]; + /** + * Number of elements in stub + * + * When sending a message fill in this field with the number elements set in + * stub before calling an appropriate libsbp send function + * + * When receiving a message query this field for the number of elements in + * stub. The value of any elements beyond the index specified in this field is + * undefined + */ + u8 n_stub; +} sbp_msg_ed25519_certificate_t; + +/** + * Get encoded size of an instance of sbp_msg_ed25519_certificate_t + * + * @param msg sbp_msg_ed25519_certificate_t instance + * @return Length of on-wire representation + */ +static inline size_t sbp_msg_ed25519_certificate_encoded_len( + const sbp_msg_ed25519_certificate_t *msg) { + return SBP_MSG_ED25519_CERTIFICATE_ENCODED_OVERHEAD + + (msg->n_stub * SBP_ENCODED_LEN_U8); +} + +/** + * Encode an instance of sbp_msg_ed25519_certificate_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_ed25519_certificate_t to encode + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 sbp_msg_ed25519_certificate_encode( + uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ed25519_certificate_t *msg); + +/** + * Decode an instance of sbp_msg_ed25519_certificate_t from wire representation + * + * This function decodes the wire representation of a + * sbp_msg_ed25519_certificate_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_ed25519_certificate_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_ed25519_certificate_decode( + const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ed25519_certificate_t *msg); +/** + * Send an instance of sbp_msg_ed25519_certificate_t with the given write + * function + * + * An equivalent of #sbp_message_send which operates specifically on + * sbp_msg_ed25519_certificate_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_ed25519_certificate_send( + sbp_state_t *s, u16 sender_id, const sbp_msg_ed25519_certificate_t *msg, + sbp_write_fn_t write); + +/** + * Compare two instances of sbp_msg_ed25519_certificate_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_ed25519_certificate_t instance + * @param b sbp_msg_ed25519_certificate_t instance + * @return 0, <0, >0 + */ +SBP_EXPORT int sbp_msg_ed25519_certificate_cmp( + const sbp_msg_ed25519_certificate_t *a, + const sbp_msg_ed25519_certificate_t *b); + +#ifdef __cplusplus +} + +static inline bool operator==(const sbp_msg_ed25519_certificate_t &lhs, + const sbp_msg_ed25519_certificate_t &rhs) { + return sbp_msg_ed25519_certificate_cmp(&lhs, &rhs) == 0; +} + +static inline bool operator!=(const sbp_msg_ed25519_certificate_t &lhs, + const sbp_msg_ed25519_certificate_t &rhs) { + return sbp_msg_ed25519_certificate_cmp(&lhs, &rhs) != 0; +} + +static inline bool operator<(const sbp_msg_ed25519_certificate_t &lhs, + const sbp_msg_ed25519_certificate_t &rhs) { + return sbp_msg_ed25519_certificate_cmp(&lhs, &rhs) < 0; +} + +static inline bool operator<=(const sbp_msg_ed25519_certificate_t &lhs, + const sbp_msg_ed25519_certificate_t &rhs) { + return sbp_msg_ed25519_certificate_cmp(&lhs, &rhs) <= 0; +} + +static inline bool operator>(const sbp_msg_ed25519_certificate_t &lhs, + const sbp_msg_ed25519_certificate_t &rhs) { + return sbp_msg_ed25519_certificate_cmp(&lhs, &rhs) > 0; +} + +static inline bool operator>=(const sbp_msg_ed25519_certificate_t &lhs, + const sbp_msg_ed25519_certificate_t &rhs) { + return sbp_msg_ed25519_certificate_cmp(&lhs, &rhs) >= 0; +} + +#endif // ifdef __cplusplus + +#endif /* LIBSBP_V4_SIGNING_MSG_ED25519_CERTIFICATE_H */ diff --git a/c/include/libsbp/v4/signing/MSG_ED25519_SIGNATURE.h b/c/include/libsbp/v4/signing/MSG_ED25519_SIGNATURE.h new file mode 100644 index 0000000000..d84daf544c --- /dev/null +++ b/c/include/libsbp/v4/signing/MSG_ED25519_SIGNATURE.h @@ -0,0 +1,182 @@ +/* + * 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 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_V4_SIGNING_MSG_ED25519_SIGNATURE_H +#define LIBSBP_V4_SIGNING_MSG_ED25519_SIGNATURE_H + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * + * SBP_MSG_ED25519_SIGNATURE + * + *****************************************************************************/ +typedef struct { + u8 stub[SBP_MSG_ED25519_SIGNATURE_STUB_MAX]; + /** + * Number of elements in stub + * + * When sending a message fill in this field with the number elements set in + * stub before calling an appropriate libsbp send function + * + * When receiving a message query this field for the number of elements in + * stub. The value of any elements beyond the index specified in this field is + * undefined + */ + u8 n_stub; +} sbp_msg_ed25519_signature_t; + +/** + * Get encoded size of an instance of sbp_msg_ed25519_signature_t + * + * @param msg sbp_msg_ed25519_signature_t instance + * @return Length of on-wire representation + */ +static inline size_t sbp_msg_ed25519_signature_encoded_len( + const sbp_msg_ed25519_signature_t *msg) { + return SBP_MSG_ED25519_SIGNATURE_ENCODED_OVERHEAD + + (msg->n_stub * SBP_ENCODED_LEN_U8); +} + +/** + * Encode an instance of sbp_msg_ed25519_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_ed25519_signature_t to encode + * @return SBP_OK on success, or other libsbp error code + */ +SBP_EXPORT s8 +sbp_msg_ed25519_signature_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ed25519_signature_t *msg); + +/** + * Decode an instance of sbp_msg_ed25519_signature_t from wire representation + * + * This function decodes the wire representation of a + * sbp_msg_ed25519_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_ed25519_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_ed25519_signature_decode( + const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_ed25519_signature_t *msg); +/** + * Send an instance of sbp_msg_ed25519_signature_t with the given write function + * + * An equivalent of #sbp_message_send which operates specifically on + * sbp_msg_ed25519_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_ed25519_signature_send( + sbp_state_t *s, u16 sender_id, const sbp_msg_ed25519_signature_t *msg, + sbp_write_fn_t write); + +/** + * Compare two instances of sbp_msg_ed25519_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_ed25519_signature_t instance + * @param b sbp_msg_ed25519_signature_t instance + * @return 0, <0, >0 + */ +SBP_EXPORT int sbp_msg_ed25519_signature_cmp( + const sbp_msg_ed25519_signature_t *a, const sbp_msg_ed25519_signature_t *b); + +#ifdef __cplusplus +} + +static inline bool operator==(const sbp_msg_ed25519_signature_t &lhs, + const sbp_msg_ed25519_signature_t &rhs) { + return sbp_msg_ed25519_signature_cmp(&lhs, &rhs) == 0; +} + +static inline bool operator!=(const sbp_msg_ed25519_signature_t &lhs, + const sbp_msg_ed25519_signature_t &rhs) { + return sbp_msg_ed25519_signature_cmp(&lhs, &rhs) != 0; +} + +static inline bool operator<(const sbp_msg_ed25519_signature_t &lhs, + const sbp_msg_ed25519_signature_t &rhs) { + return sbp_msg_ed25519_signature_cmp(&lhs, &rhs) < 0; +} + +static inline bool operator<=(const sbp_msg_ed25519_signature_t &lhs, + const sbp_msg_ed25519_signature_t &rhs) { + return sbp_msg_ed25519_signature_cmp(&lhs, &rhs) <= 0; +} + +static inline bool operator>(const sbp_msg_ed25519_signature_t &lhs, + const sbp_msg_ed25519_signature_t &rhs) { + return sbp_msg_ed25519_signature_cmp(&lhs, &rhs) > 0; +} + +static inline bool operator>=(const sbp_msg_ed25519_signature_t &lhs, + const sbp_msg_ed25519_signature_t &rhs) { + return sbp_msg_ed25519_signature_cmp(&lhs, &rhs) >= 0; +} + +#endif // ifdef __cplusplus + +#endif /* LIBSBP_V4_SIGNING_MSG_ED25519_SIGNATURE_H */ diff --git a/c/src/include/libsbp/internal/v4/signing.h b/c/src/include/libsbp/internal/v4/signing.h new file mode 100644 index 0000000000..1b8577e4ff --- /dev/null +++ b/c/src/include/libsbp/internal/v4/signing.h @@ -0,0 +1,75 @@ +/* + * 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 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_INTERNAL_V4_SIGNING_H +#define LIBSBP_INTERNAL_V4_SIGNING_H + +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * 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_ed25519_signature_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_ed25519_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_ed25519_signature_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_ed25519_signature_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_ed25519_certificate_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_ed25519_certificate_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_ed25519_certificate_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_ed25519_certificate_t *msg); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBSBP_INTERNAL_V4_SIGNING_H */ diff --git a/c/src/v4/signing.c b/c/src/v4/signing.c new file mode 100644 index 0000000000..1fe67ad80f --- /dev/null +++ b/c/src/v4/signing.c @@ -0,0 +1,179 @@ +/***************************************************************************** + * Automatically generated from yaml/swiftnav/sbp/signing.yaml + * with generate.py. Please do not hand edit! + *****************************************************************************/ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +bool sbp_msg_ed25519_signature_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_ed25519_signature_t *msg) { + for (size_t i = 0; i < msg->n_stub; i++) { + if (!sbp_u8_encode(ctx, &msg->stub[i])) { + return false; + } + } + return true; +} + +s8 sbp_msg_ed25519_signature_encode(uint8_t *buf, uint8_t len, + uint8_t *n_written, + const sbp_msg_ed25519_signature_t *msg) { + sbp_encode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_ed25519_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_ed25519_signature_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_ed25519_signature_t *msg) { + msg->n_stub = (uint8_t)((ctx->buf_len - ctx->offset) / SBP_ENCODED_LEN_U8); + for (uint8_t i = 0; i < msg->n_stub; i++) { + if (!sbp_u8_decode(ctx, &msg->stub[i])) { + return false; + } + } + return true; +} + +s8 sbp_msg_ed25519_signature_decode(const uint8_t *buf, uint8_t len, + uint8_t *n_read, + sbp_msg_ed25519_signature_t *msg) { + sbp_decode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_ed25519_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_ed25519_signature_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_ed25519_signature_t *msg, + sbp_write_fn_t write) { + uint8_t payload[SBP_MAX_PAYLOAD_LEN]; + uint8_t payload_len; + s8 ret = sbp_msg_ed25519_signature_encode(payload, sizeof(payload), + &payload_len, msg); + if (ret != SBP_OK) { + return ret; + } + return sbp_payload_send(s, SBP_MSG_ED25519_SIGNATURE, sender_id, payload_len, + payload, write); +} + +int sbp_msg_ed25519_signature_cmp(const sbp_msg_ed25519_signature_t *a, + const sbp_msg_ed25519_signature_t *b) { + int ret = 0; + + ret = sbp_u8_cmp(&a->n_stub, &b->n_stub); + for (uint8_t i = 0; ret == 0 && i < a->n_stub; i++) { + ret = sbp_u8_cmp(&a->stub[i], &b->stub[i]); + } + if (ret != 0) { + return ret; + } + return ret; +} + +bool sbp_msg_ed25519_certificate_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_ed25519_certificate_t *msg) { + for (size_t i = 0; i < msg->n_stub; i++) { + if (!sbp_u8_encode(ctx, &msg->stub[i])) { + return false; + } + } + return true; +} + +s8 sbp_msg_ed25519_certificate_encode( + uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_ed25519_certificate_t *msg) { + sbp_encode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_ed25519_certificate_encode_internal(&ctx, msg)) { + return SBP_ENCODE_ERROR; + } + if (n_written != NULL) { + *n_written = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +bool sbp_msg_ed25519_certificate_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_ed25519_certificate_t *msg) { + msg->n_stub = (uint8_t)((ctx->buf_len - ctx->offset) / SBP_ENCODED_LEN_U8); + for (uint8_t i = 0; i < msg->n_stub; i++) { + if (!sbp_u8_decode(ctx, &msg->stub[i])) { + return false; + } + } + return true; +} + +s8 sbp_msg_ed25519_certificate_decode(const uint8_t *buf, uint8_t len, + uint8_t *n_read, + sbp_msg_ed25519_certificate_t *msg) { + sbp_decode_ctx_t ctx; + ctx.buf = buf; + ctx.buf_len = len; + ctx.offset = 0; + if (!sbp_msg_ed25519_certificate_decode_internal(&ctx, msg)) { + return SBP_DECODE_ERROR; + } + if (n_read != NULL) { + *n_read = (uint8_t)ctx.offset; + } + return SBP_OK; +} + +s8 sbp_msg_ed25519_certificate_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_ed25519_certificate_t *msg, + sbp_write_fn_t write) { + uint8_t payload[SBP_MAX_PAYLOAD_LEN]; + uint8_t payload_len; + s8 ret = sbp_msg_ed25519_certificate_encode(payload, sizeof(payload), + &payload_len, msg); + if (ret != SBP_OK) { + return ret; + } + return sbp_payload_send(s, SBP_MSG_ED25519_CERTIFICATE, sender_id, + payload_len, payload, write); +} + +int sbp_msg_ed25519_certificate_cmp(const sbp_msg_ed25519_certificate_t *a, + const sbp_msg_ed25519_certificate_t *b) { + int ret = 0; + + ret = sbp_u8_cmp(&a->n_stub, &b->n_stub); + for (uint8_t i = 0; ret == 0 && i < a->n_stub; i++) { + ret = sbp_u8_cmp(&a->stub[i], &b->stub[i]); + } + if (ret != 0) { + return ret; + } + return ret; +} diff --git a/docs/sbp.pdf b/docs/sbp.pdf index 211e05fe64918d964b04410b3a4dd01ad0240baa..61941b7fdfaf86c5698140c5c3fc58d58ac48014 100644 GIT binary patch delta 164683 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�Od}8pO0BZYiXIds_T2SOqJ5}Z_F1N zO#m3euvhhF4fy_D7VcJ@sU7O@)L?GdVmcXH`O4R)nBx2#4F`*Gyxzsp(5jKDEZvfB zhWa3h*qVOw1_EDGA|Yg*x75?jFLd6z46x<+#tWO9s3FCB6L={gGTe?m$E?l=0)as( zsa&w}?Z|%gMw=8+(?JB&d~f!t_=)L~vXj40W@%N~C0SC;niU&!`Ps%(5xK1LZY@3c zk4cr~ZyzWj!Xc{blOeB6!%7YL_ogDrDgq|}iGUMPOP|2@kg;5=&T)#`~g7w;9w-I%EVHNC917Q-jd@z{a5 z-$A{>J-1bt^lE`}X8Dp_`EX?j3Yk!V7!ea6uK_~T3%)JZrn#zP>E{ik&ntX~lF(~K zoI(jrT_%DefD-uCd@_1CrKO*hW*{mx7slnjbHTqj0EM#^JJH>!_^`7-@rO0Bmr@RYriHieT-r z$7<0O<#w-cd7&G0E1E;8LJ~4Gy{ST>1!alTa!w$6=mC$+)03be8P>!L-WNNMxrOI! zpyz_{_HSAQ-DU^Aa5LBx+;A8Tfk9;m7G09PC>3KmtmyfPqi0PIkBi${<hXv-yEWy&Z4D1f^m@HU~Q(9pWG8wKWf z^LO)bd1W>qC5;po=zDZ7O+VDUJ%e~dyUgGD+Xj=)iOWlZ-3%tcrjzV((Zurn4MYtt z_u1wT|J`3Y&-zYyd$dx-K;g)>CD+wYiIdpbPPqyXTe=SfAy!5L&V33aAm^a>V4h;! zn9%Tk3D=VXi)Yk(6QNb$*Ro!Mk>^Ry1IRQiUu9qHn+U(N4Z49?ykNNCRxK;Vecz$FgxkTN!}13#OWAeX)+bU)8h<982Y&L5Ddm zh=(Ez)flf^&?2EZ`NSFt- ztweua>?%p2=I9WgpWX98(`PnWysiyj7!vuKH(z}P4pBIBT(jh2jLK%pQ8<*;GA9+Y zxdVn8y6_cQX0KInJQX9=pWyjntrZ`}Y>viCk|TB`;p}?)AOy;`+0@`8OQxge3q*3S zAKY$%=Q%zI?LJYhyCg0K^o+xSz42B$IPMg3TRr0GgmA*+E=`x07iaGZ1ucyfWVD00 zV>d`c$;>tz&#p1qev6r}ALN!?Y$0THPZ6ahp89~*B%0@!ZF+a(&oqB<5NtyWlZ_gQ z#JdgQUHk{8VeTmY|DW&boEc;U!0!xH0c^owo%^4?`L2t>{6e(^5Mq3wKJfffh0hFL z2gl6Zw*b}4OdY@|6!y6ct!x;whl+KQ?I7Fc-nYMiW7n;&|H>ffee|C+4bH{+FW#TN zbKD4U2Zc9zk7S6&u73szI;MAFK48;)+4~EocK#{-ziaq1laZk?A-MSd)07#3+uW%A zm)du-^BS;wiG(Y>PVCXS8g_27?8MS#7D{wWSah{Fjkn;WRLLbqUhZgcF3p3Tzn`fH zXTb>#P>kYXSoUBsY%I!-hJ5f{Vjz*yP@~+kWJ4McZ1NRr|4GZvKS9#+CSya38Cn3z z07BN1EFNGhVWy{Adz0KqS^|h6{Pt_YQqo07iU@y7E9rQ)$hfFY~{EKdxns&cs+<^fW|3>7%GY)|sT(vtHi zE9{|-@lf{yW@a+%JfOL4dU#rHv8ktaKvERn6|6# zD@$XnC(|bq0%Fs?*q_ld+N*gu1I6?VTKtgagQ%wt(k&1+Gd*( zMqOL}-mhzrmQ6(#gpuO!;uY94ed*XJl3+))+54HbR+(ox|A-*+h6eX#Z{6#~sZ|cX zBl{`1(;)=OX~J2=z;~~a!(Zxoj;@*Ip(|%c7b*}xfsL_Z#1okFd2D^v=PRPS{Y_$C z6JPD6E6##YZn%fJG>iX?U1&%&G_hJ#4Y^;n^fiE=X{F|G3Y6C~fS4~(7mt@db*N#3 z_MK!_MCe}SHuI!tb zW-mX__PKF7gtLh9x%a`}a2{Khsx?#HM3jPZqA?Rl&OogP=>LqQI;yAiO8SsY8IFl$ ze2z}0Xz(Sl$H;$1qDUrfGspc{L40rtHvJR-Jt3?6Q8CVeAQHFTp76cTl2Bj?_p}Mg z4>&32>ImVs1^pIB>!Clc>5Km`XZJZGu?MZLlYQa~{W_hfU497YwdDFcLvCysk?^PS ztio4N0Ai;qrdD%v6<=XJ_Km$_5Ztw)Ad?M*y3y~0GGXlY1JWu$rb3>m2{ahz$9Wq9 zSXyj{++SHZu8uD+=Vs8=2ZNj45drO8nMAe#WT2fAtgql_@^@Wrvfwg5IEZ@xclh=d z#VSXc{VH`P?Nqzt=^3p)?=!f6!Z2|yR|5p~isj_nb zWT=VC*vHNX&SL}1EHB=KaBxzb=KPN83Yi69WTYjU?H7iq)WTpCSehN^s>UaD-jo=-TDt`%)kdjjA z`FVRHsP%$)A!2E1UJy@Kb0P$4{IXUyZ$+g*nbaQJ@alFZY@H?`cirO$5q5^OtjOfT>JM1B?(tx}E3QkHdD_Nm#%9^ii}E#84PxpJtI zLl#0Fa-MvXOBaJ!w-0&Gluj^FWSZCL5Ia-!AhdPB9T|KdLg&tCY79D(jzb&wSUF^$ zmi_JZ3rv@HzO}5ep5_^dPHQ7v=Gtxd+5O9K_#QlT zK~c~e{F|Fv;Zj!E)~tbBXe8e(DIHw-HsKADE>~h=xQO$)reDaW%B`$~{_1Cp@$#+E zpA&dfIh6ZvmD6V#nsJ<@^ek^cFA)?UMa)n|eK`|dr%#a+6N*2vKw#&z{mP_Y#Lqo= z^kGDHB;JZ|4eumpFNVpPsskX^7Zm0BPxZ|d;e@2`Y_bR7z~D-2F}3l%dn}5Thy`K{ zFm5F7{RMCvjywE!0SIXV_<|m>?J?L304ay;k#+8XTkRRH)S3r$&<`g;l%}CtHa^`0225< z+jgy1%=|KSoss9W00^MuUcwLKfo7o>-M)?74uy*;apm(8@G3TX>(Y15k78R&6MwV~ z{wv~~QJ3gfA;^B7XH>Me`IbqZ4o_?EjdMS<4G1CRXgs4br*Bg!JIfm;Mw zD?rbg@@yWm!msS1cZthO4H*@kWkHY!Yr>iz0Am%t{Sz;*@u|(}e%{g7Q`cV2(_Au3 zz+vINzE@)*x&v2L)I4$JhcVP^DgV*VWIs+ucYpIrhe`EY>2Sc;Wq?l_Y!20A7s8nq zB|Mg1-uFw8ld=6wdl#c_;4&SjZa@mRdVU=sLn}sRp(ukgAH|i*lCI|*^FOR&OvnnG zIc^k663iPneVKOzb)_8I@b^3O^Y<#(5 zP7FYO20j@99d>S+k34>%7zJ)F4|? zaODcByrDNfxF;sMY_j%S6OrehVD)%FsvY5PPVWn>yy5ldv>icoB0q2wl+3|RN^mok zF*F)Uh)??TWbnn1%CC zVDn8>L*c?oXelrG?AZ`hiVl>9+h~_SJuNT0tCIMyG;By8GC4?lb;-@tFS6@hVU%d- zl1{!$8ECe6;67j(g5(ep>QMr38WCYaLD4f7K8%%?SEidh+{sN#l3VoPzoHC>iD^I& zur^fC_Z0Vi57^7+^Zl!#lKOx?+z$CVFc{b3J@gM=Z)&pgFQ71rerPhfmbPnd@{Zj& zKP;W;7tFrju#74-v56^U!-q3nkV&+fIBr|w=VBAwX*3>jl<0pU@#6C^G#u(Z_rbaZ za|0h4->wfoz9MHpKau*{p|@ATw6m_9<-#J>7QN<8xkXUaZqKLJR45;~HFMQPZh zTc-n!L0XD~_u)LYdxtGggfGBHKA4)zOU`Ns%j2)!ntQv){r!a%wGP^?S2K$|3L2=q zy-c_3PaKe}H2d^VnwKQ!M>4uyKahH^rAZskbd3ZREXJwS&`@Ys4-7^l8MH4Zzd9ha zofuWpoFTDElw$V{>}x;j!%X~3wJab^B%Ae=rH?M56}BqKBAq{KHU>hHf_qLwgpNSJ z62|yjQi@$wH|7xD*2jVE!7f+)o@kLxO!n93%YHaB<-+5sZ2IID7^WRZjZi5YeLEm6 z%`(>*xM-m1EJ9WH-!W_a&C#{yTCyb~&c2~|tov90z&6>GN)_>7I+rWr)p1_@*o5&< ztRqn8l=-6UvUvMT4mKLUtT}4y_T%8M!2Lf+de={L|0^2*#W`aFxc`HNfbBY8QgeAx z``@))^i{Di5wM5+i`oLt=Qi$JIk@-TwTUf>-#oJzO7w+ zuCf&EZI$jFU%k3LKWb9;aVEJk_8w1T2u5{fN~#V*p}O57=)k1%v~(o5{F<~>mRXOMXXkRef}g8PrwjI?u(vLF(T2P zwHo#68yE%j`1n8l94TkhNNG%)=qmX^XU&pOom@2T6Tg}nCoYm&QKWF(w4>wP;1Y+k_0omm3*K z(g!l2jW3CyERM;>(peF?vfU3pVLKlBAx<%cPlt*MH$k);0IaXM;uLn&2>oMU&p=tf zb3n)Ty@-KTn^jKO*$+^eid2#N!Ob1Kezq>h=YH+?V0GD5 zZnq`j4BzR0rLWyCYU|7lsdIM& z(Vp8go1mzQ6nJZIv37%Pa&B;iwaqlCTARMm6)l#FI@tG2!A{GvgDts5j4Dp%lIv(d z@J!pAAe!$Y{C&I*ej$9+D>w)T64GUbnv_w*m|5*$qef4nhAcq4W?If#bakE0 z8)te7@vX(l`PGX9_UfX7^>}w&d)1$6s)pf9TGyX07a)I3y*c*$G?!Kzd^LpCz3{$w z!y|z9lI}$@KLVm5qw$Af7E#C!_Vsw(uu(Lr{+bm*DcF?Bc(2i%bNeU4YX!S$*j~mBR2tl|qPL-4U*`&RpE8$&4$V@|1HRBu;$p1Ndu$Y0jaR zx>KirA#mjQu_8^mDc8um;X%uDAgHxy?kaYf%YYLSyE`JEN9u%_M-ML!Vms(vi*G54 z0wj;mT~(pcn7Xx~DaYZ`dEAV~s^Lqflzt)6Vo+zM&g1%SZeF@JwyslO3X zy0A`~LMpeM9HYG<-obsLi<=_CpkGf;PpX^_2QGD90ZKoNxl zJE;^Mn}SqHhV3FCrOg^C4vaG0>B7lmH!tz&K3(*y_UZ;L8k6K{niro2{mv6&PUm0|@(Ox9WoKS9;nr_;DoM4H!;V~! z_XBHmey&1c z0`f1mKWM@ci-+!7=R_v5M2LS(aY>O#9s@LMJl&;r+G?(I`o*)f!%tRS$RLq6Mo*Ju zkZ|_p@TrPap`)V~Ba)Ohrc9M$4~I_6S&Hg91DfAqL({V*Z>RN+W&LVvxi|;Z$KBB+ z6LUz=y@r->tj8 zW4d*r75*%|W3^yy5V|l2S&~&Sq8bi32qXO~%+fIC?%0q_5UU72et3L@kqE$7ex(nj zc*tf*`>=%f68!ZS;oH;S%>Sq8kTpSKWs-*gKuw`8XV>6O;D#aNROz=U8E5Opj8+`& zGxC|db$Y!$X?R?53sgMXo~DHU(eHnqoD!!9)1pNh&@q5NcIp#yKbT*8zLLmUXS>QS z51Y4sY2^O4X3p;YEAh{}b7J)Vug|QH{!Qn;(apx0&CYDnU_tbS8MIk2NuHNh7GvMG z3LvmAkym|Q`mYtlEd`_^|L^UNr6&ir!|;fw1+}K65Y8}JxcRttqsLA>jvW^qERu%{ zZ6HZ}4MI+4%87M}{I}(txVF89r&o6S03{S#tHj&rgcZ+-gguX7)Ima)IDM-?#lI$ja z%FqZ1^`ol@#N#YVL+L46k8`rpiZ7ug8i@Ing|Hb2J(z{!i+?Dq!wW7PvR90Nez~_L z+h1|0xIYsEm(3bKrjoUTO7t_}%zEGKb5A4?C9I?ZP4~YywaXIHn(5H~_*t4(;Lq@4rq4C4mI-e{ z0JQf-D0*QhC#`M5D#kd+7oOb1#QTtF?d`d@S8-$dS5kU{XC1`lr#N}0tYP}J4kY;r z&J9-;eygE42>I0VHexu-hG`$#coU!*I3)+0Dd~dsbZr7VrqOh+Yp73cbq{XQIG?>_ zP?P3{0)oR9tGy|v!xp>K7_UlP38rw$cY{mAXICio5SU6 zv)Y_6(<#C0iDc3a(>P_QZ^hGpX)MF-Y|*JXlhGp)AW5BmS$5^a;;m+7XTqs@Oj1=Zcd|vL zG>wsPrK629bL?mhoq9z(3Sq;w}k8fOZ?+qZz-tW7a2x(d$B`ZBf4Ok#FvZed+aoDpL+oV?zyruAIG+S zzjg5o6Ui%;8SN6)EcSM>_mC52O@+8oKYLv|Pey32gQXN>9#?TEC~+rkd9zYL0Ed)D@aYg!_qGkXvL!zpDvkNJLm=9Ip?;B_!XB7P>_p6iV#&}Mzy(>CRI}u} z_A_P8r=|H0QuzeEEb0gFdK#VolExkWdmf*W7qu-WAM0mQ1G2JizPiut+~Rrep^17VF!Nem-h5d}#=0f}5SY5b~&Q)&xh znyRZMKpkdgTQG%U6h68y;PBXt_6@gOBI(5tQ4NfOh&~LsbGwYXy>Ps;QtSi0*dyPT zXEg|*MgXItI&7;~_2+>MT82{jknb(9v6bP}UP@tEvuQ(AW2VY4n~6i;@>OF4ZSt17 zq5(2-7sP$?u4&+LkeLTKlJw%|3|h+C&r>&dV*%s>v*Umsfr!a>k3YHOCa23-$=1Bc z%@(kH{Num(YFu?st|S{2rf>>9{nc!~T8nA0jdH_M5t+E^_^8WzrWa85(#3q>PlWN5 zLt;gxhVdL1vQ2+M_bD~S)@dB9qs^yWBxA2Pq}~=NOXUaZt9;+xxQxb<(t>G;NiTq9 zu>F(TF4vTj!`(m>nl35B2U$5NPtQMG^ewFR^3y;L4)Mvu;FUUMl4vH zyM9)u?#zOcQgT1Y71ml|I<(&drJQ!!{fMYYBm8GeoG#;pO2wjB6KMYQw5t<~xc!;L ze2{cZ!ZR{35|=kkmTYF8)VYXvOT3LSaDEjT|E z1$lvsMnJb5c|lWKVR$VGW&)A32PAEud{~_RxOY_%k~*sGbl3&hz^2swiBp$CKX0P4^l&kX-yhv7w1K{-4amnd+)ci^To^33uks+^+=C z19x>5opX5*K`(D-U4|CXWwLOv@Q>!_&<>)_k4;QxWQy^{Iwm;P2p)d}QI5;9DlL4k zsfT(c2=x3Y)s84){L))hWXTwyl9O6ps@DGggu#GxBFpvrf}pTR4s8>m;zpa!rWKmv z3jx(G7&ddxccRb8B4G;X|1j*B3`C77y_zsoY}9 zZaLZo%e&>yg4=ek$dhtt+n+i1pT%tI8G9%OtKTc(4$19M|4vc=qM{0gZ0XG;4P<@i zcb979cexAqIsaBp%>RFE{=JF@d8jj!Xp%zmMhv$^L>34!k0VSx4gIvGt zWk28aB_!3IB^(gMn5Z6W{CBK5Ubp~cT7EPVc2KdRQDyux`>UjL*JYH&LA=cADt>}= z?JBrhzk|pFz{rh8UnTG)=~p#rfs{{1zx#tEIAkGnO!>c~$neJTre*A)Gxl-1)<-o| ztZ$1-+()5FSMy%eei0p9rP^1*MpLdSp&O}kYM$IbAYMOY%21X@MPf68-W>dGfjQPB<$z?%Gg-$ zCJ4|ssWzW73%RW@85*mKn!sfI5;N+HKyb34jZ-_5ieh~lJD7{sIKO^5cFewba_U|9 zoke-w`ci7L&y-uli0S*m8IX21F;@M;ZiCIo;J4i(+aK-yia8XAF0)+Xs{DZ-gZx6q z^#jZvBf`kn%du0>-)0||A|i}CQ9p1va61iHGApMT% zd|p1UHZRaBoo`oBoo`VZQGn!6FVn+@Av!aRGssG^{Tq7y6?4m z^@Rz;DuZf($=&43`NbefR<^HJw;_FggX1Q*F0mc&Ov!~%K4^KX#9KxXx-~QDI3ZQE zU4b(7>pb+YdtxiGFsN}%oZSgvc;gK?PBPyN^giXh6`VIzw8Z%Z8&2&8nOC5I98PHz zo61_YL^@%RL^|@(hP7I)-|vrEl?)M50;>YPObOi;UMn_}ccoh$Ggu8K#tb~FXu55o z{0DTlGDKlg8ywV#V#d`lWvK<0UC9X24uY3>(X4 zwuHuIvV^t}Y4^6$9c(7JQ}3jzTz--?TV1?F6Iiqz6wWs-da1ncb7&O{cux3yau|y& zbtN}q7>gV=C3B)RVddiYtQYCx;Hiqd^Fy%hV=fr>##ctOVV#-cqz^UI4MU{SI$PNi z^!!pRGV~FK3su%+c*xU07`D0EJ_ok{^C{@=9=*zZ5Z*JG>@u7ikGk)$IIBO+@{_(t zuKu?E(2vv3D^+-kaE~4qg)lt zH)|WC`c)l#hLOB=Y-r!Y+1%y$(Z%;xt*zBA;Bzx!LWQ(mVU? z+aj@G6MGcv_%=QJa}`CS)Q8F{ne);x2jo4kTLK!Q>Mhjn@$~5&G=Z1PG_=%ww}*f4 z-t_#puNbT{(e>4Ic>;RggCmv$%c1PI@7#|9EVMG)-}7b%P@}a%P@~Z0^^xd!9Kf2!-*k1JKKKxSoHm|-m-kX34IuwHHJLBs+Aw{z^{*HJtywV@Gy(>LWSOKDPZlc3KcryM6loKf^#Yb6p`RK*_5~J1mIk1I%@3Jh zz-XGqazXhZF;hQa2a`CoESpWSxL*RwPxqe%pWhgJ{>h4t#ze$KO;Nuh(`_6Nv#uRU~wT4S4?{k!xZNCs+iRUK$Q7-l>yiUK!b zc&S+r46X>y`uy3RpvGvF`G2L9E7f=v91V<_gCo%xoGNvr2^1Nqx`-$}oasapIqW2P87%a829zxxtLsic2qtr6vi0N zb!WX5K@l5}&7&eBR+H-#d>iddYs_bcLH%UKCI3KVwyZ2EpUvhZWHsCMZso{}W56mKt{QhW-G>jWY4U%IJI1loL2N^6LeO-?%2kQB>wRHX7 z=;}`2=xT3i>r{%IdaDi_C<^)zp&D#&Of!QGJ!Jo>EmZ-u1WoCvO$X25cEG@UA>F(E z(#7vUR(T)r8!a^ZvAz_=lHIJYx+-B&M(!w|oAt|URL1}6gh@4x`@oPQD^>Zd7Z`PYN-6>%k0Y;A`FVJl9M;njV&HOeF@u+ z7C4lenmU7?v1;L34})qBX{l`siesLAlM*fhsWS@ncHPK7XO<773wKNA&m9#u-!>hh z){@*CB!lT&srwLT?QqP5z1^g`A=F`Dr&@%viy7LoXbyjxrh?$AA`Oy`BRg3_>bAbO zk*V}gQ~7+9Y3T6@>VrPe0cc_kDj#<5vp5daJ+gX-_i=^IY=^0M5R%gDk5ID8Z2V*{Ck)dzfwI~c~>U<=Y9jkvvs2DsovP#)fa zm9(Ysa^>e*44w>KBRpNfKV(iD2! zXs9Vo3~B*v_{HJO6u)Qg#pdqJG*Z=nX_^8_cZuZsFIsQB%6wqNcU+RB&3|dcl%Gu( zIolCvS;J^~Lt}OMn{yV~c7^MwSIv777L_$QS>)2|apT{%>swVr7H$<<4K)`C6tN+Y z$TfwMX$Pu9gxT`6+!!$B>U(i@xWI}OFms)$@cjJ3{sJHS&pyd|h{&LJDI$=jRZc^ymO#tL%cy)inq6Ps=`b&!JIK6K8HJQv747Z!>ARBv6^RB%fD*?m%ONW z7*|xv!DCQIOu))McZt;4YXv=DC8CRP;=fYja9|Bl2k+=cyE0gDe1F}$-CpI~y50{% z`5Zs{5kJ}{o_ge4^ygYXyrELl--{4(wXR6rW*OtrT3aDR3HjIScJOkC~Ss*t-1%8 z67N$~l=w*u8}FJVqRBq6^(SGgKlu@N%b>*Z?IXSX1~)ew^QJFqH6MA*@vQWWW>6Rp z=)h5dAhsV~>DyKV!t3+sV~jmsb;fzy77R4)cv1)2e!_culO@PGV{QE)Ujm|B)=+3Y z%QAU3D^&1@mgcR18xkB;mRul#oH#qDVELL$m?r+qZ-j{PK=lWp>kpyMlNURT;uxTp z>Fzj>A(uC++>D~~pS>wI?fJD`m-qBWUV=8{+hBEE`EIP z2sT%s9}Y{T>XVCWl>xp}V7v@EE|e0<#Pd4NK=}yVpt}>D^y(+KJjs)}iBY zg<(+K4DP3NS}g~lKA+Ie0u&lo?cCOhfeFo_R3q#$6T1=&cAU$kS}a+aR|q$#+b%Y!s~jH$XL2zZ(=9os0AT+x&2*c4q?Uf%1y$LP(vjn&(dR zyT+E5f~}zRQejQP;a<6Tawu`+l+@BWr`=Zrgv4YDN(-_a2Hn0{o~(`<;g-1ruFlL- z3e|RKpm{$e;Io2ejT*0)0y#REQ6B3)i#>FTesLK1O{+3)M;!TRPZXW>??@=Y@8p{| z^{?2R<)t0ovPIrF0^c_>ic1dcwBHdd|3ol9^GF$>n2C^o$43ZU)`6!SegBC<>gP&| zmWDNu4aK_T7mX{z@RK2vTiFI#Q+E)`t52|n&&6oLtC9^m2$qne~Opi6keA? zy`E#^`X`MqIJxQ=U2Nd~k*3j)y1eYSuF4i}!P3}UE#5MUC-A#JFOfhP;e%EK*so1| z%*Ft$xU!Py(4IbC(*Tks_ia53QKO&|?NPnAQTvnG-M$ z*FbS&RrP-N;KhsgZ}I(%%$NW3Bc@Vsf%4EfU8q%Oyxc@DW)8lwxNPAiYFq)$yxSw| z(EQedD}y0rzYbVY;nJ6(A^Du9sG4-K>%*h-Q*wVSJ)(RO04;iJ}@RiJ3XO!XA4&(#EGM0iV>kJg7;d=`EL8d)edBYVs)PkPV$agcCIPBus); zgxuQcX*JtlsnvGqWF*h#9avM5+ZT3gsPH62zcRJ^>i2=iMrf41mC6wLb5U%$9hdjE zM_YS;JT>v-0uK5il??sP0H^5r;;Y?UpFs&Y2lw_eIv-r{9GOO&-Qg+62cS0=T&p$~Kr3M(KTr*2D5;(QS6u*Nxh z^dUI+6VP<&xBJg13-wFTL16ST$yhU$NL*;0XMUt%d==??+az)2n59~oR|e$&-E z$`eCkC?bJV=b{+}n=W3XORK)tyx4%cN__@~9gF&IKUYu_J-l)2%}Ey(GihkwZTG2J zVF1q$D4yyV13moA4tNsEI}(}jAM8J%9{}eyMAuC5=%u&Fa*l%)PLyd(*9>mhPc(;4 zq+@;WKKE;X^Jh$zfkcwtE!9OVUkChl7=yHct|`Y z*$6jSLkbCmzHjiEY8;(zIg)uZt&8|SD0|dQl$yWr%EynSDio@tbNFG%1PUv4DicJ2T4j`8}K!b6XIejvwY#!UrqCG=S z@Qnw*KE9#8dr$)#mU2D~7NTt^AX;AOrZk8&5&LK>EmWZ}_>@Pcn#n3P_ZV*w!B8(} zhpY+#S$LhJbe{1+Fd0i?kh1{Ri_p&%BK8QrgV0RjN|E{C*+vHFXJ?d#v&1A%0}KOt zmFk#`cw*!TAYY*L@@E6xX^7>orU~iJgYYMC-xR4nEC^@lRSKLcKS-g14l5VlYCYJ1 zBLyFco<)%b3DDS}0cePP1?p99*-aQ2023{(dd`lz28NS<#u^!eTtK8n?>YhJ#sYOA za!_{%pYJlx{@tJ(@uftK*d zg@y+R{u(-Dd5_7~QiCb>V*%$VYPk^ph94xhW#47dSLKr#UtiSL#Ox=vRh^&RZH2K@ z#R?l?fP;-xC|ek~=mq5T_C$=9hcBnjHn7dVKlu?bypcjhYZ@RT-G7R!J!^z56Bva* zHm!Vf=knF3(Rhx&Bh{tKZFFD(%&3SPaU(#svZtt{UqRkTPSUb|B04cUihE~~m5&V~ z4UA^86OmO$Dq#?epjhU$Vu<&bS36lCCu{Ps1D{S+W=vF^8XAT9qpU4*a4$fEE=)@3 zWWe5Xm8JWTOM`*zPW5G>0t2aVS+_C^!-t$KsfLq-{;1aL&`{BN$LSaM=Ar)GJ5Eb< zRgP*pwHZOLi)t32JsY-TjfY>#BVmNpk3JTsj0)2fH_PCn9v$}K@)&>@v&7uhP9qeKYNoZpw9Q>4X)HP#$gIeV|8&rGjBR?}2)SsVn+ z2$hF1)@IhMLybrJoH9Hk=txRI>vVA7si)P-wh!-0(GKH7G#wABl7Fng#s#Tm`d=Zv@zJAAaw~ONa1if6r zaUV6<*rj6oD{y)}8d1P@URr0NNU@(TH2>6%Dn%e|^h$?|qbZmq(PR-M7}2j44P-L> zGnX7X-sF`$Q(t$;`Uc}8;FS8|$FWWqv(ukQoz>-paT|pgo^)mRi|S>Pi*}ssjxz3f zf&O+_3EQPyp(SywL2vU|@}RYTF zIWsm)0~9apUAy{H&Fg9qEM|9q{-U6zr*}IR9GH~wsT%N^)rqF4+`=i5oFL+H5vyOZ z_wAy`)o~7wUWcLwS6>hb05Y*T({Dr{nJfo#bGV9i*`9JpP*4Kx%}vihUM_~p9NIA7 zWsWOBT zGK$Jn-~w8$Wz$-bo!+nGhb3HuU%u(j);X?eXKOM4%z|dMCbyW(T8JA~%}=qn>qp$m zAQUvh7i{A?7*_lC^wl*J?pJ)- zei5D6K6k+yKo_!qIEP4C?ptw2%#e)eX2KXQ+{;9Wz$}oI*aAQD{7B-4SV9-S6+5L= zuvj;iKJ&Bwvgx}2rdn7550!)Eci2~OZK1Z<5*5vQphu`tGIZExccq5|;6%g|Xz>HD z(i7`BSx=llX@5NB4Fb+|{4GJn`o(l=$*)QP)jRlF|6{Qqk9s7=^HYr)p)6n7xz8mZ5MHS38YYVg_-#VL2c*m zV28F{CZCw|@%L=RmYt>QEu=_3xf)ayM3Dt~ra0BM6OM>9Nq(^`Y%nigUsqqh=k@3H zTSUzHGfYc+pCFx2AuNdt1NiDQkF9E$MH*|3LvfGy`S{5*XeC0=w9ESo-B86P7Qv3s zGDK0tUX6S~ee3*=ve)xekAP)}pUdT!_z7;ixr(fi9S~9i`KoL=U{)w&KslN-(*M)& z7_EY1e6h>ESY_1Bq(`9Nps^PY;ufP8Oc@8_p>91XSD4m1Qtugo5VQXhw^1=!IoSTc zmj)J=RAN#9%|D~fZ@?xjIx?vu8bpOXkKbc^;T!J>1$sy@(rJfz-@kkpzI1w&QqWcd z@puzuxI4gwppP~nFyU?v32vrh3=9bPy-^DdPzs`gxBg7PNh2XM#^m`2DaCnbzmGQl zcKw=fntp;24t}_EA7xgQ&n}NQ6UZkLDUcptd^EKk7gl(%;sA?3qCLB<2kj8DXaKq2q7cjaR~e1quv zE{cUGmXK6IggUV(K?6V7A|4a#%jYA3nO%bKE&{DQyq?7&883!N#u6f*L`fZ641>fP z&}{kCcZzA3guti2LuKA}Ufp_OvuP5!j45!+5fV*@jcE4cM@?1Ogt`4HCAA_akIBM02HR&rlY7GX>_m8vKzM$vJf-U8=_xg4-dN zev1^j)<}!c(8|@-GA21fXN>Z3_-0%8Md23!-mgIuQZ`-sIP0S38lxTAudge97qZ{A zjSqLG!MT+{vXDq$Y$~Z}G?|cP;9-d5n6co+T0yuqCx%O4+Tz$w8*)#-LKv3o*)ok) z#!!;^)(s?Nw>=xkUs&)FMoy0*`7A=EA6aAIza|;$xVJ!k-c|;D*Yk$nCyGgoX4tZ- zx0W&20#`l#)E-5Mq7^X)XU+kyVlq*N-DuJ#O%**@kwy~+jRq3YfSX*BM-1|Y1q$c& z{y~ZgB|6=HIkJEK;@r!JfGklKNp}#CFcmRDa{wDgPwOhmbCNwlrfTwKqvnaoc4t1+ z^&7`5UC8j7W#dN~!-lYtFzQ`_Bu)q8dTN`f zNI+$XI+p3_{ii3yhefp|(sND;wl27D6ylrMCvS}xCQoRDi3heuBO5bEX@R4XX?8Kt zg2@u~JeaTQJmADKR6ZR=2GC?|1s`fq-0JNpF2h8@>EH2})&4qnVGAyy^Z9?{)U`Sq zm{LQQRd30rfwiXw%dpDiKC=M@E+Ztt5CLf%?X^-Dk!sds&UQ}S`_+uHEHOD84B`Gh zI@FK}k*$J{(`nTaR={4eDU7Tka_x0iJ@jwlb)}RUOw(5>p;&ebgBvwwtx^;FokSHn zKKT&=oBDm8!Zm-CHzd-X$$Q0ba)I?3=@UmLQq~RpItXygwVbdgUn@ykRJuSA z^n-nZ>y319Vpq2w^h0s5R2>2M+*ZcxPAcZyAg9xO`Z$acGvf8HrxCey@DC!4)Ik{9 zB=*St2?kyK{Ek$Ha;RvKRkEc<&H{|ZEHa5U{;kv<_-tsYXR%vvTlOCBi~4Oln(D8h zz;z z0bJvoORRhlAOBb>>DWnre#0*kV?^*1mO?#tgiB8qhF)&(WEk%P4g^APTjV7FAJBLQzuQun^X7_f`t@Gb`z8iz> zE%}e%F{_S=u6&ko*4rX9L~bY;wG#1~j*A*{9hB9)kzjaRe8-*GtJ_H;`a@5u-U5+ky`!f`EEsoP zU7(0Ri|3}LcsUl50;qv`%n6Q<(BaBc41p}_d-s@noJ?&GiRsVAX^V{S-KqX`8lu1p3ALjG!O{m>Ge0X*MG=#Va883Y`h`(Lae)a$nzK zU_pT2 zXMqj>T!!9XbR~YHiJH8qZ4#b4Eo13NDN@Dq$Dp@7jZPUFH;t23D{oDV5v2y-L zY6N9Y-35YEH^)DLzCmJ2b&F_{zhUqQlg$-~QzmSBe=-h%=-mIGCI8v^rcQo>asyYS z;<8Re_qeQCwHHP%`sG;&A_D2BF@8u#Mr_FJ``N88Hu!B3l;@j6E6C$m6gGFZFbyh zp^(N0)vP<|u-?feTjR^2e6IQ_0?+)7x@{&uwUf{A8LJ!_{Pd7kki5-&@dLpN4K(z8 zoNYa;-<$&Q`!<(IVw#XxL3;RvO@fRCfA004UtHYZ zHJ>3aX9Kf0zetlzd%!kdU;a+tQpT(&L*{5Z#81rqw2K%N2{w%Wb#R3|U_3Vr*B|*i z;eo6l^+`gpzZeNq>f#!0?kFGOR@qKEGs=Gsq+XOU;J#+A6~$MQS6yxht&Q<%R_baj z{`f;h;D3VlYE7)G-LAi8zP6U-Oj<6%K-ZZZia$BWr~Ajcx%?2~Uhvy*=wY?!xjH}4 z?4Xxe;e+vxF|}8`par1u0uTbsFA618kp4cr_L?>4wW^)DrxnbKD((C4r+K}i=mym2 zq?8u@wy8rFruWxHTV5Oz6G(mpgb3i{jvy8G1;UNwl zdV-qxuwbeXQ#U&?CZ`z*$O=Kod=vw*-ZxaskL)O+kRGdsTcW#cUF#ey942)P&vi4_ z`)(pgE>rg%01WbDlZPprO1;h*hUrIkp^Y#H@gXr+I>1BxI~v7@?W$R$*YUgpV81kpSS=}^B)tJA_K%4VA?`-*i&>ez4V5J=ARiBEhg zbUb11i2rJuS9RGETPeVucGG8A6kU$9LD^ESVHC6S*Z)Dokp=$Z(O>e_R;UO}SFXg9%Fugn?+Et6KzPbIs(BG2p}z?w{D8=tSyMNfmYRSy>4LJm42mq z-DHR+4Kg?ifFJf&$!5aHjhp#MSs2ayo#O42vcj&YFuoblYtT6yis@$O&`Ec};;i&TiFU<~m(pEj~=pC_TemULH&&=-P0i&*i4iuk_f}GVr`N&e( z{`?7uv?7zT+;yo?Ha|qGwpQJLd~Z?}T*rx=%cP|4&JH>!vGGYkOlLx#uY8v@@uN`` zz1-fq8&hY7Vva#400oYbBESBXri-*O7v=lek&hK^u8v(?9PnnXrnvq2LuZTkSLZ}s z@;G7EFjxeBDkeA}5GeJ8Mr!eaJa8{{Fm2Ge(0(FqmtlA@fDtM^LG+Y@nh3Y%zOCf5 zb=2h=!m-$mm#`3n<&MZLSt2@{nSBXXZ3V7?AIMRo*7_JiFzZ#d z4wYy|kJe#<;YKEVrehs`63ff#%k=nCn_zyJb>N<2D?U6f0!$9Y>jA09diNIa4obD1 zUrfVm;ZUlVpUmBy1H3v1O`S7x=0yArN4f%_@E`Yx6K-NYd_&8gGZnV(1kai-22~IS z+hD~7hy_MN)^OF%-1&zT>AtJ6p#FIM0z2`4gTDP_m1Y8IVAVF?ZnMcJvZJ(Ckmqr% zOSY6^itL9K2ENdeexUNb7IIHEN^+B|yrV1CRf&VZTkIQHxaK#Ba#++TNT;cySa4ZW z95$&J+Q0r@Ak}t_3yv8)`cWr)zL#xs@DC4oa*}Oa;Rk90;V;>Y4=r&rnAJZe1ao+c zmAfUERxv2W85SlEx_=&yo$f$Lm)F)T|Ku(Uz+qoA0pD7e1!_1Ef`_?8iO=e|S&~fW zvGS>Ocw004hy51art7VdUS3w8e`}V)*i`_weZk{F2}Gvjyf zm$dH`2|zX@Q;CqZHVjt0(@*9{NZ|_ zBBw&p1B!k+1%PAZfK>gu6TIiiIej?gNO$3tZ)!Si0q~(BMY3rIaj?`0IO?aK>ieXr zyTq2znna5|40|>oQia2?HXi~8lf2O6NX;g;bih$TANIabJS4yKv5u+2dy^h%PVCAP zrcB93B(j?xp^+`VQ^dqnLaEqHt>|V8&5b;70}Z#0xw`z0KAr{?@q29J@@aQFm01j} zs;SeEnU;%si1aTb=qxOn$3#TZk6C1e-W+PF8@cudd*_b)MJ=F1O?>E~lQ`wHBn1n6 zaX)Ish+qfUhg(o{iVr}9jLO(u}gcP^n#lB)CRf;YShGx<%=J?Pzhu|X}!@=QNG zfp_M4NaSZKbUz22Rf9bgs|*mNK?#DQgw-~Y=E@O8gLpLOf|cGExVy-IBxM*<#vt7a zoAAitxeef|%@em-#l|Qg%KDQL=gnfTeP7Abl0r5$D(!Rdr5aE=7m4zXu59D->!C1- z8KHPzVUA#YQt`o+3HOS8pfe=`TtFBCIDNR!B!}ORP22;+WSO?7#Lq0=g?6Dg%DmgV zbpKr9W3(c-O|5$!i=Yq-OG7dCwOf1wHSeiT{#WV$ad~+MM{E884OoT1ruRYA4;`cb zF!_-&IH%AYcy0iAhiekM{NF1N+gI?H+zx>4tCjdtJ7{i209Zp{*3H()r*9ZDaW^8k9J0qzENA0@n8CL5`M3XqfTE8H=O!U~itniO39bL~q~Zl7DOH?6^eK?qD# zNlepV;$CtEhFxNHC+hfoJLvEj8IF>+-x0}X!{U`>+>@j5&V>gs@F1clw0+rB-^dwM ztk8|k9e~k$;#Es!aglNt^czSVvb#xj+@M-88p5;kqf5ac$}&IAQvuqfuy$k~ipY>z zN(CiZI_iPskhC5d`N`->%sw&$Oe;hF%oJ6D1h6G>91nqRjSYuUDMnzT%V>4qD%7;t z(+6WnR@Wn%?aw7hko5*uev%?s`6~tdqM!nl>H#Z}--t)8f_AV<|Js--f0NLaV+gf# zK!tbtNupI^Q3DH?-#-FM3P)-@z^y8bN!>n?L*KhhH>)FRR7W&ZlQ)ht!F`i&BXPzXDeH5Mp-;&9mB`}dZ@6(x7UutTxM1nxKsc^7Mj%s^HFYs(U{dF( z+<|)QL`raCD@6WrNcL|t;CLKaL;})-ddO}$()1Ec18c#*gXk&9U^JQxh)Ix9F@#N2 z^4Q_IrNv{5*h?3^AQ-W_?)|IS*_Mduq9=`^rR0TX_lni*S0b8=R1>S5f542`+%1fV%`NHI});)h2~C7XhzPyt_xg_fA zXcL&B@07r!^Py8v@;>FfQUlOss{ zp!XY@zgsRhT&po0F{^l81vm1x?oBSAC7}>6e{;EFI%Q68wOl?5ehgGxr=-hVV=O!m zXJm{snyU6w+=FtPKw|_vAUoj%ngb^VAlLeMz>h6z`97IC)46q)J^1x2Eyi1A&xW%F zDh)ELi^_lL-twPJAkBG_7{~^$b`FU4RO>RHsIk z-(my&V-%*(bRZuQvrH^q78r-Vr3EU;RIG?uShLd!~m`XSjI)H^6UqXBn zvUC;%43}sdHZPYJht)-d>E~?rr_>cS zozNm{dj2ifAQg7Rqt00NE%lh>$Ap)T)EdDna)cvaxL1%X-wLxEowM4TDqfExrw&I4 z*#?2r6w!r!vxxa{uRdks;2qk!j1>jWv$#P~uSm&w#7%@pDa{RK zZ7h#POtuX=gNT=V$sd!MO^C6aGF!lCM;wwu8Y9j2^KWX$N`UC1W3S`Kml4;s=1B?D zVfDUdX0_FDd$I?_ET{T|E2(?EEGpOx`2tH1f`KdFdW*^oV(uxDPh;%VLM-xS__5L7 z{W$5(#c*gy=h&18y%#c4@Lr&NUs+nJDbC%|LubUK4LtXA3|FD>DPdm!4l7C9nRYXT zQ&CmdIkeFk#12kG3SW(;+%qtqB7olZ9P_SGd{Qrfr z{AWw%h6|8^`X`j4Eeb2D7jM-_7yV+(_ydvl=R3oHRgmqguo-g!P@A=>0Z))veRRPU zfIG+_;$zaw&7DsWIG(fY|K(->k2RFQ1jvKJjL+&D?&*Lq=rf8Hu2i`cp#CIe z+R*y>zr5_6|Kvqa6t1LB&E^8|fNrO*aRK~*aiX`5+`ppy2!)5Q?>Lz_prXi8;s%_D zL2euA{4(@>-oM|UlnGeByG#yoD9< zhpPO3&asY-Ye@^O*IGr)RKfRxQ+jZ|g#gOQ_>72^P z1K>o5{n4nU)+JDZHLxq)Z;N5=rTJP`m>R|dprY#0abn^ry7EbOsB`TevV;p>9PSga z(xID33}$(d%O$dya)a$#T+&Ki<^jk9!w$7%dWBl{)m8D8|MDrvc*i#=;B^>*EN`BA zmJQG7+BVW#teA*er^SSLrwny$Ox+YEB}5X-ru1+l1;SYf;s4yxk~6RHW{y}+W~_5c zXV(=^e+A8XGEx%pVJs=i)irv|w2S?5h0OWx2Szl2eJsJczn4!>gsj+y`I~!720szS zkI07`sS6Kb+n4g~h@HvXAZ^p4Xd-s*k6jBxlAfIwykG|2S|Y40R6 zh+Tv$Wp}^~2&1~Yo92KR^5gfpk2-nttEgwa{F!~)JwkE&{5C5%xn*C+@!srhswy9V z81uG_&~&gBS?I?&S?aqEjyF%+2h`KNY$~V+^OsxSKRsKjw-A60Akm*%D+Ev?e{l++ z3aDrMB%Gr7HMpc+eP1u0DGWFs!jE7#CHmde^-g58uJanEMp9Ku&s5G2j4 z;W&*Y(|RjW2~`YK{L3ci#G|XeQn+B!J7D1}wo6AqHh8Bv(mB4qG! zGT)F*L-|hA*bi!c|F?19M3qe*xOu2>X-2mmZqvO#PDS|>(`nV2C#`|P>uerJ2o3Xu zF+4fKs{rg@t1LbUV;;Y7oTn=web+5+d|;v3JW**iv}*zox^OaFn}W^`#CceNP_b{t zQ_2h#$&(L?l3cQLGY4bXOath)Nj$aF55qN}%|$U`FFZ+gxzc|R<1yjs;h~D-#}~=< zt|R>-{7ye{<+c%#D>7pb?>-3|Q!#qW`tkSiwcst7C6GD!Fpul3mMJeMFL-vUGct%6 z=d{UW<=qo;p`mn?m;RjC-3szuTFs!DP!v!CicwY5msmaX$A zwKo*(tGnm?Z>Jb4fYAXvHS8U~L^VGy4Rd1`lz#Y7vgZ({7kuk6L|h1(n}nEEP(g5=aieWd|u@8@M5Y+1I119^le*W$W;AvpS6)E zDZ1sPLa#l(g)M?GLxJ$kEf@hlbkMFWH6zOn1${d7^}0H(_k2-pWBfulFZSe7y#gY+_+2 zNwQt=+lN>aSZ^GKltl_?TO^bP?vYAGedT?QT>iWG0h-d9ojb1D^fOCT-Z>UXnp{$H zGKCU^8Uec0#(VovBoMjpA_?E;gj!?Cy>6NujM+Gp46A^7xvLZJ__+Q*s-V73%VE!8 zds8LHS%bCImol>!kKwSYbWqTxo@mvVG_!DO(-g;L?$ybxSZ%>%pA%HzX?eJc7n!mW z(Ao?d1(ptbSL(d|kKrp>Z&HR|Lla(l6fN~^8^Vy+%21LswB-GgpEAFZ;f2J8N{b=W ztZtXP_%5zZhPt_dyYKN>g`;$K(|d4RZdHnL@FjfT)LN>fB!CjQ`5RpLC)lEKPBC-Z zypy2aRG4Rq7aaS|gZSTvFJPH%PptLs%{=iouV5#s-a1L>7v8aILLX95xYgzXmcMU* zrp5V#8jCG+vEn20n@G*d+Kc);4BF-dLtlZZ@c{8a?hgs_oAM6i7zb;GifJaPH6k23 z11Mjhwo;o{i7PjzSP#}uZTx4PP6TmmE~^>0L^TaRk8|f#2q^#|(1(se0$byNY8kCd zOGFsZEpAjbg#j@+cbjjz&BK$z|7amq#H@PL-HDAfmE?Tu*ru3 znWnDeA_uoM9umusuAUCH7)`JFF<#%Rnxhxg9fTccDNU}9Ln*{61^^E$7ZC9nn|sZ} z#g0ZlJb+rkVwLF8-N|4kGV&5?_kUe!Q_y^+w5^|fUe?8Mw*roBlL;E8gX8gbK?*Iw9Ts0fHMdTs(yq)ml9Kyrh!O=EU%=$pP)lb+Y0|%!TnGB zg5K<}2uK0PN<8I`s>$t0Rx?$2rfEpOFo663vx<^y`ZpGno$3D{2ay}_#XAdB1EfP^ zn@Gm%A#Acsh&=C*ZeEt{JkibqLD`KQLjKJF#?JiTOG2}OJ|GVoTb?(Fs`{Z{b%B83T>ru?fu zP^~qU%ZnTLUC@Lmj--h*6nTa-79x+V339V33L-%d6cR`;IX|0$e1Swz z4O+`1L$g`1y`N$$EbtDsP=`Pjd!9hz zOao4)#U|N5ac1SrNOu`H=}+QXJl)iQ@Mup9)Jl!IBGad;i=?yW){K z0hLsijk-(-3gq8mpLm!)r0s4Df|>}Q>AjbE?2JnX5rBet(qj*(Trik%g1fpTI5qK-{&YSkhT0FewPfjL3Y{qPKd zS%Q5c!pHqeKboYfe4U=eJ5Vu}jwtaD`uk8L+!>(FIDej1M{C2wVE3q6-QJYO1bRLFqP>@)ou%>!~=H2+2Ji`Pr<~ z%G^AYUHDxSQp#t%q3mPHfqzj)6kRx9CTHWYMO#w7i=vXtJLZCC9C{u}aRmrGxLfVM zV+~$KE58_d1bU?}xz?SMElgUhKVI`rzIx#M(_-zO77q;&kSnnloce);SPWZnetzIO z9Ug_hW8tDo9~P$HZpHEpFs5kw4+8#mAOrBg(3=Tt z0N=ndmnuV4r@U`U(})A@$3~9dsV@ncMECdqcXSg$_tBbd8~_PWSVe(fuR~U}6nd)k zOY0hE@5Py)AStQS*Z=2`D?fpv|AQ_E{rM&HZS4j?fWVY@5{ISM4V{t6FWJft%{x=%H#`KR^ z10pBO|K++ebADmBlzG178tffWCI9JVY6*8mAKcvC9ttDk0B8{lGGR)k_Gs!c%tppO zDOYoS-B+w<;3iY0z6v7ye&1P|IeA%MCw|m3x-a3DN7Zeye1IcMwGv@+&^SgpGt*vm zvXT8!Md_ubfa(=T&uie)V3tI#8#{nxh#ym)K#sztB*0^kM-oi}CcA2^LHk1cRy=CF zdH+F4UkOu2#GKd*{XVKa!Mu>?4z?j)jaGn}ScmPd-!z8J=!P94hhi9otVMZ)Zz5xcy$FI%XAC|vGNB-08O?zm6&f4mc&9>o+PbOz z1R`)J!e|mP5>7BOAi}jj)(Eb(sNR532E5((0A7}YK=+0S5l}oMRk|=RJsAk+mWPmm z++dKMS@6*|Xv9(Bh(HxF9{o`kqZ_q2*@QI|FN)xR9#TK73^OwC;G99dkkDgUgPfEc zxKWz7IB1RvtixG$QGX{kh`|^wGAJ1MI`}kg4*<*^wWt{rFaqo{fpl;-T%Q@`=aUH8 z?}`8@C`0U%pJFsvWT`=(6mazZ&Naa_M%p0cM92$LAf|ORXmd<`Fj4Jf^1@c5QijmT zr5GHcR)csq_$p|h1QJ0S!9Qp7pn4@5M2I1e@@VmU`j16&X)XaK*0(fuGuixWd6VA* zLTNF&SZZX3fMMuLG|9y=*!B!C3PhG9C{#>SV&q9eG@jBNq^#6&cM#gDCgC6w^|?%3 ze0U|N()^W}!?(Lu70`$ewCbIBO&1=_st%sd`^68>PP}%*V<{oR_Z3-^<8V>%t2CIg1mDV1BfVVs92Q}Gfc(BiWy|}Dl|1-67$ju|z^qvE zF!z1Xz>LOy?RBYdFmphqP8`nrXA?Gu6xYIrcNRZZY=J7lQq+91Vt>JQRW2Nc8C-PI zd6mCb9OcFrX4*|;S&kbR!NRUSeoHB5*_8E&KTn-HJy;FU_759gO1+f%xoiK3>|q;| zC3Qfy1DP$#zd4Iyf5!WoiKyPq@Y00gm!EpRw`nY@-scEUOY_gaDJiu=@0apWH#UMi zu3rIntQSOz&De73CZ>w#=g(aAXI+(LH#a0Wdpgu2%G+N1VUkV|DD_q{QDd$cDV2Jf z4hJGGAr)L)A2U$5T)6)qw$3rQvMp-YaYr57RwwD$b~?6g+t{(K9XsjRww-ir+vwOg z=bZ1m_s^|b|Mpn5s`jom=iFnw@B0W^xXH?QpvsEOD$aJ>14wEqjyxT~5}y_`)n_(( z!mH>h1SV769}`i}+cNd*xhcK7x?KV;9{%UkOW!4!7%Pt6H3uP#kNlPZxnqB?uS=Yr z;ltpyKBwi|=`O+fWy`l_-pe0txb|14A=?c`-PJAC8b5;V!PmVi#D!w-CDhpUtH^*4 zXpb#`kgFRg?^xa^0axY{Oi?I&y4GbnRdeS2wL(aqxjTj6)6eAy;cMD zu2XiQW^=U!-;YcV|CBP{56=hUlzwBKWt(r2#pHIQ`>ppXS`A%b8 zV`izSV2-UgTWWaS=p@yP7QemCOGk7034wASuB%gR_=rwZlbr#L4XG2W9@ZJKk9QW!vrrjfIUKn0D84)JNxoZ`$oi z_QizcRegI+KmU}s;p$(VUfv@lTF7`5<0hHaJw8BO!xgUC2Y4nORb2wyz>Yzt4yZ>e z0Z2hMKq9^?StI~ubwXIDY)ltYP>o5A&+n@P>Lb^;e}0qLs>@CeVqN0#%eUh$%Otn* z_FE&)FPnEercevoZc&_VqHyY7V+V}U)T&|W0o552sLT*fT=R;qX1!1`ZirE36FFmU znA%jqya^dQF2h^9xRKNR0V%{^NHlRk*wiQxQnDSdo1deO;&!=T66>!@cna(wGBx}b zKTfCx_2_TR!f{MmJXRW%KFQUmY5q);)@=fll2@UO>pz=17Ol~oDKH58cYr)NFez-TYe__mm_8z))?SA`2n+;^@!fKHETba_k2zo0L z!Sy_E=grhn-k%;IDx*~y#A~}IJbJEE?==A7D*oJbLSiW7z?S9~sm}D*cD9S3U+YjX zpI_i#1!rKTB6#AK*A*B$gKpus2jJzUCHV8PA4@6VZ`R0ukw zBTX3L^JotG5TyoTt#%*uI{qCFdV-cy!>q*$8eOIU!hsEURHxpwq@QK=_0jIN-t_*u?6uDiI$U+*T`%+ z8?g29ST#H+5>L-Bprbq&(zGzxmzL&+l)XlDjTSdGYY8NlDE>TX{IIqP5b%Q-=Id!I z&9o?AGDDn$~B*j27e+4-~&%#a_-wF8n+&J7#LtxRqq7vS43^XO93DM=!&UWp(K z-u|xRVaDS4OFoINhKh8YS-v7<4iYckKYm9KRMCuP9ZH!iWf5ZP@#QfXtthgW0z=xj z)rmKKK&4-UQs7^MTFK>8P$|vu-=hkP&j9z^Mv-4stYsfsU&-*A0wj>`lkdX@wEohl zv?e*dDkH2D&;ZFxGpLds*E;v9@qzmOM(QSz6{{{Me}nAjcw6%77;)u6bsC1TT&IRh z9<=Q_pJ7v?-g8WGw=G7=lHRvmsIP>In^ZROM;WYy*%K}lR}scUeikN|nZC*ZsMAnE zF$Qv9j5jQ%2x*l^Qv4cB3jWsj1;)p~tULB72DStPK}7Nir-tzwir-PMKZP>VXaDES z%+3x3MS?{CSMvw#i2*|Zr3C(o0V4ni#6eJ(X2O|S-QB&kg>tkY*k60zIdZ+cqc8aj zX@+s6P6eit$bye@<}+GPe4%gl>2ug;Qiqs2BuKD7MyeAjenuXz-O2Pc2q`*kyJjxh zc1}bVMhtOvxSc(!e35V19@yzHL-vlHx!UlN^~1nt!-eAtStNi3)n7#Vzybg}s93FP zZx*>WR3_|nuXhtPMFAq|IqN!p)=>U$MsP@VqHrOsCk?tySzSFD*#gEe*61Oc%xs;G zY;B)scZ_(B%xqmBo~#aboa1X0r5)2J$|1^XSGVweF={L0?`nz$)ewo0Moy#-n7$L~ zE|6j*2|<%GrW70%8HE~4w)KF_c1DMOon-dxvIytYjjH;#8*vY(`u>uU%k?S5Yl%8_ zvo#)eOjDUe%q3_MOj@2b-p%!-$&jZ5T~(<^w-m4yr)34hei9wEhX(Tytn~vpT(E5_ z2Hx3Cj;+bs?U?FXCANB!04Liwg$-q*mJB^Ziu%C`x(aEMCfC4&!LL+^TZcpyDQJ=3 zkk%A~6UZxb8cicW54Yu`a~ZfK3k{ZBk&R7>(fvC)Ts*TY`Ujz-gc>YFTi=*ec)2N3 znm)PTuEW=-Yamu;LG2k6r-%_wSEyqaPZPd(6Bni~=@mSpHaseY+14rOCW#ALgsA1! z+;VnAKdBK=?KKY&Dpddzg#hO7c1tF6rYv~$iKm2r*iICZ^?Qff!VOTe-FMH;>a^*2 z!r9OL$|hxYiOJ}ehT=^v1A3wwqw$$DxUbdQ7HA_Oa%E0OqqZi^Cr6#tfsu{ztLbnU zgA41y^&3Pj^}Kah^ZA1y7%*eV2A-IaWQpHu%|T4i{ebWg;qic60@JO@qc}fdsMY~I zK&-nvB7IP6B%+@PMF8Il*(bZ=w*RnW7_|xG(%p0)htnoo1kuvR3rs zSo{dzCTgDm^bBCuJ!!*CG)#<9h^kN7hTG3Q?I%H!MkOt!RNNAe_w}ln9iN>!I|n!6gHua)H+eFHo!u!ZUv9 zx=sV33Rs3q{c(RhB>AvPj!j?RCR^1$P_{^|?4c$7qV8=Df!lyV1f~cx5XBfqW(~0( z6E}deI|V@8yC`}_DAClVD{vUMST|Zo|0YdLtXJvLbj1yZ)`jEHQ8ZV>x~G$lQAb#M z8~XbM{3ajT>BYV=8T$8a5A#eK;(xGt8*-GE*K+Y6Vg|2Qu)D zi5*1(%r)v;llC@x&9HEvQSg}F-j1>dL?pgS%sv1iRaEelc{C1ev#RG%V{HaY4mF28 zHY_d6vIaCN5Hd<=(ine59^U58OqmpPfDuj8{ShA&F$|8($fK~;Ac_<;A}}q^w&2)F z#A5A~*_<|p4JnHyfrR{?kqi*Pv27Tmu_XMp+_K8dSwj|GAex;|dJR-8mZw!FfkVP4 z1OOOIw|5Q+xcav+%L~icTXj@@wb}O^`CRec9C(*&6-bHhCb%)JyL+{T&tE{6Ac1L! zxW|thWUpyUfjZ>4T?UbQ23lQNsvSlf5Bp-{Hq6ff*!;T@O-jw_jpS9d7>~kCw+12O zjwu;tdaJM1c?WC8<0>c8ItOr{!~L|)wg7DBN~|s;o%wRw#-)bhKQxaJr3m6RplIaF zN+_oc`3%R;rJI6Dc`r8%WextGc*f8I(4pCea28#=nEPuW>#3jSL445c;3i(pE(W>T z?z7!IujDHZ`O}R%Ey4uuo~kaG*o?c-{BF1GXKZ9aTY0Iof){9g6-sg!1}6aG9k3#< z|N11X9RG}Y(1D1_V4MI@Bt#PSqOZv4mS2k0tzV}|y025D_c96k+WWl@kH{R#f#hmr zL%TY?YqyR!NcbXhIK9}_VZqiG9Db3y)M&vo%`Q9~1~oCmp1!)+*7P~CUgJ%wLvXQ1 z#dNH9R-=c`;MNgPAz!JY!Oy( zoGQShHkeZ%nX%%*6Vh;a!y$T$I2XAxsdtpf{Pb+?v~--#a6^X4Sl*ySRiVRlQH_dPpkQt*sNSRZo}aPzl4Qfez8! z#v-bF=sFVv?!ODYnAc*9J2@k~Y1;wu+*oXhTMcUH>-vE?LN5&)`xraFhm2EW*WZ{96YpsCEWu#u)|Rs z)X-WdX%FC(98lP2yE&hOQqv~u6br~SpPwI`qBvs!FKW|hrM=>=xRJj=#SQL&M(8E@ zn|}@GqQc`bDr$9UiHLDh1pRlY2waa(jxQDT&zO`4?nht-Toc1H;__mU-;X~OMN1%& z;Uw4v#wew?+`!a_lGRFx zDgwmD$L_et(khq$Z0W&IOWX!x^ywxDdObj&cZ~3bA$6~!>wEezPcWvWY7izYe1*?2 z54sCR%t>$NpH1b4`?abxd!u(NA|EGT$>WI?E?5njNtvY&U%H_c*bTL_GT{UCDh;_#0`v_5O z&p!K4y)Si7L{e`bv=R9CrtK3SFC|xr%1^M9@Rrv9yJY->yJ`+g1A79;NckrZFsHP} z*nUV}4>f1@g8zEhd-Q)Q{{=ImHg{!#v4W$QiSTRvw(%@Yp5E46CBeP70Ocq6^Niu9iQbCO0Xr&Ybj3Y20gIv;vaD^luS+(+U@Sc!wONvr zIXE-qx}>R~$zV3pgli3HHLNKJ`QnXX#DAg$FlSLV$2cTHQ}lj&)kvP807y$*Uq4;& zrg#xJ+51sO9H#p591V`I+@7sya6#4|p0J4DMwTDdpRt?${!^7xES>kbgsJvt>H}iz zyzyS701z7_*-f$q&8af1Oq1*~*+2Dsj*W1(7_u)Y#^$JcAz;cdJfU?rXJ=}(kJUp zH@Dk|tWluuprB!%zpqR*2`7Y6E7r{Jq5oZS4&c4_FG_L0fB5UTn&Ap=F_TdQRGF6o zw6UnPQiJQ9pNve~tW@*5%*=O|76|lYOilU9SwIncx!es=zYIi=Xva}M9T0#EhByEX*J5CR>}Z;Fs>;(S;B7MOQpbl)4Ak^lZ9jP9WY2LxMw zs78r|jL4pUxBE67?*&%~VapazR_!_lRzOCEHD4gH1=xw<>CD5PHpJVuQ;1 zV2c0&$tkBx)qR`h&Fah8q3;%ba6Fd>4u~QX+_s0>=~DM_)c9FuU}3%Mm>}vJqbk$x za1YA!zOg7WzIK9zMqne`Ir?w`u_Edms}!=hxF0xIGE`;bSp*NJjF>@*4C9HSX5GBY zhx}WEe#TDXTtuM2^NWplbj(&f(=bCAw_fTLHw`3%KSDGM+&!IH zVPLv<#G;@-24+PA*iTp zRA+G|dkDlh4BKJc{#3IT^Taj>`v3Y<@bHZxm>^veJ8k_M8(Gvq)|58Vnr$m>)*nBG zv(AMOmH@#UvfP{Bg^pKNmC8A#oI#3q%jb{7Opiu3zSv~*#)~OC`<2z;B|svzdj?8f zt+?xCiEUNED(V5bN@4h>)FV?5?qltb7mU@=7J}2Rqo`3 z(U2u*R?ZGm?|i6vBj~vjZG&+8flT^(X7i;x_D=jqD9ywjpaL&U4WXGw&@Vn@493C4 zFjmfx+;!*0g-nIT)Y)x|08q|J!AzSc0Y1(%>DXe_E@^$WKJ9uw`Br5KODOAnQg^3t z1=EPRpL1NjKhq5d%Nv7)U;|Orl^_ldnYv#Ms{h?tFq6M_FzxeBRQp1wJJxnG&aXe8 z@NLixP>k0tPPC22{H)YXIOCE_Q!={|i~cq5zt+2_H$h8lT6-rjAyn6Q++F$^Li0v8 zDqs*4Evh9yjck+^x##eVD81&S2dsVgLh0_;edWVu6oUnUVaz+T2f#SwZlnvx$kb=8 z5Weykn_Ei$TlQu3`zMXHS+^8S3kFl*8C&*QUWv>!9eOds%$c9z4e`g$#qs}Eey!+e zUpF{hea*)z)y5rn#n3ix(L0mMgyg#Int@8Faw{qhyP#%!EyY;o+-33PQ2sg}uiBjg zKN(W3{Ub%c;BH}6gMwVudPLAh_Tn7}*qDbb%^C1=j{1%m|ylaRad-qvAwL^{a zh+5Kukvc@=>Rpm3cKYwqCCsQfqRm5XBE@qGjGF+k!}RVyK0g~_IpJnqZn)+4@Eq=5 zo$ss$kmHcMzK1Fy1x)0KKO#oaUN5j3D052b!u6Zw2lwLrHDOGPvK6lwtMRJz=M>Up z5aAXsO5nV!Muvo%h(Ber{hVCNQ^7RXCXL3GchO;_h-0g^TGCUfwBx%K<<%8JeG-lL zjgAGFa3GysSU6Cf(gH>Cekt|)nOl{B=nR4Gr2ZHL->?H2M!>S2Y0k%^p0)6|Zt&A8 zYh7{8jW%$CkF-(VMS@C)E2~-Hh3_v(eBp`W0zNWwwcafo;T^D5!^#idbDo#R4Sg>G zeQJKl1X@r2h_u zBLk|P;a>(Xjes-_9r5A_|5F|}SctIV`;%!Z+*6wDqTjvZKz*f2ga9I2Bt2)U_+EB#rS-o430?n7Ix5h%s# z#iz5&*yJ=2oWI)YIWRK&J2R;lGiOq5rY^hiA*i48 zpiZ1GIC1J*pFwI^lL-eco)oc%eR9WkCR=2I;hR7b<8UH|XhF@cIe9OXo*hM^rD?wc z`DFfvJkX8qRz=IHz1+A}W2sGEtrL#c@iCpYf&<$PRjNcY{ zW|vB21Q{QGswohS-5tH^LJ#Z@E+B8 z<(N+GjmEQMHCtW}?sBz^9hEFV3h;-1px;lxfw+XWOEV^(iXrKM1R(`yI}|nqEO3qq zZx-SQRe#{9`WUOXNZzUW-<=3Tl#;!`8L)bJ8=p2QUy2heM~Td?=hj%7bad@3@`Xu? zTRM$Bo0}85x7yMm3dtp#Al}h}x&WRc)GH-5=3M=kdGx6kM@R8X%bpJ%>qpCv;t#Nq zE4Ow0l2rlWcJNVg1Y>v1@uo?f!4wm0=k5x7aqkc>ICGp4+v4;3P~FD6l@! zm{(I6k==mG62DnR;Y%TbcX`~UQHD^Yuzn3hsD4dE_0GUu*t_O_( zpo33FFl05)TX|ibrd@eWHjv+MsqHELn4=v5%mX|7LKnN*wHsyar`nm}Q7^fGQvK6` zW15P}N99PHP9+R`vjO{l_u;|83i`89u&iC#yV5Mty~EAr+3s9ueKq0MHhA<;l$~8* zVYp1_u1Hh^iwF&COg!=-z&wg#*$i13)dEy-6s#ggwVb9Lw@v{>HoSno!aFa*S4!Di z&kX&eUJObZnF}X^?k`ls)*^^_RIL}yCYylmmEs>83XwOtv?V_|g;Ie#?pTh6vBBzk z%hpMD9ZzYn!Mx=$a3=87L;(wCP_(G|1{1nq-pq*9duyLKw-^QkKs)Wm3Xx%mM^CCB za$BMXdNxsLIu_N>*7E^^)O{ALBTz$xd3erF8STvA#s;cB#oOKqnu`X!U*Co6 z6@}K}v{g#wqL_+$x!o-dM7V^03+6=4Hw~{eX`;V+`+(;SteXru--= zwSAev=I|A>VTphDg;Ce%>7!uT+yZsFTlyimO4cjLFcB&bAW{5?_2V<^%aonJ%EeRW zNomasNXJJJ^$QZ?ot;KQ{omZd}kqh?0 zkNJ^FEwH6TL-ai*_nDvsq&CfMADf0tjzERc(Kw2wz9dvYDL;*yI$JnPbK_0*y6K*d71RHacvFNUb+UyVk!?4B}(blqw_IQq5@gP<=9( zTA`TeQ`3yn4=lEPEj~p^{{pF%W!aWh*_FA@D+4ZaOIN3r`(g5eWu<@R<+1tX?wyV2{C3!;S+Js+{uT@>)(gZD4Mg#qVYg7&opQ3eadir z3*n9}?ooDg^gOGKZ-J;$>hHh8CAIfKsw3Qjz_gZU;3LgEqq(}$EQlle9?alc1Ny-* ztxwuHarO{$@7cM6wxTPdb?N}fH2m#$v`{Po%+tmH27#SBpait)03%Rx$8!yUrha(x zmei{$hf&-c5->PtRFs?G*{hZ9v3W0qyEIUOO}B5?SAKXC6KPfffPO0p`au5Z-a@xY zb$Ja|nxgDbl15$oUE#79^o|I#+cf{*;fwiSJ7qIuC)f}art)(T@{ndn;yf$M+QU?W zY3(y%2_?qKf0h4{YQWf7fuI>*XlnKWFnuVD$U8Tx;)Z^1?mt*vN8OxXTPJE2xYNHk z{G-PD()@EKUZ>Ik)Hf1W*^mH7)z<~QO3ISue>zw#e%cfhN)lc4lP5a#*iV3T={qf* z>1`#G2Z9<&)BhwIFJHJkZSK}d6T1x)tN!+LIFQh;FdDx0SGYM(Bm`xGxaO}uNLlHE zHTS!g)a21PIQ-8v3NByui8;sk>O{Fcc4T$ohUAh;t)_HOK&$%i3}f>>%Fj2~LIkznmF z)ZbcgHv_x;X!UNp+UYN`sF6$CXd@`T)#vKA=28OMY#EC-c?f{Dm_K?^p1@v$C&cOj zrX$#=(ewD>?2g0YSK;cmTg(}eHFBsLZ{0JY11r+#g{AyT569-`nB>5@-?J-^4mLE_ zI3J)umf~P}*WMY*VX!bHBUB_xSB1jad^Dhtj5;aLA!DLTBMFrU5dp$CbI}P)R8j;l z85f1?stqfe4zZsz2df6f_GU&Tg6NEZ<*dAMy>B8)(HwAq{(kXhgd&_t`66?5D;zfE zg_$083y8wVp&8%K+17N2LXT}7FRbTUX_*?{PJmmMS%7+f?q7JAb$wwNRl`Cd^qEn4 zIB-VZU>wu{EQmA#Z3!Tlw#pD~_J&Kh^w?f*{Blf9aO-;mJX((=9-i_%QTf1(ZV! z1sN^6$wL=leV8T@O6p(HiM8m~20b;v@I6y;-GEwyXOFh{*cV!(|IU z;2Bh6^F&_c6p=p73X9uyu{V|Ze=%p6R>mG(46{x$+EJj_BxGNkP85;zMCIz5t44z( z@Zd3Zqyu|Va@*+hmcQBKgF=IyYn6001s60&xHc9$fw zS=+#`F(7yE?2ww-OC}RVY!D%ic8YEAQYo5fM3VpMCgXz18&lCBL}}BNHyM8ISclu> z*}?Z6@x>RD`rj4*KXlCJG?)z}Mw~&gA(t~NiU`R@afZRW@hfJ>9J~0xWnkC5lVA=HP`6o&iOSN(?JaerAEO{=rtx9E9k?yDj=9HeBzYn z89<`biL`Nj%UW>If0X+8(}iX(zorMBTbUTKL>NF-P#mp?qI?}9$&K?imxLCT89{W) zQa2f777tDP5U)pHiK;*%F$Pqkj=(Hr%>C(m(ti%1n98mgi1?4Tap>3ooC-4ln5PCA z;9@voPgX8(g=-C(#JxDS!>f-4F@l3?DFLBWaNUyA?eMt~Dy8`_#*-?1Dj;|E?HKc( zD$J4DG_-#$f)p5yMF7dwq~jTLlRi+iOR!=wmK7!`10`9DHq`Q?>|iB#qJE%W$j;K1FQU+lN)#<` zE~OeG5od~xfsmb(7egP9zaQt`*j3^k9BbAo!1B0i0>D#)hi@I{8ZG#J%%FXTu1(*J z0#?j|@Z^1s(X!&R=QJb0dmyWikYVn6*U`tfZaqjT4B(0vqBbskt+0|nu`1ewOY`kL zT4T^lhvsETtn6yNO7Mr{_Q{ouNE04@uWpZKUD00`Ud>aLybajvHD8y`x_JtvL6PLd z^}gL$!46hvOc{VTN;!GBu*?}?R^{;$veCC$YhXkxd!jChFrOB08hv4lSmTvu@W|AE zX%bO@7qhX3(AE6yx^r^dE2H<35o1(|_Fn&@EAYyOWQ*=={>l8bX?pDwB^r#xOU(DC zZzn01v5mgy!`>U&Qkr4^#q`Rk0gp81^HlMslB`>^GX_}xx|Q}J)ws=f%Nfr0NEf@hEuX`yxTuNy6;OYFHR~L4X?|> zToQ<*a|Ez*8mwpP|2ZU%uB~*^9qH}Gu}*izq2}1dzru8pXry6DR+LL{H(!lkVDNm( z80#@x90RM=4UySV>M=CKK9ue_VUn(WfYZ9rKY<)Q+}f&V{l!*WOHE#L37pdnRBJqL z-WS4Cx{v&e0Y^(>$RS1%94Y+@r^}l{;)3!ES{I;}H{S@(Te)^xZn^i!ufh~I8lMP& zs~Letn;lPO)60_e$kw&p7~0%%&HUZIf#tPqOUbRMl9pZ;5xpKWzPQ%(G5k7-4c`iS z>TXNTX85Uy{(6MXAiF}r82Ko12T?tI4&kdNhu!1$30p`_@p3xWvj+W~6!#FM%8P&psmGNO*mVM}j9Rraz^u+lWcV^Yb)`{_%v*KeqcdH$7SY)p3 z0L<{J618Anp-FoA34t8P55`yVt)Qr>Zjb_RI*F6iod6c<_tmFWNY;ZU2mFTmQMG08Td2OF*el#og~!B)5Q1jNM=%U1EX7Nhf{L@Vn1SM)+V=#A7Y^P}NCPtmP+;xPFJCMp z190jBOrSaJ9V`kO)0kC=@w<*Cw0t@)xQ+9dVcBR*vZ5MH45>7x;Xcid(R_VK`n zm5EI};*74n1(vq6$O($UDV41`jIJO=8gjUtFwol!!WH!TNl;5blmab)(oY8-wUqya zlC$B{7Iw8urX15{=bKR8GP*K@i?phBZN&uI+Fh1hQwKVWa(0cAw`LVb;W)bv=zAw0 z6+YDH$>>m6u;?u9=o~Af(QziIuSidM_F24Gcpp6!Fsu6Nb)OAaz(Y=hzFRQfis|mV zWYgas^&SfPb@YIk&kQa6L=PpeY*NXpRM%?F-iwE|G)Wa)eWWojl>Uxz!2^fPBo$U*jsDKCDE9m9%7Xj=VjZo;}YY-98vv?iP~P zd`~HFP~Zb5=n{9Uf5BM$*wl&h@K_>_g|&uy&Wy zxxmPxU1#6+F7fteALu&b`(9HGfcEr^FdN*Hz>|C&n88+~_%PQ!{oG>!Zd@BT3vA{O z)5a(M?XUqF2!sex3B!zjEJFi-i_XBzp!h+?`SCXtt4%7OcJ1Ff!`@R7qVM)BZXgu3 z)p~ih99;gbjnc5TsSb* zv>TiDxFEz&CAG&5KUI_A+#?{b!cktm%o6l>JkCzL%G+l7QNCdwo@#hKw04wX@@V=6 zTku07O;*v~Q|f&k<7(zl^94`SF9Q14fumuwGyi`8f=mn?Oo=zC)XiZq;IPo>4URb= zkmmI{OGOM+7d}L|(qWO*K$IHJQ*C(qH$rQUzJ6A^|W&DZ!u1G-w^6?a$IlVg5-|ONq zunm(VW-Ox(Wy$_&Mi?O(ACv0ZM!FDAdQ{xBlg&P9#Z&ss%+DMxprb4z*^sMyX}h6y z(w_nfqYp8*Uaz*+!W7o;_Uu-Z0tZ(HEgv4E`~@SH>G8x^j;Jb43HgWigGUFg+e|Qa?g4BY5fLWMALwb=$oE;oY9<(3)HN8K4**$zWtnCOp zMB1~2UfY#R`q7>LNsFPJ^DB8@3{hRomJZ;)Yk3DDo%g&Q=D}aC^^LNnFR#VcEQ3tqhKx%W!M}10&~SWG0BgQw+EGoy#T@*XnDXeharv@0~b zii)z}AO|*~f|K!m$x_0}x~{-60}+&i<&WiUG`wTsUH>%wOoAL4lDl5ZXp` znE@9}7(%i1%uQ1ur~8<6vCvwV0b-$n;{&!-R&=*C`-0MN6o+%Ef(@YTvR+p`e7>-8 zQ7~Z=GT#v9V$H52z~6V(#R>?;S;r^dkTI+er0uC!n04H$`)&0Q$_@wUuhXvEr?|T(Z?IyV!aUbc@2aTc462o$6VFn0%VOgUge$ zCRnC|dWSv0!`f0QSc;F(M0}UV*z0GJ#+iN&@!0ROPMCi4S#={ zfxwBic+P~e?m(1=NUwj7oxa2VUcZ-vY_{CEQN>|M0^@VAq?W-1A3!6)ad1SVD@3yP zzQHsmn{!MU5S_dB?~4b#AOS}Q=4e3t03Lp^Jpr>)38T{}CQd>MF%m;A03Xbs>G@RD z1ccTB+lIBTJ8R#963-wgt0{kCB${FNk>Oxdd(^2@W|9b^l0)R(Gr2K;X@wf|iwo`$oY-QCIIOpd`ljR6P znT8x#Bd`0oOOZ1bW=d_n{Y|D8Mk%ACsvdB5UAL|(qpIwJ6fy1#Ql_yI(tP20-8xmS zf`D~)2P{RhP}i{qYH+Ssmh@E(&gKYb^=FsYkXb>cv#-hM29Hkg+pg8cjP=#2Z0?U! z=t17{NHPcr#3A9g=*`xV(a{pjj`@x8^veE{BXChO(js?G%gAU)S;DusdXEf!}(a=O83XB}V# zR8WSZ4b{bcCIMYc95FTeFvUKR`WWLGe3ZslZ?EUe%rnA<$f?nSAmR@bStuj0e|r%8 zNxAje%2ju6C!4-<5pF%TQr5WnufB(l>T^hYAfy~vTcK_%7eCW`n~!%i1pyc--bpV# zGeng;vIQ?e)98P+*l=-&g)U}nIr4?Ah5Fd8j_Tk@&ngj+Ypi7v#eU}`q0^H8>i$_H+f)u+j*ds6aUPv&jTmNmbpUzvt&tt`7F3es)5#kIA!sIYO{t4x z7AxW{EAmE4MW~|55a~Y~b(fxxJ=T);4a;Ck2gd|XjG0a%CnG1zOcH8!;F*;H|I2lxhI(bThZA(ud;UE%VfJ{{`8n^b~V5~Vx1Vtb4 z7Own7p|pHmC)ohzf0XK1gg^v>gj<5s+w6+*^ESS#v5wJnHi&hz31f8@&jxADzq}{L zy@=mC6LZ0^@wpV40fyuYSduH89jT7rvrHh~Q6y|$XI>pMf+23qbajLq`AxZk)maZ2 zcOqli76#;@iRB}xXQM>m{Owj$ut##^1f_XGF)I;q3>VEtjI_$BqmyaD3sC9cU4%cQ!6SRiDlbnW?v+Tw zA)N(>lJ?Ja0 zh)Zv30Jym_IJrsQi_<_+8Y6V_8`hZMV0p~7jvXwp_`&e3jT6OBpS9DhA7)rLd?ok9 z`OGBb*utYP8Jpl;$cgQ07)3-wc)zw~Aak9bTNK!G^(31MENS1O;6#BAJ>0X=f)X%J z{SuoaUqO)J$;db(2KZw2eS!;kBUb$fWdt_=1V;cmEPUyblJUUlp)iX6(Wdv_ftLok zUPGI{o*eN*pfMc&vvr{Z6`w%Sn!!lHry;RM?TZGI9&!WENN1h7T>~E8-`){XLXt86 zJ6!&oYK7K}N(~+gg*p32UfKeV3pBIpB%&J{L+0g$@D>xo^nWY=NlF3dWZ?w*%Y)JY zzcGL#05V)w>?Bu>o6BY9gk|++D`<`2Z&rrnt<$qUUYOgkq#5G0JbEPvqQ!Dd`J#t7 zu)c9{oZ;!Ye)!;=2oTdjAkvG2{-(?%%;{_v6IDoX z03^qm2-ctwLM_rJ>IF61+#IsoeXXFJC-Bs_7!zAj0~jMcRHNSg_J>J+FvqevE3c4= zZV)K7Wh1kjkr^B|(vCSFhb~iFdO<~Mx-eFJj~O5AC>O4-DpO;UGSD;ONT2drq??Ff zoK<8m4v?$Bq{Fy#L$4`?vWfIR;TbI zGmt*M&TH%)a?Lf1t??5 zHK6OVK(KAw zE_fye;rX(m!?@4o(ew$u&n zi?A)}|0wL^7_+hSgc|dQLk|n~H^U8(q}#4*B%~@idcA%VdF?0%5XX;j3aItY86FE6 z?(0&-kR7X(sJoCb6*b`mk!_*mst*2LGJDe@<*+;=quPc5p?Zf_lkKmN_8nPYd1!$& z(^fM{CH)8^R+m#Mabh1^vYC>BnPyu@wWuoX`&|B*=Ni~5e2}%kHWD^0QJgmxAn4ek z`fr|;2&vE4$Zp#Gn2i<1{8X?uxK3@tDQA0Nr@a~D=3;@4|L)lz6=|6o? zXxK->)(CyCm53Z*e#>>O2`K~5E8^Ak=GUCa&I#a4?Dw|^twfuu9JS`x1Pc6-od;va z=Y>`T&S-q5PyB88yJ4Z$<3TN?U(tVP3x60(gzE_#6A9dQ2d~gkjs>4JgLm}{tnGSC zyA&&%C@Qd6Lp&Po1q1>|#P`&>@ESc$?~B-M}AN=?N65ses;h&u33A(@+|A#3nAenHB*8N+V|ZlI*0r5%I97Y4`{AsDZ{8Np6q@1{1x_Pgh^GWe}s(Tq$~^&I?@Za-Q3c6N$XC z$F1Y}m6~%^?I^vyIdg$|aAuJlmE(RLxFxZ^zrr|)@XUmZm=cEb#LpM`$Z{_w9g={n zoK1ZHK}rMrw{1HBZj;_>>B*Qx-h$nx+Agrc{#?Tm3&u7IWCfrEQ{G~+z}ng_-hLL7<>OZ^B$7fS^6>=*3+Y< zgmWRrcQy*SN)jY`|BzFi+{VuV#W2o~Fozg)6Ho{*Wt)QUfg>&vWUEL*C4N~MnMi6H zH;G(d6akM=CMn{R?a9p0>C3pwg7s?6exLSDb`6&p40#w*`256HCk%e3TTNLw6vfCL z;_q#~&Vl$aRzPIKwdU8ET5T2n*53j6T`7V0C24Bo6ofPCktcf?Iax7wIK%H8T_>z@ z5G2Q&Yyu(x8k49RWR#;6*T3Zqdp(&CX*q0@j`2rX6RJ#Sy0yWTSdJkdnTUt-6$Koa zX@<9K&(Trk_2$$&=)`goDMf)6m~_=-i5<*gNpCe4M$f0Raf=tT7AAX);>*9v^qty^ z;u)DMaRpUQL2ET?EPQ^;C7-I~mKdfP0gcori7tNuT^p;jl$1}|_$~RC5p5!SA-Vr% zB4XQ4q$nmPDzmw_u9QMN2h3q>`#V}1f*lnQ`GifuCF54Sf}8+BOJ${sYRzJuYAG+z zix?mYst74UG+&&?*Dh_y^@RFM1bB{1>`Jw4SIw*j3Lpj*O02x6ELZ z28~+ppJS)cgN-z2^N`N+DruUs=HfCLguI_lFntMe!nNrOG6}|Ii!Xyz?2pJ?zw%}t zP3MdU65X|hd%c2<&H6oT^A0@@@}&VZ9LA^2=qkr?xg_}3T!e$eYBn|KI&UisLw`9K zL+J5!TnJ2R+oIIHq{XzvX+kXM=B!BxBV7U(jDMaaEYz04kuPcu5I-`Ndy{q&H=m@B z@I{?z)u0_|Q-{O(kb3Y|tDBUH%n_pgEOrRT2x0S?LqLV^*HYx$n%#lW*v9}ArmUP{ z2WE#FAbiFL_=20uqJ)zK9PCRDtvlNI8%iNO<5nW)*9D7OF_Rs^4q}1>sDcMyl*#5o zdSz&hn2p+s@l_O!cmFU+wnx*`SyuIfD9TuoJQngj)E1O0*?>kx{lQjNA&N1Ma^-?W z1yKztxe=x9SEUn5L?|ngfNlZ=;m)Uml-@EWakEns=tzN{xkMSon;Rt=hAgK>uy+os z^#$pRAoz)T3?mY#?DP+y;$xfSk6L)((P(v6gYz1y$Sub4Ei_W75~|`A3Kf1^(t3n{ zfa?BLzWIKlP;CVku4-Sfv1k=#4Mr;aU`>;FZZGsPu9t_)ZY{VY7zhBFs&7F8*C=o% zB!wb&B~Tw(g7~KU>Zg7?#N~hnqkiR5&DWz*;?lNlOUH+m@8>D-!{c+j<5E!b{Muc! z$F6z{U8%cM@5}Pz_z}te%tNaRu%>%8pCOavzcfI%N@lvoGPB87!D- zeD(q^G0qb`VfA!w9{|Q9k>1@qY$5x4q__P#{`Q38iB`9fkvKle5q{}t1R=MPc{fmU z4%4|ah00EXQZn#IhSYEc;wjo9Vol?3k&O0{A7zvMYOult?oWD#-$1R%yir$uJw4~d z>)q%Jd5p$$wB&5{0N&r**<41QK%;)U=-96IE#T-?C1u&yWB`@~FSf3$rv!C%?NAM- zJzVRy?W>!^tBJl|Jiqo|KaG2&UEwR2es^5@c^t}-MQ_US&WD6%NdGSNiMOaGiZfWO z2J|(bYif3k-y?L!cIjsqJ)Tb<`+9lv=GHKL*8S>hz4U9?1VsI1-=f@ma(q5LbGpB6 zZ;r0(vGenFzXg0;IpgNpjodH6)Oou)2CpiKZQ(?KQ4rPLQdJvGmsXK<@+0J0Np_-G zEPx4t{Y+q!#5g5%O#h3Pg}AlI?QW`iloGBSChR8!*;ab2e>5@;=TRV>7V=EL>Almn zU@McmpHz;T`lnN{VB8_HO;DBMg+T5GimC4~1ja8nCv7?jy+M1@0kIB#fCrW}sj$~+wI<`tn4FK01=h+d^kWmc_M3nBjTEuu$3*E{?4 zgU~*U&@v~#!`ZaRo++Lzl@QCi0LUIc;&{m~J~7!n^R{kMw%LkfZd^ghJWJL%5p1$g z`Tg>QZ2)|rl;c+#;xBxv9xlw9yhU->+w6UR>6xTb>9l5BQMm@!nuQDy;bRNS#+yTZ z%IX&r3F48#cu*@nwp`eF0A3$q!C0LRM;TZUSHe)12*XB+kW{SFA@0PTuu`mb8DfP^ z4C+5<@t7G8@yY0Zs!Y|snKll!1KEHf`58K4d%*dpd%#xSdZRgW)*MD5+Wl6pJR#S;=Yg}O3Phi_S9=8#zBF68CRw)MIZ`?gwCn|9A0w>eY z3E+&4pzKkAdh$nm##y%_f-Q;M%gK5tDxam28J}k~UcD(sRrvAk;K)K)r3I8g(uoo) zlhj2hG%RN$vz0JLcAs!q=>a8pD34;|^zn3(IWwXyKg%(dWIwwZ6ZbO8oqsFyJjzRK zwAgIa{GTQf<9jyw@RsuW3usexY^kk}7{FHNY=~N{NML@A;t{duxu(YUqNGw~gpykz zDV*5t#9Mln{4a@dLdHZTr+sjpx98FK-Rzly@8ee&a+TcB;~1lBX=9Z-85 zPG&2MU*^Lflcbmt>lGu2f!x}D@<{I=+oNY;F?!_C_`+Zc1vRyEl5)k*rF}N!pDAAA z0%3cEg*7_;u(9D0UZ&AQs9KfD#@X~z*}tDOyRXO*S5ew>Thw#15DLEtQH(oja`ye< z)OJxU1kTxw_6YY%8`X9dS-S^a)c5kG>)uR$5a*s(#9RA%X(zA$-E%pCj@I9o=MhdY zR7mW)B8Rb8rJ??ZDYC18F$*U@lTYxE1o6NBE&aj81e6g6GX{_n#7C5W`zmY6JxjZ?&8!|t9$_S)WSta5R)2T)q$u+DgFpxD4LKqMS+oO+EetBg{ zr1;TuSn4dOyL5Dt*2$*2;x_u~aKvq)tG7oU#Sq?pT4KQ{oOAp$cRgjFVn}IVWCexg zMhWB%_(d(K{C*aC?93cYbu#Ymm)2R!sA(ko>6ruZj6cGJawm=l<@LmwGDd49V>)!r|C zM=%`tCblkNa)k}VC&@dLQHW*g~T)VAT!vdoMJ zQ9tq9&XrVgMx=l&H2R`7e|*7Jdp6+Hr00Anxl6 z6>~DPg5~+awH5^ga;a5-EG_BnBl%`p!uL8hn8oK@G{z8Up?3;36UtmCVwh+pPqr2r z?DCK$KmwMbj_|(wz9W$=di{Pld7-HUl87j1ms$xvs}FW_PJi#sEZ!piMteHkv|?xI z5I}7LBfwAdnyl6H$pv)~A zuD|L7^eVd{b~e$4SpD-qI{b~*QyU^o3qYwNP@Q`uw7NO%zJR4QN*Fcp8UN|`duzA7 z^FHIQ+91KL5%7B;b{T-e|7`uGG@8KWdhc#U)o8SY)j3{{dqiWgqzXaC44#f;X zGVI~kYMgE*^!ccszxRvX7u~9I-zm9c;f+=#zkZOM&(V0?`CNR$O*V;D{dY75Y-R*Q z`oZ;ITMRl-M*2H;+dy@l3mGt7aK*yC))@*-(Y z5kOmY5EPemzR@MtalX0u8Sht7d%|oy``&kZxf9D;R*-2`B<8{!30{&QnU<6Uhb&j1 zX!=iWs@-EmT!JBzi)?#rIG;9y=hMfVu!yH5EoJBOxLv^opu03kLuhpu^>2|z0o#)2 znb(r$+|j{{_k~BQmn1SlAT!83Q!;UIXZ|;){O-KxK}t+_fIp)S%& zB>dtzd}1a`t-JCUyPrMS+<}dYBhTBPhso1f7!}Hb4B~c)y%@(}^!KTi_^o6LnRQ)V zTlR~Ic)n+Ljkv(N6lvRaJ?zhGj@#-EEpge78PYxC@W$vJFr`;}kQ{xa^ zRmk$aNS8Etmloc1(QU+ovX})$tlDl~-4udce?>GbT!#>)$AxEZr>L$z;P zEOFIqJICXI^P|@-vQOJQ^tl3pNQ)j!?^2UI?VXwihD!B^c7BL$Xe6cpS8S~@n!f|? zWqp|rm}9tF!YsTkr(T_#ZS5E2E2cWPFVvOE1rn$^aRM*Jswmy4^Kb3kL~IZ(8Wsk?05@}} ziw7jnZx14@VAr3)#6;(FKf=^h`fYT$O2@glnJ-P%8Ty4bfaMD~2SxhPj8c~+W#t#H z)QymnNFOuKR-`BEc)av}kwjWAd z&xgQ{?K@ckDF2w`!PSYq9Ipny@Oy}u?8Rdp1`o`Mnd{mph@VA+VUQSz*WfV>t^T#L zt7Wq4c7?CNV<2mTd@h@f`u<|rW{_R4qO0!tg@et~#9wcpJd|S%N7Vp=qwip-0JtQU zlXAIcS9%(y_*!R|LY3del#=kj6E@M-wJW2BRa}W%y!Mu_k^4+{>Tf5 z;KOhKyMKuR65_ippef%9i&gA*aRil!6>!G(fzfILMRa=8S@?^zD;O5#uWXe^sZWp7 znB^O#LhMIu%K4wAU5E}=%pHd+N*N|6+jWE7*Q<8QO}0GUkGVj8QK$LCBxl7S9Guh~;$;Kjkv(ekNV1nOTPICA_7|2vd${a2O+ z{6-2e05<>E+YItr*1mgN0{v(=C)JF99`#R4gFi-51>lpffkRV{8wLPcSr!VeqRxSe zNvr3UZBmP9=r=xYUAa%bU1}Kz8nGx$T6ES4oPVVe*{ifZdL6%grJowMq z^U6h6j4iq;r6dZiV*JJr?Pe2#Gn)0Fc>tS7{c)tcl(bUIroBFv#QuQ?^DB2=ZXEGi zf1Vag$eojutLO~sCyyxjuw?)tZy%~7MK6?dmC*fY3ykM(p2sDLJd^)B!5QQIG^7%4 zW@a`~j$hNm;cZ`hQH%m3zqOxHnf2eGqLH2;eEbWiGV-A`hF0oS^S`MS7O>`tVSrx^ zk=_t<0pJ--2x`qiV2Xi7S21nTGDHl>wCeMw)@FmSn~l+jE&9{!;ih@Gw7In76I&`e znxgCyYQaBPfE7$Kfk-6B!uvn3&n8M8mHM(r(%>t7AH`vOIP?ds#lIv^o|lzJ0T=@-Jh z;;$dgZ|m5PoYt!S$Ouh!$4)wpZ+Q+pN1<3tTcRoJ)>V>f+z?eQC443Nm;X%S9+)6! zb2+fR%E~n|PH>fqZLdVGc&VJT9^reliCn$y%gUP#lPO^PAXaolwn z+U61%vHLsTMe+y^piKhfG5}}Zcsec>`R-XHKbx3#8C7_UH>(kU>mC>N5fn}7h%%Q= zvA<V!Rwnd@aFx3 z7)?lnZRJZ$Zcp5dKMzv6OOi*oe#2rAk5xsnu8JW^!me(K#X1ZW!vYh z1+yD2E*vC31THSqF#EaP1!#YY@xDjJkm6d`5bR_Q$=Ix2Q~-5eUdXp{3m8}f)~uel zRTFod)c4A8J`E%i6~WAj5y*;S$p3eFa1XJIZ;&PINj=FHWUAFQe5vPj6Md@Jkv}$s0|qABEjJSqjLf+RC*9~;@?X(MG?C&|mETTLsGJDNL>t@b&WGPSED%7p zd|o+tD0TO4n_FhcK|v(w8&Lj88l=RD4&82!Y1*QLiV3WN!||jzJ-arp1X5AGGyQT$ zz_(IO*mZYwKI^^dQ%tZW!cr<9bIlR95pY1mxctkx4yfK=4X(&PSU)M?JfBPF+WyHN z-G1BwT`{Dt+7fYh^750E@5kTlT-DEzVqrf)QQe-koypCXc;p!ZsHl8 z-teH!QY%}dV5)J8*e<&Z?ntK4F-k zKYYrr3#%QtfZL?$;k6eew-$|VVg36(V$nyFnk{0|7&nG4W$x&VRQ2tvxlGO__dtr= zv)oeS3=m!&j2JLHdX6m5ikn0br5r={MI$4pT7CJIH_%oDNnP=0up#NhUnOXwx9-9k z2Q3ZE9?NXc5fyuM$MqN1eCgXkxo3w5y{j3HkjZBeaJ51aa~c98O=7Hfa6~{Df_n2Q z_Xz!OHv&ScyDo<3r+LPnJgFOo=Vm9dn3j;>hT_`0-I_#;gzGaPcLQEq>1+OeQ4>Zx z@o;)N#W1NsZ65;#zeByjQ~#%W5`p;ZMYmjRr2=kW5SK$kM89f|{aTuHx2zZdq}=en z^?&zlZq8&Q2y{@6|7wkaTTNiFfE$!d392jN_mrs1D891&$TdDLLL_=+)ME70xFmw- z^N!ZIdb@aj-@4vGiiSr5$rhtgq^E6{Pdw=uWn zGZiU_q+2=}ooHB6`_5Jni1kP}%#sOvvNrhrW;#|G6H4uMyA5;&$ib9rKf9}7aO~~4 z@VzkSBFBj}Dux+qS)Lzx{coXBDmi4dJ-usj+_UQ*rn+Q#5)E{E;zF0gb><%{EBCkJsmCI#yM^w?78C2ucfQ6uhO5zK8UBJK%g_{$;^o6 zYf+t<%YC=Cg9!Z^>}yuGk1h1hlO@LB1>U>AlqNFwdj(5RfxLjX77SD1y5)9BisWSy zfbMD+GbDW_>w0F(O5}Rllir#6R#7y2GVqmEqw%vCam6}F#6e!_%!Z7ZAnd6F%axfV$-8*fGp-*SYjQW{g|2MC9`&p3+$GMH1|m>@!YC7B`8YU@F2JA%vax1TqyxsTH<|ia z&*Q5jd>29Pr+-=Gz8t%)?KAJ#)PxXT0(HV3 zBE6g7gr=>ll{aSI_0$CWE9P=^iNc%e&ghHp&qG6d436-V?^C_B$jPU7JdqMu8FX>f zryzUo4aX1WKmVHIc7yl?C=A-D;gRMMx9q)NLa{I}rDdL(22vq6ceBR1FmL`@G|X5t z0P=zeXvLF*pKb>4-Jm;>u@w#p@)Z%gJIgdu8wRT4sLxT8;^ss(V~IPpK8%WZxF3+) z&(bxXIX2H?9FjHAJZx4pT4xuU0nfdM=&X;`zdfMPD$^;?k2wSLN%Ct{BktNyzvMv_ zm|u5>k1MJ_Dh!Q+>i8*XcaN0wIueVLplw?&zCa$zXn-h};NNt(?@6FABp6!Dvo@F# z81}pjInYVbu1QIbs$-%G`Sv{g9?1&o%K)ex1BMR#umVGG3DpM^0K-;Kl~r#lfVD6EPgh zGeXtP-}Ut~`75xG`jH)sx_LN1aiET)Z;%NQFH@`bqqA$H#g+#!GG2-J4$I$q%;+iw zQ!e+;TMc_&=k7B5zErRi2kwG_IG9jp$ak)%pJ@1_X6i>kn@qra^FAFi9VEP)77DyK z;3-TJnqF&0O5#RMF>rGDetC<>ZSN0iWmrDmgHkw#PiJuEPHFVJnL(df4ywqErR788 z)TAh{IgS}^zz+}rU9$m+a1PBxn}dN?tmUr`QsqqfEdF`q@+PCfqX_-N`nUF^HBrV#7Bbo_0H(B@W z6piDHQ!WmYD&C8yRIwneV4p+q{1;@Jym_}l;0WnMuPcCBsrW; ztoBrSss5UP?KWKYveDnT8E1aLb1DCN8}_fqRvOA^*(nOf;kAq*1)rgK1N?HlXTY7= zNtAchm)liK+!GlIv;R!Xz#$>+`JZHwbP0`(M=YMcE=B{%4gz26KYJX2^dgK?M^gc?7lOHN)F%u4`%l@pMI=(nAf0@DTMnt?TNN&^%&j z_fX_Z%HaxZIsFs#rF{irLxhj!84Z(|yKn}1#P@V?h&9X%i(CPgmhMQsBc1+@qv)0$ z=jvst=k>=dlWe{pztj#Fj+=PRFODdSwZ!W1&Ym%81Ol>sOLvj4IoO*ARZPAJP^uPD zXP-grsZ|o1YY#Z_j!8=Vi47EiJzeJmko&!Z{#> zTCC+A2>S=Ui@$WH_u!3kU%hUSB!w?JVc-6tjJhv&N1T8vncc3J#GKqnbnn0*lASvS zFb%Hh>g8Y7upo?}xle^`&rDzcZ32W>ZC@tH=F>6HuN#mf7bfQ_)@2|=N1nGxlXdvE zn_<-^ey@C0xSoo~(}RU5%c?XAD@1}fs1z&DNXK>Ly0A0E31|viXfR^G-19<`BA(0n z==($}q7qzZ!%*bH8OwYTaKzi~G=962#6VC8a=+UszsM+F=wO>3BKkwP9(ekf@dnxD zzak|F4+H&|exQSL0dKy=gg`Gta5^BrH5f7&)NLP7(HaaJuw5i2lOiYXQVW}_L7jeiPvjp>dzMtm;y^kk7I3fbVfEg7LyVy|yhpmJ|#E{9-LSM4%v)O{`K6#X$-Sc8~Ihw}T$cog=bO zH6D><@wy6cosJ; z<(yPQ=7foF9H$W_qwf5{oYB?_GYqDB5l+>~U;?Q4`?M7(oPif)-%VMb{W}QYYA7Zk>=nq9@CBN07&T#HnQo?u`|87-NtGFc8lMxP?6G7Iqwb8djnnEy3Xc>A?SHbnEJ>3n(lO&={%Z2MC;d``P;ek+o z;y-4DC9}QHsBt3RF{beMDssEA{&0_)!7K0tGUyqku4J(PZ1?Zvru1P;(?pjNo$+zL z=f(hoC91~jhL{6xva)N^TYg$YZW9H=C*hAx05j9(+9pc0Gw=e{PF7QZ(k}L1F7>H1 zwHjJ4J7n~M+%mBg0rAeIZU4hX9KFA>#qX=~jdEH!;Zgako23#%aAMW=o3;l9lq>Q@?K$E9*m~)l4`~#`SwwIz*33+PvR8*8QD-H!l^*YY(^3 zhI10l?S;=YRZA^iX%RH?#Uun(a;;fG1iin6zKEZ%c6z+91fA0ltc^yA0>7=RSBrp@ zu-t;#K9`46C5e$8DQf>>ICAV1cuQ(#w4Ky~al^Yf`f`VfAVh^kC8+HNGZiy&LVd+p zlvwzs_@GrkzGg=PQ%`_O$Uc>a%U2GN}fdc{35?2|D{p!k*guF2B&D7<2X~-;kxvVQ5#H z;Hbvc@N@QI@8aJ?nk1G%57+s>i*rjUaV7+LCdX>pzex=v-o`s2czgY@SOjvYera?~pW?#$2kL}3ZWLKmS7D9 z>=_e5Q=t94X?99$Yn@|qm8vcVlCJ?Vy7Od9Bt;g+>jsaqZOU|KcXPQW9Gbs@^5EYO z!Yswi+qhyt+bM6a$rRZ{*jcfbhbae0nn<0~&yfbk3sJyFTo1x#utlX$L$~yJpU@cC zEU1t<6F4|Z&E;ITyu;bw%R=)k?F>5Aobick@5QR=6TULko*z&oXGp@0r@rv1_GsCm zG*mWEjs7jEi?-&xz1IWQ0wK#Ob@UpJ97MI4n=rY7(sgTm{{110(tn@=#ophT@o z{@@{5oss7XH-4Vr!((Ebw+`Sj7|Q=dA66wZimiCp9)NAC`7J{^g#H2cn$VB14mG{+ zDQ_1Xqj$ovKGl-#t%*KY%7oW*)jx70WK#Oivm*e{gJb*R^}p0(Z}s927Xcedo9I*e zDQTgutXKXN{A;JV>0NwXet7nZt%(yF-uaK4<>cYD%wN|k;?!Ws{$l7x(mo}13}UZ&Uy=bXTTdxiu0IeILK+YC3*=O?KlWE#rH6{r0>mK-_t=z z1FQi*+21#6Mk@%=g5Q6FatCWT%of`Qp&GYax`h$DGOHxNbbMLuHp9 z*?L90heaRkwJy6v!d~|wBV5`!njON-X=rIc<0agw^cq;{*y@O!B$FV6I2>SCIcOC8zhSj3v z42BJktqzIw?FI)y9@tz6-cko=en*(^>7R-E^WQcC$_g}^`nD#Nxq}sfW1Gz=QH2xS zVg`}QFW*w2+bfQK{ixJ}tonbY-|lYomRKLK8F1`mVNnupHxGT}7--G&lU&nx%HAF# zAEA=}lwtt=W4;~f-?&r*D31#UH>_;|Aanp2A?RNqWdIlvKzYqkyW@evp!nRPv_Hr0 z(~*D~x0>eNyN4!fpzqb=#Kscg%mA@DVWHbJ*v-sk4rY=8J8jJKYQ^A9Es@O@t{n3>_3^S zJ-L}YpM8C=ICtjs_WpdkI9s##&Es<;dkb{(n$=6zeGP2qp&$o!fQml$3_p+yfh);O z8`$NUGkU7k#*;QWq%LpU?vfp^908{3WdA-TH<;Q0EcMeEX!ud|mj#afz4Y|6eBD%8 zZ5!QnTqzW96b7ocV1qZD`q^F3=e0B zACqf}U%i{D5Le`!;@{Lpnk;8WWFZ0^K2NmcjbT&Abf>BVg#A4xQY(RhFB4XoXX|8z zXQ*vFK;!v7WDuWES3Y!|?tQ(=Coh2quZ7FhB4WqUL;bQmbZa^#(MAPMu_A@f8~o}K z`;GetK@7l|ORth54ewXo%Vv@Wc}(;DM8T?M3>YAbi)P)T#uMx5X@;d9jh7!slp=k= z8%EThCzZ)dg+!uR!(WX8*@P%;-ZJeK{P%_hz`klsW`7u36jO_9>?=HhiC3&2ZD%+5 z@zcx5mu9vMKK9=Zch-0Wz@Vxz6@=N+Ig$_G&|R6Pu*NmiJQCX z=&o6=;;t}dIb$$uGLqh&%tQm7`)>k1t$K`ngrhb%|6(4l{xz zWbf>)uszgdUn4PQ1sEzEDT;7#B9*8oz{w~C2W-8v3w}7bPJZJJJt_s#ywnGsMw$D+ zcN^~hOn{WP3wziLcUdgq1tbmykQ^rH$Res5BdK&wZ?_+n70ReaPG8o>wR}BlT_ZG4 z+c(&%35sL7hVyxG2(vw_(C;LYVi}UP3}&!dNr^ZifcbU(4^=s` z%mP{(KeQGJ9#3th0cH%^VKx}Dam_-A&T5v}L^I@wJ=*8}la% z%2pEP$VuwlBfBhl0vL}ta@igb@Ml;Sw^{7*Pl(K5zM&I6ls(ua;a0*Wy)BLSrWwn2>C&niwXTb zdKH+3i^bR?(C#|e(@7Xj zX#Y4Ncg}k{_Ji^KM+VpzfU3;EfPW#sc&IRNI<`I5+VO!G>xN!@vEk~CX+xM|MfpUp z_4$w!=`|bvl)*TWU|66ZnoYZ<41Lg;b z&F}<?my$3~#jY0gyOui{tPv8Y>wz8}^%0sEbQoma zX1C_a`0L~!QmCkY+J9^RqufISHt_wRYthaGV*tY`FGL|8Nc+1tA1KW#Ys5WOnaJ>g zbaiqn``kaofpxACikeYO$*~xb<#r6gMOx6SK$ujdBV34-e3x zawdzY>%bas0$cMFNUro*4eQdlC(R>I1aD89r$sMS% z`I4{5k35+)xh|0;Ar^L#2{j(XmT}+O1QVv^(k2aPn>{J&X%!8S?w$G2$Q^kjDgeBCN0-96hJpW5l?V|oj}2~OJUawXw9b2MccBpZ7i z>G|;0m7u(J^WKL_c_l(o$+hddE;{U(&#u@we9B0ppyY90N=O*x4Ub&2mO|0WQX!C3 z`7!x5=j=1PENzql4>)U;pcw%`szb@w9HIBsRbI#|-Dd=KFmnfhl<2=}v#of#Mv56A z0V5lH+ZVI-91nmn7i~;gOf?i?_Je!Q8R`zHf~;>QWP$5Qt%0Q zh1Jx&KbhGPdHJ}8{Rgig%}ZHyM3UkHF~(}%sC;S(RqG4Qu7L-=20{N^ut`wb4{uIrkex-O}IsW^zBWJ0LRmj0Mb#zbq7 z+&1`mOjZ|=)({R~zS|Db#MWhD|@q(Nfe|UkfV19E09+iqL(n|iwDxqf{9d1x#lx?0BYResspsB z%&_uP$*@N=D8-KlFy;IY4ZC5Tl6Ew;!67p^$JHV{X@#gVID=q=C-JIfnC*YIo}Ayz zutQeao*9b)*vS^-NqywfG=;m|{v=$@9qmsr##}QlwY?x;Y&S|0(O?LcH9}Sss;OPb_>tvh0)zT} zx=}$UPq#&$QFuzWg68wCtG0mc{!2<%&+OpHjkz|?pjumvs%zd{{Ug&O7CFICd61fJ zzCq;Tmvwe3NZTK2RKNzER4Xxy+HXE$P3VezrksG&U(AAiEMSnQ#cCRqlod~RHAq?3 zIrbduevA4(KFiDJIW?Ss>NTwO&3C)!A(Qm?mdn^n#mjNdJpIbGU1D2a8h0Hm%U%Q!C=(bacYoXK~<#8OJ6L^7*u)lz6rj;!3farKmGILV&P-`g^ z%zM&|kzLcfKPCgF%v1%?YDbG`^b8Urk)Du==c%HhKn*|Ju^F0xmY z(*JB;V~5d`4ID`#^O~G$5UASpnfrkcq_B}U2OSQiaQ&x_zpjqjA+gq9v;aY+@X77aXV=A!2$V3 zQMf624R~;p@mzUWX~m5pK!WW+W}h0P426h@{O5N{I^R8x%bHL!M1>~ z!~B`imYl@MvMI88rDBDCJ|Fvd98_Q)!ay1x@8Q3o4?J3fdc*%a7I6OO$btTYn*)fF z{2kd@oDYTsu$8(pnJE;i1vcMa$>P!_X}JZx)i)h9o-SW2CE3WPWI=j{i<@($J9`|F z8ahK>e4H4wygiP29JNX=*sz#rJCUWahses~sk&us_|TfG^Q5d%0L;tevm-n;FwWJz zINQv}c<> zr~P(-4fIB#!031| z=A)n$nnaFKc$GwTb9|t*-^cpBZq*<8n0R}N^naz75GeJMkkzxh$ed=qDJfV99MWgda$?w zlyn0D(E_`sWr@VxWx+VVrAq6gXO!fgBPBw?V=J~#R@;<*eqLfidn;jjt?FrHT#7bT zIkzUdmiWQgMyluT3L!T(WSZj6_z^h5rNnUx?q9KFl2t5eo?C2q;S#l4g%hV&Iz5^_ zZMC4O=~d*Y$lY1?IAw-E?w{`w`*Y<1MDR6K=Y@-_4k7WBsg+xBjLK4T?On-ZAdDe^ zL(2FrX-Rzi!KHy3BqH!TZm_2>GeasM5rGNEK5DnsW5QDuaxAFqoRE!-bqNiw# z%8te>%CV3>fid|xxBdkt7_Qsu2J;<0DYjVhzw+PIFe*GpO*n#Kw^0@y?oPV_@|y?> zVYkp%!^=XeaLS~5QObHh|JEIm|4Zn&o_%Ls7S6j%O3q7wzgMtyvsh%&rs01cO;QiFDAlbaQr7aXoh`~V# zGvhYrD+*?=ViY=0@zm?h9RJBleEOD1vPU-C=RPCuUIAW8C07Y%PF z^9B)Um6j}?qi!vkL(>ow_(+`;x+4zQ^uUwz8&hH)wMkoI*O!OAM#)GRUc>j|-Yzp{B@|7Zk}`Bb`SNb6-637x!({<;)6oVNbX9IHIK#Pye8Hm1f8Lq3)wN;gv>fG7nFHb$wT@g;P?# zT9?CXU}PLvR?7!x1~6-QhYQ9J0-xZ=?zs!syhvOn0M_p658qx5>kqo-5WeRSjCc`} zkgH$P6n)PipTebEqz56O-PaADJlvP4^$#a&If5~in#ZXaGvsV8d&w=tNx&V59q8t! zjR-^`1Et8_ptHZA+`UQ^r~+y%wCPj2v$t~A0ETn3eZnr?cFXjtPTjU*>5?gfyVt*P zkuxgG0J?Fv{kH?aTytqjU>l>uq5Y-J&7P4ltn2wrc(LaQglktKk8?NoDqWSerq{S< z*I~Z>gZT3JG>`-s!cqem#Uq2Fw&1)iKI8#5e|d#Xf~6YBd7{E z7e^%!V@l9KcSTGxRg0}eg+L;QOnV36_(E0)-)oEHL? zTvYz`;W&BQ(ye7a*lMd;9?Sg7)pVUTCMaV56REaqO(@R%v6pV6%on}hf>vHDcg9%} zF!Ds=doIj6wdk$;FsR~Hprz|j46m%q%zp!2*|NVVXUJ@eAN>#?R3|JT6?)n_Amd6` zPjh_AB#e4oo!#8fwZr{eW$gI@=ShWxGX#dNs1YSmA{Iwx;xrHc%`(;W3~g-4h0Y1! z;w$I?%Vp8vWgo_$lb@9FDFuiO$378VA^p?M2#6KV8rMm^?1~=Zi)1ppKmdj zL3$~hGP*4LqaJ**_5u+{Vfpv}A5-TPU1`%r>m)n2I<}LJZQEAIwyhmIosMnWNyoO; zu{*Y%ob>;lGsd~vH#Nq-S@qVcRddegh%9C^TPo^{cL0-^Ea^bPHK&Y9-*e?(eSKC( z6ZRAi7b9R^H`HC>$*!u4yH$)yRTpaUop|-rxAVBrs=?I9E)MrHwh#twUNRxV?LLJCz|e-@*PMwJu-P8&fO6{E?H|J&UzEhWPS~buX>)B7BNe3 zpKs26$x5rt$nJavk+~%;9sdW0bHKboTb>R?%tzi`;<a3x&sczrp;CUY1nMu56B`y zodV+5JgdX$^Bc3`A{1>K~^#5i(AXG zT$k5%+s+3iZ8pr9(pr(-EsG$&i9?E-1(0?PWGGL*vxnm+hmGFeGW*Gr??y_w^&&}K z(YY|jCv3z(pN7OuD~!EpsvvX~(O6pHoMz*_p}aJ8GBnS^I>sKzmGGZ3M~QpCTsKTf z$@nqOeKhfCvzbVWd?quGg-C*ZDYVHY0~5s+u%$~!^vLokA^rATX{O$00)x1 z&OICmdbnLPKThGp{4}d?U>4S}Hj})qdQ*(hv zHlW|;IE1=27fJ0aX8WiQy@zPhh-8l}D{H;labJ+G8^TflE8~}*uXI`_))XbduLkZ* zF-i**#Ei@@I2i=n**BWL=v^TfQW2d|yPU6mJS}P*F{nrs?1w>xmkDi5Oods-DhM;V zDo9ne%z?>TH!G9Zi?USz7UlWE+99-#Q&|OWztMdEr^G0mZoW%y^X)cgJTcxxX%Q$9 zHRpMz3-7(~j zL{Scc>Cl&Wf88E~FiCig>J?iJvk3iozIlNgfQ-d_1a#j@rrvzNK_ZT3b8mGZIw{oV zjHh-d6Y}Mhr`eCi?Lz;apiw@@@Ba@!ViLrP~y^ zPYV~}OQw^e)&*Zf-)FsaOOqo`NN7Gi=%TAi{P_56rBvP0sW zj!aPh$WY6ebTVPD~nbIgQy{2RC_(p@7`opnD z!v7D9+A&7y*UKjWMQU|P`8e24vazW|*ht!?!_s=s_Kv=VniEhtYo^Sp-1vkFt}>p# zQp6D@tGwdkiq3VlY~@AZG)5KLMkKba?C-W9)F@=8V@z%t?VJh=u!>6(;>!gN$s2Eu ziLpQY_&Qe_y|{3AcQlc`VMRuj@(RWMMYYLdz{~5g@`6*d$9qKm!zQ6LaramcPSy3g z{*3hvifi5d%w}~lRHIueu+kmx-z4XKfSVz8D955e&YG!~WV^fMtBeR`4bJ)aDDXzA z%&$2rCFHwz*BPu7oMPp0RmTAyE^2|6jash&<<#P1Glb_*PB$zaL7oxzKkBI}%LIi3 zP+)}fck0n>QQahwX*gZ5ARZta0HIe|;{D&$Gwq@4FZ-Ay!0+S>WK)nB%{2u@c&-e$ zjkt*ppTZS4A7^{!CfL}Blzu7XQ6~pxiDYk=b?=pj@W$LC4p2WdWi7w!~W| z4PqV6TNc=DPlg<$OT#={c@S<9m4x_9cV9*C>An-w@v_0I(D?gXm^xr=bkBJ%rG=B9vl#l{%oI2=O;hfh0+&)0hA5|vz?l)hut3#TCGD9`6 zquQeN(77NE#gSD5OWc~tYYVmACgpzc_Tz0P;Xnl2!kMPaY0cCkKBT`DVr=MIE+BN;P`VcUvjlYMgKw>dm;`&H)X9i4fBm z|4N}qO*#l-*a~M0Dn`O^eCMq9EB)Czs0D)MplKEZ2}B%$1omyy3*)qc4^^mr@_U8B zMV@!#NuM`NBi^3ZB}We-#-6jhVRz5w*91efiB`kp)x0WWkRlFR!)t5#Ye%qw$HWac z4qYpAip16@i8F}DP>qV|Qo_yaaMjV#kHeZbXK2HjOC=mBCx4+>>|MyI&Dv&Y*=o*> zJXhGY)u-B;A*7@0;L{iXM zSsUUUO5(C}kf60%aF6%1S2<9OuTo`_C@sfRgru=n2+GiZ8FiK-4QZ__0{fK7v>FynO=nJHSh#X{3~XT;x09rb zap&rl^A{>{Ow(w)0L+BHe083YM>s0=?(R95F&UkjYV8obyohTud&GB@*yXHP%GZTA zFzy7BnbElEX+ktLXQ55CCQM+ht2BVVCPh(cZ$B$Si|EFyIq2nF=acmoS}Uy;&&#pa z#D?kW*mJW_6G{oKMHo6b{@9I@pnxCFz(PA0EYCmDAKYrQuKfa%XUgK+ZGmu7sVs&K zBj1QvcWy~$6hgY0&-{AXR<>XK2zbvgfy9!6jmSRsHiW09me43R#9OWr%Tfp4)XSKx zm2RVKgRj3g0%m~HV#u3CfnfpTfW55&Y_Q3I^BUAaTcEV@(xG08A~8QCd7vQ*$dlhk z{U77L`$X{wsMDA>CR=5;gaO-X%3m;Tw6$VrQ5*hqb_-_0M=SF4*c;+zO3rq<_+EIW zQ7Z?Kuavz%@FU&(W01h`uzP@KhCOr$ZsMux$D*ogT5@ysbOa&Si-#I*Ah#A8vx`kI z?mZH{fxYR+DuBd&`KODp$B$j6BMT&amZKxYqkP{t$JMFB{B)CDX_MD{IEyV}p+L0s zLMT@!$_TX?bD0yA47;=>ru|oDL^ttIe^Y&d<2eVus~I z+PLxV=ZkO|IK^qzIhU9bw|z_`{nDfN#3V#olU*D*au_b3{z5y}InUFxf(@9zJMU%P zZM0*C`FhcYR)}Ex_5Iz;Vt>Bl+9ZWv!fN0Tv%sWdkRuy_QuSGI{u+pKmRa2ZV2O-zk`LJLG1&C*`# z^1&EzH&1gBwLYrD#0YZ)lf;m4M84aF;Qe7eN8}?-X-|9){Y)e2h-1<+0S2T+4?XcZ zgH5mZLoeCs2e+h9)GBkRWu&Xz#OzIdIK$b*w$U!17E6U;6y{-WY%&@S6b%TzuNhu_ zsrD)~$O(JmG27nqCMSGTdnB<8*FM4=PFle`!d>*|JURm?W|8fu`Xj|3+~!zu>(aJs*Y|=_+V$sm}9Djfjp+O{en|)W;|L{nM~lC zRBRSe=?nd7#r3*hRZm5!ZXJ>QgN#cF54#9Dg=jff!Q*Z?PgGXqW?u>`+#Lu<)XWyWfKc6nf;)<5}5UhEGy zYSFSlv|nj;N##!`o;K!hQJFp{kE!`1*DMGNR*MKm9!#LhyTUfFzamxwV|tQK+l&tT zLigAkmhscsIs4u%W-oQMU3_O_Lnj}EAG$RUZwqK3sd|h-^5RD-O-_vNg z1B1zB#KTlW*$Qt-Bx(JYU+?*;jrF$w^3Pu>=!L#mZ}2XR_6USx{w_U;!vJL=PhJh? z+W))fS^CNjQ8{Nf4_`3{oaFFppTrub7q48hOISF~x9zk(4D+3BB`epNMVPI0auqmk z40@%J*@~r1S34xRy$DE*i^Gqw;kh;mbk&A6$_vJ6UEw%dz6 zZ+13L2@b4e4vFnNRTk5%X4QMT)cU!>hHKYzU^}p;F6K~FH~?G(^6P}o^(?RD!XU7tJC04bi$YmC>;djHBJP>D&*>7baIL97Hp82+Sgaxi3 zeqh(UtMaiNU5CuGMxB1-&b$x%joW>OWv|%mS}9DnsM!rNJt-wDmh9k z3Q5mgQRB`aQveZEC;Rcba7*U#W%W^tYcTfi*c8mFJ(+n#8XnJUFTSEj{w$_^!t?~9 zR0B^exj-SxKwS9p*4CeOVIs0HqQzC7B8f>c~u`bmk?i z%!c&lf4T(-_jLc;FaH?1d|$m8J97eY$9JH{nmGCwFkz;^1xLaBU}}|Pq)$p(xzti0 zx(VgqSFXEVGZTv50!t9-)i>FutuFpO3KYXKa4KyLi z=(p8v{tU5%+2?R}TGcfSW)Uhseam-8r(N{=Yl)Ke*}v{U4le1!7>3R4>@J1W9=OjZ zmi;mPSs?ZP@OcSXCVrAWo%H^g6tHL(i#&3*1oP2z$M@>jH!-i2=L{G2A3jJ7k(IQ! z&$=Ec;q$vu-8cNVOR?hvLt6Q}_D>8MDKQEJS;MX2<34Ta&(?pll2^V6Q$lA|vHd~a z?Nfh@G{oHYYHpDG?6DSH(iqf*#v9&b;-HEvPIo1g%#a|;z_h}0Npq!h&4G+GRsL2p zouKFbG%xcfk^y4f%$G|7cJ{OOdO6dobEl$10%Mgu*2xCog^`rcz=((jew^yK1Ks`D zeUTGQDdOGk1J4KynGpY{ME>73F$dQfm8tZ%!`!&sau7m2k#uMImO;fd8-_HP!Sx{8 z>CsIFG-lR~e6uWxbfx7DPC!%Mn9T{m5SNmZoQjZj1{$RFtg9DLXV2adH}Ha#K+rP> zatre@YOykOYQtv-1t;9@)z*dUO~ht=$BQqu``c8H_(t?&(#W@u2q&*FQ0@4-nm1tL1buVnkrH%@s>j+KUhOd_oLG!4%- z>;;XyhoW2m)qAnY7U1{RqGa&xp1)>Cg!oeAwPc~|p@<^CK}=|^Wav>1YhC{gWg4P5 zBRme<#6b=!G(78iZdJ62mf<{5_cpp)8E6*}s**vFLU!V_CYH|M(;5sTM=(B3s>$zh zUkJE1yhFWK2D;@e;%+o8l1DkUrYC<#x|o!of5e=ui7|&&f(D{y`KM8SzwQ1RUW^lm z{Slqfa=}wr?ztE}#8z?*S+UA;#DP$JBP*k~pC-^iQgM)5Zn)Lh{*_{I_<9`hiy7WW zS!x1+4^vrgARNr<##)YGwud39gGyt=28I@MN*CNebOaGe<y4 z>xFmS>|r58IErP2MQAlB%b<iLnS%_Z#^O&jyP5FIKD$^ zxL}QI53-g+5n|A4JFIfDk87Q3--JJYD!XN+%JP8JXi7LoIxL{AVhda&JH{a}J& z^KDI?;~OSCkN`D*&{sYh0t_g|4sE>kwfo&|f|tQOFFXt=_s%*_kNgg3(U`$JzPUfk z)-lok(kDRkX8f;nNgpXnSJUT)a=X&FEP||GIy4gsl3E^xcTse$Wjt_ZfC!#k*$Tzy z*}cy*b4uMp0N}r4+n^5hD4Ji1gCpgxA@RF@c{ab44v=#r5}%8Wb5; zgF30*B?GJj-d=`7N1+COIJkVJKRybz<7OWYxj(8YB+4lKpc6$H5fKw+;ddYO;b2VS z`Y)N{?Gq8nqhc7WEOI*s+13+jHJxVm`!h9d{f?kT*IXv5^$#9eGZZP zvMYJ)4DhqjuJm^CiVh^yOv2p`CZJ&9vA`e?@E>m5v-L#+O^mupEOL9iic4{fjSF=c z#ASM3nyjgMobK8%Ja{^w57)X9C}+=jVOl)_(E<47LR5M^il>-}9Nb_AqK?n;_4?oY zQ5II=listE3}G`otr5AnGJ>7yA6_gP-#+w$xWFRZ#Q?ccrR?Zyg>vMy++k_Wwdz8%5fL~e$u@nM!- zfwLsIYaTw3Xy2cKu+GyPd;(~6x9a{o$XOWw*Z8K)w0~h(elG(!p-}0h-;~JYQXZE9 zyug;>CHDNij)^~`%d@YXz;1c)l8UzHoa)Hhy(1Uq7jD$w#FY6Q5{v-B;_=zx>CB0% zMXnuM*JK}S4EhML7y~7o8fQ zQ;TI3YC)Z*&djVcahPOJqO;rd{exWTuIu63Pcdc;WofUp&xB<}10Vtjrx(UX>qMV= zALu)-ZuEt^FqqjCYEzT&J(|AU67bnJ#V)ASAnm}5feZOuN%d}upC**Lu@FzL_K(sL z;APmUF`jGD+?Sm3t%xmDPwb@N2|4q&)V7&LF+34_je7cR<6c(}G1DlH;e08J^*T%8 z$FQERJ2wxJF*O(9yE`e8AKLhx8=B@xPG85?WD8>HhiU$uJF02MU(F<$`=et%ki$)p0l&#?RCqtcjFY)9T>NL7;9lZjg04yQ}J(GR(&ujEpm z_TQNCKUi3b;W~f^81H)iqjidLJ>dZYYlw`*W5}^51@h%ySIf zUW`R_w%5R$_o<74j(LEFeC7%9tI7Qzq8v|lmYjfYzMTfgDeqbe)$)xpi(IX3q~P?L zII@a(Rodg+c6q2(j@K~6AI|P*SqK68-!l>?H?7)f|*c9 zPlYu^AuJr#5J8(g)S0Xm4DmxdR6OVw)VE);(|iOz&!Jn$mzVp>pLUarkN@GxFZ(Ps zD5~?e_IJKc$T#17m$k|qW>Vf4igXMg$9-QVR&W7|gWl;7?@C>m>xcj!*UPuQZIb$B zxw)`~ec(n31(D%-_S=x$NjaOs&6Qz&>U4sSbbcNyM$Vr_5nYHV({$6`gXT_^>TLP7 zHNocts>mMSN}&=Buk@!la=0A3PSB)ZLc3A+Q%NE6lSZ~WIhm9c92?VP zOU!}CQc?nm?-6WS3RO$+@MS4%?gOz}k$0&Vez|%WD~?q!x?kK`6dzzKu)I3=G!=^U z9oQC%btpQTq;%|>rJytI+=nWrzbazBEXr7O*isFhvS~mtB#R6oVLw2oy+D~$Kwm*J zX`TbHw?0x?=c&>K@W|XI3u=`3RLOJfCpZ}td@$rhYvso^UK!!_G+l4sBqfo|^zqzn zc?rXh8C5Xe9s4^Y^hNL_ID(6HmBv?|1J{XswzhH_#O6ZxNA_8$E)dp>X30V$ZbIsd zaKq5&lfyNM%4j2+E|8^rTr!$knZU)d-ghb{?^rW#4esYAH1HX11cmOwxl`;7>~ZE^ zfJjTJDAir8Rosyd<$2p0Dv>IE7CfOqiA+O{#0pCqf8q_;(|&Gi^KvT%&ixKb)T($# zqu=LqW8k{>EuSD8o~NGwZ;$+AT&B!y0qB*-mDd>2H(tLtCYs}@#owPHN*jbyPZw^0 z^kWUfWJlOu6$o~BEhXc}Z!4zS**w2Ub02ONkVayJ=abq4Pki|j|8ewCEx08D(MIEv z;~hW)QWUqpBpZvH)3ze7QWzK?BfFT7zIsp5yB$_JN?kVUcS9Pp9~%-9Ah$M; z1K@OiQXbm5$hA6=zQ`VTZTw^=#eK5nqO%!NYrqyG1ujc!p0cNJ4*&Gr`GJ>$nZ_-S!<2xWecLNf0uMzDnCXS+z%r#!_g^l4Z@}C(9^8O8MR~3avkI`?lfg!A%u!%W$;7#w1K^l8W8c+zn!d;-uK^S zE=hGL)-_Y?y2ojTPE23HHD_6!v0|R*mnaX=5^ziPb#;S|!6Hv~OUERX(Deg%t(XN8 z69`Z)rWd-qMh3!AeE_qJCQxGv7e%r6-8cYGzo88bX91Zneg3y0<5Ms~aWVQ`w6_ii z!UDTCpu@gUE|xp@Y4f7)+Whk%x>RIMM9kZK{4n7c$-2`B0dN7n&YRbNax$e(*sRqS zI3a#OV{W|F)0{y26xU@SR4n@;DI$D5ZL1t?IR}>_PE;H_OJkkeHR+ z`#J9IeTm1E%A>wghXpmrsj^`<+>>CMZG(ZJF%O+o|CR68Xan)fnfLXHr-#z|$3^v< zPQl*;U;w?+a+T+_llYBd{YApW+Cm0x80C=QoAcU)@OH=awZ$m3YN74SRo~ zg0Ub*qO`$5);#}4e2xBkqkvJn;>jU%_r z`xS4X*V29LV`YDaKiru@5CR92|0Rl0kIr-X(+>0|vH+Jb4>z!5^|D1Umt=&&s$4@y z@LJ-l4^^}yEyO{)vM=B#%v|-Cb@1@?v)g-hbo`5+(sI3Md-m76uP|YRP#6)Bqe;~o zE?2HJ;4rmu8f77@#ARSzg+ps2QS93TXNSr)v6cV+z? zc`fixelNy){@JGas@ZQvCPB^hfURF~Sy~f?`RX^=$MwMzPJ4m}N`Wi=TqRw*m{=|G zP##VC3gdTOrTGC3@6=X%l@+L}zp&?jy-~|7H@IRB_uIG`C^ipA^%JJXF@&|tR|*D-4X2M^{~kM`w-H)(`J)BFjF5LE3>oxh zUm9eSgP>yIyerKqbEXz}yWKouO%(pCPY`XgvPGSibF92^BBy<74JOHw7JTCb&HsU3 zwaiTr;*T;po+|3Yw-V-UxIl(;>W;~XGYUa8Ci6n|jGxS*MVeSuPL?e5kTUg|lv#$r z3?YSvKbCX{exh8-x!T6$k4pMJc&=(K(XWhGmU=#TcM8@EkTyJXeoNdfd{^%qWBUXJ zrrwto9EPb%@4)-w1%r^_JWXeTLZ7}=O{N5_WZ|%@@t-(Y(57)Ex}t`%pbhy`WQeVy zD><_7^!`(|xO=wT3cMdVT1;g*4*{4!ZDG>|^Oy89U2j#PRd7^g<1#tST>oF8D*7@O zbQ8<&YcXEddi0OM+AD}Osita4vh~$HrU`vdEh;v)RajK1kgS77RqD5H2~|# zEG&q54b^H8JkJH+iekT5`W;dZ;(PahdyehD*IUhVzzG2BgyKtiBGLRKpd!!ZyFA5W z-s>Bo4k%dhzop+&ra!*oeS)q5VBlD?5D28v_d2z~IwU63NHhz_xNk@c*?}YfTL{Yf zKb3LH@I8PF$gn%Bn;G^aN86F4Nq3o_zfp9QH%~GRsbXx&9a=Gwe7<;{Y*84z7u4f2 ztJfja11{F1Bq(8YI|V7=nw4D{)}HwhydU&d71@Bo!013X|C&2H<>MDjh1f(;%+MHk?b>*=+X4Npf8%^os#iZ?K1c5@YnzSCc7TaiJg<9d7E|BNY70b4l+rn04Udbos*C};@t za;pow_4=FPT+E0-F!-H=`aDi`(sa*(?4JxYduZG!^)@wDx?8K`qfpCKo30levDOUD zka-3+;A81P@(YGb7`SqejQ?-|cw~h+`H=&?Aj??7I*8~AkzeL?)JR)2pw)l<1#~r0 z$E5fNGk^Ar1BsdwA7iQNpMCBTV!i|U`qqkmz)-N_*>GHBp)KaG=#dBHA^Sl zJgc^Mkj4SSH#8YZwU0GV>rXFlH#@>Qce+d`$0% zahr{(7hd`J-{Hkt+~4u;NaRc8h|o1rF9^8r)feEldwQR7hd>-CUv#JcQJOB|WIqYhfqNNo zXRvCQ_a@&!g5r^`*rzM(F%}7`5A8*%13HTRo;bl9Xe~Z^YpLlZJMeTt0%g7=zrnVl zs&M8Q5cP&VczEavOq=}RqPpDOWt=3O*7|Um62q?Yk`mEAJc1ExcZoftiJGs^!!6ko z0uleH0BK0j``B?x8Zc#x>iUY)CfMpdoh(U>_zZD|&_B?dvwt{VVRO3!QPWLT{V^N+ z&~4X0e!iI!-CDCW$;GLX zK5kR?v*z8`OpOI%z@VzT%A|asndT~(iIYeUVr^tPP$CqyB1QH2Yfu2jz5_$fgmi>q z2$E`-Kykqq3Must%b~q=-alFGtQh+O5t6K=6dcuTGFD-!wIW)taYd-dL**2i=A#Dp z#VTuvJk>qzhc5o{__5Cdn^tA$<#1q?H(Kk!1U!P0QLN`zB9f69Ko^2b9WMN(I_*7Sc(PP9O`KohtFRL z?OS%)|M$%S<6uoeIr>`s_X9uAb;`*B7y{5uYAOh?2l|&p5{5-U?o?jYPS75-n4$^p~Mdu+CFaQ*lE?hRI~B*%UPIFM~`j)&@3J$zSiN&Z|Wx*Hnwa}i)BwH5W2%&+^I9%U`p8}1F)gg42(BM z?_lOYsxrFC+(PaUkdz}{n*{5LygC{llCIprVPuvFGTdJfE6gmBMAH3Pzt9j+%7sQ| zIXp7iQSXp1}>_lZ{CR&R2SrgT9c1>MSobU+JJJG|89p)Y({4>v5TOyOBa?R z;IL^WV}JsfkSCl9Ho~!8se#qc`hL%ogrhn8W~roj1>5c!vbky$EK5uGiC};Zh0P1g zhH*%&_)U|GJP#FU<2*`)Q@(7vzdisk@2=SndF$b1;3uH)oAc%`#!~(5)p1g|{=^ zI-PnUA7a2KJKy^QvsqpJPW|p5bnU9o-V%pXS(rQd_w$h3_T8T-oUS8d%El744R0RK z&d;VRXZ195-|jY;>POD1bLnix{bF2>4zI-6cUA;AtTrcOa7y-v*!kIFhTpT#Fdcz2 zMQW}f{QMyNX&^ageV9C#b(DadLC~iY(5n^jr!(N)PJ-@J^n?9ba_s8zC^wU3OqMSy zZ5e3~Pf^{PyfFs>;jVZ6=lrs}sX|-b4?HS5TrF)3cbRdD#N?GS4!5ZGqW!~I-<{i_ zNzJE=al38f)3@KQ`DGRW&167rC0cDIk0!;b!v(JrE!w$J+T4d`F)zWmcl}mlWo)qN zm+nOwu}7KGpe(jxh~?5K?Ut3cMI5Eu$Pu`TFpeMhlRNY8x>$FP()pV*IcY+YwL$-} z%2?{ofQvULmy3G7JR@$Mw!~42mdx=j>`hhyl zx?>`vMw$qug#zI*#4zD|-m5PJeX;>Qk^Kz2%swM6b;N!`9$iL?OVp*M^a&3p1R^H? zF!jYVa5d13_X4R!3nlmb)j#LxRf3rL&UzVJAK@h6hKCYmf-Rln2&eQy}Jcyal~8`a9NnTRG=bFtN6+3aQOSS1@$vFboQE_Cq&h$ zH!nwG)aoz&D3ub$h4g0pJ5;IjHfZ{PZ6xQvl*oTUwubTm8eq|vyIQJuRK6l|G?XP_d!bkiz!27DXH5dp}`ZB|FF=(H}TKo|!Y$EIHhkat%?fUo=a; zt;%H?&;cLb70xW$IEIWTEZ4@IvRTWbp}d+#tk2rr5FIiPJu+mNfxJA9M}azJPcw)U0v_&+(N(i7iw8M?hj#d5Kq|2gJPz8b|O}s zESfODmtd8Ciu6L5524tSTk}n3w3lNlGu4>r{{d2|BWj2!yHtQ3TVaeD*U4T4o~pEs zoDh1;a4hqk>akeYx_@_~)uWLu$5p!R5{_Y$i?l0sKw|trv^~Tz-Ehlq^PNkGv*uet z_@>2;gnB8elTu+xxoaM{`mqJ7?L;wA@n91Bty8`2i%;Y4c(nXN04G0RuYKvLN)W`+ z%a5o3ZG)X7OTr(S=V?)gk17})wsausX0kvVU+0#`b<|`DVD?~HHK(kLKbFic4%ADKt@^Y-0-6ILIS|a4SFw)-%@e@n4ljtLS zemH2`+#WZIl+_V&7+k8u>L#dPY(&D)2WpWWuI*=>``1xZ2&$RcR#x#~GZs8wGv)cG zlU=K)iCtZma+6w>Q&Z? z)nh+mD{P&%f;WpYOrOumT=H5`Kgc^FDWQUEL5q+Fz&i{{xq~5@Ce>|Kb|klN5UM+C zI$W1lPpX{~VY3P5|ef}PC(?y!BsMC!3a4@)Y!7bN@i6nFTJi&dT@!GB_iN z|6g5wN#9n$(LtF~lu|%xfP-2x&TE{gUvjo9$wg7G`IA z6bng|uf2fp>;wxz`DCkmCJd<1>^MhA`W!fNc(P!4nS}WIgq;FtO1Vm8Tk6nK25NcRSkt+1crP&99Ga=YB$qk7Np5B9B?3^i%Rv$=|aYr+UdlDmF?=H})A~vzlY9Dq?U#iQg;tSE9 zFYfo2IQPgLNYc09_LeO=eBgd;zTg-cSlB~ zX|&{pBzK&~1T;XgK|Y%s)mUl>?1lHsF8Y!^8HYW>I5w-+cGf zq=+0~4y4DzhffQntH`X?ev}sGRBnr_YOstvxhWH=fDC$4c1WZ!WqP33Hx)zUDqkHi z9ut|ayy<<<(f_HlM=kg1w#s3H#~g~XXp>OB{zJ-JQ_4S2*14X&pI9U(GRV!YdaXHf z@Qy$05!fu`g)51Kd)Mo#v4W*Ge%0o^L5UoD$~tX(N1)CU?y|+G0%I`X4_)V(k~U&b z(7+@L_DXOT&nepD8bGXWmdpey(P5kPZHjmkdO~i*J?6H9cDLLK2_~4(BAjuOsMrGr z4Q;a9k&m;>kB8^E-%C#-(~CJMe@H`UhK*UF4LCt4%^`As!Qpv&%x(`+r=;ga;m2(o zLwZ@-CARSj{Y$2`74QDwH8pYXi*0I}Kr)rF=Vq(2)!OBadGG0Lqg5wvkK}d2!Dh{b z3uwBi&zCPJONKGIdH&K z1KQewB^GOk5W)ebmhn-LOtVuIw3r-Y&kJJ0O3Z0VE{g7R4Kd}aeyrdhPZu4@2~Ce( z>#9v61->7H>G&HO1u^$8ct#x8Ql}oTj0l0S&|5t9j*`VXGD&fK^C>SEYlC})BNcV^ zz{!9gZd_+|=))mo$B!C23$bLw4!1NP1aivI(nVJiwr6g_y4Vhk9qI~~^+{=i6i^`= zdau*}AY|rY*J5QD%YSS}aXw)lea&v;W52j6)(Q_xlyXmIZc2jbtGJg%CL6+V;xW7M zGPqQzmS6oLh64-dlWDf+G&`{C=WzAmph^!DpaMY(^h}jU0%MIG){3Qa+HrPQ1fIAp z{;Z#t^V{gEy!#m|+C3$?xi*4@I5{d~;{wVv_27At8gZQCOE9H}Ny>+yI$vmQ8qhtUH{>to)`~0@Gl<4{Iq6s6xi5D31hlhq-3= zhCY;J!N9t?EtMl|ekgiB#x9KB0f?6G(Dtkxc}V@=xFw9r2XZNuZtp{9!}6iTl`CB%$3O|1T_jh9|exe z_`!KG+W`e-fH?5{ncW|h5E>Qz0rA#!OpLgMHO2Ck+`#_cuN4c-2E$7K?|CN{{MnL; zR+o8VoSNq|9M|)V8gPNASh(UYorv#wmE7W|0*xdm_lJWZ`EC3mJ@N(SK~`Vm4^7s- z?-le*`y=%vo2UgTS^8%+Mx_20nTz&eq@t2N8pBr7_rZKtf-)QY-# zyDQcZA45e_kFqW{90i-50gx0Un7*M~{9wMxppS`c8ewaT9ol}sL!+S#39tAWoPhiB z{}|Xwq_BNN-(qlX!*kEK?*$Nkucruwec7m}Siv#Dn3=yG&A@1YqfTF3z<>QK_;-{* zd;`19@v`W1(J39gl&EBjG&bhra8=&ynw%kFs{#xKW#>4-tGwBbBfkxzh#{1SDX*}l zPNWj%2zdEK)Y*HHuY6nDIc1}-i97m6Zm-OT;;=6TYn!BTjNidtHP5R`OYB zJ>N)ZjED$5yesN>*#HE$6*8Q=uDg-=5UUMgE5?9(`BMQ%bM-uM1W5h&?W3Egfmp=p zsy?WogaF`&eCiG94M!ZMi)*qpNfrK74b0hC;zp9F?=o=K;lRDaZvuoK?T$AFEfL{% zj1QNUR$^z;H(On6e^^0Ft!NKqw7<~(2S}Lvu|;CcAN{4+opP#OwCsqdCA>#{TWce0+tIw z-;fs6rzJ2v?QEF#6DBTEzMe#Ib@F`q7#<*PvMWKD4nzKaWIciAg0B+r^W%!e8K{j? zGp!Y(d&Z_Tj}jyeEqkmDZ&l4PWFX;&4Xuq&JymBDczLsv=R|;x*C!eOs+qsUU10#< zE5>zb@#_-}7kxo@m~jZz2RG2A5&);iBZusn|j!^RKoY0e1 z%p6oyXnhP>Y|Ey0jHp6*+5MXK1ilwbq*Dc3OrQ?`bnT2=c!jF`F+2LVP*L+ z(*S7p@!tGssYmK&eI$rYKC~)RTZ%+MA%T5v-qU`+{TFvdQLC7Zg+bxaqI3TwNtpJA^RS7X~aKD(6}0g*4=Gm%eKK;_x-V&h@4 z=gH*rCC28yO5G{Abi#nh)L5il`wM)Ofir@{FL6DQ@WZ95We+(YsH`_Pl#nAd8s=h^ z7Qw{8!2Q#_#v`~SG@-KTo{iI1MsnM!gfG8R^oy_Vy3$h#!=wi{XU&?~^B0D%ZF}<5{rx@L|K)mrZP#aC=XD)8>gwz1`+Pj33Nf8SXx`W!eM^E4pZe{(>K2~&UDF4qKU2qr>p!(z*loIn3Tf(x(1 z&G>aog7(N5}^L0GV4KM$vW=y^xad{6x#VzzdY3F@jqc_0X)iT+?#694q9!h0;>G=A5 z9lgEs&%hOht7Hs^=xEU&6rxnKPj)}cU=toC3h6>Qc2H?Z^kYc7ZwvufhM7~smWrW+ z!2`KmKm3_#1bSGpVTN_W^^;~->b3ty(q_#IF;!Jr{;0Hi~u)M6z~X| zRVws>&3qKG4s=<0Ey!1eJPS~>!O6L!8v^=d&~HR=fbM6pad-=Mz-mb46bULQ}tiK${ihDk&xSobpF}r(9 z&`1%MlcqGb98iTy0d{k-(=ePfGazT*56W0F3Z{_f4hm6+HLtT;?b+bk&Y4dGSI0j1 zWQMSlX(V>S1mlw6M-W(QU*25WEJyINL^sHOP}F@XVJ{l+&R*&+zNll1!LgFR^|0&R zMdT$JZ6GC*b%sV^I$!a@K+mucDBzK2mUQE(7lJLOp*~DWIXt*%jnAD}o4DN5sMKnf zGzYijXYYO9uU$>EKkjD zJthJrfbM+mx&#joH1!W0k78%X9Wo3L{_n6(j+rjdl~q(A;SQBzVvD4YN^)g z0d&4Sh6sgF^oMeEAc2OdUmUu`gLU$FU=&cy9x*T`uK^R|I5E(p4q6?e$Fz_a{!|gB zAqHG)m-A23#Ry1pWPP0d%=@w(e0O}>a^2Q>xte(FA?VkI`v_U__Tz}e78ApUvjfvc zwQCmZLu*b+ZUx%f|3Z^V+6g%9^J@H9<4SX;Sg{h>wh{%Qsudw z>rVbrepl2Fj~MAC8KB0e4{`gtbkjAl)O^K~^t~wK@7SwM=mvazOz2U}H#-S{qfY63 zZ!gRCX8~bi2U_wrMvB1Oe3N5sMjrc^P`tA1p^g2pyaFSO3fL1>NCqpQIU~EDpz8G;&DJ6likdOc`uZrsy!2 zI}SYJAo43`dvO?zRA&b-cFl{@E`T`J!GrUkK!4>-3u??ZkdLOA>f`&gTf_MZZ03RpWUt5F%cdBaHwWWVQsDldAE<`ni7Nofh#yg7kM_U!9;y9~A*(e8 z$^Doar~}kj3M$<{KdfwCwBIvFIxH5(Kv;%vKYecZ)TYjKa*)Hi>tP9HFM%wa3;lq* z6{2dV=LMG7l~>0~W|kEC3d@$MKGb8;#fl?qtz5N#>~DePWh{;M*sw=b`8Yad7(k;Y zCp_?ovG!BONo|VUop`dk7eDN!ZiJrNA6#v4A8+41jFT=ChPcbv)wS1rGk~`TjzPmS ztB!6S(9@>3oFrSjq4}o--@N-dY(NuRDv+ z+QzF3q`s zLmm$);Llc)SFb^|_F$~Qtz=46yEPT-2e?q7HjPS3CQHAg21bfh)@-{*ErtVFv*fW) zak%)I<_7eRED0Qt0mwrV-7&z0%eM+@J!_>JebiRPFq@lV1@N8z3lmH7WPW1ng^;nq z854jC|C`Z!N;CB=OD8H3DDlvUHGKRQmr4f302jHl;7{a%E0r()1wiM(Apk`2PO83g z7^#Jc4<5;`Rbcv0viWAdvV}9oa6A%>S+l3qZB{elYFYH$S0)T4hVSh5Lv;+4VzCAn zD+--3@2!}oub+3AClWzA{(gO(^dD@0wN-BOY*w#`3w{tB3gsaOLi}+-A8Qv8XkY-- zv*h~sm~Nd;Ufd$J#T=L(^$GC$b?yaIbaQQtCOnW@k%5Vd+wP;uK3yXktM?MBf2$$O z`F!$7lpk>oz6Ob)VX9Tm>CXo8uVuC<`ArHT#!b27?;PQBb+NLro zk4VCE$Kn|_22UI)@aj4?#P^Zl`p0ND|IJI(IdO}(1{rb^@ax76kr*vP1X2U*Ku%CT zS2-}RP%r@8kj=o4Il@$<<>|zRuTw_Df^XVpoa+(fy|}{k%>fMrSsXgp=PxS**K5ou z&EIrrhJ9qC!nF7RnW)?e5b~&%o{iD>`3olm@}`#?MYHZNUaAB7|{Au&?7R%hUq=%95CpMjVU7l6=yMn?A3-DoISDsZmSFwCP}qoy0H@nAhawe$SB^V6>G5rJwj zcIQXD%3+KyYaFBP%PZ7p!_(w{=lXvl1u%BbB*ALRmMtg#{X(?P;@^B#+vty*SRHzG%dYy#sU;Wd=T$>DXxK6G$uw>2 zfXbOhx0(sc01x+4KWGk;r+TgF9%3TsBgi>>waY!(&n8J+$U1_x8AXZrHvZ(%XSA79A zt=((c0`)u&0^J|piDYec^2)EnM%qWqF~%FUmS}I6WY^}+F-;0W>i(Gp;oXsH?x#~J}ri@Qey(+T(~BPb5h|7=kNt zh_FCM$FH0_jHP!tU7+*#{ZN!U<6$5UFoazertgOaD?VyVaU}X(CdJGN0{3GMSZt|_ zOhA+R0%6dWWy#R1kLob;0NbD-8diwLZnnTzPF~lXL5aHVzH>YV%XbH{-k55rZs$qc zK!l%ieia+-ff^|xMOPxK< zHWG(=&{8{GZSV-Vq&cmuhW1rSxh?}H6af>;o22mQ6EprULfh_fcZLZggAN;Ln!n2{ z%!ha;#gPtWTGM_-<*8m<}abR>M+e02%mNo5i-MhR;E z4%umE=i*nylFV$4oNdX=x@=c%m4&#xWgtxAfOuANs-3ii5qQ8rS5Uf4263Ns&08@_ z@a`SKH1?`8Zo-e5-_s+(y$gg+^obdt>>1fmmGcOK^KiOo2XVT&@=_HH>;k5dP~HW@7O z>q#5sqW5kzZ*rCwuP9xD{0-v1?rJkjN z@Wk@@Unv>JsU#0R?0ERmBUbG|1o+U|c>7qKqy^AiE}+GLn|2s!C4~0dv6E!48$p18 z@d*cb&GVSG;XkAnMC6#i?p#a^03v$mUqeO63kiGYH={4kVvJS74Wv= zX)|#}6$XWY&Ejn|)SS37=f)NG=G%&%wd1CNW361af7p3d@c=9O?nu!q2w>1p2GX+X zP})bHxkAfXS#1?s+MS}0ekl|69<`x+ngUNi{T0pv1`yn@<h7AF$m?RCMHAwSmudilbpxrV zHpE__wtW{gqT+~e7y#GAq$wEJq`hXE8v^WedjYgu0aFZow;_cPt$_U8MM866VrCH{Y0%k;nImzG{`Kp`mh>E;sqz1L@! zu)^S6yrq0v@~YcCO!iFk(f@{8-+}UPGYtCwP+^)E01AcLt9ilrqYuscXxLDUeUdwm zBOE+!Uj$%-Eww<4HZLp4#{MgiEG8qO*ZKrxa$7)Es_cKv5rF#*9tolV9w1gL8KGjK zT_)s$w6-WkJX(Y}Mv~jxwR?0xvyFR67s&wowY{0lEVg1Jli8nJ-&4pD@&F`+NcoZ7 z!NU<}-F`d}r3e3_<@be540oPRSsBEhgX7}K^D&=D_7Mc1JqS9Hw-#Hd$vY}b8R}m9 zSMTNY=)Lw!zc|+dqMwE~??4tTKyi4?A;X?yY;4Kxjff&_1$^NkjL*XwcIwC>n3sYb zL}WB~kl&fY`zql*48&K>8UCykI@%7!nl+)`cCeOK@c5&fEfZAT`lbJ61dKeJ}2R?t6!*`}N8rlvF zxs&H@_v~UFlMIn5mplTYCN)59ql|zxlo~#g$z#}T-D))~VUDtcqCfdVaTCpVk!?4u zQe80HoM#dqsPX2a{rk1RD$*6}@FI51eyISh>T>f-RJ&-X;aJ_gCr^@r0*ter*t0^V zP9vx5jUW)ELJuPFoCmJCW|xYADuC0Vg)2Sh!-eeqN7(hBQIeRph0#BwEOPRh*&x*5 z_;Uo3X!1s)&^mN!Igd!4m|_#c16N+_0W<>=XEJq~z(@0RM(>K4$ocFphx96Sh)gBV z2|vq zjRvsde1T$rL&?n!hQ!DgC}f{-Mw6p75Mo{{nwLSgTvg>X2K|SM1pW7);f2z%)l!;I zE1!wvfR{g6Gn=FptF))*4s$%pLgqX*p~ffA@ftIRBz`lU7mjSDq58a!FW8!|Hy_|$6ayD$0FAR%t zuPU4F%B8-S&%$OgNzJ;(fkQnl#UE~1YvkJTJq2-I^udX1r{vMZ=S3>!@`oI5*c^UF zi>-d+3RGq}D>N4dJCA-3zlQD(sEs*ofiihHhw&}=`E3cSgp-Pla~l%Vd<(HlW&ctu zsJEfAF5!v72oQ?h5xSyG*luu(dty!)o?uF|YNJn~kbTe=8-8Eb3b;xb2ExVtC6|=d zzHU{rixOSj@S!p%-^Wg0>&NmGBTwLYzJ(lOj48NU+7DY)bzbnBXeCFYt<2%v1NyPd zo-v0uo?l)b-ko|%_1`iw)~)pzJjfjvzRe~%%=|qWoxl%Ma75!(fu9v_vx;52Mj2KA z)jdqlmv>d{rSPz;T1AbF$8J9Q7$+NuTak(XK~lYG(b* z=+DU){hGt-=MRf(x5-+#tKZi&=|FqjtySV1xrZQ+=}JFUmoGn&r$2D*RlAEc)9<1` z*Z|L&U_en-%=?O(S8l5vJLl(T^a~{nU%`|{Ygs)@_v84}{l#(vOz#5N7^B}w%bZH& zeb}w?>@tpmrv8u+E3aHiE2ZhnS26$yo|%~xJXn`6GR?hHh-vlmC%FKpY~bJl=^Sy9 zlNjc9Hmj|CKWKZ?P?TNOs;Tm}Vpk91ajg6K)N|o+Wi|T~yl-fUE6?jj*ER)cIw!tj zs?Gc=iaB8@Ext>Qm#T{FsoJ(6;x0Zz{%SZR1%x<>QUA{|gQ#{H4yK<$AC`-;5D_^) zmB5QOpVQI2*K@7~#%A{=H-M)ME)#$3b`sn{4!zF*v8dod9ex&gFJXS3?Lf}{t+QPO zl8m;62{CWcH(yy5$TI2C*8N(Z5e(Z~pdK9gN3rxbA*s+oI&y9A+`Nj_Sq5BIFfRv6 z#cnyp){BIbO%J`rMQoU=@Fz54PYA(oA|nw6qD7$%A&iz&h8P%LKoBtTxQ1Pj?ef5b zGU^$f&FLy&wk8BVs1g}s2cG^93MaJ#w!GtRcEW&Shu|#yh%1${Y8p? z?8 zHJ|+xY~#HK63=!^XlCF~8!CC4OMKWSzV7Q^q%7{zcx(~;y`tykcG7-ll3G?P&aUr0 zypqxxHyRlN6}T?tK&M4i?3c`!ZdlN+W_qhHY7q`a`t}$fW*fLy9|}x9v*(!0m6)@39Pr8seTnK*o%*_~?(pDl%h*2xOW<_5&Zbp9De96jYht9>?~ zU??6dyZ;-kBrSm>eg|j&tIgLkc97KTiid_DKM=7qf*R-m<&Va@d&0}_QaXf(Sc^J8VE@8+de_dRzlUBAp63zZ zZ}HWvIzv*M__qWR#uQ)M*h`w`I@xd)=`u(%fMo`hOfsv)z`R3a z6Mubx0mXoZ%@>!pNo-VW)JER88A;2-gw8P7>X8}!Ve0<~%UB3_z?P93I$>OLZ&}z0F7JKu z&W|f7mkg8B&XoYvgujk8>s;~F0~BFa{0Ghq+-}q0c4=|Pj1wd?Z$(Co6Ux)rl>x*+ zlWZ8a%1=DAiQKaym&^wBDe`mGfI^j;)$PoR>;924nE-2bhPB>}i;zo<^E1Ej;pFE; z5$A$?@h$LqK5MH)xpXTuC{L3L=pvQDK*{Wv5mqIf+;n8jtmxO`Q9t~QKqIGCn3EG&Tw2qwl``|`=zBUyly(6ey|vW+yLT2Tq6^YGE;c*PTPoN^aErW^N;w^ zd5i~DTYJLSriVNlMg^8X(7H9%XR$cP&30KG zQ?!%m!x?-m>1u0@L5(|FgJBnHYCNCtg; z8W|(M_`}k0K;A5=!j5C%U@+JUy}9h zH^3s$Ia`0R<3LCkY-^oUH^v&J!K(tefLxaAtaeEMyu~;0!^%I*KpzlQ$`FMpu(>~j z9RS}o9jnfSvBHqyc^WKs8%)WOn&ND5+|V8!_?-;`xqjvZzhfRNgK+1bP$}4%xJB9$ zP7w}Q)(|(vELD8PeJi`{k|?b}y5>)ONg6;;1U|Oo5uEe<+h3;g{gC<_>T>z*fk22V zVOUfh4|^Ys#m2{2>BDXfmB~#_PH!<^!&si8B#GQN5Ac1g;TgB7 z`i()DqSrVy68PQ6wY=qdm_2EtY5*Zj$@k)(W7Qt2c3^IT-$fvuwFm3?M}|mRt{Onc zaBhVfVq!LYl)KnHdJKEh+j*&x7a3}*ns&?Cb)qKgHDK+-mBYPG+uaY1x5u`t4!;ab zZRz&H`T4UL@NeQYywN0UD%Bzc%gtw}?MPLTwM5$oiZ~e9<8N2Q?oY|#C6uPE4iEwU zVYJbH%nNsVC7g|RkFM^}8zjT7#axLUKQRz+JR>v`@hvvq2a!r>B^R^3g-{=6bhZGO z6C9EQuV^_RW8($G6cE&ON!v-N~rg z^0h(?WlD1>n955AYW+F(W@C>&y*N=!=Yjy!lW%UKaI3FU(NPAb7=d7v6 zyT@;G=wJ2OpDAa2)-2>%GYV&dwV{fuT;WImds|LjJ8gND%XNX;6BM~byqOAoU#M(f zV4SZ1x>MC13$``|D>t$$2CAu>8KtR`9eVQF4YLz^)Lurd0VQDI+dAyvfS5q*EN-Fx z;wPrCi1}lmPbBgl>`_3l;6-t~4tY>udf-tLl+s^jx<&bPE9R&1i$~g>gQugr%kgzg zdVO6z-B2bo_O#_sO@Vjmbai6NS?YDyp&PQ<$Mea;?P%?RqG=vsPQ&_C9n$I7P!L()CKrhCMH`61>xmRs{H69i{sKM3f5i!?U`z~Yf2hA(h4VB4VF2K~ zh=>sE4^8E9sN1xyMJ&6zzT}>O7)Cda_K>y{3^AgiEaF+)^iUUL$Uv8|N~*3}WFtOp zllu^Rq^$j!X7Up~YdO`xazCH|pf@6O8D;;=?QFcDqxy;jjXaV5eDSF~02~rXds{-g zmU}sf8l%|{DorvtDTfn>+cMx!QL3H%P zcSV*)D?*d|PgO)-Q@d4>GL8$dDkYW)r+)?vx9jrH&9=_Di~I{2p*2eAQBtIUyPL=E zsN9KSC2OCcjO84`!g2M}Y_shC*w(~(*8C-?sbH^-+CRL$E<6B-06jr36>MX_pFh}g zlK`X&chb5*t5QSm`tm_cx22>5gzMT&HTISg=W++69Ha8~W9_M#>O(dIR$p?sX}far zbcN|Sq%VLB^nQz0Y_~@jT@K68miSLGE~j|Xto|3MyRx)PnxoUVz2#2idu2Rf z?Yj@UM15TehZD&+?^_#PN~N}7rF#zv(`q0Iy>cO}VKv@I#@ZB=vx1=V>8H(XY&<=J z5R5r}nO)RfuAO>;lT?+5htSY6OvXST*pvx>ovzkTaTJX#H6O*;aTGMXXP5Du?DjrS z;r?Fmk4+1s!P1YJ#}up6p)Y>T&*t&0EbP>2h=N2W*SEh~@>!k`%`TGsA|*Mqj<(AQ}2sMuHSa zRWZ<{Uy>Z$ny%||c!XF*yR1d&%vPd$Pl}E6fwAWDvBE-E4kL-`7h>CClH=j0R9-)@ zZg?pwZMEPO&cHORxj(>+i$bx4XKnZHmj(QW3o6J@%7@gY)P5|R-yrNtAbMDJ=Ra($ z0jB9sdLaFL@PX6?l#6)qmB9;Vu0Lbwr)Ml)=E{Fz0)EOW3htJ8%09A4b-|a5JT@*> zKCfADQjQyOmb1?@hz|gL?Q=g9#OxMmgI~3yBB;a;QY+6pC*vh+wrW?#F~|d^|(N#xdI(9JP@I ziRNSfg}ZXZMM-k{Ni}-w67_h)!76-gn2f2VH8z$p3n3LN#q z-pI~>aH~hgjpZHCDir?<8{Ko$^U;@W#5)2}D0MLhn;m=scPDAM zmwSn9?cs2-&(lsS@9)Z{I|lKAuPG*QTBAT2Mj?|EyyzZ+3=pXdr`i0VhNOm~d)Xf> zNK%QgTK5A*Nr=blO_^upiz*w*JIw{70wAUNk}U${`TuTZeVIAD^2{=TXq8{wshcfJ zZ$W(wqfQB?j9p7|sq)pX-+lGrG^hWD(%S9jvUr+}eI$ohH)9lo7+7AL*BqTb*?2v# z8G!joE*Bb6A0Jq!6g6v?|FpX2*&}jg?!kC2Y{o9F_f%pDl6_|jI=$=4Q;al9^jge! zl3t8>eH$5s*kJfRG}(YycsBQ9k|iix*aC!=#_Gz2&Ad*ZP!4iSX?DrqjUfafYtvS06W;n|XJ%73aUrTQ6r11Q5y0y*rCZNT%nI!U~>%aMJAO%t2KxYMT*z-*7 zqKoVD;{;g)3F=@CH;|;H&tvKB9UThQ7tcZulnf>#&cy#da+x7e9*6nan-%MPO!Ou73PpGKA zN??`}5rb>1RW7TBps_gw!m9{zq_KUUq8|1%%nM$PR0z2w8|x(2bA(7ge;y(Ee1Y$6 zqS1RNawds)1TxtZBE7#jeKw@_Z2mL@k$zooGa@VlK}`F{eP}6&?5st-7V6@ao0)O( zpKePw-|$sa*0y!4-wx|1>ulUz@MQYp{lLuDNKRqcz#}moNiz1oiR0A;(#*)du zrPyjUDvH0m4SjH=AV#E zojou>%fI(ydSHL-IH&p>d=MT%^wg!K$_ALT+J$=CDgiacHI<{}$n!JQ0t0oxlO&6q zOv^8@_9WH4>bd9@~M{>S73<{=Z$k z7oK+&wi($>bL9ojKQNnkPc|xKi@ayg^{9qq4&Q2-(<^r01Jwd3tuhoaURdj|v(?O@ zd{F%rq4dfWm8v0n2&Eg)xtxGbj)p~x?4x~qVtvK@W?#P7ND#f2L7s# zYDJ>=Txhtr0gZ^*A4(Rr%H(+53bfc1oXGa-V6$G=cv~8i}({qED+B{Tc^F{TF=I$_chogi&qQ`R;r$|1fa9mZqUj33ZO;I;1Pew+?(u) zUdyso)3KrKu=P{+OvmzVd0>bI3y7ThGewt$|F;w6lFHVtAVG-24)rT+AZXUXgQ=a5 z_h(xW@fkv_SQImHn~PFor@nfgG1|Q&t9yZw8UnqYp2)I*Ibimmp1BFFQM^-b_7qLCvVii6`Pt_);PH!|7Gh{R~nsA(@H3X6ge!I+^T zhR=`TmQz!7cuMtMOO)~(vK(?%t%KR)(RF|9m}F#w%hRsMIl)ZwaSMxnZhn4!F+iB8 z>Q@d%MgxZjFSZXJ5<@t+(=~!%z-zUHo{g`|{~h z{QW@V+t-_2sx)ky?|}oNMn2KX2AkYhgo{N_Uw;)_ ziGHM12b1wrrY<|urBRgqaO_VBq~5V48p*{zltbtwF&K`YPP8T?n?S$bii8urV`{NJ zT{0Ps*BmQlqfFvh$&TkSGUg5u)%LnFDm!i(Wt(`CbCUXbqC6ldD_A<^ypL6u;bDE) zUESUN-W-42)NroTAnQ89WObANJO4%?AK)&Y(af9KzIWbtN0QcpmVM%R5SVoxcD=K3 zSkSB&cel9LPuCG(0I+O=7hw|^;Uj3Tz26b&q&PnGyO!^&6edhYMB>40rb%j}{h*or zXlSqR=x39zCm?}DBeXW^8-sM=Uwe`a6v|`~#eHA9ti96GJ#)R!Ni6pIKxVJK zmUB#~o_0t~o9v^M7>U+S$@&kT&e|SO^)qPoX1-&)9q8b=^C39xfP82E0090~p#Iuv zg_OO&x_NBFO`(P$r+@-$N+4IK1hYC6hkHnG%0f-%JCM$ZEL$WvER38lOw2x=u&kwc zVqCgnWY1-(=>0_)D<5Ok%GZ)jm_svE)-UmmK9|Uog1_h}_&5LKk++nE&G9luq}Q%_@E^&!hJ4UgMS&^oF&@ z`4T$U+G|hn9%OmA>^z# z*vsFutG_{tw)6B87j@%1O_S!9eD<&cpZOp%?8;}{)`38L*@XtbdW*YZ0X5Q>2}CmF zcPb4rw6M_!Y1v|JUP`k#Drx6C{AnA#k~{|Gd<@O=NCisvkRi6JEcVRj~KY6}n$6HqVLP!YwSV1?w@*4|MQt%WrbszC;U3K&>ZTct$Gtx!3hqLx%!2 z9S9XH5{7L|`F8qTr+u;4bYU?VlpV(ga}-BB3{~F}x0qdt;2K|_H1tv61pSBQy{Bsv zYR^tM@_lwQ<<=@V`2+!^z7iQSYVo6jzdWX<^PN>OvZ8FX++T6V_wFd&WsYuptl@J# z$4)!c%9x`YGiv~uX_Jm@WeRG{x2l%k#|^1hfb>oi?+$~#imG%u$1xJwa^Q=wkfd?^ z?o*sY9BfzJ@7*nh)z=4ewMt;g?GXXOFh1AJH}f=1_XY@BD)F2qX!ot-z77Fkq`^7@ zzN1a6Y2uCmHeg~X0gG57T?lrxM>G8q_bdV4U7twsd$op)+mIRUUr&56%+Z+)r}b@j zYf8GMq-u-r^Z&M9tuVsg@tSRyx+u0ZwaTn~C{*_VwK#h5 zOEBq^UtZN^r~qUQai_gcdl7#nRMp<#$dUoRSd!@dYyWEJDK)^1U?Eh^xp|xZ>0jeNSCOGel{aUTD-|8wGjVoeH3czd_ zh9eDly!iXKgjNJ$3={h*+TmZv5#@bdw~#^mB#dRft_V>qk?dq4w>7(-?_ueTzr8o) z$VG(dIl-q7*PWeB;@YORG%PEEA;_UY=@!9);K%EYqme}ROvjz4Mn~IoPDd?s6=Mxl z-96IQU)AMAz({RPH}l*@SFfx^JJ)?7hUW$MPpmo&q)yAw=)fhoN?g#c-gUG>yGJi> zKE^N?ju!`mbi5BguPgVzNffiY0WTSyZrb>a=vVMxL5$>C9YnV%?7Ri>MiY|RSghFV zjZ+sM=MzHyd9LZK;}un#!wbCK0!F2(xq6tIIwpsMkt1bpGjDr4r7WUgqsKot}f zDw!mbfkMI3<`W%RSzOkk6Yt@uK6s?N#3xYKgLBZa9A)#ragOzg(O-i%xzLoOH9c%} zwI-FprPAkb;+WW{_I|<%lyPRO1t;F9s>xTrcZW0y%1cCsZ}k%}_|y^y<2nQrNFXED zzHgB7$a)0_gP1QBo-vF6`71>%#kDeIfGlky0c>A8{nHPtNI@*$t`aL2$?8ae=zgKY zr=P1|z?DZhk_y_aC7?I*G&oyWB`c>{7kB<IKWtm&rNl7RTDEh~OtoVl2OXhm@yxj#W9;2G9~M8R z18Q>!Ob2lm%Zg>7`#8~yfxiK+c=~otY4Z3{)$QgfjB+74p$?*>LhQqS*KROBciklN z{62&I#so9mLeMF_{Rif`;P)|>KOZOMJlMxArdo~gRcXxAn_I5S<7%?i`yIQakc*IK zA1?H>`iCW1mM_IYAa&{1czJ1>oR0?EKv$dwinROlDy_b)(Tohrt(>gBGlTCgVGPsT zmB8b#BhIJdW0PrTM)DbK^Dw#H?e6wtxaS>iyzv%1Zra;<=%y``Y1^bGRPl8+R9FtQ z0S(ko)2x!LXk1yo9(pHsW^95wRFQ;fw>}JtV7Eu)ntW@6C*zo4q)3)!&@?PVAl0&P z>k$N1%)*pqQaE*b>-x`5|5VH49HWF+FK%blS-Q&tWNNt{^IyH(^f=!RR1%Fo2&Kf9 zpJ0Jms}tqm3*nu??j;k&FQY#)BC;6y`#eS`JSfxg=}qm+E+zxrjw~w<8y&w3zh@fG zVg9z1qJnZ!peu+b431%ac>?TFfP0ttx36>A;1yf6gG`aya*lDT=a|aLGMYUCDy)P# zoi(P_lzbP|?UM6_z3e}qKHrj$B&hqV=5&Z4(pacqq=Mxov4>D9hzHkSL^xVdc~gG2 z=d4UnEOl)3t&ogT6}B^hNp=h-JLk(yy?us)(YShq5 ze=F_Ds<7*zOB#7mbrUev#>vJISoW`m|E9U4a9_mGq_?xu4a`|<^P_JB`2if!%RV(E zFE?bnAbk$>90hEcOCPBXLjMcwarA2F|NjpBrzQqx;bcl2oVFJ`8q93%-k14in^OqV)J>7D?DdD)hDo2_DMa&Ic4O% zhZnc7V1Af8>Fa)48gGEYtxsnPz(mT?|FsP$5r+~kLVV0)H-i|71x|(fPe>-C#ULX3 z5hS*Z%(pO_pKSWoVF4Np>n?iZ^mKpxe>}Z)TvgBWI85A2cZ+nlfOMyXfHX*VNjHdG zN)S*|ICP10OLwPqNjK8n`5fP$@9+6B90*a&IWxY)pGm^IcuIU$@ouzSDY);L3QR6??Q>m zGXgt_LC=4w@!}m#nGyH|0VhHTKcGyDfB}0*df^I3DB(PS4@a9UW z1zfCLW70!vy@JbfnF{^hkH&SqI6K7@{NXVbXW*>HN! zNI?=*nNjaiunUgFr^c^h%^u0Ib5GEZ6k>l7w2n(F%>6EQIwdPcDiph!o@FLvBm~wG zbE4Q#QyKYt`+YWJ(Jumo3p7)vWYtts9=j;4bRTn6yp2FDiB4CV8FJI57deZSHs=De@@p11XNh(fBd$#25@Y;WUX3k4-FtjmS zO@8q~e%w<1SK`=^-AupbfE8xFRiPD(-Be=Oik%Q3jFAY+(0&a}sa5YHv!z$qlfd_f zSNRmg6k+zy;jY1>wk(<;kaqVZVyDv0(0bE5)f!ronT=#mK;QBPh7NjgI1CyB#1hYZa26-;wxD2Z_SD!?_sdfZre# zZV|r@w-^2mN1nibZl`;&1mB&Gm)DyhT$zRu`iHey(KJ{i2eC60A0xbWP5~Nds=k)h zT|3q*hC}u9cqF)@8!T3~6;;BbblPFIr*&4gUGk5 zc74t)W?J;vojC4lnu5xS|CTi!h?g#1Vi+c=dEJiQFEgC#h<9xg?fX~4o=n1|&c*hP zt|=2Kb@;)H0H+i4{`)Jfsp9(nt~&6TK{2c;WotIAoik6{nt zBqtIjQ>(b*j;E(rS9e2=g}Zs{-zYWQU6y^QVDGL&oc~fE@xJRO#}#N#_iRr`(v9#g z%#Zk)N1aIO*;VziQJ2jWc4+6OHt$DK?|}B}XniBqM53s|Lkq#gx`>Gn=bFC2=8v5Bq^jMM6)^PYZ{P1|U zEmx%D02pFNddymM88JW}EAWK}tW6!FE4? z#>D(_Q8eDWTbd$)+*=cAk?Jxc(j|f;P%d%CU&qn?ulyQYplAS7ztk?ZnjTBj-?^o@ z&G6I{39ly94*mHjl7MMklc84JKX&1?GE^TfYPv^pL6sRq0b7!AwVl>?%d;Jl8K;aC zPRH2d+G>_tYk9q}dRTQg4|(Os#)XnfZ`NE&$?9%y1h#hwL=i#|ZBIDuCxCf#7M|}X zbp`VQwtd88pt8##{l}vAL6i!2xC#;IAKJhgel)?aS*q9)l3rPW|32$x{ntU-LS2=6 z^W<{{?xLtHD&#EHyw@z)#X&*M@~xsju0o^VjC@S-UB<_Rt%9}a=yGD+gKppmJmnc} zl2kO$zVEopchlN(^ewG6={Jq3`G+VL7@FP7tRE8Jrv3S`m!jT8M={0GEX^=ttJrx% zZ#c-*(0MJ-acrP&9L`9~%K<$4bgq3kqk}FG@Yyua^An?GxD0ULXn0SQCn$u<%w_j) z#k09u(%sR+j$qz{SlRTpB^DK27uf8vna6P+Uz z-n}T4M<)+Jc$Ysbx^(E39P#1S-8DlfPGGj;rLWg2S3Cf!>7)aAs~b>E*CtC7=`e@UD!i_R|>Lm-*JhF&TzBm&|XmOa#91ojI3x= zoxPlh+|@B1;GkRJ#lFd9S>HB(_jppG-5)pZBv-@1*p^{@lW@-J_1GWc>2>hZeBJ${ zR*~Lqs8XaHsv%`h5K43`dn{}Orv6SwkFL%~$Y(bL&#RCq+l21La{{489d`!3Z0z8UL#!g2Z98pTj!P0H{9jd}C96if|JwU;5mOt*H6?LF_G&EDxxA2yS+@b-*=Al+ zqh^;&OMb9EnuqAk8yjVBVs=&$IhC;)zJ$ceuB6M=Erc3f(|Nc#!aOz#JH16Fh%{E% z?8AsL@f;6pS~sQ}&1#~nDU2)cMa^%afrr1OnpXIFIf#_6cOd4?if+V*YPT^_zoIdI zleCbt2H~9;Y9sqTCMi$k*e#nke|W=$M94|?r#&o53k<&03(;hsE%^}iooMKW`v8(ou>BXdh#_8l*$ zPx+V`TGMLySsUJcQT18Nk}72#;!4ieT9b|Dd<#9ECk=_M9;A^IU0lsp>P}xW5T|yk z)B|RT`7a*Sd`BX8OcTGuS}dPnTM~~tWCo&x9n;*&^?O?Eh6sn$KgttXp_(p_<~3>N zl*oiksNaV&U+6UDnP+DW_7+dDo0G-PV>EQP>R@ZHocpZ*S~JvBDxNbs?=YFw9^IX{ zKX&gomxf=L$Zm76*TW>-3pxL)fjq9+(s?gXhFtvaQt9WS{N;c$OvB0{lzUT*eaK>u zADA{1bWCp+i#}+|=_ze7FyHKRffH!%4Voo_QJBneCqbX^9K>esai$0Dpt7a8Hp-fB zk<=|?0#h)8U-bHTWgNeZa9~<~7qi^Uqips8PT1tn^!fM19d@j56BDa%aRa_<-e-54 zZ1o|@|8c}{3F(3JhVdZ9*Dk0*KHv*P35S*k*%*fAVC>PpV2Bo^LtG0|)O3;yg+{PE zCw-ks?6b6=s}iTS)8oXJK+!Be+)RE+)?D22x3lfgZK;1jN4+#lsT1FqLmPf6A-&Z^ z{}eK#YDyhL6#3$hbixnG9qA1*L>7#*@WP3&fNVAIbd_PqiH5Jz`NALi^?GoR44{(k^Bleao!!y?galv3kJP zhqD3GpXNN>=Psp%n_m>QOzm^h@$gATYlA2=T)vd}{=3Abj2*hQtiI%fs`PkwHBT6V zLd0SFY;)bv;xl3HV}wbLQ@bWvMV{BT3*y4%KILP%22jZZB|zZf1WZT36*&qEfgQG> z4c31Dbgi@FQXQ1%*0%ZWZ6~)f%9P{11h~0C*Dsc0NFkseUC->X0r7 ze7Yi&4pNW^np_^QxE_+TMGP)gry*H}2AK{Zu+v*15cPHtl8WScS(0#NkNc3>U5KW4 zTM7+z?XSIWFYTCDtf-~be?|V&M+AmV8=0{PR)x=n3=iHN+azj%8RSA+oJ7%(6eRS$ zm}b60f7~xm^P+-DrP-)-b@4@J+V3T}p;NOwW z&4TIH&}sRjTiZmN`)oWm@zHj_VJlwVBKfT(itw@lVGdfJO4;YqHoIb# z(Bo(R12qMal*Xo>E&+~5Mq48W506&qwRMcyX`8b@YJ~Ju-13KSw0LHPizhnx`@^OK z*NM)g42@bBmk7hXE?HwY`C#973YF06^G#)V)ofy($VtB+baKkl-RVx+`5)&Hkv(SQ z(_2U>ngym`pYYaw&5q9{8J-Laok-7i4QwFPhlGq>g%-KX6)2fViJr@o*ya)Bu2H$xb8OL(ou!STA=7l9`O=zt7QpPe zQR-65pG3s2381Uy&|nxtDL?)GON6mH%kk>`CL`Iq)$~TkqF>|J!S>t2`LL=}a#53Q zQZMZ|ml7s@uYi_M^m4yk&g_|ycj=;Ee$!_!*6CXip!_KK!7sKz43Ek zY~gMUy1;dj7JKU+VmuGf*rBTH?L^c-T zd1j8+mXqwp8Vjx1V7qThQlGXkF|_&Ruo}{Gc^cnE&}4Yy%L*EQO;Imbp>Ha~@xtfT zYKNI4V9}PER!7|HV|Txmes%M<`bqZ_azU@QIg=fmENfoMcZp6Oeh&IE>+iMqx0BLw zynRiR7JOWnYL#4}ho}c<9xCVsFScqXrMlh{Ia60~JHS2&Ai;3wtni>oYh<-Zip)&| z^sU@L*VvEUIK^T)?I0^LKPkeAj<6j*XD#(I|#I1jXZ~44@S$W_X$-+K{na1T@ zE;y>eFLtAj4&MH_s{Vky!U2{Q!|yP5J_{l$(DrNWulXM`!7-tou-yJ~3i> z;l+)!hvJXJ>Y)ZcRsqk4h7T#`36cuqt2@qNJxBwhXBQg%FYc-+*@QYuUb4MB;Vy{e zNSp7hR3Wn@{LK7NBL0H&88Oon;g&DP1K~4r28F+CJ@y5x;B|WL-M4)3l;c_$AHveh zqcc6zJSViQT%ZUQ&?+~%b|eHd3bOE9WWBv?A*jz>ip>49ut-`R?5I4gv)R&mWaA9w zAZh&7B|I`b>=UT*d#d>9vg#9q&|A(UHJW+He5PdL!?sXJ=tld8uLR#(@B@-VU_I~2SO_odcXM)|9F-fwW|f!F z-lta8M48`q>;pD$a!nL*eh}c}VQO$^cjen_LqAbtl6MDYN6(3rRZVl(lN-j4z4@&R z)}_04P|Ba<<_K#2`O5M62a3R$*0e~xmXX{+dbDrbM>0f&wFOs!*HSSSm4{_C${H`9nUJt24#PAJKna zHR{)BysvxjcM3b0_7lD-k>rM+#f&oW$lWfws8_;fa4e-ab3SZb&y^@Wo;JZl9g^#} z;rR?~g?>LlaFwHPQG&&Yl|Mwt8ic8cW;}lN_TuU|=JV$-avbIeom}{I4;>cy` z46?l0-lVDWinW^zoRU$pg>l5#ym3`V)^|O85Zq48(uXO}%fxq-y1l;t4xY%A);jX` zP0+9Vy;Rl9Gc9)6zyb?eRDK-LIlZu9RQlp-@?4Hj_7nbPwsdc0p)#)_CJuLZdlkDk zK|hKX-$={edbigWUtW3CL7$=ylNZY!is9N0w2Pe+S20JbX^R~VEzv#mquxx!;0=&s zsa7iERbzm%yo4&5DzjC)<#~N&t_Pxp-$6|50mlnMUGE)ZBVPXYT5ueS=z<-8u2V^-Sjfru<9| zgy3HW>Qxwo1y-u3@3v5j=YL(kO3SN}U61(Nd_iDR$;~DA;&(D#`~)7ITTUday0)MH z<9h?9SONtFH6tZB0}fB(m1U|88;Z4^>0zghRAVPuJlpT`13ymL)(KEanW=HMDmcH1 z_53j8V?~l4)Oz3}FSub&&6lk;!fgF&EXOu3PmfT4ISFh0xl*Oo_yQyTW^Q!F2?^4- z-}#tcLY%lUJajtT#t$J`|8menEw4tZoXDTqx@v<~ZX`!?DkCQ>SN|1~kQMxBkNeH> z$kBNWM>~c}i7UxrTg~HcZA#yX`~~h;ytJ4IpD$9V_D7mCUvL<`#eeNg#+ZEFXhZ(q zy-l6U_VpfCL@<>ujUc3I%ilR3L-)mPjo-)oOe8&Zalv8xu=e8Dlz0Xb_lay`W&DG4 zSvxkHOnltRPQoKg_{!ty(eM!b7ouo!45rBEeL&otvP1zh zlM~koNx`0CX=Sk_!k)KopPPf?E2ZDHd;H~@OA7)Ft*tTRb}QJ|e`%O_UqM^sW01Yp z2IIPeBcDI&fvig!M^|LEjcQr`{!iws{tz9N-*W+Df9lul@Z>3H=ZbE=LPyrHPrGk_ zBwJ*1X;|&~b?S9U_UfR&ubBh{8Ie2Y;n%UCNxQ@aA;YqOORK%u!s-cwrVRx-uHYO zvm)zD4aChy!n$Bi4Pn;pkfOVOJ=SxC(f^JS?l>E#bDr(Mj(K7*X(3FsNM!Vg*mQhQ ztfYUN@4eHZH9mfACE9D`uWTi3Zy^fT5m@UpSEH- z0*(&vigB;y;#=ifOA#`r@2`$~3PW_5U6M*= zw!)g`^OkNu4^HP=QDx_<-jt^1$qC^-hh>`;y{4?S@Wn*clnr8~8#1^m!w_Gj_}b3l zPRP(Ll=JzkT=Ha5WGG8kg9nRKBF7lo$VN2IhxQAp2*_TLi3aJj>Dd6oN4CgtZLKwG zsG#CwmR@<0dQHI~6T)qC(W++z{!6w&9?vYs3g$36qKFjsAHmeWWt)GC))eJwOTkLN zeB3i@`CvMLPj}j?L@I2+wY}yubu#tdQ0c?U$ZQvREV`tFM<-O41x$ zjs#zQy^pxr#278QSoKt5JnbiW=5U5FbbR(SE)K*??9k+PSQ@ZaEJHviNjl!8Tdg1L z@trTB8X5UsJbeo^`)niE1=NeC2^zMXe**5X!e&=MIBn=_^iE79zH2O z3@qY-?y1rUTC?&kD6E}3ut&l?L?!pttvdw^h}7Ue#p7u2!koaO4*^6JU3XLdNSX=S zqo*&B-gKemPmr0g^;CyhIq+M5!|o-l5BCbSeU0gb?&}qcLq<Y7dm0lof51x3TnUC%Eyawn_hvA5JPWymS|Qf0~# z_oP-T*S!E{t&Yq9f%pocr(8g(x&tRCi{Nkj7)6_UsX+BC^g#$mlB_q)2(>$F$d&@r zFe;{iGbjAvg*--@3Kguf(ij?ke~%;3rq*&KNE~@U!$wi;@0F}a$fg)xo#?^l`s&4p zj+{*tbPsZ(K;#;cvX0oeFI+D48NnR0=4#UXVV9%rW~=T9k>4I!mXzNfe&Rsdl_e3; zzCGghU?G`Wg<~r;$3gS%{N7R^h?I?Rl1_}xn=3jODrrJprd$LI4{0?bko&b2~gztC`atpOu)jf64hqH73pOC6jbeY+Mnh95OyZkY2 zJf373Cqn{zqCOX+(*Rh!%!oHNp?ljWs3)`s*_;wwjIcx zG<2#ibnhVryi5R#l{f^~631fd&A%C%w|!s7TTqc=;L0Ofv4!)J%44ozxZ)_39lb*I zJwpbn@gJQ@B)>WIr`M~Is20@n>b0Fab!u^AM%}7ea0~76>Q})xH4`}AaU1v_R5_NVn*DIhRs@uCJ}M%PJXV=vyC+Zl62CKnz}nZKFxly>1w zfixI&*-Kelyknl8bJkKsiz+8b7Cq>?#%Lu4=0>~C0ugB=e_WShT6}C0Up$2SS73`os)E?^pU^#?T^!SSO3#% zDB@=xlXStaOe4YeZl}BGm_(eHd|7mg?#|Xwe#zhTHzs2L(u{|p&!4MOeC+4RK541B zTRN!WVnTg>INsVSH^IdG>*W7L8TBd8z%0@~AN5=44+B*PjJiN2lNTJr+&oF0czVut zGRr)>FqTXuD88w-j)R`2Yz_A(irNqSu~u`AzgQ>vj91%pZ04&6T^Z}rok{2GRVo=}cSG0+bw6m-gyB)M`db z9$pg`?Y(kZHEGVH%SQEeAm89d^TK3`=b<|Zgvoa{P?iHj3{I6TC3SyxTK8UBzj^cR zHU5YIM@Nqx*Vx8yb}~HE-1x$}o}z+guHfU6X`7dC{5KfXo4nuoEVD;sEtk%O;hG}D z<7U~#c47Im+S?1FQ=_nh1Et{H!&cI1nX-jbm1KvJOjzn=b@`i_`%UVKry&nh#cr0B zCd?-xve^#Zyl{yJ=RB!$MQAs}kx1{<^|aGI1xcQ8j+C)kJCerwWH8B|flG6Gu>B(h z|LxaNq)vKW`BP*KxLQFvN*miX6SF*Y=OShPxs}Z^W%E@A}&!8m~#*_>)X2pL{2S{*W57nWSuj7<46;S_7T{feFFm&aA3>U54Y zkM#C?k+Zh0xXK`%W@vdy{DN`>AV=U2K8zWU;{DoI7oK7}(q(+cus~FoQT`RySVW)@ zK!Y&{t@oVKDtu#*5YZi_C1IyAhJAft@@ga}iL*$=VO}AN5H}uAg;KFtda%Fevm$8Y9Pc?5_cm z*~7=ueXntT@?3$BE?HbFlO>|Daxql%zna{w$$z!HCAfM+_a%gaB=EZ|OlB{)TuoS{ zN^Vt6{A;HrYVwmLNh`~kkL`LBQ$To*2KN;YIv+|fl-v=2B}8Glc5bzTtp zywUajp~;l{JIlwL`qo>^`pGAX{^C4OWAOCaL8OVIAVPMATpSsT|f>`u7S-xws_8X}F^ovAg;@aybW zjxvvVD;&j{;$Yx_GUXfICRanLs2VRX3dKpx-~6LXAYWav!$n)W1FO`yHP@~)fM-sC zpWnH&$}2#MDRm0eBP!h|pO;iw>WIC?eem((-1rJ7jY89b8jMbEDu(35K@iKee>A9& z+tqk!e}J|V>T=OqGWmJK&Zow1ma&vSkNJwAO6FZ_dqs#86WrE72G1}fS5gQDVaa$1 z7hW5WP7Gf(@$AtO0?g6&*)bc-h;>TR!Gv3}X~~k^b&3L0j)Qp2!}%2pe{Y}6yZF%IJs zT8EeojPAm@sL+f=d&uJt?f3{azrx-px#7m()8JYo%Ryy|@zI=nN#u$}JiZ-{tNk9-y{(QodkCjzG(z%Wkfxx~&EB`%4 zFJMCiA>8UYffOd4ql7X!DwAUc>0fv~e&FY$+t&`z((QHA9l_wg6zss0UFmcIXI;Q& z7#76<`AdHUg01*0@6FpVMjsD28Fth#{c>cPl2K_P1Q~Xe*#{p92zjj4D54skbev)a zs@2~iY{b(kVd=v+J7ktdAF6-vjnV zq9mB#`nYNU1W9C*Wx4T z%XEHKD#I+c;gKVvT$D3f7yc4IiwWd~z6=I0A{(hR>-&0WwJ@{1@~S@D^>&3)f61t7 z$&dbyBe6^MS~3B0nvma6?QU>~t1u_N!2d`l>IaF5;7qu{YG=HQ`}CsNnlL*~{EUE( z>i0UF3fm&bnL!esJYB7l*sai8L3tGUe!P=G*d`3e`$IsS44ar23Wd|R5E>PXk@h~j z8+91c_K~eO_w-u&qx8}`SqiKU_T|^{?r?$L8pJ`X{?V5KEoOuSHkbhxw=zIP=*Rn( z9XFjHSWMaO`$k~Pue&J;HAi-H$y^aLdh;2c#pTZR-_DH%;4Fje0X&`Hg?-L) z$O$0Y1@7j)j)NzI0iwq z>lfq)z%~S)47Z*`*noF?5LBSN8e#|V{03?4HIPC;XBd>*uYnu@CL{k8@PnF(>mYrA z#VCl1t$@EvQ4g5{K8%5=Vh4C}POJg)3-B5T(J~Gw8=$%eK>>ssA?bko1V}q*gp2~8 zCn1D&V@(i5cp!WVB;lCdA8idFJ%|j4xV0QyTP$&Nzf(;LBZGtkOaTmbK z76^&2fznwckZxda8?;}HA2c&}6zo=PFl+fgYp#Lke-JpZI{@|`2&IvOJzqTm83+FE z{cEuXc16!5r~vT*MAN6hF<>}^5Y&C1hA_he97kZ2|K~gsa5)1h07Q;KLE1eCFR(oe zi3Y4rK#_<)kQu=46lC1*feN$cAd5iI8HmQrL#lu^3ou!^&H`i!{Ad6cFCh3gqO5@X zA|ww%0Q}A?0KOb~wFKFM7x?d+Z$9%f1RjLJ1Yw|kE0AZP=p5A4&JOzaX%(D;h8G|T z8h!$xT!PbAW*ssJY+r&jnhnr%;0m+{9Gky@@-+y7ivO=avxXs1;Pn=y1Yo-X8MSPn z4V2rEAzeicTT3Kqms2^d#{Nf)5W6qJV;6AY}mC{~(tONFvaQ3MB?8Et_8@a;4k?OpMto;B>=sVyU8*~qhkpEoyk0A-XMTEWuj&MLmF(R}dD8>b$ zFA(T9V1Wlh4=7MRpaBYv1sw4~6m)D3@FxJ(D&i+@v6yj{#i)cwd50Dkk(2KxF`-pIFeJ zzzPGX$_N{p4dgO{G%!-;fyzrnBH&dG*liLxP!xb47wQf~F@xN8Txc!;uz)R6F#p9V z9%x@BnC#}?3}Xe#@S$TsHXD?nE{*_70uPk1gPb-(keJK?cH2)P&|cUpkR3`4rG^J0 zIYD+a3A7N1!njOZ&~P$rce z`UtS_gKEntpw|Gd0yvuB#AO4vDWQFUx**uNlM4C-=nH}Erm3Mw@Ia6-*zTAH`Ujrx zzXBw63$##Scm)3ci(giH=rVBn8Jq+Z4A2fR&cWyfEr99rxW=&pBh1hNKsW`8UsuEeMTQ4?U^NDD z;FJ}dLdMgef@(JC4M_cOQK@Bu@&K3YU>|=IL&67~Q4kQl2|WZ^9n@f#W^qAT-~l3UB>cK1ZYbKn)#pDWz?d2Y*5g6)91oNn9zlS=?uHl2 z4G-AVf*Ls0ArRoG7QzhJ@k9H-HvbB<0N_f`2Dk`7*MPKfP{?i=bTLj4Ish*SNFpKP z*EtD6!5|kn2bCrWLwVpqy2&(@sBTpRs%Hp{(ja32_R~<*I<*uirZD1bPVPF>X(+2L z2!UY?`dpVIhSc{GMEU-Q!t{_5$q~Sm*q|1II#zF_T9Eng`piGs>v$w*8W07;@gMrB z7K!2?_y06ijw6LqgXsThQa(qTdx;>(74K}yh%N9M?UjiYY}~fuHKwEPEh))J6iBvaHXfH|#2>-Jt{oQKlFpspo6aCC2eTfQueQA5ZxHuU zB?I;HQ6zsPd#Q&}OVhD^Gg81u@J&|CveO~?xmhYVFrcqRqAY}NF3$|6D_vuUkqbuW zP#=rfmBdLRDAw1vvq<}4`rbO) zz~BoO_?~-0S1ppKo4C{j`9-%4Y?Ga*m!S|{RxvPG^(g_>+kr*CGNMRGDmF!3c1TbD zJrs@DK7U5FBJ>WfEPyw(Gt6%euAGW+_s!N=Ad6K1n_dutGqmQ7Gz}J++Nwi<>ez}* z!Dqy#giXc+iIruhm*nr0_I5`6INLRA z`!CsdCQ1g?yG{Y|)1-3Eh^Oo5k!;clMG>!n4YRj5xuza*`;Zmg`< znU^zGb6m`{QJbm#9lWp(Q~zG^lL^E0N}Zry!dAd6QCtGWKfco0J04A~U(BJUvmQn8 z>4#MP>y?C+?WU@*(@!Q@7+m4eGD*rEe%kTMzEV_Q>KV(-O4b=*p=z0Y`0@^v@io(9 z7RO;&IYZ%Q7-Ww!ud8?^kh9TfvQazJV8TL*?+`WyV;G`beq6?*#c>uyhtblKmM=af z^4Q%oCRQ&Ixjg4KvL`nFEYjX>7t@oDMu>~Ueex~tI7;F(Xj+*njtY(q7lug12={!{HGNjup`z8DcM zN|cO*?ScnK-ySb&iwPs8*`XKHlo|jR#?8t8kafd!WfDpf>_URDN=Y>h^Dz8iF86$& z_0O6MbrNFNmfhn{mwULud4Zpp0|nn3-*pFrKO@~O5T~IZwKaB{5z~<`65c2~gbv|=~#=ujtD?(F4!Af?? zU}2mGoM?d(tVGEGcZW4W`loBUqbrj#Egp>p&M^2@G1f_WT8!nrwOZGX9i`-*FbbZT zUlt8pML^-A*7q4~*+P$3iX4azU*h&9Q*$;4RT&3)Vts^Gj@`&vIv(ZjS6a1&k6^?5 z6hs!E1Z!F=vR|XWRO=E~>eagG%1G;7S#>%Mn-;img~306QE1)YJ$>`!y?;7mP7tkz z@CKEH-sF40Kfs1~j3diXqA9==_mE~@wmQ;=c$_20P^Rh2KLR_&VH}IP(+X;7JagRP zhp|@;G`FotwEf}}W45CSe*|8o5O+mxeLk1k@|3_^2+&O^Rnmr2&IVpP77v-3c(;` zX|rH9Y^i6dUt)>7SgVUXVWMAxXj{R~0Sm0JCjul43?k8g_-yGJAh@`&a~OnZm-WbM z9~nlzrQ;~;p~oYhUB?TL{NS?Y%c=7>m2rJt-@w9UrLJD)AC%<8wDOPbcu*BDo%T< zzIzq?_D`|~c(e2EH+iGPNSq39mJXnD6>zG_m- zAlNupH@bbXSY(nZLZVg|*2k90^-LiPm9O2C&b7ni|FOtWFZ*~RR8sC(xWGGcNUMWf zz1VA+`Qb8O6#IowG*wS~3-|Od_uzW3dMs#X~V@>D?iE*eq!r5G%9V}k<6GMn2g9jUdK4Su*G@1GqS?z zJC@!So0N6V{}r{G)Yqu=cl+yIyPf3fD#X#;gqPk7r4M7TJ5Vu1@vT;}ttVJ8MdN3t z$6ni(hGr;y5WNu9OU*tGG{pK8J>$6ZvHD7S<%b7}(95O2!HRG{VcEaNgZ)&K@jm=frG@0y&bf8iOI!c8{RjahCjmoKJ`uXLT+Se1ZjF!j3_<8u@iElKe> z4Uo*?cj0MbYJ}o#~mTrU~_>^GODCW>APT+XIF`?S8~D43I~3|`8z{~!QVR9 z$xQbi$pzka!e>*4Ml2bPqi@5Ly=dPZKK5(ebDm8FhiI7O#pYAcrFEOeIO82qtP} z0)@R@KE!TPMO3JaK!`S94_KM?OxixYWVB{p{XCw5N}IGz9^JNOt9BJQ2o`vU^oa~LZ}80-K5AtT~I_w2ETChQ|sEH3z}pn9n@XsLwxerded?ud8nZINxsPPh`S;gE$y2F z@14UA?fWOFkmKU27d7_AusB{-EHgU(s)zYm!$`jAkcGi)$iEK11omx;Dj45h{w1Fa z*rNMQKpBUhq;$@VN!Jp}5w*C@jm#)H_vx4VHXbB8MyO#(n@?SEwbw6wh{_(_JMboM zS<#`_BYJ=O*44Ach|Mh^@kirqw7>89<{EK1krVNLPw+<17IfK2Wu+WV`0EA*m}K|@ zn~68$Aq3g2io8+iZ=#Ed-<6H;qn7B$XH#Xdj{Di$CB#iZxvkm#-K~R%wTDMbLroOU z*~@9{lT5j-cgmFc=2(A7FrP~ObSVIEFT53hW_zo2W!J{s#-0hh8ay6^CB7Ou9@5!T zxNUqWKMOnSJIg;)zI791UrGGCB@25Ga9g}LHdNA~9Q4|1nsd6`^!0bsYL(teetSHG zy%i>2CO&oUs{N#Hl&G`SoHn|x+$Gy!6FIx((UQi_F=#ww*}$T6>2xX5_I_9_ao_dP z^gX}wESR-mEw4G*cxq_+*6jTcfsejl3s&pSuFuSGU*GIvCpas)?xO8hyQG%?eVcyW*3X?gA0ILOj1_~HrV{bQ zzmY>dWV6M^yS0K-ZOclpyhwZQEk&V=*#%Gfzc;FkO2uqxMMP-46`0MTUDPXjh>fky z?>i#=Ti%!KN7exi-$WGTn70P)ZFGJq4TKI@YLl6G-^Jo9kSHX{@zA@9zJ7 z^{&T`q1qPQl!WXPxIE^$gRMpI!6 zI!EP@+{;fPQ@BK)_-|5dV33y(a-P$++uPmKE+=`_#&oK9(jf1N!(TWSUU=WFiDHSZ zag)h}Sbp8u%N3Ox&!ZEa8 zPx;fjWz-f8>2A6j;VYIsKGAntyt52Pbrl)!#xzK5dRzZG;sf80 z^xp%Up=B-6q<014VMz|{6TLuN6pfP0vo*|j3PaCT#Bkab>+A}{Hh1~b=>k$YwgjN86I^{02`%C+sc1T;N2zsSmwW?=kC|p#J)Y zp{|q&Z9V*F_rZiPaf$lu_#<(8&O^tGx?f;*d*1vyL!&*Q=Y7LpUK{_6#YI`n(IW_* zC3$F9e{g=YlyPozNYux3v18LkTzNaB;d3$UcTIU?en3e5PdoI}qX13I`M}p34F=;g zn@dOpXF)J(W4jeZP5bZxtcVUB#O%j@#hOg=g6*j*a!FnoGR--H5(f|EP2qNKrl0*X z5mvk=X>bHPW}$2gp`P1Lkbj;X`VmD|N-)NQQZsd4GTqjPo4hf!(z&$;)`BrCe0`M4 z&vSlVMJaTV#`F6h1Gw|xEtR_XH%OE65)w`ii|q%!pwo6)rKIoYwujg(J!n}M%uEf- z1D_F%Wvy8NToz;k@UVHD2AL6Ckc;R4KcV6hd<_J?Ltuve)Lj~+tHW){%pZGMq6v#@ zCsCr}M;*ZPvv#eFiLNj?sA$3(SomwBH*NQgcm9vt>8J0FKi!H{6h1XFhWFq|Pb5j( z!R!Q8<6_wI+P~v`fo9{WN8x=Z3{>Z&hV)1!lBz2ZM35qIWRtF_4@|+q8`9={4>Wv% zOBkTj6T>O~Z?s)wf@DjP{=eSdIw-E-X&c2|f@^ShcZWc5*Tr>l3j|-B z06~HVU!35wxI=*8E?I&F3vR*f+q}QG-h02g_TR0oI@R;c%sE|k&UE+8&OFW9rte{a zQSYQCEIXxlp_z=Vv`b@v$UI=H`zgY7C|kvdw&D}nE7Fw_X)64f4zCiAG5dSuRP}Ln z(o}wsD)6ceECA1vIhQuP;}i)8#`97^0LrN%#i8wdw=-oN+*zTSL62=H%%s?GR6#Ikcp8K&x;YjtyUO$2#1z#C4@)o(QGT${W{VrN zwT*^LMYe9VY;5TuOU2gbF{veckS_`Skc^!?Wu7 zltKlwb3F>QXmo~c3BLleU6XSlk?F>K$+D^1-m5yafK^Kt8ix{P(j6@Ofw5mWNMRr* zLv`1tX#Avv1h_cu9WDGwmF8%}v|bt$+i?P-qVE2J z4GO{yfLwCMuwvq(aocX6V@I}5mmSnCr!W55-#;S-H6;FtxL3~ZcV8`jKB{Cr6!9!Q z{Srg}glA<++Y zJN^BkBs4eRzcjOFdv7KQi@Z}#;r`{H?ft#2^&Z*h>!)jThM zt55|}?oswa*+Vqat+|;>H9+Zqs<5|MKei(r7J613yjc@Zx-EYBaP|Gdt%Cba=}vjx z({Zx+n_GtS+Nl>OJc})-4YC-U)r0oaPazUb(wvPwbeqpdCDJX=jwjQRzt7&CY?nxL z^-K*-w?k3YrO)?0|LW5J4onV?3DTEu+i7oV>rCvu%XgS!VUTl75LU6e;Z zj3gCE6^Fa6f?h&pAEnxp#B3V9FGjefd$uCLnRjM?xDy=i_vda4)?b2OBb|z47B5VL zb0Otb*QC$8C(;(D8+N_JV&wjo7sTvl4H^DKVhvtvR=W~b2M9+ZOsE-d4SoYE?A3+7 z>y@t8af?ksedN$pgFsLYWSafN73dB)ah+Q?fUeG%w?dCfx@#cIh23t=%gTWO$2$4I z;G*XS6GNvXEr5OVS+DSCJ&EaUp8VLid1Xsi6dfX{E#dX+%3_QdY}_x9kj0)JFV4dzHEQ7th`Xj6|`99I6v<+KR+Yo+N_y+ z1DTV;K1p?H01lWq7Wi2Xy*1!4tcHP01nf{^RVEG-tAoBGPJ=G%YYyuA6dO-Y=jtAl zknU_}sw#)(>ws#})ep6jb*GJDdCmbloBbCvQ9(5s<3&zCXkFr$gN(7hk1i9Om5d8+BY|9oiNkQ7W zY|CPFML_kp8z1vxbQ51AvF7gvoU^m|>72ysMxIfE3rjUnui$gP4E_u(*ujc!HRzE_ zAQ^O=;3R3WQ3ntWHO+U2-V~qv5KQDOHAx78T=Ruo{b_b)@$&&*UX-O*l}1$Rn{5Df zT>`&F7;!z#s>Fc?qxp(PFNex;!`L z?C8ho+MU5vSDL;&cWx4}*F18V-Z|%CsFFjHZ&Gep?iaivnkupWv5Rx$5oZx~z^XrO zFX=Mixj$y^w{zy)J&{I(8}Z1Il1L3lrZt&XN5pS*C+c+lH2Cy<`BG(t=?nP7r+fOv zu828wSgx^cP^JU>-~V>tsh*lFI0AhCJ-66HiJ}s>|=zr5`_y%?SPbk%L-MK%O9#$ zs;91_>Ak+DaCdjD&~YLiX(#hOB1rzFPG6@ZE#AH`i=OQ!nJcuo;E2$u@u6I{B5pB5G;7! zhXKFKO>MF_KSB{$%6oWdekf3jpveqI!NYsuV4>CXW4IZjaAKi3jbb7q{I(@~BcM3= z3YIq!5%?R1i5T90(T2|SGEkTt=E*Z0k((WKhzTkZP}oEf{DPH5T;l3+ys}Hc!N^PV z5~(`MIa)p-Z}r?)P^razk(?oy&EqBac5x|_FZy#oqW)gAbUH*&uMUn?ewd|R&!oF; z0q2kttJQ(3cp<8BPX|a#%7;QW+Q7KaeXd z{nK(Eoj7$`BrZaoC+)XNFM#Lk2IK9H04h*|;TNIJSr}8^pGJ&0gkuTvBznY;$?xbE zN8a`C7Q}!z4cZC0BHVkQ&nJ7Ox}TpKKhbl(-kncU-_zGpzrH-(?=A})V;(I}bH6U8 z*KG8F?l&kvfZ&Z_2f2PuJ!rdxpXqNf=DMD>O;v9`3len z%tfeig_B$%L8Ur$mF#44W?cfhT9P*fWR?%S0+uU_=gn$F-|Wq5r22{#cauX$i}RRH zu0P*60hyC-#2o7!AcpdR*TA~e8!yE`UWj4R4WA>o1BB!s$o&r#Cx^x>1!h6E$xeVk zZmJUz#}R($>`dZ6DF(z3?f)n8IL7>+rKZBS5>TtT{Au8HwC_1^I`t+~vNM+dms@Ofc?S!P<;k>iYQeT)~Cy zNY+T*JU>N))|GjIq93|v6}5c(-F-jybnv^`5pUf#z$PnjkCQHqb45B_U$a zwt~{274ZTv=ECjDduC(MPcc;TIqx!1Yr_Wo9KG}HjBq33h6;h~;u`W%TVIM1{n1Jy*qTzCeEx`^JSt6&XySS#fazhO1%q3mL}{0* z>hIX{?gn&<=qWCmozb!>#{Lv*kwohOe5QLvLWBOq>j5pSU!X4HAlf4NzEWEr3Pnd> zY^yRB+~%wWSwDUPoB@CmB1$7vErmwmuTQL)@=dwfAdRxtx=VN1rNQJ*_@$zKfUG~g zE(f?va8)A~xTdMg_Z7QXAiXv5vHq7kRw@IV`x-;!*eVZt;iV8(CX2%7v_ylic?{8ud|2A*{JH4qd*;v=VLgy?37|hHTAc zT$!$lz7wVTYcm;ec29dTjh+-Sq_;Zp>#VzA6YnNqDZPW~GXKusxy($T&Lr73IQt}= zp=xevQmjS=ARKF0>iYGtMrD;p*}xt}r%~CUVb_vA1Hhu`hxv?Izj-iaSFbJb8=dn)4U!N3r%X7oK8h@ z$#>%|M#jYBbCq1l_wQ?%>X{g)Fx+&R0_tn#(|!=E*y{eSt`uOLIt@_&1X~gW1e<`8 zR#qe1Zp$NbKNj_S3lQq}Q!YLQg=58euKFXkiSOAGV}EF# zl_eAkRPr%3*;Mc_HMQuIq<$euAF?%Qsk9av0~g)BWO!z-FMQX+*T-uTH3L(+-40e# z^++eWGSRZ-@RwI^Jq~Wz%L(4cNjCGO$>|Tc_}UQ-z%m0z9Bw{dUD@jtVGUM>`;&sh z-y+oHlas2@v{txUNL7N8Z?Y<$!i=jcLo9FPh@^R#1sA1c3OWI9g_qyX!+x&o-G<(b zE7;+}tVAW%*VN27Do8MU;(DjW2i*%gM(u7yZw%e`h#qF$MVxslGa~Vcz-)!1o&BBN&-f7v( zVQ4d+u)gu!PF?Q#uCVIYf9kATk}$2olwrxexcr&brLZ=((&P16BChfxYrI5w0Wux+ zn9wz?K$wtZ_vl6k3}U;o`*>)~;-DVOx6h2n50ZL5cF=}=Zf%f6`obp_oRui2CpdzI z*Jv6sf4I<~HEgo{@~G?#1K$lND6a7@M^!lae$QWo#LOTEp7e~h3 z5$FdcVYFrWX4|qmpAa1xg&bj4uoas2!fno~R?!6e$czJF6EaTlJ6?9XKlB)Pk85qp zLmsxr7>5S#gPb@Mj`B2_Llo&!1{Ts zisNRcMqJu-%YygrnVMEcUs$nX0H0p(3p!qH=FUtN?j7yRwfY0z(+TUJSGbq!bnz+A z;5O{F2ST##<&VRpg;JzZL#RhKGlC%a%{n+BF5b+wER&j?dA3)=uYh!1@uPQ=wn}Hm zw4wo=!In3Spw>skmE}OUv@r8sIhTMc%=#}buJvnJlyzO>i+CNS!drsAb?42GjJ|U< z*ewNyl&xL+t}(hJoSK0((Qf{`&b%_LPgL{tQ5&m7FGLX=uXqS0=SrWoFhHP4v?xim zpQ$z2il30$kkAm zijP+VWL>@(s&J7TavK;O34*-p4hQ2iTp9E!T)P7HdllQlnR{AHuxK1*uA3Y6%vXfH6)_Dn~n8HYVP7pTgBlB~ACbYRdU^s=t-EbkLXd zIFJX@ZG6)#^1ssvri`MgHh(?^X|$>SJn)OsePyU}>t(0R3vm8bo1j$QBdrT(U{M5k zV^EL<=!=ws(W*3vgZ#zK>NdwH`rn`SJ)mf{_9BUk`CJy|i}}<4`KH;*`sdqOA5Oz44Ao%!~))yn{dsjtZOW*wuuD_{%{VqA9d-`bx7*_cz7(h@eNeE z=UpK^tvkqG|98iy8=5;N3r+m31mJlnMQmDkyf?km5BfY+R>Q(NZsXJ4qjT59)Tyn_UY0s_35 zccQ3YP=$DS1bFyGGLywniT|fiBZis`n=4V02?}CxD>{04f1nW*_&@gL@$rcK%XbUP zGf{VE5XR|#H2l*h^_@#4O#xmul&0PF2C*|oH#vge5ebEfKcd-t1=Jf*z1Jtx-8c-7 zg4n)7cz?(8W$4tjx{PzzI`~DnzP{uwXyv^bp=PVV!cdBWTK$-^9-9H9a@C3z5T73; z^h!V`?7g^Guqd2Gv0&!JnnP+ppI!r+a_DgVw$uJ>s>~+HZXlX&j%vU-IsLFN;K+qs zm8}Qp%&N+OoXq8a*ojUrWqX{WU$pjP0#ss4RlTn)d*LW=@i9tGG09@uSJAC*%F{{2SABb0)828vVfQAZbqgoC@}aI?6wFYMN0uau04 zN{*>xX3+VH#oH!<>=CC+=?6mFMdka?&y&j*8^2zkw{FLE9}c*uaeKRZe{~1m{e>+p z4dwxR)aM*lTK?93ctcFWMpB6hVka>`b3m%7mlf&PvHDo({1W8-I=Fq7G|e1Buvp;U zbHAtG7QJ?jbm~DHgDJDB_MUAOERuvv6o(mwDfzT$06fX~RyzaZlcADwg5Epl_KIym zH?j1~>k8n!9v))Ltd<+$FzaIX@Q?fUa=Z3+E<_;M0TNj1G|r|OwA*B$bqrf}gDu`! zQ+U_7NzFdB_2FTH23ialY3x$r4@YMdGHHHSnKH~0k1SwqGF@g%Dn*$)PY@l!4-wb5 z%u^WqHQRkFqu4V*(e?VjDR@*K10_73ss8j)swcw5umR%6pJnJ{h;K(?k; z!5eu|NO)p?v@h2~AOl3Z{XL6d`M!|n4fE5X5G5%YX32RLkgG7fZ9-X)vTXvlnD)it zWBk^4yD18hH9p*vzOd1%aS|?qNuoLUbw15m*kyV^n`S!*cgA;44l6fPcW7^5Q8{W_ z!3TXYcKfG*$0n=+{5pnuG#MD$ZtJa>KHdlXLNu|RfHa8=V;>6BUN7Fo{+uyjX9>v_ z!BSM+<)i#Q*M_wZT*U7fQSe456#gTE+1q~py=F@;yO7Lm!ys}zS7e)y1qTq$Sgo;0 zWF&h{(WN@}djXp(XJHbur7hTGr}Sr@D3;BnU?L0u)Ls4!WKhJT9veu9IF;>xYY z9#KX6FTP2}1^6WK+e#5n=0@ze;VgE`TCZW%=-->8W^e9I42+V3r34I(;&n$lLrpz) z4$&zoMYpg6xz?hXv-jjQTx5^m5xWbX3Tc}a>N6(+KnA%TFjkK+!+V9VW<*m%1kiu?{|GPGBmXevaG^)jTQT6qAu8PVcB@mAXouk`=Sa z8(vcix#Ijfmdjndtm)HpXIw|+0Z2;?=(0I#1bqd2Z_(sj4V4E^-v6GL!g^%5x+jee z)*U{f-E1oA!MVJfTFaoPS9{o-5;&GR7!Se;mEB024MdNS8hskVfnB>~iYboc$t=Zj z;xlg9?SoS8^+U-vy3$!f3NGwm%6-qg5A6^Kbh+F|a;+lRN#n#lcxf!;acvhOo7sW3 zd1MW@HrDR^>dsrxusdeq?p$jB{0=!832NSzflrlW?XnrN)x_w<4sJ9Qu^>HGC&PwA z3Di}Lh@;IU1mvoSPZ7BMT+g~15+|iTVl6PXsbn6DN%J!l#K7m5)Rxj4@N>?XMb7kf zIU8>59#qgw^Nx*OPn&JCDPkV$^|}Pb=3nxD#{CQNmP9gjon23`2^7v)p7!XuQzn~Q zHZn!sUhzmESv;ys>ea}*k89r$@wRFpT^>qbZBI6$Bz=C_?yP%xemdXScRZdSbk7v` zzh`=@SiAgS3gmF&FyR>Z;>9w)oG{`*;Yu$w;ELTU_^SuUdXMf&Ygb4s=5`k}p1H$Q zxCM!xC)aRR&>T$IrufxU7ag^fNbJ;RI=D;DwTxzl&Fxf7tYvpgwA~p!A}CS2%&2T{Y83ZsgJaKJ} zVs}dGa_`fti{Kk$8gje~Je&lNKbpaqub1p~^|5^1;LgsgBR;*dtzO~|}_wCuf%`CrneC=OZNGgB5-zZn@cs<>^ z-+CU|a65e!Rb3`{cq91nb?=25B+(0cs+X>OEbex=EXcXv(7In8vEaUymNNUjt$Q)Q zJJ?D!Tk?nvAODK#3*jsN@9={!6Hx}04kW;DhQY1t7+^=kC-5)AFr)$S((u#p!cZM| z_YeP29vU7R9Sm+|H+%PgMc)4|D$oEVcohT%WCi#Xc}0YT1$pH}6nO*%c=%-b<%Re~ zg=OC1{2H0kwzvonjtco zOZmqTEjq)@nt&EfBxEme{pspyuWLiNIM08YY%=#=V!Ep5I52*x2IZ|~g8w=QfBLqI zZ@Q~71obQ=%053>3(({L($#`6edWX@&H<0E_3>wyWvQYKml~ebH=ff06p~@7;`)gw zc2iPN^MKd%6@aU$`N!??Z`qBi_dfUrp+i8W*(H2~a5jiPL@;s@jB+Aig1UvDd@czp zk7>!~L3aw~Hu_Z9Ot2JIsu2%5oQ0xgh7m%&AO-^g^^`U6u0&RdKn2y}QuLfY42V9E zGjh_B(S!u5B8Ocv`!Fl;4%PJ?g$zKpf_fpbg-ktWdGrI=RofgN!tk6;c|BXjyzVlmhCQ>d1|-M5{rl z$?zZ`RjhiKN|e)&W

R?tw}A&RHon0njfbVAe}Mz+3;;6-k|y2Zw29c(xLaxgQ4- z3{)w|vm}AiLWUwc`>7zQK$Y(9z7yhcawy#ZYdy6qo{8udyvG|?bQ7{Ifv>Wvg+u5L zvM4oVoQi&E6NLvsh@gSNO*E*OK*2eSNOV~c?|{DtrFwgzwHUlckta4j37TfuJg{?i ziXb1}VYZ^?yQtij1o<+JXGSt2;jbF-VFDH6KB?sfLN9nT#H5-KoX51YOkxcrGz#wp zY))X>0Z9u)lz-^6bI8HYEj;ZZ7b3UtgO$?&T@)Q@w#?su*-&a{b19 z6I8)|Gn*8MRUy(ji**NlGE}W*#*)EG=+v`*Yekt>`0Y(6+IT;m0ONaRD`cb3EhMg- zR*V&LIkEtGBW$Oc51EHFrU>{zvHrzKWvzH$l$yMHoHlE2b~f4njIMzHjIM;&PqF%u z*kC+$5WV^el4(OGX!?+8MQ#NPChq$Xm?~F82gS-@W4W{@T zYF-cjH!Oq)PAFWK2T3T*s-Em~D5oW%3-W3o=?czpKhjqu@ji`u%wv?mKJ$89wXo++ zI1#k6eyp#^WFBY}VS_SzZ;?m(Bt&pDLQ^*hK_b{wp-r2VBDh@V51a6aQvaKZG6)P| z=5mK{byS$+aNLxb*P+Xwqfq+BhvW!0)2$21&gmLv5d4CTjF9~tjev+ymP)Ud$RqlH6?CkQTB!Klm!*#k`rwIw@8xys9~4`23!fRa%1QR- zZd-+ygXxk)-sM}w1&GY1j$kCCoa~uh8Rz%Jt$}f|!Y3`+H&sB2PYFC$>-w!nwm&*5 zqCuJxbj1EroR?r@2}G{*1$YZENBlZs z!x$~eW>UXU1&Ya#{6VA?kVd%)i=eStU)!bvJj5JDypvfYjAQlMf7}Dj-0N6=feNMR zm$3TmnFT5rAA;5@c;$`XIdxaW%(<+KqX&2NvQ4PS0xopLyU(-O z5oxR8F%oLC&PMvT?g*;9d$*v?aQiL)lS=GO*6qE&dLig5-62a+B3&hOQ2-qqW47QK z`@6~F{{iQ4i*$ zc7Uh8_bf4r>EB3J($6-7u@p*trNT|!j$MuN7L58g92<=LH{#l|#=rOVtM3ugQK*UO z+MZdDEFz*zO}%XGFl)=g1r$RlE4^T`Ytj-^tH2qnLcV#j`aw!v+eS67S{ZD<=my4F zgs-1>Ibc+W**v)5Z#x3utF&C?zh6KpsFMb{3${>AA643`GNrH!lh&xc@_$fhw@3c4weK7SXNdcH=&16fjK$={ErA1 zL9lUZ4PQ=>iSGM&4ze$d$c=3ULsu?&KNrS933{U`c*cBmt4QY(tH6wQRb9~gXb$5P zSNI*-42d7LeBv)9Wyz?K}c+KajP&4}oHXU#-hB6OgJd0Vr9mQNQ zUO&8#PZ0}p!V9o3___;b^da8fD=#DT3S>#o32xD*z1Ptp&|2#PMgAl?oq_wN^V?0E zPG4nwqUWzRcEw<8t~Y(Ws;#oJnOG*9g}znh`vUyi1bi}WC*IC&BJxcf9VefC?a@)a zFsHuTB-py{Z`M2-Q9Zg~l@t4oc9X{xoziAE70IiN2$UJLY?-Q?-DsWPr@DuHosYyP zssrf(zX;bs+b5QSpg(ZVGD$a#M=G|~juAgW-5QTx`)sZsbOW+l|Kn(eA>7JFzZ3Pm zSRX1HyCJdT3VE47rsh8VWL#TPE%9=!TKy=F`ro!&SB#|{Kv$q@V?WKJspv!ZGaZ@<;hg=z-L4lBV*UtQL;teQ$OZ-}v}Be|m`hY>V-zWHrd34YXPN!(F@U9( zw^$-%11kh%CU!{wb$DuK?@QmD?$_URdPX>nWK8K5aDVwtAO<&TAvWaGzPa~Ilv)R0 zhw2W8xydQkXDpTtJ^6eei|opJ#PyZhH_&YzkoDBM>AER)?(6YvcXKUE#&cyTvE2Y7 z3T?~rLcCf>T*q8Tbwi?F>WP;jViE2=NrJW_=ykACTdk{a7H`_0^LoVJ)WA1`p-(=A zH)aSaZe!(Hw@I4?eKni>o2bx_tVTG86KB0edIItFW++nz)NibTTV`Of*{asD2iCW70;sXVyv zXxng~6!v-1gd!65rq|05E4n3*%Orku#q75Uu=rF5|*g4UADM-G8ebW&P8i5bN1)0Nv;JD5A z25WFSs3$^MuU@TH9;x8wgJ$i_;jC$J#_qC@95=B3$LT8dRo~Y=f5HhsqeOA&)4tm9 zOGnWNoByu>Vx}mu!Ds17cwUG@74xvr0E0dBQORSlOD=odalLphJ@mHXul1FC zmu_(vpwxdu1;hX)90-$G9p8&O!NmA>+Q< zRxmFN3Kt9A7fqp!DQq{nDtIJ0=`RnZbl(*HHT{LSo$0@-TFC`+UI%KR5t)BY*@1{b z5cTgrO%Tr|l=yad1eUE{b~R3xkn6=qoP%poErW2Ty$9h^z1y-^5$c6vnnf>ZmL2+w z4Bl2!C##D}Ok*2swQC?Uym!Oe{NVO0yaN8%f^p~&pqz%c<>_&8-4LW#m4?=}^FL+wOW(BQQrn<(+)3#w?awV0LcGNU>z zu2)GYMl}nF+i0e|3cx@X#~{yJzd66GvW=qk8Ng#+oGfi#jS|nf60AW!ss*bT1QDyf zO&%`4QxFA^T2wb%?h(QCiCZyKGv*=r*UJSZftV7&njpcVvpNcLz&(pjxf-(FMPR& z1v@p~R>3nBxvn5pv69fUqYX3^-usd(pi}y3bch$T_Bm9*tGI#@t|O$)qU1O}mDu#w zQJq#b&Q<|$JN~QbFNgllf_WBW9SJy|o=?xZCN5&b3|+5wlAxq5_vt?fN+Gjs-z;2r?0lzPui{ z5!1^+OS}sBbmE|k__<0MP9y97%pNvQ_>Ayf@KpGp9CEOsU=G4V*Ro~*a@}&M)PR2D z&~4XGd(0l~T6l6m(}`s|@`hW6Vu72a%x0wSrPM#tW5KCN( zJEmH4dwdLYFlTiY7J)Oxcyf9VCH#tv%ISBC;rNgVM)_@(+^{KpwhRl?aZRb7Uf>;- z!j7ff`c+{YyWp7n$pV7sGyoHU<^YF&e~*6aGye!^m;l$6J*eT(F=|IKU&_8`!a5eu zaW@oM6#bGW$Rg(mx@E7*=HFT>6l%cm&t}g&FxW0laQqgX^3YG%5@S zExBik_aPFT!TOWEH&1-znA(CdqcGVDaN%KBALm{mDQ(EMaBko%n3rLuA-g={6l#|> z5$<~qsvGhJEh*EhUfL>$^jV`yI6@q*b`(Q?SkJ#Qxe|Z@In)g+Ur0(EYr<+#-u`+r zh@adj3UjqYn3Ym8O-;H!3P$O4XdZiY5HIyNElaq@I4@Zs0X3w zOgsp5tuYC}UHEX=u(Evm5%IqFf-y38tIcLB z2q$yxV5FPk?Xelo3k4;@N4JZWkeEBBm_|FC-P6C@@nd0~xfgM`VjLmq^1DJYl}s^* zgm=yIlZ-Kpt>O&7>XMkV4971H6)7{q?Ia&2ow#t}uN`4iTbLUF^s%fsT`bhEat>`B ztqsL;zb4BM(#9z68+64=_Y@5l{>*a+1u;r@mCn*ip43;8OB~M};xnw@bPXPw$0VNM zIOB*^OCHbom&z~u;2fE6*XQg0c`1@lYGPg=XLVUQni1ZaIpeYpvRt>Khi>K$&a@4d z3E~VQ;^g%ISi}Ley@4(7)L(DoteR4NAEEMEc_|uH*yOoyO!)8F_S|oAka_v+TjJN9 zR4CN(LTS9Yd3?+l+sU~#J+E$YiHbdN`~(VhwiDimG*6GYX#$5i4g(9>QbT5~8!L(Ce)($Arox!aAakiRAcLciIwK6AEW(I&>s-$$=V` zIW%L@X|0~vu}Op7hqykQZRpBkY;B3%lqtjgY}drj=rz---y#~6AroDiO14yIHwG8q z!S^&iUH?O5kZw$ku>ygkdu#!29g&Zte1ZYqxrWau!x+PZJpw@XYi!dX8hM?J>Y1;) zc4DS%te%Od2_FKNVPtQFk!fXR8LcQ2ZP<_X`iK8*=wcX|IXqt;+%`XHLH`}rumg`& z#0A;sY0DrK7)10REV?>qwdu6u_&)!ZnNOWO6CTErlqqh6iiIi64 delta 162687 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 O@^K@g( z&gTzw|KqgZ)2g5w;<>R6Zzam$#6n7DCAH|CVWZdnQ6EsX0F!ES!1S#&s8Q5~Oc z{s(QiP2qk`1>$&c#1(q+n8?o{zycsUnJHD~Eo>l=%e`Ager_=5LJ@!F8m>sDS#k#; zlzrOO!!Zvv$TL!?p)S=`@M~m`uG1 zn{zD?wn~rDs|`7_GKrsx8H*mqZvBFUTxRHj`mf00{-1d<`u})_asbMk7!%bs+M@0* zn=vFSX}-Pzoj;oGZx?&uY~&(}!F?3Zo@9)y<8+uwrn1I8MI<`1RK{uoiTHe8lcjc^ zB*qHNvr2PYFAR2f6$n>}>}cA3jVZ?$U(KDTEX;F!0=2FOS3tMnKn=UEiHd?d90KZ| znt(!a65nhj3muq5MnF&|KS})aSqw<@AJVDLognFa6!E7jlB8`PkS`K72UO=ikgX?e zKz5cpthTr7#T4;SQl-l{oFy6_-_58l%Bb8mm?OlRj=dyw9&_1%qnO)H0D&P5IxI0= z`jLV~^|5D3u`uwU-YNbU(>lY1#;;$0OJpo24NBB6Lirl!IRRq@8-ImfavLYcRtzuU zJFZ*Yg*3uFscrO!M7^?Ej!)&53zv+!ui)Ev(CV%7EFw=X-x7is z8IO4Ow?Iovc?07czDJe{rLp)>pI8(EA&J#GOL^nU@H%rcpU@V=7fp4RF0(D=zlyTy z%>sX=ctyJ<4}vhwf*IV=M4ezSnYw*)*l#J8^|F<3Rl$+1h2Q^yp5W2Ea+<-GJBc-R z>Pcsla2mM(M_#)br^y~T(CEZ5D}^=)^+G~evWG^$P&ZsrHftnGF{#gMbL7+GGFg;- zb;5pLEM|{@t|e|sfE0>to!4lj%eRLP?m z8N5!xBrIIx6j>#mf)MnP->He$5D3V}cvD1`&JppR1vf_wi_adMQ(+Z0du#V#ur?9R zXayfzOPPulT)Kl&ST%is7iV1dsP-PfU9~%EA+psyy)jAx*<&&id4@|e_sj#MB=Yqc zm~x_4Fj1#TFomX4aJxpK_C068)c4*7y=j=z->ZgC4t@_ktiJPMj^+qQBN;`z0+W zGn??AkT;iM$p7;gE5U>P2kXX`nuiHWlM31jN(&Ii+`?03#DHSN^map>Vt~#d4XB35 z9SYQEEE0pzE&{`ujx*3;`TIl6{5OQgCt66jS{W89dvd}a?)s21nMk5dzh80-zqe#y zOYU*rLf^t~I&OlGX!~%K`>ivaBwA7M!J~ONwZCJ;`@)~M6Gzkz8)`I(l|cuAr~oFn zs}JA^GcbgIQ^H}0Gl5}hU3Ox_*?=EG7G4yUgr~UqgZ+42NQ)U4eZ?q_d5ctl{eC=t z&WMD|tG5yRF-2-PRx=_H#PkFC>GP*bwAz&{-iQZ--{mYz60rM7u=N4KI5kV0`2AfQ zW1D0*SMa8vfzEikR%3XGnOkEgLE7^{KMKH~X>cYjS#~nzC2WzBYNOg)PZ3QOz zS8Pr)j|LW5I_#9ICJpMQ_7%w5IBUpfb9{VRS+jM8I+A}TF@wP-;?YgnM#ht~JxI3) zh!3bF!VqK@`Z7XA_?!P;16ia7L<^rPYl=}SN-3oX$v zOX~NUx`;VTT}dyaE*^RWqMrN>eT?8==#o@SB*}3Wtrw!1VZWe-!9x)W|7{s889)hG zu;~~MzQzy@GtebU3SP5~J-h-rhk&y+h9H7s&I5A|OZeS&$Ks@TRhI#W2l&9q)uCPB z-Kpe+Kvrvw{N|}4md~%jZ!7|o3#3dB+q!JS#Xv3pk+Iz@w!zaCwLLn#Vw->z1%J(p zAVghksSInpSzwZFdV$X2cC*+V`t8u09qG(z29A+edhFO0@ZWDDP@;grZ4JN+;lY1N zJev2-*CZdd<+~1JYMQdb*0FoHGd5MkAaXWc5-;!tX$_w0pNS$ z%uR3dL5TAVBN9jJtSk^%24Rjv}i6-av5Fs67j1B=L)B5x~&1@T8!Wj0@Q*{nnhB8KB9XZ@ejm^SoUB&MC( z2^{z@yf}D3(5`L}n-g@Ddc~LT0|F-6I)E!_%{&+XXx*3|J35=FdHTluLp-t@1>+2* zjUuS~N=7q^6Rn2X!j#yGd_MqUD4spG)FP+Z1&>=$9P$mP- zY_3v}p~=FkSTDuZcx?{NO-g3j-CU$9HH}}(4vuv*Mm7&`sY$J5r50T;i?I!yjyS?!?E`gytH${DhMNwH z)uyG<0>Rf6r!H?ndP|i_(S)sPmv0CAMktdGjgOfuOjl_UR8MEd65O;@0pPEn8Oi6eq9 z`r3%UMyvt;RUIX+40VMA2w_a+5!wjqbwlf#V~(QCe-oSSFMsQTb`!v$=cJ5SJVCg? z{EZ-%nEdc$ENM9ZQ)|JJ9KhHi+8iB01d`>~k?RKZrceg;s!Ibx&@N>0k;y5N$JO|$ zTF`o_V0rQ8zf7(Y7Hb%8paBNdo!e9Sh}E4lM|Eq^rNmJzS8kTjI{663B9sc=Y++P~ ztGpJyCJV*4ZpmG^K0;?T1>Y#b2y|xD+}8Ugb)y!#x9PAS2qXc)1n|akkm=7xE>`76 zR#jC?Y_y4#F!XtRO=kGVyQb>mYTJi@qf~29YxcGPWZH(>{l44P;{nILCNd1i-45Dr zK?uldzHcj~NN+`1?LHA+bC-V$fz;V?#RdvychM4c!(L=Ih9C zw`NYKy8AcTV&VYrHGH+*%D-K0M)vdbVe~KN!wDGP-O6YByy0CVhge6g65NyW zY!d@zGOpS=HF?Bsu=0{9^Ws_kgGDvzsM+OtH}SAx(`1N*-2GsHO>cSKX97#D7y-ot zDD12j*qI=(8ceDaJ}Q+@K`Qzsp3Ng{#(fURT^}1qrh?Dby-<}riV|Am9atQhm@I$7 zuR`DGTwPkd7eFZl80nj@qk>aX3fA>>Fr!qq;j#{USMq!to6K+4?qa+&?~@LtowHuo z?vqNBq%vw85MT^IYHZ93x|6O+TaNIs|{#2Px? zAIXAFSNM!`j5Q(`}p=ONCp_m>u!M{X!96Y5pb#e$)Zc6K!Wa{qxQAEHGbr{QN)V9O*xNJKQnQ zANf^F2FoyWE1T>v%?~l*=swqmBkv2GdglN?byf=)6@-iFKfW7OP)=5s|Kzx*Do%rf z0Z_S+x{uXgPEx{d*KO_czz3j0bWvJ?a9mL+>zWDk30X}5pDC9)6SB>LK~HnG>d6&n z&c3R}7NJyLJl;)Ne1Jl_vG7H$fOOKP_7hsYjaS>;$u_o^_7S-5$Bu$$ zxols3Jz_&=qe>9_p62KR^=^hW8@pR(z~#3MtGMI*@O3+N;PC4C;l*&2zevOiHNH69 zv4!qr_n#6A&~jSQ@J6oo$Pjd89ncVmO3}zwebzUy{4Yk~6jYdF<0V22dl6xb9@x>Y zk0ka;(_#Zm{_$n0hiIp4wFk7_V%K^byQRJwZ4a&wK(<|>+Iq~e5~#FC zNlYTH)@1Y~Zmc%MB?mlw(A~Rdi_&xgHfzHS=WBFa@mrU}-Ie7AaTlDS-1D#4KiQvV z%ut@|)q~)yTMoFQahF($GU`V$WU)rkn5CJCZq*Lf-Tc> z>)3I*u|l3tR3W=-eBG{soI)Fo`ISpIe3bytVQ^2eXInwis;s;>-GrD5$Y*1EYA@|O z#VdadJzuI4*l4*RQ^`REhR)@{5_~6Dv8Bjk5wYQS!Qnc>K3OL`Q%_e)7)}6n_ys z0>afuefNC8T*`zY$7yXDq$4tQcJ^o3WUIq#`I@n)+DY#3EB@4cq&;*)mP0&gk#j+5 ztAe7C^vn%4?hF!zK3MsYA;Nal{3%3n4b;4Pq~lwL#E<Y4RY7@rYFmEtm;U=673AUOSHiH_xhOH8im(LPr|2RqFN&C>;l0zV|?2l|IDY+)4 zxGC`YNOn@yn*~rGhF+F{WZ?(v(@P%$#-xgRvB)FFN-&=-)!uf9N9$i0sO|SwZEoj# zMiO`xj@`e4DPtP!4^>Ya?%o`+SDC_9UO>Oe?>lct3-38G4Rhqx8}4vChdo&`i`p=~ zwTE`|J3Hj9>MH2ksB4r7`v|cXJklA|^u`+=v{Sr_E6y*}Qz#L!sX;V@^GNdm(s|}g zG*y09GhM)!el&0MXM+A>J@s=nx%T$6_C@^qWq+6B;Q&9zoMpN`C`okrxo;9w3STxI z(#eiK!tv0Rx&+}Mz~nq0eF_ZlE%hGl3`C%GdZaHwFe-ZE(1(t!uG@FJr zm_aOvS~$^71~ewW)^bj;$1qd?s+w&q(JKve{ zFmJ`J;jQP@PorNIdCnaANl=fX=nvLt3Ca%r2h2=DX#6;=(sWHlAQ#U#*+m>+O&&{E zg@e4#?HElqS$q`p547NXt|t~|s9VJxX@P_9CfL+C2~f7Ps$(*c+&;m8Eyu^-NQQZq z`FO1GENc4g$iE39qUZxWEo&~)MaE&2UO3_#eCV+oOxST@Yx0|Fes?YnV26%VPKYWVa)9$AOgwX;-DGiQB`#!Eo z3(CYz-URlKs@@UGX!Otv9S1Ethsy8Z-sA$QdFK<N&hs@*Q!`{M}IA350DRfP%pT&sf@G5p8TVc9xTL@LQFr?if< zQDP0oyDAplDg5J6;B)Zv12a-%z5Wa}p9>W0$l zI|>FcTmRa7`YHe#X6{B9mhoEjm)seESwV?MIi{~v0-;heLyDhJq%(Jd0zq*WYVVV9 zl=VO+p>@ULjzuJKf^;qY2Uf=;a@Wecx8`@anyT<8{t*&qezE@FK5y>p?=c_WrL!iK zsNQH5z}4OZu`CS;XT2W->1w3ZC3D-PY%4iS5e1$JXnG}PdI4s-_N5U9>$E{N%>}7V zjc(-uo1XC^^Kc#qy>U~gc#DUfGBb}HO=e2=b@AidQAiWkds`;(zlF$5j1{O32n^z| zUi6UPbmn6SO`e8fW|hv4i9rFVQsKyN!KAQA070LN!T$An@Sn%;vn=?uJj)X2*uOmH zCBG=5=|<{tuD_u7p|5RTdS!11rZ(1|C&FO*m~#RI!36F?5nlKfBt)ynp>-A*h%{n6 zHR)3tJ0@?*tn|XZ3hwvHgtqg@=;}bOb6sIz{@l0dNG!h_veU3qy@Qj-4V=tP5@iW8 z;O6F@sqTdANX|$<*hK8zWI+>Cp-E_%=M>8w$&8zqH^MONaJ`*FN<3Ne~i|3P}eHC3s-fpb0K;9jLV!V>T0o*I#t>D>E zby93Xpm*W`f2plY@@9<}qFwjj7bMl{cG>@(zts$Lt0BofAu=E3@w}Uw^WpO&*)y4WOY!$aj*llgcu|M(Ju)3Ta;)ijtlmcf4pD0u?|i~PZu-QOB_F* z_BJy`|GJ=jG4PA-QX+82ytq%rE{c@Zk_fWNy8>FtPio02jW?#G!`9{O?qEt_^JMf@ zSNlRSg-R;wr|#-MRo)M)^eO*Ys@X4v7xIraIAN4*=Xw$a>sh@W@rh-$j(=Lajb{VLN(I02r$h!?>Z1{lu(-Gc`wB(o=I?G z>(!FTM?4{%pOrpR$$d=zcayq=<%M1ryC>o>RoJ{bB}lAnW>dm@@4oEr$yFOE*4>!v zJ~!abZ;S8kx_Nrx7gclsSGf_*`yxj-zbylaD z&p@paGvO1!Wqg%;083|=aJBd*Le8%;0&3b#od!8ZpeAtveF32LCSJ-`5|!%z8!$x= z8k9%g(E0pECPmNApgGIVqOluz`3xAOv3C4^I4tPqvfv{qn0cdqMip3TfG$jji6n`3 zsBS=FyxAGBh%trf=^DVa7U^-u*UmooXBf75WH+l2>rE}!voF@}-N1dk;qs#c2mSm@ zP)#aU7XKu14Uq-C#a^Ng4RyAxx@}wxHKsps`&w+lBR4DU*RLqQ+ceH8?hWVNF1!{B zKh&duS|0Jgdxqsd1L3HtaECvV-MaFRWam4rexj6vqWUbeEiIF7*h+Z`>%vWeTxO03 z=|eqJb3IlM3I-W+Dnl|#d&$*d?oO>m6!9d{F+V$OKSnH*wS*#96MrD;Xp%&t)7Oiq zyECfmrb}te0M9Rv8u)Dz**K*pcIWKn7t}Do30~7>w@z?rCZL>r{6+<29B@$;>!}yI$ z^;t|(6kE3o_%kjb1rY#TT--1({DgpL$YXDFM@Ol)7+Nod)9OuLQ#FVOTQ>ZcJ?@tR z3%Ea(JG0YmJ+?mJx5$Ek?yt-KzC9MlmFfD-3CzzDb|S~i>;9qXjCNLq$QQ$AErxj` z`GmT9gj}{qx!)3z9dy%$ldA3|S_0XwE&g{k{h|&&^@NBi-Q{z^HEsshU>@oA{~n$- zH@$P-ThI7bcc@2*k%|YDFrix(&WhR1&zF!av zc|~MyzhTAGsC;^h2vf7fDa>TzUMcnbq88_gm6HQgD>t8)61fue1sI-Pkm{%aK~P1t!j zE~Py9b0#)q^Djz(`q(EpADQy^06VZ)@gqxk=AYKjx{&6iJ?+*1_%CS&e{<+oZM4BG zU5yVmBVRu+hAaxa#Pk3e&%&^MVf7gcErvblwbhB-hCX)(hFcCgzJIs;t9Z8EIOX9# z@o#;8Z07-@!yPf?Uf0{5v+!h!nLh6aLI`2FF{5)PxKlrXGiV=j*C?AmiTBUx*IqQ4XKgmW#iGeuIMdHZ@Pf?BG=v5n~Ds!?p1b$mi@be{YCcgKKovHVKCr2#`t zecb(NYyW4V1yNr+5^sf`I7#la-&#qO9cE^<#qrL!EWzMEHTl0C1qgahxd&JP)62D-%a$S z6BPdYf#d~QT)#ILf0Dt%0!(frGXc4n{Dqt~YxYTunPFQVXMA38Aj$)34p_5Ug;bB# zc2pU?bIb*z8i6@l!)Q{~ej*LF;S^iJ5*%3NEpX|?XiqJr3KSCXM3FtY*;#BaPx6Ra zyH31Z?uFK4$+)xT($AO8$=Iv^?B^|anW{7Tsc?FQ`n23<9{AlRV7K>LeE=g3^{lOU zt<3-0bVZ!Jxw;)-6{K9Z+w8&0&kDvJlBU~(eYy{^4=r)bSV35gZ?+&?zHi}UB7ZqZ zvC94)H+Yq@}3w}iy%v#gs9HflHN$^)B21SEo#2trZ7|S7wG2%sPrl^-6}o?~nw8o0XxQ!F@a4G6$xk-&?Q3kT+^j{$?jN~wfGn@=Y_ zNU^zzR#iprsu2NDR9}E(qY0Ggzl);Shw>btFRf5SwI{&xzJ`LYeWoQrGx5=S-E{X3 zN3sHYHo(iikS>#$E+g$@d2w*42}t+v$Sc`a?C$=|@>WFx(?e?7uQS2@ zc}^8N1jPgxl|25WVm=nq@wjWDd52?1B)!BFN(B^$<^8@Uy6et{3S?tfcKQhgG1p-F z8}u(K&?xHaW7nF!ED(5qtS1cg@O!G*F?%v{hnQO=e^vt3H5Sv*I)kV;BgHe+Pb*na=qp-os!*!#s&7v(J!un zSfE<%a8X=3gTe1mWDZ%t0$iZo7yq%dqU@g~sAzP7 zrsDyWj1D!8@=jxJEiw99&XvpaOj02=qo@VJ@mBi*I=Q-suE?|oEV3iXY{%`CkZr;o zOCu-kM9?B6DP(ogq5GawH;c? z<@B%c58|_orCUY{g_}}&dDetM*U=IT!^8m78RMgWrO)|ogw|Y^EWuge^G<}{`Y-JB zK3#I*e;YXONv91z(e$c(Jub2U9 z3pLLhG46@};>jph)g`zq>HFZhs$ZOgTI#ST8`>@XY;L=5FCTdFx0X=Mx`) z+ETagV=8?6K9ei^L9~k09c{*)p$rW~qz}}hc?IdaE&LOtisZc{fiZ?jLw}-B`uA(% z%VX&hepuj`QWKH3#0^H4ZK*6s2AG&vGo z1NGZZ^ov+@u3uBmx>b!IG?P`;UcQsqhED5LZMJcuqNotJ*s%Wf%o^>`&Inz;XJG?S zh@yR_J%f)z1!B8aa16qR>JfqKCy750d+&*?nd(SHIapBUuR(Y;Ub_{66Y?dyUw;#t-~^Fh8?-3hcjvCeJh{Kf{)fBF$-fO* zp%Z>V?{9ekLb76X(Mz{0h}#X;Zdi#vpZiGR!1*)L^qzC3cf<4gDAPsDYGbGevcwH z!b2@sig8yd%`AqovsW_d9m00GFQ}gE9CAFHMI?2g+y!IOMjA~6uRil-CnXkeEw6aR z3i4`z{HuLxlR~ZlOIrDRBYHf>?&9dO?i>vxjkf9AN=t%IeQ%|d(24$pbi1qclKV2* zMF8)Dsw$-=4kQ*HehddfVqge>zDrZ#jC7n)aKGLCl#q5j%Lg{nnL1)#n_oG#iG+Gd zowmOI4r9jtew^1C8QISU;5C2j=fX5?JR^s<%r2xvyPV^zub`7353$So0||`vS_3j6 z@AVowu8NYnNcRRY+~Vy6S;LWQMDc|=h3=E?E!DGHV!pgG3##I3s4S)>u=d?PYvdxj zHkVp>t`2o$aN8peT%ffT+)FLntjT7bCcL#q!q;}e>&SSv zL|=W9EWB3>pgpQGZVGY=ZCpzx2fjWseLyM_9GL3${&TMY%)T2gXvlDikq;)@B8B>l zBNB-A0mGrSeAz!)?F>cm2n(zwE{4pomOx!oY-)-+s@Dtn$=?{EHakRt3N18USR+y2tR};*gqf z4~o$O1q?<3fkkQ*68czNa|;ff#yG7vAjq!1$^?n)$U_aGSgjpCyv}% z{Pld8uwWb7n&{s;?cH7MeNPnhL@8rB_|e~nsbNYf1Avr%xE9xIxxB^Cix#qNH$CE{ zyWf)LO34_nCr4+AKL$Br@I1f|q3@Ji_TGXEhxU7vU!P6_>|MPahEJyM#2~y5y5S##bFO4HPgfGs2Q^F@gz=i?6^G-)i zgpAK!O(#JFy^@AvS~p1kXtH*)5bu-i?&o*a!(hf23S&j_)yw8P>a_qD9IMY2T-0DP z$97<%LrO<23XEDQbX8Yp=^aEAcOMA|LiKFBn$m__MG8GErNzK>Y8dHVR zjH7Ao6d;vgM1#alw682&i=at}IJWyAcQ-botpHQPSpHb7+v(UZW5OOooHdLuT*%?! zO+6HYJ+sR-#&{FE9|s1cZ2{6(0en#0pSn&N+IO08M4_W&7M6)$*+p(_(S>vLY?{1e_a>UtmrGrG zvL<}eA_h?A#FE`LbA&rmN)R2^&z0#CErfW`PzZIlU7=s4D2Od|KpK1Gv3Eo|cW zu2L^o?qp7mZ$J(l!ZIpl9pW3pf8>3+q0?e{Sn;Y`j|Z?3Ik6!EwTbgy)-C?6!oKVJ z-X2Rtpe~h?e!|CqiFDd+NMZCZ3>cZ@lVLGlU!eGR7}yct3c3*?@G>Y|9m}t%Th2Y* ziYNz&TZ(@=p+4)JlM%c$GVe$tFaAH%CDa3Gl=;R5U(3~y!^`%R68h1{j{{{Ae3FaZ zFagc++;f1UE5&w#NcWy#ju^Xfd8AB}VB@`2M{_(+i9`6aZ3#bKIF3}(Eg!;tql^pp zMwb)`P2Y`X_Q&kYjs~UN<>3_MibsUJ5})46<@r2P_qB^XS z$4*ZUbJ<`o%KpcPYQpQe0~IhaH8Tp8g3eYkElPmJ0}4S)n&5BdOIu8>50712HfV zF|@Ez3Mz{Rt8KjBryDcRluZs&G~W3qPXwUcQDK(kS$%(gWoqi+Lw4sXe%C85?qD&c zXH96J z(!_Lw*~b($5vb@PL%{S^0fZ&~ECe*bK9zc??N0=7>x{YmiiB2V_Tw2U7|FRavIB4u z1aZg8T*=WSXOstF)GbHExzLin;s0wQzdXr_c~frhzQTHt)igh$9zLysB4%EV#XEsj zf#eF#C5H4Y5}WE=7nT21KKLn>%*Af;C_))+WvczJ@L)r}uc}xi2zkwi#_fcf{h z|HSoMAEj&ZE5;RQi=6GNT57VTt{O&_kyA;MrrNlwPL&OGf$q%46Jqgl2q00Bn53wL zjHTo069}5l5B|!&^R*PxU*#M&aF(TdG0K|nKg>acxxM^(4Z)L^k+HcAp$;)*#yJ!M>bh^WOC>l^r~#F$^J>UM z6Qz#sI9JNRb7+nl8?5LN0OFz79_3xQ)tUn15jPGftUV16Vo}|*?u)Fy#RSW)e#=X- z86ck9vqeNN2JCq$gJ3Xi<>2pB%^~5`21OvtW)nU&YsidfLU_U}F|nXBCphWAYN zP7E+oMcs0l3cx($&yz+_Gh9d=!q+>426;VXa-TU$;!BT*(+4La0DaZK6O^hrdLgfe zA_c|VTsESwgPVSWDKc zFHb2E(B2G^-r#Mhyq`C#W4>geT^45w`uYFpg&db6V`sM4G)ha%9v5cagoTixR9`@x z>=8j^{m4>qmGT(pbUP#s#>*@IZk(=zWCXeEzTUQ@=b@rZbeaYKapn(jwh8qg zf8<{wrp=s)tSz5N@JpR{(!I4TU!&N;FR6hvZE6U(W?`OI3e=vMzkG3?{|*@YX4pu=4QAg26cADi94X=O4R!Ww# zlm8_Ctz5T#8GGzv)mw0W;6YHTmzW#6_?%+#r&dykX7`X zG}x+e@V4$lY$;@YfN2{Ae#r0|_~8UH6s~)m?g&KlC;H|d3;au*vs4oWNP4&8dgmAl zhBq2M6sIe)MDahji7orm%#0Emn&m4<>>dABGrabWUUqrOLjn2Sz8jcvUd6wHtP7E) zMj7EuhkM-NJZb!?ILJjnkKMi-VkW2s088V2WQ5(t;#=y&UwV&tuR(l-f+5*8YT1y=6OrI>jlQWw*ytC zJ$_E-b7U+D^#}hz8BB;EK0(lIvTK+OB+|8v*8`?a3dNs*2>i8ou#s-A9EOlI)txA~ zkS=rq1(~6v9f0WtNQzTGrX=(^a3yOtZy9B;gZZ~unKE4I#yV4@U$%Z?*U+THo|Q6- z%BZmXG`l>pv1i8G_$#z!xqQU zqgwttkHve=z<6f!M4Ekteib?V3<-i#y?uZaq*$;)2JT)4Aijz4bJ#O4^n@3a&8Gue z6XseuDw9`Fu8G3QMwjQp$iN-(vmm=og z_q$J~qd{5$^%NKz!^(7u4ik$S4t`?bx7_PWm}LH~0A{jcN{(U~Syp2e^Jh91ge$&lO8*BtYBFzc6ZlQVIkUA>#ic>HR0dX zWKhEc{O}FFIBGI6-PA09m1Q+6R?oYc9L#OU)+H8)XZ!Q`f|$*M3O+^h z7YwkgrCorqPNv}c{o0G3VW+l?5&k@zCnU_%DZo@V5D|BbZ(i8AU!#wxP?CIYNlv6# z*knGw)SVc?BQp5lym}yYOKbqz(mCt5t^ zlWoall>j{fSc(Zga0g;eFZ;Od`U6+H0So!N>9=joo-Ws705&*Zp7jw<1$&pf=en@M z1^{F}ZSStco??YjZXv#p^3!*&QI=l-q!^y#+{po^UACI3=8O?AZ;^kCgDVs zSsLylKbl{Zi(|a6f#-f^H5Oqr3sAV$sGrc_sFWwNOw0e5`?}XM8*U z=;?bo*a@ifGfr|7mwuado~lKSxFh`x|5lU#rosF)|Nlv2KxAi!VU#tsGk38dVrFAw zPBa9g`eE#9M{08*{dumLF@7%~wPcw4hcZ%>iJ=9x%G;>>WZ1w=?o!u3zxx?fWKfERDXsuTB5S*KKpOsEKq z`3V?78eUi?e~GtW5_WRKu0Lo2p2LSswh4|n6>xEHz+S;)`I2{GTop1gng=mX=UXhJ zrrQTr1O^GQsfDw^)S!k~;R&XByDOCbmS#yM#is_vliGpDZZuJX| z!WELikng1~s6b5D$Uqs(DowNL70JK~2qYocXl|HHk;PF86#dNj7t$}V%YO-IIi|z0 ze*xOSWPevbaluZ1H9#9!YXZXN~j^s7x*PgEi~WOt%ZR@mR#+ zA&b1Mh#`W>7!A_Vf(IlZD(z%!FytK`o!~|_Kx6F+Xz8l~1EXN42<8d0KMUgh1+sG| z8X!QnAUnu3|7#%Y)&V4fMq5vUG_WiYX9aLlPa}`^jpAuKn+Qa^pJcDk3*X=iv}?P@ zwf>=(hlC}KU?O@XS+)2>&-F??Xygtr5k1I(12;bD{v&BhocHU{+9sV<{Ozbu zgk(+M7Q3hz&OPi@3MbDBrLkOEE;D5bTA=#d852ICB!(JpIVRPqbcq-kR4c%B=m^lX z;qTXc~A( zaY-NW*6Q`Au3c~PhgI9K>(izY+|a<3)!zk_RqYyPX>oE-E) zXE6L)^~BPf6sYc7gcBeR+g%j6J_1}l*Sx~r(y84Ko^>62#u~79X7%X*Y3)ew(I=$! zy=ZyOY*|)FA?z=a&?Qd{cMXVs$xCVScPf2VSrjP)S42G_+ zS9~wiS63tyK--`2+q}4d@$&=muLARPdA?{7_)oh9+Iw_r&>3E`JeX$=-vffztC?^a z_&fC;uY0<6KlpHS=&rXWuG?>2etqzMu<&+Gd`1pC2PW^dp@Nr`qlI5g7iW+H>&4?l zdeFu4NMag#bo(^Ht)vjDE!Wr|-yXefo?SX2-&VfO&i*(D=;gNe;5QYt>5zvP$aH5> zXs7CG8f#D~k3e+m2pY|y2}=^ab11fkr@GVK8eTlV(8uLA z=cgUVEy2d|r^mgE!rU_m6ztgqpdU*IrKp)7`IQQv^}uD-8s$$w3jxyE%2{b!jPeLo z$y6{_q-v1|pUq2QSIe2RX+^%54lEm(jaTH0k|%I7W6b&Aw0W*-IcV~q^)C0`L8q^V zi83w7x-M7Da;!2sg)PmL8E)&UIr>=_zCnkls$0cZ$D|YTk6^TQh-O*FZ+6$7z=Wce|NC{bK9rvXlG3D2M2DaL zMfg@iG$mUMxQoay2S6__kS`DKV~$g#8f#w~cMrG?a+~&1hh2^QD7B=BBsp(Hd+qQS z2#6#{p&E4f#}`TQW8v$-tyhX%b$lZS0w}ee@Rdn`Pk;0bgo}`?<49IOhi^tnc}$#& z8`(6+|I_H}{bbZr_ITw0d+i6fp$KNV<@-HLzw?Fpe%Jk@R0t$1B1IV8{ zXsQ%3O(SJ<7Jp}yR&&MAIp~Lr;~Pr8qw~am!KW)9aEFU=+1E+Bmkz3wG+1aaYYym8 zp1!Tqh#mg!YAGYV6rX&bxA@ErEX);`j(-<$UE;l)AJxhkAbpFK_yz%k06qKP4v6!A z7!9{1U|awsx`Dp7B97ROIeAK_guwNp0xAtNcrhBV)rjNe>3(6YgtF$W)?*T2BB;*i zu1nCcLe-$c`vwkma{-?n%fE^=qA0qX;?QDQ;t9^8s8|}}%eOY#8_kK-awb0MawZ>5 z8m6{N>WP^ZvB)y$3DlvB-F(aNUDV~3>9X@LTh9Oi4%C4CcGn(H-8J;-E&c3IPjLew zym%qJ0J0*bZvKw$-dPj^-zX+&Wpvxk0oQ>tAp8q!Q#PLWL%3^8DgtXsw7#3}#JBm2 z4Va{%hSi$x+t+Qi2}1L0-{(oOlPRBX*y6sH8~wB%%+SIhRGVbSo#NVG=x)|{a)#Q2 zrQ3j~Gx>fOu{}9fDdTL+p-0QkwsBdHMyfo^j~gxA#Hzl)&g!+w(x~eu_ua+NSEdsO z`2F1`o3@4V;n;P(Bwp(bVUE~?QhP+orRc;pn=>m-6Z2RQ!K2swBP;^$W4)GRgca8%dq)Op%}Zc6 z66#3b-@QmA#^BrU%g^E;?*trkLh#Bgz->^S)))FMG`&l)`SQRIB0u1LsRlJ=NF9Kh zFkmn68V?D1_ihoWGxFHWg5nk6C>q8I$2WQ~JA*4l17oBr9zY?vv-2Uay@lfthG<*UpV zukNv5jnblAPi5Y&0ZbtaQ?(+qM)S3?ucr;uM$EL%dt8}GANX@exCMYzk$kNo>9Qpk zYq=$S3l`e=|G4_c;7I>3>K6_=6Wg|J+t$QRCblQ+*tTuk&IA+NwvCBTe*gP^o>O&R zb#+yD)m2@6?Y*!4U2A>(>7T~ypk4p@n9gdw&h%D~H*6`4;0-%x&%VB1fy+uu#fsvY z^(^H^c)k{tVLm$9$=$Q9VG4>S`7trXt^+Zp0vx8pA&g>2VL?sz31d6f@NZ~wBmMc- zzFt?u2Y^{TCh~(+xSFxH;Im*g3s&3X@7r~anMnE_xRdn$ z*RqC1=v-J3OUnpP5UCA6bX~ublXzAmguY6{zq!a0ZFGIPII7-@&ayX(Or?;+sCa%L zjdAVFu+%6xgB1cS7jfqGl5#v*^dMQ$f*rOlM4->83j6cjS#g*{=H1!r0HBhPdez6PiX#vA8xmnr!w$*Lr=%9l%Ax z)Tz|0-$G*>a$hD5!I$Be*!QVYs4JKE9r!oLxC3j_*~6%ipYaju)jwJ_01evw}<16U~a)Rab6`WCCq0qFo4fi@99B920vC;0_H=fX9Fi{zhD zJK{1{2!;G}B)@cq={LzPn(@jJ1}z!@fwWkhEAw)-1VEs#+J0FaHKzUsvD^@U)=^8s z=VQrGdr9EE!8!YQ+{>x_A--}k=;e;nH0af%X`OzOd5n(}C|ij;1|}87)QD(lU|C@F z_tDyhb`dzkzXd(1Ydu8~AvXy6=L~n~4^ZvBVGYgICEFbh1^p2)Sek6KjxW{7M^@)k zS5@Hm?1r+qd-H1v23Jp4^F+vl2l=#pz(UPW5G~wX>Z!jQb;aF(i*aDa{sQ$PEdC?t zue8+t0snWKeZ>9V2>9qT0a`SopAE)L=BUy1J?!$hcW`m9#w`Tw*S_g`Y0lNSzn>ho z-cs5OpySC^ZXlmcIO^orwN`;3RQV@xYh%=mOU_Mx*7SS#JE?O$e6efbOeFJJGVEWM zt00@8z1wyBhCnEq^yR*Fnw;wMkMfE(TqAn#?!As)5-3ye0nZ4xu8^bR<-x{XCKm<>%7Ps&rgeaf_~Ijb*w2xMp@brk&^~Z?(*1us0g9PR2qB?Qzn&~q!W1TyhsMgI;o*nYTJ|bZ1#xC|yv7aM0u*5!;U7Sn|t}XZWo-erd zOz*Ysn7&~mT`v7h>qa*1i_>POB&Wgu>>qtQrG$p=)n0gWjv-83xFhsQ4MoTeFA=0d zsfHP6KLSxuKY{1kRONw~K$)FLCJXM6Jxzv?S-qk&sC8>mI1Z^B{WK62ZVjbgi8<=h zfU?xBk>x$S!Zoq(kn&dX#e-xYr-R6@096){s>|fn*WxG|6FVsn`y?#X(%6?K8Dw*f zHI9(!{!sp@RsX)L7-#MA9eco5LnqPoRQV#G+lZko9SJ(CrZSdJU%S zqO7xF9rZFtXnX`rri7JvC>K_YN+XaL&!5ck?GsZHb^I8wT61A*mt{0b7iW-NtwiQn zjboBBQ+u9T(2EeU@mMQE<8A-Nraj}xgIn65qI<+eJy%;W>Nv5(GNXs5-N|j7&!IXx z#7sSP6)2WsE^`1W8IG?z?V{0YdneW}4M&EDm zWO(vpF0^shkv$#`lCn3mUJT~ywS?aj7dVmsLyTda5Z-0f9#K?nma=qg91+0=LZ#ex z--}jxV1#)DWtM9J01W)^3q4T|@Epvz--3wX2{ZqsrliNs>%N7_|=;d;NBw{393neXEzd?x8CSetFS3L;-`~? zD1_)m+12f~@fUz{sjP8#RjkRJpOE+9xkjABkaDj0gZ_o5jQ#qRzE%(~Z%a6M1vwiu zp`xpy@``z7sTTMw@sxV|7aaXR@lrS7`z0}dh`QC30TA&62tY<^<1-El?O0UuQ)s=M z#Hb@VbI)tmSA1pq?LO>XXm(J+@uS+xZ0c-KC&T@9T=c1E2wz*_qf<5{L;Ue25m1ik^%9u2 zfmg-2X18Z6(vx6GhToFYjB^XakLj2^V8D-F8lyER(OvL9_;t)Vj#ean1 zP~1D;7ni!A4T_X%jSIj`J+lR+NxkL;a6zSvqqn_X`a`5L@Bs+E32pLx03smM`g}vi zqrl{T`EvM1ut!gtC!kZj7#J#EV#ddHM!12Gl!nCns~ka?xOmFJ`{t6@4dwS^fB$G~ z5bJV)N$5O?jS_G?YpeelyvxYwW<`VqDdfw#TJTXJNhE&#Tn}gO;O^n(=46J?Wtx#O zwu9hy^Yip2eOJ#22Mgw_?;Y6o7AMP9IEDvr4ik8&IquVbF4znjxiBRGbG+%^w9PfOe1s}En@bQ0K|Ad zE2Rut@|54#B2%Lj^Z|ic^nMeGQV>SqDqLc0P*Djh=MH0OoiG>4eEo3B3THe_r2fb- z%c_h6P$)$y?a7WLrDZa#+#rZ>b48Z=$V7B0j}V6KnU+jM`lwK&4={~NrlEUioMsEm z<y%n|5FC zEbrBVFx$5d3kJ5dAW3-&{@F_p#BRch8dq*#4`MB}mkbi?6c75{Zh=)3q0KIU+$^m- z)H2#SW+-Ct=S*b_zVB{R!k}+WKdJmQ%bTI;P$1T3i6&;KkFUt%n}b1gLk}o|02I)J zHA0_&n$p!CJP1r_qp^NKYC^TsC?+pl7FtTe-D|5OZ2;Rn{4N*{>l)z$wUW@w~qG)et%WM^=D+k1FdawYSRkx+m3jhOLi^em*9yENxv zvj;h-z5;6IZxaOUkQ0@a%&;R~LEG9hALvWPpv@p%wAWY0>U$X2!JfT3uLW5hma{ zZ6|K=ayq{@b785p!ox{VRB4j6@KhVW8ucRAYN;6<7en)S82A+Qik?uE(6`C|wxAV- zX~_~?Ur5ZkiQd*_l)p^Ys3vcvZxrHET&lJNErl!N3BdN;dp3K)Z1(aE=yh{KiGvqK zya7Q}a2%q`d_#r3tVZjx=>l|ad>Q0U^-b#rp&ld!At< z;KY}7%1qXsDD1{cW1Q~1RKY9)X;-!Ct^R8#WMKuaIF$IA;|n(IfW z^gNat1)U3dMKws!&t-f7X-gnT2>*)8!I|MW-?Zw9r?Y6Knzd|G*;Z|W7RL3W5|9se z^pg>+z5h>X-<4gMI~G~+Fd>Yl-Z8p8g61~PTpM`U)-wI1v=7sr?Cl|jK?mygA`E=m z>rs$45n-Zy^{eD2BYcbnSDM!a{9|4hvvs47CEt!u17|(}nj{Cg>n1o572}8B{#Wzv z@p6cUnUW;KYuCmP%Xw_ZaKPRkCGPZZ=;1J>A9g5Vdxjblvp(wCBmI32VNBoDqEv4Y z05&jh%~0m49kEZxz8ebB-%YAdSX`ZURJi#3wM~@>=|w&}7RJ?p&5!=NZwm#UzyK-O zdRb)mtZF!mUBP_jJ$-WLwRmK(zTZLuDdN1xg$ zMhJ@Vq<%VB)dNM6BFbz_^C!zs^k%L%=pH&$gXasBeC9)(f{&BTO~vR1)$io zcHi4%{;x@5Dj4ztOU2ZrEw_8<4EdJD|NGJJSr`qRn~m$g{>>s-+yj1}9>H9&KJ;n1j-&kIHi5d-oH9F!K)2_ac*>ip&5&PZjz6 zw&GyO1Nc&9Gyv$pw`=z(c-z%0887J&`>pMXv;x)w3)2bX{WlfBD5d{750wCMC~AK^ zC14i;gxa%j*4p<>E|QmEi=rgd;LdsO(A8962=^DHz%3Z)?5FLzXk(WQ&OFRb=Ia(a zMPb|3>$ZvBXqW^Rt|0smP-Ssm!JTk!DFliIV_9=+GR3Qt-T02{lKATCr3K?%B5SMo6PT`4Kk?W^Zq@4WN8^Z-A#ilBbaW&=iyUE{qxo3Sd}MCYXhW_)r`_@5nGb7m|lmwUdo zHi&~|etjzsj!o(r`sy-fUNDWpN(21P(4;@h3Cr_uUPxu^MoVc5Ms=DP4zW~);0KBm&e7Y z5_#LK(It;56zAmbu%Ft7{d{fGkGPkDc?rs)TCQ*Uh8rc6(m4;$w|?2xpP^ zP1w5vS3tevn=6pB)z3FICmF28>8WmL+En&S%@$EWe#hBl^Nc;zJXC2`Z0VElWx#3> zSoEup@j$NIJ+8E@DE81$i81}Z3N4ha7w+*uR zJZe}O;TyTsw}$3aSr+DGn-Ge@#CN+*8*SS!-i0cHvJZU+1X46SG&q{SKKF_-O)b-Y z0dcA}HgA+bC2@6MYUxvY8KfU`d>ZVy(6{t{Ax!8s|yU4=2l&*@YtZ1o)L zgQ_v|6I9SWwzTYy&9j7X8@7&RX1}`(Y{I==ul&jq%U8Nx`GrC*DX-v{9Do>(Il>Y} z`mK0lOs#fA>e|nk_L;QfnGc|Q7b;6?1Zusc=CU|fMMot>@wcW`X>eyGX#MdmAFp`? zr&ooZsmW^%sb5u{XIMIPC5)whFwPF*S!|sNEZ^i_!97f1yV6v zFHkMfm6yC3O8J*ai}%;Nn)23UWmc5eYLDBXSFqiI^$$jwPYL5D#bxpOQHGHaNa*6X zq~?OqBFfT%Zsh^aI*T%AuCsRi`~3-KT~rZbNqc{*}rLNu;U_q%`p zu-t=q4$eLA`ToYk6JQ>%Yq46Yz@<^MWCt_7N*Fq*7KdO=BQpu;#ydgEa)uM0J|a2#*AlG{zAo7Uslt# zMc;MvB`UiNb_&gRFVQv1j~Ry5fOmAC1Kz1(C3Qg~JS{>p8XvlmdfDk)(#qi{omUYS zlOazdPw?8O!e^qC5d*Aopry&{0bS^Ki=J$jLbQyD@ITV#ddhdJlNjRssn;Q}Vq=dq z3t3Ou?RsKMG?#Ns^kFX+S|7`#2Q-os4BH7T%Mq{xLR5&t>=V0NY)D(Jd4?uCWiyVw zp4DXGBbpmp!J7P{&K7H!7{Wy}!4chT9z?7h_gwHDZIeWzAIs(j?)fs!o}q>`T~0i{ z+}(P}^xZNq)vXDdJj5Iqtk0r4%nYA|FW`qNF-H(oyq@IiE)_m?iroc=UhhUu7xNMm zV)nclH`%pZcK36ykH@*0_G41cbl7OcCY*mdlBf5*-jfTAT^^5Pd%huJM84Y3hKxT^ z3VF3!`)WA|`kMCxy-jWv2>slvu7#Q4&+7LZc?I^t@TsIq{(( zPt?D|gX4{lU0p>VuLQERwyJfOBXeq7rdBi_PE(hDKeYSw#^W(H3KY<-l(0ig1w88r zoY*|lFrE+8^aK)Y@EZy>g2F4^A;pJ5SyKhlpRw$Y8p1u5s5p8UAx8ch|Z=s_NC23xT*_o1*yySC~3p z%}P83H5i())+c$Qz8C1mhTcfjwtuCS+bG0MZys4yBD6~UDN3iOz-c(o=N9l2@NjGI zta%De(3RnX-nK>J9Bz@2lf2lJIpP5D?Q*34F@3_ozmCi4M44tzU0{l*JKZsweuT|B zfHGV-Blz9OGym*7c8_)9zw83N^f+FS85i8m7LdHNQ!&Pw9kjG)yHUxCZ7A?HqdFAd zFw*C^4kBM;OfmDZP=V9t$sY&aXP#^JanEF<)2$F4^vB*W#(Eg^$hJN84^d3F*a>)> zXhGOO_@!df6eq-Bnds}z!XPvI@(+qzWL>tHvl6ISerZ?;ubPO@&BP`oM=a?}=yZPu zN5vW|#=ti5BC`NCg+S9wS513u+fKDqXcT}M18EwHp(X&dhG!5bXI;h}lVC0Mz z*7ztYAA)MWCn7WSB&}pIo16%7Prq(v1ED#Pk-?uT6|=N9M^C`#>HXni0W(4`D<@a@ zmi=)D==8xy;bFSQah*%PX4kFdl4<1J_9!a-m7V5JCW0+^rjh2`ktbi^^8A)?kiTPB z)BCCdV!pP!k}rb)#7N1=nfz8Q#T9+vbOu)y93)SCE(%vhFo9rp&xr)Ka{51eNh$^d z04cTp`a4V>LF4;Ca@ZOd?q5cbSa^pejuN9SdcKef8G#nj<ry)N2y{CN1zC}w~IrXL#r?g{_4`%_q_fIfLk?Dn1Le}h-= zAK8OZzke!1O~7?4i!2RklUOo=%=?ad>>=0E-p&ps6N#AqVd4B;R&x3&bD40mUfyM`EMr8n5OhGjA-jJR}ktLT- z6$XbhXr}@8MY_|p)B`3u>lcP;z*`08WOdNQhH5%Bj_^|7E`{}Ww;A=MHg1x@l|C!! z#aT%`IdIA?L;wQ+yzA_TZFLhh(i(h?m!H6}R7ZndY^_$}^(P8jpM9JlwSs6|S4TML zhK+xUEm~;e<$-S_G^GZMO9IUzr?Bft7@!7Hp?TZ8F->9clv0EJi^Y2VAg=iU#ScZg z7@A38jShl$WbpNqOCTg3#H1d7$HItBn?vU4AMl5B5YqtZJrwCeS#EirJBKq7&|<+F z_j}wbAgM(dK6{b~z+_$WfOtEn~iJFKeF(4 zEp1uN@w4Li$%U_i+6mLWdiP}Jz_KFTPZX@5d&sJBs=H?^^J~%qz35u@Z4$4dV|$#$ zUZE3r+r*$qyVuCEM^iKu`RZdC1K}DruLo7PHCA=N;;V~qEo-;RlF_tN3~5cHn-Bd% zr{D8CgN?D%b(P&`l0Pu7_fjuz}j9i&I|BVOVU?3dUkCILP zCON1dWlQbV29N@arU030UkI#bijT^U8I2lKl;>*x1wRQId)d{tgX5Lc!IoaEvu!oZK0Fs|F{&6edqgf2gM zvUpdjc?BbKwp;X95P!nap8tMo_X4Vbc^|omX*bB5%QlI?@e17N-dB`m%+dD*A`kQ$ z2(`}Q_MzeNBPZ78BQ#iy29Xppt>mg-YQ}Sw5p#g7C6DCYtm{Fg7yu}MYgjGSuZm*a zA8{7Lyu(X+j7`$R=MXLXEIe3BS)O57%7jB}Tz)EKSK-P!-u=&P0(JX~*oou(@sHf|@Y-5966Y`jShd4ol%0q)8) zC2|5asGU_T)YJElygktUUbY4cpQ17rqnoZe|2qHatZyKrP&B7<%Vh~1 z--mL&OiEF3bMC-Ulf@UI$$~9xZnLfQ@I5>GZzdRjYMyA#>)G~;c zuTCB|12K@kP>$5JWgf=d^q9M(T|PV;PdN9NZcbRIl@!wOWNQ-4eME8SAnb6=J8Mm3 z9H`$%>U%?Fz;ruqXF&ZA1{?oo%3t=nNKY$^$m9D(FX*1Rgw@C$_`4cT0zo#8AbS3P z_5a_uQ#}V0oVHcT2%rl9!h%H=_rXPcr;PrXHf|@ z7pp%I%B=L+3+*P$*A3Nhe@v9L--gs{%A`IA|In_Pa@2_;UkX3_P8A8x@Oc*~Cq{rj zRItjg_n%F(1QExe5W;t72Z1EXycG-X`>`aMdX zP4yGCqe^4F^albKu<1`~i-lJUsv?^iG$dU-5+|=CpaxU-^0n9B0dBrE4<(W*=nI|I zLRBJ?@4db59?`#;P6-mQ{*u}kX-W)8)W)I$W;sSo)p&wxp57YiT-NJ>FP8|9#%#AD zvy3aNEb#Jd3?@L1HAbefJ{WP<0 z=lKsagQ}#lG8AdRHdl9pDS7iHtCs+f%*E1yO1Z6TlItANv|g;W_6n_#Nf4loTD$Im zXE&rBkZ!Qw)pIHecxv2 z&QJEus)!sWRMIq*dO7!qJFRA$)x6j~GQ+LTA*%OQ*+FR1DqFIYB$GX>mRQ1}rQ35s zTpd}XR8aBnRbTS^q7@Xst-a|q|Xe|sGJ@$ zGs!AAdj;X==f{&&Lw#{Q_-+8*X*cJ`rbvUmT!XJ0*Tfb_x56H5&fr$2!{PYKWgZ zHKhH#{XI&b8%6u9@ro7#qKiB%vMVu)3Hf^6+V~)i-l(7ilE68e{5!E;6)JOt zNaF|#t7}B+v@__MD2^6sib1hzg;hT0e^7BsrxL3SX1n4J4hw?fQ41@|m)choM{Aln zN)BH6cLx`p!sv9oQ}PK?!Fm}Ms~LLVmX@?%`YY4@VcpA@i2&1)Dt7F3)3`G(;&ju- zx0ks^qxs=!Wi=WV*gx9`ZN&a6eYh=E9k0`pkLuP7yWK07q@o~&H}0KXCHF4-LB&O^OMZppJYf-4x{yc@6D?4k_pm}rI;5tjAM#0 zO_cm1s&+E|=N*i{f&5qI6hUdVehjU;imWs;RXaLpnBUYr@bg$0UO+nkXA*mzzsvv= zXrYfw+`t*b6H73w-i9NLd1qTuG{auN{zoGoy5QGOY%Z*#JYVwF0QEaU)hHxvPsn{n zDGEQ85?!{For{Bu6K_;-_@IQMfTj1FlY_w*wd#^rX?FBXlno9xY^Xjowo{A~0GeP= zIS?*pt5k~uICS$JW9%(pJS=7mEys=B`y-GY` zs<(pJyQ@(7YP3O`M^8TR+zHI{%fevf2I-sA>4ukOOwbHU8Jc8=DG(Uy>oI zMj0%W6ll2T^AyT?)ByLIB>P2%Pz1CsakOk;`{((&WI`jN0#8b zy%IbC?e|qz@7<@Xr+w1Te)fHUq6_11U}ZD4DJ`I| zE}H(}K7C&8vIp%_h@cR|-P2aahDt6G9U_LB+c|i;-B1v12)eh1UV}@#&kwp^J?%W~ z|1~@rHeiC^g!&2`+F1nJQX{8n>!MG?RORJ2gL(NBAPwa=?vT+o?+3jjEK}W0@3~Z* zGhd;G2YCsIs+V}*?~xDv^PpdFd_^IZn;=vGiPhJHZz&PZH4^JF^p__@GZeCNy+5Xx z2hAv0`jt#kv0*zoEM?@nZu5%N80qBHx~Oh6eV|DF89_AoYR!w zX~CUhF`okE^uP68h+o?+zJl@4>erq82K2YAn1>X;;z^RccU zithfDYQ*6K$%njqz0&T3tqv7v73#GTr`~S)_ijXS#$-TUNR%a^Q3fJqjs1SV*{U>* z&T2u&lBeLfDdB;o+Jdms4hMG%*X27Id*^jBhJ79#UJr#Ue208s6v%^J7h%B6G>mGm zay_`bBj84EmyF%p-DK|Qc56n`OH%L)f#W1zdRI^6{hdd_4fVD@1H9xX1B2_Lny%;| zXd>-yFawadK-C=_duuzScV^$ivc_Mt6VLopoFmi|q_$E@rfiTkaYdxBy&BL`)UtTc z=tq5mo@d0x=O)eedosxjbn`Ebq-2RUmn$6{9m4x&m)(es_F*6PBM2xoS(_8*Py__3&bA)J!QAM{`|!SX%+V|U8HeA zT}M=>6wAJI6EKYgW@6slQL=ziWx}th)w>ZqpiWip2;W)qR9hBzd{SFX!Eh_@DH6Su|cw3 zbRa#^C@E&Os;7c3*>`2o<@S{iLey^!nOyig(dArvZTqizveR6&M}$3T(?=>#XZdrU zQBdCnm}g5PjDb%#D}IoLd^u@cj(4**J-k4rm|d?)WLI^0@vD97GV51$0eV92{BNKp z=6ZrV@QUjGtAX|H7}T5k5EKg~wpUGTFGEVHJUnRD1QlC=Cw`xgHUbh!`a`s}R29uV zUOG2U?xl%ZFU>M^&tUiz0K@lF&YFI~7#{wt+45;ls6o!HY(Hg*UL0r|S>napfe6eg zq@4VGo0qF-@rgD^5_dISk+?RCYfaIA9lfT1EJEKGJ_yY`7*Dpk`*H#qiaql~S1xt( zv3SfU-(L`{OWdfV+55wuJ`ry*gdVQ5LK!PZ>%pSUJLED+n_9G+EZaqJ`lN+=q7%60 z+TlLpw5~u8kDUMq-?mwB1Rislz}c+vMQhk-Ig&U>SkY&Ol5jk2S#J zcP(qf4`wOy$P{xEG}3@`{#Qj%@}8;4p(!LuF!m7!`(tUJ1j!suO0FhbQ5~cZrayB9 z`G>8sW}o2LymyoTr>FSGeaF_hIRT8oQ;51!*PH;vz_|M;o zQ;9V6cPIA;wtZ0&V^AxXr_If$M3af8Y;3#Pxw(v_0fPk7R$f)HdB<$oJ3MuN7%*1S(tttEaYG0Gp6I zRE~?Fm-0SvuyNK}kmqZV`~9sgodAz>-jP+%3&>+NoXeE#8}v22_qZ!co0{+Zy@!Cm z5E8Fzx5@fMJ)Q9#M6mxRYhpq}iLs*hOwU(Dg}~v08*6D2L5pe*#M76KKXfE(Qp!e= zn*Adc2BB4KAX9^sO(K=UA>XkWZH^;$|9Szflqm4ZuEm0IPiHbZ)u@mUw~XPUxLl*n zoVY+yI~^#fXuDiVHx4AzqKwbRcmcwdA@|9pAE~ax(Wdezg(l}>rha<32s|Z`)~vc& z*j0b*eeGgA5XXf^F|S8@fahF+D_RL#x7Yh9zPG;k{zFjEBRJbUSMJf)T`}cEiXy6R z@gMyGwF)Wr>`H(ahI!bvas5&5?n)JO2O4lZkYdWxTAW+l4pi50(^xT+P6o1_uF*Q3 z4S}XUS;OT$@AJq0(oC{cJ*bD2umADe@{}IlTTuG`>5;RL(zo5$@ut$+p?}y?e>E&< zJdPL*wzcvp26&OJF8#LKJ2h8_51r0S%@UD(aE?CA0^dxYA znkseKU?iKftDmz5l&AoVg-}nT{6*Mx_W;=`)~sY3$dQ(6Bz;Gf<{y7vgZBXeF>b0uZ3|!vO$ypO zg(ro@+{kpP-k1WaZ2t+if_Hpze6J)N`g%lvNAav#nckGlbClC=9xPMt3?QvBRZGiN zy?iY->P+3h?I`Yt-?VEgcDEeu-g3XYM9oimoo~3d3RAX>TiRYi41{goqsbc}@_*_1 zJ?C?qgv&WMg7;lvL1Hu66T{By%Fbw;t>Gj|TrT%JtE7NtTMwm^$BT;!?*XI|6V7WT zzs(V|m<;_I{aC`&h^j-uygNoS5;aJJ!>o*5SOg+=pY<*}hHrfax%8hS_FXeIZP`LO zbx4`0D-W%-tFtUF)N}vsHU@(HpoyP8i)(G`uSnB(AEuTlg8vE)OPFC8eAmX2VWkW^m-1!14z<-|qKh^av92_+@;WvO6jCC`0`Zs_B zNFE(9gH`TAJz@B#(T90EJYxWNk%APU*YDCCB zVNdTSj7ZPw;;~C(6-R^HR1S7BEb_^(&|hU}avC;l5^2eW0(lDz0X{yC5E82i`JOF7 zQJc)~5*9!d6|#D7gU+769m&KajW#Edur6570Lz@W7FT+()L0JyuA;J*!7gt`k#kK# zf8GxP?GFe(qVkL0w%G6#D=aaCE*SD%;u*;NFhN@bg?0-|GW~xYUmbi!qLAYGD#^2r zxyDp+VOME9}debPevN%)2&nKAl9in zK!7f%SWic`2|#sDf2#W)`{KZC@r*aS4IFOS^^Z zsfyq4foJl5$jdap>w@ly^1*DFa?$&LKllc92Rj6y43Gutx#B*w66ScGcaeex#1CgY zY>1N05p85t#Wi?dAEWCI15EG~NF+p=c%kP{w>>t_rh(Iv1Dj0=!|z-QUd zQ_x0q{mr^BiA)E|jHe6ARMJdW{QG36{^%@;08-hRt|oe@FQ3|~cWy?*_HU?ezfAiz z`|ZfH{z7Zg*F1zef!HcRa;;omzYTwp3Qa_W3|XDMEw( zMi9%n!Gi{c(QzJi$9y>JPq=boz5Mw^cjE2wFbKn{?nVHt+4E?ZSaX4u5 z?#{^B6)80mufRNFJk8d5I-P%fjK`i}ovGw;ZY<5*bY5aU9DGZ>9vL{ud+(vrn*Ot} z`5l+48*rv0q-UFy^UKNn6y7f)Ks#Bu0EkAS%VV;&xv`+d`s+wCYv-H_nowBqH${qs z!yn;nflaP2obnmUizP|sp|s$UrQ$_C_Pii&_%ABweY%=@kf4mglOd7Hii_SP44k)d` z%df6U3}bpAojNuvRZoF%up5&-ems6p`}3F;u*%Y>4m%3F>g(7*a+hOckl=>&K4Z}oPz9XO7GFmrDxFh@~1fuP?GS?I6l&#UP08+-hC`cE=1 zTSVF-(Xn5aWBtwL%|o(|^ENEwU+0RN8KGY$!^Ai{7wigxr1GP+a;WREIb(^AzB(o1 z>wTWw_Z!)I?%g(v3p_oz`o>DOd0UFlC?9J29qB2GJWwE!?Mt^F>B*{yPe8p^=1eE< z-l+=oi|nlQ^u5h?>?(v|lV@XPj9B{LpY}N>ik=Eje3;H)*^X`}XrGsrItFdQ*DiG1 zZr_jUilhskiTthdOA2_lI`ULIN^mCf|59yJ>{y)GUfz2~Hz$7i^(i2U3#>!vjnJr)$uo?Byv%NDF=np?|y0Ox}-?`GC@4tp^{GA7ILhK`wV4Da|GS>S|9Y$VqVt z@cj-Tzfbbzz@nh&v4xwPGa8nb?P57I4pXq1ofYO0k%vLWCg{OY{bEGMCi}G> zHINv{D*2p&hv10{27rk43c7O%ivy2PhSu;zn$(^>y$WKX5^Cjr&$-x&27{Y%f&CF; zxGn0RDVK7&&8yBEflHLC+^n^p`meYPhsvR?8l}0h5AyZsXr{04$E_Z4+xA&(B-~hx z={h32FG<}U$mj&v>=WI}G~G2f-&3S2ap`LdVhXYyaa$!_pz!{Hm2SVX`mfO>?)svG zv2iE%OHj8agaT^8k)1@KN8oI1=!5k4L!u24CYV!IA_09sC`<`-M-5S1-mk2Ko=SJ~ z$+eAtwLS%ekfAWO#Vcbyh!?gxhBV4mfe6S~%s)2<_{_O4kTtQpYtuBB8y0$uRu>WQ zg*}FU-sgSPrZJZd%ihE|rR6-uRCY6?U`-wLbiB_Gw}E4{G5#?C?8qK z?T&verZsQhxFC(T`r9B;Y44o&ulwix2;F`aEY5UJ`zn$RQ{H}Hz^hf z4z~4(vhB{Zcy`#umf!_Lus5A*!6!xBU^<+4x0w^Chx6571MW_z<>?@5cgY^qff!DW zV4EcSY|CA$l8i#Bq(0^X=Y!nD30@!x?fg0kZnvvqdFMi78gdfC*VuTy4z|Kv!vxG% z-0S4L#|P81LJeg)kT-kMII^L@)%_5{>t_lA<(1thlZ#VdrjE7*Jn-!KxUv)*Z~V_q)@pnz62m+;FnidND;;^?v?n)Cyp@$jAHj zN}dg72sO#9v~1yOccZq$gID_U4m5Q*1jp8(ogKF5h!%U+AtHWoV99stGP+I>`215w zg-hR03a0!VOELvERhU@_os{1&0-!pbKQnMcXDbhi;hHp!c>-);6EP4L@$HbDqo3xj zJ&$V}y|Ypk_Ay_i>^+Oe9JuB7VBQmerKkT z8ccO$7H?oO{nX{6N~|1HkuuvV|K3AS7)xN~4Q_4tcIv%+?kdkSxfG}qKH z+TE-+UUAbVhDvKgjK2fF&cI&`UUts32z4jt<16(aH^^rY%!91jlkj9Ke5+DaPxf^s zR2<}nrVkcdPL-(Yn#{C1g8h-p$KzyAye17Ff6A%m!V@+)=_A?@Sl{Gs7Wpf3Fyk%tbJ-3 znM>F>EKzeq9zFI_4JE%v%7!eITA31!%R`davf z**J%RO*kM(f~NzMHh&=-r1u$Z%(_Sys9~d^ZsAE2c{~VUgP3djdFrsxjpW_M{ynkr z&>s$=??eULD8QM=0)OmK$m#6w56yVf{nzSa$9xweQ&AkZ@eaX{S>dOhl#R5S;=8AA zV&*|6)VAYhaA<*SwcV!3Wrp((T@Du9!2c186>`&*W-w8_}zY zOw_xgAfEqvEq5cdzJZ6vwUVd*NI32$>yltNRVYT6kX>M-PX7sxg4N;A z=y7~M@P#V&0Ygg1W*`HTPOE87;IcJ&_lOuGtO}a;KS=;*>UVlRTB>b2fF3CQ|CVIA z|CQuFr2n@hkNkg1vQ^=)PDii*hpD#!tKxmahKY0NZt3psZltACX^{|+6p=VI3evGi zhaer2(%s$NNOzZf>+k=*-}hY?anH;%v$M1N+pLTXGo@vo1L+FK%C@{TS zeG&w@!A6jQ>n7ABN$g|VmW<{W_Dh%z$*GK$l)x0LO5)}oxDR~~v~ZLV7K;A$fh1YJDJxUv4mGfW z2m3&-RU)k*$FWpoFC;;OR;;5-j0$Qw{`G-0d;jF+Y|Qd@{Isr91=uuu*zwDQ?e)ZC z6Fa$Xg_Z}i2+>KQSoEeA%j)(_jnp{v>r9W+e_1nxjSF9o+HFw8Z=E?NeZyYTISh5B zyH?xy;Vav5k+fn{QW!dUg%S=VIvbW8D_QB@D%T_CH`k1T9JX&RAd}^2od$a!X z^+c1}{;p40Tlb5y-0|B=I#v~b>$Qc*0^2grmw9xnZB+Wm;jd58J^b!mJq_qhr_1Hz z7BzEz!gyKCUv+-5&l#hB660r{53vYWx~zOveD^Sbi)a<)x${)8G#yYGx^m-Jr^$oK zhnX>*NL(YYf6g9`L|?ea{Q;R7CW8BqnrVKb)^>^ZUpiv4PVjL4$IKWari|YQuM0jY zz1%bCxI)Qsq(?wK~)HfXAv@%d87B&+WcZCSQJNV0X zU^3DmR`S!&veaFNsVC~xyMet-hr?Xtp*Nc&O1x2o)(2=6brSZF}PY8gxH}3vjrI?qVu}L&e8g^WrbDdm+iw?7B~5xS<^FLq z@IP)Y$=h!G$}HMUa+{$Njcs5=>NwB2vrw`&cecYR*vlFam(xDJj`bBY&UtS+Fe?BsR8!=WjC_sYf$ z(FNhV?e`DiO|!EU&@yKC=XB_bi=)#76icwc;OXL*FN3IZ+ch(;W2H{QP{eg6O~AU~ zDaVOJ?A>!%ff@K76i#g=i`RoxXoV~Lrq6HzafbQ-QM2%WFF`>N5(a4cAgq96CPVXQvVc9yC!X*ccG^5MN#P~x&L(Rf`JnJVQ_s2 zMJ7(+gDd*m@XRt4Zacd3DPhhpc%8%r`@_Ix(NY_vsVDDX9;o4@EjI8q4l8NOjz(KLVzU&mH zGtY*ilo@7?(?$|M;-!s5i>R1JJ|oID5{k<~oNWoI=`xQi2EX(tS>%QddDc5WHK^lx zuh17;6WaLUbNO1GeNMOOr)(bZNO>!Slk&EF{hdH$@!aAJWn!qCWXvdqlug8NhvT`s zNIB)wX92el*;AAadSZzlsolh*rm*3u&{ zyjMR@kO-=+H&T#M>L=WjpHOL2C@*l4d^t&N!xi3yX=_iM@fKGY0#mC`gf>@`dGS6pA;jRJLcXT9z)=yM*V?rVLB9<*oN{ zdY5_r1|@%bru2_tLzm<#QbLm5oXS#tklumuf$6!PxI}m`sutGaGfle|DGmw+Z&a4x zv^zZY+b;puuTPm{aKjzayvMu0o(wpunNiF~Czfd*>0aVCbc{cQylxNHln?nh_?m!# zeNXbHTHdCob&5X1o~EH#V0XlLFdA!I?DE{|T7E}bbf9RCemWm_$e{P^bb0(k-}f=9 z28RW~ar+KiPYo1v@}{0AG{{doEvIQT0snTUx|W44)2aG86r3EZ>QA}cET6=Tow~B; z9-(ytGs^#`e~S>n9fH7&DJb;+Yp)5&JR`8emW}$I$P{s!FWByr-@N-=SPI|n5A>nN zz=h_?;k6?hGa}F-*p2b8J^Gpo#2Ze1i>0v^#pRM$*YME0@-DBlC{m#b)lEdyDquk3 zgQ?LZ9=^oQxRciu zj9h|=oYzZVBfa>+fS&rgDN)X{$XO15HgNZtrkl^;(bjPsXSPU@PMk1$Wg^^2yT>cz8=69=<=|D!tYsNt96`Jgz`-o(mNtFYC;!v$zOg~dBc2tI( zeKaK%``_9D)2C~0Deow+hhr-^V@cM4%}2k*DVpBMI;9A)yF zMf$$M$(}R(gfjIE*ZVlj+H^!g6|g0Oh_80@O`=NkZRxLf2MfNX1jwYN58vCYqxtf^ zyBHjMejF?xlj|)Qur$!zIqw`EE}qX-%sd-DMqd&IjtI=crx+HlFrOx;hwXjOocx+m ztQR-CeX5K~fc0{?Ro^A?*0~{}h#2F}5-Bqdq4h)d%bl#4?4v)PSotLKjxZ|7FZicL zWb?lB8?qs|KaR{(W37heWn4t5&LLf+BXY3cxAmyc7~AL3p6KPfb=??=oI(-Xf11m2 zInGO9zdyC!SG1Tmt#Ue*9{uc2t-D|c+^~Q=`xq7glIA!XtC@3M_d@|-uLkH9^n#_kd8`jeB28we%{O<4lyK$4z zRmYXGq}}0FQPDcoZryaXzfm9PsEXx#_dac{=G>a=AN09bdaDsHS~bAtoEzRA`D}^? z>}lJfI1Gm&z8-Wp_w=c23wNJud4*s|2Csh%UjqKTnzyE+uMmFz)7VxUbQJ*pxrdlX zLuS^Q`%us(Yej??a6rZ=xmEvItcz z?X*5DX4`kZ-AD2H48y)XqzPvRXwXC`qGU%V6%xWcRdb_wCCG8NadEdL6fXD9Ct9Y- z*U#fzyzHp_Ep7g`v*`Rx`nhD{`rFOZjw&gi&p`+4TjoVxpqRlU7Zy+_Sjd$d&-+Us zD17fRp8aY|b)R05savW)vFyHA4Iz8HwS(o;n6hkkfaU<@157zP%(H(ub_1ojma15c zc}fDO*vbHjJ?p2lH8m-M>YcNBp&D}1tDCsgr^YKB!{5ji_c+)R;;wYtpM=rU@(17d zdNxj2ALNLq@nJ{Xe%U^4{ub@_r*gu@0mk-m`k7Dl+cm!(S8-7DHxKMkkG_gPi5PnEQFfYgK+96vR%VnN)jX!|nSm6*2!sn}kQzqBiXaD~` zqlf_ix)C7q@`9~2dq9#lHUhsx{_B9eMkkMKxyVE0)2J zlKR$`h#)-W*aU*@Zb;j?wl5 zl&Mox{Ikz7U4O=(hKGOkCGj;SwhL(pnQ~AXsAioO!-@;dR*H9Kmwj4DZMv(N z`jQ0vXjiu09RY2o1igE-O-d0++xEYVlP$y4K5ciUVWC7ul5zG1T)HH3L}(bUk^jZf zNRvu&xklx)W*lKEAtZm>M0kwcQQ6IY_@xj~-ymt%t-PHn=NtQ&lG+jdv$%$d^W%pD z*N)XzRd#F%M+?jt8 zX9s)E6V5L&7DqlgICKc=Tm12l4M|k^YA!a9@JNYOmkRrN^Um~_+U$+ddSunepHWBF zlaE(lIv7Z9KDr(ZS;|G+-q@k;q!0R2;i*3EO2OZ`g%M`4@(SZ8fp7K=U!_gomYUCA zkz3v45uBfl`t73WZ?Nbfc|&)Bi9?yjc%}L*4Y@ntKeD~tzP=ISYHez4p$y?ZkN&wR znQWbUeeDgy%zhqyEmeVRDPeYSyW)S+Nb=KBw~7Wcq}2ehDhD%G9v(~3?bRk9XMjq{1#hVoUnOL@gmDPRRp|1CV)aln3CBq~`R|ec zf=y{1DJmE{ob#d>z1ae9SF^2^?^)vp!=dSRF({Oxu-LREpN!bH2~-P>)HyUF z#!lqd?A)=Y-{wgTx$29%hjS9pCZyr-xY*bz;_WJOM+jH>zsn2OR1SGW+n6&&iY1ne zpT}5Tpe#_)$+~8UbE~y%enBj`I`hkL7KUHV>A{#5WRFWoExQr7*lM6;0hLCNw(zx= zLM&1#-nqp<%(V#7vBTm{vRsg>s!grxLEc1L>Jsbx@jbK=+AN}q5`~93zlaL|X&ucO zQJ(*DaUTaO7=M=mb<8dp^#ekn9;wAwVP?aQ>=9XbWX2dJB`V}Br1FrD4>2LK;V>rR zbCeYF9j)0PcILG79dj87GP>caYk0z#Y$e906LX^!dNtoYZ(&y9?r}tWE#gH11)ZCp z;`^qxO?Jg}AODEwvEJh2*ubR;JSua2w+*6^ms#^bz&JW%n+})rHfiHR#O<;e+6$4! zXdvGiAKQleibj{xM-|Z3wugd8_5jn1sc*y%xFDN8$k3_m8|m1{-WS>_)N9X4PLm!jAMxv0`qnd}6tJYUQV8 zOh!n%T;hijou7d+>TBHbqDa~POltEHDRMZhk#lxunsN*AjwBGGjfo#AN(HdN?GWMX zqBOYn2383|CZs{*49I@yubzgHH;vw!j7A0H(tEfWfMsw9UE1c=YilTV_s#-vY^W>rsx~idNsb)L)ccO8qxaUukFA3 z#Ss)WmME^yPe_@+r6(LocB4xCep2ZO>Auk2OA8Fh5{dhI=oDq^|K8@?#mr(d-LCZ- zsWN7h=PmSUY37zSm_Y)!{cE7wAni+sP38x+c>jkA$sy+<96j92MkTy^m;@YW2)qX2 zFXFbJXmSBDyGVXyAy~(q4neiVF_^{+F9#RwjOqjmDpJzi_$3NLDC1GhRQXC8wFVLF zqxHWsFl;9Jd5w&723G9pBLVk!%}?8{RedWTyZPAC{;8%HNpsD%bVN8-a%{ou zSR`0FCitUO(k%DlyjA8G!}i#+Ri2fv#OGo-i>?9FO|@2ndudmzXkj5WJM!6*9Zd`C zr57eS+bC#3nUA+u? zt%w-XUkMl%U4$4ZgW8AII>o6cZC{M(G_`G0r{V(&SEf)gHS)#0|&9+YMWw*W{ynX zdQxYehJ_NhKb={AJiCD+hVomc3xBg6$@TF)JL8M|!+ph=BcIRM;1PVlypHBxF<4~# z`Rs4tHNS2zDX$!JiKljJddn|_ytB+_-?I&an9!c8S*d62UP-O83We6mgn@Nt;wi)S zbQ+zxP_{-GW+bNtI$iy0j%|vAks2oy-=(E+v7}`1v)zNZlYt-Y;KlN118YZ~-T<%p zYNK@G3@5R5{*NEi3+fAsq_3^x3{ypkls-4IhNCGKskhi9*9d1$&#ev#9pqq!St{1X z^K%m6XR*AgT6}t^GgC@jd@CPP_OSR`*szpE*)H4|Ce~dacUA`fF1!aq^o2ho|F?fU_y@ls%|-nw&7cl(I09xw4mPwFc{Dftl7{K7%h!r6{wlw{_b{)n-2jF<46taMmLDjchX}f2#YGczMXc(0nR@>3C&!|1=G!yU`h&TP;(%!IL^Z{oq_Bh(=F^Jples(MkUh|r_b1QOR#h+O(5gKu+%NAbWSUpU}Z z#1L>c*!K!zYv{N>>#^0D$k zv>rua)6T+TK<-<``uyi_2iM0vH)02iSoy-v)S2J3=Pq)fE*{ml@M&WB}Mr!&$*wq zJM1QA8KSqJ!UY36t+xo`!eB?h1VBT>Wuxu(x?rtTSs3>#2|0QaxBfu7+hni) zF=+)y-M`}jc)Q!IbrhYm2o@ipZvLdNI;6B>%B)hz%mizK! zEm%fcF*&+D6r#Z;CP&;DIU=y3m3KZZO?c%LO)!I`&wd`=WU zWlH&JADtCB#EAB*vR+pWb)h@!v#$*QG#thA??cZc(JZtkgxtZly>oxPico={+#{qx zPiX>vTyHEgXbE;Y-&}tyIiX@g{^Z&z@B9UgoYny0Rc~ha$8nV`)+-qhf0I|IkUCr?xM)BoA)H?C{aI;CC0<8ZT>tTD zGeNYCX06|111AiDVUvzq7q(_d-RT7feujK6fh3oR_bvlTt`p_0lZM={*)3BdM1?4G zl)r>N*RB4tZ{4v`9vau_?$&cVq>xWGC2{>ASkt-ApMKmuDB5}W%jTj;7e&jm4_k=_ z%F>|-J=!rtC?_hIWSG_4Wb!l+!GMZdpZ1A~IbSH#pAf63tg~F~z-|$|xmVco-I*WDVHzuOzlM|&>X!}F;7{6Tj^`Pg(4#8X^|OLQgaG`L z!~m0KBfuj|Y~ik2;x`h0UoZK|9vk$hQo<|Rf~dBZeRs4{AG9a9X!4AMRIt4j(eprk zCIdECo8o<%FJ-ZnKz6v)DbWwe0kq~l!;5;vBFeEG*M1_&`t+nTX+z= zwoKKev_=Rv@KWZC5y^8+PQoW!3eoMEUi>%zS?NQ7lONV_Ya`X#lGtay0sT+12AEE* z8I=h2d_7cdj5aZB7BnHuiumByUAry&=q2y-dE^|T$LIv#x~EtvVk!TH*a;Uy4)j!X z$^G8P&FTSUbq=)rU54w${KkegZB*aTBcaBD=Rx=jx-?hG9Fq>}!8H?GOJl5)t!MbZ zy|+z(Rwsl2Yz_V2IwuujC>sE&g|q<^nDB(ad@bY*H2rI;39QyZb^(q|@L{&addM9h z^A}uiTigKQ2PhgKUhq8sZi^B8Q-)skKo4BTOrT?;@*NA zz3PJq0=sRHDtO-iE%>cyhm3=`9UDpjBy~VW0T){^6*eSr8+o0OIbf<73?JJCsRObn zz-9a<-H;*#UIBmy87lR^Bs6;4ofrivJ!Iq3(mU0$nu_qJJCS z1G;KK^oj?}58NSCKxG;t3)l@n{D6TvFt--s|GQ({gOGfnw;t3T3_^CmKH=bQNeY40 z#T$kU!SnsEL>I%5dk}-A#|KWNKv#}Y$T~3f8}y#JEvFOb#- zivQ)JHwPI4QrkfhJi2Uv#XO`L2$@a+Ocr6tHD zpwtZ^sN-6Ou)qVzJ)rXc?m7~XxdJHw)_cG-htD7aK+Gy68bI#@hw!gKW`NZ`(2sH* zf&ve$^n*&V4M-)hGXNs^O~^7ZGYBH^h_V5cTVMqzhCp$C3$hKY3_}QiPHscsfuj*H zbXqHTPT}uBrU0xlaELj0Hw|Fgg_Hv8|HS_iCfEZLo*M_nqdmwVFf#$7;eALCurm3t zgo9viO9zmuf6vJN+rc>pLEKs0g&=>)hI!SLW7vIFDikR^a`2^7J@#10%?KsEug<$oKW07aZD zNFQLh0=gYtfip^R6+%#Ve+?mm2dLIS<$wF2c?$+aT?fVg&S%{_$SlCH0U@lDzK7t$ z1Alfv3pl+pfXQ7Dkv&3^fZ08;1-u3n$_G3=LK1+webDgZ36ciH9e}5<{$EHI5OoM5 zjAuwc@Z|_Z2hU)o$Pp2`2E?3$;rQ0T z^!?GH7(faHngNttfI4+3v>zC~gb>xSBS8`1f!Qn2g}etG=!^_a2DY!kF%&4!Y5@Bd zG-PmsXFF&>0$!j({Q!bH&{~2DZ3o!z!Sc|KK{)0oxX?i$<_R=pz=QRZe1;$asd&)r|FPYF=)5j_pG9uOx0(HRZ&7~uX#s33o`0aSF*DUfYILdCB`riZe^ z|D&OQ?Qy`_{s_O$C{V*k|t6@Ho>x&nw2ff;}Y7rX}0Kv9544rnBBNd(p? zofBFK6cU5h|L7-*3p^~zB%lb+<~cy`1&BaSy9BUEp#*h$yig=~fP@TGg41siU?vA6 znDIkz09}gzx$py-0$^E1D4|4vksw$taw>3$gb?)he~Y2O<97gH(}1y*MWAf(z|ueX zMHGq(53JIHA;1aoUy8`UyciS!F6f|ybs^$VGI)T80UTK^0i}iqWEsKe;PvSY&|m_U zAZug70|v~X`+xK+E(6X2dlt}>R2GT{4}`FSgQVr4eDHuOHx$1vR32(-0!Z_M+S_a> zju@cA4?^-~D5)JFD+ofBmq`6&0KYH@nJkf#DF8Q75Kh97>dAl);03BKGZo2|7MPR- zAwvriH5u?A4ML-Nq%Sl8n;ZzQ?vWPB03K;%3cy?d9vz2=o16dteYSvKyezWDfz20org4cPh9>wg7u0&!&mEy|e0F`Z_qZ@53nli)4-i zJPR-fN7^>;G6FxQPdoRLUj;Hx5@eGQ`K_>B$k>ZW*6Ph$8o^hr*W;0OwLG6T=~m?@ zA-Sox4)}pmvO%^vNj~_bEaE@E!fInx43pl_)u2Yk$?{LY(W=0`ud!Cn-a>r1dnp=X zPuDDmNNGxCCn;;?=S_B9%*H{a|zYjN?ze4?mYN*=DVJksSEygLomm+jIm=S z76wh)s&SMk`)kDSuSBK|L!1WicAED6n#6l@xxn^_i$_;s_4^edwr$%@*K!PDu5NYdRHPsOX1+X#LXre`Z;6X=1`GNpPgEoSYJ{G=& z)UExVIEtM+qzBH2fTWn?k^`y5V~Q2NIW{GQxv&Q37aSvA)(_k`VLAT^>4z^=_oRt2 z*He%1?92Ndr;Vfhs5?7uZAJC4s<(_lw)bx2qn2JaJmMu;#kH73R z9A<*1P9Q}x3jKs@FIjfNM?dzVwbib25!?J+Zt%i1jMhlGw!U#$*8R2sz)U^lH+(%I zTYnCmT1;KCm3GN%xEiK6K6}mN3C1pFc%yQm{9bYm@q)&A*{twmWx`LJg7U+g$brUf1aY`O4?cG4Z#1fP`*&Us90`Ygwx44 zhE({9em0$%QS;@(y}ZAf=EK)7yVu;6r`2|uoTi+lDB#kgy~PM8SHWiEQKE~l6YH68 zXKmVFqMFMUV}Hbh)koP1#a2*rY|@ilv_?hg;$!z%ZKpW9bgM|5rR?saRzEnq#|JeR*C{=h8;^Q?-fH6%+o zu>(_a3BS%l(^SI> z@$aRphq}0iY87Z$aZG>c+N-pvYF5>`?nWNe7B2Qai{##G-~`%ghr#6T)Q>&V)F5h~ z{gpK37*d6-VBWOewR?~EcppD4(GLZzyVm$!S~NIVirZ(Zt175?PyOW=GlLm!lL&ub zh`*cP@DYS%2CYwZtw1UUEO-|Ca2y%qT(>5zrygL2NMYeb`10Sa{^(L`X3aNxQk0|z zH$_#Z=fkO2PThdE)G3NK9Gxaj8 z4(kKOI~Q1Tw-r&ek@&l_|9~ImllZ;Y<;5=X7+02=bgRD~{1d`G^b-A_Vr*j^o0Ajk znqoZFEA53bH&%vJLpGG}N2|2lPl<@Pn~z!`7xFx=H&Bzq#9^|$ektOLN>MT7G$OJo z)kLRZboBp;*}}3e!P=doh@n;%C9ngvg(~OlnfifxOJ5zvZKWrB4oB8LW1W&hW2?W1 z9;Gfp?FJ}Gs)^<3FFbL6lpiEtmE0NAasIk?Cue%E0aTPpe8&zPGgjSXomrZ-Fim^E z^bro*K9av6yoL$0$TD3}Nw-_nF%EpQAroiO#>Ur(qIzd0rJ`_jPm`GES!38jR$)D4 zBZrMMpnf-8m723*1Mf>j+5e|P_q6*_R_}cCaz7lM56cNVk<^8UkoY)ES;s~BLGM>N zZbM0OH+@*R5j|wGl@9z>#X-VOlAgm1d-oZeQK{n0H<4R?x0rsut3`#p1Oy8MEh=dx z`^EAD`~)ATtL2+FlhrwnZz3uZfXlujZ}{l`XeFm(W+bO6c>x zFpf@COPaCD`;vH2sogbjWyk^=KRl<1Suatp&!E?R#~?_2FcE|Kj50aviyqkvE)7>{ zlAsS@j-ih^hBY8Al1~lfsmnM$(D)#}jN0R4A4*AsT^J_Iz@5w=iwivr;3L$GIioLo zXudsmMT*)X+0DyaLCDBny9=iNw*C?4OzVZlb@vj{kVKordh%_J<@oHrpt6c`obcp}tsrKxK#{C!8ip=_grsG^KVaX9mj%3d}dHeVThti#_`@taDf9>TgdzK8i#X zYDee}rpw{?j!>I$%fs(E= z1|u4xPvRvX?23Y|k~e>pQL9*j?E}r{{d3+bUI-ZL$fcdLDlaPmM+)-*ED~1k&wj9~I22UdcSjqn)a<296^6 zJ)7j&yIapj7fXKEXP?HZh;&cSJcXt23$WDB%Zv&urveXgo0!j*A2Jy`--Zdfq;U)R zom#Ls&O{2mUMXT6i=_IaQCQ^^c<24VgJdXol14YE6*bhYA1U!&+e#z>vp9baez6Scb-&%Kkxw~i{g6lT-+WmI`CzE_+2DYDFbp(n?f(i0NtstkQ2_qMm5n$uy+?aeTb#Cz32&XC5q`jy1XUO+_{f39M^Ff5qQYoBIaE#tG2 zaQsh7ypgT{skAzjGe8GCDHWLT*B<6|dQ!QLLcAqm_I8}a0Dp{k<2aZa_n5a9S%{$n zZSe-I%qQ?Mm2a8;@>fjm`SksW;6ftZ(!8PJim=1j1*s8_K`>pXLjI8d!{<|d6!*pV zD+gB>n1c0^whNM`*503~za`4CWmONl!BHSa> z%kBleu+UD)%<6wf%5j@|s_V1wo*u&gQ!qu?WrqUiScQafij%3*l)yN4=v=~ijJ1{T zON2xwHwL25+1sYA^C%d9dF!dYYA{Fd+flU~lkgp-QvEIxf>`Zz24&URWUUJnK@kWg zA79Rec)Z4fEEdTMpQYDBG~QNxD4A<`#t(QF!~Us7IZ~w^El<>Zc&2uWYd%TUAo4G~ zdD~IiVIQ5n1CBV)le_;g^>*5RQtYbas=?Z8m=vrV*R8B4DUyO^8tP#XTjbv^SSPDp zuwa&ur*K9s{SibamdR*=mmFLQtcZ%M@FJgiGwdxoH2WK~qs4#cE7u;Ot5})$Qt3!i zRq>VOcf@M)>1LnHi()41)=!n68V$K9$+xIK*1 zssv5M+=~A;`r5*KNz$IGPGced+D^3iDgUX~cSiC<>-*jH3rMBwZb1@?}4Kt6OUHUi^q2Y4|8RUS7Fu$4Q0=UTOA(W z5>h8g#Z}$E?O>{LZ!fb+&-m3oCwWa(uN+mr7Vo8Pu_WGYVljtZ65nIcQy?m|2=A2#) zNS%G@Qgy-`SnGY0KUc-Q&+1*b6mI_BTQ)3p;w>Ni`YP5yE@WgWXqa=o>xz$8?Y^q?}^Hm^lCR{VicZ(5A zOw$u>x&x8(W1KeM<2d36ON84_&vh`7>SrOHG-x-Sqh?YMe=j2xM>AnZA7=P|v|zN* zN2kKf?StZe+xDpZ38ZBCzBQ=c$k&|GFEjit$x7g%UU|@Y#D|URbU4>w6b8@1bx5f# zpRIs?L0tVsW1N>nZAleXFTNp>cutDwb#P%2%ENjuOv>kF$8{g`?;3jgu6H*$+8W8L z8YFf(xDL4PV;#@?K>TLdYE0HAJ{ct?UYRBs*uD&f*Bf^ZjWZ9N&9;>}eD-DtXiA?eVl5zw+qD=F%6d<#_EyMdp z*!6qREER3QmI<;=>a?Zv?KGJ|Yno*sj9eq3K48(+6V+32Bjw1J$&GiR@;y~fD9!#T z%{xp(d!M_-m%-nco>N{xhS5fk;vRws69|j`3)W&`>*OXRxb6neK?JL z{A=EgjZ?PwBTNHTS0eK7$B!d&S*|ee#XrMG)v<{gckY~y8F@CZOjnjrm4q_i(XL)@#^G!02Dm1DGPR?0&Ico9P`1P-~UZ01G zN@0|6%%d+8>fT+eC1F<^GUE(Lco6&==X>pX1E=SN!fR|$qbWn^((l^;Z60=Ev0yGF za~JMnx>yf0V$|2u-$p}5Kc>tIH<@rGOy1TE3z0Pykx@1?T|rJLE_mo@i+g#VJAAHU zkZtEdrD>e_wT4r7Pvu)#*RExsHdR5u>#TuU-w6V;KR|X~78(wo=+Fd% z8U?~^FJCI8&pJDNA*wAZqmB0iR~%u5A*&EQ>yzR`Uy}phg03lrRYf-#mFBcH#KJzi z4P!bfh@HDL0DY3NKyw?XNC>q7feStqLw_c)8M}ZrMss#~?VzhA5Uoa|p145MuAqp- z-T^nHC}e_Z;K4uK<3+f~*XW|a2|`_y>>Lp_eG7cunkCZ2e#6;i!_H(wFS6zaY-Y2a zVk{~Bq@MjdtCGxEbT7}>nj|Jt5gf%KMOsv7R}YuuTva&7h$^#RBcj-1PogU{zp@NO z1-4={8!%lb7Wv@KUOr36Jh!_)VO;5CT_TkThgwIZbpJB!+SipgIX^&t{^f%e2lpgo zC)VBsjAuh>fKnD@GHhWH-v9T`8;_9Szcw7OyyV4jdIg-&lLwZ4OhG;@FE}Hdb}|K^ zTkK5MIVQw9QQ}KWGwh?Dhx=tuS0EM!z68ac%@(oNm4VRsRH=h}m1E5}!plhe*X?u3 zZ=r7Z8>Z*%xhtyy9nk|#A4{Oz#y2r27N$x9%evmu!OI>{1V;1sJ#ODH{VfaUIo5ofx^e-jWd2~WQ~rHMvs6@Q~y@q!in>iQx4vuQ7Ti)@SvuK z;P)Ts=F$CLMF)e-O9L_>y6kM25yK9R^5Qxc(|==vUvCN|QC*&jp* zA7@jF5+km-YDl9+Y6kxCa$-lfQTPQjCwoihPlO1^7YF@m{_@v^3c0Fk8D^WH(vO-m z?b2f5eDqllIP$33lQ-Rf$AaE^he38j0~&t;F*1R1SZDd0gKh-e1ZhoT6N+AV1tt>| zWO)&#o^tmoRYPh-2ArvJKl)sP?-3BJ0tKSlN;?z8AgD?N&y+_Yo{ARvp{y`0D<`O$EhtS!|F2`<6d9}UGjT0(NNcI zj1|)Iw5YcMua1rD$cSoJqZlysp?+fB6;Ta!DOTNz|9)89gneud17!+)UE#+HfQEQ%U*yJp5VKe!3ohz-DebuJLK<|KkR3# zl3-ea0+(ON$9rIyt3thyYVR)4@~#}9rPZLvIS zy*%r@;;SK9S6zTjqg0tZG6CW!-|JzlCi%7bwyJz%EFVK+vQK5-iD174ou`m$1vNEl zmd4!pFW*+P7q+myeeYv&mI>|29NmMA2R@G%H;J}f^pq2$6ny(0^&x5LdMK@ilfl0Q&Z3QguE{qoFLjopj;&RLVt%x4m=1`N3? z>s*hxv+$bmPBN&^i%sVBx%aC9{MILG0PQ3LpGjOoGwlD4)V>}GWcg*zi_Z9JzRHRV z*W1lNWjS%K68O^W#gS*KI`W?7+?cmKZ|Z%&7l(qW>Ytj+wAtfgI!^{SgQ9-K(X`|7 z!X>GbrSPRp&ym{0Q89ihL4Nf7eW`@e2QHtPy0c7!*B>%F3Wwgh{C>uH6}zqdf-&zq z0Zgp0poo?c{5oBPwPCawG<9?kE$Ypf_louQI(OuqcAD}s?9OH8mfEA!R57qQ>i9?C ziR3=XKUc9rQsuA8)^iUM*Wg3!ES)QShbHN|!OdjX85Sp4-q97Foh!VD!xksF*YDEYyVeaHHaVun9)v+qrIw zS(HYSkNp)@ot(HIc@EPoY{E=v4;|)2I!Ca?6zAqEbVAd~KSou=Tl~Zj6FDTeVCsDJ z;(EVACpaC$d$__NES>gny26IhxVY2w!`$=#)7w`D#}V`jnwcqPwqs^yW@h%9nHksi zI%bBLne8}cwqs_FnISPVb8?&Sy}BRwuIm0>sY<0$Yb14Vty(=Z-Ga3U&dgBnhs4f+ z--1QY5c&c|g2wm1r$bJDPVS8UYZ!W<(PRSkC~EhW?&7>hecBZ~IRcv_z6gGp*_-uo zJ=XFFREo|j3BjL0&f@aw*sb5cbISz^;>bD2Ev=N}+>i}Xg3h%6{AOORpYEWcFYubA zcj0vIh!k|xREerGdT-a^0s48j^snZT>(_{D>=?ZBcF%IIU)>|Lco~dJ0aH)`c|zG>5%OPwJa2$CjIBtN zBCB`&pM89|aJu?PB?v(%SrxPmi5QULu0xqoMKOoNOslN}Ay7nIez`DOW-1MmuL1yl zOnZ!t*eY!~s_H~Lr6iWPnDH|DChja{+x~Xch}9^AzF{HTK-5Eg0XBsiJq}zdJW|E7 z87ujrpNKumOhlQwmmG#bWmpMseD@P+YwV`PmO*om3U!ZgmZp|5%=%}8&?;+nH^*W{ zp$SJPl-BgMPQXaX)H0`+uw|=>UEEKGN6fn}mmhvl52B(XfA1lQC)WSGb=CbPr=I<| zak&x&J|7S;2L63{83cB`zMOTT{|)$RlHU8{<53{(+c%HO*L5|0AS!Nc(S%c_En16D zaPsMQ4?cm}@2|`Lm=+_GV)Q-tFL$G}rui&VfEx@?(YRUT!z0yMsxxr(ZszA-Mg z)i9IzukOV&-mr2K1G~?vUgZN;n#oG8ln4cmE6~>e$vS8H3er0*Me5cud6o5ia`X1> z`2kgzCtzy;&suUe^7&$^Jg=De+FN}+{p44qo!otZj!>KF5GiS7&xPrC4(r?vQs zTm=H-b*I#(UMZ*xX32gy{(apl5czn10}A#2eSfDmD3RN^`g41w zT96NXxqsiQp)2#+%%Dx1>A7Ed`n#4>=Fg0v+F0YQO(~5J-F=(7o%??1oLB-~P_6Zf)Mm{x z3(I(^5lO#Je$HWXgtn>Q-+!^PN2R`P zz3R6i@T=)0@pCZn#Avv}Vin5*dlf&;!p-^c%0*fxSt!N`TN|>B2 zJXbX%A|WZO+b&>o*9oo##@!-|BMxQTTFZY7WM!a)5xP)A|IZ!Ip)?*323p14LWOH6 z;I_3+SjG?sjqf;5Yvo|XR7+TA4f`SF%6}Ywz`&_p>~%Fg_Cj{m6Ni3G`)nY z4j&BP2ET;P&t+Va^yZTTBl#SjHih+aXW8{~C{6hx(g;xnL_}v)VfHU=IAK41FPIi6 zQPZSbG)^tEeo9ig#7yALG4UHogcwT70w?hJ!zr6+((H&Fv#bn?!#H}PTP8T9t*Nkw zDVny3Ej>sqsoea@9H~_zapQ-$xrH4c5++slJNLU&qc0sZE)FTW&L{+nKRe^nDAP>33_bluWBe3c?_L7m_qvA>71S#~Aj^0PgB@JiLQ>JQtvN*S< z*cX$EL|3B$`$I<~SW$}Lg8^|%O~X0Lgsy5gN`+2&<8p$4LC0nKrtQ=S&RmMOiE(yDf_bVZh=csMvT4_?&=-Q46qXkzJdxf z`4r)tW}QeuSaR@CI^tRtOQ328mS=_)s!=6`PJ@p zBtqI&7D0{2NQ#6#QfY~ec|goU8xLr%CGR}1kn;7q8cS+CV_Y7&RDnXXBMImTtY|l`xhT zX$8f#G(Uq+$%o8UgjD8O*WZaP(>MxCm*fjI#{PkVT7u~qo`CpaS$=#fwIXM>Q|*F2-}{?0LBC9 zUen;WJ;(9)RZ!+9#7jd_g@D>mqzT5->Bt0I*(9<{fHYm=k9hZ?C)wvR2AJDeWDUMc z%dV?C0sK8CvPlDNV3hXn7d>_{YkmnMV~U!pII~4+Pdgdui0Z+bsF4N9f)xx@gT*}w zZP<$mEL8;7Er~^SvvE{KqW;RvO1e4-!l%aw5n6Jq6hM!$l$L<36}m}T(oU>#*1QLG zorZscwJzR$F6|tA$MlTi*aIVJIq@DtE%V`?&cf1L&&gvB(6A>G!kPPH6Dx>&zUj?y zcfsQo;)FObWb-X3@|E}`^sjWx35ms`-!(tHDG-U*KC%$Ye^}g^V$!lfaSfp z;?JgidD94?XyS?W-!_asp~S=_eqypcfW}a*jP+-ox@>rtHqO~ym-=8@sBf1pVzZJx zH9@3?#`eBpK(DMlg6ZKA?97svh=+IgsbG>0tEUU*E|XtBzMgv0gdoT^J8Mzdcy~W@ zRws)HnuHN7jg>x}>QE7_9U=Wm=)e4n2L*TlNnz*a;D3zxTeeu$k=7z@+f={721?nyOzAlHmb8O*a1imllkpAH}fY-_~TK`nbCg z8X(?h>VdtiQ=+}%A624jTRRY>Bc?_NgO9P3C`!GZtALlK{t+sT$HR-a`MSDfL+_oP z{VPBJiTrCJNh?!dz1lXbTcPwEWYm#Er%cw-l6EMSlj&{6T_M$jON7}H%}1WWhJs#T zmoD9-;=@~x5hClT$xFrK)R}K-yAvTE7W5|E_B}!Fx3(uvsi~1e#~Pqi zb0hPe1KzG)NI|r`@h=IfHtxy4p0gr!V>yp+^3PsA&_#oiLa5o`-KFl^G`gYAyy9_? z-`39{cTLtFqh~gd+cY-O`O{i5{yhHyu23y#CH}rPMs;Q7{dq!<wiCJ!FC;9XD*X+YjwNNOz`anfHSI zdi3H=4Gx@DA~trn%>IlCb6TcuQN^z@oS)Z#Q}RUaM8>+Veic(XP^O!0_Mij9mt{wf z-)~@CAE>#Ljr#TK+|blXBZ35Y1l}#$%j0HU{@4lnx=z$;|I*ou3eViad(NMHL8kca zVf?s#U}6%+Y1I{6@lDy#e4D^_Avtp*XQsY8_|(z4TYZkKjsqWTFvHakn@>REF2SYo ziFI52cwBsFv%Cp?FK?=ugw%!Zel%${Y5lkpYH|`yc;oa}OQeZoy%(_8@dBY|r?a)q zVbcSDkRbgxD^;vLj7CfCyhgy14zsg*+}>_hWfLd?Zi`=$0$q^FW zr5TD%McHe=zW58R>YJVTDog`spSIRuT`?`Dw8iG*01dSuX`>VT1s>YX3;YCo z--5a5MAt9Bx?=)O;ahw-vVZ(GM*i}6hwQChXSbvSZ8NLVtb0B6qErN>HghZ_oYTTxh} z0t&=|>Q{0oqr1fKuIj(L?}JSv9pvYWqD*o4-dMlaO_kY@$b)~mZD43 z%+-m#t?)TVK`DDnyd3yoa3-ygMOL&r9-HQ8NMBnoGV*-fF_2x==}bh=LDj_P^}au< zqFOqo3Ov7;n&>7nF92!KJ~c7T9o}1d85a*%GtNwPYn#L0y?tg$SP_dLmljOh6b*NK zgb4nflA#79gZ|)MWmBbn?8qMP*{$z8uFk%_l_Xq{%F6V>L%DM=s-1e8_g@*wd8#pL zt$*`T@ZS2DZ;6j&mYM38y zQp>1$$D1Ad>6X>d1oFkU{(uJUT{NO_Yw15#xKo#*(V)55xicoETzmmt;p%51UT3@IM{gE{<|@wSQI`fBeWEnn2;0vd|SrO-NTcdlb!Q_ukG2{ z+4xc$Q0Rer%87=&DBW+m$9iP;qRET!q2yxoo3GKW{J8vlL{x0`YsQN+MSp)#_B2I` zj3|U`!7_{3Tk|!R1`Xx?Oo{4>6I}~SDSeew)($GAnYI^Kz?3EmfTGYG}A| zygau^1AnQ?NvR@rYGDyP{>MmOt1)p&>VYs`s>>QUI+`CV4Xx3X&aAlqC0m-`jb)8e zK}ng1YJX_u>P?)`EtcmXS$P8CE^teh{R$hw#KVT!8&X_ zvd^TNOs}sRCJG+zqR?m)-;=U*>s45N+7Di;zZ(9iZoqk}8HxAkHP{qz@lD;}h`;G{ zrEJPJEgCxweo(XY>h*62)Vy)?#L*oEKj6;-iN2@88n%gVf&V#WW*aqY(uz}K=fzBB z-vd~_b9O}ybh4M3e40Uxx9Va6f1`VdH*6@**(N9PF}+#*ys@AGC^)ig*zcvkI zP51!UInMm<%i<`;+uI(Ye6i$_>QcrIHfot|>YW}1m}c!Vlj6UdocTjuai~kDG0i$& zB-avw{183XiVD`W^q#V+Xf->WHdW_#gWxgjv4>f5n6c=}?r^thIsPA)te>hRS(iRe zQD4O0Ydwbpc&e=JA0zz3}*;iU`*qYoN(6}nzfsMgz4uIqjY>zjc^-BRV(@? zt`BMiMttXG%Q1esd+jBRS=Iv8!(ES7HRNQVYmpmEM7XGz2jDjhXNFn&}5KM%y z+w`1;KwLyL-TplW#lMebSodnKt4L^u9r~oLruK^&Hh~^Oi4`9Q)0Lygrhi397XFM5 z9=QH}c5C_@l*?}uzs7~)QkQ%Q1tH4w$I_z)Ro`i)Z3JUzRnu#27`A-D1#dF zS8ZqD+Sl}kp^1A!J#;(Gp_Cl2NxaGYCFaq_Z)KlQCd6SYJITMME^MdSu~fVmI+ZIo zZF6b1IdEEJE0<>l*YLzLO**&t=`=WvJH1VHP%m*Q_F*+s*=lnsisN12uXAKu0qED| zn-#JT3ZX8D4Pcco*aG;F!^$P^3lCRv3sIba^wWg(#7^|tq(AT$i_%N1?3O`r%?Gyr z_VI;?wRld5)41f3tw_qO4m5gSmJ@W8Jh*LT&cqmt*PxaQYh@?r9AQ}uL=Cd7iEL$w z#1!YxA@Xc<=83Z%`URRXxpJ&O9m{Ma&~mMSNVy&)yPhg3=zu zj*=Tu-YJLP_0Ucz7ckR#fKTf%>rB&I0Q7Z==3iW&`%Jj@?cE{{Me4~egx1-!Q+Gq= zySdiYvo!&P%(33#hvKdX@qvayN}6s!80ESr3}xXy_U0wq&YVBbZe06TZrSDe&xl;+ z7V1C^)>oYDZ4flqLqwkVMp$`84euM%I`w*Rw*8_XR}Z{@RVHz^toS2RYyyG6V=*R8 zQM@-{d;l(%nHkar$~tMbl#T5G4{p`X=26lZTI{@B=ddx?c#JC|p=znL5YjlXk}b9s z$_ZY%k=-a}IV_@=B8yn3FqtoQ!#3r7kE7X{%bbdOZP31%qM1FLI-s4{2`9cCN&c}O z%?W;;PB}%`QH+WLFM2%550T5?i!PaQdTpYOe}h`bqI{-mWU=`w?`Zqn?< z^)Ql9Z1?korjp*mwqj1euDWPr&bN>C^uU2FbI`^e%|H;Sj9O}JOJnPQ#)a@ycoSmk zX=e{{CB5)_aYF?z{B8bpZh4M6U;x^dFx8$Q>yt`}of6LiwZovKt;5`+bBeG~SSzFx zE_fV-B3coZCBImrCzjlZnM{FuJ&0{f2qd(o4)8^C5;eg7Cj%NOI4q8!8z;?|&XIH| zly8g#(ynp(_2?3A-@Th=TatDBES5}dLQ@WjAL(5;XI6$Uox7)R$+af5oa4fDu*C~C z=R!@g&!zz&uIn^2WS5c0wjw(bOmo!ZC>Lm?b4`lFW}6iL8Fd)tXfCl8kU}?zFNZ9? zg7=p=RN{2w%qBHqEk}z74oL^KRl=j%z7qKZ?c@74_lxC&5KaTek&+}AhL$G{5aU{; zVYwA{>~uiZTpzNFhCiXAP}>lgC7W>D3zfe`wCOu~g|z@kj-j>y!pD$AVywr|9{>oH zuy_Ch3P>5ii4SSmN4JVJ(#N+7*9sy5d|pL;jMaV-6mCHjJM9D?J89|jpyU%O%;g2F zA@K}>1`rZ+xdg=@w#++2F^bKQKP({MtArA;(d$e~zB+V!w)+!ip5NlTwLzMX9b9dZ zz=xOAWDIMr9k?A=-!$!_@UiGT#rw};@8aybOgTYOcR76DBwe8JFh|`kHni#YV`E*$ zd0e&NaTP-<6^FwKHCKcB8lsT|YXtz()4}5wVlhE$7ZNUp92DX$hWgJz5Q<~#LAnEI z^kBgwFbB09qO%*uGlwQ1_E`^kIh17%bs0oj4|yLZGKUV=N4|;>(Z{w5!vn&shm8xX z1)#)%oWxun(dx0!p}P7>*&rXof&ikKFz|ginQ-v^6t4Khkh1;kY|sfHeV{8;E=)zA zoh#f_Xwxn+ANpYy*Z<+-e|dPkSc1g1r&kH7#EEAQnHu}Wzc09)7M)Ac4%Kvj2~x=-$k@vMYNw;v>#FQgSO-jl|jgh<`e1e5`ziyGDxH^9+j(o zVyF|ixWGws3T1-2xrMUV!gKh+C4yw#Pn>!5FbFAKh@urnsD`c+vQ&ue2{K_r;0aZ) zM?HrM=!bOu+J;Az7Ur%7YY%xP@d3a+3>l5vhWmLKxjTC5X> z#@zTpy2tj?1H7YQ%QkvAtbO?Wm+4kTPl3)vt9vD1bUn#VaPS?WAYZYK+W4C5fqdkk$%X{Q_c4IUi)p2TV-pvBH~KPbz{mfS#M zXGVi!jQWNl%XO`wY062F5>Q*1TcLJMp4gd2SEx>wcN7=b8Gu>kvJ#dAO?TkiI`;ggy?}&)xrYfwdKut*nI5HN``b4>MpnvKDqI)wdb0*2D>xO6 z0$-?js0MNGcg>n?QQzID#oyd0`1&t0A4(p$c&h0RWRP(xtg06$bASa~_sHOZQ zTqGIwDG}pZpo7P`YX#Q7Um%&6^_Xv9;0&y11swqr-1aKP0#qLb+osqBqd)%7XL~=G6B>I3k5cpRFpT1wrqY2y8irLe< z8T{@9&ZF)3EkrL+8@6AO;C9?xwdgv;jZT-IL0X%jheh_y_6-7Vpd?kGm{G8xFyCZg zpthw?Jyq8s@yBHOjRQR#HD)+jtPuqbj7ODy7OO zeS(z)oBseSU`1bq8R;H7>8Qz+pSo%@2gae)aAlZ0z$iOJb}hw z`+vE0 zO7k)nev91H$(r~h>N;U8B+52%MA{_hrwJA%h+?iaPK*k=F}T=*YR!fg8dT4Roee$ezv@@?w`6v? zg8F4{YEb&-3@NFw_&|C2Ph!VzP?O>B5>BDxaVuFgb%{IO~N#k8xL6_EMb1YxbfuXs+B>0{$Q zmG6#|;$hcN@I!{1RGOf z`R5Rfzs7!4!Ch3sJ^*NJao(EzE^MLrXS5jaYsA6f&k2yeTCh20Q> zIb+S(nFJ7%aR$F-4t(&xxPa^l=`eN1aDD+U!(-AjQz6uA%DK&b4*$Tp>mYfbF>nobBW7KnRxW#95U`_H0=VRmovI9flXUj(Y>0lXiUdY37-H8mxP&i#XAX^$vKJ8p&+mOYF-r4};DQ7eMlv4& z9J2@{?Yi3-w)0O!qd>b|M8AcR3??JTzYQ3+3pR_cnTrE!g`voFhluqTX zIDrc7*8iZrV07pG8{gSZd)GfrW7sG!er%s-Mp*4x-7p0EuxyT4m_wuZ3c8frqN4a{ zW~AzPqCxnxzs%jxlqyHs1T(N>8U%qeF&@Vn7rT%cx}ivJm3P_9`{cB9!3jk)*9N1of|b3ItAWu%6rq~f-27~EK9>?6TrT#d{#QoC>Ts(V3hYn~!} ziD9!Rzr@B5zLmwT+iVFT9lzoi>VEfGffkjPxl#iBP{%3KQdE5Ak$Bt*p%?2Uf z`NmIv={j43D+`Ji|FYc#n3I-G8!K**E9j!Z4E;5vtWYYK6(}J{C$DVX&!NULv%`4O{1H}h1WrYw4YGwkeM#`h#zLrC^Oy8^*r zlFFioY%t`vt3dJ-Ze1K+4_zr=^i}2J0xGCbHh1)?Y9s^j#AS#BoTYsm_S-*OXNRaP zQ$~xvTa>Iug;sD#J*2$h?bkC)u|eJtUUv1 z{}r}YKbwz^$}tv*gp|Cf%zCVYSXittCtrP2X>Zr}6CtAnhwXM9n$ za{Hv0dRO1TR@cB%7SB;u32#+nGQjQ^&e2v?O=?l`APoV-asxWNUu z9BWjbUb9~UeeUcT+&(NdSX)3+`NTle0A9J*WwWi*^n0obuNqa360+sm;PKpcsWv!j z59t4^B6FVY*#x1n;;3$nG|}+9G0ndz63-uKMYQGf2l%faP~{@!QJt~H=B8ZMzfz_2ToVb-L@YNoC{pa>Wk z6yitr6z7?}8Pe0?up&Lo;njCUtPh3OAV=jWM8E-I)x)HPG0{OQit|@Oq=VBzsHH+U zCis>@v_%ly971*GawE~u JNUO>q{Vy^ho238% diff --git a/haskell/sbp.cabal b/haskell/sbp.cabal index c4fe998f0a..1c5282008d 100644 --- a/haskell/sbp.cabal +++ b/haskell/sbp.cabal @@ -43,6 +43,7 @@ library , SwiftNav.SBP.Piksi , SwiftNav.SBP.Sbas , SwiftNav.SBP.Settings + , SwiftNav.SBP.Signing , SwiftNav.SBP.SolutionMeta , SwiftNav.SBP.Ssr , SwiftNav.SBP.System diff --git a/haskell/src/SwiftNav/SBP.hs b/haskell/src/SwiftNav/SBP.hs index 818833b7ef..48046c642e 100644 --- a/haskell/src/SwiftNav/SBP.hs +++ b/haskell/src/SwiftNav/SBP.hs @@ -32,6 +32,7 @@ import SwiftNav.SBP.Orientation as Exports import SwiftNav.SBP.Piksi as Exports import SwiftNav.SBP.Sbas as Exports import SwiftNav.SBP.Settings as Exports +import SwiftNav.SBP.Signing as Exports import SwiftNav.SBP.SolutionMeta as Exports import SwiftNav.SBP.Ssr as Exports import SwiftNav.SBP.System as Exports diff --git a/haskell/src/SwiftNav/SBP/Msg.hs b/haskell/src/SwiftNav/SBP/Msg.hs index 487619c93b..52ebfc3723 100644 --- a/haskell/src/SwiftNav/SBP/Msg.hs +++ b/haskell/src/SwiftNav/SBP/Msg.hs @@ -42,6 +42,7 @@ import SwiftNav.SBP.Orientation import SwiftNav.SBP.Piksi import SwiftNav.SBP.Sbas import SwiftNav.SBP.Settings +import SwiftNav.SBP.Signing import SwiftNav.SBP.SolutionMeta import SwiftNav.SBP.Ssr import SwiftNav.SBP.System @@ -93,6 +94,8 @@ data SBPMsg = | SBPMsgDgnssStatus MsgDgnssStatus Msg | SBPMsgDops MsgDops Msg | SBPMsgDopsDepA MsgDopsDepA Msg + | SBPMsgEd25519Certificate MsgEd25519Certificate Msg + | SBPMsgEd25519Signature MsgEd25519Signature Msg | SBPMsgEphemerisBds MsgEphemerisBds Msg | SBPMsgEphemerisDepA MsgEphemerisDepA Msg | SBPMsgEphemerisDepB MsgEphemerisDepB Msg @@ -325,6 +328,8 @@ instance Binary SBPMsg where | _msgSBPType == msgDgnssStatus = SBPMsgDgnssStatus (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgDops = SBPMsgDops (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgDopsDepA = SBPMsgDopsDepA (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgEd25519Certificate = SBPMsgEd25519Certificate (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgEd25519Signature = SBPMsgEd25519Signature (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgEphemerisBds = SBPMsgEphemerisBds (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgEphemerisDepA = SBPMsgEphemerisDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgEphemerisDepB = SBPMsgEphemerisDepB (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -549,6 +554,8 @@ instance Binary SBPMsg where encoder (SBPMsgDgnssStatus _ m) = put m encoder (SBPMsgDops _ m) = put m encoder (SBPMsgDopsDepA _ m) = put m + encoder (SBPMsgEd25519Certificate _ m) = put m + encoder (SBPMsgEd25519Signature _ m) = put m encoder (SBPMsgEphemerisBds _ m) = put m encoder (SBPMsgEphemerisDepA _ m) = put m encoder (SBPMsgEphemerisDepB _ m) = put m @@ -777,6 +784,8 @@ instance FromJSON SBPMsg where | msgType == msgDgnssStatus = SBPMsgDgnssStatus <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgDops = SBPMsgDops <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgDopsDepA = SBPMsgDopsDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgEd25519Certificate = SBPMsgEd25519Certificate <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgEd25519Signature = SBPMsgEd25519Signature <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgEphemerisBds = SBPMsgEphemerisBds <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgEphemerisDepA = SBPMsgEphemerisDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgEphemerisDepB = SBPMsgEphemerisDepB <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -1006,6 +1015,8 @@ instance ToJSON SBPMsg where toJSON (SBPMsgDgnssStatus n m) = toJSON n <<>> toJSON m toJSON (SBPMsgDops n m) = toJSON n <<>> toJSON m toJSON (SBPMsgDopsDepA n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgEd25519Certificate n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgEd25519Signature n m) = toJSON n <<>> toJSON m toJSON (SBPMsgEphemerisBds n m) = toJSON n <<>> toJSON m toJSON (SBPMsgEphemerisDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgEphemerisDepB n m) = toJSON n <<>> toJSON m @@ -1229,6 +1240,8 @@ instance HasMsg SBPMsg where msg f (SBPMsgDgnssStatus n m) = SBPMsgDgnssStatus n <$> f m msg f (SBPMsgDops n m) = SBPMsgDops n <$> f m msg f (SBPMsgDopsDepA n m) = SBPMsgDopsDepA n <$> f m + msg f (SBPMsgEd25519Certificate n m) = SBPMsgEd25519Certificate n <$> f m + msg f (SBPMsgEd25519Signature n m) = SBPMsgEd25519Signature n <$> f m msg f (SBPMsgEphemerisBds n m) = SBPMsgEphemerisBds n <$> f m msg f (SBPMsgEphemerisDepA n m) = SBPMsgEphemerisDepA n <$> f m msg f (SBPMsgEphemerisDepB n m) = SBPMsgEphemerisDepB n <$> f m diff --git a/haskell/src/SwiftNav/SBP/Signing.hs b/haskell/src/SwiftNav/SBP/Signing.hs new file mode 100644 index 0000000000..475162907e --- /dev/null +++ b/haskell/src/SwiftNav/SBP/Signing.hs @@ -0,0 +1,75 @@ +{-# OPTIONS_GHC -fno-warn-unused-imports #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE RecordWildCards #-} + +-- | +-- Module: SwiftNav.SBP.Signing +-- Copyright: Copyright (C) 2015-2021 Swift Navigation, Inc. +-- License: MIT +-- Contact: https://support.swiftnav.com +-- Stability: experimental +-- Portability: portable +-- +-- \< Messages relating to signatures \> + +module SwiftNav.SBP.Signing + ( module SwiftNav.SBP.Signing + ) where + +import BasicPrelude +import Control.Lens +import Control.Monad.Loops +import Data.Binary +import Data.Binary.Get +import Data.Binary.IEEE754 +import Data.Binary.Put +import Data.ByteString.Lazy hiding (ByteString) +import Data.Int +import Data.Word +import SwiftNav.SBP.TH +import SwiftNav.SBP.Types +import SwiftNav.SBP.Gnss + +{-# ANN module ("HLint: ignore Use camelCase"::String) #-} +{-# ANN module ("HLint: ignore Redundant do"::String) #-} +{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-} + + +msgEd25519Signature :: Word16 +msgEd25519Signature = 0x0C01 + +data MsgEd25519Signature = MsgEd25519Signature + { _msgEd25519Signature_stub :: ![Word8] + } deriving ( Show, Read, Eq ) + +instance Binary MsgEd25519Signature where + get = do + _msgEd25519Signature_stub <- whileM (not <$> isEmpty) getWord8 + pure MsgEd25519Signature {..} + + put MsgEd25519Signature {..} = do + mapM_ putWord8 _msgEd25519Signature_stub + +$(makeSBP 'msgEd25519Signature ''MsgEd25519Signature) +$(makeJSON "_msgEd25519Signature_" ''MsgEd25519Signature) +$(makeLenses ''MsgEd25519Signature) + +msgEd25519Certificate :: Word16 +msgEd25519Certificate = 0x0C02 + +data MsgEd25519Certificate = MsgEd25519Certificate + { _msgEd25519Certificate_stub :: ![Word8] + } deriving ( Show, Read, Eq ) + +instance Binary MsgEd25519Certificate where + get = do + _msgEd25519Certificate_stub <- whileM (not <$> isEmpty) getWord8 + pure MsgEd25519Certificate {..} + + put MsgEd25519Certificate {..} = do + mapM_ putWord8 _msgEd25519Certificate_stub + +$(makeSBP 'msgEd25519Certificate ''MsgEd25519Certificate) +$(makeJSON "_msgEd25519Certificate_" ''MsgEd25519Certificate) +$(makeLenses ''MsgEd25519Certificate) diff --git a/java/src/com/swiftnav/sbp/client/MessageTable.java b/java/src/com/swiftnav/sbp/client/MessageTable.java index e07f88149b..a4e2943d45 100644 --- a/java/src/com/swiftnav/sbp/client/MessageTable.java +++ b/java/src/com/swiftnav/sbp/client/MessageTable.java @@ -187,6 +187,8 @@ import com.swiftnav.sbp.settings.MsgSettingsSave; import com.swiftnav.sbp.settings.MsgSettingsWrite; import com.swiftnav.sbp.settings.MsgSettingsWriteResp; +import com.swiftnav.sbp.signing.MsgEd25519Certificate; +import com.swiftnav.sbp.signing.MsgEd25519Signature; import com.swiftnav.sbp.solution_meta.MsgSolnMeta; import com.swiftnav.sbp.solution_meta.MsgSolnMetaDepA; import com.swiftnav.sbp.ssr.MsgSsrCodeBiases; @@ -584,6 +586,10 @@ static SBPMessage dispatch(SBPMessage msg) throws SBPBinaryException { return new MsgSettingsRegister(msg); case MsgSettingsRegisterResp.TYPE: return new MsgSettingsRegisterResp(msg); + case MsgEd25519Signature.TYPE: + return new MsgEd25519Signature(msg); + case MsgEd25519Certificate.TYPE: + return new MsgEd25519Certificate(msg); case MsgSolnMetaDepA.TYPE: return new MsgSolnMetaDepA(msg); case MsgSolnMeta.TYPE: diff --git a/java/src/com/swiftnav/sbp/signing/MsgEd25519Certificate.java b/java/src/com/swiftnav/sbp/signing/MsgEd25519Certificate.java new file mode 100644 index 0000000000..d9e91bd813 --- /dev/null +++ b/java/src/com/swiftnav/sbp/signing/MsgEd25519Certificate.java @@ -0,0 +1,58 @@ +/* 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 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 com.swiftnav.sbp.gnss.*; +import org.json.JSONArray; +import org.json.JSONObject; + +public class MsgEd25519Certificate extends SBPMessage { + public static final int TYPE = 0x0C02; + + public int[] stub; + + public MsgEd25519Certificate(int sender) { + super(sender, TYPE); + } + + public MsgEd25519Certificate() { + super(TYPE); + } + + public MsgEd25519Certificate(SBPMessage msg) throws SBPBinaryException { + super(msg); + assert msg.type == TYPE; + } + + @Override + protected void parse(Parser parser) throws SBPBinaryException { + /* Parse fields from binary */ + stub = parser.getArrayofU8(); + } + + @Override + protected void build(Builder builder) { + builder.putArrayofU8(stub); + } + + @Override + public JSONObject toJSON() { + JSONObject obj = super.toJSON(); + obj.put("stub", new JSONArray(stub)); + return obj; + } +} diff --git a/java/src/com/swiftnav/sbp/signing/MsgEd25519Signature.java b/java/src/com/swiftnav/sbp/signing/MsgEd25519Signature.java new file mode 100644 index 0000000000..481f3efba8 --- /dev/null +++ b/java/src/com/swiftnav/sbp/signing/MsgEd25519Signature.java @@ -0,0 +1,58 @@ +/* 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 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 com.swiftnav.sbp.gnss.*; +import org.json.JSONArray; +import org.json.JSONObject; + +public class MsgEd25519Signature extends SBPMessage { + public static final int TYPE = 0x0C01; + + public int[] stub; + + public MsgEd25519Signature(int sender) { + super(sender, TYPE); + } + + public MsgEd25519Signature() { + super(TYPE); + } + + public MsgEd25519Signature(SBPMessage msg) throws SBPBinaryException { + super(msg); + assert msg.type == TYPE; + } + + @Override + protected void parse(Parser parser) throws SBPBinaryException { + /* Parse fields from binary */ + stub = parser.getArrayofU8(); + } + + @Override + protected void build(Builder builder) { + builder.putArrayofU8(stub); + } + + @Override + public JSONObject toJSON() { + JSONObject obj = super.toJSON(); + obj.put("stub", new JSONArray(stub)); + return obj; + } +} diff --git a/javascript/sbp/msg.js b/javascript/sbp/msg.js index ed680ec013..6bc37b08f7 100644 --- a/javascript/sbp/msg.js +++ b/javascript/sbp/msg.js @@ -106,6 +106,7 @@ var sbpImports = { piksi: require('./piksi.js'), sbas: require('./sbas.js'), settings: require('./settings.js'), + signings: require('./signing.js'), solution_meta: require('./solution_meta.js'), ssr: require('./ssr.js'), system: require('./system.js'), diff --git a/javascript/sbp/signing.js b/javascript/sbp/signing.js new file mode 100644 index 0000000000..bf55edcd2d --- /dev/null +++ b/javascript/sbp/signing.js @@ -0,0 +1,90 @@ +/** + * 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 spec/yaml/swiftnav/sbp/signing.yaml with generate.py. + * Don't edit this by hand! + ********************** + * Package description: + * + * Messages relating to signatures +***********************/ + +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; + +/** + * SBP class for message MSG_ED25519_SIGNATURE (0x0C01). + * + + * Fields in the SBP payload (`sbp.payload`): + * @field stub array + * + * @param sbp An SBP object with a payload to be decoded. + */ +let MsgEd25519Signature = function (sbp, fields) { + SBP.call(this, sbp); + this.messageType = "MSG_ED25519_SIGNATURE"; + this.fields = (fields || this.parser.parse(sbp.payload)); + + return this; +}; +MsgEd25519Signature.prototype = Object.create(SBP.prototype); +MsgEd25519Signature.prototype.messageType = "MSG_ED25519_SIGNATURE"; +MsgEd25519Signature.prototype.msg_type = 0x0C01; +MsgEd25519Signature.prototype.constructor = MsgEd25519Signature; +MsgEd25519Signature.prototype.parser = new Parser() + .endianess('little') + .array('stub', { type: 'uint8', readUntil: 'eof' }); +MsgEd25519Signature.prototype.fieldSpec = []; +MsgEd25519Signature.prototype.fieldSpec.push(['stub', 'array', 'writeUInt8', function () { return 1; }, null]); + +/** + * SBP class for message MSG_ED25519_CERTIFICATE (0x0C02). + * + + * Fields in the SBP payload (`sbp.payload`): + * @field stub array + * + * @param sbp An SBP object with a payload to be decoded. + */ +let MsgEd25519Certificate = function (sbp, fields) { + SBP.call(this, sbp); + this.messageType = "MSG_ED25519_CERTIFICATE"; + this.fields = (fields || this.parser.parse(sbp.payload)); + + return this; +}; +MsgEd25519Certificate.prototype = Object.create(SBP.prototype); +MsgEd25519Certificate.prototype.messageType = "MSG_ED25519_CERTIFICATE"; +MsgEd25519Certificate.prototype.msg_type = 0x0C02; +MsgEd25519Certificate.prototype.constructor = MsgEd25519Certificate; +MsgEd25519Certificate.prototype.parser = new Parser() + .endianess('little') + .array('stub', { type: 'uint8', readUntil: 'eof' }); +MsgEd25519Certificate.prototype.fieldSpec = []; +MsgEd25519Certificate.prototype.fieldSpec.push(['stub', 'array', 'writeUInt8', function () { return 1; }, null]); + +module.exports = { + 0x0C01: MsgEd25519Signature, + MsgEd25519Signature: MsgEd25519Signature, + 0x0C02: MsgEd25519Certificate, + MsgEd25519Certificate: MsgEd25519Certificate, +} \ No newline at end of file diff --git a/jsonschema/MsgEd25519Certificate.json b/jsonschema/MsgEd25519Certificate.json new file mode 100644 index 0000000000..e3348df3b7 --- /dev/null +++ b/jsonschema/MsgEd25519Certificate.json @@ -0,0 +1,24 @@ +{ + "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 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": "#MsgEd25519Certificate", + "title":"MsgEd25519Certificate", + "description":"", + "type": "object", + "properties": { + "stub": {"type": "array", "items": {"type": "integer"}} + }, + "required": [ + "stub" + ] +} \ No newline at end of file diff --git a/jsonschema/MsgEd25519Signature.json b/jsonschema/MsgEd25519Signature.json new file mode 100644 index 0000000000..36dcdf0004 --- /dev/null +++ b/jsonschema/MsgEd25519Signature.json @@ -0,0 +1,24 @@ +{ + "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 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": "#MsgEd25519Signature", + "title":"MsgEd25519Signature", + "description":"", + "type": "object", + "properties": { + "stub": {"type": "array", "items": {"type": "integer"}} + }, + "required": [ + "stub" + ] +} \ No newline at end of file diff --git a/proto/signing.proto b/proto/signing.proto new file mode 100644 index 0000000000..9d105bfc78 --- /dev/null +++ b/proto/signing.proto @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be 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. + */ + +syntax = "proto3"; + +/** Signing + * + * Messages relating to signatures + */ + +package swiftnav.sbp.signing; + +import "gnss.proto"; + +/** ED25519 signature for groups of RTCM messages + * +None + */ +message MsgEd25519Signature { + repeated uint32 stub = 1; +} + +/** ED25519 certificate, split over multiple messages + * +None + */ +message MsgEd25519Certificate { + repeated uint32 stub = 1; +} \ No newline at end of file diff --git a/python/sbp/signing.py b/python/sbp/signing.py new file mode 100644 index 0000000000..e5a7e05624 --- /dev/null +++ b/python/sbp/signing.py @@ -0,0 +1,206 @@ +#!/usr/bin/env python +# 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 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. + + +""" +Messages relating to signatures +""" + +import json + +import construct + +from sbp.msg import SBP, SENDER_ID +from sbp.utils import fmt_repr, exclude_fields, walk_json_dict, containerize + +# Automatically generated from piksi/yaml/swiftnav/sbp/signing.yaml with generate.py. +# Please do not hand edit! + + +SBP_MSG_ED25519_SIGNATURE = 0x0C01 +class MsgEd25519Signature(SBP): + """SBP class for message MSG_ED25519_SIGNATURE (0x0C01). + + You can have MSG_ED25519_SIGNATURE inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + + Parameters + ---------- + sbp : SBP + SBP parent object to inherit from. + stub : array + sender : int + Optional sender ID, defaults to SENDER_ID (see sbp/msg.py). + + """ + _parser = construct.Struct( + 'stub' / construct.GreedyRange(construct.Int8ul),) + __slots__ = [ + 'stub', + ] + + def __init__(self, sbp=None, **kwargs): + if sbp: + super( MsgEd25519Signature, + self).__init__(sbp.msg_type, sbp.sender, sbp.length, + sbp.payload, sbp.crc) + self.from_binary(sbp.payload) + else: + super( MsgEd25519Signature, self).__init__() + self.msg_type = SBP_MSG_ED25519_SIGNATURE + self.sender = kwargs.pop('sender', SENDER_ID) + self.stub = kwargs.pop('stub') + + 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 MsgEd25519Signature.from_json_dict(d) + + @staticmethod + def from_json_dict(d): + sbp = SBP.from_json_dict(d) + return MsgEd25519Signature(sbp, **d) + + + def from_binary(self, d): + """Given a binary payload d, update the appropriate payload fields of + the message. + + """ + p = MsgEd25519Signature._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 = MsgEd25519Signature._parser.build(c) + return self.pack() + + 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 = MsgEd25519Signature._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( MsgEd25519Signature, self).to_json_dict() + j = walk_json_dict(exclude_fields(self)) + d.update(j) + return d + +SBP_MSG_ED25519_CERTIFICATE = 0x0C02 +class MsgEd25519Certificate(SBP): + """SBP class for message MSG_ED25519_CERTIFICATE (0x0C02). + + You can have MSG_ED25519_CERTIFICATE inherit its fields directly + from an inherited SBP object, or construct it inline using a dict + of its fields. + + + + Parameters + ---------- + sbp : SBP + SBP parent object to inherit from. + stub : array + sender : int + Optional sender ID, defaults to SENDER_ID (see sbp/msg.py). + + """ + _parser = construct.Struct( + 'stub' / construct.GreedyRange(construct.Int8ul),) + __slots__ = [ + 'stub', + ] + + def __init__(self, sbp=None, **kwargs): + if sbp: + super( MsgEd25519Certificate, + self).__init__(sbp.msg_type, sbp.sender, sbp.length, + sbp.payload, sbp.crc) + self.from_binary(sbp.payload) + else: + super( MsgEd25519Certificate, self).__init__() + self.msg_type = SBP_MSG_ED25519_CERTIFICATE + self.sender = kwargs.pop('sender', SENDER_ID) + self.stub = kwargs.pop('stub') + + 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 MsgEd25519Certificate.from_json_dict(d) + + @staticmethod + def from_json_dict(d): + sbp = SBP.from_json_dict(d) + return MsgEd25519Certificate(sbp, **d) + + + def from_binary(self, d): + """Given a binary payload d, update the appropriate payload fields of + the message. + + """ + p = MsgEd25519Certificate._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 = MsgEd25519Certificate._parser.build(c) + return self.pack() + + 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 = MsgEd25519Certificate._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( MsgEd25519Certificate, self).to_json_dict() + j = walk_json_dict(exclude_fields(self)) + d.update(j) + return d + + +msg_classes = { + 0x0C01: MsgEd25519Signature, + 0x0C02: MsgEd25519Certificate, +} \ No newline at end of file diff --git a/python/sbp/table.py b/python/sbp/table.py index 5d2465fa7c..c79b14574f 100755 --- a/python/sbp/table.py +++ b/python/sbp/table.py @@ -38,6 +38,7 @@ from . import sbas as sbas from . import ssr as ssr from . import solution_meta as solmeta +from . import signing as signing import warnings @@ -64,6 +65,7 @@ + list(sbas.msg_classes.items()) + list(ssr.msg_classes.items()) + list(solmeta.msg_classes.items()) + + list(signing.msg_classes.items()) ) class InvalidSBPMessageType(NotImplementedError): diff --git a/python/tests/sbp/test_messages.py b/python/tests/sbp/test_messages.py index 5a0e8470d3..75e015d32c 100644 --- a/python/tests/sbp/test_messages.py +++ b/python/tests/sbp/test_messages.py @@ -19,7 +19,7 @@ PYTHON_ROOT = os.path.join(HERE, "..", "..") ROOTPATH = os.path.join(PYTHON_ROOT, "..", "spec", "tests", "yaml") -EXPECTED_MISSING_MESSAGES = 120 +EXPECTED_MISSING_MESSAGES = 122 def process_files(path, filenames): diff --git a/python/tests/sbp/test_table.py b/python/tests/sbp/test_table.py index 29dff32539..2a8d64b680 100644 --- a/python/tests/sbp/test_table.py +++ b/python/tests/sbp/test_table.py @@ -33,6 +33,7 @@ from sbp import sbas as sbas from sbp import ssr as ssr from sbp import solution_meta as solmeta +from sbp import signing as signing import warnings @@ -41,7 +42,7 @@ def test_table_count(): Test number of available messages to deserialize. """ - number_of_messages = 219 + number_of_messages = 221 assert len(_SBP_TABLE) == number_of_messages def test_table_unqiue_count(): @@ -71,6 +72,7 @@ def test_table_unqiue_count(): + len(sbas.msg_classes) + len(ssr.msg_classes) + len(solmeta.msg_classes) + + len(signing.msg_classes) ) assert len(_SBP_TABLE) == number_of_messages diff --git a/rust/sbp/src/messages/mod.rs b/rust/sbp/src/messages/mod.rs index 3462ccb0a6..3b9bc308cd 100644 --- a/rust/sbp/src/messages/mod.rs +++ b/rust/sbp/src/messages/mod.rs @@ -26,6 +26,7 @@ pub mod orientation; pub mod piksi; pub mod sbas; pub mod settings; +pub mod signing; pub mod solution_meta; pub mod ssr; pub mod system; @@ -207,6 +208,8 @@ 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_ed25519_certificate::MsgEd25519Certificate; +use self::signing::msg_ed25519_signature::MsgEd25519Signature; use self::solution_meta::msg_soln_meta::MsgSolnMeta; use self::solution_meta::msg_soln_meta_dep_a::MsgSolnMetaDepA; use self::ssr::msg_ssr_code_biases::MsgSsrCodeBiases; @@ -723,6 +726,10 @@ pub enum Sbp { MsgSsrFlagIonoTileSatLos(MsgSsrFlagIonoTileSatLos), /// List of all the grid points to satellite which are faulty MsgSsrFlagIonoGridPointSatLos(MsgSsrFlagIonoGridPointSatLos), + /// ED25519 signature for groups of RTCM messages + MsgEd25519Signature(MsgEd25519Signature), + /// ED25519 certificate, split over multiple messages + MsgEd25519Certificate(MsgEd25519Certificate), /// Request advice on the optimal configuration for FileIO MsgFileioConfigReq(MsgFileioConfigReq), /// Response with advice on the optimal configuration for FileIO. @@ -1763,6 +1770,16 @@ impl Sbp { msg.set_sender_id(frame.sender_id); Ok(Sbp::MsgSsrFlagIonoGridPointSatLos(msg)) } + MsgEd25519Signature::MESSAGE_TYPE => { + let mut msg = MsgEd25519Signature::parse(&mut frame.payload)?; + msg.set_sender_id(frame.sender_id); + Ok(Sbp::MsgEd25519Signature(msg)) + } + MsgEd25519Certificate::MESSAGE_TYPE => { + let mut msg = MsgEd25519Certificate::parse(&mut frame.payload)?; + msg.set_sender_id(frame.sender_id); + Ok(Sbp::MsgEd25519Certificate(msg)) + } MsgFileioConfigReq::MESSAGE_TYPE => { let mut msg = MsgFileioConfigReq::parse(&mut frame.payload)?; msg.set_sender_id(frame.sender_id); @@ -2110,6 +2127,8 @@ impl SbpMessage for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.message_name(), Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.message_name(), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.message_name(), + Sbp::MsgEd25519Signature(msg) => msg.message_name(), + Sbp::MsgEd25519Certificate(msg) => msg.message_name(), Sbp::MsgFileioConfigReq(msg) => msg.message_name(), Sbp::MsgFileioConfigResp(msg) => msg.message_name(), Sbp::MsgSbasRaw(msg) => msg.message_name(), @@ -2335,6 +2354,8 @@ impl SbpMessage for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.message_type(), Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.message_type(), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.message_type(), + Sbp::MsgEd25519Signature(msg) => msg.message_type(), + Sbp::MsgEd25519Certificate(msg) => msg.message_type(), Sbp::MsgFileioConfigReq(msg) => msg.message_type(), Sbp::MsgFileioConfigResp(msg) => msg.message_type(), Sbp::MsgSbasRaw(msg) => msg.message_type(), @@ -2560,6 +2581,8 @@ impl SbpMessage for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.sender_id(), Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.sender_id(), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.sender_id(), + Sbp::MsgEd25519Signature(msg) => msg.sender_id(), + Sbp::MsgEd25519Certificate(msg) => msg.sender_id(), Sbp::MsgFileioConfigReq(msg) => msg.sender_id(), Sbp::MsgFileioConfigResp(msg) => msg.sender_id(), Sbp::MsgSbasRaw(msg) => msg.sender_id(), @@ -2785,6 +2808,8 @@ impl SbpMessage for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.set_sender_id(new_id), Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.set_sender_id(new_id), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.set_sender_id(new_id), + Sbp::MsgEd25519Signature(msg) => msg.set_sender_id(new_id), + Sbp::MsgEd25519Certificate(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), @@ -3010,6 +3035,8 @@ impl SbpMessage for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.encoded_len(), Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.encoded_len(), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.encoded_len(), + Sbp::MsgEd25519Signature(msg) => msg.encoded_len(), + Sbp::MsgEd25519Certificate(msg) => msg.encoded_len(), Sbp::MsgFileioConfigReq(msg) => msg.encoded_len(), Sbp::MsgFileioConfigResp(msg) => msg.encoded_len(), Sbp::MsgSbasRaw(msg) => msg.encoded_len(), @@ -3238,6 +3265,8 @@ impl SbpMessage for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.gps_time(), Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.gps_time(), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.gps_time(), + Sbp::MsgEd25519Signature(msg) => msg.gps_time(), + Sbp::MsgEd25519Certificate(msg) => msg.gps_time(), Sbp::MsgFileioConfigReq(msg) => msg.gps_time(), Sbp::MsgFileioConfigResp(msg) => msg.gps_time(), Sbp::MsgSbasRaw(msg) => msg.gps_time(), @@ -3471,6 +3500,8 @@ impl WireFormat for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => WireFormat::write(msg, buf), Sbp::MsgSsrFlagIonoTileSatLos(msg) => WireFormat::write(msg, buf), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => WireFormat::write(msg, buf), + Sbp::MsgEd25519Signature(msg) => WireFormat::write(msg, buf), + Sbp::MsgEd25519Certificate(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), @@ -3696,6 +3727,8 @@ impl WireFormat for Sbp { Sbp::MsgSsrFlagIonoGridPoints(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagIonoTileSatLos(msg) => WireFormat::len(msg), Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => WireFormat::len(msg), + Sbp::MsgEd25519Signature(msg) => WireFormat::len(msg), + Sbp::MsgEd25519Certificate(msg) => WireFormat::len(msg), Sbp::MsgFileioConfigReq(msg) => WireFormat::len(msg), Sbp::MsgFileioConfigResp(msg) => WireFormat::len(msg), Sbp::MsgSbasRaw(msg) => WireFormat::len(msg), @@ -4870,6 +4903,18 @@ impl From for Sbp { } } +impl From for Sbp { + fn from(msg: MsgEd25519Signature) -> Self { + Sbp::MsgEd25519Signature(msg) + } +} + +impl From for Sbp { + fn from(msg: MsgEd25519Certificate) -> Self { + Sbp::MsgEd25519Certificate(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 new file mode 100644 index 0000000000..bb529dfb7f --- /dev/null +++ b/rust/sbp/src/messages/signing.rs @@ -0,0 +1,151 @@ +// 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 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! +//****************************************************************************/ +//! Messages relating to signatures +pub use msg_ed25519_certificate::MsgEd25519Certificate; +pub use msg_ed25519_signature::MsgEd25519Signature; + +pub mod msg_ed25519_certificate { + #![allow(unused_imports)] + + use super::*; + use crate::messages::gnss::*; + use crate::messages::lib::*; + /// ED25519 certificate, split over multiple messages + #[cfg_attr(feature = "serde", derive(serde::Serialize))] + #[derive(Debug, PartialEq, Clone)] + pub struct MsgEd25519Certificate { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing))] + pub sender_id: Option, + #[cfg_attr(feature = "serde", serde(rename(serialize = "stub")))] + pub stub: Vec, + } + + impl ConcreteMessage for MsgEd25519Certificate { + const MESSAGE_TYPE: u16 = 3074; + const MESSAGE_NAME: &'static str = "MSG_ED25519_CERTIFICATE"; + } + + impl SbpMessage for MsgEd25519Certificate { + fn message_name(&self) -> &'static str { + ::MESSAGE_NAME + } + fn message_type(&self) -> u16 { + ::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 + } + } + + impl TryFrom for MsgEd25519Certificate { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgEd25519Certificate(m) => Ok(m), + _ => Err(TryFromSbpError), + } + } + } + + impl WireFormat for MsgEd25519Certificate { + const MIN_LEN: usize = as WireFormat>::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.stub) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.stub, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgEd25519Certificate { + sender_id: None, + stub: WireFormat::parse_unchecked(buf), + } + } + } +} + +pub mod msg_ed25519_signature { + #![allow(unused_imports)] + + use super::*; + use crate::messages::gnss::*; + use crate::messages::lib::*; + /// ED25519 signature for groups of RTCM messages + #[cfg_attr(feature = "serde", derive(serde::Serialize))] + #[derive(Debug, PartialEq, Clone)] + pub struct MsgEd25519Signature { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing))] + pub sender_id: Option, + #[cfg_attr(feature = "serde", serde(rename(serialize = "stub")))] + pub stub: Vec, + } + + impl ConcreteMessage for MsgEd25519Signature { + const MESSAGE_TYPE: u16 = 3073; + const MESSAGE_NAME: &'static str = "MSG_ED25519_SIGNATURE"; + } + + impl SbpMessage for MsgEd25519Signature { + fn message_name(&self) -> &'static str { + ::MESSAGE_NAME + } + fn message_type(&self) -> u16 { + ::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 + } + } + + impl TryFrom for MsgEd25519Signature { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgEd25519Signature(m) => Ok(m), + _ => Err(TryFromSbpError), + } + } + } + + impl WireFormat for MsgEd25519Signature { + const MIN_LEN: usize = as WireFormat>::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.stub) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.stub, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgEd25519Signature { + sender_id: None, + stub: WireFormat::parse_unchecked(buf), + } + } + } +} diff --git a/sbpjson/elm/SbpJson.elm b/sbpjson/elm/SbpJson.elm index d18b0494df..9e9f596e2d 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, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcqResult, msgAcqSvProfile, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, 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, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPpsTime, 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, 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, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel) +-- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcqResult, msgAcqSvProfile, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEd25519Certificate, msgEd25519Signature, 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, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPpsTime, 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, 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, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel) -- -- and you're off to the races with -- @@ -56,6 +56,8 @@ -- decodeString msgDeviceMonitor myJsonString -- decodeString msgDgnssStatus myJsonString -- decodeString msgDops myJsonString +-- decodeString msgEd25519Certificate myJsonString +-- decodeString msgEd25519Signature myJsonString -- decodeString msgEphemerisBds myJsonString -- decodeString msgEphemerisGPS myJsonString -- decodeString msgEphemerisGal myJsonString @@ -358,6 +360,12 @@ module SbpJson exposing , MsgDops , msgDopsToString , msgDops + , MsgEd25519Certificate + , msgEd25519CertificateToString + , msgEd25519Certificate + , MsgEd25519Signature + , msgEd25519SignatureToString + , msgEd25519Signature , MsgEphemerisBds , msgEphemerisBdsToString , msgEphemerisBds @@ -1208,6 +1216,14 @@ type alias MsgDops = , vdop : Int } +type alias MsgEd25519Certificate = + { stub : Array Int + } + +type alias MsgEd25519Signature = + { stub : Array Int + } + {-| The ephemeris message returns a set of satellite orbit parameters that is used to calculate BDS satellite position, velocity, and clock offset. Please see the BeiDou Navigation Satellite System SIS-ICD Version 2.1, Table 5-9 for more details. @@ -3389,6 +3405,12 @@ msgDgnssStatusToString r = Jenc.encode 0 (encodeMsgDgnssStatus r) msgDopsToString : MsgDops -> String msgDopsToString r = Jenc.encode 0 (encodeMsgDops r) +msgEd25519CertificateToString : MsgEd25519Certificate -> String +msgEd25519CertificateToString r = Jenc.encode 0 (encodeMsgEd25519Certificate r) + +msgEd25519SignatureToString : MsgEd25519Signature -> String +msgEd25519SignatureToString r = Jenc.encode 0 (encodeMsgEd25519Signature r) + msgEphemerisBdsToString : MsgEphemerisBds -> String msgEphemerisBdsToString r = Jenc.encode 0 (encodeMsgEphemerisBds r) @@ -4455,6 +4477,28 @@ encodeMsgDops x = , ("vdop", Jenc.int x.vdop) ] +msgEd25519Certificate : Jdec.Decoder MsgEd25519Certificate +msgEd25519Certificate = + Jpipe.decode MsgEd25519Certificate + |> Jpipe.required "stub" (Jdec.array Jdec.int) + +encodeMsgEd25519Certificate : MsgEd25519Certificate -> Jenc.Value +encodeMsgEd25519Certificate x = + Jenc.object + [ ("stub", makeArrayEncoder Jenc.int x.stub) + ] + +msgEd25519Signature : Jdec.Decoder MsgEd25519Signature +msgEd25519Signature = + Jpipe.decode MsgEd25519Signature + |> Jpipe.required "stub" (Jdec.array Jdec.int) + +encodeMsgEd25519Signature : MsgEd25519Signature -> Jenc.Value +encodeMsgEd25519Signature x = + Jenc.object + [ ("stub", makeArrayEncoder Jenc.int x.stub) + ] + msgEphemerisBds : Jdec.Decoder MsgEphemerisBds msgEphemerisBds = Jpipe.decode MsgEphemerisBds diff --git a/sbpjson/javascript/SbpJson.js b/sbpjson/javascript/SbpJson.js index bb25b1a539..a0dc6275a1 100644 --- a/sbpjson/javascript/SbpJson.js +++ b/sbpjson/javascript/SbpJson.js @@ -49,6 +49,8 @@ // const msgDeviceMonitor = Convert.toMsgDeviceMonitor(json); // const msgDgnssStatus = Convert.toMsgDgnssStatus(json); // const msgDops = Convert.toMsgDops(json); +// const msgEd25519Certificate = Convert.toMsgEd25519Certificate(json); +// const msgEd25519Signature = Convert.toMsgEd25519Signature(json); // const msgEphemerisBds = Convert.toMsgEphemerisBds(json); // const msgEphemerisGPS = Convert.toMsgEphemerisGPS(json); // const msgEphemerisGal = Convert.toMsgEphemerisGal(json); @@ -590,6 +592,22 @@ function msgDopsToJson(value) { return JSON.stringify(uncast(value, r("MsgDops")), null, 2); } +function toMsgEd25519Certificate(json) { + return cast(JSON.parse(json), r("MsgEd25519Certificate")); +} + +function msgEd25519CertificateToJson(value) { + return JSON.stringify(uncast(value, r("MsgEd25519Certificate")), null, 2); +} + +function toMsgEd25519Signature(json) { + return cast(JSON.parse(json), r("MsgEd25519Signature")); +} + +function msgEd25519SignatureToJson(value) { + return JSON.stringify(uncast(value, r("MsgEd25519Signature")), null, 2); +} + function toMsgEphemerisBds(json) { return cast(JSON.parse(json), r("MsgEphemerisBds")); } @@ -2193,6 +2211,12 @@ const typeMap = { { json: "tow", js: "tow", typ: 0 }, { json: "vdop", js: "vdop", typ: 0 }, ], "any"), + "MsgEd25519Certificate": o([ + { json: "stub", js: "stub", typ: a(0) }, + ], "any"), + "MsgEd25519Signature": o([ + { json: "stub", js: "stub", typ: a(0) }, + ], "any"), "MsgEphemerisBds": o([ { json: "af0", js: "af0", typ: 3.14 }, { json: "af1", js: "af1", typ: 3.14 }, @@ -3523,6 +3547,10 @@ module.exports = { "toMsgDgnssStatus": toMsgDgnssStatus, "msgDopsToJson": msgDopsToJson, "toMsgDops": toMsgDops, + "msgEd25519CertificateToJson": msgEd25519CertificateToJson, + "toMsgEd25519Certificate": toMsgEd25519Certificate, + "msgEd25519SignatureToJson": msgEd25519SignatureToJson, + "toMsgEd25519Signature": toMsgEd25519Signature, "msgEphemerisBdsToJson": msgEphemerisBdsToJson, "toMsgEphemerisBds": toMsgEphemerisBds, "msgEphemerisGPSToJson": msgEphemerisGPSToJson, diff --git a/sbpjson/typescript/SbpJson.ts b/sbpjson/typescript/SbpJson.ts index 9803c0cd49..d53c061cf9 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, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcqResult, MsgAcqSvProfile, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, 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, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPpsTime, 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, 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, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel } from "./file"; +// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcqResult, MsgAcqSvProfile, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEd25519Certificate, MsgEd25519Signature, 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, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPpsTime, 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, 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, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel } from "./file"; // // const acqSvProfile = Convert.toAcqSvProfile(json); // const almanacCommonContent = Convert.toAlmanacCommonContent(json); @@ -49,6 +49,8 @@ // const msgDeviceMonitor = Convert.toMsgDeviceMonitor(json); // const msgDgnssStatus = Convert.toMsgDgnssStatus(json); // const msgDops = Convert.toMsgDops(json); +// const msgEd25519Certificate = Convert.toMsgEd25519Certificate(json); +// const msgEd25519Signature = Convert.toMsgEd25519Signature(json); // const msgEphemerisBds = Convert.toMsgEphemerisBds(json); // const msgEphemerisGPS = Convert.toMsgEphemerisGPS(json); // const msgEphemerisGal = Convert.toMsgEphemerisGal(json); @@ -599,6 +601,14 @@ export interface MsgDops { vdop: number; } +export interface MsgEd25519Certificate { + stub: number[]; +} + +export interface MsgEd25519Signature { + stub: number[]; +} + /** * The ephemeris message returns a set of satellite orbit parameters that is used to * calculate BDS satellite position, velocity, and clock offset. Please see the BeiDou @@ -3169,6 +3179,22 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgDops")), null, 2); } + public static toMsgEd25519Certificate(json: string): MsgEd25519Certificate { + return cast(JSON.parse(json), r("MsgEd25519Certificate")); + } + + public static msgEd25519CertificateToJson(value: MsgEd25519Certificate): string { + return JSON.stringify(uncast(value, r("MsgEd25519Certificate")), null, 2); + } + + public static toMsgEd25519Signature(json: string): MsgEd25519Signature { + return cast(JSON.parse(json), r("MsgEd25519Signature")); + } + + public static msgEd25519SignatureToJson(value: MsgEd25519Signature): string { + return JSON.stringify(uncast(value, r("MsgEd25519Signature")), null, 2); + } + public static toMsgEphemerisBds(json: string): MsgEphemerisBds { return cast(JSON.parse(json), r("MsgEphemerisBds")); } @@ -4773,6 +4799,12 @@ const typeMap: any = { { json: "tow", js: "tow", typ: 0 }, { json: "vdop", js: "vdop", typ: 0 }, ], "any"), + "MsgEd25519Certificate": o([ + { json: "stub", js: "stub", typ: a(0) }, + ], "any"), + "MsgEd25519Signature": o([ + { json: "stub", js: "stub", typ: a(0) }, + ], "any"), "MsgEphemerisBds": o([ { json: "af0", js: "af0", typ: 3.14 }, { json: "af1", js: "af1", typ: 3.14 }, diff --git a/spec/yaml/swiftnav/sbp/signing.yaml b/spec/yaml/swiftnav/sbp/signing.yaml new file mode 100644 index 0000000000..7c076ce6e0 --- /dev/null +++ b/spec/yaml/swiftnav/sbp/signing.yaml @@ -0,0 +1,33 @@ +# Copyright (C) 2018-2022 Swift Navigation Inc. +# Contact: https://support.swiftnav.com +# +# This source is subject to the license found in the file 'LICENSE' which must +# be 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: swiftnav.sbp.signing +description: Messages relating to signatures +stable: False +public: False +include: + - types.yaml + - gnss.yaml +definitions: + - MSG_ED25519_SIGNATURE: + id: 0x0C01 + short_desc: ED25519 signature for groups of RTCM messages + fields: + - stub: + type: array + fill: u8 + + - MSG_ED25519_CERTIFICATE: + id: 0x0C02 + short_desc: ED25519 certificate, split over multiple messages + fields: + - stub: + type: array + fill: u8