%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/hplip/base/__pycache__/
Upload File :
Create Path :
Current File : //usr/share/hplip/base/__pycache__/wifi.cpython-312.pyc

�

=	fY���ddlZddlZddlZddl�ddlmZmZdZdZ	dZ
de
zZd	�Zd
�Z
d�Zd�Zdd
�Zdd�Zd�Zd�Zdd�Zdd�Zdd�Zdd�Zd�Zd�Zd�Zd�Zy)�N�)�*)�device�utils�d�z=http://www.hp.com/schemas/imaging/cnc/dcsl/2006/05/WifiConfigz?<?xml version="1.0" encoding="utf-8"?>
<WiFiConfig xmlns="%s">
c	��|stjd�difStjd�tj|�|j	|�}tjd|z�tj�}tjd�|jtj|d��}d}	|d	z
}|jtj|d	��}|r	|tkDrn�4|j�}tj|jd
��}|jt!d�t!d��jd
d�}tj|�tjdt#|�z�|stjd�difS	tj$�j'|�}d}	|D]6}
|
j=�j?d�s�#||
j=�}	n|	|d<|	|fS#t(j*j,j.$r�}tjd|z�t0j3dt5|�t0j6�}|�0tj|t9|j;d��d�difcYd}~Sd}~wwxYw)NzInvalid request�executionfailedz)Sending request on wifi config channel...zWrote %d bytes.z*Reading response on wifi config channel...�)�stream�timeoutrrzutf-8�Devicecapabilities�DeviceCapabilities��zRead %d bytes.zNo datazXML parser failed: %szline\s*(\d+).*?column\s*(\d+)��errorreturn) �log�error�debug�log_data�writeWifiConfig�io�BytesIO�readWifiConfigr�
MAX_BUFFER�MAX_RETRIES�getvaluer�unescape�decode�replace�
to_unicode�len�XMLToDictParser�parseXML�xml�parsers�expat�
ExpatError�re�search�str�I�int�group�lower�endswith)�dev�request�
bytes_written�data�	bytesread�i�params�e�matchr�ps           �/usr/share/hplip/base/wifi.py�_readWriteWifiConfigr=&sP����	�	�#�$� �"�$�$��I�I�9�:��L�L����'�'��0�M��I�I��-�/�0�
�:�:�<�D��I�I�:�;��"�"�6�#4�#4�T�2�"�N�I�	�A�
�	�Q����&�&�v�'8�'8��q�&�Q�	��A��O��	��=�=�?�D��>�>�$�+�+�g�.�/�D�
�<�<�
�#7�8�*�EY�:Z�[�c�c�dj�ln�o�D��L�L����I�I���T��*�+���	�	�)�� �"�$�$�%��&�&�(�1�1�$�7��$�K�
����7�7�9���m�,� ��)�/�/�+�K���
(�F�=�������#�;�;���'�'�%��	�	�)�A�-�.��	�	�>��A�����M�����I�I�d�3�u�{�{�1�~�.�/�0�1� �"�$�$��%�s�+#H�'K�;A;J<�6K�<Kc�$�i}tdz}t||�\}}|siS||d<|dk7rtjd|z�|Sgd�}|D]}	||||j	d�d<�|S#t
$rtj
d|z�Y�EwxYw)	NzL<GetDeviceCapabilitiesRequest>
</GetDeviceCapabilitiesRequest>
</WiFiConfig>r�okz+GetDeviceCapabilities returned an error: %s)z\wificonfig-getdevicecapabilitiesresponse-devicecapabilities-numberofsupportedwifiaccessorieszLwificonfig-getdevicecapabilitiesresponse-interfaceversion-minorreleasenumberzLwificonfig-getdevicecapabilitiesresponse-interfaceversion-majorreleasenumber�-����Missing response key: %s��PREAMBLEr=rr�split�KeyErrorr�r2�retr3rr8�
param_keysr;s       r<�getDeviceCapabilitiesrJhs���
�C����G�/�s�G�<��K����	�$�C�
���d���	�	�?�+�M�N��
��J�
���	�$*�1�I�C������R� �!���J��	�	��I�I�0�1�4�5��	���
A+�+!B�Bc���i}tdz}t||�\}}|sddiS||d<|dk7rtjd|z�|S	t	|d�}||d<|dk(rtjd�|S|d	k(r+	|d
|d<|d|d
<|d|d<|d|d<|d|d<|St|�D]I}	|d|z|d|z<|d|z|d|z<|d|z|d|z<|d|z|d|z<|d|z|d|z<�K|S#t
tf$rd}Y��wxYw#t$r#}tjd|z�Yd}~|Sd}~wwxYw#t$r"}tjd|z�Yd}~��d}~wwxYw)Nz><GetAdaptorListRequest>
</GetAdaptorListRequest>
</WiFiConfig>�adaptorlistlengthrrr?z$GetAdaptorList returned an error: %sz3wificonfig-getadaptorlistresponse-adaptorlistlengthz"GetAdaptorList returned 0 adaptorsrzCwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptoridzadaptorid-0zEwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptornamez
adaptorname-0zIwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptorpresencezadaptorpresence-0zFwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptorstatezadaptorstate-0zEwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptortypez
adaptortype-0rBzFwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptorid-%dzadaptorid-%dzHwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptorname-%dzadaptorname-%dzLwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptorpresence-%dzadaptorpresence-%dzIwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptorstate-%dzadaptorstate-%dzHwificonfig-getadaptorlistresponse-adaptorlist-adaptorinfo-adaptortype-%d�adaptortype-%d)	rDr=rrr.�
ValueErrorrFr�range)r2rHr3rr8�adaptor_list_lengthr9�as        r<�getAdaptorListrS�sO��
�C����G�/�s�G�<��K���#�Q�'�'�$�C�
���d���	�	�8�;�F�G��
� �!�&�)^�"_�`�� 3�C����a���	�	�6�7�,�J�)
��	!�	6�!'�(m�!n�C�
��#)�*q�#r�C�� �'-�.y�'z�C�#�$�$*�+s�$t�C� �!�#)�*q�#r�C�� ��J��*�+�	:�A�
:�*0�1y�|}�1}�*~��N�Q�&�'�,2�3}�AB�4B�-C��$�q�(�)�06�8F�IJ�8J�1K��(�1�,�-�-3�4�CD�5D�.E��%��)�*�,2�3}�AB�4B�-C��$�q�(�)�
	:��J��9
