using openocd jtag in android kernel debugging

42

Upload: sapiq-z-zul

Post on 25-Oct-2014

432 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Using OpenOCD JTAG in Android Kernel Debugging

���������������� ����

�������� ���� ��������������� � ��

� �������

��������������� ���������

������������������

������������������������

Page 2: Using OpenOCD JTAG in Android Kernel Debugging

�������������� ������ ��!"�#��� �$�%����#�&�'(

��� �� ��������������

� ��' ���� ����������

�� �������� )�'

��� ��)�������� )�' �

*+� ��� �������� �� ���� � �� � �

�� ���� �, '

� ����������� ��������� ����

� � ������ ����

��� ' �������

� ��������� � ���� �+-��� ����

Page 3: Using OpenOCD JTAG in Android Kernel Debugging

�������������. ������ ��!"�#��� �$�%����#�&�'(

� ��' ���� ����������

������� � � ��� �)� � �/���0�� � �#������������ � ������ � �� �

�����' #���'�#�� +�#� '(

�������� ����)1������ �1� �

���� ��� � � ���'11���$&���'������ �23#� � �� 23#� ��23#�+� 23#� '(

�� �1� �� ��' ���� ��� �����������

�4���-� �-1 1#� '(

�5��� � �� ����������� ���������

Page 4: Using OpenOCD JTAG in Android Kernel Debugging

�������������6 ������ ��!"�#��� �$�%����#�&�'(

����'���� �� ��������% 7�� 1 � �

&��� � �� ���� � �� ��������� ���� ������#���8���� �� ������1 ����� � ������� )1

�9��1�� ���� �� � �

:9����� � �� ���� � ����-������ � ���� �

:����� ��� ��������

�9�8���� �� ���� ������0���� ��� �

:9��� ��� � ���� ��� � ������ ����������0

�9�8���� �� �'1��� � � �� � ��+� ��� �������� ���� �

Page 5: Using OpenOCD JTAG in Android Kernel Debugging

�������������; ������ ��!"�#��� �$�%����#�&�'(

��)��� �� � ��)�� �������

5���� �� ����������)����� ������ � �� � �

Page 6: Using OpenOCD JTAG in Android Kernel Debugging

�������������< ������ ��!"�#��� �$�%����#�&�'(

�� �� � ��� �� 7� �'

/�� � � �� �)�1+� #� � �� � ��� � �������� 1����������� �� ����� � �'�'� �#���� ����= ���1 �������� � ��� � � � �#�

'�)��� ����>�?�� �'������,�1��� ����� � ����� �'��� ��� � @� � �23 2��� -1���('3�

� � @� � �23 ��� � �� ������� �)A��'�� ' � �����1�'��� ��� '�)�'����+� ���� ����=� ��

� &�� ����=������ ����1 1�

�� � ���� � ���� 1�'�'�� �'�

� &�� ����=����� � �������� 1������� ��' ���� �

�������#������ 1�'��� ����� � ������ � ���� ��' ������' � ���� ���� ��' ���2$&��"3���� � �� � �� � �)������� ����' �

�' �����

� � ��1��� ��'����+�� �����1�'�������� �

Page 7: Using OpenOCD JTAG in Android Kernel Debugging

�������������B ������ ��!"�#��� �$�%����#�&�'(

��� �&�� ����=� ���� 7� �'

��� ��1�� � ��� � � 1� �� ��+� �� � �� � �� ��� @'�� �23#� ��� @���� �23#�

��� @� � �23#� '(

����'������'���' ���� ����8���� �� ��������1�,-1�����1� ������� ��� �� � �'����������1�'����

������ �+� ��C����0D-�'�1 � � ��-� ��' �( 0

9�8���� �� �' � �� ��' ��� �����+ ��

Page 8: Using OpenOCD JTAG in Android Kernel Debugging

�������������E ������ ��!"�#��� �$�%����#�&�'(

50�1�� �/����� �����

��������������� ���������������������������������������������������

��������������� !"��#���#����� �#����$��% &'�������(�)*�+��>���,���(��� �-% ��.�#��� �$? &'�����������+�")�����>�/�0��%�����,��1? &'

������������/� ����������� �����, ��&�2.������3�+����4�!�>�/� ����������� �����&��#����5� &'�������6'

7

, ����������/� ��������#��.�� �����, ��&�2.������3�+����4�!�>�/� ��������#��.�� �����&��#����8� &'

7

� �����������/� ����������� ����&'� ����������/� ��������#��.�� ����&'

Page 9: Using OpenOCD JTAG in Android Kernel Debugging

�������������F ������ ��!"�#��� �$�%����#�&�'(

�������9����� ��1 ����� ��

����' �� ��' ���� � 0� ��� ��' �����)�� @� � ��� � �' � ��� �� ��;����� ��� � ������� � �

�(<-.(0�� � �: �� �)��' ������ �����'���� �����' � �����(<�

� � ��

9������������� �� �'����� �� �1�� �� �� �)����� ��' 9��'��� 0���'� ��� ��� �'� ��)������� ��)��' �������� � � ���� 1� ��� � �� )��� �5G����$$� ����'����#� � �)�� @� � ��� � �' � ����� � �'�������� ����= ���������FF� ��� ����� ����= )1�

��' A� ��� (��'( ��

Page 10: Using OpenOCD JTAG in Android Kernel Debugging

�������������"! ������ ��!"�#��� �$�%����#�&�'(

� �' )�� @� � ��� H"�)��%������0���� .��#�� �% 2

%������� �����9 :���'

� 00�� �9��%���&��%������0����95�� 00��5����&'

%%�;��� �9��#�&��%������0����95���#�����%���95�%�;���5�� 00�� 9&'

%%�;��� �9:����&��%������0����95�� �%����#�����%���95�%�;���5�� 00�� 9&'

%%�;��� �9#� ���#�&��%�������� �< 95�� �%��%������� ,�� 95��%�$����� �$5�� 00��&'

%%�;��� �9#� �:����&��%�������� �< 95�� �%��%������� ,�� 95��%�$����� �$5�� 00��&'

��� �9��#����&��%������0����95�, ���95�0��������&'

��%�$������� �9. ��&��%������0����95�%������. ����#<���%����� 9&'

� �$��9��� ������ ���&��%������0����95���%�$�������5���%�$����� �$&'

� �$��9� �.#��� ���&��%������0����95���%�$�������5���%�$����� �$&'

��� �9��#.&��%������0����95�%������,��#��#�%����� 9&'

��� �9 .��&��%�������� �� 95�%������0����9&'

��� �90��%�&��%������0����95�0�� :����� ��&'

Page 11: Using OpenOCD JTAG in Android Kernel Debugging

�������������"" ������ ��!"�#��� �$�%����#�&�'(

� �' )�� @� � ��� H��)��

��� �9����#%�&��%�������� �� 95�%������0����9&'

��� �90%/��&��%������0����95�� 00��5�� 00��5���� �#�#%/��&'

��� �9#� �0%/��&��%�������� �< 95���� �#�#%/��&'

��� �90#%/��&�����5�%������0����95����&'

��� �9� ��&��%������0����95����5�%������0����� �� 9&'

%%�;��� �9%���.#$�&��%������0����95�%������.#$��95����5�%�;���5�� 00�� 95����&'

��%�$����� �$��9$������#..���#��#&�%������0����95���%�$����� �$5���%�$����� �$5���%�$����� �$5��%�$����� �$&'

��� �9������0�#$%&����&'

��� �90� ��&��%������0����95����5�%������0����� �� 9&'

%%�;��� �9%.�����:����&�%������.�.���� �����0 95�%������0����95�� 00�� 95�%�;���5���%�$�������&'

%%�;��� �9%.�������#�&�%������0����95�� 00�� 95�%������.�.���� �����0 95�%�;���5���%�$�������&'

��� �9%����#%�&�%������0����95�� �$5�%������0����� �� 99&'

� �$��90#�� �#��&�%������0����90���5���� � ��5�� 00�� 00%��5

� 00�� ���&'

7'

Page 12: Using OpenOCD JTAG in Android Kernel Debugging

�������������"� ������ ��!"�#��� �$�%����#�&�'(

&�� ����=���� � �)�� @� � ���

�FF� ��� ����� ����=� ���)� � �� �' � �����+����� ���� ����= � � �)� ���������1 �G�+����� � � �� �' � ����� �2+��'��1���

'���� �� + ��� � �� ������3

������ ����= ��)��' ��� � � ����� � �� �' � ���+��� �+�+����� ���� ����= �� �G�//%������0���� .��#�� �% 0 .%�=�2

���#����� =��/���#�5

�:������� =��/�:����5

�� �.#��� ��� =��/�� ���5

� .������ =��/� .��5

�����#%�� =��/�����#%�

7'

Page 13: Using OpenOCD JTAG in Android Kernel Debugging

�������������". ������ ��!"�#��� �$�%����#�&�'(

�����'������ �% ��� � ��

� � �����1�� ��+� �)���'���' �� ��' ���� �+� �� � ���� � ��� ��� � �)

�����'�������� � �@@��� )��' ��

% ��� � ���1�� �� � ����'�� ���� + �� � �1�,���1� ������ ��' ���� ��� ��$�%���������,���%�$������� �#> �5�

� �%����#��9�#��5�%������0���� .��#�� �% 90 .%&

��' A� '��(���( ��

Page 14: Using OpenOCD JTAG in Android Kernel Debugging

�������������"6 ������ ��!"�#��� �$�%����#�&�'(

�����'������ �% ��� � ���H�

/�� +�� #�+� ����� ��' ���� � 1� ��� � �)�)1� � ���� 1#�� ��������� ��� �� � �)�)1� � �� � �� �) ���� �� �1�,���1�

����'�������� � �@@ 0� )��' ��A��� ����$�%���������,���%�$������ �#> �5�� �%����#��9�#��&'

��' A�1������ ��� ('1

Page 15: Using OpenOCD JTAG in Android Kernel Debugging

�������������"; ������ ��!"�#��� �$�%����#�&�'(

G +��'������ �% ��� � ��

&)����� �� �� �� ���� � ��;<�1�,���1� #���8���� �� ��� �����)) � �����'��������� ������)) � ��$&#�

� �@ #�'� ��� �' � ��������1�'��1 ������ �� ��� � �������'�

����)� �������� �����'� �)� � �'� � ����'�����#��+ �

��' A�)��'�('1

Page 16: Using OpenOCD JTAG in Android Kernel Debugging

�������������"< ������ ��!"�#��� �$�%����#�&�'(

� � �'�����/��� ��I ����1�'�����/�� �

�� � ���'���� � ��1� ���� �'���� �� � �'��������� ���� � � �� � ��� �� � �������� �1

���� �� ���' �� ����� ��$/

�&�� ����= ������ � @� � �23 � 7� �'

����1�'�������� ����� �#��(�(�(�� � ��1��� �#�� ���� ���) � � �� � ������ �

�����'����������� � ���� (' �'��

�������� ���� �����' �� �

Page 17: Using OpenOCD JTAG in Android Kernel Debugging

�������������"B ������ ��!"�#��� �$�%����#�&�'(

� ��������� ��' ���� �

� � �'��������� ��� ��' ���� ��� �� ��������))�'�� � �� ���

���� �'���'��� �������'������ ) ����'��� � ��� ���� �23 �+�

��� � �+���� ���'����� 7�� �������� �� ���� � 1� �����

����1�'��������� ����� ��� �1��������� ��� �� '��� ����'���� �1 �� ����������)�� �' � ��� ����' �� ) �������� � 1

��� ��� �)� ��@�'23-+� @�'23 )��' ����������� �23 � � ���'��

�������'���� ���� �

Page 18: Using OpenOCD JTAG in Android Kernel Debugging

�������������"E ������ ��!"�#��� �$�%����#�&�'(

5� � � ������$

�� ���� �� � ��' �������2����3���� � ���1 ����'�� ��+� �� � �&555�""6F("�� ������ � � � ��� ������� � ��'' ���$ �������������'����'�� ' �

������������� ��' �����"FF!������1 ���� � � ���� ��'�'�� ������

������ �� �� � � � �� ��)������

����������������� ��

Page 19: Using OpenOCD JTAG in Android Kernel Debugging

�������������"F ������ ��!"�#��� �$�%����#�&�'(

*+���������

������������������'���� ��' � �� ����+�� � �� � �� � ���1�� � � ����� ��)���� ���� � �� ��'

����+����� �'���� � �� ����� �����+ ��

������������ � ����+�'��������)�1�� ��� �� ��' �

�����)�1�� ��' ��' ���#�

Page 20: Using OpenOCD JTAG in Android Kernel Debugging

