From b94a5a466367a93034babf6e6b6fa1d884cc9500 Mon Sep 17 00:00:00 2001 From: Omar Amin <65174210+omaramin-2000@users.noreply.github.com> Date: Sun, 2 Aug 2026 03:19:05 +0300 Subject: [PATCH] Documentation Improvements (#385) * Enhance README --- README.md | 4 +- docs/audio_options.md | 73 ------------- docs/configuration.md | 130 ++++++++++++++++++++++++ docs/images/media_player.png | Bin 0 -> 5959 bytes docs/images/mic_gain.png | Bin 0 -> 2694 bytes docs/images/mic_nosie_suppression.png | Bin 0 -> 10162 bytes docs/images/mic_volume.png | Bin 0 -> 2381 bytes docs/images/mute_switch.png | Bin 0 -> 3096 bytes docs/images/overview.png | Bin 0 -> 38223 bytes docs/images/stop_word_sensitivity.png | Bin 0 -> 3589 bytes docs/images/thinking_sound.png | Bin 0 -> 3513 bytes docs/images/wake_word.png | Bin 0 -> 36809 bytes docs/images/wake_word_sensitivity.png | Bin 0 -> 3072 bytes docs/images/wake_word_sensitivity_2.png | Bin 0 -> 3188 bytes docs/install_application.md | 6 +- 15 files changed, 137 insertions(+), 76 deletions(-) delete mode 100644 docs/audio_options.md create mode 100644 docs/configuration.md create mode 100644 docs/images/media_player.png create mode 100644 docs/images/mic_gain.png create mode 100644 docs/images/mic_nosie_suppression.png create mode 100644 docs/images/mic_volume.png create mode 100644 docs/images/mute_switch.png create mode 100644 docs/images/overview.png create mode 100644 docs/images/stop_word_sensitivity.png create mode 100644 docs/images/thinking_sound.png create mode 100644 docs/images/wake_word.png create mode 100644 docs/images/wake_word_sensitivity.png create mode 100644 docs/images/wake_word_sensitivity_2.png diff --git a/README.md b/README.md index c35521e..bf182ef 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Because it runs on a full Linux system and offers access significantly more loca - Supports multiple wake words and languages - Supports multiple architectures (linux/amd64 and linux/aarch64) - Automated builds with artifact attestation for security -- Supports announcments, start/continue conversation, and timers +- Supports [announcments](https://www.home-assistant.io/actions/assist_satellite.announce/), [start](https://www.home-assistant.io/actions/assist_satellite.start_conversation/)/continue conversation, and timers - Tested and works with Python 3.11 and Python 3.13. - Prebuild docker image available on [GitHub Container Registry](https://github.com/OHF-Voice/linux-voice-assistant/pkgs/container/linux-voice-assistant) - Prebuild [Raspberry Pi image](https://github.com/florian-asche/PiCompose) @@ -116,7 +116,7 @@ usage: __main__.py [-h] [--name NAME] [--audio-input-device AUDIO_INPUT_DEVICE] | `--colored-debug` | Print colored DEBUG messages to console | False | | `--output-only` | Enable output only mode | False | -💡 **Note:** There is a detailed explanation on the gain, noise suppression, and wake word sensitivity flags in the [audio options](docs/audio_options.md) file. +💡 **Note:** There are detailed explanations on the controlled entities from device page in the [configuration](docs/configuration.md) file. ## Build Information diff --git a/docs/audio_options.md b/docs/audio_options.md deleted file mode 100644 index 0ae06c7..0000000 --- a/docs/audio_options.md +++ /dev/null @@ -1,73 +0,0 @@ -# Audio Options: Gain, Noise Suppression, and Wake Word Sensitivity - -## What do Gain and Noise Suppression do - -### Gain - -When you change gain, LVA(using the [webrtc](https://github.com/OHF-Voice/webrtc-noise-gain) library) automatically adjusts the microphone input volume to keep it at a consistent level. If you're speaking quietly it boosts the signal, if you're speaking loudly it reduces it. Useful in the following ways:- - -- Microphones that are too quiet by default -- Environments where you move around relative to the mic -- Keeping wake word detection consistent regardless of speaking volume - -### Noise Suppression - -When you change noise suppression, LVA(using the [webrtc](https://github.com/OHF-Voice/webrtc-noise-gain) library) filters out constant background noise from the audio signal. It works by learning what "silence" sounds like in your environment and subtracting that from the audio. Useful in the following ways: - -- Noisy environments -- Improving STT accuracy by sending cleaner audio to Home Assistant -- Reducing false wake word triggers from background noise - -## Using Gain and Noise Suppression with LVA - -LVA implements gain and Noise Suppression in two ways: - -- [CLI Argument/ENV file](#cli-argumentenv-file) -- [Home Assistant Entity](#home-assistant-entity) - -### CLI Argument/ENV file - -#### CLI Argument - -Using docker-entrypoint.sh the following flags can be used to set gain and noise suppression: -- `--mic-auto-gain`(ranges from 0-31) -- `--mic-noise-suppression`(ranges from 0-4) - -#### ENV file - -You can add/edit these variables in the .env file to set gain and noise suppression: -- `MIC_AUTO_GAIN="0"` -- `MIC_NOISE_SUPPRESSION="0"` - - -### Home Assistant Entity - -LVA exposes two slider entities to change these gain and noise suppression from which you can edit the gain and noise suppression at runtime. - -💡 **Note:** Setting the flag and ENV values to 0 turns them off and are not used. - -💡 **Note:** Keep in mind that when the flags are set they will overwrite the previous value in the preferences file and also they will be overridden if the value is changed in Home Assistant(Also applies to the ENV file but the ENV file will always overwrite the last value on startup). - - -## Wake Word Sensitivity - -LVA exposes three numeric controls in the Home Assistant device page for fine-grained sensitivity tuning. These let you dial in the exact probability threshold that best matches your microphone quality, room acoustics, and false-activation tolerance. - -| Entity | Description | Default | -|--------|-------------|---------| -| **Wake Word 1 Sensitivity** | Probability cutoff for the primary wake word | From model manifest | -| **Wake Word 2 Sensitivity** | Probability cutoff for the secondary wake word (if active) | From model manifest | -| **Stop Word Sensitivity** | Probability cutoff for the stop word | From model manifest | - -Values range from `0.0` to `1.0`: - -- **Higher value** (e.g. `0.95`) → more selective, fewer false activations, may miss quieter or accented speech -- **Lower value** (e.g. `0.50`) → more responsive, but more likely to trigger on similar-sounding words -The defaults are read directly from each model's `.json` manifest file (the `probability_cutoff` field), so bundled models like `okay_nabu` (0.85), `hey_jarvis` (0.97), and custom downloaded models all start at their author-tested baseline. Changes made in the Home Assistant UI are persisted in `preferences.json` and survive restarts. - -**Tuning guide:** - -- If the wake word **rarely activates** (misses your voice): lower the value slightly, e.g. by `0.05` steps -- If the wake word **activates too often** (false triggers from TV, music, or similar words): raise the value slightly -- Start from the model's default and make small adjustments — a change of `0.05–0.10` is usually enough to notice a difference -- Far-field microphones with noise cancellation (e.g. ReSpeaker, Satellite1) generally work well at the default values; basic USB microphones may need a lower threshold diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 0000000..6cf6702 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,130 @@ +# Dashboard / Home Assistant Entities + +Once your satellite is connected, Home Assistant exposes a set of controls on its device page (via the ESPHome integration) that let you change LVA's behavior at runtime, without restarting the container or editing config files. This document walks through each of those entities. + +> **Go to [Settings > Devices & services](https://my.home-assistant.io/redirect/integrations/) and select the ESPHome integration.** + +![Device page overview](./images/overview.png) + +## Wake Word + +The device page exposes one or two wake word selects (**Wake Word 1**, **Wake Word 2**), depending on whether your assistant is configured for dual wake words. Changing the selection here takes effect immediately and is persisted to `preferences.json`, so it survives restarts. + +![Wake word select](./images/wake_word.png) + +💡 **Note:** Models suffixed with **(OWW)** in the dropdown are [openWakeWord](https://github.com/dscripka/openWakeWord) models; everything else is a [microWakeWord](https://github.com/kahrendt/microWakeWord) model. Both engines can be mixed and matched, but keep in mind: + +- **microWakeWord** models are lighter-weight and use engine that can run on lower-end devices and are located in the `wakewords` directory. +- **openWakeWord** models use higher engine with more accuracy and are located in the `wakewords/openWakeWord` directory. + +See the [Wake Word section](install_application.md#wake-word) of the installation guide for the full list of bundled models and how to add custom ones. + +## Mute Switch + +The **Mute** switch disables wake word detection and stops the assistant from responding to any wake word or button-triggered listening, without stopping the LVA process itself. While muted, a configurable sound plays to confirm the mute/unmute transition (`--mute-sound` / `--unmute-sound`). + +![Mute Switch](./images/mute_switch.png) + +## Thinking Sound + +The **Thinking Sound** switch toggles whether a short audible chime plays while the assistant is processing your request (between the end of listening and the start of the response). This is the same setting as the `--enable-thinking-sound` CLI flag / `ENABLE_THINKING_SOUND` environment variable, but can be flipped on or off at runtime from this switch. The change is saved to `preferences.json`. + +![Thinking Sound](./images/thinking_sound.png) + +## Media Player + +The **Media Player** entity controls playback (play/pause/stop) and volume for both: + +- Music/media played through the satellite, and +- The assist pipeline itself (wake word chime, TTS responses, thinking/processing sound, etc.) + +Both share a single volume control — there is no separate volume for the pipeline versus music playback. Adjusting the volume slider on this entity changes both at once, and the value is persisted to `preferences.json` so it's restored on the next startup. + +![Media player entity](images/media_player.png) + +## Microphone Settings + +### Volume + +Controls the microphone volume to adjust the area distance from which the microphone can pick up your voice. The volume slider is persisted to `preferences.json` so it's restored on the next startup. + +![Mic Volume](./images/mic_volume.png) + +### What do Gain and Noise Suppression do + +#### Gain + +When you change gain, LVA(using the [webrtc](https://github.com/OHF-Voice/webrtc-noise-gain) library) automatically adjusts the microphone input volume to keep it at a consistent level. If you're speaking quietly it boosts the signal, if you're speaking loudly it reduces it. Useful in the following ways:- + +- Microphones that are too quiet by default +- Environments where you move around relative to the mic +- Keeping wake word detection consistent regardless of speaking volume + +#### Noise Suppression + +When you change noise suppression, LVA(using the [webrtc](https://github.com/OHF-Voice/webrtc-noise-gain) library) filters out constant background noise from the audio signal. It works by learning what "silence" sounds like in your environment and subtracting that from the audio. Useful in the following ways: + +- Noisy environments +- Improving STT accuracy by sending cleaner audio to Home Assistant +- Reducing false wake word triggers from background noise + +### Using Gain and Noise Suppression with LVA + +LVA implements gain and Noise Suppression in two ways: + +- [CLI Argument/ENV file](#cli-argumentenv-file) +- [Home Assistant Entity](#home-assistant-entity) + +### CLI Argument/ENV file + +#### CLI Argument + +Using docker-entrypoint.sh the following flags can be used to set gain and noise suppression: +- `--mic-auto-gain`(ranges from 0-31) +- `--mic-noise-suppression`(ranges from 0-4) + +#### ENV file + +You can add/edit these variables in the .env file to set gain and noise suppression: +- `MIC_AUTO_GAIN="0"` +- `MIC_NOISE_SUPPRESSION="0"` + + +### Home Assistant Entity + +LVA exposes two entities to change these gain and noise suppression from which you can edit them at runtime. + +- ![Mic Gain](./images/mic_gain.png) +- ![Mic Noise Suppresion](./images/mic_nosie_suppression.png) + +💡 **Note:** Setting the flag and ENV values to 0 turns them off and are not used. + +💡 **Note:** Keep in mind that when the flags are set they will overwrite the previous value in the preferences file and also they will be overridden if the value is changed in Home Assistant(Also applies to the ENV file but the ENV file will always overwrite the last value on startup). + + +### Wake Word Sensitivity + +LVA exposes three numeric controls in the Home Assistant device page for fine-grained sensitivity tuning. These let you dial in the exact probability threshold that best matches your microphone quality, room acoustics, and false-activation tolerance. + +| Entity | Description | Default | +|--------|-------------|---------| +| **Wake Word 1 Sensitivity** ![WW 1 Sensitivity](./images/wake_word_sensitivity.png) | Probability cutoff for the primary wake word | From model manifest | +| **Wake Word 2 Sensitivity** ![WW 2 Sensitivity](./images/wake_word_sensitivity_2.png) | Probability cutoff for the secondary wake word (if active) | From model manifest | +| **Stop Word Sensitivity** ![alt text](./images/stop_word_sensitivity.png) | Probability cutoff for the stop word | From model manifest | + +Values range from `0.0` to `1.0`: + +- **Higher value** (e.g. `0.95`) → more selective, fewer false activations, may miss quieter or accented speech +- **Lower value** (e.g. `0.50`) → more responsive, but more likely to trigger on similar-sounding words +The defaults are read directly from each model's `.json` manifest file (the `probability_cutoff` field), so bundled models like `okay_nabu` (0.85), `hey_jarvis` (0.97), and custom downloaded models all start at their author-tested baseline. Changes made in the Home Assistant UI are persisted in `preferences.json` and survive restarts. + +**Tuning guide:** + +- If the wake word **rarely activates** (misses your voice): lower the value slightly, e.g. by `0.05` steps +- If the wake word **activates too often** (false triggers from TV, music, or similar words): raise the value slightly +- Start from the model's default and make small adjustments — a change of `0.05–0.10` is usually enough to notice a difference +- Far-field microphones with noise cancellation (e.g. ReSpeaker, Satellite1) generally work well at the default values; basic USB microphones may need a lower threshold + +## Support + +If a dashboard control doesn't behave as expected, enable `--debug` (or `ENABLE_DEBUG=1`) and check the logs — every change made from the Home Assistant device page is logged when it's received and persisted. diff --git a/docs/images/media_player.png b/docs/images/media_player.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1edc63f3e9b124d93453f32153ba105d1c02aa GIT binary patch literal 5959 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 AEC2ui literal 0 HcmV?d00001 diff --git a/docs/images/mic_gain.png b/docs/images/mic_gain.png new file mode 100644 index 0000000000000000000000000000000000000000..50b6181cdc35180b08cdd15c3627e90fd52062bd GIT binary patch literal 2694 zcmb_e`9Bl>A0N3x2rVtPQJ7?wW9H77TVtf6TqAQ#+Hwq;l5*xg5~3Uva&=H!E4hk} zk^2aRg)QZbeE0nyKEJ$Q&&T8acs}3n=j(Vs-gnM8VkE>A!~g(*gpD=Y835o*=V6qH z5O1wgqu27nNs^^I$s!!@O$sE2f^mT%cz_Ez6bwgz&B*~^1RS9U)<&STk*HIrz~&BM zOG_6V;lg$_k9qk2Oc$a*DZ)D(4+sb)hTt`?`iA52p;s>xNt}HQ697PT#RhGTi!5HA zh_J_9P!#4WCB#baFZXGvEw2@dT~~ZRO5t2luGUuYl&Dwf9QH}=1PUIj$M0GwxnuR| z0d7k(tAEZx-Xse$RbgPaqW2qj4ZXe80t5=F9M!_t;|38$vs;r_$Rnf z(EA!_wBK0rG31V8V(<013_Z`i@6Xh1?3@mj9^Soq`}Wd>MuDzAZh^;GTuQ1OltTVZ zZUV*ZSoL=uw;`>bZLO=hYI%5O1=@V!g{{7R00gE1qT{om{`SV-b7Enz2EDvdnOqf4 z?dKV#e;9hm%h3U8#zlw3>Jw_Lcfa(Blh(_lt@xeIU-HE3f7k1tx3|B4;{Dcs%&p!- z{hnS(7U#;sCkUBgV`Jki6FUAJ;@g>;`J?Zi-LudMzuoP%)wQ2Pr#aV`hP4kHN4Mk% z-q<^e^|}lgEz``@9BU59*fyPN!rK*^UZ=D7)nR>@RO!SkJ;bq$u&q^m)UO%K`ei1Q znN?Iocp9?F{e}peHrrAR=r5MWU@!&|E5!>6aIbhV#h{5cvYjCQK8ozOu`+=mP8z)k z`<8IR{fU{F;pWn(2RA+xp2FA~rs~9{*_luw>?6da_v*3J#oxFE=E z+*T%+xj4mOpjP2v5vx=n#M|5Z%OksdeolpDiagu7=s_j6Ak)fmI7#f(MFf34 zu{imvy)Av@;D<`EnTLl5X(f673INqtRt9bk0aB+IjQ;A#O?SueQeXL#=O~+}bSEh( zNg>TECrfEOUHbh)n`{*om5$)*&40TTUGn7f7$Gk{Y z(6yc5**QtsSjo*)#?bmf%G4^S((^G(EiF1PNQ+taB}OB`l%aZ0JTHgN^q44?-btDl!0 zV49ad@a;-x&o>8rMCUuCB5m8G($hgl|J*l>c<55)NH~J(hgjUY-Q0Y�A-KiII0@ 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 literal 0 HcmV?d00001 diff --git a/docs/images/mic_volume.png b/docs/images/mic_volume.png new file mode 100644 index 0000000000000000000000000000000000000000..66a0e6b08d4e57a76e2a0f12ce709fa9cb9c7a04 GIT binary patch literal 2381 zcmb7G`BxHX7pBc!R1{0iCERjKLn(2YFq6jAq)aEXR73>B4G>Us!P1%03YR`LGaa?b zZH&w%4UJ4QB}=l=F&6|CGB;cj!##)j2fp)t=e*~>_x^D2`<&;z&w1{x3n*7rC0!)| z0HEr27I_f>*p(*Bp$c-cxKYt0FT1R$XD(A+qH!21ff!}vLx{uyylGKJP#Ys>TBwl? z)W+7x+Qz{~cC3w@J&n$s@%GvJ&&fzxr_R5f-b6e#788vFghmk~ah4QpG!7RXS zyaRKeSQ(e@U+`vFrydID2ZNqhr2GKdj8E0 zJZEB4u;@7DXy3ib?v=ETxlIz4Pa%9^H2G{~jnMi7X$5)c9je)zwoc@r2kE-9m` z7j$=RJs-cBIxe@y%~re6|J*?~HDWoAl+I{PXC(_PMl;>qT>|L{gp%^F>FK$i25LaX zZuDiTX*uGCtPYUXz0uK@n>O_nBgnEDYiaDL*xkc*G+&4H`}(LjT<}Yfe*0LzBVjz{?&sluVc&UMli?*`4?NB*{_%Q>18p|w?lHmoMfZ3WX)I-*a&6ea54n4HLVntm&e!3&y7`0Znws8Xk$ALOb9-|&Ej>J>c_*4Z6dZwqZRrY#4zGS(wz}JIZw1r~r z);oQp412NHGtI3Jld_vbx?GziII03e>kQy^YoGk3y>_b)leqhAi`WqCL zg%Fj@IAHHLExf9RhDHT87Qgd-`@S6+;t;#Q7-uhA~~!9Hq5@b>}e4 zrzu4aG$jlMb8Y0A#cx3U+py3NZQx?g#T?JXM7D*OS4>RP`i|gb0+*b~cFQpIO9he-MOhy^@>c5DYe=Qzv zAa6<|BSu*o0WDPP_M1-E_8$v8-fm@W{nuU)!s%%;zlApRjG!5_D2Uwc9udI|keak@ zc>KAxhIc5QaxPQ%J$_wz(^zV5`*XFAHLvOVufh@iy!bEbmpO)is`Y*4!jC!r4Rroy z$yu@@yzAz|Z%$M?eNBVciS!VOtN_9-eM!28adwUj4$?HZ{U$Kj?G9~T%dc{`tqdNBg~DUQp~vU zn{;+SS$V$|GB7Z3;@k2GSa{HdkdbbY0V45Qji1;8nht9!uMsSXhhgs#(#S3S*h;?F zpYmxREOjB9*R4Km?bJ*!VVqoF0T&9&f%m+?!hJ67tFmS!$UE1)^LGvq=KBm$jf=+yNxVbutN(~~dwP=tdHdv;c^XL(1dUR$^U*j;(R0#LenEjBi#rwyJngqnCcb~^(j7>urCuZ^YJpP; z8fn(8=k-)(wHUEm^pKIAoZ?&OMc$<8#qO%WMw@%zTlObb$0wJg%H8vNiU6T2_H}w- z@Xum<8H9S~!Ev$Eltui?^u)?R6rDo-04$M!&!p}$Z}eL|Hrthg(baeJEiN`xbUwCVCYOH61vOIaPCIB``a`*6n4Lc=2 zkz;<|_DGi9FdNGO=1qM;XSbYAyPCuGn1b69twf3+ zWQ2Vk7AQaEU^n)W=?9aHtZlK$Sx4^sXILTM>CsKPR#kyN4qhFap-h^j0z8E5%9|2K zQ(rWBKJ&+>+(x(UD{FJFHP%Syd{@FGffL_b=f^l4%)>RwBHgcI_nyXxVGy?v&S8;7 zqgQ_Kh(9@H0Rn+~>Y=Em8vo|Lz4v`Fgjt2|Mp_tII6BE5>P15_#qbT61x6sD*Y!+ww|Tn-LLAzXWmuJt~XKggb@a+EyZl z-C;0}r@r{~=ba{h zuQ^1x*D)d1M!~>auzSx8Ob?0lAFq58Z7>nJ^>)FK$uxmLh`_u&B=XH`EY6gpI4x{C vgDewY`0}s8KcL9WUK#g)*!+K43BEeDX_47-m$hDGgP)1 z+bByRlNq}h^7PJm|G)Roz4wprJ@=mbJ?Ea!GfQ(rb{0VvIyyRbVmc`_Xz*sAdszppf{ZjA_yd}2+~FPf)wQyRY3}h5Cvt3iULU2 z3}j$nV{6(*g`9N?{Oz;}_KA4l9_CHw8x$PqEfek;=ItF6?iURWON5>j(4Ar%b zdbu&rdfyf%!npaGdR3-UCJ8RWb3OMQi}tYC$dr8VnamL%)h@!X%`KC@b8Y^ z@gjFN?eopk@Zr5+>swIhcd#oL03h&w0R#r?^8=w!uZvHgrlzvFhj0Nuwr75 zE)<$9ub!Gp;9_Jt6ZiiA;^Q&q8*)UC&w0S_$F|sS-|`~Pi&x^>_KP?N= zsj0Y`-ua|ymoUHxdnZ7@qR%}!@7tesi)hKMOMJli*5B7i=y#_u+vPoKT0{3l0!*CN z%NF!jUGRRSv`sl`=ZgTTz8#%6B3#uc?)f>=Yn87>BM$%EP#5|=LqeIux!Q1GGxk-p zEU<-gCD(4s-P8SgmuyX93(Gf4du09(Y8sZWXN)u4>iHO4CaKNpttpfE>aBAu&(7es~ zxV)0G7wyi40U%6v`f(Fm9z<$^zs`*kQzvyp zEfI#sQG~Y|2hkYkj>yG{8k>#%xWga$4e&borOJGl-rgiuUFZa$#$TF$bZ%mF8gtHl za%^d(!Eb#H8e=*vyJ`WuQ&(M9fcZ81L#+? z*hLeu<9qi6ArgW@?kzL$K)YP0W;bsafZ#@k{V~T)-%5-@X>EPa!kT=H4CNifvv{K+8SiUat!oZ` z2;S*=RXTz;P9m(eUW+lK$Ro~`CF039t|cbow>cFNQG~9!?4?EHfefLPFI5)eYHBUs zr3{0=x0c5$P54?NJ|Hyc_Qhw$@ajR)&=FVuoX zhD&}B6v4sbJIY>!jmgpSayY+Lm+C(U%!UuCA<(0l&5aqwn`=jWH8h8nwmZtIDqsia zG^ZR5Q)c9KxqAHg!MmSR*78&g=C>Zp3b)7-4-EPMj=Lx2BTKtlFZuI%Ap~)+h=Q@u zK4ds^KtCo%i`3|e=Wuo_)rr&g@bHKr`}~@2Y!^yT#if~2a-s#3RWb{kR40~KS}irz z5sD(QA&}&QUkU4lZ~<;s!zXdg=wA~5XMW{?ZjN0gV%7n0g7}da1p4@ISZ_DUot6amIBCzwt%puIH zf5GK$%L!Mcux$VIqT14kjrAgRHSOf^Lv{0nSk(fX3vE+K%hY~9Q)HZPFvcTPW@aNY z9e9)b$&)99p`mf-JKPdIJv~PS8vhiL>pLjD*^(x+zcP_XMnE*5!ykR0u!D>2307fp zjcTV^dpjM?5W{MVOBmS2-|sme&bpG7TR*)oX`sVzbeaCw4}Ub%;Cc3NLX`lB zrW_bt@p;tQzwWs3&k0RjN$FBeO^pot4F-eRJ>Wt;K&ha;4l`?+ImV{fTJ4W$uI z0D$;l@&;yl15HurLN-_yp|{2~<8X-h>ih?_wFG zshXyI#EZsZ$shp%fk0$Ra`L(!tt*DM3(R5?iK63^bLnT5!^Mw}ThAAw;{qK2caODQ(oUFq|FNMuAtSV9@`R(HuMc|?^H{hohUe*R3Gf^eR!}cyA}|Z z;*Z8KULA1%@g;|gZ}Ng@;K&E8{b|ypeC*^LsXGXYDCU_L?>l>WO{#AyMZ)UXMKt*b z2L}sO0*KzLL4@iW1bcZOPq7@3%l&f8hi{9qzTQ-EypB* zPsSUs;}%#BQ5}JEs-(EnlcSS78OL4a1mBX8Tk-c$_hmFQeY-S}ERz`*T;o2G=h!dN z272VKaiwtp^#?w0mGA-Uj05zWT}YO2!H=*samPtbYo;r1hiEoVaQmOOCPI1mxNAyAOpO_4Indi1+Le&9BFJb1r~0)e8o9DBl0ssS`OJI62`|6k>jqGuq%F zG!bAJN^)3kCE3~9CeF^naWqOt0a1?Q4Gk(@9>B0IV<&AV!~RB3-zkUXZ6f~T4Nb39 zO0Lx)2)xb6ErMjaS?qTJx_ZbXXG1Tc>~X$GUP9Z6Gkw;(ZoD*53$s2&7~<)9LQjyb z(+g_6a6v^C+luBCF;)y_fmTJr001letQN%XHnfH~AbNCrDYyl{>@fL5qGgpQxI1Hd z%})#W4K_0~!{4pV%K0@r5pTU@=Gr`|G|(o{sAb8Ip3&oTr)JfX)PI|Vv83Mc+22Dx9LdB%))mKBE{BxKGt));@GIrDLjMAd% zRx@1e8jXyMMx_EwqHude$F-@~r621uo}6b|r_{&C)17n{TMhVxzDy-NT}xtzrRgRU z@0g%*IH%VkVkZ1Nyu2>^;bLN9{PJ$`EATFC+1cFlv(;Ga1T8jtF7Fn~ zP!DQgQ0_ZYvNncJiIt;ipoe?T5OUjc_yb3!irBnG(@~@+Q)W7Xmspu3Ry3god80o3 zSKv16*vyce$;v7L>39PPSC{<{nl6So{jXGt5_@@M@c0}E&;~6rzgqOkjp8@Mx_w_U m$EjpW%p`|Drf@;-M6^e7VV>wAD}M&;bjAke(0V<$gnt9T)90oD literal 0 HcmV?d00001 diff --git a/docs/images/overview.png b/docs/images/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b1271e357312f33c6395e621b99bf5179ab31d64 GIT binary patch literal 38223 zcmd@6XEC zX9iJ*80D;y-~XI*UH|jEJ1?H=dGaRP%fWCl(bcn!I`&kXKFfHxp|tpSmM2LaD-ZNxthCJS~|E|JG$)< zv`gaQ#lv4blhN`@L(LL;X-!Ua|Dk<&^@WpX5?w@He7(A-Xa2T}U9EAbev-att9zq+ zpvDnCG*ClMZ{{l1eI@bv7DiRkt5>hY@n8LXvE!}E-zVa#FtYs9e{kAPacyla=_VKk z9-cILq`>6?9t)M|zXRj{FFAO|$f2cfh8b-#^X07jQD8+wy#1(3=I1L9`x17>3HFhk zd)F=pY_IUl-{1d3cD!U%kaV}xMG!vLnAPbA2OsD3@l|=kps=u4Ru74T!a2pdUca0w2f(``>5vOK8tI z2I=Ur`;|DUQEdm?vOj=Cxwf2PkeG^qvywhPpFy7;+?3T>u8Z2|Io%Pa;uF6`ayx^> zKE>#j#!qL`d(4Jf>m01y*RD{K=fJ!Wbo_4yYKL5X13r{6|{%o$C_}JO>yE0F! z1$w%!M&Ge@Jd_f7m!E(1{A7y&e3Cr+^U`0r~5M0+LA4m3-ylHS>F z!#ap9Me#qDlA6a|2~RLqi5NNbZE+)-mO_7Y(adkb*(b_J0`~h(J+s17v7Hvz{88qh zLo^b8fGLKQpi=D0t7c|qRATJrS{mJV=4Mr@URRoYWy1>k$&B*48Cd4zVo4-=|(R8{}*=Aq<|fdOvU`53WnYxul>Gx;sPyn{CRNV-O86BME< z|ENfIaV5#PzNEaVcw}GLdMK;&{CZbcmqT%wk*kc1%*I*MPEI6ubt0EO1Mc2gt7FKa zI}J8@_~Cmh_u#AIKBWVnZXOG4>AU`f@_KI1sBHWG{_wEWZnE5Rduu2=SmJmgSjczx*5 z^{dQ6-8V+MAU-g@XPQzsZrtE_i+b@e-D2MF$Z(^*qW#>bc{xrQwLd83DZx3`ESu>H zcbJ`NRF(W|u{Gb`E~Y)stS0$4Z>uPK>F(XT_6r?>LiUI!o@pHNLW=#8^FCW#la6xZ z?7F(T6V0BEM`vKe%%WhqF?_h0e)PE|s#RyRJdqZ=8V4!-8sJ@~4=>++P2QyTbnyyy zDOO5pCo(#^ZW9r3an>6`ky9L@K9Y47#^`{^`)xj5YvZ7KGn@39;I#O`kR05rEnhil z`r>TuNcieTL7$yUW|eCQrWaT`fN$tk2r6%nV%;#b?}JMkv_(RETSm~KW#H%)%=qZ!v&CJ%(^M6Hb`0ho%q)Oe&kb8w-S zRw3Aw;+c~M8iPe^nEk)?ioU2S#bg<~Cx$CJ0fA)P4IO1s*)r8BkF^tsHVV^Rl#P~1>Bfk?&Ks;>s>RYdgEmctlX~M7wO$56W z6+}GE>-UG$+n&px6sLhBMd1^F`0$|$?0o;vOSKk7iv4V0{g3#t<5G8zeG4U-NL^C| z?X-O|8MKREuz?}JJK;ph5m(qOQ%8~-<|?)mgfFZerYLVVx<-;P{~8q_Re3N3!Tc%^ zwvOl^<7qLurw~;Mob`a=tN9y-E0ZR|UZe353y;V$RMSNpH-jTm^d|%aziF}FD6MAu zL`ocFlOMTYm9hfSBF~Y|20qPly98$X#z{W-&C0KYe7GPwUmTJXU&xwk-0p9=jZCQ| z0fUl0zPhzR>n|8Rld?v6v>L|}a9UNOfY5HbTQUB~tNI#Dyc#c{}!Le zus5Bn)=lpjOtlN%ep4taotFtFA~(pFb-D9vzsWbg3=oB{xgcJy+e26 zRqmA(OA02HazpM|i-y*_4v6%q2$C>6wFA$RO3rkHni`5hO=(YRX+6q*#A3t}X2P&e zOiVG-;_X^OPRqrs2Z1D0;AX=5Hq>x^L8Zt`^clD&M?<59*@C82yWg=&9V{YN^2GXc zL|_j~z)XzjCX6(82MMphr4ztRnn$n#{U*M74|sbuHG3mE-|zKv=j+2Av>65J^2Al{ z4U^J=%i~pwm_pW#^})3xR^zOg#5`t}+dfb~binYgR2YJjeN}Bj#`Pl_@D38mfK?MS-~7o z(G6jUsCBV&B`*D#^Il6=i7{;Ps?smklz38IU5(4?q|fMtMmaZ?fR`jqT8$H)e_OMa zUHO2a!FK#Ad5fUQcm(a&JKsRuv8rf0DYiRU*KK>-cy>5xY&nqI<5-k!ZYTu29ix~> zDTqD;XZo!i0@6~;ALR^kdqc_Sn=GFNa}t`Fo7-7*#X$4fGB5rP2G|cu96g3^7VXSh zCK*~)wCqKY-+aa6j6%$98=m&lYC(I%5E$XR;xCna$Tqe9+DA51LiZ#l z=_+_CPlJ43-!(EanYqbGZHZnoFI7__V4Qh890pgap4GGWeyokG#|~w43jxRKWX&xC z94`k`Qf8*HkA4DaQ(VAy<65GK)%odP2V@#ZGCfL?qDz%)Bf=8TTQ-YJly*kn?4M(I zbWXn5l{a>ax~-cCn(7zmywA8u)OT>s45Xd8E2rAUu z?lG6xyn5h`Ge1KM*E+(^FIAC32H))yZ`!@_urYgcWNl>__q&vPy1Y>5idqp&`G0n# zU#e|3CpI(Syb%rDKSb2X@AkmcrEAUWIg$3ho+B?FPNh1w*??3MiE>U+&3+)e^~-l+ zj7p^l1{0R|2D`Ttc$xOu_$xka(Ka@v-o%hjG##`jZo!t zxmMz5lN>r+dx(!14~3&9{+Rba2IrYYS>snAPpt__1TC}zLY$~rY&`s%t(#$TX9lX& zxOpFs(t4ABT+H0}6@)8>PxR5CH>bJf!cU_$IkcE6>nbGq?z*`u#fQ>3u53k;x3nn} zWPiiV7~BBo;&Hh2O}Z*$uXh-SyIWiAY|oC{B0XqD;~g0q1to6RDt#aBzl%oI4?CE! zke*m%>g!qW+ z3Ny)aGz)1Rd&u@AE0)A2UryEZL%L8+hm}>*Ysi~Gudm+-(K+Z-%*#65MJoNwmE_Sy z=ps6#{D19}0vZyx1@g`8bc)`SL?N2H6<^C*JbON0nW20~@ue;Z=*t>dO}5uUdl%b`*N+u<$Cp%^~;9nr>BrmT?`s*&E}z$|__U)bi~IvWvXDWRQH z!M{F-x7KS+iV49D-=V((d%NbY41KG%X^62+@$kU+rBwAAzL&MN|B=R2Nf5Pq7W8=AHJmj zZ2DX!XXYSubA7ralbsa=3|7ZVGO=g6_V=rB0p(qjW#=z@<=z2!O57N0_e2`sP~yt6 ze$T~O)0DZVeTH?w?Z#XQA-_;VQRj2*9UjN7qG01{km_?PQL@!4KA%st#zs&jP^6dcYWQKXoA$IABc38qp8fDUui?HuR0P2r6^0% zkuXnpDI#8R<<`f#tKpV#jB&ouN>4?!M4vyB!oUeV^ke{I|JiJwTN#dip>6u9><3q6 zm#()q@}Tvq<+^%dcgZcn2bc!!A`<5XR;c+s!_Z*KkDCr(1A~jHC$K}ocLJ7*>2wL* zJaLPq4uAQgw?4(qZLPch3I8Bzq%tb6Tm|ZzJATi@=SZ!2AD*v`v_0{ydEj0!BI8HO zZ1~!mY$9n)>GSvZE`B!;d`QRDau|3NB45A!#a^8`5?SJ&5wY$@MvyuFEpQNZQqJq( zgG+nx#t8XGT+0dsRNmLk>ajI$P>BhBfPWJcsNN5zd>>W$FwDLBbCW>bp?nvnYb2`r zA!6j*g?oK;q#Qljo$_5Cxu!fSoIKK|gQRIL4`4*r$;&DCa@B?xA(02kMVjD?EC*#ckfL5E3O3bib@A9VJ3y$tDoP#(geWjNRmq?WxArLt7e0vYI{A z&s&_c-g$;f1lYkWOugEcMeAFv)3BacKqo#YckwyxNy_P*mVEkECXIb1`b^e)Y~l&$4wc;{M9mU~-44p^TZb z8cTY*=65De`_JrXNLcKbYDo^QZq^u6>NAlr&QY{vNJcXvI%fpvMNupy z4`@W)>~8NA1dH=YxPM;TxJ^PUDVkMiNl!C{+@E+oFa0HFzmHOU@Jq+Of2F7JR>o~d za{^O2CHva+@!U|$W%?^EAl7BL(p(Bf1ndfoU zJVB;mGm+p>R1T>_+h40lkesitTOZYd#1MzQ03>G5iUkLjxUTk9wX}#IHNar(ob2qC zfds_3YX04BoUyuv;K~oxXsEYpo65`nN}G)>^qiq6;)P*qLKsDlr;S;od{_NGVx#^s z{~*Q25Q2PNLVubC)#uPZJ4x0(2-kU2QT?50IML_#yOFb`16xyabAVzrBxAOUAM0?p zZ;r`$7%iONle|El8>E`wo4(&@9*ahN_w%a>f{34w7bcWsA^3N{uxRpgafpsoD^k?w ziV0RFG!hEIbmf{I_RN}nm)xRaDNvS$SLR$*LMR0PwiZQ*Qj5NAFWA-+u~)-IUa>rH zYgyt@!cU(*ZI{#w+D#w|GyQEr)IPOh5jO9>#>v6KL4Mm!{}KYyDp1i#L(ho+Y}3tf zP;{Gq@;)>36Fgf_rfV+nk9za>*Qr$wtzXX^2%-4QA5qpo5lXT7iHaJbR6J~}>33VJWpNET z@}^*rTdSpVakHeto}OMm`8G^3F4kPI*)trhTVy3tVIxOu@tZH# zE1$x@Z;nva2596-3`rE|$vih*xXAgl6@e~;bd~ewv)~>K8EwU{uS=m+bE|~pU&pDw zroK^5pqQP@w2B6Y!x6Ub@e5hL8hc|f9S??4_x5$|4tSmVv07pkjNxKW1xWER>>mVoiTA-YYUH!Y!JP@mXT4OH2OQ*F=l8#(a@+ zr0K5+^3jK8K@2a>X^&G+c4MMv{aCmWPoQS=9?|wK1$tLbnQj)Irnk+NBeD~^h>h0t z89CX0rDp14yaif+hs*gOCzbh8*ywS}eunSyl8Qa?M2R;T>$;xgae&y64|eVHcvTTC zm-)RJZ6+V(dkpeZEK`4l?jhSDBC>y{AT*-uZF~B=0#OTC2}rULZ?!MKSYvP4jbf>Z zQh3jsvg(>{o=Ra1%1mGRPPe6mKEl#ZuOWaEnz5cTJoYgC#uDn+99P+Rw=v(E%4=&I z?@-L#oFP>Iv0>9#bxkifd^A^)Qoq3|duw*lW|EtV=D~d&c)l4c87Q+iV_P1Vr4Y3V z-5od;%nx=PJS3P#WCupZT@MVz+STYFC7RtT)hO0&90&EG^cWl6RRkBB5@Wy6nU|v4 zCYh5ud$i_)tbj%c#zcCMGp_{RD%$=-NshKANM+M2%zG-9Wf&pBYaVKNzJ%}D_b_r4 zy(hh%Rk>V}zdOYIFw`8{DwI#Gb1ix#(Uz=CD%8Oo?r907CH2mwW z1HFB9=~7>;#>d|*X?;{L;?I_Y>KkkQF1~K-vhgCFLv%ND`_FZZj_L=;afUu)C8K}OYG>Z>el~r0 zrmw5=y49y{)@@WJb>?FJ;(Rj0cUwfi-d=aZZ_>aun(Q7}H}!yP4vE(0^kp@hPjl_~ zj}Di*QZv?i^KW_R&TD%Ztg(6Q)UHhMJ~@`kx6?%OQfak_1(cCp5eNSBW&fSQGt&(H z8~bzVVhEky5vW7A)Z)*G(zi(L=VZ(fHxs%qqu-DgLs@jo<0!LNIo8|t+?HPSZMB7A z{^&!xEBMKBQkg4>eJ$)%W;8TO2xvQZ9X$cP-b%-y)s*Hp(W$^d>0IxHoJCZ}pIkPs z`jjUPx;ddYvcD;O=2J#Zmfqc(fAWiva6EhAu0ch1QYPE0DS?QHZAyw;_4%JHb`%(I zG~U|UEA?(17p;}t7764$;;_@W;bqp-?ZDAJA81U~9F@Eg(476}w4k5&7v7WV@Bt1yXFt(sSw07_$ci3X~oKlN~ntEjTHK++6Irjfi z^71bB^O2^c54%QkgAS*Jf1Zxlo#JSJoc~W-qq7*dHeWFc4ALEiqjZb!#z zijo+*-hiDc74SW-ND$(b7?e2Q4n*6}M>DwwpEa@d_|f&Mq8!ub(zU1SgfLykD6E{% z)UI>DR9?qEs`ig}`L(x3J{gZ_U&_2%{|G8UO3C8|HmpPIp*D7_q8&A?$WqtYi7xp` z4t9oZ_pbH}Z9`#IT~vLdcK2#$l1d58c{vXD*>VFN&N;N&EEqvsW(kEhU9~FGFzconvyw!#m)YqM#V;$+Arh(=T1|Z6~V7{3- zt9M_o=KE{q-g5s0KHHeKhbMC(xNUBGGg&vU?8KGTB~n;xcq|;0Xtwf}5K3CEPmOg6 z6db}$R=+g1W(DSa3Iv>@?+2$NYZ_3>ap@)Z-~)Wp*oJ8Itm z=O(f6g33O%!8(wS&lS6}J9z;B78S)m;KZ45dN8VX;0k6AD;z+LeBVCfA6NHGYpi-> z#C~1Wq$Dpd@3n)&Hk-1A4}`qfnw>=wmh+YDR(C9mBOxJS`KC;-t;0ZnJGXmkp`21$ ztMLo!pBX=$F*_a7etmIn`c2MfhD^qgVuwHY#4p}Q)S`llJ;S1}Zt4s>Ed8Rg9H3{i zNv3s6G5m7tx&OU;rJld)50k8!Nd*0M4efpXMSIx@W#c-dD@5SdTg}rMw@H{BE})HE zpfkzBtpsmVp)Qp(8<&#faZ(Qrh6`-U(;HggW|BFuJsdTZ9W#7%f9x)KO!18aQy7b! zn;@KoY(9em2MVwDr|L9%TR0^I!yh@lkBx=5`C%O}jbmjHKkC|k@q&teNn2uMm2;O) zzuK99n~LFQbCw`gE4#72b<=rWvickOpY)jphe} zP6_u}uHc8O;V$s>lIkxx5u!L^ru~7?xkOGJBQ$KzF zOhP}A28`P>dV7A_=nK4iZy#R%LEKi`-sEL2fDc&R5Y|o_A!p5+wGSpbQj!mC(#DH4 zAL`fHLPF1OyJZR|$m*A93)UEz%TM3`j@Yl!(T_a7ssAzI%|&us=b`rQ{hnu2J9aLp zHON%G@_w0J8egq^&g@~23%31{^2~^6tYg7v^u%=bs}?lk@z;S1=TEJ*zKWC2_dd02 zCv3;YL{<8$P}?8u^csG7BFsO?OeTIYz&J05{Qg@1%O^XYL0xDWwHZ2e$|i8I<;PwL zmH2%^$W=p#mXO+n`|kdeD)n z%02XUIWISjI@J@w8iZcH@-;ccBkDL+2_`IsG+uE75$(+(eato8+s z&~lwtTYC|dsNA}BtKMZrsrTnkX9)QmU$S0f7U;7~RGP}kjf+c(^_Lla@_8#oR(EhJ zEq#Dt!K^K|mf2~nT&UsD>hiV|+mZ8<5{ zB8m~%t9#9$hXCzQ5lod(O?YyJ0^Ea&-2W=GY$5j*3fXn_4}yWUrb?_{KS~sexKr02CZ8Q-_0jAo()8`BGffg~2CZvR7@Cx^m^jUK>h- zZgm{Fsf>Gp&X}-`jg7;;EOD8AHe0a2(8p_vZ`>VM>(%vL%>r<^)oH=k-K>HS9zU16 zN^M_#t5ph3QJAoz4BsPR;>b=Qt#h+-pC;s}WGA^#FMpUdCev$G{<^Aj7L%g5y1F`j zurXRzSy|b~mkKV0w<$~>LFtfW4?k;5D-LJK*(BnM)YUK1(h3{Oz9AQP54|GEt8Eb7 zA>Df0NY}_Bvy7`;+wpyqDklx>LmvED0Y0%~@=J88pdDTIC8WkD@Kk&J8?B%I^#2`4 zckjPpj_%`DL7|xYOO-Xo6I&<+Wy6&OB4V8M-49jYS9bA}+Ut3|K&XxnanPQfg!<>> z&_O(;6nWwf0QaEO+E&P;qGX{5Tu7_Dwdvo7goza^vs+jtRA9D^{mb||$}56?8Vra9 zs}DjgkT~?j-Qi79+3@HI`hD!sC7juG$Y4{#lwndFTcd4VVY(kvxrC2H*&B3WADJOhEOop zMMYPB`H@0?TM0jPT4R+4+JH+3@udA^!C3R6ZeY1e5JV5h4IEX<-t&soApHB->u+dW zqNdUkxcNi`-4I)=z~8#XVoGky?g>~uSIG83@=ylgT3#W{@7^i)GJh+w*6FVs= z;_-7Z5~`$E@2>1%l5}Kix`wg0@<)!WL3E_laD!b89x}ZbitiohWCEUiKbOR-YEvKi zhDM*g8@&TOwdz~(H{a-B9Bj&do0oFyR<#Wg5y^&$5!Z9IR=l#0$2Q%6I3MPB3O5{Y z4vn5FDQV^Nj5a)7lHK}3V~2&ms82a)_qGG6d_&cC-ud?Yic|#`8n*!NQWVzJW5}+4 zA$?W!fwP8yU~L??V?y=JUgjCjwbMXfn-2>ze=38RR4Coygv}xk{J!F+ zkGP;Kt%{{Dob*~(pG%aiXgcx62UjIw5uEJEO1W`28gj2bP_pKj%8wog%%pWdP6Cb` zp-lDaF&Bq>FSoFZ*CGQBb;Qn*-id~<>sOaz>qI<2&!TK`t6evRF?cBCHedig1^5Xwd`4B9DU<>%*{FP_&i3HxWODRHnI@uv)E%BBm~Yc)+vI(-rFM z;cxPB?t3>^zf)k)X#*c}0^p&am>8gY;*(d1<_G%?p=vwR!~SBWN%?E^Q;pQZ2ijkn zM0-@zD?7N+<1?#Fb-_3Xg29@3*j(@ZFK}}5Dfjg1?b*qJ&FQfi@+(XML_r_-Cdv)% zK##APoJn-7Ks8-&5vyWoY%*W=!zI|A{09$t2vI1balp|sQN3L5aX<`t$ldt@t7#du zCWrXsttEOyamSkQpR5eb>h1vMv_-)89#w-^H@EJajljXB@maAc|FSq#y!6LPQK!>z ztXoYIe$T@zbDHP3f>A>*Yx5)i-d-n4*!fOD%)w9$25Z`C2yn(-5iK)R5~L61A3lg$|$2|8snI1;r!}4 zK=R2GC|S4-?1<}C>O(Z+>nUR$%#71>d<21EM5k(Jb-xC- zCi-HoidSST)dxZecCv>;Z|VlhU^@>C#AK^FkARj7^ zpc`jJ^^&C3YZQCKJe*@!F$N2MJ||c3qYA^^Yro;&={pmH*Ti-BrZao-2rdq{>rADK z)zz5>zEc%vi@>z2$pA^&5qN1u|Vf_Q$-mF&RWn-`Q;xz9dH?(nLo`O}&=b z#mXR6tqmrP)|BT?}K(X;Q|l<6#1kPB>AErWs(((12j ztNIoSAyYzJP&u1`%I>OHbhOt^dx(g}b_hGe%@eND0D5)ls#Ry=juF8S8f=E>J{ zAMePa-Vsn#CUELZ2NE+|(>6L6P5|}_yW=oxcX@Kt7&D^LFL{ZZ;%!(B-#!#2Im;nF zxC{|-kbLoZ(x1~cV507oHuAc+&(PqJ_ zLaY3#tXQk*tDr6PMK#)fEQaecI0+R37+SAjFJgeV-drOuTA8!nTcpdO=w}L5gA?=3 zQhDpQt3u?VO9Y-C4wZfbYeR3wAKV$Cuwk~r3Pl%JJ&@$AVHX>eG-@&R`OfL8oitUr zVAB6cO!r$BGhtK0ZB1{g8x0GN!T35SJ0yB&89fJ7q?2qCo5!i=KDxV9T%YD93Coo8 zXc6t7Va5R#%@^aLd(kz%0`MhKVQ$xeigN~d(gvtA7`*WaC_Nik7? zd`EBO^|fAMM}gd6=L*EY3v!32&j`vhU}*lC5^eLdiZ(##WL|=g>i*jn$0_x@+#GHX zq+_?Izp7llIw8P4?Z?d-v-1Wx#w<#@vYO#`ZdVACQSc?F4)#1Kqh! zl@{L?YT4-Gc7wu*7`d-CyJD1MDxC?I?0s|Zl+MW=baT=8JxS^6LKG4ou)EH;j%v(m zh3R|RQj_5QqKLo>#K1k1;-M`tX7XY)CoDnmUX}7Fv|{2#e!tu#VR@}@@5^oKhW7ir z{p~IzH;@%7)ej(4ChG`92M(z^aX=+kn)wAv@VX`#PPQi;l3z=6jg06mW&d>Di-P?4 zO+f`5zE)8;95^{w;T(i5E=Z~%k`3HCfzH}eY_<luD zws0W1kDaqyd2=Gsh^N^ju7}W>jtGK^#y6}thifT^1>({=@9yg>Ex6jyuuzjM-4*`Z zr&YE0-MD0CEQT8YPE5Tgoj|pw{};7&5GwFYYBmk%38P2N2r4-4JQ;X-?b%&&I}_z7 z4a;v~Uz^sIUt091iH)U7Qu_&=M9GeOX$Gs3KMRIW1pa3m*+J_xi|M>F$O}M_5fpy& zVp2Xg$?;%j5$3!bLbp6tuJX7h>&F0ddsc1i*CFSC#&Nc1YhrEY=8W_WIsOKP-3e{w zCBE=V&cer4ECj(mWeUz#3vbPn@|$glb#{h+8KuIfnN!+E1nae8!&P@wTw5P8C@4;) z2b5R7`kd4-c?2>Ndl~IHI-OU#^RDzeYnuYcjH3eD|E< z#5Tro7M{Q5SS2EXFZ1&pt$})9vDTFEprAs3M?1a2bd#@y6p{qnSk>v}pT$m3pG{sd zTA~dcbe;L_cH}qAajV&X4~`UuqJ0=e{M+;sp6zJ<7fm09TSIBfO|5)_&fo$)K#1#- z;;Hu~2n;UIvNK_B3FwrOKrNgOG?$=y0Er@;nEY2=L|3n?4stm47Hl5TUPlX% zVBYzGnp)IbWSylP*226!#jp|_QQY9 zl#FB7>K4;y zOq{Ww({aS*?$>tcK;u|}9{!2e9Q_q_Ro=s7!M*58ktJ)Ecg>7O7H%=rjc{yul|B>P zA9#4|!SWoqoCNP34++pO{QvzyPFW%i4b5wR|2AYqM8v-mWGo8wcL68aUH|3FsPRO- zt4!53HHL_fA3vIqGYYw}C_H->@^1|{A3b{HOn>C+>dM8**-J0c2Xbu7#C-D`6a6WVCWj+UEhod z|0o!D;PZ4$p&FNXgPNzHs-b(CAvIj%hb(bLIDsa|!FUz zPo>vwUNUbE-LWXqfw>lF7hQgcmtDx)*u9!fGxC5xS?_Y>(r8#TulJ7voy#A*I|=<) z%i$dd{ci_%^P=y=wXLiQBmlu#$QNVZ+uvWuZPEvM|OSZdrp2iTlq`i(C63Gwj_8_eIr z$ZG%-LD=v&VAVNSxSt$s)bF%mn|c6N(@Xd;Wnef*o(u`-i8DH}1wQM3bYLe}7`4vq zUp`|h)lG|hIUk><{JcD^CgXiIfiD%s0P$@qVleNHa#nfduD>XUtcP-Oa}SV`kwIq~ zoB_PW^5H)MqK1u|wib^7YE)zS<_*#xi+)4QJ5XJ>db#}yXv9mrgE z3WCz!?)}_uQr$stmaQ(MavuWCvZ4I^P|aiX0fpqT$)vSL0<~TS{}*~v_S&I8 zdau5f__MQwc?AZuKYk=7xZFWN>1GV!%{Fg!jhxFY(7n7BZk5-EiXoi7fUJo^)eP1< zwx3OK#U=x9LH$tGEil-J%{n6Zg!2j|hBH@^ob>8giHzS(tp~#ZcoWX=w7XxV@ENcR zAMHP_m=D$-P-o97q7{wx5wz}Ex7J@=;wXHjvvAIGoLlf@m;$jd>?5H{ao=qjC!JNhkCKVi``9)nz zt9EKl6B1g?6twYI_Yn@+!c)&2`>8~%Hd>&91|)44{Yo5@8N$+nlTqL=ekEp^vF{27 zEq!1)+}G4K6$xpJwbUO3XUHvf0t@@Cos9s@UBdvv!+@b1sfJB%&a^iGtsP!c|KrCG zr*XPhuU;ic0s{FN3J~8t#;I{~BcMB&l`tO6khnC(cPBZj;S>oUKt767XOvybW~Que zT#&i*jyae1E)AY_L}>A?n5VxDDDv4DYSXWl9G;|Nnk)ePk#*@BaM~*Gnh=&c)XJC3E%A9S)9P|7REq z$@o9rJ{L4OHP!C&hO7qy|I6zyFE2mo`gcCn=xYP>y-IQ>Gc&W9)ZQOI{&{68QHDsn zm*rL7?4h-vEX>SuXzA$me0)S{DKD>e{L++Bct{Qs-@Mh;Z$4`^FY5wpBqa8Q(&*9Ass|NZ@SoJgwVDj@E| zKv|C<7oIV>T$8Mm`evo@Sr24CWR+~C+wGybu`uO# zG+X9-w7rc1k-_i=cX(nR|VsamQC1l!pCH1MZnaw&- z#NjgvJEZleiHtG`+FIcJcS+1K==Y+5%~Wz$w2XjgvJ}$_q9GR>Tem~w3SBe09{Csq ztMmQLiv~Yn4>dZ*e&e`qvGVihmB33ku8scTvl+P$+66l^`#`ZVp(?s@e+$TtkZ`X* zX1;6bp7sN2A``$Hf;fC;zdn?GIT>lcYD3|;moHv8BllK%XWM~WLV-xg-NH@6;R-g3C7`cl*BZeq+Ldu1j+TZ74;t!|NuuqEweE zT=>Oqw_o_Din=~Dq*?lAFe5QN9op)1=rT@U zT&$iDnqquutLmBdN7=Zr{D6(E3Aw*E=xOZO@~4}x$18z~^yVDUDFP; zNJke{i1d4o+u}Ng?vM?rL~MqRjKUK_S|FeaM}vlrkO%5Dy;H6AaA%D8-g6!If3^q~ zJe;CLr@|vRKqZjmQfXsgV6f5NicB%f9+J^yq9H*wu4UAh(Xd6`7OC#@!)d3Cc^Ve* zu|U>pzqkCed^o?&$QNBVku67jxy`cL5Ds$0D(UL)SV3OmYK*M4S!yfJ3@Q-*(c-;t zkgNEIgK;eN4i8Vo2rUl{`+EjikFAOR*>kY?YYZyIO)_hvG*J^}`pq_UIo%0d`t@%8 z_gbap$nPJ1>E&sk5p22dc4;4D50QrJS-%43{jvSzCv`3%_{2QoL(&&O1?1j;kDlAW zx*Cs;{FDgNk^9J3j#J%^)8ipMg`>uTa2q=s{0L z+)T;HUj39(ooym_p?yJ8=8#=P>k}=iI)3vv;jMpnrhk>I7~3{gPoNhlTcQ9vF#-A2 zMBWQ(ct}1y+jD#SQZm{xeHj%d_fiHCX4gJmhfLVTHy{VKYu;`uIoz3VKd1sBt#xH> zt$Fi`V7Qhs(P7Xrux~?HR?)48nQyD@NTy14`EfGe5?ggxcES^&mf>OKH4E`IEN&Ru zFR98uQG^u+WBw-~Kf6LS{otQFQ2%!KU%uKw9P-b%cF_O7bug?=OatPAkx>THtr-UU zak&`M%%B@ak%0!dD3R#pcthb5+_re2avd;gx~pC?My z(a`waJ;|WIWp)mXaTd`8lKwho$uYh4j{uiXPEJk)1rJa=|BsIg>qc&DY&f)}gJh{L zUt2aDg|dg&fxVp1b2*4CtD-$q;0O}Gd|9ubrrJ}8D|Q-+j{qv#8~?)Z0(EqwAZ9{7 zAiB#=?ztRsKkv^UKX5#U$>f4dOc*bOGrASD?^XdA@RHf~4mp$7;>WZ!6obO0G2&g= zTr2mFVE7!a2db+F9Do1*<^Hz~@v?KP8no+4-0S4PH?1P>eHM>iUJgoD+1y$1^Vt8V z%4_yEr1Lr>jTps^FRbu~pZTA2ACwHg+jU)`zVpBkl1zBwa>DnBH$TF4OnZmzx29^kFD@T|4 zxChGDSpO}SmNEdZu|B~6H&uY#t+fpFV>drP(kwuL4#JiL3$PU-uU!)Y2`1YyL(f^u zhZ$bK*^Z0>(ZHc30++s~7jkK-n)}->&VBU(yYR9u4LE-budwV*oB$P(r|0jsyI-yBQX~6S&y0vZ2Lvc@84!v@FO(PXx0V=;RB=IdOS8V zGE(ZfGlz?;I0Zk>y~0FJ#E@h+SNoDReF8w?g0AXerekU~eP4tG5t?T$41p!nrqA~kk*2>jM$MQQ%TPcP!nzp&^iD)AiLdYK{PHL z&vp};Qj7Mb2$m?s{7EfPHE{X)zys*m5IEgBh}so?Kv|oQ1q$f5I_39qUaNKQ7iT`! zYA^#`@MPV#?d_i~dXHa^3L7|23Nw6cZT1s^JbW6&WOGXK-FL`B4L0w;D@o9u)+3KW z5F92!GU>C?h!ZXASPla@ zP#1WBfi(BnFoe$)`rABuy8(3OzARr4+7A8QTbM7<@cAaJAo(*0Mb0LfV@kwaVbDiI zkEt%d0-O*X_Y4rCIMo-f1Xn53ewWo=B^Yf$J7CM;-NWRGAfz`~5Sldt62L9A6Buu^ zx!`~`Af|{Z?%rfKfQ1Klvu@hSNQDQ4$ggMpSJPIN%E)e)8S{t1cZ}_<(#q0u3KZ$f zzhVyLidb6qVu17#d%8cUd~pUO{?lMHI)M7SW@EGvNvmUE3b;aUJJ6vl8HWWU;Qe9@ z>ueLqbTfQ59|=2MtmnqgNE@|NNuKV?30F??;OT-i!q9yj0u;&NQ=nwFz@ZZ99@94Y zi`^3=uF4?sURhmjdY1)CB_J@KZ`_qBD)j%)TZ=Y(ZS3eFpst6qkkLJMlBxu`S)Bx^ z#(=6kv(fyp4Xlg>667w>&9Nen_3ZFz=N_gv0q1`U)4f-dalngb+OM{j4W`Y{*+)4S zYRult*OLY|_rY4?sk_fMd%_zUo*o^wohu9imdX;Zme z?CI{-1JGg#3A>uqSPJu>e&P8BB@&1Lj6vq0O#t1YFCv?IqX+kPi8E62AObpwiuFSI zQH3!@vFuRCtgnQRzhiOOKz?8V2-%RX2InOuV>wWC%=~RBBKJ{k-Cme1vi%Hnt%;Iz zc0%`3B=3TVn}763`V}8X`{`aJ*{z_Bc~ETBM6CZEAJeGl^*w);tB@enjx#KE_ol1{ z@KTdTWD|@%MemLtn+CSd=Jd{7yxq=g!*}+xO?9F7v@2k*5v4}iCCfSgRsQl2aD48j zU&6uev>Wp$vJ(i*AKL!?0X6(2D?ujEB^&G@XnWxQnl=X}yO0%3!Qt9cd{b*&J)`qV zK9ux{mS2{L_QlC$yFqA30b80==T&aMu>%4KJ8VY|;$5Qi0~i5%u0oc4$Gupjpy0)o zQCEAi1T(^Lnj5!n>2BOe_wffWwvfI1rR@^Stk2LcCMjs|>D@2zbKIyR2{5g*D3B#2 zXM;3d?0%zcz8I#(U*Gg+ZwlYEJpr#hSr)A-4w5-w7z;Pi&otJ2O!LL7l|np)AYbW9 z8N=c*?^jy zDCV1pQo1J7rdeazv2V^{7!7Hl^CM}+SZ3>`h=qWNNV|k% zm#nY`#>wlYOCGxJ|f-iLn3vP^25Y3dNfrs+}K+FHAHRFdF%9l<2=4mUNgB`aS*S z#_7DHS(u5gB+b#FjB~R`^D?Z5VX36+cDxJ8$eT?m%<91B>z&P7mV41@^oM7`h(gJ7 z2ZD-F1DSkmIR7U|-bRPjG2)g6hA?`*Q@uJ;7I5|?u5mU+JCwnkc!AtuJi?{1uIDG2 z$D4_n5g)&*ze+r;>2st@U#n#W|3*nS$Bk&lKbOrG7h4%>G2-8}kK7r(_j*30KD0OU+X*#0p7-bcH_k7xg>$ZP&on-u@A{$-Etlr}IBk@#V`G0b$`b@=GXAA?G{7$cei`rqF9BI=8VC;0;erP0gS8 z7*L~x|489+zV75t11uF46VoV8W-=(0&sp3IVL*@z;GPpG@Oef>Mb)csqn@9+g@pvY zJVPruM|lcvKLNSv8DK2Xr=ntG?ZCtS2Y@Bk4}e5+lZAo(Vb8s7ghy$24V%rXZUn^p zA3}4lMkXQSo4X?=gN{8mD61I}G}48ESjo>;g=38W*FQ+YLNCJ@Wx>7Tul2U>k!E|U zib_#O?4U)w(2$-(mX>Sftxc!nnjHB$XuCm~ke+kCyB@_7nSFrlu0&k8JkH0r0n!Y$ zGTG2aF+%r0@t21-IlDj=5rq5ZSZRVrBNlt;|F;9!CLklz2e)(}qu))595qJVPq`P; zkMy*)ufbJW2!hLei%at#Dq#yhsDxwo;dyQ%en>UtFj#2*&XAGIPSEvZV`EWs^W{qy zFBYYx9p7FE5-MZ!D=V&2Lz=+4_37|qRovZQ_ZybjjCQbXU%FT5Uxi>N1|`ka$Z?O? zv5Sy5psotC70ot~T)JOBzb0I@3L(_=l+Ct17m)p;L1K8_?Mx0 znH$B-C&?cQn_g5Nd(jSA@bnz);x^aFKSkJTMz<-ZVyDNb(XjAv3Gz>wybW89c6IVA zv&sNXch%DJqy7|G=AhUCi^2(c4U@8GzS}%U*WMj!|0pr&yvi;$i;cv#l6Fd&h^tzM$X*urDbE!wed?Z>=*(%t3zRU375 z!o54FkBm5hLedYRHkO~Fg~@wMe;HuE&rVhIlIsxv;YgYx{s3L5AM&OKYk(Uue8?&| zFkj&^*#}v2_7GWft6@e2i9HL+0l{t9YhUavGZ&Y$TO%OuLE$hYT?Utm zbO5wUPa^AOu(shb$Luq}i@!UOOW>ez^72b<_S4NVVwo$OK>PGtM92xqc)w%PEo+G2 zGOMHn_BjPa@@8!X?P+bbM+Zgf+=slZ>C|XwXxstdM{Vvzc$dPBMmYK$S-qem#}M9P za2}Y>e&D*Tx4~}ZlqWz;!z%arfm*j*&STCszcSA1mrKuNrRD-Jx{#9NWD!(I!vVB0 z=2!zdH2b)a)l2&fk8M6Y^=vva3`#*Rz4Re$L9wYPyC7G&g`@fGTl zM+x3D+1>a%9-tvx#^C(ni9-OnW3-8T5l|GwL=ZLA&2%+2A0yq1-34X}(ULejEOZ9B z)~d%dd#+5iziS0p-$8ZSXKkej&~np;PWyUOYpeUJ-(M6xMp{GJ9n>9qbVzJK8j$mXrlbzh;dtS@EfeIen_nw82(1fB!04DuK3ej z?0KWe!@4_t?+^C4)-VS$ias~gaeNu zL^!|g;$q^Dz4jI8BbU*jXIH!x;lfb3g$jk$107jA<|d+RaVVUos|pb&UD>=OZnS6g z!^N!a&;0i2vCmvlgE8Zt1eHnU4JKA>P}2{IC8EFKuC-;?q#x4<>2o)313-?t$FQcP zi+Q6&&GB_}*aU%d4a+Hiw|xEWDtnd9lY-OAZK=hXNKRkK5$OJ4Nt{Kb zN(_S?6T$$mR-%iRU`sG`n{v@P^b95FYKrF!*~fKvDS%8c9Y#my&NyIXE+@)r{L*0_xk5s(od)~ro|busc*OCs9uC&9 zR?yhRM9GNiZ(rHnJ`WWX+ZoS>pQ;KMaF#!T_A@R{=Mw+M&Kp%wOxTzqX(#FxW#vw% z)Ex++qNNM`@cwAoRXhQ)7dZ+q-J;6IF$DNr?Hs>U=$G&C%gz!O-End#`?N1XW*Cc2ta7N}=KSOK!>C(x1u6sD1f#9RDnVAf#i8D5q1Ub$((HLpA7 zHRu6hdzB*Ltyqkpw!*pH`F8p~_;+@M<;n=^d+vEsHVwwnngbAS2eo;4)uHJ&Z1l7=h1UM8?FI*T}B0fJ#BdWwKbi2{uD#^ zGwcykkY%Cs1sz85V`_xF;dJp+;09`PZZb&4>V3)k+73i^)!5^+xk9v1AnJu5Czqa^ z?RFkB_zdE5$<74!iP@P=NUAmAq9ze_Rs4i+LaLVuDM`{Xc6Ko1KAXOeGki(vjJ z-D4lG;fyb6Xq19-P;v4*EoT~pr>3`@B(7>2ov{Em;V)EGqFXF!Ie*sNB(y!ZvRWl9n{n6>gwBAEZEfXQKJg0 z45H0lx$<tdhJG@1O&l0NwDV*cuZ7jVI>Z#M4T(}W1m5Kim2PsKODp8sjq)lqT+_)|G9nVza3)y z`wQ-KbW=1p$HILB#p>Z-Zz@^?jeeo3re*}U6x3RwZ4SvW#h(X2IV~-%09+NH(;^}w z3-9j#weA#p!A)?wn^#mSG*JL1!|*)dl?-M_RluerEiDb4f-TSlNOUXtrX=66sZK~t zT&VAdqFv9(?gYY9xEleeFkaifxpq+~F1>tXTfn(aIrMr4 zN~#~3$;=Y*$_f#1)lPYql(hJV10Xw^tR8CXp9M*k5U1O4IjW8f9l1-yS@p#(A`3nZ zs{+ZLe;ybxQDGT4l)GE5oHznuKYt&MoU6g!-l`v!LsL?YK76$I7i|Lhjk&qOfkl3e zS-p<7?d8{Z<*>zVbw={P{|~vQQ??Cqb_c=Hg9nrX$(f-1APL(dUCw`YK)b8ep5IQc zLfYzkitUS~Segco%>s`hugrCCFvs>kVByb|j}f(cfCnvb;fF}W5sM&dMoB^^wzYgB z)_yL(YN2@k>Tr$E{Bte&TV-aRqm*Yy{C5q^e|}}%pR5$*@N0Qo??89%RSU#2Ls}T@ zcOP`quYy2wK`E&o)QzQ{Qa#VPp0p+qdlU6N;nS&!&yr zNGP@-56@eK$VOJ=ND|F~lP{?DLVy<^UI8LvA2yjD#g5cnp26d%80K5_Jn#*tFe#Ls9z!#PGgdjI!4p`$~!s3szSbSe zpVoCSmS$Gv@vpSWet$$xGR`xS@+kFv8%UYnkO%@_{^dqUt2}s?)TN79#UyWk{V0mr z0lo_N*}Sqop{ltr8Emq@zCMqv$%v0XQZ=0s2To&OAxAV(8FZm(-^eq3OHg%%!WZ^R zr@w}Xy;^dl7whRMtC0x_^9x%5jpknHYTjy?C1JWwXH+AszDur2RX4s3Np^4f)!}1m zumtFdNJu2d-eX))=(`SMjtDybsdszI`j8Z0iLd(B$T0eg9;UMkHOe z$HXJS{$I7*?iD-C8Hj%vUofD5k15J^xeIzRt5erICEW>PPoOWu)}DuiQTW8Sh7BU8 z(dXA)ANBOUV`T4w>oJ+WwFy2qlaJiO_?2gaAc^LCyi2?IoJ{nyUE$SE>rh+6f|)Jk&FH@+1@r?ldQ(|QL+Qqz;~d-u1jdc%jx z!{q2KRKo%&n{7y@PhfKoFCxfKHJt_n6d+A|QgJ5XzO_nT_;PSi`no2%yj`)eN5?TkFk0cNs=yE1ya zd^S$ow{|r}@|$SwK4F8hU>CIvJN&a29&nbL428{~?=VJFq23U#zd$`~KbN9ZQ@2Mh zqA5|R=I3>`+rTlRJ@ci8Jl|oYvy?2sr#~>O^Pvui4m%>Y?V{BMTnWL8q=k|h54*70i z_>gK*R4D92XD8nfQa@bfI{oD}u{V+PbMyim9sX93 z(7^{8dSR%FQnP+oYV!-7>I`oiX1-hp!b;lhO}HEFrSO z>iY!UxP++wmY>#@zW)o(r6NR1n4mp@xxWtkpk2(m#r5mP1$&%jLRUQjVoBJxcEJL) z1}9;pQL9cZ?+S*e4p@i<6i-)@QurbM)X5qM@>S1~lBL~^Q<=nYyMSIFU19bekB+>u zDR;lA6fM0BoKNKg@_B^CMxp{$&pUYwRu%L0j&nU+V$-{H1MbI&k<~ANMTP5JCPCg9 zsbJiltU7uL88pUUYFr6JkK)ov3WlBR?V!Ga!BqZ|J-ez`!dVX?lY8~4>Y?Bm84lTH zcRbsogespG-R{ajGSTK9ZT$4fB?2(gm@yZXBg)Df*ekFJqNpj44JDhfFvq1%c1wed zY3OYRttxl?h}iEq(R1Mc(}gf7 z5?CKA6qQ>zSPZ60r`@s}g4WJ?)+*xE`89aagpTMn0d!;Xl5&D0@s)DRahCe59u=>( zM7#UV3>-4OU@&q<_FX1+JAs0SFJrIg+4iqh8CN%1nsilz{cs*8E!?z-81ac+$h)`X zox7$yWjuP1$d6)m2d(FelDP_R2Kq%NA1iwp7ua2`7WADdO=5ah?wR7fKLY_aLA8Wy z=GD^B@5&qjzVK#?A>wr@(+TnB2&<#RP*2^RX-J;gr6IwqMH8pjLYQHa$@D&IlYP;d zJ;;{_*cy4K545E71mT?{iia^ByqRE;qynRWri_lLJw>3 zf74sG>B&zRgq=x`Ekwq3PtN&g@Kq=%wronzl1w|BZW{(@(tmez^ZWAtettxdcVRZR zmhB8!obuPSz$Hy`(mn9|=H4UP(tirU$n1TVr!hiM4)!5l-REAEj2)%+Jsmfm&)mrr zj7N5xKdLb?CGs1yOcvkWB_Gm#?=yvVA2RB0lgN1@ic>b@50)W<$(G^|M9Mm)Jb2-m z`v0g*2PhWM&7ZQqK(hWT=&hj9<^IFR3LSCe1_%MyFlfgEDQg>|{OyT@rVHqQT3%lM z3$UG>@()9^-31lIjLI)0L}tt=5Zp2O^=q*6RPufXd3QPbE?aRb%@^4%so zI~$P^$*++-VcU$q{()A1G`Yyr@ek5VrecNR7bPe7_!`N-q}W1mrFCR??$I0JE@hPo zYmx-aLtnv;x(e6|Rc>%a<6Ax$kUkFojS;N3Zb zrTb+pt*xu_z^oKQsDC<9&M@cG%B?O#Z;Y0fJu z6I!zuFg*;-n>LRx!rT);HPx-+rR4YEHnyD`1erjJsQiasp$&zWg`U&<$^ZOQ%i<Xbk88k8n|=e0mv}XNE2N2WDw97VrFOkY9SU z3;Awc7-ZlD;7!LLP#yKp5Od}MT)h7EeX`028YxN;=T<*x2c@8%b^|;gdrY)I8hYsT z7i+g_;5V9)f*HKX$HaU1fFPQA23;yuW=w#@$}wut0y-b>(t2x`-65EdaY-J8IIVtG zHWSyU(1qFy?>y%Fbb44LR=f!65TEB35FMc?#b&D~PMzw9@fCU#o6uOD^8k?0XPCq=RmT(|kBBJALLI|h zrf*JLx5js@AA<=~0BZ`Trs!2J4{|E_-koN3fMX8nrcwb)PFoG_$|7fc{P^+m05=Wo zk4tbR`k?D#KJXs+T`G1|`Tm0Z-)1l&$(>gURgORqDn^FaHcy=#H;PDXNKY%2D&>uv zkQHJWC+UbZD!mp&-$v%HIe#C6r_^8jp8|Csf?(*_gi1i8u2TOBnsX#)&cnxQM{WfJ zxKhcNDTh`}$!l*YR?A3;Cp&}lJ@`A%AY%1^fy$0Yh*X_mDgqF_EaVwgX{`E)7mPGQ z#*4TjyxtsiDHVYZ)C_{}M1GC1L1FSrFH#Fc@_DWF0TM?`ow)Y(<5Mf#PG}LI?>2HS zMXb;W^P<0I7V{q^zDah&9e~RU8VgrXV zsWxN3r?1y+uGxD$QVzZ(RPkP;{R}KX6JG77`6gABGZd5zoR~11CRJ7FW**ev7`X#} zcJ#!{7JTL>p{iyL`s_z2j%wP+4`5E++588p1xB@=FJ`DZCy`kk$j&lT`48y7iGj26 z{-$XSc%I z)~ibse6b~Fue}A0HPM^vpn$vb1XY8t4l%lyOaBG|w-~nG9^-RZMKAAo-_veZ8;B|K zelpbzOa$>*cVnP;mq_*@qx@vsT`Uz)Jepj?wka$8q?KpB7Zyk_=MFW!(^3K74pUXY zg&V~LQ7QJXvn0(V`N911FSKldHcPp0%W-spDvt!)?-szz4`Fzx$mkw%cfG9%d#D6k6=(x| z@cLO(HZh5)_Te_1fL>B5(5n?948tsd z!9h}PN4KG!Go9kQgs&H3|H}V}@V&&or}aN_1oZhtZk=>pZxeR$oLrpDinQ&6z`r^; z3Xgllt_O=EFslts+{bbyBq;EZql|9>{>N=4|GKbPPc4}Ul%^&OkVD8v6YUiL3)m3U zY399r)$K0)m#-9xxy_(g4M=fk5FJ_Ad}E6&s7|ip6ySRKSDwQ(;##|hUn9NW8b?1I zcAi#_t>^1=J?ohyB)@Iw#_`=PZ=Yeotr0T%d%1JHWk9kGlBJ*9Bo+8otc!7MVPLx+cL#dM+<*k(xP$N@^i+%?W#2o4nv*DBr(jh${5?hy&Jel@f^S160bZa_} z5$~&UtDU>Ha`9qPcA0wUY9({9O>8)d3w;r*tx|i9v=xAe%mwP6kw3hdOQsG|DpewA zze}RhAdAimM<98hv9SxudS=AZlJd}g?W_@5q~C0HBs;^MNwkZSx&o4W;s{DGsDu6J zv15ZQRwf_V27TeE7?l4e=1E|DmS5=yZ3{x5I~Zdg0G`H zvZ7Gvy??hEwtJg{TI6J`Ov&%?qhuUX)Po4&bJ|I}Bh+WzLTdfCHsj(`{~`1z1(W)n>UqrA0%+HCU%k`GU(%KC zYo0}uvXe&QBKjJ(C!;6bchAg$(T$ziC=7R&^ZRY900jN41!rVrS%<`4#ASwLJbRHj zbb$6!*DfXEZuVXUFbYKK6=v;MuI*y(o071f2|=B$Zo|WqQhT|?J51h4E<)a(M9?PQ z52Vw`x#CQ#!PPF#me51Txzfk%Idvy<;<>4XmIgIa<cLqh|=QR`djyxR}R_uzF0H0 zxmgfUJrQDC8u5TPjbO(CpD*u@>Bciz=xs6?4@IxaO|#|IP@kDJ&|? zPqLKKaGYq{FBlWva~-Q{#KYc>u~cc3!vk9lZ~+w^+Y#Qz#JE%3-6RbiA+90PJzT|} zniXj1H=I)&Q!n3_S?lqKwn^-fF2Pa$3vE+LoBPZIUIi@m|FkuH(GLiUD%|F6_6Z}d zhD#cVtHEZbN{AbWGRF6!V>mR?A$bpDQXUSvmG&v=)~S4Me*P!t^h9j_JmyCf*-X!b z`KI^U;VYCNTv0?k+0TG|V2_dOQ3bKF&aUw?^4|V_C4C9r1-4ewd5W2Q?<*?{IB(31 zB@=&jl?>7y5qC7y-^kR6oA54UVPg|ZC{O%ro`_*rqS74?)XO8NJJ`kNk0_NKsqS&m z@mVYh5z~;qLXpbplxzBp@h`Hmv62m8u%qR=Yvz-}$&hPUlwD|mC!;>?J0-VOy8tL{8N z24Q>w&|VyVFo5@}+msiV&&m~~xf~H{K?W3s*}-{B1{|3^BKF+^IXGyUN3;)Xa0wMc z#oh)XSC>{{DOR~G6n_#z9IsU{WN_e49u8XbJ|ScNW{2=q9H8F(0JgQS+n~xlPY!g& z1$=a-%QT+K*_#Uk!w?HKI2EAt1X*JKeSp{6RL`C31%<;A+;F2O*O_(1od$Y;z!}`J zj_7X?mLAy;QHMr&sN~$C*y(rcF_~1Rr~e9P%#6lkBbWp!2W|eZC6M%eBu*X)B<1uR z*%1ekKQM|H=enh;MJz_{SDsXYsiApKD>uxB){99 zA~(RV5PB@%gQBJl!Cpdmt)O0Dulo@xb7z<%2|V4OkrBi&us6BXd3Y$lVuBr!hM|L? zp!pV93VmV-si+~pEuXXFFLaG5gG{&JR3B4*jPxXL&>lV?!RZJ|1~-Yc-W-TX7ulLe zVF8WI`J!n+F1dGKwf+oMzXL#BpGeLmFl!)C78y*;vY<~fcAgMl+5*SzrA2VQ(WkLo@N|vbLNwG>Bs)aNzgI8zOEQX1 z3+7#&Y(U5q@bi^*ph8B*+_nHOPbmi>?rIpFl-}V3xfQ}<;c0+UoVd3D|5W;IfoU1x zTwW|hL_~OW3RgGLYw&o1Y&*D)j`ZIN8ccjgkI81KI0z=qvwHqmf{N~0W}7U-cd53= z!LL!=#OrDUDO$j$9x~rhY?hHgNdS)(`1Lo%uZ$MGqER^;C-SujdlbFQos(2= zp`F0^t3QwB+>2PB`+HtlYpre~8Djs0boy6#{#u=3Q0Vl|9h7@vmX>#9W(w~aZOZ#Q zBcP~k#|wwZrL3mSgd^}@ZW5U@iGV~~1zI2Cs@mIoYnDggnGuRd3JU)|5DzAyf3n!j zZ-a=T38U&~FNsPr#O^4dnnZGXA$3CE%TNhvTTQZ0%TnJ7Dh;>cE{8S{F{e;vQq6Ee z`{~U^j6d%Pc_8%7Uv zFx0%qe?of8;F~QNIh4ILK&#A*&Z<+wP_z5n-^^z^hfFtLmC-`-YaoteRv){=6LLl1 zo6peT-7z{gBMTBmXsz8C{;ZigqYWjw{jRljyGX^LV1J&Hn7L)AH=VbHrBK{rFqKm# z(t$au7*`HaSthkKA)*L(1|!Nhk`P|eDM>j5=GAv(AC@VrJ5a!QFC!LOkXJX8JipMa zz8tX?L!M72^>!+UG~7;lZJ?uOGLC_PoilwM7KE78Qn&b{YwXp-uq~!{9+idS%5mB; zp+FXzvQ}so@3LFwXa(p65FYHOl}Fn$IRF}R!BFFN62?mS9JG^@b2d5gQ2@)UU9W28 ziDQXJ1MhI~mM^gj+R@%`&CBLAl?c}J=dG>Ig2XZP`#aerGSS4KKsFyA=+1N!lth$ zW^ktZ^0;Q1qf-6AilVNso|QjBb>COlY^OMn!BxP%`sw1^0KEqU+WmH|S!2~14}sZ_ zlMT&ZezM2N?49HHrv=BHlz3675$bxS`7~?%0cJazPBddEbcE7W@eqUpcx2MR@ znTWkE0@+Dr*MrnrSS3`I^}h#EcS8Gg2Hy)tj@ReLw_^3M(~OX*W)(=)Gh?0n7H=A= zroWaBULB{?`TVQ2v|#q}ijJ~-lHZd_@jewtN#9$l6OyPF$wDh#GQE){qp}E(L_6tn zFD#WynPyqmfyy+364`}cAke}!@~~Y=wl9rgy>9Ipj9c>gXR(_%5l?Uf>P7pVSupm~ z*`j$;#wAKqK1}GPFV!%{zQ)qhYZM{#yXXSC1a#2ZSUYNr$JFb!vsqjrY_eH8s{Dpo zZ_|b%P)AE1WyJa-C1k_*Lly_rdk6ZK#Bl4s6oL ztKXVy7cZ)lTuwr?B8<2;=!Y|JmO_SDHjTHEncb>}^P?13e)Z}CnDGjTEs*ANV_rJy z#I&xUtcd!@Yw91e1Y$mGt+1YX4&w)J&(IeB`Jr?yoYyr!7%=?UkYH~o?Q&Eh^BC*50SSSr5C_~}j)%m?||#N&5U z_}^F2JAc?_|CxBV?yJY5ZY|nzQ!=b*rmIk=-+|#kpt-F0waKqLB$z&}p}abD7j`e9 zUH9LZTlPD=(ue^=-Y41b&AJ8Or6L(Px?c1;l#kxC0w0nuR0E>~gq3QRhYI4%DxJ6Gp8IuqTO_c>MI$0kNd!2)8k&Gs)~o*jrKt%g zRP~~gNWHfVDVHxS9!qCH&CPghFxu~6hjUtmF<9}e?tYw1q)ocvYtdst?D3(X*ucc@ zHof(Mg|sDVu7svXVjeE=5k);4DOhdA8blZ0u*G^{P)T5mXo>!zKHsxa1b$DrdiK zx&2A7$71Oz(@~{&UAkH(^_k7i)zEg(1f{uIMyws~>0^x9>JEw({g_ut$vmfAsjh!m zhO?%}e&icCT0)8>#KPiuTHut zw~8l0qoG6*(*86{0-J7u(o4*xShXzqNsXzLrP+O(5#bBhJ0%3-D5hB>BM#CH&Br1S1& z%#GOWO;N-rIqL(BS8gV=?jKn61t8?(lFtA%pBaFwHy^-URTtr??RTi&bvZ#9U5kg} zvnaQExk+xp<+Vuv0mz|Qxe)YIjngabNB>W#uRp>6F;aNGxBk0}d;fA+JTGJ?ygludk(*7DXRe`Jo|4UvTV`ui9(AB>f?a%gvJg4&xBpf=g0c zT{KXR{(VfO@(s3ZEY2)f&d0jg@l^axWuH0FC(x6m6E+`<`rw$jgBNZPfyENC#<33a z*34w5_}E41VK^d8<-sM*jz(%CD-bCKC@2!1@v-cRq@~{E>*TM0wPJr^?ep{BR&(>O zVTfAE%E?_FnoX_`_a14Jo{X2tYUZvMreP8dtA<-?|0Pc1fy!O zg~BI0+^9MrPSVEfdyCX;d~GoG)duMRm7!BR>cO~e*b1GRqAlW`T|Lg0m5mStVhrZw z0e1Pcqn7ad!oUxD#z3U&tV3C#xKAc09F`}WM@`=Eo`p!Si|(x4ron3 zaPQ5iU#@ApSR}*PXIlPTZDD+)fA*c4eL}6umN>8UfpD`k-^IrU0O-hy4iBn-8uSpQ;D&%$%cGKqMy*BiMEzX{$?k;?RFTVilY0w{i3^vp? zIw9*fVv3rj=c#_u>{@1%i*~p}HFDUY@a={ECt}}YG)2Z9iFGHr$d!#td*yBYo>U-B zRy$`T94CZT55tLim0wiP&^En~I<;!|>FgsP-6uScfN9&!uQKlX13o*q3xQ!5R8?Qs zJ{9}v7e%x7Y|`5Az{CoPV@}BYoP0#JZ$@w0Vgo4hW|Gh&e8sdjb1V+^ zvglXq$_WfN4QuS<2AWVEmgi6S8qN?IV~U@@+Ph_Gwu9oJ-||+m3WM~yktH*|f~gon zfV@?5g3{c}UWZpLki8YJ(>Anv(ud6efHZJWl?B<`CeIVum0aF*U z_feHzc-m2J(T!1fSaYJ!XV|(%qe9UJt_e4u^ou4Oi)f4a9WSS)_~J=gOinay2 zPJV%rdp&hS;03}Q)Ygt2ul{&Vy7P49CvLfP+w6=B7?pgf9p^kg_bjlm$XzVGjN9RT zCt=7^T^n_pJ%;_Mt>U0csEAz6*4MM0an<@YTqZdV``@42G`|#iF2gEKEre)BK_Qb_ z_B@Ml7`w~D!8K_3GUJ75zlja&)4k6@=dO^{xoj33f5JJ6v1LA+`{T-^4D2{;2@*}o zk_wFM;#rbk90Ei4_8rjvDk18rNmO*!XAmXC#Cp4!eO2zw-D+zen9eYI-?8i5U>I$xX5KI#m(kx zvev|^A1*due?TikF@v|529MQ`UoOyunY(LpPK)Y8j8-J(WMz~1gT#sWbPvUaPwGc# zR67cI3ZBl}cuS?#@$^T}gzk+J8%&v|YyXIj2o|$i1Tr$1P6 zI0Kz3cAihI&c!_ls!2l~?c`lvo5nw3x?w!-nWlVH*J3|~<%0|CXWV=GzqM?xoLrB3 z5CRoK#T>Xbk7+!do~@x|HAvQcdy!HlFm%pCel>XSFJG%Q^^9wlTX94*Qn*?_+v1Yl zE6nkv-uV#XNVAze@qeyTWWbvd!f z>y(>->&x3se4k)84r1XXc-2B?B1fEuj+#m+qSE{ZPZIg1;~#yXre_!bc8`H?^keG= zl=6RnEOs)HN)_@V+=SW;DMt!?Q1EcDs;$ME9(uuyV@MT`!S&LL=Wi>ysE#56kNu~ z1`@ZGb9LI|e77Br2a+C3JwqTq6%|<;A<+K+fBfIP1P``$#iYs-{Ap*5;JQ*=RMk9} JuY4`={{Wm<0?+^e literal 0 HcmV?d00001 diff --git a/docs/images/stop_word_sensitivity.png b/docs/images/stop_word_sensitivity.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb5b73fa38f712d8d366d629d5637b63fadb787 GIT binary patch literal 3589 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 O$PDyMbsMyu6aNWaa=jh^ literal 0 HcmV?d00001 diff --git a/docs/images/thinking_sound.png b/docs/images/thinking_sound.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca9ef7ea87de48644ff8e3b2cde57971a17e57b GIT binary patch literal 3513 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 J5>@Na{{e=Ile+)_ literal 0 HcmV?d00001 diff --git a/docs/images/wake_word_sensitivity.png b/docs/images/wake_word_sensitivity.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8e96c353642e8d6022276829433571b0c00927 GIT binary patch literal 3072 zcmb_ei96KW8~=70g$8kP$udc|gzRKr%DyjyEMv=VW;A97W0@iq6_RzV4Z_&7H5j7A zP$7&glcJKbMYcP(-`v09{+{PNXM3LaJ?A~|=lz^dvYm}7m`juk006ML*>wj1IFZ4c z+nnNH^<13kqO9Qx+SnC+4dw5H4n`s%PQh@0z|jW{QB;B$Vgez`ipuH`B}FY2WmbdO zSwoDC9i0X&P_Zmak$){6kpbvPACx~3h(N;qQOxP#2E8#+Z5 ztkO@0XF)~ZZfHnX`b~~DCQyjPQ|c=Z8l)HuHSD4)JHbhy}T#p_Gn^UROCF6%eY5?GCKL7x~ z4AKFhlTR7|6xca|SKNkw0KbgVfnV80MTiGp<{W^Mg}M1Hui)U|HEz5-CnsliX6DW0 z$QZAB+Q)WO?FkILb@7VxZ<|Fuv@X`8$4!u+ zLlRM6P6*5SFrydVKF&)O*NGY_!ZBoGz9tFFN!UFB41|_xwM|Lf!qdBRcw~-OJh|Fz zFjK~_)HLnG*y{b$BEGzOdnNSf#X=!oRyYGjhNyn=$WIe4UgDb0HLglCozW3>ZPvE7 zZ7>RMN_)N2ZzBOhEy0Wwk4J*)^OcG0$|IkcWa`|&tq`{ffE_Tyb%wq!!TnT<^($knUprB0|N28~ zKBAqfckt_)aEfy5Uifaoy@{F|W3@4CK7`W&S?THCGBPsc&#hkF@jE*+$c|k^C&X+8 zZ>Wqviq*z2GWVm0vgMzMP&dC1(Um|cG%N0qhU~I3X;~;Kb4HLqS0yktf9igD~}jD39%j8*rH-RRp{ zswi$>R3fkv`U=sxVZzqSFCakYhdPrf{X1*)(DSCL&5?6)lk?_xK;{-91kB!~N3|P1 z9U7`Q(4JaQtaPXAtGTiBM!@#dQ(L{IuAJ@V$&SLm(sXxn_itEg zikp~8S z)q0RoYq?AXw`<~8!%JF1CI*?i>&Wvaj|O&TCF1wKn&noFR#=!fi5LD(5tN<11-0N( z8Es@0?_BNS@?Ld)7h^Ci$=ZNzW3_D#5x2jCvGkR9Z$%?-D|8=x44JHhCvt#a91so0 zS4L=A&!>< z%JCI-o*mPytRg!i*Refp*Gu8u`Ree&@#1kIFN$R8=o_1L8Oq$ebys|9S=cHf5Phhx zobWA8toLT@7{l4lB3n*`GlTl{Vn>hbvu7696!<)!FSC!MC#`O{Y#c8Q^<|;bqBmP+p9e6ThV?>)J;LvBYk?jy z0aA9t=f_6YP1tRYZ>4E^C_#%h1YOE-cXLQ#hJ|e5=trL^F*6!-u?rkQ6b(1ay?yXb=bwY?0X{XEf_wPzGpzm+2gc2&*gx4H{3Xa@WOwneQ0^IejVq2 zn^#^ibiR_Bg-gJtRi%JGYmmZPIz1YF`v%}>vh#(@PLd^TV6>VHZWxTs98NDYoQHsl{U4C>FwZf|}=RG?gK ziZ77~|NUNL2COmrU4>YZzayFX8N zvin}a;>Hj1*1;pkED+3ogz~vXN9*;vD`F5@$6v_tEQj>CAdOr-Dpoy+S&WwmkEza2e)wV0)?dYZXLGMH6-8FhgV7o0iMf7^h z3NgiC{8h(%imb(q{#;IKV98={#aC zugS{6;>9hnTq`bRPBLD-4l0D@V_0@r(o_Cgbfc6r*`o(u{{Fr0?(70KIQYkzqnZb_ z&6d`>o~xZ0r=g1k|LTLR6^;;aCZXqNlaSl)D=b)6rZIh@#&r-!JG_sn`W;zq|Lo@5F9qI|T3#(9Cgx7k#^Lqtq0wcU0ckOp&Y zL8DR(vWyv;he^>j1fA>IbbfiF(qFYOE#5ehBM6jBl8b{$iGm75X`}(?de~~f)<4E) z!PBkqP;qT6dN_-8Ssp1U?>3$kDK~7Ii@QML!OTrRDuGkm*H=7nOXYPb64%OU{2HpT_2yR)axzyZJXF8!;zGd`hE7t{(sViU9*9gZxBES3L*}_N`NzLw( zyosZzyfybb#DG>3;eek#nfVt^49pZA*)9OZYz}YzbINg|qQRy9x_btcrH5i{#tU4w z%fWm-&g+VxcPu8H|C^ml2WroRb@Xg*=7~UH7o;yhh!@r{&OQim< zIu3|3R|Xy!*1ENvUd)lu#ktDu)niWpFxTln{;OO(;-*)9hpIkwddm{#fVr{F^*ST( Gg#Q6?p2d6s literal 0 HcmV?d00001 diff --git a/docs/images/wake_word_sensitivity_2.png b/docs/images/wake_word_sensitivity_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d99e6ec23f2ca97cf166179f950bcbf553d239d8 GIT binary patch literal 3188 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 literal 0 HcmV?d00001 diff --git a/docs/install_application.md b/docs/install_application.md index 1e374a1..9cb7d22 100644 --- a/docs/install_application.md +++ b/docs/install_application.md @@ -314,6 +314,8 @@ If you want to use your own sounds, you can add them to the `sounds/custom` aka ### Wake Word: +💡 **Note:** The active wake word(s) can also be changed at runtime from the Home Assistant device page, without editing `.env` or restarting LVA — see [Wake Word](configuration.md#wake-word) in the dashboard documentation. + #### Available Wake Word Models: The following wake word models are available: @@ -326,7 +328,6 @@ The following wake word models are available: - `hey_morgan` - Morgan wake word - `hey_luna` - Luna wake word - `hey_home_assistant` - Home Assistant wake word -- `stop` - Stop wake word - `okay_computer` - Okay Computer wake word - `choo_choo_homie` - Choo Choo Homie wake word @@ -337,6 +338,9 @@ The following wake word models are available: - `hey_mycroft` - Mycroft wake word - `hey_rhasspy` - Rhasspy wake word +### Stop Word: + +The `stop` wake word is used to stop the current process (response, announcement, or timer). It is available in the `wakewords` directory (using the microWakeWord engine) and can be referenced in the `.env` file with `STOP_MODEL=stop`. ### Custom Wake Word: