Released: Openhab2 Amazon Echo Control Binding (controlling alexa from openhab2)

development
binding
alexa
Tags: #<Tag:0x00007f0146cc6098> #<Tag:0x00007f0146cc5ee0> #<Tag:0x00007f0146cc5d00>

(Udo Weber) #1214

Thanks for your answer.
I’m not using WLAN, therefor wireless is already off.
Also it should not be a problem that alexa.amazon.de is not reachable, if so it should not lead to a memory issue.

EDIT:
DNS seems to be fine, tested it from the console:

host alexa.amazon.de
alexa.amazon.de is an alias for layla.amazon.com.
layla.amazon.com has address 52.94.220.236

(Paul Miller) #1215

Hi all,
I seem to have got to the ‘almost’ working stage using the lastVoiceCommand channel. I am hoping some bright person on here can nudge me in the right direction to get to the “complete solution”.

I setup a routine in Alexa that triggers a switch in OH.
A rul in OH deals with the switch being turned on and provides a response back to the echo that initiated the routine, to make this relatively generic code I have been looking to use parsing of the contents of lastVoiceCommand.

This all works great!
The issue is when a different echo in the house then has the same routine ran, now both echos will respond with the response as the lastVoiceCommand channel string has the phrase in both echo’s.
Arguable this is a fringe case and rarely would happen in real life but it has been seen in testing and is annoying.

I have tried to null or set the lastVoiceCommand to a known value but it would seem this is a readonly channel, I have tried sending a TTS command but that does not seem to update the lastVoiceCommand value either. I am therefore at a loss of how to do this using the lastVoiceCommand channel, does anyone have this type of thing working (I am sure this is common) and how do you deal with this issue in a multi echo device home?

If I get this tidied up I will write up a tutorial and publish for others to take a shot at.

Thanks

Paul


(Dan Agostinelli) #1216

FWIW - I just tried the daily snapshot and I’m still receiving this error. I upgraded to Build #1446 and I get the error below. I followed the upgrade path by using the instructions at https://www.openhab.org/docs/installation/windows.html#updating-the-openhab-runtime

Any chance we’ll pull in the eclipse change anytime soon?

Error writing JsonDB to C:\openHAB2\userdata\jsondb\amazonechocontrol:account:cdf25d4e.json. Cause C:\openHAB2\userdata\jsondb\amazonechocontrol:account:cdf25d4e.json (The filename, directory name, or volume label syntax is incorrect).


(Scott Rushworth) #1217

Put all of your lastVoiceCommand items in a group, then use a rule that triggers on 'Member of" for that group. If you use ‘changed’ you may miss some, but if you use ‘received update’ you will need to handle multiple triggers per event (one for time and one for state). You can then use triggeringItem (Rules DSL) or event.itemName (openhab2-Jython) to identify the item that triggered the rule. Then parse the content to determine if some response should be sent back to that device though TTS.

I do not have an example to share, as I have not set it up, but I plan to!


(Thomas) #1218

I suggest you try using the EXPIRE binding (available from paperui). This will allow you to set a timeout that resets the state of LastVoiceCommand.

Here is an example of a .item I use:
String Echo_Office_LastVoiceCommand "Office Last Voice Cmd" <recorder> (Alexa_Office) {channel="amazonechocontrol:echo:ACCOUNT_NAME:ECHO_NAME:lastVoiceCommand",expire="2S,state=EXPIRED"}

This item will hold the LastVoiceCommand string for two seconds. Then it changes the state string value to the word “EXPIRED”. You can use any state value want so feel free to change “EXPIRED” to something else.

  • Thomas

(Michael Geramb) #1219

Thank you for this information, I will check this


(emik) #1220

Hi Michi,

bundle:uninstall fixed the problem: The old version was always used although I had updated the file in the Addon-Dir. Now under xxx/amazonechocontrol it says “Beta 8”. Everything works again!

Many many thanks!!!
E.


(Michael Geramb) #1221

Hi paul,
Yes the channel is currently readonly, but it would be easy to changes this if this would help. My idea was, that the item changed event triggers the rule. This should work also, if you speak two times the same command, because in this case I reset the command before I set it again.

I’am not sure if this works because the binding does not handle any commands in this channel. Would it be possible to reset the state without interaction of the binding?

Best regards,
Michael


(Michael Geramb) #1222

BETA 9 released

I released beta 9. It includes a bugfix for non working tuneIn channels.
Download the new release from top most posting.

Best regards,
Michael


(Dan Agostinelli) #1223

I just noticed this morning that the Add-ons section for the Paper UI wasn’t pulling up any records. I downgraded to 2.3 again and they’re back. Not sure if that helps at all. If you need me to do more testing, let me know.


(Michael Geramb) #1224

It should work already in the latest OH release: https://github.com/openhab/openhab2-addons/pull/4177#issuecomment-443446549


(Paul Miller) #1225

Hi @michi I have got this working now and without the need for a read/write channel for the lastVoiceCommand. I will write up a short tutorial in the a few hours after some more testing and final tidying up.

Thanks to all for the assistance in getting me to a fully working solution.

Cheers

Paul


(Lorenzo Giordano) #1226

Hi, this is just to inform you that since yeasterday the TTS is working also on amazon.it (at least on mine) :grin:
Just one question: Is it possible to change the speed of the speech ?
Regards
Lorenzo


(Paul Miller) #1227

Hi all,
I thought I would share this solution was inspired after
conversing with other members in this thread.

I have multiple echo devices in this exampler I show two.
A routine name is spoken to a echo device and the OH rule will
process that rule and respond back to the echo that the user
used for the routine.
This is VERY powerful. anything that OH can do including
running external scripts or grabbing data from external
sites is now available through voice commands using Alexa…

=======================================
Alexa Mobile App
Create a routine using the phrase of your choice,
pick carefully so it is understood by the AI reliably
and is not already used.
For this working example I have a routine using the phrase
‘Alexa, dryer status’
It has a custom sound response configured back to the asking echo of ‘checking’ and that is it.

ITEM

_// Alexa Groups_
Group LR_Alexa 		<player>
Group HO_Alexa 		<player>
Group EchoCmds

_// Office Echo_
String HO_Echo_TTS                	"Speak"					(HO_Alexa) 				{channel="amazonechocontrol:echo:account1:HO_Echo:textToSpeech"}
String HO_Echo_LastVoiceCommand    	"Last Voice Command"	(HO_Alexa, EchoCmds) 	{channel="amazonechocontrol:echo:account1:HO_Echo:lastVoiceCommand"}

_//Livingroom Echo_
String LR_Echo_TTS                	"Text to Speech"		(LR_Alexa) 				{channel="amazonechocontrol:echo:account1:LR_Echo:textToSpeech"}
String LR_Echo_LastVoiceCommand    	"Last Voice Command"	(LR_Alexa, EchoCmds) 	{channel="amazonechocontrol:echo:account1:LR_Echo:lastVoiceCommand"}

RULE

rule "Alexa Dryer Status"
when
	Member of EchoCmds changed to "dryer status"
then
	logInfo("Dryer_Status","Dryer Status Rule has been triggered using Echo: " + triggeringItem.name)
	
	// Work out which response message to use, start with a default.
	var String message = "The dryer is not in use."
	// check operational status of the dryer and update default message as needed
	if (BR4_Dryer_OPState.state == "INUSE") {
		message = "The dryer is currently in use."
		// improve on the information passed back to the user
		if (DryerElapsedTime != NULL) {message = "The dryer has been in use for approximately " + DrtyerElapsedTime.state + " minutes."}
	}

	// get the room of the echo device                              
	val sourceRoom = triggeringItem.name.split("_").get(0)
	// use the room prefix to specify the actual device TTS for the returned response.
	val _TTS = sourceRoom+"_Echo_TTS"
	// play the response on the triggering rooms echo device
	_TTS.sendCommand(message)
	logInfo("Dryer_Status","Message : " + message)
end

==============================

I hope that makes sense and assists others.

Thanks

Paul


(Patrick S.) #1228

Hey,

i tried the latest Beta but as soon as I copy it into the Addon-Folder and restart (uninstalled the old version), PaperUI/BasicUI is not showing up anymore and I cannot controle anything.
bundle:list shows: 234 │ Active │ 80 │ 2.4.0.201812011454 │ Amazon Echo Control Binding

Did I do something wrong here? (Newbie to Openhab). The old version did not crash Openhab, but leaded also to the authentication error.
I am currently using the snapshot build of Openhab.

Thanks in advance!
Patrick

EDIT: I got fixed by multiple reboots and cache/tmp deletes.


(Patrick S.) #1229

As I read here, some of you also encoutered the problem of the TTS-Channel not showing up.
I readded the devices and they also show up, but the TTS-Channel is missing on all of them (6 Echos in my account).
Is there any idea what I can do to get the channel or did I miss a step?

Thanks! :slight_smile:


(CM6.5 H102) #1230

@Patrick_S Click on the show more button on the right side of the page.


(Patrick S.) #1231

This is pretty embarrassing…
Thanks for the quick answer, it got “fixed” :smiley:


(Jamie Temple) #1232

Hello Paul,

That is really handy - I’ve been planning on setting up “switches” that could be recognised by Alexa routines for a while, but this is much simpler - no special OH switches required!

… on a slight aside … does anyone know when Amazon started “bleeping” Alexa? I can no longer get her to swear for me :wink:

Jamie.


(Max Bec) #1233

Hey guys,

after an update to the latest release I wanted to re-login to my amazon account.
So i entered the url: http://IP:8080/amazonechocontrol/274f0068/