��������������! ������ ��!"�#��� �$�%����#�&�'(

������ ����

������������1�� �� ����� '�

�5���� �� � ��� �)�>+���� ?�� �� ��� )�' �

��)���� �������� ����1������� ���� � �� � �1�'��� �)� � �� ��' ����� � ��������

Page 21: Using OpenOCD JTAG in Android Kernel Debugging

��������������" ������ ��!"�#��� �$�%����#�&�'(

������+� �$' ���

�� � 1� �� ���' ���� �������� �������� �)�� �� �� �� ����� ����

�5(�(#��%�-J�'�� #�$$�#��&$�

5� �� � �0E<�������������

�&� ��� 1���� ���' ���� ���'��������� � � �J����

�� � �0E<���� ���' ����1���� ��&�$�B!!�'�� ' ����� �� �����

�1 ��' ������� ��&$��'1 ������)) � �� ����

��1 �+� �������� ��)�� � ��1 � #��1 �+� �� ����� � ���� �KKK

Page 22: Using OpenOCD JTAG in Android Kernel Debugging

��������������� ������ ��!"�#��� �$�%����#�&�'(

�������� ' ���

�� �1�0�1�1��� ��)���������"!!��*=

��������'��� ��������������))�'� � � �'�� ' � � � � ��

��� ' ��� � � �� � ��1 � ��� �����''1����� �����

�$���� ���

����

�� �����

�5 � � ��������������

���������� �������

�����������������

Page 23: Using OpenOCD JTAG in Android Kernel Debugging

��������������. ������ ��!"�#��� �$�%����#�&�'(

������� �&� )�'

�1 �������� )�' ���� �������� �� ��) +� ��� )�'

����������+� �)� � ���+����+�

� � ����� �5'���� ���������� ��'' ��� � �������������&�5

�1 �� ������ ���'11������� ��� )�'

���������� ����������

���������������

Page 24: Using OpenOCD JTAG in Android Kernel Debugging

��������������6 ������ ��!"�#��� �$�%����#�&�'(

��� �'��������+� ��������L

����'������������ ���'��� �� )��������� �)�1+� �5� �� � � �����'� ����������� ��'����� ���

*+ � #�� ������� � ��� ������� ������������ �� ������'1 ���� �� ��+��9��'���� ����+� ���) +� �� ����� ������

� ���������' �'�

������ �'� ��� ����� �� � �� ������1�� ��' �� ���������������� 7�� � � �1 � 0� ���� ���� �

�������� ��'�������� ��� �� � 0 '�� � � ���� ������������ ��� ������������+�� ������+������������� ���� ��)�

Page 25: Using OpenOCD JTAG in Android Kernel Debugging

��������������; ������ ��!"�#��� �$�%����#�&�'(

*��+� ���)���� ������ �

�� ��������� �� 7�� ���� �� �'�� � � ����+� � ��� �������'�)���� ���)��

��������������+����� �'�� �+�� ��' ����'�� ' � ����� ������

����)� �� ���)1� ������ � ��� �1���� �� ����'�� ' �� ��� ��+�� ���� � � �'�)���� ���)��

��) ��� ��#� � ������� ������)1� �)� � � �'�)���� ���)�� �

�5�'�������� ����� ����)) � ���� �0

Page 26: Using OpenOCD JTAG in Android Kernel Debugging

��������������< ������ ��!"�#��� �$�%����#�&�'(

50�1�� ���)���� ������ �

������������� ������ � � �'�)���� ���)�� ���� ����$�� ��� �)�� �����������'�)���� ���)��

Page 27: Using OpenOCD JTAG in Android Kernel Debugging

��������������B ������ ��!"�#��� �$�%����#�&�'(

�������+� ������

�� �� �� � ���� � � �'��� ���� ���������� � �������� �����' �������� ������)1�)����� �%�������� ������)1������'������ �� �� �� � ��

�� ������� �� �

�� � � ���� ���� 7�� � � ��� �)����+� �� ����� ��� ������' ������� � ��������� �� �� �

���� ����+� �� ����� �� �� ���� � � � ���� ���

��� ��� � �� ������������>�����+� ?�& �1�� ���� � ���������-/���08� �� �)� � �

���� �� �)�1�'���� �)���� �� �������

Page 28: Using OpenOCD JTAG in Android Kernel Debugging

