From 1c67f2b01a0e34b6e7e8f2fa820540eea1851426 Mon Sep 17 00:00:00 2001 From: QuentinBNexelec Date: Thu, 3 Aug 2023 09:36:43 +0200 Subject: [PATCH] add new nexelec devices --- vendor/nexelec/feel-codec.yaml | 10 + vendor/nexelec/feel-profile.yaml | 52 +++ vendor/nexelec/feel.yaml | 131 ++++++++ vendor/nexelec/index.yaml | 4 + vendor/nexelec/move-codec.yaml | 10 + vendor/nexelec/move-profile.yaml | 52 +++ vendor/nexelec/move.yaml | 134 ++++++++ vendor/nexelec/rise-codec.yaml | 10 + vendor/nexelec/rise-profile.yaml | 52 +++ vendor/nexelec/rise.yaml | 132 ++++++++ vendor/nexelec/sign-codec.js | 551 +++++++++++++++++++++++++++++++ vendor/nexelec/sign-codec.yaml | 10 + vendor/nexelec/sign-profile.yaml | 52 +++ vendor/nexelec/sign.png | Bin 0 -> 121956 bytes vendor/nexelec/sign.yaml | 136 ++++++++ 15 files changed, 1336 insertions(+) create mode 100644 vendor/nexelec/feel-codec.yaml create mode 100644 vendor/nexelec/feel-profile.yaml create mode 100644 vendor/nexelec/feel.yaml create mode 100644 vendor/nexelec/move-codec.yaml create mode 100644 vendor/nexelec/move-profile.yaml create mode 100644 vendor/nexelec/move.yaml create mode 100644 vendor/nexelec/rise-codec.yaml create mode 100644 vendor/nexelec/rise-profile.yaml create mode 100644 vendor/nexelec/rise.yaml create mode 100644 vendor/nexelec/sign-codec.js create mode 100644 vendor/nexelec/sign-codec.yaml create mode 100644 vendor/nexelec/sign-profile.yaml create mode 100644 vendor/nexelec/sign.png create mode 100644 vendor/nexelec/sign.yaml diff --git a/vendor/nexelec/feel-codec.yaml b/vendor/nexelec/feel-codec.yaml new file mode 100644 index 0000000000..3535c0ce28 --- /dev/null +++ b/vendor/nexelec/feel-codec.yaml @@ -0,0 +1,10 @@ +# Uplink decoder decodes binary data uplink into a JSON object (optional) +# For documentation on writing encoders and decoders, see: https://thethingsstack.io/integrations/payload-formatters/javascript/ +uplinkDecoder: + fileName: sign-codec.js + +downlinkEncoder: + fileName: sign-codec.js + +downlinkDecoder: + fileName: sign-codec.js diff --git a/vendor/nexelec/feel-profile.yaml b/vendor/nexelec/feel-profile.yaml new file mode 100644 index 0000000000..edcc14b18a --- /dev/null +++ b/vendor/nexelec/feel-profile.yaml @@ -0,0 +1,52 @@ +# Vendor profile ID, can be freely issued by the vendor +# This vendor profile ID is also used on the QR code for LoRaWAN devices, see +# https://lora-alliance.org/sites/default/files/2020-10/LoRa_Alliance_Vendor_ID_for_QR_Code.pdf +vendorProfileID: 0686 + +# LoRaWAN MAC version: 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4 or 1.1 +macVersion: 1.0.2 +# LoRaWAN Regional Parameters version. Values depend on the LoRaWAN version: +# 1.0: TS001-1.0 +# 1.0.1: TS001-1.0.1 +# 1.0.2: RP001-1.0.2 or RP001-1.0.2-RevB +# 1.0.3: RP001-1.0.3-RevA +# 1.0.4: RP002-1.0.0 or RP002-1.0.1 +# 1.1: RP001-1.1-RevA or RP001-1.1-RevB +regionalParametersVersion: RP001-1.0.2-RevB + +# Whether the end device supports join (OTAA) or not (ABP) +supportsJoin: true +# If your device is an ABP device (supportsJoin is false), uncomment the following fields: +# RX1 delay +#rx1Delay: 5 +# RX1 data rate offset +#rx1DataRateOffset: 0 +# RX2 data rate index +#rx2DataRateIndex: 0 +# RX2 frequency (MHz) +#rx2Frequency: 869.525 +# Factory preset frequencies (MHz) +#factoryPresetFrequencies: [868.1, 868.3, 868.5, 867.1, 867.3, 867.5, 867.7, 867.9] + +# Maximum EIRP +maxEIRP: 14 +# Whether the end device supports 32-bit frame counters +supports32bitFCnt: true + +# Whether the end device supports class B +supportsClassB: false +# If your device supports class B, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classBTimeout: 60 +# Ping slot period (seconds) +#pingSlotPeriod: 128 +# Ping slot data rate index +#pingSlotDataRateIndex: 0 +# Ping slot frequency (MHz). Set to 0 if the band supports ping slot frequency hopping. +#pingSlotFrequency: 869.525 + +# Whether the end device supports class C +supportsClassC: false +# If your device supports class C, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classCTimeout: 60 diff --git a/vendor/nexelec/feel.yaml b/vendor/nexelec/feel.yaml new file mode 100644 index 0000000000..b9dcab76f2 --- /dev/null +++ b/vendor/nexelec/feel.yaml @@ -0,0 +1,131 @@ +name: FEEL +description: FEEL is a 2-in-1 LoRaWAN-connected, battery- or USB-powered room sensor that can be rapidly configurable via NFC. Depending on the model, the sensor can measure temperature and humidity. + +# Hardware versions (optional, use when you have revisions) +hardwareVersions: + - version: 'V001' + numeric: 1 + +# Firmware versions (at least one is mandatory) +firmwareVersions: + - # Firmware version + version: 'V01.0' + numeric: 1 + # Corresponding hardware versions (optional) + hardwareVersions: + - 'V001' + + # Firmware features (optional) + # Valid values are: remote rejoin (trigger a join from the application layer), transmission interval (configure how + # often he device sends a message). + features: + - remote rejoin + - transmission interval + + # LoRaWAN Device Profiles per region + # Supported regions are EU863-870, US902-928, AU915-928, AS923, CN779-787, EU433, CN470-510, KR920-923, IN865-867, + # RU864-870 + profiles: + EU863-870: + # Optional identifier of the vendor of the profile. When you specify the vendorID, the profile is loaded from + # the vendorID's folder. This allows you to reuse profiles from module or LoRaWAN end device stack vendors. + # If vendorID is empty, the current vendor ID is used. In this example, the vendorID is the current vendor ID, + # which is verbose. + #vendorID: example + # Identifier of the profile (lowercase, alphanumeric with dashes, max 36 characters) + id: feel-profile + lorawanCertified: false + codec: sign-codec + +# Sensors that this device features (optional) +# Valid values are: +# 4-20 ma, accelerometer, altitude, analog input, auxiliary, barometer, battery, button, bvoc, co, co2, conductivity, +# current, digital input, dissolved oxygen, distance, dust, energy, gps, gyroscope, h2s, humidity, iaq, level, light, +# lightning, link, magnetometer, moisture, motion, no, no2, o3, particulate matter, ph, pir, pm2.5, pm10, potentiometer, +# power, precipitation, pressure, proximity, pulse count, pulse frequency, radar, rainfall, rssi, smart valve, snr, so2, +# solar radiation, sound, strain, surface temperature, temperature, tilt, time, tvoc, uv, vapor pressure, velocity, +# vibration, voltage, water potential, water, weight, wifi ssid, wind direction, wind speed. +sensors: + - temperature + - humidity + +# Additional radios that this device has (optional) +# Valid values are: ble, nfc, wifi, cellular. +additionalRadios: + - nfc + +# Dimensions in mm (optional) +# Use width, height, length and/or diameter +dimensions: + width: 87 + length: 87 + height: 23 + +# Weight in grams (optional) +weight: 110 + +# Battery information (optional) +battery: + replaceable: true + type: AA + +# Operating conditions (optional) +operatingConditions: + # Temperature (Celsius) + temperature: + min: -30 + max: 70 + # Relative humidity (fraction of 1) + relativeHumidity: + min: 0 + max: 1 + +# IP rating (optional) +ipCode: IP30 + +# Key security (optional) +# Valid values are: none, read protected and secure element. +keySecurity: read protected + +# Product and data sheet URLs (optional) +productURL: https://www.nexelec.fr/ +dataSheetURL: https://support.nexelec.fr/en/support/solutions/articles/80001085095-datasheet/ + +# Commercial information +resellerURLs: + - name: 'Nexelec' + region: + - European Union + url: https://www.nexelec.fr/ + +msrp: + EUR: 59 + USD: 65 + +# Photos +photos: + main: sign.png + +# Regulatory compliances (optional) +compliances: + safety: + - body: IEC + norm: EN + standard: 62368-1 + - body: ETSI + norm: EN + standard: 62479:2010 + + radioEquipment: + - body: ETSI + norm: EN + standard: 301 489-1 + version: 2.2.0 + - body: ETSI + norm: EN + standard: 301 489-3 + version: 2.1.0 + - body: ETSI + norm: EN + standard: 300 220-2 + version: 3.2.1 diff --git a/vendor/nexelec/index.yaml b/vendor/nexelec/index.yaml index a2f5f5c1a3..4b5422f3bf 100644 --- a/vendor/nexelec/index.yaml +++ b/vendor/nexelec/index.yaml @@ -3,3 +3,7 @@ endDevices: # Unique identifier of the end device (lowercase, alphanumeric with dashes, max 36 characters) - carbon # look in windsensor.yaml for the end device definition + - sign + - move + - rise + - feel \ No newline at end of file diff --git a/vendor/nexelec/move-codec.yaml b/vendor/nexelec/move-codec.yaml new file mode 100644 index 0000000000..3535c0ce28 --- /dev/null +++ b/vendor/nexelec/move-codec.yaml @@ -0,0 +1,10 @@ +# Uplink decoder decodes binary data uplink into a JSON object (optional) +# For documentation on writing encoders and decoders, see: https://thethingsstack.io/integrations/payload-formatters/javascript/ +uplinkDecoder: + fileName: sign-codec.js + +downlinkEncoder: + fileName: sign-codec.js + +downlinkDecoder: + fileName: sign-codec.js diff --git a/vendor/nexelec/move-profile.yaml b/vendor/nexelec/move-profile.yaml new file mode 100644 index 0000000000..edcc14b18a --- /dev/null +++ b/vendor/nexelec/move-profile.yaml @@ -0,0 +1,52 @@ +# Vendor profile ID, can be freely issued by the vendor +# This vendor profile ID is also used on the QR code for LoRaWAN devices, see +# https://lora-alliance.org/sites/default/files/2020-10/LoRa_Alliance_Vendor_ID_for_QR_Code.pdf +vendorProfileID: 0686 + +# LoRaWAN MAC version: 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4 or 1.1 +macVersion: 1.0.2 +# LoRaWAN Regional Parameters version. Values depend on the LoRaWAN version: +# 1.0: TS001-1.0 +# 1.0.1: TS001-1.0.1 +# 1.0.2: RP001-1.0.2 or RP001-1.0.2-RevB +# 1.0.3: RP001-1.0.3-RevA +# 1.0.4: RP002-1.0.0 or RP002-1.0.1 +# 1.1: RP001-1.1-RevA or RP001-1.1-RevB +regionalParametersVersion: RP001-1.0.2-RevB + +# Whether the end device supports join (OTAA) or not (ABP) +supportsJoin: true +# If your device is an ABP device (supportsJoin is false), uncomment the following fields: +# RX1 delay +#rx1Delay: 5 +# RX1 data rate offset +#rx1DataRateOffset: 0 +# RX2 data rate index +#rx2DataRateIndex: 0 +# RX2 frequency (MHz) +#rx2Frequency: 869.525 +# Factory preset frequencies (MHz) +#factoryPresetFrequencies: [868.1, 868.3, 868.5, 867.1, 867.3, 867.5, 867.7, 867.9] + +# Maximum EIRP +maxEIRP: 14 +# Whether the end device supports 32-bit frame counters +supports32bitFCnt: true + +# Whether the end device supports class B +supportsClassB: false +# If your device supports class B, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classBTimeout: 60 +# Ping slot period (seconds) +#pingSlotPeriod: 128 +# Ping slot data rate index +#pingSlotDataRateIndex: 0 +# Ping slot frequency (MHz). Set to 0 if the band supports ping slot frequency hopping. +#pingSlotFrequency: 869.525 + +# Whether the end device supports class C +supportsClassC: false +# If your device supports class C, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classCTimeout: 60 diff --git a/vendor/nexelec/move.yaml b/vendor/nexelec/move.yaml new file mode 100644 index 0000000000..de38934fe4 --- /dev/null +++ b/vendor/nexelec/move.yaml @@ -0,0 +1,134 @@ +name: MOVE +description: MOVE is a 5-in-1 LoRaWAN-connected, battery- or USB-powered room sensor that can be rapidly configurable via NFC. Depending on the model, the sensor can measure temperature, humidity, brightness, presence and noise. + +# Hardware versions (optional, use when you have revisions) +hardwareVersions: + - version: 'V001' + numeric: 1 + +# Firmware versions (at least one is mandatory) +firmwareVersions: + - # Firmware version + version: 'V01.0' + numeric: 1 + # Corresponding hardware versions (optional) + hardwareVersions: + - 'V001' + + # Firmware features (optional) + # Valid values are: remote rejoin (trigger a join from the application layer), transmission interval (configure how + # often he device sends a message). + features: + - remote rejoin + - transmission interval + + # LoRaWAN Device Profiles per region + # Supported regions are EU863-870, US902-928, AU915-928, AS923, CN779-787, EU433, CN470-510, KR920-923, IN865-867, + # RU864-870 + profiles: + EU863-870: + # Optional identifier of the vendor of the profile. When you specify the vendorID, the profile is loaded from + # the vendorID's folder. This allows you to reuse profiles from module or LoRaWAN end device stack vendors. + # If vendorID is empty, the current vendor ID is used. In this example, the vendorID is the current vendor ID, + # which is verbose. + #vendorID: example + # Identifier of the profile (lowercase, alphanumeric with dashes, max 36 characters) + id: move-profile + lorawanCertified: false + codec: sign-codec + +# Sensors that this device features (optional) +# Valid values are: +# 4-20 ma, accelerometer, altitude, analog input, auxiliary, barometer, battery, button, bvoc, co, co2, conductivity, +# current, digital input, dissolved oxygen, distance, dust, energy, gps, gyroscope, h2s, humidity, iaq, level, light, +# lightning, link, magnetometer, moisture, motion, no, no2, o3, particulate matter, ph, pir, pm2.5, pm10, potentiometer, +# power, precipitation, pressure, proximity, pulse count, pulse frequency, radar, rainfall, rssi, smart valve, snr, so2, +# solar radiation, sound, strain, surface temperature, temperature, tilt, time, tvoc, uv, vapor pressure, velocity, +# vibration, voltage, water potential, water, weight, wifi ssid, wind direction, wind speed. +sensors: + - temperature + - humidity + - motion + - light + - sound + +# Additional radios that this device has (optional) +# Valid values are: ble, nfc, wifi, cellular. +additionalRadios: + - nfc + +# Dimensions in mm (optional) +# Use width, height, length and/or diameter +dimensions: + width: 87 + length: 87 + height: 23 + +# Weight in grams (optional) +weight: 110 + +# Battery information (optional) +battery: + replaceable: true + type: AA + +# Operating conditions (optional) +operatingConditions: + # Temperature (Celsius) + temperature: + min: -30 + max: 70 + # Relative humidity (fraction of 1) + relativeHumidity: + min: 0 + max: 1 + +# IP rating (optional) +ipCode: IP30 + +# Key security (optional) +# Valid values are: none, read protected and secure element. +keySecurity: read protected + +# Product and data sheet URLs (optional) +productURL: https://www.nexelec.fr/ +dataSheetURL: https://support.nexelec.fr/en/support/solutions/articles/80001085094-datasheet/ + +# Commercial information +resellerURLs: + - name: 'Nexelec' + region: + - European Union + url: https://www.nexelec.fr/ + +msrp: + EUR: 79 + USD: 87 + +# Photos +photos: + main: sign.png + +# Regulatory compliances (optional) +compliances: + safety: + - body: IEC + norm: EN + standard: 62368-1 + - body: ETSI + norm: EN + standard: 62479:2010 + + radioEquipment: + - body: ETSI + norm: EN + standard: 301 489-1 + version: 2.2.0 + - body: ETSI + norm: EN + standard: 301 489-3 + version: 2.1.0 + - body: ETSI + norm: EN + standard: 300 220-2 + version: 3.2.1 diff --git a/vendor/nexelec/rise-codec.yaml b/vendor/nexelec/rise-codec.yaml new file mode 100644 index 0000000000..3535c0ce28 --- /dev/null +++ b/vendor/nexelec/rise-codec.yaml @@ -0,0 +1,10 @@ +# Uplink decoder decodes binary data uplink into a JSON object (optional) +# For documentation on writing encoders and decoders, see: https://thethingsstack.io/integrations/payload-formatters/javascript/ +uplinkDecoder: + fileName: sign-codec.js + +downlinkEncoder: + fileName: sign-codec.js + +downlinkDecoder: + fileName: sign-codec.js diff --git a/vendor/nexelec/rise-profile.yaml b/vendor/nexelec/rise-profile.yaml new file mode 100644 index 0000000000..edcc14b18a --- /dev/null +++ b/vendor/nexelec/rise-profile.yaml @@ -0,0 +1,52 @@ +# Vendor profile ID, can be freely issued by the vendor +# This vendor profile ID is also used on the QR code for LoRaWAN devices, see +# https://lora-alliance.org/sites/default/files/2020-10/LoRa_Alliance_Vendor_ID_for_QR_Code.pdf +vendorProfileID: 0686 + +# LoRaWAN MAC version: 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4 or 1.1 +macVersion: 1.0.2 +# LoRaWAN Regional Parameters version. Values depend on the LoRaWAN version: +# 1.0: TS001-1.0 +# 1.0.1: TS001-1.0.1 +# 1.0.2: RP001-1.0.2 or RP001-1.0.2-RevB +# 1.0.3: RP001-1.0.3-RevA +# 1.0.4: RP002-1.0.0 or RP002-1.0.1 +# 1.1: RP001-1.1-RevA or RP001-1.1-RevB +regionalParametersVersion: RP001-1.0.2-RevB + +# Whether the end device supports join (OTAA) or not (ABP) +supportsJoin: true +# If your device is an ABP device (supportsJoin is false), uncomment the following fields: +# RX1 delay +#rx1Delay: 5 +# RX1 data rate offset +#rx1DataRateOffset: 0 +# RX2 data rate index +#rx2DataRateIndex: 0 +# RX2 frequency (MHz) +#rx2Frequency: 869.525 +# Factory preset frequencies (MHz) +#factoryPresetFrequencies: [868.1, 868.3, 868.5, 867.1, 867.3, 867.5, 867.7, 867.9] + +# Maximum EIRP +maxEIRP: 14 +# Whether the end device supports 32-bit frame counters +supports32bitFCnt: true + +# Whether the end device supports class B +supportsClassB: false +# If your device supports class B, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classBTimeout: 60 +# Ping slot period (seconds) +#pingSlotPeriod: 128 +# Ping slot data rate index +#pingSlotDataRateIndex: 0 +# Ping slot frequency (MHz). Set to 0 if the band supports ping slot frequency hopping. +#pingSlotFrequency: 869.525 + +# Whether the end device supports class C +supportsClassC: false +# If your device supports class C, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classCTimeout: 60 diff --git a/vendor/nexelec/rise.yaml b/vendor/nexelec/rise.yaml new file mode 100644 index 0000000000..2ba67773e8 --- /dev/null +++ b/vendor/nexelec/rise.yaml @@ -0,0 +1,132 @@ +name: RISE +description: RISE is a 3-in-1 LoRaWAN-connected, battery- or USB-powered room sensor that can be rapidly configurable via NFC. Depending on the model, the sensor can measure co2, temperature and humidity. + +# Hardware versions (optional, use when you have revisions) +hardwareVersions: + - version: 'V001' + numeric: 1 + +# Firmware versions (at least one is mandatory) +firmwareVersions: + - # Firmware version + version: 'V01.0' + numeric: 1 + # Corresponding hardware versions (optional) + hardwareVersions: + - 'V001' + + # Firmware features (optional) + # Valid values are: remote rejoin (trigger a join from the application layer), transmission interval (configure how + # often he device sends a message). + features: + - remote rejoin + - transmission interval + + # LoRaWAN Device Profiles per region + # Supported regions are EU863-870, US902-928, AU915-928, AS923, CN779-787, EU433, CN470-510, KR920-923, IN865-867, + # RU864-870 + profiles: + EU863-870: + # Optional identifier of the vendor of the profile. When you specify the vendorID, the profile is loaded from + # the vendorID's folder. This allows you to reuse profiles from module or LoRaWAN end device stack vendors. + # If vendorID is empty, the current vendor ID is used. In this example, the vendorID is the current vendor ID, + # which is verbose. + #vendorID: example + # Identifier of the profile (lowercase, alphanumeric with dashes, max 36 characters) + id: rise-profile + lorawanCertified: false + codec: sign-codec + +# Sensors that this device features (optional) +# Valid values are: +# 4-20 ma, accelerometer, altitude, analog input, auxiliary, barometer, battery, button, bvoc, co, co2, conductivity, +# current, digital input, dissolved oxygen, distance, dust, energy, gps, gyroscope, h2s, humidity, iaq, level, light, +# lightning, link, magnetometer, moisture, motion, no, no2, o3, particulate matter, ph, pir, pm2.5, pm10, potentiometer, +# power, precipitation, pressure, proximity, pulse count, pulse frequency, radar, rainfall, rssi, smart valve, snr, so2, +# solar radiation, sound, strain, surface temperature, temperature, tilt, time, tvoc, uv, vapor pressure, velocity, +# vibration, voltage, water potential, water, weight, wifi ssid, wind direction, wind speed. +sensors: + - co2 + - temperature + - humidity + +# Additional radios that this device has (optional) +# Valid values are: ble, nfc, wifi, cellular. +additionalRadios: + - nfc + +# Dimensions in mm (optional) +# Use width, height, length and/or diameter +dimensions: + width: 87 + length: 87 + height: 23 + +# Weight in grams (optional) +weight: 110 + +# Battery information (optional) +battery: + replaceable: true + type: AA + +# Operating conditions (optional) +operatingConditions: + # Temperature (Celsius) + temperature: + min: -30 + max: 70 + # Relative humidity (fraction of 1) + relativeHumidity: + min: 0 + max: 1 + +# IP rating (optional) +ipCode: IP30 + +# Key security (optional) +# Valid values are: none, read protected and secure element. +keySecurity: read protected + +# Product and data sheet URLs (optional) +productURL: https://www.nexelec.fr/ +dataSheetURL: https://support.nexelec.fr/en/support/solutions/articles/80001085097-datasheet/ + +# Commercial information +resellerURLs: + - name: 'Nexelec' + region: + - European Union + url: https://www.nexelec.fr/ + +msrp: + EUR: 165 + USD: 181 + +# Photos +photos: + main: sign.png + +# Regulatory compliances (optional) +compliances: + safety: + - body: IEC + norm: EN + standard: 62368-1 + - body: ETSI + norm: EN + standard: 62479:2010 + + radioEquipment: + - body: ETSI + norm: EN + standard: 301 489-1 + version: 2.2.0 + - body: ETSI + norm: EN + standard: 301 489-3 + version: 2.1.0 + - body: ETSI + norm: EN + standard: 300 220-2 + version: 3.2.1 diff --git a/vendor/nexelec/sign-codec.js b/vendor/nexelec/sign-codec.js new file mode 100644 index 0000000000..755defe5e8 --- /dev/null +++ b/vendor/nexelec/sign-codec.js @@ -0,0 +1,551 @@ +function decodeUplink(input) +{ + var output = 0; + var data; + + stringHex = bytesString(input.bytes); + //console.log(stringHex) + var octetTypeProduit = parseInt(stringHex.substring(0,2),16); + var octetTypeMessage = parseInt(stringHex.substring(2,4),16); + //console.log(octetTypeMessage) + + function bytesString(input){ + var bufferString=''; + var decToString=''; + + for(var i=0; i=1023){return "Error"} + else{return {"value":((octetTemperatureValue/10)-30), "unit":"°C" }} + + } + + function humidity(octetHumidityValue) + { + if(octetHumidityValue>=1023){return "Error"} + else{return {"value":(octetHumidityValue/10), "unit" :"%RH"}} + } + + function co2(octetCO2Value) + { + if(octetCO2Value>=16383){return "Error"} + else{return {"value":octetCO2Value, "unit":"ppm"}}; + } + + function covt(octetCOVTValue) + { + if(octetCOVTValue>=16383){return "Error"} + else{return {"value":octetCOVTValue,"unit":"ug/m3"}}; + } + + function luminosity(octetLuminosityValue) + { + if(octetLuminosityValue>=1023){return "Error"} + else{return {"value":(octetLuminosityValue*5),"unit":"lux"}}; + } + + function buttonPress(octetButtonValue) + { + if(octetButtonValue===0){return "Button not pressed"} + else if(octetButtonValue===1){return "Button pressed"}; + } + + function averageNoise(octetAverageNoise) + { + if(octetAverageNoise===127){return "Error"} + else{return {"value":octetAverageNoise,"unit":"dB"}}; + } + + function peakNoise(octetPeakNoise) + { + if(octetPeakNoise===127){return "Error"} + else{return {"value":octetPeakNoise,"unit":"dB"}}; + } + + function occupancyRate(octetOccupancyRate) + { + if(octetOccupancyRate===127){return "Error"} + else{return {"value":octetOccupancyRate,"unit":"%"}}; + } + + function iaqGlobalArgument(octetiaqGlobal) + { + const message_name =["Excellent","Reserved","Fair","Reserved","Bad","Reserved","Reserved","Error"] + return message_name[octetiaqGlobal] + } + + function iaqSourceArgument(octetiaqSource) + { + const message_name =["None","Reserved","Reserved","Reserved","Reserved","CO2","VOC","Reserved","Reserved","Reserved","Reserved","Reserved","Reserved","Reserved","Reserved","Error"] + return message_name[octetiaqSource] + } + + /////////////////////////////////////////////// + // Product Status Message Function + /////////////////////////////////////////////// + + function hwRevision(octetHWRevision) + { + switch(octetHWRevision){ + case 0: + return 0 + break; + + case 1: + return 1 + break; + } + } + + function swRevision(octetSWRevision) + { + switch(octetSWRevision){ + case 0: + return 0 + break; + + case 1: + return 1 + break; + } + } + + function powerSource(octetPowerSource) + { + const message_name =["Battery","External 5V","Reserved","Reserved"] + return message_name[octetPowerSource] + } + + function batteryVoltage(octetbatteryVoltage) + { + if(octetbatteryVoltage===1023){return "Error"} + else if(octetbatteryVoltage === 1022){return "External power supply"} + else{return {"value":(octetbatteryVoltage*5), "unit":"mV" }} + } + + function batterieLevelArgument(octetBatteryLevel) + { + const message_name =["High","Medium","Low","Critical","External power supply"] + return message_name[octetBatteryLevel] + } + + function productHwStatusArgument(octetProductHwStatus) + { + const message_name =["Hardware working correctly","Hardware fault detected"] + return message_name[octetProductHwStatus] + } + + function sensorStatusArgument(octetSensorStatus) + { + const message_name =["Sensor Ok","Sensor default","Sensor not present","Sensor disabled","End-of-life sensor"] + return message_name[octetSensorStatus] + } + + function sdStatusArgument(octetSDStatus) + { + const message_name =["SD card OK","Fault: Cannot mount drive","Card missing","Functionality disabled","SD card at end of life"] + return message_name[octetSDStatus] + } + + function productActivationTimeCounter(octetTimeCounter) + { + if(octetTimeCounter===1023 ){return "Error"} + else{return {"value":octetTimeCounter,"unit":"month"}}; + } + + ///////////////////////////////////////////////////// + //Product Configuration Message Function + //////////////////////////////////////////////////// + + function reconfigurationSource(octetReconfigurationSource) + { + const message_name =["NFC","Downlink","Product Start up","Network","GPS","Local"] + return message_name[octetReconfigurationSource] + } + + function reconfigurationState(octetReconfigurationState) + { + const message_name =["Total Succes","Partial Succes","Total fail","Reserved"] + return message_name[octetReconfigurationState] + } + + function period(octetPeriod) + { + return {"value":octetPeriod, "unit":"minutes"}; + } + + function sensorActivation(octetSensorActivate) + { + if(octetSensorActivate===0){return "Sensor desactivated"} + else if(octetSensorActivate===1){return "Sensor activated" }; + } + + function sdActivation(octetSDActivate) + { + if(octetSDActivate===0){return "SD desactivated"} + else if(octetSDActivate===1){return "SD activated"}; + } + + function calibrationActivation(octetCalibrationActivate) + { + if(octetCalibrationActivate===0){return "Automatic calibration desactivated"} + else if(octetCalibrationActivate===1){return "Automatic calibration activated"}; + } + + function co2Threshold(octetCO2Threshold) + { + return {"value":octetCO2Threshold, "unit":"ppm"}; + } + + function active(octetActive) + { + if(octetActive===0){return "Non-active"} + else if(octetActive===1){return "Active "}; + } + + function notificationByLEDandBuzzer(octetNotification) + { + if(octetNotification===0){return "CO2"} + else if(octetNotification===1){return "IziAir"}; + } + + function loraRegion(octetLoRaRegion) + { + const message_name =["EU868","US915","AS923","AU915","KR920","IN865","RU864"] + return message_name[octetLoRaRegion] + } + + function deltaCO2(octetDeltaCO2) + { + if(octetDeltaCO2===255){return "Desactivated"} + else{return {"value":(octetDeltaCO2*0.25),"unit":"ppm"}} + } + + function deltaTemp(octetDeltaTemp) + { + if(octetDeltaTemp===127){return "Desactivated"} + else{return {"value":(octetDeltaTemp*0.1),"unit":"ppm"}} + } + + function co2Threshold(octetCO2Threshold) + { + return {"value":octetCO2Threshold, "unit":"ppm"}; + } + + function transmissionPeriodHistorical(octetPeriodHistorical) + { + if(octetPeriodHistorical===255){return "Erreur"} + else{return {"value":(octetPeriodHistorical*0.1),"unit":"ppm"}} + } + + function pendingJoin(octetPending) + { + if(octetPending===0){return "No join request"} + else if(octetPending===1){return "Programmed join request"}; + } + + function nfcStatus(octetNfcStatus) + { + if(octetNfcStatus===0){return "No join request"} + else if(octetNfcStatus===1){return "Programmed join request"}; + } + + ////////////////////////////////////////////////////////////////////// + ////// Hex to binary + //////////////////////////////////////////////////////////////////// + + function hexToBinary(stringHex) + { + var string_bin="" + var string_bin_elements=""; + for(i=0;i> 6) & 0x3FF; + var data_humidity = (parseInt(stringHex.substring(6,9),16)) & 0x3FF; + var data_co2 = (parseInt(stringHex.substring(9,13),16)>>2) & 0x3FFF; + var data_covt = (parseInt(stringHex.substring(12,16),16)) & 0x3FFF; + var data_luminosity = (parseInt(stringHex.substring(16,19),16) >> 2) & 0x3FF; + var data_button_press = (parseInt(stringHex.substring(18,20),16)>>5) & 0x01; + var data_avg_noise = (parseInt(stringHex.substring(18,21),16)>>2) & 0x7F; + var data_peak_noise = (parseInt(stringHex.substring(20,23),16) >> 3) & 0x7F; + var data_occupancy_rate = (parseInt(stringHex.substring(22,24),16)) & 0x7F; + var data_izi_air_global = (parseInt(stringHex.substring(24,26),16) >> 5) & 0x07; + var data_izi_air_src = (parseInt(stringHex.substring(24,26),16) >> 1) & 0x0F; + var data_izi_air_co2 = (parseInt(stringHex.substring(25,27),16) >> 2) & 0x07; + var data_izi_air_cov = (parseInt(stringHex.substring(26,28),16) >> 3) & 0x07; + + data = { "typeOfProduct": typeOfProduct(octetTypeProduit), + "typeOfMessage": typeOfMessage(octetTypeMessage), + "temperature": temperature(data_temperature), + "humidity": humidity(data_humidity) , + "co2": co2(data_co2), + "covt": covt(data_covt), + "luminosity": luminosity(data_luminosity), + "buttonPress": buttonPress(data_button_press) , + "averageNoise": averageNoise(data_avg_noise) , + "peakNoise": peakNoise(data_peak_noise), + "occupancyRate": occupancyRate(data_occupancy_rate), + "iziairGlobal": iaqGlobalArgument(data_izi_air_global) , + "iziairSrc": iaqSourceArgument(data_izi_air_src), + "iziairCo2": iaqGlobalArgument(data_izi_air_co2), + "iziairCov": iaqGlobalArgument(data_izi_air_cov), + }; + return data; + } + + function historicalCO2DataOutput(stringHex) + { + var mesure = []; + var debugmesure = []; + var i = 0; + var offset_octet = 0; + + var data_nombre_mesures = (parseInt(stringHex.substring(4,6),16)>>2)&0x3F; + var data_time_between_measurement_sec = 60 * ((parseInt(stringHex.substring(4,8),16)>>2)&0xFF); + var data_repetition = (parseInt(stringHex.substring(7,9),16))&0x3F; + var binary=hexToBinary(stringHex) + + + for(i=0;i>2)&0x3F; + var data_time_between_measurement_sec = 60 * ((parseInt(stringHex.substring(4,8),16)>>2)&0xFF); + var data_repetition = (parseInt(stringHex.substring(7,9),16))&0x3F; + var binary=hexToBinary(stringHex) + + + + + for(i=0;i>1) & 0x07; + var data_hw_status_temperature = (parseInt(stringHex.substring(12,14),16)>>5) & 0x07; + à corriger + */ + function productStatusDataOutput(stringHex) + { + var data_hw_version = (parseInt(stringHex.substring(4,6),16)) & 0xFF; + var data_sw_version = (parseInt(stringHex.substring(6,8),16)) & 0xFF; + var data_power_source = (parseInt(stringHex.substring(8,10),16)>>6) & 0x07; + var data_battery_voltage = (parseInt(stringHex.substring(8,11),16)) & 0x3FF; + var data_battery_level = (parseInt(stringHex.substring(10,12),16) >> 1 ) & 0x07; + var data_hw_status = (parseInt(stringHex.substring(10,12),16)) & 0x01; + var data_hw_status_temperature = (parseInt(stringHex.substring(11,13),16)>>1) & 0x07; + var data_hw_status_co2 = (parseInt(stringHex.substring(12,14),16)>>2) & 0x07; + var data_hw_status_covt = (parseInt(stringHex.substring(13,15),16)>>3) & 0x07; + var data_hw_status_pir = (parseInt(stringHex.substring(13,15),16)) & 0x07; + var data_hw_status_microphone = (parseInt(stringHex.substring(14,16),16)>>1) & 0x07; + var data_hw_status_luminosity = (parseInt(stringHex.substring(15,17),16)>>3) & 0x07; + var data_hw_status_SD= (parseInt(stringHex.substring(16,18),16)>>3) & 0x07; + var data_activation_time = parseInt(stringHex.substring(16,19),16) & 0x3FF; + var data_co2_last_manual_calibration_time = parseInt(stringHex.substring(19,21),16); + + data = { "typeOfProduct": typeOfProduct(octetTypeProduit), + "typeOfMessage": typeOfMessage(octetTypeMessage), + "hardwareVersion":data_hw_version, + "softwareVersion":data_sw_version, + "powerSource":powerSource(data_power_source), + "batteryVoltage":batteryVoltage(data_battery_voltage), + "batteryLevel":batterieLevelArgument(data_battery_level), + "hardwareStatus":productHwStatusArgument(data_hw_status), + "temperatureSensorStatus":sensorStatusArgument(data_hw_status_temperature), + "co2SensorStatus":sensorStatusArgument(data_hw_status_co2), + "covtSensorStatus":sensorStatusArgument(data_hw_status_covt), + "pirSensorStatus":sensorStatusArgument(data_hw_status_pir), + "microphoneStatus":sensorStatusArgument(data_hw_status_microphone), + "luminositySensorStatus":sensorStatusArgument(data_hw_status_luminosity), + "sdStatus":sdStatusArgument(data_hw_status_SD), + "cumulativeProductActivationTime":productActivationTimeCounter(data_activation_time), + "timeSinceLastManualCalibration": {"value":data_co2_last_manual_calibration_time,"unit":"days"} + }; + return data; + } + + function productConfigurationDataOutput(stringHex) + { + var data_config_source = (parseInt(stringHex.substring(4,5),16)>>1) & 0x07; + var data_config_status = (parseInt(stringHex.substring(4,6),16)>>3) & 0x03; + var data_periode_mesure = (parseInt(stringHex.substring(5,7),16)>>2) & 0x1F; + var data_sensor_on_off_temperature = (parseInt(stringHex.substring(6,7),16)>>1) & 0x01; + var data_sensor_on_off_co2 = (parseInt(stringHex.substring(6,7),16)) & 0x01; + var data_sensor_on_off_cov = (parseInt(stringHex.substring(7,8),16)>>3) & 0x01; + var data_sensor_on_off_pir = (parseInt(stringHex.substring(7,8),16)>>2) & 0x01; + var data_sensor_on_off_microphone = (parseInt(stringHex.substring(7,8),16)>>1) & 0x01; + var data_sensor_on_off_luminosity = (parseInt(stringHex.substring(7,8),16)) & 0x01; + var data_sd_storage_on_off = (parseInt(stringHex.substring(8,9),16)>>3) & 0x01; + var data_co2_auto_calibration = (parseInt(stringHex.substring(8,9),16)>>2) & 0x01; + var data_co2_medium_level = (parseInt(stringHex.substring(8,11),16)) & 0x3FF; + var data_co2_high_level = (parseInt(stringHex.substring(11,14),16)>>2) & 0x3FF; + var data_led_on_off = (parseInt(stringHex.substring(13,14),16) >> 1) & 0x01; + var data_led_orange_on_off = (parseInt(stringHex.substring(13,14),16)) & 0x01; + var data_buzzer_on_off = (parseInt(stringHex.substring(14,15),16) >> 3) & 0x01; + var data_buzzer_confirm_on_off = (parseInt(stringHex.substring(14,15),16) >> 2) & 0x01; + var data_led_source = parseInt(stringHex.substring(14,15), 16) & 0x03; + var data_button_on_off = (parseInt(stringHex.substring(15,16),16) >> 3) & 0x01; + var data_lora_region = (parseInt(stringHex.substring(15,17), 16)>>3) & 0x0F; + var data_periodic_tx_on_off = (parseInt(stringHex.substring(16,17),16) >> 2) & 0x01; + var data_periodic_tx_period = (parseInt(stringHex.substring(16,18),16)) & 0x01; + var data_periodic_delta_co2 = (parseInt(stringHex.substring(18,20),16)) & 0xFF; + var data_periodic_delta_temp = (parseInt(stringHex.substring(20,22),16)>>1) & 0x7F; + var data_datalog_co2_on_off = (parseInt(stringHex.substring(21,22),16)) & 0x01; + var data_datalog_temperature_on_off = (parseInt(stringHex.substring(22,23),16)>>3) & 0x01; + var data_datalog_new_measure = (parseInt(stringHex.substring(22,24),16)>>1) & 0x3F; + var data_datalog_repetition = (parseInt(stringHex.substring(23,25),16)) & 0x1F; + var data_datalog_tx_period = (parseInt(stringHex.substring(25,27),16)) & 0xFF; + var data_pending_join = (parseInt(stringHex.substring(26,27),16)) & 0x01; + var data_nfc_status = (parseInt(stringHex.substring(27,28),16)>>2) & 0x03; + var data_date_produit_annee = (parseInt(stringHex.substring(27,29),16)>>2) & 0x3F; + var data_date_produit_mois = (parseInt(stringHex.substring(29,31),16)) & 0x0F; + var data_date_produit_jour = (parseInt(stringHex.substring(30,32),16)>>2) & 0x1F; + var data_date_produit_heure = (parseInt(stringHex.substring(31,33),16)>>1) & 0x1F; + var data_date_produit_minute = (parseInt(stringHex.substring(32,35),16)>>3) & 0x3F; + + + data = { "typeOfProduct": typeOfProduct(octetTypeProduit), + "typeOfMessage": typeOfMessage(octetTypeMessage), + "configurationSource": reconfigurationSource(data_config_source), + "configurationStatus": reconfigurationState(data_config_status), + "periodBetween2measures": period(data_periode_mesure), + "temperatureSensorActivation":sensorActivation(data_sensor_on_off_temperature), + "co2SensorActivation":sensorActivation(data_sensor_on_off_co2), + "covSensorActivation":sensorActivation(data_sensor_on_off_cov), + "pirSensorActivation":sensorActivation(data_sensor_on_off_pir), + "microphoneSensorActivation":sensorActivation(data_sensor_on_off_microphone), + "luminositySensorActivation":sensorActivation(data_sensor_on_off_luminosity), + "localStorageActivation":sdActivation(data_sd_storage_on_off), + "automaticCalibrationActivation": calibrationActivation(data_co2_auto_calibration), + "mediumCO2Threshold":co2Threshold(data_co2_medium_level), + "highCO2Threshold":co2Threshold(data_co2_high_level), + "ledActivation":active(data_led_on_off), + "orangeLEDActivation":active(data_led_orange_on_off), + "buzzerActivation":active(data_buzzer_on_off), + "buzzerConfirmationActivation":active(data_buzzer_confirm_on_off), + "ledSourceActivation":notificationByLEDandBuzzer(data_led_source), + "buttonNotification":active(data_button_on_off), + "loraRegion":loraRegion(data_lora_region), + "periodicalDataActivation":active(data_periodic_tx_on_off), + "dataTransmissionPeriod":period(data_periodic_tx_period), + "deltaCO2":deltaCO2(data_periodic_delta_co2), + "deltaTemperature": deltaTemp(data_periodic_delta_temp), + "historicalCO2DataActivation":active(data_datalog_co2_on_off), + "historicalTemperatureDataActivation":active(data_datalog_temperature_on_off), + "numberOfRecordsInADatalogMessage":data_datalog_new_measure, + "numberOfMessagesFor1Record":data_datalog_repetition, + "transmissionPeriodOfHistoricalMessage":transmissionPeriodHistorical(data_datalog_tx_period), + "networkJoinStatus": pendingJoin(data_pending_join), + "nfcStatus": nfcStatus(data_nfc_status), + "productDate:Year": {"value":data_date_produit_annee,"unit":"year"}, + "productDate:Month": {"value":data_date_produit_mois,"unit":"month"}, + "productDate:Day": {"value":data_date_produit_jour,"unit":"day"}, + "productDate:Hours": {"value":data_date_produit_heure,"unit":"hours"}, + "productDate:Minutes": {"value":data_date_produit_minute,"unit":"minutes"} + + }; + + return data; + } + data=dataOutput(octetTypeMessage); +return {data}; + +} // end of decoder + + diff --git a/vendor/nexelec/sign-codec.yaml b/vendor/nexelec/sign-codec.yaml new file mode 100644 index 0000000000..3535c0ce28 --- /dev/null +++ b/vendor/nexelec/sign-codec.yaml @@ -0,0 +1,10 @@ +# Uplink decoder decodes binary data uplink into a JSON object (optional) +# For documentation on writing encoders and decoders, see: https://thethingsstack.io/integrations/payload-formatters/javascript/ +uplinkDecoder: + fileName: sign-codec.js + +downlinkEncoder: + fileName: sign-codec.js + +downlinkDecoder: + fileName: sign-codec.js diff --git a/vendor/nexelec/sign-profile.yaml b/vendor/nexelec/sign-profile.yaml new file mode 100644 index 0000000000..edcc14b18a --- /dev/null +++ b/vendor/nexelec/sign-profile.yaml @@ -0,0 +1,52 @@ +# Vendor profile ID, can be freely issued by the vendor +# This vendor profile ID is also used on the QR code for LoRaWAN devices, see +# https://lora-alliance.org/sites/default/files/2020-10/LoRa_Alliance_Vendor_ID_for_QR_Code.pdf +vendorProfileID: 0686 + +# LoRaWAN MAC version: 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4 or 1.1 +macVersion: 1.0.2 +# LoRaWAN Regional Parameters version. Values depend on the LoRaWAN version: +# 1.0: TS001-1.0 +# 1.0.1: TS001-1.0.1 +# 1.0.2: RP001-1.0.2 or RP001-1.0.2-RevB +# 1.0.3: RP001-1.0.3-RevA +# 1.0.4: RP002-1.0.0 or RP002-1.0.1 +# 1.1: RP001-1.1-RevA or RP001-1.1-RevB +regionalParametersVersion: RP001-1.0.2-RevB + +# Whether the end device supports join (OTAA) or not (ABP) +supportsJoin: true +# If your device is an ABP device (supportsJoin is false), uncomment the following fields: +# RX1 delay +#rx1Delay: 5 +# RX1 data rate offset +#rx1DataRateOffset: 0 +# RX2 data rate index +#rx2DataRateIndex: 0 +# RX2 frequency (MHz) +#rx2Frequency: 869.525 +# Factory preset frequencies (MHz) +#factoryPresetFrequencies: [868.1, 868.3, 868.5, 867.1, 867.3, 867.5, 867.7, 867.9] + +# Maximum EIRP +maxEIRP: 14 +# Whether the end device supports 32-bit frame counters +supports32bitFCnt: true + +# Whether the end device supports class B +supportsClassB: false +# If your device supports class B, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classBTimeout: 60 +# Ping slot period (seconds) +#pingSlotPeriod: 128 +# Ping slot data rate index +#pingSlotDataRateIndex: 0 +# Ping slot frequency (MHz). Set to 0 if the band supports ping slot frequency hopping. +#pingSlotFrequency: 869.525 + +# Whether the end device supports class C +supportsClassC: false +# If your device supports class C, uncomment the following fields: +# Maximum delay for the end device to answer a MAC request or confirmed downlink frame (seconds) +#classCTimeout: 60 diff --git a/vendor/nexelec/sign.png b/vendor/nexelec/sign.png new file mode 100644 index 0000000000000000000000000000000000000000..de62f72766859bd23d5cec2840d9ea02ae7aa8ae GIT binary patch literal 121956 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