But what I got was this:
��Y�s�8����Bbmi�%L[�I�F4��swf3��$3{W^��G�WHʏX����_v<��_ΩH@��h����L��-�R����’m�=;�Ϲ�D�pK�ѧf.��r’|�e�fʚ��G����ç�[yY�e�(��l>?K����Y�U;‘���Vݴǟĕ0�o�]�z�S�� ן��[���+���ώ ڿ�2�N����@#M�9�����|�E��ę��?K��؜��ʙ��fw��A� 1\mN��������hW�6-;t�h��!������"N�^Q^���sW�vW������A�0�l��6’k"i9�ٴ��̄s�F�"8� ��/|��ɑҫvMb�K��R�<)��u��U�6a���9ix����W�*��X��ڦS�/8�%i�BN��&�W�q:PH����@��e%���t��Yq~O}N[����’����$m�x���Ll�����2~]��S�;Ѷu��Z��֮U��XV�oՕ���ߟ���:8a�9��?�;Ӛ�LB���LD��S��Q}��=��f�ĎXcO�g��o��\FΝ�ZUeuD���L�7������>ƾ.�����Wa����Np�kk��W�X���-�,�V�a)���8��ZEk�#�q\b2��̈����auf�s�n�K��\a$�A050���;2�AEw�Z�h�l-�#�b��:fQ]�� ��^�������7�TeOY5ew:���4D��-Va���[o�|��b9�^���� n�U�z�������W�_YL�;%�’���ғ�!H���/�J_P��� kZQ����uC� 4Ө���W"�’�$��Rx�}FJ. rc[���4���V������k�i��R�<����OE�=%��NYJ�����q>���Ct0��?�|���o��������Y������rWg�t,�㝢T1.�M󴈁�����|������䷿������,�>==��铓��ӣ’ߟ���O�Lp�C^__{"_Ρ���(k�Ԯǐe>�ߡ$m[5���]!��>����;�d�7�W��]#�k^U��H5-Z=����DT���0���h���#�FZa���֨������ (��ݯ����~D�����'�:ެG�F޻N.Ӽ�ai����v��� Q����|4y b7�������T��Y�\.2��<*(rze��i!�פ!���Q)w�w�۴�@� �Ke���LQ��E�e2�U�~DpQ���ۂ���+�v��9� M�ܵ4�XI�����UڤJ#� �H(\,�����22�Æ=��N�l�ܜe|�P��m�OX�b�#0�[��U�M[J��e�(�X,b�OOX�O���daɅ~��*xq�\�,��,�L&��Z�:�e�)Q�9�q��yt��ؚ�4K�[J����i��N��tz�-.m���}wp�p�T�C���i��;f[�x,u��Q:e���/����<�ת����e�P�^u&�C��j�q}�XՍ=V�⫮k������q�����!�ɫwO�a>HH����JŊp��-����YnS(�o�A 0����o�����e�$��_�.O�x�t�֛]� �=Rb����H��In~��NG ���[O���"��~0�̶�?o���)�k�9f�el��aaF�Ӵ@g��(���E]a8Bv����Ў%b8�D�T59󑺩T��,�T�;�ʐ�D�����%>�9Y}�@ �J�F��j�ѡ)t�3�yZ�l�7�b��э,~m�b�yx�c(@z�h�]�˜U��� ՂvB��#��dOn ���<R���6�����b]��UĻ9’��K�D�T2 ��H�"���Dė��|ى’�Mr�,WjeNxp./|�G�X��-�K�j⬓i�A}��6�B���%��z &�Okf�n|!>��p?r� �δl���� ��aY���e��:2[9_!�����Y�Z��?h5�H�0C<���u��a[nt�8�۫���̍����a�>� ,���'�E����4�r3� _91�u�}��1���I FS첌Z�(�jyG@�U�x���B7ڔ��l��p��m��a��F��mFy�ʴ���ԣ^�ԙ�}�M��:�FY����P�M�B�U���'g�pG;��?���ǽTu�d�ڶ�������r{��2D����2�P��I�jB,�����>�a�?�آ����W6����h�cO&�,�T�]a��_��,SVY]�J7w��4���H6���aM��xdN�O\u�u@�����v�x=�����tc�M()ǔck�5�@�e�)��ٿ�T�u:S�jOc�%�2 k���D�?�~ ��� #���JaR}�p���/�.B���k�5���p5����3�/��/����EZ�E��U�l��P�%�eQL���4x�$�F�]�^���-�φ��;Ԙ�1��Ԩ�*�j��Y��[�$ PځtK(pڕ"���ࡥ� e����P�i����*S-�ʹؿVRN��_r�l�!�/���w-J�����.&]�;�ѐZA�E�v����� ���J���IR�k�e�+Zw6l��,E����>�Hi&ƹ�N�a�k�3,�tU�۠�K�3Q�D:��3b3@)�“Df�,�A;h���G���]��jj��i���ο���f���/�_�qt��c��2 ��PZ�ޕȜ���WgmS��U�W�A�M4�6�c1Y�Ԏ{��Y!8P(٢l�5���T_ +�g��@�.�]UHN;۪��K_�R�0��}.MC�$w=CFq��冮���y��e��V��]0&��a �4�’m T��}�~���2d�/�C��-����D��/��;Y?R�Fr�Q�~�܂�VL�V�A��_�o��i��BB3)c�oJMZFgZ��+�@�Ge)%��S(���������EM���t5��c��H�Y��c?G��=���� U”>6}�d� Yd}�=d2$��)ׅ{]“f�?�wc�DgVh{$��nf�-��z��) nN��O�¦bxh����Z�5���f1����tl�^R�#L�0ձՃQD5�M���@��;=��d0Em�W��uNF�a� �a�<~��ٶ�&�����JM��8�D�a� -4�$UDi؛BI�r���N������28ҍM���c��Rv�}���q�Z��.s����5�Q�يTY�����S��yk��u���a(f0�+�@���W<�N.CE��_<���3X1Jl�[�(o\�.�������D��U�T��h� Q����^�g�#Z�W�p[�a������D�0��T��� �+y���:| |�&��~�/�����|,t4���@�҃QI�J�GoH8حV�k�?����-��MS%3r��Ӹ����0I��Ɛ ��#��3��M�Ҷ� ��E���(�Y”)P�̭I�f4d���w�����o�h�|� ��n^�fuxĤ4�N|�lRa����J� 6My�A��N$���55¢VR� [�YIۗ�f5t�UB�d�_�4m2]k_0�F����ښ�l�4JLR����}����;Jx��~�Ab�s�y���5�Nnn:�����#onE�5�E��G֫���O��2tx�V+k�v�ςT��n��LbY�psO�Gݕ��E����a�XN�A^ ��#��O��&$U���R=2��Z��T�1��j��̧E�hy�k&��r<��Sas�&�IS&I���vz����a�_@%86%��u�(�b�� �Q�c*���uE���ipj�08V�^��o��o)�)�ara�y��,X�6yj]|Q�E�=� �M��>V�C��V9���eه {�Q�⊂\�F��ܹT���kX����"T��yL�p��5�s+a�"}\�� չ�҃F}9ƶ��7�G��L|�9���q�$�+A��(D9��=���V������q�����3�ӊh'_�e��G���^?��^ �ʀK�ቀ����i�uF�lzˡ�p�D���yn0U���,�*�5P k2\��UR�c���n�n�D�qz8F�O�v.��x�SG��t��2�{���6me4(R��Dї0��h<��Bg�g�B��:�M�S,ؐ�\��|lB�@q���;%�)�$�!V�A-��ܸTS%�@t��ծg�’��5Af2��’�gB2o��b�+�舚X�p�s���ŗ���7��6��=󔚱7��&��Yr�’ �c;�K�f�V’�ж�H:���Ex}>64S&\Y5�� ��2d�������S���qȽ;�R~-(�E_�ۧ~�.��˚�6��f����_?�������iP��p� T���-j����7�ᒜ�_ o��b &t�4�[�;/,�쮕LgK@�+�mQ+�X����P���h�(��’�����P8D/��^���5nS҄’~�W���;n���m�}���76�ɀ�#���p��و��8���~����m���ڽZ&#��jwq7��CZ��֋������eCa}扅���ky�F6�t4��W��?����~b�����6�.F���3�~�������,���z�;����T���,^�%MӐ�N=볆�Q�Z�i{}�S�;+��z� ��’�qL{&��ɐl��G�D\���v6���4��c�ʲ ��T$��r�(1�&4�V�2k��e����eE#5UH��ɶ�<�ƭ���I1��D��sm&W ��re��Ynu�f�р:(�5�1_��]b�������U[���7�-Z�ZK�ch���r|+D��5����m�En(��$�8b�9��1f�a�\���3�r��֘�؅�g��a�&������z�b�I&�];#"S���ke������ߠjuv��=��9�yM���z��׾�㑝+g�Ս������X*#�́��Z�M=�4�L]��,�r��Ȁ���e��6���^�ߞ^�z}����M?!G������N�1���T��$Legu�к�\�7��oF|V���W�zN�l�w�/��K �(� �On����R�86�6�aR~�;l�WC����]ms�6��_!�nT�eQ~I,��K�$ue����_!��D*$e;���ow� E�ܹ�f&E��v����,y�1� �i�Co&T�D���4�y��ł����kC�KHz5�n�?��ؗBͫ5֨��Z±�5����j0�g�O�E���4���ئZ���ؖ��Ca}���v�5j/���[�܄����a�V�Y���d'���B$�5��]�y�hNa���US��Ox �� ����ݭl���&a��E�E��G�{ DŽ�����<�m�oc�IV�\hG����+q�����8Z�����l y�}U�Da)��L���?�Q�h�4��D���p|+%2o'A*Є�P��.��R���⛥�T�P}�����EE�Uخ��p�P��h#��g�"5;V;�~_�)�O�i�F*��t� jm�^7�}�F��h�=�F�5P[a���&ڎ����6�g�]��1K����c� /�e�O� �0��O�z�]�E�DnMi��z �5u煢��pr3��jX׏�X��Rv�-Hy�T���=_zA�����7f1�4p3 ����+8B �O+N9���� O�T^f5ȥNk�.]����B��KP7o������ ��n;���n��فZaI㧥�~x{’�5��c��m���|(�s�2����{�]��?����20��jacc�@�#���"��b�ƨx��v?�Q������U�jU\� �P��L�ͷ����?R��4"j����i���Œ��]�Ge�$�yuO4E���l����e�䉀C�%�J�ͪ�d���#�������aޢ��R5�$���R�=j;L��MH����6e�(�E�)���v����e�l:����4�°" �Ah��k&� go�[�(D��$����2��6^�B��"����LS2�p��i�����eM�c�i�.Iea���� S�֘ c�9��������ǵ����� a>��o��p��ڪXV�쵺f��e�qt�����v�߸�v��� J����Q=�G��怶4XY)e,Qٗ�ʋ�:EG�KnN5U��Ы���5[��$�+� �%��p��v'����G�I��/'�O�.�8���;usH�����D���H#��s�~o�s���uK����}�g��> ή�EM3sd���]��4�|p�o{6A�/�^�Դ��a�E�(��K��N�4��=씧�����^�4m�e���,/ ٨��V�dՠƒ���饟����^�HM����}~��\ER�[I �ϢP�J$|�〲������4a?6�p��QR�(p�h-5�����>���e����]t��D1.ېꆛysA��|�d���J ǎZ;�"7���%�6K�Ai����w�����͈�|���������x�0�%gq�����׻�i� ��W/���ƺZ/�;��|����cӱ�AS ��,A����ۤV��5P�y|�j�[ĸ��CD����l�P�*��f�j��lޙ�=e��W��i�AZ!�Q�LW��s���}L�lrlfv����a���Yh��n �j�7��Ѳ�0�>�摪yuez�kD�H�,���E&�Rq�a��P.�;K6�<��i�JA�OR���H=�ح�FkKk�h���g>�bD�b�1�� �ź2�����נ-ȩg�j}Mz���^(Jn���l�eA� r�3d!���o5r�Ӳ��qܨ��5�[�inM��2F��y3[��tg�ĕ:��� _��_�A���|���������Ϝ�o>}�:����2R�y���9�����nv��'����nv�?&W-~����u����������uޞ�9<�Y��]-���[5&�W_ߤ���~�;���/�Ã'���|�[���̣�gq�<|��v��������o���,���W��ㆱ=�_��u��e�/� Q����x�E�Klj��Q�e�8tO�~���~N��\Ee1���K�R�^zP�j!�R��)4�A_�&�’~?J��r9L����y$�e!@Lv=�AB>}I�L��i��8I )���&�@�ׯT���J���a��_p[k���d�J.Y6C3�{“y!%�� ��,�tJ;A��P�n����mǓ�=��8�{�ہ��� V�ӱ���w|�H’��{�p�,2��?[�qV+���v/�펭c��&�(+g�z����,1�9��IAz�;�#Q�Q+j��a"�&�888���J/xL0������?\U�e%���Mr�}s����%�4{�4&O��oA_w�e��U6a!l̆.�Y�hڻ�c���{>*�˄���e[E�����ݬ�lͦ�;L����5��d!fB���2݌�+�ߑ+I�F�YD6�F�Ө����j�X>.��†�#���%��gq& ������v'o5㙪�=�>{~�l���|(F]�a��|8>�u���$�_>tq�4h�i4�[���Y�K�A�P;���e��huv]$�֠�t�Fq�Ns2vߕ��!F�2��z��P�:_X����ȇs��E�e.q�D���ls�@k�h��������Y߽^[�M��9 .P��Ӝ����<:\�R�:G�51/لS��;�% ��l�ܲ��U�o�"ƅ�㯉;�IO�z �5�a$C�I��ķɾ�G�!l2m��g�@m�m�ސ=z�h]��F��_OxC$w#���x��5w%�\g�!2��Ļs� �;�oq����9*t�16xխ/�t3�o��w��W�↤��5p�aa ��a�X{wN�K�� ��l�U�QFg����bx.�~B��b��L�<:�-�9�Rt����9�1�-N�I�n��b�螻z%�;0"��u�Dn)ZF2��&����䐗l��� �0�˕����<e��n�pK�i�f�4�[~���$楐��9�2� B�+��z������p0=�J )8���a�\����=A&�@VL��V�m"��!)�����9�ɢ}��d� �1�s����&0���0'lˁއSr^B)�W������E� ����_� i��0��D�IN3j���m�&���X�r�=_�$����a����Y�:�Ώ3���P��j�_�B"���y�,��A��&�shH{�Һ_{ ׺�fA��,�#��%]��Tɜ��lFCko���ޜ-h�{�� 4��z��8�W8䟘pcEO�gMG�b<�(�u�^aJ��ٓO�Y�T���%?�w��j��^�����1�o�b��4�FB�|%#��������]Ys�8~ׯ���\Q�E�I|L�k�rF�'�K:"�bD�NF���@mOj����eݍ/�6B��\_wr�q��n���5�7�#��T���%7 ��gԿP0��D�Y�J�?�ټD �P��Xs*�� �(m� $���avf��z]�S��t�%��eO����1.�w��~f�L�%8.���u��aD��>!�������� ��?�MubY���n(c6(�TO����� ^CP^[%��&��%�ٽ6��0 ��������@����:m�3����0�n[�U��p����׷r�����K�1��)����«�T�e�pg�\�#f�D��"�uJys������Z�8)PϹ��R}@��D�}nxHxh� �mC�DX��tɁALzD�C�sl�U�Be.���Q�t$����X-;���DB�5%E�-->�܆�E��=d�!7C��\�-�i��sl�Di��5�#{�"=b�y����4�"{~i}2�P#&�h5–�!�a !Q�Z�7��걇"��a�Ia{U�r��l[WE0U�D4 ��z��N�ʲ�wK�l�y�����Uwpw���L>��/X�V��w��B��ҩ�{A���O>�$H�R<� x����SL�R��p�aD9˯9�$��"����@�w���9$&����&��e�A�� �8�K�u��JR�Hu�UN&��+[ȇ!8 h(L��V�( ��?-Q�y�Eʭ)�+���Zm�N�oN�㰱=%ђz�����W�#�[�e��.S�d�j���qޡ0��r[�<�7!��ޝ�򮦜����<���8� |��O+�׀+T$B���90�ha�n�������J[:�6��C�;e^�e�I8�C1��m&���O��C��az-$���Gݪ��Q̂�sN��(�f��s��yG�'D�sԵ��F7�j(�ex��dc���WIN�G���ܒ��y��Sd��Q��F3s�~]��E�PWA�pףj*io�15�a��c��E��5�jt)㨈d/�ZD���uxļ_��y=6}��x�j;�@�YijE�v�vg�<��)�m�~ ����I�|d� y�C��ɑ����ΫnqDg�u��$GW/�� ��p�R�ɚr�����q��A�񂭬1�j��Qhu�����rK�t����dD��s4��,V��w�i�YLasg�$�V��従�e� .PT�%&.B�4�ԟ� �{��<�bF��'���@|�aV��9��[�g�H�'��c�ɦ>i-_�����~9�Ҏ��$8Wa�X����?ց��.jU�řه���b8O�x�@ K<Æ��(,� �^Me�s �6HЎa4:�����5� E����~��d��?�*ɓ�aGI��;�"y�>��ɣ�^�8O�t���{@(��FP�q��a��葁�ƍ7F��Q�wR�/����?<ʳ�?G Z���Lw�������|���s۽�ZN���s���NԜcBȁ{,�1�5���ZxE��w���i�H"��5���������u/Y �xƻ�%"���]�x��W�=h,����84���̏���&�DP�7��֬*b��C��[~�e0�����Dx ��|�3I{���c���s�݊v���O�&D��!Ig�b婉<��/�A]�\�x0q����vg��!���Cbĭph�Zh3�F��lq��!/��G�!��f:I]Y)�}����?Ѹ�_�� ~���DX9�[�N�fN�X�Ov���i� C>#T�����NM�}^ �"�~~�PLT����wܷ�ۿ��~8���V�>A�r�aq�}s���$�b-�a!ǻ�^�����H�X�e�q�v���vjP�c �����U0%c/�7 ����� m&�Lr<� G��+�nu���:��b���2���$m����;�2�#������&��6]i�ăe�����!.�ӥ\�����e����� �;E�ήmW�T�/�p�� J2$#�%EٷQ>�r3�α��q�e�g�, �uAn���ִjL�V��,��n=y��7�Y��+e����:^��2_�T�^Ǹx���%y,�k�sM��8g�(p�q�:$&w�e����’RW��p"�� �b��-�)�6 Q��^{K�.k� �0n0�5x�k�D�A���w\6��m���dȕ�� ���w�!��hmJ%�"��arD��5�dbr�_B �{��k�}���v��0a�S�Y�����w^�|�qFԴ�J���7�Ըh�aμ��H�$��?����r�8����aS�=�����)ȅ�r!!�����|k�H��M����l���Z��+�gcV�,�U�*,iI �=k3�ɞ��at����ap�\��L�;��5�_�֭���m<܏��7���c��3t�<6Vxƾ�����*^�P�gO�fj�C@G���s�)D�S ��$T� Qd(Cc�J�J�9��ƶ�:.��a�T���X��\w�8Pd�uc���ۄs₎�F��ݪݻu���}>\�S�t�ap@����Ѥ\�f�U�0ď� �:�{4gV��2����$5����>!Tjv����۱�ϕ���3#�~ha�e�.r���@�:�-o��٬D��Yw]��[ը+L���ӂ\����g#b�BO����!�-7�8Fdy�#����z �;�p�\6����^��g�����}t�/������;�� ��i�|=8kN������ݵnƗ�f�ve��:;��w��J���:�*�Ʌsvl�'���燣��F۬j��i���NHc�Z~���[�hP�g��ٲ룗3mx�/�'Aպ�ۥ��΍����om̾{Q��xk<��������'��h�*l��˻��M�9i_���\�m>5�A_{��:�x�v�N.�>�>uG��t�[}���ڝi�޵���y{r{rz|^7�6� �\N7/�\�]]��Y'w�S3ةa�o'�!e��Îuy23���$&�\B�{VY0���0JC2��B��{����m��uVy�3�{v)~3&n�fₘuHM�����>hT����R�������}����-�zȁj(�=w���g&Vv ��^���Qj_�����F m�Ϫ��F�,*�{.��j��F�S��}C���kD��ㅟJ��[&1�~h�׭i�h]�t���~|$́�a ��@�C�� X�P���.�#�Ek*b��O볈� ��fԨkO�> ���b\?��ą!�a,S~�j,���V���'��@��q���Q*M�#�h$!�L�s���T�2�ǵN_�;n���3sԁa����OM<�!h�'V��w�hIb�|ȼ��Ɵ�Y�� C��7�4��6_�5�m��e%̇�Sɪ�˕j�I�d�Bz�Z~�1�ʌ�� �r{�i^�ߓaEm��D�I�ʋ� �_t�x��DC[A�t�YS���!D@�F% �@=/L|'���Hl,��P������)1�%��O8U�O���Ga����T�P�c�(5���3�e��#��mܘ�r)�ʮm�x���_�����r�����ĝS��Re3!�D㙱&_R;��J^�,D*�+�0B��*,�����w�����D�]�91���X���%@�{��>lq�O�ΎK��t�ԃb�ۗ�������,�]Ȏ/��I�8�aa�3�������91 ���Hb�. �c͔H5^��OT%t��'f���Q�[�̩Y!)Ӯ�D���EB$~���Su����@xl� 4˗P9 @�("߬Ȱ�N��|z�{6A�l�Bdc9�p��3�&�S4���'?P���BC�c&T�K!uQe�I�Bt%��\M2���$6�w��x�d�E��O�Yq"6�D�ݡA��H� �$d%���̨Lx2���&����x�w����}|Q2:�J%�.���|�ݭOR D�T!�0/��B��:~�ҫ=6�������a��Q{��-�D�nb�4�\Ѹ}���t���%.�/�H����� ���aB��6\d_��䁓�ke43D��ɋ�����M6�΋�� '}�����p�r���m�p���V_S&F�sE�݄���& �GkJH4K����^�E�꾌Y������#ao�Mq�<�e�����g�p*Z�.8>;�2� i��U��_� � �2� ��B(�,���Z9y�-inY�$���2�"t54�b�Ʃ:��Y^5�}W�j0�5!���Xm�{? Nb��H�k�O����W��b���x��H�y��/c�T.FC�����f��[P]�e���j1V�js��5࠘a�etJI�+��ğd�v/�$��5��h� ��/٘�4?_��_Ҍet��f~IRXd�u�8�;;�3��g��d�b�s���]\��eH<�\��Α}�|Z�%�'$�r�>���5��b��pNZ{~O:&���[&��@nen�N� ~U��q%tk�c��dn��{�P&CsL�����P!��V_���Nz�o��cp��<��d?�+�Q�U=>��Ѹ� a~�p��aTt����K�,sй�m�a#�>L߃ގP��΃�����l�Y(br2aZ�^�c\j?�&�)F �!ߘ��'ǩ�S�$g5!�� ��7QM���ux�x��N��{�6�坍�Fi�&B�v׽-�s����)?�as>j��2��h���|o��aM�� 6v���v��/�Ѕ�ye���/|a��zdI�L�{�^ny����(��4�j��Ab�-���e)l�^��%;A{ɒ?�.42�}͋�LNd�ܢ]��eη�h���M���g���K)��Vi��5. �Z֔��Y���Ӭ��€do@5#��;.�������]ے۸v}�P�MZ�Z�d�j8J��9��o5�s2�F�ū�ui��v���e��|U�${m$HQ�T����� .eee�k}���8�$�;y�):;�,@���5{�� =�gځJ|Á��:��l����My�>+c̒B|嬂y왶"�نRT}k8[��a�2�ehAP̧U����s���A�] tɠR�����X9�!�—P��’B�J��Mʷ�$��hye ��ƒ�fyaNxI1��e�S0���> ��f�e�/F�u��S��D�/O���t�[���C�[��M�P��$y�YP�я���S� m�������A-�nvQq8��b"�s3I�A�+�v�6�_�qM��i�||ǯ��q�˞;,����� r�\˔ �z����5�C��P}�’q\�K�)��&W�m’7��w9���d壅�߬�S��P KP�c�+�K��)�H �~Dj=S���l��e\k ��ӖN��Q����E�|����XQ����Gd�u��)�Ti�����_(�Z�L��,\�NG�Κpa�� �|����]'��w�[;p�@��� z3e�F!+�{gb8;��h=��4fl xםOVU!!�5XZ�<7�����%�@C������h�U�e[��ʯ��GVg]�>@4�,rm�w����+Re�x���x-�[��'�o.Q���H�G��e9�5�4F��!�S�;��$�l����LH��� ]*��d��Rܼ�S�]��|�wUB�5�’BI� 6��!@�,04D�c��p(�vgC�Ñ�R�F��; (�������{|VD�r�o m�6�����aմ�Q�\�9JIgF#!ҘZ���>k�.OZ��Lڬ�ƌ?k���3�ֺ̂=�Mbۭ�4�ō�]U��*�����khv9��I���i�/������jQ����d0�fO]��Lכ4�H;.ˬ����•a����2u xc�%��f�%�qp�>�ٿ�ĉ]/D�bP��^��\4���ȀW�@Y5�̐�Y"a$���t�,^,������eA����o�c�’z�0C��t�B��B�I�(�fi�#�n�&A�./���J��]8��4�cv�ȡ��0�|�F����|��md�D-eO������k쯿�%�J�S㵍�;=�Ʌ�s�@��,�53=�}�-�J�I~R��F���q��� ���a*�$˓����r�yX�.�1����=�(�#�|�F�%�LM2��ڪwHx���$�N�0���Ϛ����M��+U>��&'4�F'�Ϋ�1�'O��j>���$�ij�w��b�|�ӷr6jEF��g��� x�t��ú����Nb��=uF�-�����N q;� U��IeP�-���ϖ� +x�����/6���D��)n��"[H��ay2�Oe:s�G���3BH�cٓ������ѷ��m���4��](���-��P)�uZ���I�}>WT|�_zSW�HN�՝笽&���k�Ԣ�s���"˒�#��4f0y��g��m�]��&[}I"��G���S��Jj(�ᝪ+z�O �[��yP=12�xOKOD�%S<]�2��#2�H�ekq<��E�Z���Ǻ��i����$�p7�aD��I��b��$�6#��ç߄�x(E K���ި�"W�qa�|=̳�f�;�l�c���~ѓ�}��0B���3ְhb��5]ȕ �X:�,d�֩�r���^�1�R_���훢��� yaL>�����R�|T���e��ܭg�SSAr�[5�Q�V�h(��4�QW�8O���\�ק��6-��_aq���9S(�v��L�����8�0sC�l�k pf��bڛ/�Ѯ\��\b$WH|�R�����j����u�>��������>�T8�cJ?��K]�&�Zl~mpcZ�F���魈�G�{�jm�Q.�o7��~���XN��i�O|2Y��!~��W� (lI#�5���:ߔ��$^���~˯��� C��蘼��G> �� X�}V���-�L�EsG�3�9iA�Y���@�;��[���T��-1|'a�k�A��g�%�F\!���WS�2f(�6����-ŻDA�����EQŹ�=�='�KxZ-�Ӎ�L� ��� rT���+�� p�)�Y�e�!�LcV���g�z�uh2YZ�@��>%[R�O3���,v��� +ߘ��+��M��qE�:W��XQ&�))M�\���]�M��J����H��ǂ��\�֪��������&���-��zPnH�M�v�cs���T�r$k�C��X�jza���~ʗ>r�a�P��䳺�;4��G��5�UH5 �̉’�iE’1^+��Ôz:�"�U�F�nn�^4����U@�2C&Q��i=�G� �F9���~���o��c��ٯI=��@��ql!?�p?s��9�Y����L�a8�of��8 2L�*�-����_H��}��O�Z����� $u�Z��}T- ���]j�a��U}ߋ�չ�@�~����^t<�G��rRr��w%Zh�1 ��:���5�< �ȣ?��h�����:��Jt?yq��n���W�;��hA����vC��c�,��5H��\��Qt�hzfzlĖ��r�F�iS��U�A�T���,x��o�&����x$EY�x�Q�*���3Q'�n�Д8��s␒��� ���J?g|z����v�=i�ˮ�n��f�68z�BeX�J�$?�e���6 p�C>Z:,X���⫙U|������e��O#��Ǚ�g��jY� �m*�i�$��$)k&B��k�� �vg������7x�r[���N��m�4����R��uBA��c���k.t�W ���L��A�����.���pFz��tg�-oa��Lh�!���Ka�;_�w�l�;�����_� �o�ݎ�e�AmI���̀bgM–uR�H�t����u�)��!�q�����q�_q������"�Gk�8�߿�y?��iS��T�*^~t=�D~�"���,�@�*Ǯ'��z�gv��؟c/u�F_z�P�2Z;5V�<5U՟� I�ʄ����>$!e'9�I,��:H��CⒷ���C��4�Qe�H��[�D*6�H���tj����n^�y��8�x# �K�7�����i,��I����ۚ�fB��%|�pЌf,�jl�u̴�2c����b>[��߱���a*H��)�q~�hJ���|�H�*��zM�b@�Pk�~úf *�R~��wo�v�3���i�ysI�?c��&�He�������gմ (}�Mq�&�1�U�ơ���>%��I���V9�P/� v ljG���-�W��Ƹ��a�=#���:�j�~le�<�6�}a^������5VaNe���u�Q�ћ�̉Pq��qI8��z��[�,��o��o8Ռ���d�V{�����x$�v� ������Ťu��٫65�Tz=0�JT2��&���{���2ƿ���=Ô����Cn=6Gp�o�ڋJq�:��>�(D�T�O�.}B,�9�4��i�9*��'�bN�� s\�9\%ì���q��?�w��Ȼ�@�&�7�Oie$�k['���Q_��I�AW����:�޷��]�����>ga���C[۶цD�Vӆ\ؼ!��e�yCr?<�Q���Tx�h�> ��n���d4҆Ɨ����� ���r@JG�m��yB�d�HČ���i����@�N֛�0ĕ��;H�Y�m#]�f�\j&-8a�:�� �3W5 P�<ͧH��d��r*�9&(���E���n%���=/�'�e~t�m��侀9=����4I�^찫���\Ĕ]�a�T~��eF��[���2�*/�EB�u�J���l���cNc�O2�5�ZM;-��U7 ��FX���9ʬ 3z[n8G���dabqRI.�V�R�Ѣ�:ׂN��TW�ؼ�<��>�yg+�=�����#,hZ�Y��#$��0:�q�g7��am�>:��Ӂ�FgE�d�Y��)�)�VvA����z�t"^t�F�H���:ȭ��e��$Y �����U�hn��P�NzW�F�'�O-�^>E T��>~tV)2����&���^�(���I�F��́��\��ڙ[��0(�Va3�fP_%b�0o�g�#�rKJ�d��7�O��,��ˁ�4L���D�s��wE!@��2,/��ʢL�j�L�O,O���V|�����<���/����7�x�;�C�t��m��a�K/�<+�鷔�_��y1���?�ů�\��������nud%����C���S��6��,�D����@]�2c.��9��/o��’mϣ�-3:���.W�[0&V�uP����e%��ӟ�Zh0�K�2��v�saPb)����.���Z���’�r>m���iT_�gR4%�iǾ���u��+#6�6[ιq��F�B>1~>^��d^��&ZD����% h"�o��\3`�cG@[T�#xd�����iI�W�z��s�g��E��J�Ⳑ�天�_�Y�����淛�J�0�X��$��A�bǼ�2�HJ��-�����á��=���I�zToOH�7R�����VT���r��m����%�T��”[��[w��D�u���6�W�;8ڜ�:�$�F�aW���Z�����Vqu���AY�T�B[�x�X%u�\�’�7�?3���E:f�v���a�?��@U�4���GE�"R��Y��>g�7�~���������ǿ�G\olR���dc�;���5���O�����Nj�������b�

Any idea on how to solve this?