��!� ��� ���	6��I�I�0�1�4�5�5��J��	6���
:��	�	�4�q�8�9�9��
:�sC�C>�;(D�4AE�>D�D�	E�D<�<E�	E/�
E*�*E/c
��g}t|�}	|d}t|�D]n}	|d|z}|j�dvs�gd�}g}|D]4}	|dj	|dt|�g�}	|j
|	��6|j
|��p|S#t$rd}Y��wxYw#t$rd}Y��wxYw#t$r
|dk(rd	}	nd
}	Y�_wxYw)NrMrrNr)�wifiembedded�
wifiaccessory)�	adaptorid�adaptorname�adaptorstate�adaptorpresencer@rWrA�Unknown)rSrFrPr0�joinr,�append)
r2�rValrH�num_adaptors�n�namer8�rr;�xs
          r<�getWifiAdaptorIDrd�s
���D�
��
�C���.�/���<�
 ���	��'�!�+�,�D��:�:�<�<�<�T�F��A��	
��&��B�G�G�Q��S��V�$4�5�6�A������	
�
�K�K��N�+�.�K��5�������	��D�	�� �&��K�'���%���	&�s4�B�B#�
 B4�B �B �#B1�0B1�4C
�	C
c���d}d}|D]o}|d}|d}td|�d|�d�z}t||�\}}|sy|d	k7rtjd
|z��Ntj	d�|||d|d
fcSy)NrArrrz$<SetAdaptorPowerRequest>
<AdaptorID>z</AdaptorID>
<PowerState>z5</PowerState>
</SetAdaptorPowerRequest>
</WiFiConfig>)rArrrr?z%SetAdaptorPower returned an error: %sz!SetAdaptorPower returned Success.r�)rDr=rrr)	r2�adapterList�power_state�
adaptor_id�adaptorNamerRr3rr8s	         r<�setAdaptorPowerrk�s����J��K�
�7���q�T�
���d�����	-�-��3�3��@���V����$���I�I�=��K�L��I�I�9�:��{�A�a�D�!�A�$�6�6�#7�&�c���idd}}}	|�td|zz}d}d}ntd|�d|�d�z}d	}d
}t||�\}	}
|
sddiS|	|d<|	d
k7rtj|�d|	���|S	t	|
d|z�}||d<|dk(rG|j�dk(rtjd|z��n8tjd|z��n|dk(rm	|
d|z}|std�|d<n||d<|
d|z|d<|
d|z|d<|
d|z|d<|
d|z|d<|
d|z|d <|
d!|z|d"<|
d#|z|d$<n�t|�D]�}
|
|z}	|
d&||fz}|std�|d'|z<n||d'|z<|
d(||fz|d)|z<|
d*||fz|d+|z<|
d,||fz|d-|z<|
d.||fz|d/|z<|
d0||fz|d1|z<|
d2||fz|d3|z<|
d4||fz|d5|z<��	|
d6|zx}|d7<|
d8|z|d9<|
d:|z|d;<|j�dk(r	|Sd<}||z
}|tkDr	|Stjd=���G#t
tf$rd}Y���wxYw#t$r"}tjd%|z�Yd}~��d}~wwxYw#t$r#}tjd%|z�Yd}~��rd}~wwxYw#t$r"}tjd%|z�Yd}~��d}~wwxYw)>Nr�NewScanzX<UndirectedScanRequest>
<ScanState>%s</ScanState>
</UndirectedScanRequest>
</WiFiConfig>�UndirectedScan�undirectedscanresponsez<DirectedScanRequest>
<SSID>z</SSID>
<ScanState>z1</ScanState>
</DirectedScanRequest>
</WiFiConfig>�Directed�directedscanresponse�numberofscanentriesrr?z returned an error: z!wificonfig-%s-numberofscanentries�scancompletez%%s returned 0 entries. Scan complete.z'%s returned 0 entries. Resuming scan...rz%wificonfig-%s-scanlist-scanentry-ssidz	(unknown)zssid-0z&wificonfig-%s-scanlist-scanentry-bssidzbssid-0z(wificonfig-%s-scanlist-scanentry-channelz	channel-0z2wificonfig-%s-scanlist-scanentry-communicationmodezcommunicationmode-0z$wificonfig-%s-scanlist-scanentry-dbmzdbm-0z/wificonfig-%s-scanlist-scanentry-encryptiontypezencryptiontype-0z%wificonfig-%s-scanlist-scanentry-rankzrank-0z/wificonfig-%s-scanlist-scanentry-signalstrengthzsignalstrength-0rBz(wificonfig-%s-scanlist-scanentry-ssid-%dzssid-%dz)wificonfig-%s-scanlist-scanentry-bssid-%dzbssid-%dz+wificonfig-%s-scanlist-scanentry-channel-%dz
channel-%dz5wificonfig-%s-scanlist-scanentry-communicationmode-%dzcommunicationmode-%dz'wificonfig-%s-scanlist-scanentry-dbm-%dzdbm-%dz2wificonfig-%s-scanlist-scanentry-encryptiontype-%dzencryptiontype-%dz(wificonfig-%s-scanlist-scanentry-rank-%dzrank-%dz2wificonfig-%s-scanlist-scanentry-signalstrength-%dzsignalstrength-%dzwificonfig-%s-scanstate�	scanstatez,wificonfig-%s-scansettings-signalstrengthmax�signalstrengthmaxz,wificonfig-%s-scansettings-signalstrengthmin�signalstrengthmin�
ResumeScanr)rDr=rrr.rOrFr0rr"rP�MAX_NETWORKS�time�sleep)r2�adapterName�ssidrHr7�
scan_stater3�typ�rsprr8�number_of_scan_entriesr9rR�js               r<�performScanr��sU���Q�	�J��C�
��<��"��"��G�
#�C�*�C���*�	"&�&�G��C�(�C�2�3��@���V��)�1�-�-�(��M���$���I�I�C��E�F��J�	'�%(��0S�VY�0Y�)Z�%[�"�&<��!�"�!�Q�&����!�^�3��	�	�A�C�G�H��	�	�C�c�I�J�
#�q�
(�
:��E��K�L���$.�{�$;�C��M�$(�C��M�!'�(P�SV�(V�!W��I��#)�*T�WZ�*Z�#[��K� �-3�4h�kn�4n�-o��)�*�%�&L�s�&R�S��G��*0�1b�eh�1h�*i��&�'� &�'N�QT�'T� U��H�
�*0�1b�eh�1h�*i��&�'�
�1�2�
>���a�C��>�!�"L�PS�UV�x�"W�X�D��-7��-D��I��M�*�-1��I��M�*�*0�1\�`c�ef�_g�1g�*h�C�
�Q��'�,2�3`�dg�ij�ck�3k�,l�C��q�(�)�6<�=t�x{�}~�w�=�7A�C�.��2�3�(.�/X�\_�ab�[c�/c�(d�C��1��%�39�:n�ru�wx�qy�:y�3z�C�+�a�/�0�)/�0Z�^a�cd�]e�0e�)f�C�	�A�
�&�39�:n�ru�wx�qy�:y�3z�C�+�a�/�0�
>�$	6�,2�3L�s�3R�,S�S�J��[�)�'-�.\�_b�.b�'c�C�#�$�'-�.\�_b�.b�'c�C�#�$������/���J�"�
�	�
#�#���|����J�	
�
�
�1�
�}��>�H�%�	'�%&�"�	'��2�
:��	�	�4�q�8�9�9��
:��& �>��I�I�8�1�<�=�=��>���	6��I�I�0�1�4�5�5��	6�s\�+I�A+I'�BJ�,#K�I$�#I$�'	J�0J
�
J�	K�J<�<K�	K/�
K*�*K/c��i}td|�d|�d|�dd�d|�d�z}t||�\}}	|	siS||d<|d	k7rtjd
|z�|S|S)Nz<AssociateRequest>
<SSID>z</SSID>
<CommunicationMode>z%</CommunicationMode>
<EncryptionType>z'</EncryptionType>
<EncryptedParameters>�Falsez</EncryptedParameters>
<Key>z(</Key>
</AssociateRequest>
</WiFiConfig>rr?zAssociate returned an error: %s)rDr=rr)
r2r|r}�communication_mode�encryption_type�keyrHr3rr8s
          r<�	associater�cso��
�C���,�#�W��	�	�G�/�s�G�<��K����	�$�C�
���d���	�	�3�k�A�B��
��Jrlc�T�g}tdz}t||�\}}|sgS|dk7rtjd|z�|S	|d}|d}|j	||f�|S#t
$r@d}		|d|z}n#t
$rYY|SwxYw|d|z}|j	||f�|d	z
}�<wxYw)
Nz8<GetVSACodesRequest>
</GetVSACodesRequest>
</WiFiConfig>r?z!GetVSACodes returned an error: %sz=wificonfig-getvsacodesresponse-vsacodelist-vsacode-rulenumberz;wificonfig-getvsacodesresponse-vsacodelist-vsacode-severityrz@wificonfig-getvsacodesresponse-vsacodelist-vsacode-rulenumber-%dz>wificonfig-getvsacodesresponse-vsacodelist-vsacode-severity-%dr)rDr=rrr]rF)	r2r|rHr3rr8�rule�severityr`s	         r<�getVSACodesr�s���
�C����G�/�s�G�<��K����	��d���	�	�5��C�D��
�%��U�V���W�X��	�
�
�D�(�#�$��J����
���
��`�cd�d�e����
���J�
���^�ab�b�c�H��J�J��h�'�(�
��F�A���s/�
A�B'�+A4�3B'�4	B�=B'�B�%B'c�*�i}td|zz}t||�\}}|siS||d<|dk7rtjd|z�|Sgd�}|D]}	||||j	d�d<�|S#t
$rtj
d|z�Y�EwxYw)	Nz`<GetIPConfigurationRequest>
<AdaptorID>%d</AdaptorID>
</GetIPConfigurationRequest>
</WiFiConfig>rr?z(GetIPConfiguration returned an error: %s)zAwificonfig-getipconfigurationresponse-ipconfiguration-addressmodezIwificonfig-getipconfigurationresponse-ipconfiguration-alternatednsaddresszDwificonfig-getipconfigurationresponse-ipconfiguration-gatewayaddressz?wificonfig-getipconfigurationresponse-ipconfiguration-ipaddresszGwificonfig-getipconfigurationresponse-ipconfiguration-primarydnsaddressz@wificonfig-getipconfigurationresponse-ipconfiguration-subnetmaskzCwificonfig-getipconfigurationresponse-networkconfiguration-hostnamer@rArBrC�r2rirHr3rr8rIr;s        r<�__getIPConfigurationr��s���
�C������G�
/�s�G�<��K����	�$�C�
���d���	�	�<�{�J�K��
��J����	�$*�1�I�C������R� �!���J��	�	��I�I�0�1�4�5��	���A.�.!B�Bc�&�d\}}}}}}}	t||�}
|
r:|
dj�dk(r$	|
d}|
d}|
d}|
d}|
d}|
d	}|
d
}	|||||||	fS#t$r+}tj	dt|�z�Yd}~�8d}~wwxYw)N)�0.0.0.0r[r[r�r�r�r�rr?�	ipaddress�hostname�addressmode�
subnetmask�gatewayaddress�primarydnsaddress�alternatednsaddressrB)r�r0rFrrr,)r2r|ri�ipr�r�r��gateway�pridns�sec_dnsrHr9s            r<�getIPConfigurationr��s���S�D�B��+�z�7�F�G�
�s�J�
/�C�
�s�=�!�'�'�)�T�1�		;��[�!�B��:��H��m�,�K��\�*�J��*�+�G��,�-�F��/�0�G��x��j�'�6�7�J�J���	;��I�I�0�3�q�6�9�:�:��	;�s�#A�	B�%!B�Bc�*�i}td|zz}t||�\}}|siS||d<|dk7rtjd|z�|Sgd�}|D]}	||||j	d�d<�|S#t
$rtj
d|z�Y�EwxYw)	Nz^<GetSignalStrengthRequest>
<AdaptorID>%d</AdaptorID>
</GetSignalStrengthRequest>
</WiFiConfig>rr?�'GetSignalStrength returned an error: %s)z7wificonfig-getsignalstrengthresponse-signalstrength-dbmzEwificonfig-getsignalstrengthresponse-signalstrength-signalstrengthmaxzEwificonfig-getsignalstrengthresponse-signalstrength-signalstrengthminzGwificonfig-getsignalstrengthresponse-signalstrength-signalstrengthvaluer@rArBrCr�s        r<�__getSignalStrengthr��s���
�C������G�
/�s�G�<��K����	�$�C�
���d���	�	�;�k�I�J��
��J����	�$*�1�I�C������R� �!���J��	�	��I�I�0�1�4�5��	�r�c��d\}}}}t||�}|r+|dj�dk(r	|d}|d}|d}|d}||||fS#t$r+}	tj	dt|	�z�Yd}	~	�5d}	~	wwxYw)	N)�rri8���rr?rvrw�signalstrengthvalue�dbmrB)r�r0rFrrr,)
r2r|r}ri�ss_max�ss_min�ss_val�ss_dbmrHr9s
          r<�getSignalStrengthr��s���%2�"�F�F�F�F�
�c�:�
.�C�
�s�=�!�'�'�)�T�1�	;��,�-�F��,�-�F��.�/�F���Z�F��6�6�6�)�)���	;��I�I�0�3�q�6�9�:�:��	;�s�A�	A;�!A6�6A;c�$�i}tdz}t||�\}}|siS||d<|dk7rtjd|z�|Sgd�}|D]}	||||j	d�d<�|S#t
$rtj
d|z�Y�EwxYw)	Nz><GetCryptoSuiteRequest>
</GetCryptoSuiteRequest>
</WiFiConfig>rr?r�)z;wificonfig-getcryptosuiteresponse-cryposuite-crypoalgorithmz6wificonfig-getcryptosuiteresponse-cryposuite-crypomodez5wificonfig-getcryptosuiteresponse-cryposuite-secretidr@rArBrCrGs       r<�__getCryptoSuiter�
s���
�C����G�/�s�G�<��K����	�$�C�
���d���	�	�;�k�I�J��
�L�J����	�$*�1�I�C������R� �!���J��	�	��I�I�0�1�4�5��	�rKc���d\}}}t|�}|r&|dj�dk(r	|d}|d}|d}|||fS#t$r+}tj	dt|�z�Yd}~�4d}~wwxYw)N)rrrrr?�crypoalgorithm�	crypomode�secretidrB)r�r0rFrrr,)r2r|�alg�moder�rHr9s       r<�getCryptoSuiter�,s���$��C��x�
�3�
�C�
�s�=�!�'�'�)�T�1�	;��&�'�C��{�#�D��:��H�
��x�����	;��I�I�0�3�q�6�9�:�:��	;�s�?�	A3�!A.�.A3c��d}tdz}t||�\}}|s|S|dk7r|S	|d}|S#t$rtj	d�Y|SwxYw)Nrz8<GetHostnameRequest>
</GetHostnameRequest>
</WiFiConfig>r?z'wificonfig-gethostnameresponse-hostnamezMissing response key: hostname)rDr=rFrr)r2rHr3rr8s     r<�getHostnamer�<sx��
�C����G�/�s�G�<��K����
��d���
�4��>�?���J���4��	�	�2�3��J�4�s�.�A�Ac��tjd|z�d||fz}ddlm}ddl}i}t|�}tj
|�	|jd�}|jdd�|jd	d
�|jdt|��|j�|j|�|j�}|j d
k7rtjd�iS|j#�}	tj
|	�	t%j&�j)|	�}
d|
vrtjd�iS|
j1dd�|d<|
j1dd�|d<|
j1dd�}|
j1dd�}|
j1dd�}
|
j1dd�}|�d|�d|
�d|��}|j3�|d<|S#|j|jf$rtjd�icYSwxYw#|	j*j,j.$ricYSwxYw)Nz Getting location for wifi AP: %saS<?xml version='1.0'?>
<LocationRQ xmlns='http://skyhookwireless.com/wps/2005' version='2.6' street-address-lookup='full'>
<authentication version='2.0'>
<simple>
<username>beta</username>
<realm>js.loki.com</realm>
</simple>
</authentication>
<access-point>
<mac>%s</mac>
<signal-strength>%d</signal-strength>
</access-point>
</LocationRQ>r)�http_clientrzapi.skyhookwireless.com�POSTz/wps2/locationzContent-typeztext/xmlzContent-LengthzHost connection error��z$Connection to location server failedzlocationrs-errorz Location server returned failurezlocationrs-location-latitude�latitudezlocationrs-location-longitude�	longitudez0locationrs-location-street-address-street-numberrz/locationrs-location-street-address-address-linez'locationrs-location-street-address-cityz/locationrs-location-street-address-country-code� z, �address)rr�sixext.movesr��socketr#r�HTTPSConnection�
putrequest�	putheaderr,�
endheaders�send�gaierrorr�getresponse�status�readrr$r%r'r(r)�get�strip)�bssid�ssr3r�r�rH�request_len�conn�responser&r8�
street_number�street_name�city�countryr�s                r<�getLocationr�Ts���I�I�0�5�8�9���2�;��G�*��
�C��g�,�K��L�L���	��*�*�+D�E������ 0�1����~�z�2����'��[�)9�:������	�	�'��
���!�H����#���	�	�8�9��	�
�-�-�/�C��L�L�����&�&�(�1�1�#�6���V�#��	�	�4�5��	��j�j�!?��C�C�
�O��z�z�"A�1�E�C����J�J�Q�SU�V�M��*�*�N�PR�S�K��:�:�?��D�D��j�j�J�B�O�G�!.��T�7�K�G��]�]�_�C�	�N��J��?
�O�O�V�\�\�*���	�	�)�*��	����;�;���'�'���	��s%�
A1G,�#H$�,2H!� H!�$%I�I)�PowerOn)N)r)rzr�xml.parsers.expatr&�grrrryr�NSrDr=rJrSrdrkr�r�r�r�r�r�r�r�r�r�r��rlr<�<module>r�s���.�	��������D����	��=�D�@-�b"�N�6c�P�8 �H �FK�*�@
*�$�> � �0=rl

Zerion Mini Shell 1.0