S;%mS&<1yN5I zI5u&y3pSvBmSV9@ndj4uz`kmt&3UZJ>ox$z6DXnTz?{`s(GwvO6LzrRxs6-6XlTY;G(r(7Ic%jcHJrmA&F8|ofvrp}AjYrLBi-rV@Kh1L} zcauFMgFXia^*_wCGEV_m!U-3@lZjFbj`0isuf5mANb##{v%e-%rhqP*%E-)Q&G>O> zSabPp=tFl3;$e#js^7&#=MeWw{SJg})Re|XrR~bUl}XU)Zq;vwij73K)*YCUCnK+^ zomcVN8?0vB`nSQIyQeUdq%qjey`EVj^tk@mk?<`288yjxK|{0JDoZvQ{- z5X*6uGcz5&<&;x2hdD)uyE{y`LOD#9Q%*S~Glx;gSvMlbQBgUJoXa^jhSrd;H%>!*ZM-$kQq-Pfi6<5J$FL}$oCb}S!4`yTz zXDs8(&pd{Pie%d8O$;)hxe>b8RYO7~CG?ddQW0m1n_!9 zG2v>xj^`h&ZW`1&CFKFwbc=;ojlTF2@{NHib32splv-K zoUha9ss9bhi!f$&x@9*kRB-J=m^WO83e^nV{5^4M+ur3Qy0Avl*m|CCjkH`5a;FcH zX!G@u1w=R%=(zxyNE=u}yMxCpGb7_EWu^zNl^O1T3PRZqs_x!2!;~xBvwCXM%l^y$ zp`N+yv^%HXJiDB6|5AsG!QMEd@}PRY+L@Od=%w1!<+Lk_$8sYz3mvvuz}~eI00JIu zaUtoVIX5J9BTv?5cYarh@Ay%fyIE2?b`E^SV@BSrGa6hGn6^s?PP;dtx}1ehMFezG zIfz1;40x24!?(zq%L<}E3!C)S5lNLmI%o(C;3kl78#Yq$s?X^9CqjDilbDU-n?lm> zN&!q(34Xs_!FfPDdf$z5TB$Pn6a4YFHsGcU%yGYwU!^TW(m{Ws<8r9Gy$7-@Jm1GU zt@Ovv4V96KWN&)X1~5#a5kJR9;c4$4f+$_JpLbirg@9e*GO=;P@sEv~9g*1=|PEJZTBc63omT| zFV%s%jPHAAm3-=Ntd9}(18f8a($9xaZ9SsRA@}3LDnus6*662dodT&uwbR~B`tga5 zFWcB3=Hf@0=X7Ll$}0QvUf?}5H#gIJ&hp;w=EHTZn}+>Te@{*p+{Lc7!Y#clYf*5s zvk2R>2z(E~rQz}grujp7*oY}kWo}apvk{+=SZGTQ94R%&>{zHWdM*lNioHc=A{Lql z*->TK#zRLH0uXLKGRP=ln4dy>-bn{VbMtR}lJ=*j8W5{F>0>EN@_u$w!G(FjG#2^A zF56uEJAHDQBfBda_1gkNwsoo(_lF1(G^e_q!HHJL-Cbk93U)FZou__%WI~<$BUGlM z`-4&=k*ieAwYL;cisG(v$UPLEBIUH?h8n)ZC` zc0C}1WIPb|+A}v_D-`J9FnHBTqyV|q>7`$P0%{r6&dv6Gms>8MfEWW90$E)o9)R2- z(T})Z8gWS*-0NhVcU0{=-V;%*JRVf2LDA(Ou=z+Ddwk05+;J)x2Hy|-8A-AC0C&7; z;; zn%JOxzC;ncH)W><^Z#klS=#F-+nuuf=^z z*q%4gDn;x{cj$;)Ox1c4L)xWz*ZMs znS1oCgQC?JgHHYy(vZIqYt`V0NsNLBEAQ8wz9E1PRD2aEYzOSq>f+g_!Pznc430rs zWK9b?QnRMf6=<&t9hbld#6k(D)m1{AZg|eMPG)@ezP$am_~XP__lAZ2!DoC<=wS8R z(8$ou@$UiG|45jkIe*j|MCrjDMd_}{U5J(D*Oj?6pEJw)FW*@8cisK=sW$J5gFdd| z%Gsnt#RpEOd%>CbdK@E7QHWL)Tp(s(2rN$QgRlFYb}!iB(r+Ia%^oc94SJa0K*0%Y zK&#wz89+5?IDl)z!-8m(BDM-m;W|vy?)QTbEX?|EOnIl8zjFA_l?$}%?`?oM>$l;S zhL`sZ0OpbHb_V3eDR3uqP21i*V3X58zZ5ahG9`+Z(+^z*g*}a%`Cf-@j-mTx>%RQ4 zBzQQNe>Uityu8?HY(nT{B}WH#$|e5+ZhoE(T;gh0=JrwxF^dMMvf%5UE)Z-9Q%}m_ zGC4n6XxB6^QQ)3;E{~IXp+CxG;lib+0Huih;?u_XAcRrWVI?aj5EjUzv6YN$_ zzWI2v8DDDXEL7AkOwtG@$8{@+(Vv**uly}5Ii!o_;~|Y&7x)Y;5<^>_R~xtzUVA~Q zh8NO{!av!xY7JHutW}konB>N(ejzN^_o-b4&H@t0cojZ(-e8-{X>y4j=t6rpYefUs zw8!F{hsSQHzR=&bp}&`p6)!af;cDx(#;q-$(jGD28R9@6_GkQ*kxy_*P>bRP!36Da z+5Z1JADU6y_g&-8@`_tV^%&=W2dhjjS=Q=&8vxqa38R^AhdHMHiC8KQ$(~~>wPRfM zQ4m1B=fkSipI7`VLcc8OH%P|sUrHR;fRO@5h6?pa+&Q~xzpi^0hWK5r{o>aA>kNlq z^3Z9Mc|DCw8EWMAsx;t)i~GZ=y7l8j+rce^tq*J3txV+H@uH5=tSdA7&gc9G?9QC5 zLA{8|*r2nn%4MS*+1 zebl~%f~{EGqJIM{>g=0dDSM#$8rU=3+9nrSa#Z}!k0s1yQml6FCrxElDDF9Y@tYo& zPd`~~vxsfx(L=9h4V7XUVcu@s&RWZH)dk?NcHP>4-awVMdELS*fRn?q%>vC>fcS^B zMnCdcZSdk>2_UUQV*OeItt)_nIGId35 zh8-Y-c`)|y=#yhwk6|&JkwK8>Z_SXj@xm$XvdbBmnf-4DiTO>DzCkMI z3GaQFvoE{5GE>ec2uURfT?{fC&R!@#j&V0B$-mp0EjRMZu&A$EeNVPA9=hpJ+h(s^ z&b&(xEc6T+7TE-?l31`n&+$GZyZM1YfES?|!0xS^btND2wBkj;A6ZER)IlY|iyY%s zOw19Gu?d;^4N^({ZE#?iAQZ}Gz)a2p4**bv(M)!oFlB7C-vb`nN@Rnu8eI*9 z0`7g_qo=D5YP)?d7zh4`cct!TeF7qoF$rN3=F^RSdpD zUXn$ubae?yHp==Uf`t{bhcDl|Y^jBIEQ+6vbaD+XJ|VpjxOi>R2%gyx5Ff+GW)8OW z5xj<6&!}|mxnE|iZPla*uz9~3OuI30s85gncC}4qUE|{)x~d-FzsQWe%X!B#Bqo8l~H<<+^3I>WH2{URt zd}UTb7)q#iJ_Jz8#me`ZH!u`8P8I4buxnn#0|f~h)>mO z=Ia7`Li{WCK-2G4pw>sXnohy^_i7A!Dn z>vd-@(XF8PveA?XYqrD?vQBw%Ki*ios4q})=foA-Zl{%CgL&t>bT4lqvgw0^aANBT zUysHyMu!Dx__sx;P%SZv0_s!;cuu8jZHU6UA?g}UJ+v1<(9Cm$TT(i2)5R%Dh51FV?=?y>-m_Ss z!MrIpe}z}Ep0%kM!ms!ZXpyp$8I8irJMspiHjPxcGv;J(b?lD{A31$jV4Hh*Udomn z8fmQKz$8nrYZKF=L4WOyG{K`5RkXBwwO02>31NXGrF&WxzKA?z_-92o1fXLhr6%@?``vQ;wh$1QAj-BcJLD%wJ#7$JTRv z%VjOhk_;MUGYBc7Bb-z=TBTUKx5}$)>l~MnTClkdjmMh+>Y`Iqv|QFQB-I_xcr68f z8#>g4!v&5M+gCRdOu}0#5Cc7$)^gT?Pk+`vNw%}$;WbhyAV=-PF22B;64fM1`*zp&%B%Dl;wkyE?M}#%?WrWnZQb8(jLVky z;VhncMzTOl-=(GEuua@oJ&iuzwEk_3b;rw_WgdeGfN5PbKS2YVSHs*G8&_~|j$j#v zg|x(5$f+!W3c+K!kJP5Sr~mQMM&(eMk5{L2vBT$tF!#&1 zr;ZM{3@`u)x9$M+O63O)P!)#-v8E0wVU(u2uCNSY<;w_*x>KA_&nQDU)h^r9GvNBJ z%KWPUF$a+v{iaryyK2q3M{nmkHJr||iHCF!_3I8Hn$VXd`=dfUU2=C#dTa?_dZoKJM%bMB1C-RB1?S#y>0d1pgCvAVtcgW{}?CO8zil5y=IV}MW0D8>I-;sbl?P$USJD{-XKlhdh4~x_A+}=ZVtUIY- z#znuO14E-bd&a?@eHpOfZz zH_R1mjrv}TK5aA~Igo4gf})E+cU!>7N34g~zykXF-tW=JnctedxqaJ1xt_b_k@s^xfG<>-YicKFs{Yr~%*x9G_EXUu%^k7mSDyBVecR%Y zywUkyXbm{)xSm3hx>j=H(Jh}g#>2oS#vtX^zG*;5RIb*3f{~(ZVxz{#37_#=5yEBQ zX?piaPn+Z|BGXfc32^-2El7UCU$9eX8@dF%y@JUv(o8;PS$C+9wpYo2=3FI@uzbzQ7*) z+-p45Vd#1cx) z>O)XfD#-(MYXF^|{68_Cq>*ISPC2k4o>L>vH11^{F z?$)b78@-q}&~4Ig{T{Rr`s-TTZEw1q*0}G#p~t?24u{*>f#kPf03m4w9n<8#!!m?w z{E=^I((kpZ_xB5Tdw!DMM&#};-fF7=d46yQBU|u~w=u7|37plVqCNJh>98nN@k&)V zaKF;axN_i1N-NIt#XK7#1ZpHbixsGOLGXLphz8KEc`z=}Bx$#TttOViXgTbJfn4=abi9kYb7BsFdj8B_Opt842>=12C@Nz_pU;jM+T4 zBT?7R&h^LT6RiaNEL{sOj|=nP$r9&wUT%K0U+&>6Ag z$TDhrv}hd4Tt)Dp+4Nb(JO4CC@4iYi(LgY8w0Z0H+|aA6Mjv;e_rpe0lsb#VxS4+i zAQoioTVvNzh&nR7p`JAxVXOmSrkgjcf)nvimZjOm_`rll@degKb_-UF-^{lp@#&f0 zQm5IZU9+JJo#@qMWC87cXV|m$?0RW%uaI((6I*>#clnItxiH=ycnILvNTR-Oz9)W% zY#)@!{&AGMr-F2$xYYC`UfRJct5)M9a!aOB><5R`qss@_dRllx#e$ybGCQn>Y4mli z%hMJMX)+zoo1IR>2h+wiLxwc%04PQQmZGZx)P4jqsL6aywIT6cV>?;CW(zyt&_644 ztM#Ug1`Mf+mBM@gLrO%7H|A}0n(!estr{Vf^@g3EgL*Wyt7#|_ zT;yR${fLrj1hQ1X^d>Vd5;pwerhVOAI6P);*9N#yp5j8ijrh zsrXmgIHb@(Tl)JsSIxB#@0bvz$kSUga5-hVp{=x*;we9}!n^s$MUz73k!7@(O9!ij z7J|>9l(C`TKlECwLqO-|0nZPRhx~=Fxh7S9%kK;Ge}bR0GQJ)!>_R;A=L2)T$4I;r z$m`So!sA3J8ik6x4@T^K0$f|V2MVBSk=@i9H}7Hroy}if#8*937rIhH<1V_ws89)Z z;~CbL@CjlbzZ!DJUfcP`_c(10v9KiV19>y88awpMqvK_5<$Hn`b_P#Y^_TcN!P>u!aU|rwX)2{R2!w)JUi#0)QF8eX;)&m+~HQ;p>yq+}` zEY;j0io)Kc8$kQy*Q^>_EK59wDTpu}f7T!nQ;|GM)grsrMgzHQeN07aR{y>tg>2He zpNjX0OZ#IE_4%u41q%E&{607KsWN6zPpyQU&uMJ(EluXi4A-^c+{u)>D~ETC>5ZP| zdODf1OKl8l^Nq=Z>6d+7r!oEnwv;~^vY)@#px|8FD;>}EAxWrDwvytYNroO5!MgWF zDc0Lw)f2*}>g9P%CUC!y0I_kSk~uwHiUl;TB)#tD4S|QLkMfQMPPn0x%IaCWbopLu zEw2aX9&hHaxB8f{JMza0@kRj|#%LpvT%azjYufRBgjiozJ!)x*} z&6DL`&{+e=i5}1DGkVn7d5-@Qk#TpRhxK*;MMW=f*JT<(EFaje`CuM|=XYh{QP)5S zd`^g3$Z}EX7YQMgU)TL!bxT$rrhpXRTGQCcn*Aqq03e=%K)f0a$rFE-=$tDrwv?FQ zw3KiR7Y09dofp$P1(ZU@&A2M!qoTcGV3_}c_AovL@c(c*!h)>b1H|k zDm5T0y~zh6k1j@z@P{UWY?!+qC$9iK6NNe@D)>AHYHKAr;?-!;j$^6L{*JhGKW>#* zU0cq)^9~e<_nh}z9}ls#dnFr>k7vvjvG0eRBXa!xq6<;7p)Ql5{W+y|LkSi=$X>EbU zFIG-f;bp31=a=*gdzS!NOP?KDSa5LA=SZg^a_1LRu*CUYc1b8E6;Y zdwvoSnBnr&M%-kcw_xTl>nVZ>8@@taUmhqqi=+s=Zz}cs%md3s{k6K z2UIqHnChlsj$TFp{q$1Kor+kb|5P~PL~(_om6zF;tp8^9X#hd&O45jn=*BiF<`ULS ze3c6Jq|Byy&{Lk@&E!mBU{Fm`K#y^AR%aG?ZtVYjV1pg?V6nGUwa=Zw?@Y zk1^Cf?~+PFQa$h~?P>s(pKTl9#=^Al7gqY2a0hy%ytsx2JbqtG1O92qh!&A#o@z!_ z7oE1aCtD>n1iGhU2?I7jC+8F~*uI)UPO6!d>$5=^gXJhXM95${Xqz9>Yh%d9KM=rOQIbziY!_yUdB()S2%n)Jvj8T#J`hu!saLf8t1iK~ z0=Plk1rGJYkLPY&LFPGewL4A_d{#n>iVk-1N4w)d0JMp*5?dD>Mmr9RvEur5HH~#c zFJ`vA)C@YVBU2x3M(Pr7j5gm5jK%$z`u5Y9bASZ*z6lH_$Vh}K#%GC0)x>yz^DoJf zng@#XZgWKihb#@p9<3qE5Jr(eqiLg#>NA4y5Omm!%tsZ$)Ho2-qYus@%Zt1l^dNC| z4tFjSuRh9E$(iZ%$!W={icU+EUNXx$phcjwehZsWv=2YcZ{9Jp&tC1}LZlSVH(zyC zMY$4hr(Se5OT9tFmYQleq6?LDO=S$B`5pzpc7>$&ikxNRue-_4RL}Dbk^RbG0sOWd zH{{u&8r1*nX*Fcd9eI#w=@7x%VF?R3zus2^57k{apm%CO*lJ~IExdF+Z`&Cx#*dd*aCJNOQW9e#*1_GN65*4BDV4$ zv`m>1`ColUaBV+TU9;bA6Z4|ZQ~mZCXHqDC3EK+m#q&tu_13=`Hwc_mnTXM6z zSJQ6em&tKJ8KCOzI$L20)oy&{8s?zG9^ypTc{u_L$SRx+EUqiIX47VjSsQw8Wcj$1 ze6l(|{-ZPCT>eDUulvsgi2B5;S$5eAZa4v%a>t#_6ct0Sc*5PuIIxDH*#$z8{^lpX zEm~1yjpD{*h4NqP@Xd3!2iH)BKb{9ygA}#>iIy79ekIGrLSqYjOGQ2CJnfdAbN%~4 zdxjdh0W5MRaz`Qk3gZbDDW@>ZkYdc6xg{gQ<@l*nuu1T@Pf$M z_rwdniJn38xoQ8-16)+fXYSgV2CfsmpSe4D)U?gy#hZSAYjR(&)HD=}WXt1ynE{56@p)%WqzRSk`*$^m31&DQMU!u3VEa^XbA zVB#;rjYy%xa~gPa=U_kKv3o9k7FdMe7$TD%Z0YSa&;T4?@!?+8dBdgHV8TX$rGYDk zrk?)M^idgMIPvh*@DS$F3Br}A;P4V(SFh+Vf6pjM901W*o>=b5GqXRw2y+SxLBb|D z0Ggwv#DT@^MMPa6itu$|70-Uf(FK|P~7(hbPdcBr#61qR+4Q_AE<2LmJ(!|UV>r)ciAHucg!oMu(yrGxB&JwC# zb5|)>+yKyOz$|?;%crCJXT7FnmKui@KTAm-;*|vFA=K zj}(8@$sKYJ^w);PB|RzEcsIVfy7kS6&~~ShmleM7NSTwgYqnEo+D2W>K4(3{cs`a&=tcS8TP*oTKEH|xz_6!5s@}l4Q32)DeX|- zfKd5txf);zdH6F1G@PF9g{=QrLL>uLs<1)N79Vyuf5NApNz17ia!xEgJ9OQ1OLylJxthwYNZq;E04mXb-D(G6mMVW_SYt))oVP=Jx%$KD35I~2pc`(8M&m2Gox z#ljp@dl@(0f6Inj!&sGhzr0!jdmXRn;myEP>1k&OQT@lR7skwkrg}%)S)b*sAG$!= z?%ON$dF4ogdfrZt>HHJH{+v}C!?_uOi_G#T$HdF|WvS*hDHWhZrPg&#*^kZ3CggBE zuX$BK+;N>if={j`GV;#U66>Eq7d(Z?Ca#qIYWImW1Jd&)TGsc_?w4ObS#f)3k*tPq z{@SovOE{;;FeF}RUUCQc9qd;EGpl^>VsM^}Yau6gk69g2@K)(c(DO01Z$Dz*7Nc@V zUWpYo3Dx8%`xCro$=SVrFH_mI@BkNC2B z$-GG_+i;n=U^ZvsT`#2mb}M)iSZ9fVl~;AI|4@j*vs(z8mjthDg|4usFL&@Aw*N1x zKl-G{ zTqy*eZw91edFkI+j&~yckTZyh0Km#0rTS{uFAMHsx$8=nC`MB_YTudX2K(pSEV& z>33B;5$ZR?OT;dj+XNlBVTE=TEbkt~3rIFwkHa)cg;xf)NgL|Kcu>`7(Uo%M>CIxj zh6?PSaFw^am)llSL(Q)hL#c-$9^0<91?(DE9EUhDNuJmq?%_oh0Xg$+oMi38-G}No zPH=HHB0Zh2M#eRPD`C*c7iwL%X4dM6dR}{;O1vk?zmZ3~r3*mzb7#*19{48`(u?xB z4yAI=T4V!0;r%xxV<s_i9#rTXWX2r|X1YF|tMX|Q;`zyUC)0zbC* zTaU?#lywznvjHufZV2j!<{O=}c6n(BxdzFjWkD!Y8S`c%nS;+NNr%2IwvLIQv)}2! zxR?Lwl@Fc;RV|?xoBvs0KQ9jUCI0l(5!oF9Wu`!U&0-Z-^Pq~C_pKgiBvKb+hJqv7 ziVVH^mm3zwmJ|`iWqQm4ePN|&hinna`BOcJsfvZ72AxI18?U~lID!IeE(hh+SnwfdZPg;NRlrF{V$h__LNBT6@O-BPl|e~7yivC}Ooek9nQ-w}bOIk`z6a8>) zD{i5JEdfD9{n3shlqEE6BnS-i99$=k+8WvfQCk!_Sy<{^E|6bmu@a^(1Fy=bYef=L z=J6WP+K^mURgow1dEvs-j@L%vA_4&Y5HtPebn|czUd}irUA+C)N;X+2UEE7iw-y~} z(Mc(tYkf0vj`y4+)A7>Z%U{j%Nj{x@{bhohrojfnP(*mNlNHAfUAbMRn2mx^UtnUJGU}~ zEfMk20x~Z#$1`sc5QHMkp10jDTZ6m{Oq@98SU~BKm1SHKRAs(;bv`i#vY*11oHBom zTV{ob#fi%Nq;0xQ@}CEx>W;ULjX(JrQfgun*N(9aWS}l$kLD7PrcJ<04KB~z>(SvJ7Ci{oPG-MYvPURBKxNtTaI^!oeOsIJ#Xw7R{+JRdoBp$ z$&4Yd>R*g-HP=H~K}q0s8I-R?Dh%4PI;i@s_502c=&#BZ1Kh^aHWjv(2H!eQJCJf(>Hgp8~^7z?yUi zYLZhWmtdcz=jsimzR4xIkmCl4Ogt%&6zzDgwmZ&5`yk#fZ_t5!RV;(0xV#hbR;Dvg zGAp3Bk|Y4Z2wCk^+`jpzuY%plY(EWKABmQZK7f+?#c^NsLTK~?pD*u9_t}2T?LY4f z^V>$xyt{T`{e(PD-ZHQw1+!#G;dyK?hee%H{}VrBoqPvRFz%@zyn^C!tO9)q-+AwX z#1Jf&I|iFKmW%M_eEP$ei#rkdKI z*GbRA{B7j=v~OOXt{*$>Q)KRk(Zgsy|E^6(Gcoj-!irx z#m^0*d(l{N0h#b@sqh!?P)&nt ze0R7mkjBldN#`53H+jHlo#XSTYm0*9fZyVX5wp`d?ZyEX^Jew`o|W-@cJ^MVE8K9? z4<26`tLAyliL~yhET`k;o08>mbeoxXe)WHGVbn|+3E99VvDS6AZ0u{XTNffwc6|1oYE4ad4uR_g4A8ZJ)Wh z*gE)uvTgoqu$7hBs}3b8wiVq6FAXp3&5AV#vR0!Ff)y`W(+mm4M4(;PnyVXpIT7dw ziRu6Ej;()*cpKkrRuX~L0MxDYF#~b-{;Wuq;75vP$?NQJ%MiI5h`L_67_*nUPj2aM z*2n3%X6dr3PY;QfEGN#80_g$R#lGO)RE1PR(1as@ZQW4hXk+1>}HuC z+<*vRe)~F&4VoEB=kT-n5Dqlz**$qZ-TsI%rbp^kq$r_Ac}t54NC_COF~DKz z;9GPNn*WqLVdU1%oc2w0>03T+Fy2?!Lfrg10KllU)-~bNiUI^G2ZOp;YLnlsnZsi; z>IAT!J-M+zd8*bQxHjH_t~2-f(5p^YBSoZ;exmI~INv-~%h1Og`M_Ga=KS?FBU@h4 zrhk7(g^l@4tV`W&V(;`*>*K`cQaEuxz8%TNUqzYNFfye~ppbvBDsS|tZ+0j|8Ab=E z*(?B6AiGV1$MWLTnjs?34e5%Mkt8ANt1_5N*sn3}xsBdz8A3x{zHM8V#Bo__?N!>t zNXl7osp^qhwocOs?3$mWg_qC=aH;Ns54|6nL^b{8df}@5D)vi5*@Bzw$#+syhv`-P*L&^%{MPWmGiRl4ZY2CdRkbe0NCU{-5 z1?YpEh=oYvrKXmhH7UG;N0YA*`4?Wr8TiO6XNWysO$ytm*3P>^44OJ0(HJVEya<2R}#M&iylvXskG;fg?^!=vw8m&`s+WnC`+*Hps_)fb#Dg`ueXxI+9I zs_thuj4B!lD2uWo3UT-6fRXc022X zn{Ob8=5sZ)Is5=CCWtjbyWMU6#M#b#`+_HAer(z^;ZrGV^TQU$xs4p{LgX{U@r@$% z8auf&j%-Z*t}8c6Xu5L1OZ}@Bq$u%JKa`x@3%E{&s2*qsJkWbDKA&M2 zr59v*QZI2v-tt(FO$BI6n0)rVq9|%($=V+D6va6 z!Q|)dRJlW)2A3`^arRm(a6;8_K7aeIf%KZ>%mO3d5-NJ0%p8wC8A98-d~KfpW1cH| zHDANO9uprCejn_$W$vogkA+Mwg5?Ao3<_!aSjcn@V5V2ALrEBH}?Uh6!*&~Jz2Y2pSIJYYC#DW#2 zFoAM?D()SLAWj&#DMQ1-F2BRHDm($3(H7xNdc$6W(O78#_(9O!r~rdkZYoO%RN3eB z!aOD&3k!R+znd;vol=Xp{i;jK^|{CG*-VB#D+?+=!_mKH`iS`@z0qS2vuf=u@?zc? zAdK>!+;=nBeP{4BWPE(ySR5241hHCWgEPw|zf+9b+y4L|!2a5)!x;%7J_!%>$@JM1 z61r3%jJ47vq9uH-{lnYu2kgB|^Z#k%uR1f$Pp%z^cs$^8+@nuLHezde+A*>n8YUv!~tFb*D%hwM#c!h13dAMSL!bOXWAK5Ja)k}`KOPz9D6y6yzLHjluU zB5P{bhsDTZ9T@-=iNHNQo^xhzzHe)VgZL4!|W|l;v zcU{@w(L`F_iN z1@*|2S1bh{+^*2d&se)=3v~uYy?*SxP~TH|KIZ=u=QA%^yQ%ximYTWDIqZqw&w721~j$@2l)x!%}k+9r6pwQR2(3rHxKQ6j)?Y9 zQ8s-3Ld81!?CxM&SE+r=is={l`>$jfX1%Q|6a~CGU2mz_L6~^6ujsUa3u4(CyJx4{ zpFnV^_p)Z5BQLsn5xa^Z2xr2ZpNNlmu;ESPpSf|$kq7i9q6*pLdc3^L>|k5xyBSO_A9`WtZC9?TYT+f}sX%eI%G$MR3* z+2qa!TD}MBm~jbsnJjRo7UBJ=nQ*IE-0`o96oP&IO>KjdV#F%}1hna-sTVYphE{bn zH{Y)eWA!WVcjliJV%+hqOjo&0C^{u6umOUlHn=s+PJ32Jt2(t@mt z-d!}~8j;u1r@Vp(?NMabqve=}>9;JIjYBovAnFp;_JAq%uXW9p{A~>73ei^1;LTR? z7l#L?oqux!A0LdtaF;FQw~;dRGA@)hhgJM*r;v%9%ym`{vdM2W2Q0@q``u=Ce%Gw} z!V+?~WvkRhSp?=wvd~vp3sholk==J^*A<*9WMi|~ruH$3#_oc5PX?I4OsMf&OnlTR7WRm_va7mM{*acQ&-I5Y@7s-W%R8ybqT?M_U>InN_oUJ@;uX zfs8c2Gn1G;W4PnzTl7O!aERLhPJ8X|3jnN$Qe~yNRU42-wa{+-vJ`I$a7gF{Tu&}+ za4ji(6VIqrbzbjNV|&~U&rS23;ku(0AgOckK`QBh-(ZWqC6rL+je4F14^Tznec6c< zkUzf(*=z3o6}_@64|b+2cgVgoE>01FW512nA|^a%(69e%>Uct@79J(O`tIJVs~(|8 z9G3p`G@4mv-hHmn!^uz0RoP9_&^g$% zutd+7fo1a0`qEe}DQOk&DOwV~zVk0n+BJzi&y-zH{9*r5R#Rs^=$eNRAwX(j^TXTG z3~3PQCqtx@bepplA?K~4RG5&VTi;`)rLX2m8X;({!kmQCMv;t(UYJvw!HN1`)##$jXNAET^Fq9;JoelZwb-hJn{%o%etTS<);uR&NK84}kJFxUnmyc6rx{^Y~K`rm|B zq>n4kr)pG2+GnPENbErOHOFHN`n9`@fgjoOqmmdznT=~#BCKGo$n=?E5E+q02)_xV z2_?)-1n7@wCTcWR?b!_1=p_@PYRJt)_Il-@g{lvD!8#?fKczGBVB<95J5iSj#C@j~ z0P?z=IVpJVf{gZmFdU$y?cABX0CKSeSlyY0cOZ#>I`A!D&fmm%^+k7iHbd|+A#dUheEfRIl z3m+VLKc2Pldn$CKJwKZ*N1Jz^?OvGNn~XKcQ0k8%DY1v4-7MTMUUl!C`#r!^r`Q4< zR*|9Br11kuvo`&lk@BbAOnc!y-tl~~Y5qYscp320qBKZ zsul8=)ZB&#vjr2|I&#_~;`9|y3(Emb2TZM1c!kf^7?ok)Jz%-rpT55eK3Zk1)dN4n z&CL!!)YPx}v}GCXe^w6=mIVNIm>Q#3_k~bbpt*iCHHnnlcbUh99;trowdkArTLO{b zsapWqO=q@sed(&2^gEW~DMVe);HJAhuIY=&s=FZCY1;~HsaElp2`F(s{pz`pjGv9W z-ym^kDorVa#oQnZcNR9NISXz}+ zNwEb)3(hE{oP)Mtac3!@G6aG?5}lo+?S2Q*(8 z(Y!mCcy+^!gQFw81$K-hm!EqPCzx+)C!qF>-vlg*(*S)q8SD;{*f`on9=Y$G*C^Hy zzOkSW_=&u^PSqxrp99yvkuw9ty;62S4|cbcd9xjR73`KEM8h#&3Y4P zP-(T)MP8xCFv%pTy;D`64&uSd@}q?T#kvb=nuph^socAADgw?8i(r;V{D)AM1EIKI z!7St&H7;#gxTgVEwf$MyTAAC=moE6vO1s%T!NxB(J3P;-$A8=hKq}n|z}i>}F^BUt zwcmYnes(xi>oH>PAmNWS;uJTlt>)`KSAv$t^|y)@ zPgGlI9!#f=BkujF!>XMKu;9*oNBK~KVjp353zC|SI6RhEDc%G$SyJdjY8Ei_ti3O2 z@A=2Qw}EDS`fhR@$8~e_)mj2x&O&Q-E9x-mXgjI4`Ifyq4D5aKt}u|EBB@l!J>33R z`N&mkzB9)78izRF#_@nOTaPNyueH}E)>JNXd+hG13cZrTav6E^ZQ3*6l$5BPr^;CW zP0T{YXlTC}rUvxQ%|fCvIBSh>&XFJ&f3DGpM(PD{&$c&cyDJC3UfqX0CKPy2#K`B> zkZLT#8Iysn>3xTqPfIQlr7g3s?2K)L&W9;vf}6X%c68LpFvzhEvnK4WR!HOuiE3KIgPD=XPFydaNza z<=^g3nV+q`^TY?-bBMG&&Y(Y`@1%1&$B5wJtQxZeAWIJ~KD~g*O|!r}Uespq@RA8% z6`p|fY+ZLxz>KL+r3>~<+$Ce>zXY< zE}?vX+c6wb?$$G6mJ?i%^t?dlXybp9NZ@W&<2)#XxwTuKzkFW$JU=x#==fhR|wz07VA*ltRsmxz^H>8a<#!J#11l7 zONOc4tDBDXUn49RKl5~(O>&FNw3@!V9lOwq-AUr=5ryq&Ux|zE4U%}jd-LXA(2;N; z-%7Q>V9gUT|6j2ROm6?`>zOVbT^4V#x=fXU(`skMvK9>|vTURR$XV}elmo-|*FQ@9 zTQfcq*eH|EIrYTiQ_FduzmTIb{Nnp-VPl;k2lh|0gQ%x+&qf447l%?-MJxTBR*KvP zYw(Zdf8$ie^Ze{fS1+dwr+5@orX|{9+O6+QMWuN?wg!;G0Ly9)isVj7leblP2L8qc z>~v4Z!EqWA{yVqAJYeC9Ue&2;b_F>;v&LExw#)ZnPTDfI4wuOx%I><%;Rv#W@$i zh}j&}#h5Y^sw93;n|=Eb(w$kn2jh~qwETyZtAo(k8e_{lC%g$hi9+*lfFo@;Ja>%}(_2m|x)FKoKMGz!O?B$e9{4h|euo zwE%3ggC`r%3+amA6E9XFoAPUVR;p7Wz!ua-WM%sqB2^7W`xQ4td{hsdNi(G{9hl_) z>6BS3wsGXeK0~2nS_HzszHWg~9N+%iK`Q-N{kL5ShN z@*d#NlQ_N|-xWK50E!O3b+7@3U)8Ne{a6!YeO}tWRr`=Pm^<^2FI)3}162Vab6{^S z(XA!9*Pj-AScn^4g`TWxp#X1bwj+C$Oo~YhP~oxZyuPE@e?zL`2~XJGV1`U1Ui)gl zVpcqGQT<%sn6{P23+8Oy2Mmn4P3Vx|0&!-6&2H9Ct_jf%nuR@;J!1J3ci4x(F+p9M zugl2o(Gl7AbSBwrzYQ}Xm`G>Tq+mHy!Qz0?vUMJD z$Fhu@`uOihiJ=?FJObmOae?SFeQ6<~?!3(RBFo6)v*a&)wZTozMZJnZ5M&)bbC>$C z-jgqHYuW1xw}cZ*xHT)H$vnaf-YQes)`)NiU*p?Bc)FGsR?o6)PW1-9IvFu(gfnt= zo2!WA1MOoEP`(G~3n(>j4^T0Y1k}2tmfmtT{#)vJ8A&ZhS66zNGk4O|aLu=W0dB1x z8SD9sW52=@Ifl{dmjtQJ(K~-jOubCxJVUNr=Gy_;W$RIk}5#~8OLtDV`!I*4thodDYxec2^-M#W;FUdG!q$LJL!nm{? zgk9tgZjpUxOnMvkP+QMzTVE`c6?Je{Tr%#xp8h~h*_R)>+)ZOV-5t^OKy)xiwYm0f zw;^xvBB}5+y`+U+0wx&Ff44T&{&%3pK4C+W`98c#!1{Z@Xfe^>dnJv1DYlHN_-tvA zn#S%0Row|84srsksL>V__fkwKMGHfh&STv0R-~*aABt62|HyQqm&oinCU_h_fhCts zO_=+-8psJ?ipxI~uUj6c&4`;IQftRI{Mv&6Mr#_MPX&<@57c@#r)P?`&Rn*m?Yt

B!jzHz1VjjV?6CxD5GXVX3aI!H2$oUrbE7Wgu6D` za~!G$l0&}2FxQf1RNTN97RbMp>d!6kw;$i}9cHJhMke`M_&v7u>XW&aoTD9vBBnfS z062=jrr)6c_z(n^ZF*U0_>R@B(7_~Yg{WAYFs9|Bw`Yxn!$nIU-ClR#BfR3;=??17 ziS@o7RrZ19fB5^GfwOZCv*(fvJ2G~cu1gJ(S6#5BjxerelF144k8w_ zN!NAHYjZ7Eu1vEAQ9hc&mZqv8%4$_6CwPRhqL*75D~f3mTwv=wY&Y^vHSLd)wOxoJ zrHOGfw=IA5J`qR1pFZ0G;I1{CiQlfsIctY#i5rV=>$rNxE*j*xPG8T%b?yxBr3@^! z0>h`1=UVYJBeg0rw1PUCF?*wI$Zh_87h&rx3jIOFxsuk-u)l*ERfzx-NWccx0%Wr6`nVKCuuWT{VgAm2D4 zYRO$c5I=*lnjh>hHD&hj8Z+0kqS5|7(&OI-XK>}7P`2!QhXYA2wn1l82402#0X+=@-QKuJ6^ z2^bxYxXx}n2LpbR8eaxPcxmy@xUc$*Bfg|>ME||oN54o@$;Sk;yZJ3rBCJ;o(|A}H z@rNNWoBOc9)n~o;W*<}>J{cyj*;5qH&X*0d*JZle1yv&wxfUk^ntEQ*JrYcq(A!l&_yGu^ z@ta>mgl1ll(;f(n5R|^PS38i;vZvEh*z3-X?iGinEd^j;B_Hfr0AOTT?WJz)!e4yi z8k)S0W%POU2LStVztrBH1^~8vtyuvbY>U=%ieo}kD3nX0zEigR6v05B#0@r4mvAPF zUtY ze=bi$%DA0z_+BkB$|byI-C3US%E#idw8hL}f1r2ptLH$0-~R>3$7+5qNy2-Sg`58s zI3lsGU$l$2p2ctKkK>f`uzs=Nbt-m)Iw;?Hwi7haA37cwHoj+brZ#`;vM%u!7O59% z;UHZzA?QeDO!5N}Gm1w&!$ebl57^OvjYw*k(kpq72wm;rrfgGuug%FQcX3ZyU=g&c zJcXBD&hL4c5+jpY=Ek!cAAbRVe+ogQaZh=f8=r#j3IIwJAp3%JrR*X(PHNmk7O zx8iG+>aX)RWGO8G{)^ygS?J;>={h`P5$45B8F^R>%B?GI{+fa?>*&((@^qbQQeTM< z?GL2H)dO;3`VTOCDk4T^5L?@DYI_?*&n$UP6Tl1zP52Hiv-^}9vjm|(ziZE8izbdK znk$s~v6;LVsspSPl}UNToP+M`PsKnwevaEBNSFsH66Px5ZImo|M;G?RS*6qLfIoJY zlUOh*oTYe=KY_Rh1%!$<HzRsv}>U;kP#eG42W~8Es(THHMf1#5NRasC6NG|C; zMePofRv9CLu9XHzH~GZLc7u1#$JC@qjK&@OS8j<*&ebfrioWHe{T65rYLM7hPfa-y z2pmA0ptM0 z_RS#HnsG$qqqxC2)J%*O1<=11z$>~4nW5fxM1PJqIt}Dy#}`pgyh=^ zM&CVU7K@wE7{hl}pOP#OffiJ$Q-1k_gfz(tz$LL6v>zI?a~&O`Dr24h^{YDR@|@J3 z<10*M0LAN1bhe$#j*?#(VA>!Z#vSK?dopu9Yg?S%6~RB4q_WGF^$tlLze+C!-(h(; z6H1Fx^lRT`8&+)0@up4ZUdJ|HaX9C3!0sauL57KCo4|ot1t~ey$pu_emni zA*U68z|u%!#s3PxfJ9ozk+)336+$jTQWa z2QeH%Sl<%00OydwJhq)PK>0i%w4#Sqn&*I3pW9nPb`v;gI=F6;8S7PWfpzQr8AJ$y z&@b_aAeA>_l&r(|iRP{-Bh{-*2+tx+KMSGph99eL6}Pr_MS%e12WV>@T#K^oEIQp5 zTTV19@4Rt_<1A{!H#x);aZ|B)1H9aAr>?dqGlzU-I~3Y)d&u_AOa8dW$hhUR2U7Od zZqF1L<_ZZ?ZM*jEW0-o75!oK1l_J5_HQW5FTSvcXuVhO zy!#v!%#ykJR(++q1ZM4Z?IRERYU5OE#({h?@G^h2^&SA=?9E<;$Uto)kP1VT9Rm~E zsitL+EX&|S_65|oAZdOvSqH)~^MZPXMMxg<4kP?rRzj5SIt*}ESdxsb6?Un=@Ro;d zTDd*$d|qpzkyBv*e8okMs%<>gFLH&SrUE^B@2pCHnE$1HZ6eEa+$$VH_S~3gPETjp20(g`5jL&Gyx#8WV-##b;4bBA)%p)_=am z5V(*K*_xl6b(YH48aK5V=;50EL z(gn`g?mYu=z&O8tZQjc-&jIi5BD3B`Qg_)0M@y`Kh=xqDdQDn*eatn8$weVI>R1Q_ zX*=m>mcJc4V-D3eULe`KW0DR%_9-kb7BAyKgBobme8A~2J-5N2&PAxAJNwsA(%EhgsE`MF=Nvf+*=@&M1Oq+SU!)3H zo6uCRy14}aoY|4sfh`G=_kHZj#Pp@C^q_LhY}Bb7wy+|pkETcFL@*PICiBjp&ngi} z{QU%iyV3InJkaobv{NI8Fd1g06DI#)Z>pp?eS_m~p=fIZ#+EpQ1^=DgDtSCFnfrSa zy-&Ek+TZyq;R{>^qId@xJr()6ay{OED5#XRpg#m|zXn;?+ZoXiOLDi5&F^OAZu0vZ-k;a(NPM zL!JBI0a0%Pq19RqNZO8O{7I!ZpN)n`J4O*~CfG2ksH|ALs-^_>@dcWu4sK<8c}%!O zxs^e)4iwecs<#zu1;|l`{PV-zkzwk>X5Bkke7Z#kMoH19-7#hxun0V&D;JoZkNG zoU{)1BQi_OsR$$9k@uHdG=r%+fZXsm_Y>-`1O2}()GXWVOV4vmQ|H@kavwS@#WA`y zR443KqUtunsrDUM=@vjwGU=xvx#)BiV9s}Uec>7yel&ty>oUL-gZe?f>ZWP>w5eNN z*9X9_*)__fW-c0Q(E<07x9v(;jb! znCkvH+6g|+A{9Kq;{#O=Gqfa_0DsT5f^oxu z^av~^d`$vQ`kiRFZh2t`?pgS`^y%}w+L8w6+7!P}Z2F})dTQUPQT%PuWq6qvh(Gs& zH5dMno0BH&g1E(Sc0buGr^y9pRXIz5Qpf^Y0Rm6C)+Kd&JDwu66A9x!FVVY{$BM_u z4}zo#9X1kNAf>8R6JbJS_o6grg>aUtYI>vcw+}n|4sgFX&nLA>AUSZJkx5Gp1 ziHhHM0cKdP-(E8S6CqFpNGY|h8^D1nf)7vs94xo4?dcwhj3fD5w^gyO zC;y4pxwHV9uxf!kI|i!%1zY4OKQ}-3o2==@YlLJ0$BwT8HK0e@4$*lRKsv|% zz+}C<twyX6U+JCK{>SO@;5mNraDJdvf~+AJ^Ki7(UU4ck$W-ZE(Dzrj&mW1o5Wawa zE|fMf{#QTv6E5<)8l8Fz!nbd>pN9PTgL$^9+IM@du+59rwY4*KnZxqGWnsZrpHHZ; zv5u&-sFV{CP%~ntR#)|@Wycgb&Cf_x7 zvNrbqANF zIBDGzRt1*?X@9gA9x|5nR>b2ON`@-S?+11(2);d67G38%yE2WR;h}>iUWMtLA%v)D zb%S7ew5ThOvpv-yBrKw43GC&<_wnmQDvZZ_kOQ15o4sQiIwXFXkL;3Vxw@@9P{grw z!%lG*IIh}R@(7XLJag_mx3-bq#a6B<7h81=q_1U8%28eo(gaZ=F*k5$2x@4>@&8fk z)Kwd?po#52%In&zXk2Yuc<&z-6Ygt;&&37Do}eI=^l>Yc^j{fS349R8U}t+w?6h}+ zCMsBdtl8BptFWe*zuClk_m=HlV=OKF|E`3&nMSAL-KRlxSl7UF{%?y@R^ne@ZSl1#3cc(uKre zrFSp7$ZZ6VH+pk`k><~xJL?S4SF`kHUM5wgSjZRcp6f|c-klSYf2);;=ST9W4%&&_ zlce7K0+F#^_sj=+!%GASF|XybPyx%~$YBDin1EI##7;;rEKg-bu~L?)a%X{I)DKuST{bF75u zH*@*`JaEtFvZNT%@#qf+|ENt{PQvDS5)+7;1?kF-S_ z(Fh)e058v0i5z<2wna^Kplq5$>@@z^!8w9$kl+pA&u=A|iQH1c{cOJj^C@u2n*)m_ zXg|6urnfmEErwq2La&Q-a^cQPu5aQUc)Bf@eDfZkYFfD?Kb0HpkQJA3rX(UURX_wE zD=zcgQ~nqe!w1~*Mx{V1q^FN7MQ5C#Xt?Cou`!1BzRML*XZz zCt*jMIYM@e(q-svNci^p|A$D7F!2m?h#KW0r!YhxAJ-@{~cm4zB9Y| z&glzkF`$@hUH`#}1pW1pnU(o~bGXEK0rgk>7Gq@`o>Hi}zP`Pxy4L;FJjP;;qoE>4 za&~*-LiWOorh~bkn?gfJSD$$bOQnFsU;t{>@Xzsk?vWRVXO1M3EPv)pAg|sM$>va8 z#0;sz`>9D<*Wc01u5=-FR`IK&F(IA|t=jH;+$!@P*4Z*$r!Od5@*^*m(mznNxQ}2?}1vW14J5BU*j-@bp=fhHT>yu8H*v| zmf5~@L|sLpW<=%%1^AZz8ec8Mw7&#jP@O)W8%GZLUYu|7m17GPPrLLo78S;vv@r<2 z%09tga;tfQ#y(*}pbmCV_4=R2E8He@c4lnmmFd=H45eUQQ6hW2!hGF++av>1S*TD1 zs%SYN4j9XTsrod}Gj{~;fRhCH_LO7F0X(pRLTz&Bd(eeV%2j zJl!2OwYxBkv+Trf_81A7XYHklT1&j;92Q&wux4E|s=Eu1j(Z|%lE%?f(Zb;v4hd=N z&bt3yO=C|fSVOZH`DeltvBz4AqmhPtfb_dKG_B-OU^huDol`FE_F8*qG`}j}T7|*F zm!H#{gCz+Hexh52hCHoz3}JTWA1oXGs48tk51xS$+^n8LkO4KHA?9k{@hU}Ckb_&- ze5=$&$HUqe1waX!ZJWvh6L%z_m}VtUz1jp{rE9L4#8HqCfPF<*ad{QFh@t!fnmi$d zeh_b-6$ZihauD=m)!VlDXE3xhJq%!|;hZRpHN)6X@r=U9_zW z&;zgr1&NFXoe_|p+TBB$c%Us&G1bNvTphg*^aOdU8 zo6UgQMz51j8d>=`@yr%X;~}$YXr2S4qamJr=k%kEx);RDcbPBt@SHohYFO>zvj@X2 zwXKkI5}-tTqRyUXWwG3uh=Ag1fkuXOLcjP}7%CXml+HyVwj zaPwkS`Lmcm3@dA!mTs!S_P+WKWr6hg(>K4eP#@j%5qoqBP*DY0eJ+TbJ9E`yCa#Mj zNA(E}2zN-%%Wo}^E~s0`xX8DseY!u(sFbsf*yVm^phkh$Q(QjG&GGb-fq1itvGpUZ z-4Bt$k40S9wiPKH!HdeOde>~Vf|u;4u+J%kw<@|Rn?kKSH_NI`#HdH%gpf*TNCQRg zr0?)|Jk%}@a$_ZCpZgMb0IPnIVtJB?z&UvVY^Pj2_kB;jZj;kO7hTVGPTYO`xRA4r zlS81BQ}ofLQF6b;oSjI-}denWEN zIGnm4c1A;3!8A-9=}08=>Ldu@sJ&b-Wrnm{hRpG4LZRMsfhdQma*V6_ZrF zWb^KF7t8F1V?k@icmhFQ*0L_RZ9+&;=ospZtn{&uT*!z82FvXo{thjFLrz$?6n2->E0%O>sklnNzsycAlDCY0=D8dBWM(mOz(>+%XzmL* zeFjB(v3&ZVl2j`#nwwRORW26>crnv9F5!1e+^HV_1lWy46{7#qeSv(TQ?Vc(a*Pn z)Jj33F;-#~mh)>=SrL?Y(6bjZda_F0h8^iM_51?{OGe>4MhKYNvpi*aK}kj+0!@e! zTXAEoh=IA*L1p)<%@27naB`?SE9fB`Wx4fFv^p9Y5EXPe2K2Jb1rHz)MS##3>`WquQ$LPc9gaRMdlY$=Hrc{np-jC|bm`3Z?1o^*AP0 zEPDJ4w_}HCN6jey2EUYpl?n(ac-o|2_NV_UA}a~nVxTLj&E>+tEn@F=@8n9@%jL+H zOrYd&JXu>JmtAIAcToB;SG{e#V_f;i_zl?dclG1HNH6dR4@T}REyP=D8o?YxG>36y zrt+UWj9rG5=G1rFCWE`i{Ih+>IGOgNE~X)wQiSZRz9xLBeG4~kQAx7-P(#s!xcCsO ztE1Us)tSLO-Mx5kaI(tx(()IG?t|`85S10BF8JxP-Ta*Jd4{Vj_klkgN9q@gAifNh zeNaEuo)Ic*86-3gYvlm6+I(dZ^N_cPvv<~|M7pjZmmZv*je~n@kMy+z&*6kCt+A4- ziwA{rgjL*g$x-GT;@ccP&84C#FLAfpyYynyov$@Jt(p8Q6EyywA$g732cR{YD=qLM!>_JzQ z!B3k#)lZVaZ-RZicWT_(gGGby=bTx2S6LB;Zadc#pe@-K@ny_{0MRddSZaCY(SQM1P9aAIO)=4SOg z19$K(?6UeH-BIkd?<8~tnkP0q{I}$N-H<`-o>38u#NYKT;{WI~gfi z0B8k4FUQQ5I-Kih|3PWBfJoaEY(u?=9;cpobhZ=1ST@Y^u}7yy0E|YMi#Y&;7cxh_ zDtCL>m|^xs_hy)8I9yLyH*9oNLaRb&Fi@$e#Y9WVY2D-MGV>Zl7IzvN=$G^}Xh#(w z#K73-+&Ago#VhR}D*_?>5-1sK>iUYdc7hy409=n$Lu1 z1eZZH4FTD9qdHi7V*296xN@?uRSYvNq*pEN;*Z4Bs2${znr_6O9%{o zAA9E%HV5Ulcoj5A>}Wx3wWz>P{>bVGYC%D~os_xBYwkWV*C0|hzC`Q08|)WAG=4!D z233xa*$}btg&!;=_|)cu!^wf>(y@=RVSur`MvYqR@qJR+XS081mxgDS-s}{VQ^+Yv z0?5Hc;44t&f*~XSUfxuv;ViPHC?;~2b2B+MM5=w+edzn)$Y4Kz;AXtNrkVWeIE|cz zw#~&9JVS>U=dH?uw#F2H_2`1bFk zwylUq{V(n64f7IXGtI2R9M3p+k^A4E7JKWmhPN8#Pjzr5&JN7|bsK6M>Y7UOXb292 zcEuc*zzwvTZ-%{IYmc8HWu#g_WoWBLu(d1whHsPB<{m`UB2Jx5MWlX`ayR>Qy|Q`H zaeIE0-D(u%XyxfsGJsV{1^reF?NFN*lsO1`BLzvgBq+Pmm()*qu`*HfhkA})0G`d&Fh5MIy8r0L+9#OTR0D2|!uY43(!)8ibHCY-T++AA zyU=$LweA@5GqjH5A z%hR8_Ux+U{;!Cx7wGWp(Hb5Ghj@qjtSX?Emrq@(o9vr?ROi+S~OO29ZeU_84)iT-I z^}oy8HAx?81;fThV^dXYb=AxH`TSc9a`=JSF3}4WWz;n=ca(A?jtpqE>td-IYsl3R0%7Y^k3+-=~cU+qe5nfh5+L;RR_ipCA^ z;+o)4SF^#u`oG|b141ETRiDEX7!!6!7Y?H6Z0#GJv{eYd9%1+t zO`24_I*TdG!J{(_Vg}YWQK#T-|V1%&1V4gEO*C?VOLq+HL^N8T?y0&Dvn!!SKbS3K!o zN$@$91r&cUdA_5gBAk(YvQ2=#t5=GW5FdC6q|-`7n*y4SL%+U@VQ(3Zl0;cKDb!}m zB=A#xAD-65Bm>3C6OzlxZVSNv6Oh0!I=ybc6!+BT=EeVFcxJ^G^lkjWDj9i%zG+~= zR67uATD$>q&Q#JVGON~48V$BS!D%&Dc2#l}oBPTYEQ*bXIq`O#2R+|zKdK+SZBo?^p?b~kdDX&7JMR+nxT!YaS{AE&W%uT|K?5y5 z)zNwLQXnvopw@8-%d(!`PJbE)sHL_YyGVsUPmGk&3H6A(bCzHzF4)RwWWk5pPBk5) zd6e>{_+aURq#oT7r=e6n#j_3n5QQzNN{om7gC9jZf@!S$ISS zcezz=D&VtK)cVF%nN=E`c*MKF7W>cg0ly|k^!FD&iYNBjOjUnqxt(S@d+1;4_i@8h zu1?K6C~OO=CZz_n92S6)#{WL3y>TUC6ZuWoP00xKX*SKL5*+GWc_c8fD6Jan0SMq(LUbuzs!jA%rGzuu$BobqOZRm+`ml)E5kH>gv*y zP!49#nD5v?Ha#$GDn|Xj#%IM2LJWW2K!eX}9ztkaz{1RPSIC!@ZKaX;;W#Y^J&6@m zUP;r5bh6p4jlEIavZ#7mYBHG3?y-l0Q5M`|4c<4cdQaDME1YU}{DY8o-fU~a(#iKI zCKkbbsto25%+{7)xWohV{H~#@3kwP4mA!F*=xf>wO%s+Bl#-38qvH)LY+hfKPvG`G z@%hk+N=+6)U5&f5HA}Y+U#qFRgkk=0jO*k-*^3N^=!LlhPP}j?<(-J2ydG{!W;4HL zS8I|vhc2Cqo>6CtOOcGjk(y(<^xn@pU8?>rWq0vW^_6!WdqY~iUPux;HhEyB?;*(j zLieBAX(L%u$moi_DrfDL%c~)O)BP1kaX+n>U#~B`tkt*kpLgm|OROWeJEM>3ce~bl zeN(#ZB_LBHtHU?X{xZ_4P+8Y$E9Mm&zA@FB`h@<~n|VOn)l#ZOI+XH^?DVh(*R=6N z)g(h*ZQACp40M#rN~mumM-xs8d%c96_61b^%JqIsX~(vEIGfsy>(Y%*Rwz=8cq5~M z_DGrQviG{%))*e)6l}BYVK)f<+3=@`?7x7VA?a@UVc%ypw##G@L3u$ zz*9Hj5?LMU1N+!7@lW3KhEUs5c2e2Z(PzUX^s1--2Dw$jb`Sc)E2`HTId<3tnUBJ~ z_CGaNVaueie|`H{c6#g7!2LYH-ZRGMt5=%9k$){A6+ks@9>R>MbX83 zpEcN@i})paq_~+JsCvJd_Bb8xd`~NkJOZ`FVD-M0-n7!1JPfF*z2|+@Xj2C0DJ($$ zkUcQdzVWx|YpKD57GXOj$N$jo?`jp|6HwnsqBDGq4^1IsG4RXDhED^VTub~w+u2RM zsY>fqb-d)Hjeuuvos2B6`VYz1)s+%SGXI3eWFyF~<3>W@U=bvf(!#8r#SL|+x!EL+ zq-rQ(&&=-8`A+6_rx}(!J^~!#P*cmMvt43MJ@dG&HY+M>?T3a^pq+K7ZQ_;~cMC2d zDFzHA{U(KT0}FT$yH9B7nSsWz51E}@NGC~UGjI57ka$WLaC@xQT$fr|Pb(Of!Dg;I zEnm^N`|aOwpOC-n>Eimiqd14@K9GA(wpn$v3KEoYk5FC>RMEZoLG4F_Xa-i6^y*zGS@BQpw?c| zXVWlxaleLT^31*wIWpA~1O?TR=cX-Euwwza-P0T0cWlR0O{>iL-*FTiMsVD>Gns!e zu<&BmXdZRhd-H6Umxv(mEjxZ{xlYS&?eQ3)Jqmk{9p~9{Ncqu`+*WQ`c$?U=lYac` zt6a-RW7}_IJ|9Rf$Gv%|Mz-Y>#dbW~HIMw_eKJo{_6ZrrEE&Mjv|4BZ0uP!Mp9FYE z$?f~^rn^^~z0>X?e;}tcX0Bwv52ljSanLf0H-{D8SD7=HH$-bse#=^t!3`njpz`QW z@h8Y7USnZRYrL`rG;H@_&PoX-t~af|O>F7{(_9|UBMCZIB7FfTKurGz4mEzHx?HfS zi|aDd@n*4=fK8SZ55P<5LxGx~REEYgOYU&hIx_^u#mD~gL;AU#Yona)PAxfBF>S14 zVHLa~%X8>#Wx8XxWRJGFS};%al0=`~C}zCPqaNNA`sO!CqX%8$a6h|T_-cIjPfgDI zgd_7#EOM^RQt;X|+2P_HaomHx@l0l)0Aqp^vCE?A_n!D)VS?gZp2nM05PIIVMJV0R zJ0UoeUNveb>}M?dZ{tcxQR4&e7L(pA%@y(!VA0!4QE9u~&5SfYkrR}y*Ed>0;vs&; z`eOx~RH5O=v`7uNZmai&ecCPx>0#;7zT}-WncbKBAimEPKJ)UyxNAS}zm1jGIp@c= zmGJ{Em3;k^6t}52nI%kTFJB_us$`4>`0mnVss(V9?ePI1R0XFJm>cKTd3%0wBS0Z< z`r2~l_Jo!F7Tjz4OB>!`0T^%ThBOwoJ>lJxNjQ}YnYZBU!>UxKI9#0Lt8hL;a=ytp zxb{o(@N)R#UT{H|q&W0`h8E2}k}8Al#Ma$>RHlrFh=w&k=%h$O^z_8hx-VU96Xy>h zxWYcRIF5v1A6%hC3R0FlZ0E1l{8b`4KO6mf?W4&d_o6ZuWSa=!2vm-9?`K_oN++=q@{wo#u{(FRgD6nOPAOPD?%c z_JGk2I{+h;1{${VLQnyb{8y#eGrRZ}egA`MYLEH(7Vy3;F&mHeufS=nSpEB40bx3Q zvI5j?u^{7iPrcIZl`ZfFrFK6%0|0hcG!^pC!x6yVT1(jsaPmH(B zK^Rd4iYW27g!{8F!CQ!zQ5NcZP|Qb8aW#Qul>2*Xjv8^3YeaSoVq@n?K~cX)?>`S z<)^>ZQi5Uz>?!XjM*J1iOw~edf^cm>dFrev^!kBJE5+xB23jJ{>2S)Qi z_j$Fo>pr|yd^9>9FE(-j44!6xdp|B$aF}mrOXJ`^O6UY@97@HZw74eZ4}221-)WBB z8+3VS+cP=+%(;v1!uPqvum8T4iH+_7<`wq``*=O^z<)zX#u{t)Msv1>Ik&!mXB7bssLU{+I7_F|5d6dElPBO_pQ{fD~X<@JZP(Lv}S0NZq^8(u=W^eTqE z)*o<`gsy~lAP&ydawI@C{9sOJLTL}Ul}?;qmt1GKio@M6()un6TC7;!E1!GMyCutm za_hb55kbtEA)))ijEBueidz~yRX|45t@$t8>7l#|ABLz}5R!gwK&Yy@5b)e%Ol1H6(S8JM( zw~>!QZ;9CM0doG=(4ildb=O|I;cc6`;Hh3`5cJjY-s~}5o8 z-5Nl6;0xc&3a24(UhiAvex|(+_Ky!f$PdJP5C2n8ph${R^KX`2aGd`kAdGGsgAtZA zKIYMo=>Fw|3(I*}a9P$GE8tF8uM z=sJ3+zYALmDj5l@B+nblTlTm1M>VjQnEFjm7U6F|#sAg0K$}l#5P$cc^tA{(vaOIE zgTVO|F5igMO~n657!yww*J|9}$yL}b-gipZG%X@0&rO~aJT?8#`~xJ)I$#OgfreY>>;GfEGJuc2xNx6)E8Sv-Q`MsqJG2aBb_Lw@ORjdZeL=fnnXE;3s;{jHgNyq>*>$I#3g&Tz9}_OD{gZk! z!q_}vwzMoQsIaV0Yc2%vL7!Nr_z=jDlLc6)b(NwKGN_Sj@O3oD`Pv?qEIt<6O6lfdN`Zl#v zN+MZ4xlQ|}wqPapcA+Uu?;~$BlnwJ~8`GCp{o3mv=LL=H$e$#6;2#ZY1i&544goGf zE}QuF^cdEG`YjVt^kDLzb@gfO&4uwyj&~fdR9;*C&G@XlTYUTEwfY?4zHCI0eP#?7 zI1^Y-h3`^o?NY+_Ud(jn9G%gDI$4ffSlj%&_a~N6Hn= zMYo;r={_!o?fQE1S}pyOXDSCyA$hLzbqLpyskHFpffiehxvU$Z9dUU-malyOkpb`J ze-l1APLxgV994|7Z3r@Lut}S6;9Z*(^I+d~TbsK9I(Z-KVlZ*r=W**3UeldyhLv$y z-ht}5+OZc5y4JI{jx-qwkuiMDwza&?YlpUI330fff$VuJ&wL``Z$?uKAEV*S;)kUJ zLJO0CNRWZadmkyd2x^Bu$wUp)%mhFGA5&i*mt^++KTT84l<8-tDYaZ`%q%rc9T!ls z#wjvO%ThE!T%%l5L?s0)$DC5JG;;&VvRqJb-^I!lSI7nTr9?qd+*nlHeor&=eZ7AF z$;U|MuA% zTZ{QSS@)1NdShy1`1CzCUjW4a%~-rr*;B;&Nu^9<&Ixa~&Z9N2)o@+BL3+nsB+f83 z1e}MB&HmVy7?^pF9TV$P!~cjr2;4z)E(o34Jr95qy9v5-iX+vp&yA?i*ey>cZmYJg zyB*}rVjD{@d2WQ?OW|FpPx`RC4F3F!aiadc6N zYb;-t=#+LXb^>~yg+7hPn<5!g-tNtMlcle`=;cwHfV-&z~O2 zq{-i>o~Su9Nu0$cAYKjT#v}cwa^C8qZTM;rjrI%)I@T|lj0br|&8^j*4%@gGG2Nx> z!346=Baep*X7~Wi6c?JYF5}*IBd1+l8`agV7uufFveuPnWKIaBZf8^Z1m9O zH~7`HZndp$7OnQ)>v@9sPZ9&cO9q`o+V&GiL2cB@_~{==`wxZujy|uVJ=Y;T3r9@) z?2FTI)BgZ@uRzj7Y}V{)`o6igbz)g%BB*XGy7LK%qO9}3)(*YSNt@BY^)rprp>a

i>?+-+{j=50215_kYdodjzURXwE$z;XDUwFS^Rdp+w@1KO#DhY za9<1I8s@j~Wo)f=f<6qckyH}+6G28VgN93g3LdLe7lGz1Bb7~^mwof$*e_FUu<)9< z@6rF;Y$h}0Oy99MPh4wW(@OEgNaylHXx}c#(nOgtLDmQUSp7W}(FKb<{?%318v0-M_!)10pkri>$PL1Ii z*fLZZ_o^@B+FZYWUs~DdQIkm7>dE(2?!X=gOuU`iE#>W~9YF7fj^2CSA#db1ukU<( zuZu)A3L{$&3(odX&Ox^KF--JrEhDI}i=TZbEdAT<=W~cn)BGJkxyuJswJCEt%1m^$ zs!3c2xx;7x`!FF|caYn>I~e?P3_+28`cu(qzbWtQpRBq^lm3X6XEB%Js?E_;MXHnQ z+?%?NKO6;1m6H?wCy%=y*3^Yy50rdG$)3uz6ne`$@aXfVo^NuW>j9JzL&ix%shB6HPr^;>LL@8wAYpr{z)k&?x7_PT!RvKr)BVLyF_F zGA4u;6KEGv_2S=Ol@zk9zLNFs$2@j%G)FakY-!$&9b@$u%lHgdPc{vZhE#)tjsD)$ zdDhCCtMvKFlb=JE-dW^2_&@L)na+hV!`l?yh&7I()APvPHI|`w>>71XqK7CW{$bpY zfp}BhdptI&dN@BnjKLj*zZ#uA;pu)z{&X~_AT>obo&vn=rVEtUxT5lyvZP?v=<*RM zfIs=Ve!%vNGD`gP5~DqfQ6T9%-=3te`~3`CU3fbc1;cq(jf9oqWz|h3~ajKGCaX%khT*XbSj;T_&R2n&9 zqXDbWR=>SuXXu-?yeU!3*!lLeDqP|0=%dMf32t+hChm~;kDjQN2($0vqhgRCiOlNz zW?SxCyMl&Z?<=Xh?I+e>xww+w{`m$Q_li<<4jLn!QxqXOfp0sAN=;=!QWu;ZJ;lyRR>RM z2H3s+sGrJE305UPVfYLS*qMoYm8=#$_RPm5uZQ7zVdIq_Vt&#LK70~B{pGN1RlL*a z<|ugs9SBRU*5I-gk7wy8?2(@+l|EEkdzhIZ9j*N8^Q+}}3;V!ftWGfCiN-Mo_xu2J zZRH70C|uyS`+v3-YVB*h-T6lhD)C!Z{&pEsY7;fQC7DqCM@}h?Wq~ z%x&umTD1o>RE{tK#vBb+Q}4}@@{{jlpo*SkEO%cA>|Si23Y?Kru5Q(pe7~D|09(s1`NWfXQDN^odrW-I-^j5iP;uem!LvI}e^d4nMGgEO(kTkOyV1M)IFMcwx@?9y_4?q$1Vv+ELT5D12mzP>fQ2pkWyo zGqJjXpAbAf0J9rZfE%rEFYauQn8d7AxHg{t^oW2hK32LHG^*-5T{#Oy0B8HnG#OYG z-{IHE_?Q>Xx7txNEAx3HK`)7!qlOa$awEwbcd8J>zOo_G0vm9{c2dm)U@Oxvk3A&R zskm5^EO0bD1MB#fvEy-ruuCQ9`2CRwGDJ1In|fEKbAW++Q&0KtKfauO2rdk>BNdu@Z$_^VXnDs;sfmiJIj{aj1dQgto$!8V_=At z6LTf7L}vyT4u-7k#`H}cwbe0K6n;5vApDL)%q%{&W*Eg~jnY3f363BB#ZqKt8B({W zsp?TUH%9x6jz{?T9+j%*!GPdNJBSx=PED6kl%SfXu%C4QP>c-PyXxG-LTF%udVKHB zWxt+jr|AM|gfHEQ4@nw@A@o|Z-gfl1A;vSe)pebiJpxkY(7zLanT&-rW50Rd~P#xiVU!g90IBJMCXc*!$B=NeFr(_by5Z^}`AedwLT z0q=ADdbHO|S9K1b8gqEjnGes$EKL6lVy@(YqI?#{2=O=G#p+HpU^-oVPurwM9M(|? z;w^-R56^xrlr=isbCMmUNp4n@NI$tHRF- z2E3Nnsf$wTh~0RU&?HKD=5W-cb6)WmkL<50KbM3uJ8EV+9DY4~D)LN*|LReTQSiaZ zxk;W5B3}55myk9%^jL3lyJ(~4jr6u2*EHFVDIHG+1`u}dw#;0z#e9f$ZuA>Cp!-JM zucXj=*j=hV_^q$4Fh{9-_4idzo$BxDEEn#FnK+f-i=1w&RSm=x7FrHk0evPeZD?&G zvjW#&2G-!V(kQ1JS68>kfqHh~mCZ2+cDgfM^f#v%8ZU}&?<4STUx;W)B>KA9Ps zvs-*^%TNw5%VBNdzQCpxpV&Ii&~}kDEuAu57Z%3B5J2$aAn3kr-egHwi1|B0)Dl?a_b3I#W=RmnKkraq|EbC?6QZKaNIBzI{WwGC+mgq|olg!XoK8eviE4{d;h+igc#YljlkDS>%Ta4Rpn%3E)rVxzx_p^^ebLHhIX{<@2~rQY;6AcNA&%*r0A?YQ0`s< zwi6xq_lS9<@D%O!y**H$fQ_794eh%1P~~aYpckwAKz7r^QTsyCd9`eF7+&EHXA;q*mN1jDTp#z@X7~svZbLRAlR4Gb?sp@OW!bZ6dQ$}PHg)?hB1eK_l8keGZuJ-agKJ@2tM{Cz*l>2uKjznk|#v{#&}vN`;p;(n#J-a8bded>2S?E-P&=c&I8 z=?{=Cr!=*<TCCOs2lTD zv))iau!bDff+x|3aSG3WJl~YUJ5k_sZ1V=9_+vvcZ&fWXv_QT_RhCL|KKHvJIj_*n8PoAte>5 z@oZg;EP%gBe8qKT+lsJEtOHl+CF-{Lw*}Wx=F3`JrmBG}DW@oD8DWb7JU8##_2&A9 zdxk92%L8!!utmy^B2}GyLTe($jl-zmYMHRU9|#=gb(kW{1@n z2EsURu?NtKs{1wfQ)`#(eynj2mErqYwP&2x8ZBKfxa&9l7DG8bS(3>p4pvpaOZ!q) zrU{GG{={x>Z&)Wx29J>U^DW;pht`;S7||HrY4$>dRAssyG8;n9a4wGgZN=@fJy|CC zCa#6I)*1`2?1e}>)7R}~%+#b~{2kT8?zY5ZJWE*^0O{UQ|C@I`TrP%kYIC^go*%Y8 zluWf+{3xky2{N@qb1eADyV#zxsMAFgJSHx3i_J1 zJZSC0zYw8tgL4olX`6x=e*VFr@jBS~G6!WJB2Mhwu?Y=t~3By02 zCQle3>v*vWo?-vXx2xMWdZ(K9-qhQLdyN?$G2<0!2z@jTnV#29SMXt$De~$a#Xm&A zw8chHDQzW}-eDPe#Z=dHsN0d@psMEpwIkwQ+cxNH18i4EIMuxaQpA`8{S(Ny%ntFk zpZ*Bjb)E6v)ORk~0OzliY;e{VA=Nf>ytr5`G0q41=;Um^OxM=YJE!{UOErKO*ATnS z2RneAo4v0VyfY)qKl(Ra4^?OvgZ}S%5tZSLfvIl1mB7xA}~Yi&pJ{4uwy5p1GSUiYdow5f9=_ z8i}6mhd4g6$_Z*+XkOIS&PUS+gQkxO4{$S2Oz5y3g<#j_JUhgsDW^w|GxIjtm$;NV zAQvfKO}fvuGgy4ePp&B!tc?7CotB@i6WWN(<}B-V)-#^g4u>t(-kuBjG_o7VKF_yr zY&!BxpML^p5Y+nGR8~SC- zhjsuQQ6cbhlWozqN=PP+>3hYyEsC^zc1|63aech-{v~>}q#$#-?v^&8QoUx<49=OS zi^U6(LZ?feW9&SAsdYk8L!n3o6&YGM$>QRCwxD0lgCVVL>DYedrCXKD7WyzJ*9YwL znSn3WR}Ng?>UO{po?pPVoU-Dc>(@O^n+F}nv|QpRE5kDTzzBk9mg{{*+;I|PYy80k z!sf@nLVox~O$rz5WXFT$>#hFxG0t@IT|3a(VeX~va?MqniQCW(r573FF~Ulpk3_CfI>&)y06=VsXfK;(h{lfzHQio3GU zOdJC_Qn%ZSR~F~5;RDvnOf)+y6s1|XI* zlA_w&XCOYL6%6Cgq97cK?5vAFs>WoYf)na3A263LutkENDlMR>#r5YS(bGqDCeEht zQ@7LigRG}qmy34rz+#Ns{TLzZVJ zt_z^sW(x^j{-zx_xHYdw6!JZ@2#I{p#Y##X1uxCB%+%CBx%Fb!f33Uc)x=SAz!hv(=m9pniQLMOKEWeo z3q^@1c%QHHh<)pC;hvqz>-JT@2}AHuNpA4(jfD8wDQ(blOgv>-dQM!IiXar?_M#QT ze%JHWG>Q$89$9ok-Xm^3EyJ(gdvUZO2eH*%-$U~#EDV-qHNoAnu}ddc5*#M35h{QR zwFSa1XIvSL{z%T}ipEw_=M(r=!H!mxINCNf1pC(@Vw3r@5xa|9pfByieyJL{7!e6> zB;0bbM+!By8<|zR8;QOqi+$b;x86|FYvYYj3S}NV8_2wf3%T)TxHG#DG4?crf%PJE zI&5W^p|bi=G}+UZPYWwD%m6b1hHDAME;&Eno*kH0Qf28ljqBH$+#D`Y^UTn1ANC>N zthFF5s3YV%DIdiyC1seJuYB{Ht&3aCg1gO^C0%=P5aih~Wa{~ok zE}kWG>Pk0+-vy%#qu3)h(x!G@AbM|->eg$!SZ}a5n64dPwij1f?jXu{y5Yh@jn5nE zGCWj0d*qeuZACWr18vSWF71*BerR}*Yr1;3T2laC$=MRzAcwhUY&+V9GEG3v~pg^U}BPmN^uoI``pfl|9Z(Umkudq+!b)hFr1X zc;JZM_2oeG(WTC#HjUDYR8Ws*x9)5#ae25$)Axa~iL zQ|h5LS}3jzWmt4~H-pW9WI|e>>3hJv-*ybDti6j$4RnZD69I=v^gYqusjK{>MiZUu z+%Dy@Ot7a0dN`P<&z%zifE~v)b(|qXZnG2NYs!Q>FvIgeuX=Y$eQXdCXISlE4pR?( z6IpCKtb8=HG^FM`-0%xu^Sn7fBl-E@qQPb-t4zAmn+EA|$^g>fc1$HHQA|AtncFS@ z(1x!u=R3k~ei`cJOKq(`jr{5Z2e5;6>vCiQ_ObWcW^@7G6hK2*M@Zkwfg4FtukAEA z*&X}2HyLU2cf_+aVy#zhETXWo%u6@G6S!0ni!d!Lkn*|@z=AsCxZYLs$4ED%-Mqgo zsKpUEMFHP;nmvbuqDE$Y0xs>8Yfo5l>;Eumq>LJdZ3?$sYrtfvA7knF+aC-@zjUPq zegf~sthZbpE3iYl>lmGE3!iDBIOXeK+e)0IoWW?D6$WQ{!!koL=Xi*v(&e-YPo8J8Rycxz%wG<>7#2nDS()1%NgbWD&GYK@Q>ML}U!U>E)i->bs~t{Pj< zR2F?W$*CeU9{?QBdqU@f<7rsdr-jzYvC+`J!7(^EbD7OGMZc3bC>c(fg{@f3dz4tG z7}~mYHJQ2q$pM}FjRIou?42v-kh*F%Ji(hpqx?&DCia3fEO2Ha0eK$g zn@dJV&nJ|;b+x=k#l0Oiq`_4*hiC4B5)p7|(c$BWOb!@zYgoyJms2DK+ajmHFEdPVzItP6 zFNHCD84yck0v!PJC6`G}OW z*O%J-zxTp$^YjxZFY8A3PL!PCQEbcOg4tn(^Ui@6x>$oRIZtcu)=9N%iN!tgVZ+5Q^N_V&3Yx9^sQjq0)+f0W`|e_rFxue&R&ImeZbKTl zzR;e&b?=?TIT+tcQJ$$#x=|%x2eOy1tC!y1%zfR@tnrq|997{NAA>cX5Rd}dAS(V9 zwM^qKvaRhp{j1=t{FoeTuiE`cr$Nnp8_PCRF-b1;zSH{0%P$M&BEOts`97-AXF#9T zsHVdlH-d8&1X3T0^aRdV-oe(VGve*Y_A0%rY0iyWEX!))HpvA5a2ob^km_tIR-0|fNU>eb zs0pJd4l~&hwa0`Sjo<5U@vT1ug_X|uISh!OmENpVq{vG96}>O1U5dh>S~sDE!I`^5 zv7yT|y#co3q-AzvnL|TbSxass>Bsh8|FHwNL?bs#>0W&XKYbI?$=7T#LfnQzzioYP19Y#DJx zk?iT+=Cl>-9=_H2$U9sZzVfr(pM2reP0YvYB*_mGoj0xzh$%#swE;!6wMneXYsg(s)-jMs}-Z}JS-NbdpTsYcTEhlT#v4MU~(6g>>)e_PG zvF4|oZ)9eH3aHY7>b|!J6r+vv^^-VS(fX&=#K4&<#gx>U11|s$K7+_RD}PpjYcLQ} zAV28{c}171?&*~RGq{N3yLsC=BlGp2(Us)W)%|D5L8w`etfWB2#{b^LE4!HRZP-Uqhc%ndM*i@vUroSMloRCU%sm~zUw~i; z(mjv9H3EJuwYj@bPM%QEmVA?eyW-=o$&(**bnQ#Y|1~E6s&KOWY32Xd{0|%W`_4lz zfwu07S)}^l9>j(GsXs0Nh?H+HJZt`B?6)5>_b0wEE04w#Q2%{@O!>?o!C#*TOJPb8 z({uFAX+2u%g@4-19)n(D0 z_y&z3U}3KRzjLwFvh)`|H2c{$WzQp=G>?^LYr9i!lY7wj#JESh^uGx=*{it(S3bpS zYwSJG&Wv_-R%0a5Rc3q}QfO{8h>;AiF27C4_%3Wx*oSOtGU8N7(C>^Pt6ZD-6n@o_ z0n_W2|4vT0=e;D}pSCnVo1?f%r-+u@%3k#rA+_2eLH&O@jQ=N=qo|73d&K?UPuHH! z3xWcbRXltV`UF+A%>Vn$k6C@_>tCOY9kggTBR&oL4C{&VUUZsmhLgzPNI!%BKDGPa z3bT24FyWwolKwTu?Ed`4l`x{%#l474{BOkvKDhsfg7|fV?lEN)L3G|$Eh5sl>(3Ep zZqpHrZhwfZ$=Ie|_O~@09ue-5YTk|7>FH~}I2jpCNJ0xL-GL4IZFOqDGh3(GuGK9Q z)EmpN=aBrm!DkszGG8XT59-zCJsG1*yZ>yw%s!f2Vz$K56uCR7qXjFDmQ@<*|25nN|MlK)t6r{l{I!|X z?cyF-IXPQsk-U0}+M)m7*qec|U$|(oJdj)m8M9Uc>U$&+R4 z3BQ*tynJqS=Tk@!^d{L*U;E#oMTS$eE>SEsg@z#h$KCO7-{Ml_)kf5d@r(jncGxn) zFLh4mU*ST2*ZtK|Q}8F*eEEorU5oVgwy11Ck3*67ns=^MoU;ZvYhXSI(tyRk>w4|; zz0x90$wJP8HGJn!gfT```ZUG?E)E0YRnCj?mVIg3%P8N`rbwGR-Ag)5T_vq2^D`Uzf*8zPZWmr5H3S`H`>%ZJ&8WoiWzN*xPo@kmAj?0G=A6OxGH5>! zn6LJ*O&_HZktV5Qo1v9Fw|_NI=Bq3>)-%m}(*;1aG!ha$L?wCKQnm1a0-=q+6J+t5?N}rSOrPS3t#|mC`rd6!I62(t$#W&BuPqenAcjkLT%UO8hxoeiQ;YySNZT&Z32j#Uwu4%#l9olYZ;C2a5C@!_xyqp-keR=$ z0{Us&m;lV?k$>Jr``*%z73mc9`=}nuRx5El5wEiiK8b_Pu$*b?xE1TtKdBb{o z&!ZS`YzW*CN6%#8ygGe{8tsN&eo|(MA8r!Y)hgt{20SYBh7W4o_Aq0Z zl5i3M_fXB3JY7%dxRrvS`pm7&lx0-u*MT0C7(p2Us;J3{?}2^bszL8g9RI9#Xtj$i z|9X@*w(Skaz-o@{ycnoyL5!)vu$Q;N1Ij$#l^;9(Z5b3WdvPDi=NM1X5kIrCGe7tV zoRZ>dAft@ieQL{hp6V!0DOlXB%|OtI8!T7;ngw9Ee0BJkd1fLWs&@!_!fC-|n0FSh04yFmPT)Z|hxyK~-+>BEGeH zG#8OoVDe5V$iskrn97Tj?-fmt3P=0adCK2D6;=XkGv_LZhj{S5upGNeTiDj@jnw-< zhSq8F2W9P^clE+BLYtNh9Ye>AHh&xv6zT)lhShe!M6zocGMRO5<;gH?+#6EYiU-;4 z{>-gsrMRTpP71LE1!M;bhuG%=$@HG)n>{-qCx2*>3-A8zh1EX-cK}eZZ<*vo-cj0(8C}0wd!%RDMwtWiUwtNSUHzLF_ykbt zPjqJr3n!i$qGwI(RA9%DsbwR^RYPgS#NZYTC}+4+_+xND9jLV(NjjBlYruFj6U-Jk zv%Tw|ns8kW0^2Fr2jY2BG%n@tBgj@V_;Gv;7y?|y>FWMKQLa+WnXr+hngZR~kWY#O zLuO2A0}O&J4$*4|N_wm9nAR_^T*ZGvH)fMMh6YY;QCn2q=?G@u9JKNK2;L10q1TeJ z>PEzty5=7Ax9;-xlk^Pr$Pvt3WFU3$3e^T<1|m}Ws8aMi1>gh7J%h3CzbfjgS0aOM z90sTc004tqr;;O`-y3iyq*ZjvN>VU(BnlT%<*Z7Z`Nw!hm(1sL}G@mz%$Ee9$ zwpawN@IDT3@7RhfuB=}l@uVNBzyodtFIB-aiRhv3Nx(e95Z&HjK-%e=(?ly1at^n( zmSBdcxSOhs+SG-$MK%DJkJwLjD~oS6-ICNUTG_JbysmF_-}) z#0#8Z&nUK*)0cCjskhtPE|UxSksk;h z>wUOP8VpxtuLcRweB{EY7 z?=DooQE^4S&^A+txAL(EbQL27O3U_Fc6)Y}y}heh99W{Kp; z&Z%HkP%OcgysR?pcWrt;`Ifv|h_fA{#mtzVTxMr>wvt94(#)se^JBq#r$jJYHGsi0 zzD?P!KD2G^lT+rDskk4WUDV$JS0Y2)wr$Bb&1T*dwam9hwx)ZgLMP&54J#66CzB0p z3RpldQ?@u~j)(qg#-j7H+S%q~@Du(}5UsxlyV;b4GbMi*0 z)VeYZ{!rwnaPOHFZ*tC=*-c8IG=~&5E~rIO)5qQH=H{%hFuG_=ZaAKmgg;dst4uecqWoHF!kQrWL5N zyS9(!bsjZF>BCabuKJjHnZ%Z-=TgY{)^ZZED-#HPrb8$A1KR$T5;S}7t&liP_xdWua>-zcdr~_ z*685JH>7jVhY}&be}1X|N^MXxT@#(IDSklI|57b!Z#$%ROD5E_X8r)Vp^UhOtN2Ul?ss2RDvd-la(Avy;s%XXfo0DV^#@NVav$f{3C#D>J)4{w{J| zXDw2Po4?*86N(ol8Rub{pPTz@-2~K&;_J5YU9JEOBss&*XFOtdGEDefH^4|CgaSwT zklbOr!4drcK&qC>)3JM^qS~ZDEj|^dS9-^;hOaze+NLPRz`Z}CpcR?9y=v1*;3`T; zP#tmD-gVv3HtN#)nd?>l7kIGM4-SqM-M)r9e9T~WLx)Vh6}7@IUjYbb^o0wa1p#b& z=tCZ5kO_mfdPIQ0Iv2=wVQorgeB|cd(1bH95A}y~2*>B%6_SD6y593e>0b1|f)uJc z9A@V!ppVz-pOk?!p*gHFMTfND8d~GH;U2D2g>rI~35nH{Z3r6jHDp|tC!N9BQ!5Fb z*BK-T2Kpr;1qg2sO&1#TM#b9ee?!;ne_(R%Kxzb{_=5t`Y1DWDS{5J_AhsI|Udej} z_GXp5qTRj3cu$aUD!*#%8bPH2l0=gy#Z;9zf*zCl7kf%*?AdyTd?5R zN(aQuB)fZ{rnUXCoJ%T9RP#v8Y?*~#VIFL#9G>X7!GW2>#=pjmLR4x=2zjFUcfCm5 zfN#~J=$gMhCO%urE>UdclXnYmlPE@JjR6aU-j`ApBN&5;QV81%gyUPW^W4!P<=g|# z_I9*0(;{p8Sm2ayO))wlenq@5bx07oocEK0P-5#Mj_KA5U!7NT^G1Ph%MQ};-ZX*i z)a9LcmuYJxN1H?!9z>spm3N~S;wiX2NKTIo_K>>U$vJ)*h_@mT&N`e2L4lI)+6*Ku*%eEHWLZ*G;9I}s)J504h<6v6b_KeghKuP( z*7_n_Fw3)bWxX)7yc^^O{qhqSqX`T1-xy1GL7OkWJXn4eT&RP+rZU7o-!$mhjdbB& z%x&n{&(^%2n-#>892T$YuJ7U%4zw#_6V5{#m1Xi^*<~eaz7(|Q_Hn&>_l>C#hJ*W zOe3=%R(LV8d&msI+!KmL6Iv@Y;@cd=NtMI7UF(Abkz?U7g-#8?P3%|^>mFg#y1PW8 zP1sb5t}XXXwk3mnbz38owgD~{*8)gH9{m+i1~8|^+x8wD&34V4pG+blQM(zh1rHcb8e%YmY%{O0BShMh z0d8|~%8`-j%Z}K@Ny4%I(QClvvw!X^@47(y8Dr!Mf(Z?Pc45j@r2Q`b+MTI%LLC@@ z4(v}i5ze^yvyqKC!!UfXm)c{m2%A&#C#HtAlq1UteKe2mk=#UpjY$tkfDNCSG;8cz z^myUV_o3uin)atcgc`F0&r2k3M2T)}ZMi zDB2<-08ep#L1~nOWlH)&%VxMg~Mq5 zAw=nAt~FL+_gX*bL<@QOVTK;Vh@n-*30OerZYly@v_qob6_rIB0|+)VTxx_Oa|we4 zg@2(m3IErt@Z%dIP>2gCD2oo5%bJ1{33AyE48UDtP1 z{q+6dk*5wfFDvaMU*44#18uW%>q|ofi`7o{oe(j^Ku9>@4AHESf$( zyeD#xHOQdTGm>CmdX&SQEC%UqJL7ZHh2dkXL`eh>O{c_Ltk|jf zPMZpEPWbE=0ONI9-$$t~VBNnv!tP3=%&*8b{aj^vfVnw6IAn1z#{AJ40UJR7@!wc% z9Jzs+nh7Z_?G7t>?H^NF$i9xA4}J;}LD!G-k_XGhT|C(Wl zaJ)pwsNB%r(lL^pf>m`<(rQ^=RTBkW%6wL*-Go;3GGGRkyS4zJ0|0+HKFxedf5hC& zEsl-1*%9S$gKP^Df|@r;SIdj|g~zBZXBT|(ZCrSogQ20Oh7**L-({=pcw--`%<_ET zu1AV0sgG*}Ec#C~Xji3JxZv~bt2lva#t6Y-oB~3h58pf2Q|bsa!BB9=V3m7tU8H5i z==CixhpMKU5Pg2p*gEmy8nBDo{YU*5+a1yUwXI|DU(lQ~Aw@BD`Ls!$SR_sb8KThQccM(ZxOkR7h>WI0-+!-)!XPmaMMp zTZ9%=wI){w6>M1nDVfSkGxTp&mRHss3+kROKsUK=mA=1}9J9g5nu z>=I%FbhSlBiz#4hY3^cxuGxqKl^aY)#Mh{T8r@Bs1lcZjNr|T4b)g@V7S*}mb1jqS z{JOM9POVvbd<{yWfI>$?S&;@4x+bH^jlnlLva8&gNkz3YI?Vni86+?{7VX|}?qz2m z=H-O$s8mDih!)jmjh2Tc?H)kYwsPQzt`<2@QxtcjCVd)?pnr{e44t~9N(xkTj65x0 z2~`f6iui%~wj(#dL0ddE3xLTG{*BTxqK}SeCWk;`X>s=fL0Tc_Q>NEK3XzuLf1zcp zL$~o7iWhcLW`whC)l{ySNTq-PSqP^ji1D*KC5Noff4eRwE^VDS>o6Itm4lD(KLFxql_k={nB%~ zPcZ(2{gx7nstXPCxN0dZt@Kh!C&e|)~BHAYMZ+ww=>j>s{_Hd%hX z>XF60wd*R~>lE||g~dKnBk!H!QUKZVf0dQ>4#KIpYj^Y&%hgA2k%KrQeOE-e&6Omr#@u^SO^|rZ#H@DvxSAE^+lN#S`DhmwoAE-m`=NS)n)d^GMZ!B!G`bL`t z+~SXE0XrI$(bc}lyJ;MkG~Pc-)Pv&&xX?aDvv&^!CFrZopdXh7Rk$+Wl&N&>+R)NG z6;@*)Hw2eF(s*+-uiUgWAh)9R%YDb!mO+8?r`( zl9HM`j)5Jf_x$|qab}&FeYcG4h7ArQcpIZ$T@idirTnunY@+0RZe47ETw?3S@cNG< zrjhp{QG;*j-HH^OqosiX@;yEZxRl=hk`>TFZBn2K>(7WsRPG-GvvZ0f!>W=eK}M20 zL?8mfC!^or4y5Fa4L%JT;*6}%?QYk$M2AQ&bFY3L(E>mxXz|qFfJQ>MmIU)VT|C(X zt_6V=aagm6qV-Ez8LOw!a}tNHigt1>8)EUgBO;KR%AGf_^H+WhMMpf2X?bXEhW?_I zOh>>~=T8p|=14)b0tK9XD*cJ{R%VdD+gOGkX3fzo&C^@KU*rty+f`b0)M~gi)>a0@ z90q9y#TN;?PO=q>VJcpu&jBgO73L>O9BlLGNhK=W&U$A?bvdl2n$x%qY>SGk2rjYCPKOLuZe^YM0)=B7Gm=Cx;OYby6A#VK>PE)F(z4oN>dy_)iIZ z<|nm2N#D!7DRXn{qW^w6B*q7y*!JRCYduY}~aIw8dQbe1(~Cm% zPVvSDv=qp0aoiqLe(wG@Rd+(YZP=d2Q3lwE?D*kOX@5Obc|9}2giI2=#a=}#jqgQw z%Cg!9B8!w94P?{{myJ;VIu3m_45>c-t~wW6Sq60LbZq2K&Lec?LH# z@0%W>!2 zH#1PkiAv@8jqeMBc}{6~gyC2F8jmDzLrVs;rGUc%4mExcd|Rv9B0In)s}F z)`;HNzF47^3w%fILB#w#<7w_TarXpv;}U9eQ{dy!e$^K$>c zi)Y;3XA!*qv*l{*?v1g1R{uAzU%T^z`@2W;jGjNtHCq1@WF-G_&QI@pxBV7)pW`kM z>^b~g`{mrl8+qrRy~|0sb86q=8H;bs`EOe)cQ8xdYpeXv^($^apHbs(dHMRkd6jRz zeZ2V3ev|yhF8{y5*}$prnv{J7t*Pwt+qRsGk9NJQ5qGA^LD+hVA;JV zJbT@@X!dsXTD5Zr#U4=Qr4hF8eh{ebd9# z?;nG+_5x1{w|^J+`wvi7?x6U-YiHQ+dlxMA`?bz)%KNkCHM;thk9IGgw*EeF{do7= zzJB*Nlb_qXi~D3M-In+xWX~&Y9iO+S+Bg0Se{5&8dHuID|A1>)DrEPp($)!m|0tPt z+m`C2omEXYuU5RjQ*5*^y?*br+C8&xgBILK#IY}z-&Lz}*R!Fr~7MIIHAac6ZEmldAxOqPgaF8;#@T;8G||9O9l+}WF71HLEz_qrBz zxZuR{s5NJ*QzY8@56%7+^%*#$4NMl3)At`z+N=j&De^EbF6W@p_wT?3J#C3Qri(`d zXU0IP?wp1!HA$@a3SIut77kq14Vu*i3fa^gG`i0QG2kK!2e@1mq(mal7CO`a@TxI% hflQp`{Mv8-nI(8O9=KyXL6ZRpJYD@<);T3K0RSv=QO^JX literal 0 HcmV?d00001 diff --git a/vendor/nexelec/sign.yaml b/vendor/nexelec/sign.yaml new file mode 100644 index 0000000000..8b13162550 --- /dev/null +++ b/vendor/nexelec/sign.yaml @@ -0,0 +1,136 @@ +name: SIGN +description: SIGN is a 7-in-1 LoRaWAN-connected, battery- or USB-powered room sensor that can be rapidly configurable via NFC. Depending on the model, the sensor can measure temperature, humidity, CO2, VOCs, brightness, presence and noise. + +# Hardware versions (optional, use when you have revisions) +hardwareVersions: + - version: 'V001' + numeric: 1 + +# Firmware versions (at least one is mandatory) +firmwareVersions: + - # Firmware version + version: 'V01.0' + numeric: 1 + # Corresponding hardware versions (optional) + hardwareVersions: + - 'V001' + + # Firmware features (optional) + # Valid values are: remote rejoin (trigger a join from the application layer), transmission interval (configure how + # often he device sends a message). + features: + - remote rejoin + - transmission interval + + # LoRaWAN Device Profiles per region + # Supported regions are EU863-870, US902-928, AU915-928, AS923, CN779-787, EU433, CN470-510, KR920-923, IN865-867, + # RU864-870 + profiles: + EU863-870: + # Optional identifier of the vendor of the profile. When you specify the vendorID, the profile is loaded from + # the vendorID's folder. This allows you to reuse profiles from module or LoRaWAN end device stack vendors. + # If vendorID is empty, the current vendor ID is used. In this example, the vendorID is the current vendor ID, + # which is verbose. + #vendorID: example + # Identifier of the profile (lowercase, alphanumeric with dashes, max 36 characters) + id: sign-profile + lorawanCertified: false + codec: sign-codec + +# Sensors that this device features (optional) +# Valid values are: +# 4-20 ma, accelerometer, altitude, analog input, auxiliary, barometer, battery, button, bvoc, co, co2, conductivity, +# current, digital input, dissolved oxygen, distance, dust, energy, gps, gyroscope, h2s, humidity, iaq, level, light, +# lightning, link, magnetometer, moisture, motion, no, no2, o3, particulate matter, ph, pir, pm2.5, pm10, potentiometer, +# power, precipitation, pressure, proximity, pulse count, pulse frequency, radar, rainfall, rssi, smart valve, snr, so2, +# solar radiation, sound, strain, surface temperature, temperature, tilt, time, tvoc, uv, vapor pressure, velocity, +# vibration, voltage, water potential, water, weight, wifi ssid, wind direction, wind speed. +sensors: + - co2 + - temperature + - humidity + - tvoc + - motion + - light + - sound + +# Additional radios that this device has (optional) +# Valid values are: ble, nfc, wifi, cellular. +additionalRadios: + - nfc + +# Dimensions in mm (optional) +# Use width, height, length and/or diameter +dimensions: + width: 87 + length: 87 + height: 23 + +# Weight in grams (optional) +weight: 110 + +# Battery information (optional) +battery: + replaceable: true + type: AA + +# Operating conditions (optional) +operatingConditions: + # Temperature (Celsius) + temperature: + min: -30 + max: 70 + # Relative humidity (fraction of 1) + relativeHumidity: + min: 0 + max: 1 + +# IP rating (optional) +ipCode: IP30 + +# Key security (optional) +# Valid values are: none, read protected and secure element. +keySecurity: read protected + +# Product and data sheet URLs (optional) +productURL: https://www.nexelec.fr/ +dataSheetURL: https://support.nexelec.fr/en/support/solutions/articles/80001085086-datasheet/ + +# Commercial information +resellerURLs: + - name: 'Nexelec' + region: + - European Union + url: https://www.nexelec.fr/ + +msrp: + EUR: 209 + USD: 229 + +# Photos +photos: + main: sign.png + +# Regulatory compliances (optional) +compliances: + safety: + - body: IEC + norm: EN + standard: 62368-1 + - body: ETSI + norm: EN + standard: 62479:2010 + + radioEquipment: + - body: ETSI + norm: EN + standard: 301 489-1 + version: 2.2.0 + - body: ETSI + norm: EN + standard: 301 489-3 + version: 2.1.0 + - body: ETSI + norm: EN + standard: 300 220-2 + version: 3.2.1