��������������E ������ ��!"�#��� �$�%����#�&�'(

�� ���� $, '

������, ' �+���� � ������!!E� �' � ����) +� ��� )�' �)� � ��� 0� ���� �+���� �� �� ��� )�' ����� ����������� � � �������

�������� �� ��+� ��+ � ����%��������%�B���&-�%�F���&

G+����� ��1��������� ����%���' ������'������&������'� ����� 0��E�G�+�����1�� ��' ��

�� � ����� ��������&�� ��� ��� �� �A--��' )� (� -�, ' �-� �'�

Page 29: Using OpenOCD JTAG in Android Kernel Debugging

��������������F ������ ��!"�#��� �$�%����#�&�'(

���� ���� � ������� 1�

�� ���� ����������� �)� � � � �1�,��-����� )1��/���0#�����+�#���-J

��-J���� ���� ���'���� �)����� A�� �A--+++( � �� (� - � � - ��-���0-

� �'��0(� 1�

����+����� ���� ���'���� �)����� A�� �A--+++( � �� (� - � � - ��-+��-

� �'�+��(� 1����� ���� � �9���%����, '

: ����+���%�� ��'����: � �A--+++(���� (� -: &�'��� ��5'���� �����

� 8�����+���� � �����'��)�/���0���� ���� ���� 0

Page 30: Using OpenOCD JTAG in Android Kernel Debugging

�������������.! ������ ��!"�#��� �$�%����#�&�'(

� ���-&�� ��������� ���� � /���0

�� ���� ����������� �����������1����� �'�� � 7� � A$����� ���$��?�� .�� ���$���% ����0 �$������$��� �� .�� ��� .�� ��

��' � � � �#�'�)��� �����������2�� ���� ;(!3�� .�� ��

��< �%��#.

��� �0�$����@��#<��A�#���#����A� ���

�#��

%�� �#�����%�#��

9�8���� �� � ���� � � ��� )�' � �� ����������� �

Page 31: Using OpenOCD JTAG in Android Kernel Debugging

�������������." ������ ��!"�#��� �$�%����#�&�'(

50�1�� ����� ��&� )�' ��

�� ��������� ��� �;!���)) � �������� )�' �

Page 32: Using OpenOCD JTAG in Android Kernel Debugging

�������������.� ������ ��!"�#��� �$�%����#�&�'(

�� ��%���$������ ��������7�� ���

���� ����� ��$��

Page 33: Using OpenOCD JTAG in Android Kernel Debugging

�������������.. ������ ��!"�#��� �$�%����#�&�'(

��� �'����� ���� �L

&����� �)� � �)�' � �� �� 8��) #��� ������� �����7�� �)����) � � �

& ����� �� �����-���11����G�%-G�G��)������ �1 � �

/����������� ��������'� ��� � ����� �� �� �

�'' ������ ��� ���� � � �� ��' ��

������+� ��$/�-�$���� ��' �

������� 0 �����������'� �� )�'

Page 34: Using OpenOCD JTAG in Android Kernel Debugging

�������������.6 ������ ��!"�#��� �$�%����#�&�'(

%��������� ����

�� ���� �� ����� ��� ��� ����)��'�2�&���'�3�� �� ��'

���+�����'� ���8 � 7�� �#��� �� ��� �� ���

�� ���� �� ������ 1�� �)� � ��� � ���������+� ��� )�'

�9��'����'' ���� ����� �� �� �� �6666

�� ��� ���� '11������� ����+����� ������'�)���� ���)�� �

�5(�(#� .�� �� A0������0#���0�/%:#������0$�8

A0�< #������<�#$��< #������0$

Page 35: Using OpenOCD JTAG in Android Kernel Debugging

�������������.; ������ ��!"�#��� �$�%����#�&�'(

�� �� �� �&� )�'

�1� � � �� �� ��������'��� 0 '�� ���� �)�'� ��� � � � ��

� � #���� #�����'� #��'' ��� ��� �#���1�-'���� �1 1�#�� �� ����� �-+� '���� �#������ �� ����� �' ��������1�'��1

�� � �� �� ������������� ��)�� �&-��)��������������1�����1 1�������'��'11�����)��'�� ����

Page 36: Using OpenOCD JTAG in Android Kernel Debugging

�������������.< ������ ��!"�#��� �$�%����#�&�'(

���������� ����

����'���'�� ' � ��� ������� 1������> �� � 1 ?�'11���� �� �....

��� � �� ������ ��� �/���0���� �

���� �� � ��� �)�����������)� � ������'��������#�5'���� #����'�5�� #�G 1�� ����� � �

�� � � �����>1�?�'11���� ��������'11���� � � ��� ������� 1�

�5(�(#�� ����:�6BC66666 ���1��1 1��� �!0�"!!!!!

Page 37: Using OpenOCD JTAG in Android Kernel Debugging

�������������.B ������ ��!"�#��� �$�%����#�&�'(

������&��� �5���50�1��

&��� ��)1�'11������� �+� ��� � ��'1��� ��)�� ���������� � � �I� ���� �

'11������� �� ��� ����� � �'���� ���� ���'�� ��A

��� @��<�$$���#��A����A$�< ,�����

�� ��� �'�� ������������> �� � 1 ?�'11���A�$�<&��#�$������ ���CBD�6�6�C?EEEE

Page 38: Using OpenOCD JTAG in Android Kernel Debugging

�������������.E ������ ��!"�#��� �$�%����#�&�'(

�������� ��' ���� ���1���

� � �'��������� ����� ���1����� ��� �������� ��� � � �� � �8����1��� ��� ���1����� �� ������ ���� � ���� �

1 ���� � 1� �� ��

����1�'�������� ����� �� 7�� ����� ������ ���� �� �� �)���� � ���� �� ���� ����� � �

��� �

�� �� 0 �) +�'�� ������1 ���8 ��������� ����

Page 39: Using OpenOCD JTAG in Android Kernel Debugging

�������������.F ������ ��!"�#��� �$�%����#�&�'(

� ��������/����� ����� �

&��� � �� ��������� ��1��� #�+ �� �� � ��� � �� ���� �+� � � �1��� �������1 1���� �1��� 8����)1� ������� ���� � �� � ���1�� �

� '��� � �� ���+������� � �'��������� ����� �

�������)1� ���'��� ���'������ �)��������.� ��� ����%���%/%�� ������ �����#����%���� �%�����

� � � ���� � � �#��A%/�< �A0��� ����'11���� ����� � �� ������1����)� � ���� �� � � ���� ���)� � ���� ��1��� ��$�<&#��A%/�< �A0�������/���,��� 6#����

*+�+ ��' ��� � ������+� �+ �� �� �� ���

Page 40: Using OpenOCD JTAG in Android Kernel Debugging

�������������6! ������ ��!"�#��� �$�%����#�&�'(

� ��������/����� ����� ��H�

&)�+ �� �� �� ���� � �@@��� �'� #�+ �� �� �� ���� ����� ���� � ����@1��� 23�)��' ��

� 8���� �� �� ����� �,�� �� ) � � �'� ����� ���) �� � � �1��� 8��@@��� ��1 +� ��������� ��FE"�)�1��� ('A

�9���#�������� �����9��0��� �A������1=�����&����=�� � ��������#���� �A�����&'

��' � � �� ����� ���� �'�� �#�+ �'���+���� � �1��� ���� ������ � �)���� � ������� ����� ���)� � �1���

Page 41: Using OpenOCD JTAG in Android Kernel Debugging

�������������6" ������ ��!"�#��� �$�%����#�&�'(

����������� ������ ����� �

��' ���8� ���� �� � �1��� 8����1���#����'���� �� ����� ��� � � ������� � ����� ��)� � ���� �$�<&�<��/���,�����#�

� � ����� ����� ��'� ������'��� A�%/%�%/��

�.#���

� .%������

�� ������� � � �� ����� #� � �� ���� �+������� � � ���' �'� ��������'���� � ������ �� ������'�

Page 42: Using OpenOCD JTAG in Android Kernel Debugging

�������������6� ������ ��!"�#��� �$�%����#�&�'(

��11��

� ��� �� ���+�'� #��� ���� ������1�� �+���� �� �� �������� )�' ��1�� ����+ )���'1���� ������� �)���+�� ���� ��)��' ���

����� �)������� �����-���11���

����� ��� ��������/���0�� � ��'� �������� ������������ )�' ����� '���7� �

��) ��� ��#� � ������1�� ��' ����� ������ ���� �

*+ � #�)� � �� � �� ��������� #��� ���� ������ � �� ��