�STORE/RESTORE-HP/3000.MPEXL  !��0�������B5152AA  C600304/06/990000���a*K�r���e�A�����ABORTCON        PUB             SYS             MANAGER         WWW             MANAGER SYS     `�����a*K�r���e�A�����SC              PUB             SYS             MANAGER         WWW             MANAGER SYS     `������a*K�r��e�A��L�ԶSCS             PUB             SYS             MANAGER         WWW             MANAGER SYS     `������a*K�r��e�A�����SHOWCONN        PUB             SYS             MANAGER         WWW             MANAGER SYS     ` ������(���H00000000000000000                            000000*STORE  ABORTCON,SC,SCS,SHOWCONN;*std;show
�����������������
�a*K�r���e�A������� ����DISC                             1ABORTCON        PUB             SYS                             MANAGER SYS     ��a*K�rl�W��=l�W��=l�W���G<.�@��O	�   l�^��}WWW             ������y��:$               $FOWNER         ��$               $GMASK          �$               $GROUP          �`               `               �parm pin version='off'                                                                                                                                        comment                                                                        comment  Below is the version stamp for this command file.                     comment  When/if you customize this script, please change the                  comment  version to reflect something else than what HP supplied.              comment  This may be helpful in the future diagnosing problems with            comment  either the CI-script and/or the SC-program.                           comment                                                                                                                                                       setvar hpscscriptversion, 'A.02.01.001 - abortcon'                                                                                                            setvar info, ' summary=ON'                                                     if len('!pin') > 0 then                                                           setvar info, info + ' pin=!pin kill=ON'                                     endif                                                                                                                                                         if ups('!version') = 'ON' or ups('!version') = 'VERSION' then                     setvar info, info + ' version=ON'                                              echo                                                                           echo SHOWCONN-script version !hpscscriptversion                             endif                                                                                                                                                         sc "!info"                                                                     deletevar info                                                                 
���������s a*K�r���e�A���pp�� ����DISC                             1SC              PUB             SYS                             MANAGER SYS     ��a*K�rl�W�)4l�W�)4l�W���G<=΀������l�^�"WWW             ������y��:$               $FOWNER         ��$               $GMASK          �$               $GROUP          �`               `               �@1U�	p���^�L$.h�-��06Jm������,�'�%�)h-$-t'�,&�*�*(�(,,�'T-�)4*`,�&X+�+�*�,,,�+)�+H&�&�*4(�-�(,X&�'�)�*�&(-L(X%�(�+t)�'$@�0�0h�h�ST$U��x��kns �#�<U$��
_TR 8U4��
_NT `UD  	_LN �UT``
PAR �Ud@@
_TR �Ux@@
_NT!U���
_HR!(U���
_LL!PU�@@ION!xU�``IFF!�U���_NT!�U���
IET!�U�  
_HR"U��d�%
edr"P"��!U_PT"xU,``LAC"�U8��
_IM"�UH_OL"�UX  _et#Ud@@_PT#@Ut��_se#hU���IET#�U�  _NT#�U�``a�	ein#�U���_OS$U���
_IM$0U���_TE$XU�``HHO$�U�@@_GS$�U_PS$�U��
_RM$�U$  
_FO% U4��	_TE%HUD_ET%pUP��_de%�Uh��_TE6
xi�i
x��bns�6
T�lTlx��ees� 6
@�p�p&x��rsg�6�zLza�kts6
�z�z�g��pft��6�|�|�x��nss6�~�~rx��iss6�p�6x��uts6
@,���Zx��ein#��6
@���jx��rem#��6\�,�x��rer6
p�8�aiar�%6
�����aitr�%6
����c��
eme�%6
����x��hes�%6
��x�^x��hes�%6
����jx��edr��6
�����c�F
ang�	6
�d�Jg��otr6
$����c�mrce6
PH�l��x��iay�$��6`�T�:x��iry6
Ut� �g��rgs�������6
P���x��ifo�$��6
P���x��efo#�#�<6
�
4
x��&hay#��6�L2x��elp6
A�&�&�c��ein�#��6
A-h-Na�eum��#��6
A02�2�a�ein�#��6
@H4H4.x��"ely�#��6
p746�a�
aum��6
�;$;
c��omt��6
@�?>�x��eds�|#��6
@�B�B�x��rds�%#��6
�FLE�x��rob#��6
�N�N�x��rin#��6�WV�x��ion6W�W�x��xnd6$Z|Zbx��
nze6
4[�[�a�aff�*6H^�^�x��hes6d`t`:c�'hns6�bXb>x��hed6�k�k�c�ans6�y�xbRAM0�y�x~srt�0l$START$sk_abort_conns
P_WRITESTR
P_WRITEINT	P_WRITELN
HPCIPUTVAR
P_STRWRITESTR
P_STRWRITEINT
P_STRWRITECHR
P_DYN_CALLAIFACCESSONAIFACCESSOFFP_WRITELONGINT
AIFPROCGET
P_WRITECHR
gethostbyaddrP_PROMPTALMANAC
P_STRLTRIMP_WRITEBOOLU_dDgetP_STRRPTU_dDreleaseAIFJSGETP_STRREADINT	get_mypinP_STRPOS
P_STRRTRIMP_STRDELETEWHOP_INIT_ARGSU_INIT_TRAPS
P_GET_PARM
P_GET_INFO	P_REWRITEP_RESETU_get_escapecodeP_TERMINATEabort_tcp_connectionsset_ci_variableserr_msgsk_get_conn_info_existsupshiftenable_aif_accessdisable_aif_accessdump_pid_array_contentsget_pid_by_pinprocess_option_systemprint_headerfind_first_nil_charfind_first_nil_ptr
get_host_nameshow_host_aliasesshow_host_addressesget_host_by_addr
pac_to_stringconv_ip_to_strtranslate_tcp_port_to_servicepin_detail_displaydisplay_summaryprocess_output_flagsdisplay_connection_infoget_process_info&show_connections_for_pins_in_pid_arrayhelpget_jsnum_for_pinget_jsmain_pin_by_jsnumget_any_jsmain_pin"get_pids_for_any_js_process_family
valid_job_numconvert_to_js_rec_fmtget_all_js_rec_pidsprocess_job_idsprocess_option_jobprocess_option_pindisplay_versionexecute_command
initializeparm_on_or_offshow_user_capabilities'check_user_capabilities__adjust_optionsshow_options_parsedparse_command_optionsPROGRAM_startsocketxl.net.sys�����@xb���0@p (pHH���q���@�@`�0G�w$&��P�`�l�  HP30315 A.05.141U�	 D<@(#) HP30315    A.05.10    95/02/08 NRT0 Startup routine    X  �`� X (�$h�$0X  <�(|�(<X 8eP�PHX HlP�P�X In`�`�X Xnl�l�>(�@��>(@�@�>(H�@�4>(P@��(Y  �`Y (�<4h�Y e	p�? @@s p@a*K�r���e�A���ppp����p@p@a*K�r���e�A����pp����p@p@a*K�r���e�A���Ppp�����=��@��A��@*� XB7���7"����=����@=TH��!ca@H��@��˷��!(�?�!(`��!�X�H�ӷ8���!3�� (:�!8H��
7(�Ǹ@0=tH��!ca@]�0H�H��!ca@]XH�ӡ�!A�@נ[�H�!(�9��з�����!(@@@�H�!(�9�H����H�!(�9���H�!(�9������H�!(�9 �p��H�!(�9(�(����H�!(�90����H�!(�98������H�!(�9@�P��H�!(�9H�����H�!(�9P����H�!(�9X�x����H�!(�9`�0��H�!(�9h������H�!(�9p����H�!(�9x�X����H�!(�9����H�!(�9�������H�!(�9�����H�!(�9��8����H�!(�9�����H�!(�9�������H�!(�9��`��H�!(�9������H�!(�9�����H�!(�9�������H�!(�9��@��H�!(�9�������H�!(�9�����H�!(�9��h����H�!(�9�� ���H�k!?	�H�k!?��H�k!?�H�k!?!��H�k!?)�H�k!?1��H�k!?9�H�k!?A��H�k!?I�H�k!?Q��H�k!?Y�H�k!?a��H�k!?i�H�k!?q��H�k!?y�H�k!?���H�k!?��H�k!?���H�k!?��H�k!?���H�k!?��H�k!?���H�k!?��H�k!?���H�k!?��H�k!?���H�k!?��H�k!?���H�k!?��H�k!?�����@���k!?���@:`��!��X�H�=����!3H����H���o!�=���A;����`r�@H��_�7�� H�8���73���OW��o7�HKW?	�����]A �!�נ[�!>�@XKX?k7?	KW?k8?KX?!k7?KW?)k8?!KX?1k7?)KW?9k8?1KX?Ak7?9KW?Ik8?AKX?Qk7?IKW?Yk8?QKX?ak7?YKW?ik8?aKX?qk7?iKW?yk8?qKX?�k7?yKW?�k8?�KX?�k7?�KW?�k8?�KX?�k7?�KW?�k8?�KX?�k7?�KW?�k8?�KX?�k7?�KW?�k8?�KX?�k7?�KW?�k8?�KX?�k7?�KW?�k8?�KX?�k7?�KW?�k8?�@���k7?�H���@=���73��o7��OW�� `4��`4�� Y��X7�0k�?��k�?��`RAY���X8�4?�K�?� K�?����7�?�Y��8X8�4K�?� K�?����7�?�o�0k�?�k�?�k�?�k�?�H����Aj�W��<��@� 
�TH�֗~H�t@���� @(��<ca@4?�� 
�
�t@���� �
�����AH�(����� �
�����A� �ָc
�X�H���u@(�4?��
�
��� @
����BB!"7�� 
�x���@�
��4K�?�K�?�K�?�K�?����O�?��@(�_K�?�K�?�8 �@ K�?�7��� 304!0k�?��@@� ��@(�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!@H4 k�?���$�@k�?�7�g�>�G�>��_�7�?qG�?q� "�4+h48� �#�07�	��t `�k�?�k�?�4Hk�?�4H�_�k�?�4+h48� �G�>�k�?�4�_uk�?�4+h48� ��_}@4+h48� �"s06t
(�� ��k�?�k�?�4k�?�4�_}k�?�4+h48� �G�?u���k�?�4�_ek�?�4+h48� �"�06�
H�� ��k�?�k�?�4k�?�4�_�k�?�4+h48� �G�?qҕ�k�?�4�_�k�?�4+h48� ��_�@K�>��@�7�?k�?�7��g�?=g�?54+h48� � 304?
`�� ��k�?�k�?�48k�?�48�_]k�?�4+h48� �G�?=���k�?�4�_Ek�?�4+h48� �G�?5�t�k�?�4�_�k�?�4+h48� ��_�@K�?Y�@�7�?��@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�7�7�$k�?�STU7�$y��e47�$yk�#�k�#�k�#�k�#�4k�&�"s06t
�J�J�k�&�J�k�&�k�&�4k�(�4k�(�"�06�J�J�k�(�J�k�(�7�(�34k�*�4k�*�"�06�0H?H3k�*�k�*�4k�,�K�#�k�,�4k�.� 304?@K�K�k�.�K�k�.�7�.��34k�0�K�$y��7�0����7�$yK�$yk�2�4k�2�"�06�`J�J�k�2�J�k�2�B�k�3c�3	4k�4�K�#�k�4�4k�7	#�07��JtJuk�7Jvk�7Jak�7!7�7)�34k�9K�#�k�94$k�;)"�06��H?H3k�;1H4k�;9H5k�;AD6 k�;Ig�;Q4k�=1K�#�k�=94k�&�k�?QK�&�k�?YK�&���cr4k�?IK�?I� w�� G��?�7�&�֟�����
�k�?aK�?aK��d 
�b ���4K�?a6�7�?Q4K�?a6�k�?�4k�?�K�?a7�k�?�k�?��_�k�?yK�?Q�� B4K�?aJ���
�t��?�9D��_}]��4K�?a7�7�?Q4K�?a6tk�?�k�?�k�?�k�?��_�k�?yK�?Q�� B4K�?aJ��?9t�����D��_�]�
4+h48� �"s06t
��� ��k�?�k�?�4Hk�?�4H�_%k�?�4+h48� �K�?aK�k�?�4�_
k�?�4+h48� ��_@K�?YK�?I�� K�?I�?��k�?IK�#��@�7�$�@��_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!H4 k�?���$�@k�?�7�k�;�k�;�4k�>�k�<C�;�ҕ����H���P ���@@�@�`@��@�8@��@�8@��@�X@��@�8@�x@��@��@�h@��@�	�@�
0@4k�<#�07��JtJuk�<	Jvk�<Jak�<7�<!�
��34(k�<"�06��J�J�k�<	J�k�<J�k�<J� k�<!�
(k�<)4&k�<"�06� H?H3k�<	H4k�<H5k�<H6 k�<!7�<)��6348k�<"s06tHJ�J�k�<	J�k�<J�k�<J� k�<!J�(k�<)J�0k�<1�k�<94*k�<#�07��JtJuk�<	Jvk�<Jak�<J k�<!Bs(k�<)��c�<14.k�<"�06��J�J�k�<	J�k�<J�k�<J� k�<!J�(k�<)7�<1�
�634>k�<"s06t�J�J�k�<	J�k�<J�k�<J� k�<!J�(k�<)J�0k�<1J�8k�<97�<A�
H�34Fk�<"�06�
 7�<I6�@KX?����4�	�4>k�< 304?
hK�K�k�<	K�k�<K�k�<K� k�<!K�(k�<)K�0k�<1K�8k�<97�<A�	H�34bk�<#�07�
�7�<i6z`KX?���}4��4&k�<"�06�J�J�k�<	J�k�<J�k�<J� k�<!7�<)�x�3k�>�K�>��?7�>��"�06�8���4(K�>���(k�>�K�>��?7�>��"�06�`��E4NK�>���Nk�>�K�>�� wa�87�<��7�>���4>k�<"s06t�J�J�k�<	J�k�<J�k�<J� k�<!J�(k�<)J�0k�<1J�8k�<97�<A���34Jk�<"�06��7�<Q6�HKW?���=4��47�<� �4�k�?�4k�?�7�>��� ��k�?�k�?�"�06�@�� ��k�?qk�?y4k�?i4k�?a�_mk�?Y47�<� �4�k�?�K�>�k�?�7�>��� ��k�?�k�?�K�;�k�?y4k�?q�_k�?i47�<� �4�k�?�K�>�k�?�7�>��� ��k�?�k�?� 304?X�� ��k�?qk�?y4 k�?i4 k�?a�_
k�?Y�R47�<� �4�k�?�4k�?�7�>��� ��k�?�k�?�"�06�x�� ��k�?qk�?y4k�?i4k�?a�_=k�?Y47�<� �4�k�?�K�>�k�?�7�>��� ��k�?�k�?�C�;��?>"t6tp� �"�6�p
�7��t `�k�?qk�?y4k�?iC�;���>#�7�pa �"�6�p� �?�k�?a�_�k�?Y47�<� �4�k�?�K�>�k�?�7�>��� ��k�?�k�?�G�;��?�k�?y4k�?q�_�k�?i47�<� �4�k�?�K�>�k�?�7�>��� ��k�?�k�?�#�07���t `�k�?qk�?y4 k�?i4 k�?a�_�k�?Y��4nk�<#�07��7�<q6zhKW?���4��44k�<"�06� J�J�k�<	J�k�<J�k�<J� k�<!J�(k�<)F�0k�<1g�<947�<� �4�k�?�K�<��k�?�7�>��� ��k�?�k�?�#�07�X�t `�k�?qk�?y4k�?i4k�?a�_�k�?Y47�<� �4�k�?�K�>�k�?�7�>��t `�k�?�k�?�C�;�Ҷ�k�?y4k�?q�_}k�?i47�<� �4�k�?�K�>�k�?�7�>��� ��k�?�k�?�4Rk�?y4k�?q�_%k�?iK�<��7�<���Q7�<7�<�C�;��y�Kx@+hH70+hH48�_Uk�?�4+h48� �7�<	�� ��k�?�k�?�K�<k�?�K�<�_�k�?�4+h48� ��_@K�;��@�7�<�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�7��4"t6x�� ��_}@TUVA_5S�TU�v 4c�?�C�?�K�?Y�@�7�?��@(�_K�?�K�?�8 �@ K�?�k�?�o�Ck�<�+h@!�ǡ��4+h48� �#�7��t `�k�?�k�?�4k�?�4�_Ak�?�4+h48� ��_�@K�<�H?��axk�?i4k�?aK�?a��G�K�<�J�
�t�K�<�
�C�4�t@*4��u@�4�c�?qc�?qC�?q����K�?a��G�K�<�Jt
�t�K�<��K�?a� G�K�<�K�
at�K�<�4B��?���@��K�?iK�?a�� K�?a����k�?aK�<�K_����7�=Q+h@3�ǳ��4+h48� �"�6� �� ��k�?�k�?�4k�?�4�_�k�?�4+h48� ��_�@ST47�=Q��YK�<��@�O�=�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�7�+h@5�ǵ��4+h48� �"�6�0�?  �k�?�k�?�4$k�?�4$�_k�?�4+h48� ��_Y@k�?q47�?q"�	
�_�6��K�?q��!4+h48� � 44?X�� ��k�?�k�?�4Hk�?�4H�_k�?�4+h48� �K�?qk�?�4�_	k�?�4+h48� ��_@+h@?�ǿ��4+h48� �"t6t��� ��k�?�k�?�4"k�?�4"�_�k�?�4+h48� ��_A@K�>��@�7�?�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�7�+h@?�ǿ��4+h48� �"t6tВ� ��k�?�k�?�4&k�?�4&�_�k�?�4+h48� ��_�@k�?q47�?q#�	
�_�7��K�?q�`!4+h48� �"�6���� ��k�?�k�?�4Jk�?�4J�_�k�?�4+h48� �K�?qk�?�4�_�k�?�4+h48� ��_�@+h@5�ǵ��4+h48� �"�6�H�?  �k�?�k�?�4$k�?�4$�_qk�?�4+h48� ��_�@K�>��@�7�?�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!H4 k�?���$�@k�?�7�+h@5�ǵ��4+h48� �"�6�p�?  �k�?�k�?�40k�?�40�_k�?�4+h48� ��_I@4+h48� �"�6���� ��k�?�k�?�4@k�?�4@�_Ik�?�4+h48� �Kt@k�?�4�_9k�?�4+h48� ��_A@Kv@k�?yKa@�"b�4k�?q4+h48� �K�?qk�?�4�_�k�?�4+h48� �"�6���� ��k�?�k�?�4k�?�4�_�k�?�4+h48� �4?�K�?q
�t���G�7v8���k�?�4
�_�k�?�4+h48� �4?�K�?q
�t���G�7v@���k�?�4
�_k�?�4+h48� �4?�K�?q
�t���G�7v8
��H?H3k�?�k�?�4(�_Mk�?�4+h48� ��_
y@K�?yK�?q�� K�?q�?�5k�?q+h@3�ǳ��4+h48� �"�6�蒶 ��k�?�k�?�4.k�?�4.�_)k�?�4+h48� ��_q@K�>��@�7�?�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!@H4 k�?���$�@k�?�7�k�=�k�=�+h@3�ǳ��4+h48� �"�6� �� ��k�?�k�?�4k�?�4�_
�k�?�4+h48� ��_
�@k�>"t6z�7y@���R4�k�>17�>!�� ��k�>�k�>�k�?!k�>947�>7�>17�>�7�?!k�?�K�=�k�?�STk�?�k�?��_�k�?yK�>��"zG�>���4?ŀ? �"K�=�"��6�� u�K�=� (�4?��k`@+h@3�Ǔ��4+h48� �"�6�P�� ��k�?�k�?�44k�?�44�_ik�?�4+h48� �G�>�t�k�?�4�_Qk�?�4+h48� �"�6���?  �k�?�k�?�4k�?�4�_�k�?�4+h48� �G�>Ҷ�k�?�4�_yk�?�4+h48� ��_�@�R4k@K�>!K�>)ksHktP+h@5�Ǖ�
�_�@+h@6�Ƕ��4+h48� � 44?��� ��k�?�k�?�4k�?�4�_	k�?�4+h48� ��_Q@K�=��@�7�>�@(�_K�?�K�?�8 �@ K�?�k�?�7�k�=�+h@6�Ƕ��4+h48� � <4?Г� ��k�?�k�?�4,k�?�4,�_�k�?�4+h48� ��_@k�>!"�6��7y@��=�R4$k�>17@�� ��k�>�k�>�k�?!k�>947�>!7�>17�>�7�?!k�?�4k�?�VAk�?�k�?��_k�?yK�>!��""K�=�"�@6�u�+h@6�ǖ��4+h48� � <4?�� ��k�?�k�?�44k�?�44�_�k�?�4+h48� �G�>%���k�?�4�_�k�?�4+h48� �"|6tH�� ��k�?�k�?�4k�?�4�_k�?�4+h48� �G�>!���k�?�4�_�k�?�4+h48� ��_@�"+h@5�Ǖ�
�_�@+h@6�Ƕ��4+h48� � <4?X�� ��k�?�k�?�4*k�?�4*�_�k�?�4+h48� ��_@K�=��@�7�>�@(�_K�?�K�?�8 �@ K�?�k�?�7��+h@6�Ƕ��4+h48� � $@4?��� ��k�?�k�?�4k�?�4�^�k�?�4+h48� ��^�@k�=�k�>�4+h48� ��^�@47�=� �4�k�?�4k�?�7�?A�� ��k�?�k�?�"�@6�Ȓ� ��k�?qk�?y4\k�?i4\k�?a�_9k�?Y47�>�� �4�k�?�4k�?�7�?A�� ��k�?�k�?� $@4?(�� ��k�?qk�?y4fk�?i4fk�?a�_qk�?Y+h@6�����47�>�� �4�k�?�K�?Ak�?�7�?A�t `�k�?�k�?�"�@6���� ��k�?qk�?y4k�?i4k�?a�_
�k�?Y4+h48� �7�=钕 ��k�?�k�?�K�=�k�?�K�=��^%k�?�4+h48� ��^m@4+h48� �7�>��� ��k�?�k�?�K�>�k�?�K�>��^uk�?�4+h48� ��^�@+h@6�Ƕ��4+h48� � $@4?��� ��k�?�k�?�4k�?�4�^�k�?�4+h48� ��^�@K�=Y�@�7�=��@(�_K�?�K�?�8 �@ K�?�k�?�7�k�>�+h@6�Ƕ��4+h48� � $@4?Г� ��k�?�k�?�4(k�?�4(�^mk�?�4+h48� ��^�@k�?ic�?qK�?i��v��@K�>�6 �� 4�c�?qK�?i��k�?iC�?q��@K�?i4���?u@C�?q���K�?i�k�?ak�?a+h@5�ǵ��4+h48� �"�@6���?  �k�?�k�?�4&k�?�4&�^�k�?�4+h48� ��^@K�?aK�>��@�7�?�@(�_K�?�K�?�8 �@ K�?�k�?�7�k�>�+h@5�ǵ��4+h48� �"�@6� �?  �k�?�k�?�4&k�?�4&�^�k�?�4+h48� ��^�@k�?ic�?qK�?i��v��@K�>�� ��  4�c�?qK�?i�tk�?iC�?q��@K�?i4��6?u@C�?q���K�?i�k�?ak�?a+h@4�Ǵ��4+h48� �"�@6�H�� ��k�?�k�?�4$k�?�4$�^�k�?�4+h48� ��^5@K�?aK�>��@�7�?�@(�_K�?�K�?�8 �@ K�?�k�?�o�Ck�<�+h@4�Ǵ��4+h48� �"�@6�p�� ��k�?�k�?�4k�?�4�^�k�?�4+h48� ��^�@+hH4H�_5J�+hh<h+hH5hk�?q+hH6h��`�k�?iK�?i��v��@+hH3HJtK�?i��v��@� +h4!X��K�?qK�?i�� K�?i���]k�?i+hH?h+hh?P7�=a+h4:P��
�4+h@3�ǳ��4+h48� �"�@6���� ��k�?�k�?�4k�?�4�^}k�?�4+h48� ��^�@ST47�=a��	�YK�<��@�O�=�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!@H4 k�?���$�@k�?�7�k�>�+h@5�ǵ��4+h48� �"�@6���?  �k�?�k�?�4$k�?�4$�^�k�?�4+h48� ��^@+hH5H�_EJ�+hh<p4+h48� �"�@6�ؐ?  �k�?�k�?�40k�?�40�^�k�?�4+h48� �+hH5pk�?�4�^�k�?�4+h48� ��^�@+hH!p�?���cxk�?ik�?Y+hH3HJtK�?Y��v��@� �k�?a�_�K�?a+hh<h+hH!h�?���`�k�?qk�?QK�?Q�`v�`@K�?Q��v��@K�?a� +h4!X
a�K�?qK�?Q�� K�?Q���mk�?Q+hH?h+hh?P4+h48� �K�?Y�tk�?�4�^�k�?�4+h48� �"�@6��?  �k�?�k�?�4k�?�4�^
k�?�4+h48� �+h45X�� ��k�?�k�?�+hH!Pk�?�+hH?P�^}k�?�4+h48� �4Dk�?�4�_mk�?�4+h48� ��^u@K�?iK�?Y�� K�?Y�?��k�?Y+h@3�ǳ��4+h48� �"�@6��� ��k�?�k�?�4"k�?�4"�^
%k�?�4+h48� ��^
m@K�>��@�7�?�@(�_K�?�K�?�8 �@ K�?�k�?�7�k�>�+h@3�ǳ��4+h48� �"�@6�@�� ��k�?�k�?�4(k�?�4(�^�k�?�4+h48� ��^	5@�_mK�>�+hh<x+hH3x�t���c�k�?qk�?i4+h48� �"�@6�h�� ��k�?�k�?�4k�?�4�^�k�?�4+h48� �K�?i��v��@K�>�� �B�k�?�4�^�k�?�4+h48� �4\k�?�4�_]k�?�4+h48� �K�?i��v��@K�>�� �@?k�?�4�^�k�?�4+h48� �4\k�?�4�_�k�?�4+h48� �K�?i��v��@K�>�6 �C�k�?�4�^k�?�4+h48� �4\k�?�4�_�k�?�4+h48� �K�?i� v� @K�>�� �Btk�?�4�^Uk�?�4+h48� ��^]@K�?qK�?i�6 K�?i���Ek�?i+h@4�Ǵ��4+h48� �"�@6���� ��k�?�k�?�4&k�?�4&�^
k�?�4+h48� ��^U@K�>��@�7�?�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!H4 k�?���$�@k�?�7��k�?9+h@4�Ǵ��4+h48� �"�@6���� ��k�?�k�?�4"k�?�4"�^�k�?�4+h48� ��^�@7�?944+h�_�47�+hh<H+hH4���!�4+h48� �"�@6�ؒ� ��k�?�k�?�4k�?�4�^�k�?�4+h48� �+hH4�k�?�4�^mk�?�4+h48� �"�@6��?  �k�?�k�?�4&k�?�4&�^�k�?�4+h48� ��^�@+h@5�ǵ��4+h48� �"�@6��?  �k�?�k�?�4 k�?�4 �^�k�?�4+h48� ��^%@K�?Y�@�7�?��@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!H4 k�?���$�@k�?�o��CUV4 ���7�>�7�>�k�>9+h@?�ǿ��4+h48� �"d@6t0�� ��k�?�k�?�4k�?�4�^)k�?�4+h48� ��^q@+h@?�ǟ��4+h48� �"d@6tP�� ��k�?�k�?�4
k�?�4
�^Yk�?�4+h48� ��_�@4k�?q4+h48� �K�?q�`w�`G��t�7�>�� k�?�4�_�k�?�4+h48� �4zk�?�4�_�k�?�4+h48� �K�?q��wᲀG����7�>�� k�?�4�^k�?�4+h48� �4�k�?�4�_
�k�?�K�?q4 �� K�?q�?�=k�?q4+h48� ��^�@"d@6t�J�J�k�?AJ�k�?IJ�k�?QJ� k�?Yk�?a4k�?AK�?A��wᲠG����7�>�6 4@� �K�?A��wᲀG�K�?A��wᲠG����7�>�6 7�?G
��K�?A��k�?AK�?A� w� G��?�7�>� 4@��?E@K�?A���k�?AK�?AK�?Ik�?K�?Qk�?K�?Yk�?!K�?ak�?)K�?ik�?1k�?9+h@?�ǟ��4+h48� �"d@6t`�� ��k�?�k�?�4k�?�4�^�k�?�4+h48� �7�?I�� ��k�?�k�?�K�?Ak�?�K�?A�^k�?�4+h48� �"�@6�p�?  �k�?�k�?�4k�?�4�^�k�?�4+h48� �K�?Ak�?�4�^�k�?�4+h48� ��^�@+h@!�ǡ��4+h48� �#�@7���t `�k�?�k�?�4k�?�4�^yk�?�4+h48� ��^�@A_407�?���YK�>Y�@�O�>��@(�_K�?�K�?�8 �@ K�?�k�?�o��Ck�>9+h@3�ǳ��4+h48� �"�@6�В� ��k�?�k�?�4k�?�4�^	k�?�4+h48� ��^Q@K�>9k�?Ik�?!K�?I��$"47�?!� �4k�?�4k�?�7�?Q�?  �k�?�k�?�C�?Ik�?y4k�?q�^Mk�?i47�?!� �4k�?�K�?Qk�?�7�?Q�?  �k�?�k�?�4\k�?y4k�?q�^�k�?i47�?!� �4k�?�K�?Qk�?�7�?Q�?  �k�?�k�?�C�?Kk�?y4k�?q�^k�?i47�?!� �4k�?�K�?Qk�?�7�?Q�?  �k�?�k�?�4\k�?y4k�?q�^�k�?i47�?!� �4k�?�K�?Qk�?�7�?Q�?  �k�?�k�?�C�?Mk�?y4k�?q�^�k�?i47�?!� �4k�?�K�?Qk�?�7�?Q�?  �k�?�k�?�4\k�?y4k�?q�^�k�?i47�?!� �4k�?�K�?Qk�?�7�?Q�?  �k�?�k�?�C�?Ok�?y4k�?q�^�k�?iK�?!��7�>���	)7�?!+h@6�Ƕ��4+h48� � $@4?�� ��k�?�k�?�4k�?�4�^�k�?�4+h48� ��^	@VA4(7�>���YK�>Y�@�O�>��@(�_K�?�K�?�8 �@ K�?�k�?�o�Ck�>�+h@?�ǿ��4+h48� �"d@6t	�� ��k�?�k�?�4<k�?�4<�^Qk�?�4+h48� ��^�@k�?AK�>�"c6t.Ń�<�"�6�'��<* !43	���;�4=��;r4:���;4:���:�4/���:j4.ރ�:4,���9�4,���9b4,���9
4,���8�4$���8Z4��84��7�4̃�7R4t��6�4r��6�4��6J4�5�4D��5�4��[r4��524��T�4��4�4��[24��44��S�4��3j4	؃�34	���2�4p��2b4X��2
4V��1�4���1Z4��14���0�4܃�0R4t��/�4B��ZR4B��/�4>��O:4>��.�4��.�4��.24��-�4
��-�4��Y�4��-4��L�4��,j4��,4f��+�4D��+b4B��+
40��*�4��YB4��*J4��I�4��)�4���)B4��(�4��(�4��(:4��'�4ރ�'�4ڃ�'24ʃ�&�4���&�4���&*4���Xb4���%�4���Ej4���%4j��$�4V��$b4N��$
4J��#�42��#Z4.��#4*��W�4*��"�4&��BB4&��!�4"��!���!B�� �� ��� R�� �R4k�?A $@4?	PK�G�k�?I�@g�?Q4k�?A"�@6�	`H?D3k�?I��g�?Q4k�?A"�@6�	pJ�F�k�?I��g�?Q4k�?A"�@6�	�J�F�k�?I�hg�?Q4k�?A"d@6t	�J�F�k�?I� g�?Q4k�?A#�@7�	�JtFuk�?I��g�?Q4k�?A $@4?	�K�G�k�?I��g�?Q4k�?A"�@6�	�H?D3k�?I�Hg�?Q4k�?A"�@6�	�J�F�k�?I�g�?Q4k�?A"�@6�	�J�F�k�?I��g�?Q4k�?A"d@6t	�J�F�k�?I�pg�?Q4k�?A#�@7�
JtFuk�?I�(g�?Q4k�?A $@4?
K�G�k�?I��g�?Q4k�?A"�@6�
 H?D3k�?I��g�?Q4k�?A"�@6�
0J�F�k�?I�Pg�?Q4k�?A"�@6�
@J�F�k�?I�g�?Q4k�?A"d@6t
PJ�F�k�?I��g�?Q4k�?A#�@7�
`JtFuk�?I�xg�?Q4k�?A $@4?
pK�G�k�?I�0g�?Q4k�?A"�@6�
�H?D3k�?I��g�?Q4k�?A"�@6�
�J�F�k�?I��g�?Q4k�?A"�@6�
�J�F�k�?I�Xg�?Q4k�?A"d@6t
�J�F�k�?I�g�?Q4k�?A#�@7�
�JtFuk�?I��g�?Q4k�?A $@4?
�K�G�k�?I��g�?Q4k�?A"�@6�
�H?D3k�?I�8g�?Q4k�?A"�@6�
�J�F�k�?I��g�?Q4k�?A"�@6�J�F�k�?I��g�?Q4k�?A"d@6tJ�F�k�?I�`g�?Q4k�?A#�@7� JtFuk�?I�g�?Q4k�?A $@4?0K�G�k�?I��g�?Q4k�?A"�@6�@H?D3k�?I��g�?Q4k�?A"�@6�PJ�F�k�?I�@g�?Q4k�?A"�@6�`J�F�k�?I��g�?Q4k�?A"d@6tpJ�F�k�?I��g�?Q4k�?A#�@7��JtFuk�?I�hg�?Q4k�?A $@4?�K�G�k�?I� g�?Q4k�?A"�@6��H?D3k�?I�
�g�?Q4k�?A"�@6��J�F�k�?I�
�g�?Q4k�?A"�@6��J�F�k�?I�
Hg�?Q4k�?A"d@6t�J�F�k�?I�
g�?Q4k�?A#�@7��JtFuk�?I��g�?Q4k�?A $@4?�K�G�k�?I�pg�?Q4k�?A"�@6�H?D3k�?I�(g�?Q4k�?A"�@6�J�F�k�?I��g�?Q4k�?A"�@6� J�F�k�?I��g�?Q4k�?A"d@6t0J�F�k�?I�Pg�?Q4k�?A#�@7�@JtFuk�?I�g�?Q4k�?A $@4?PK�G�k�?I�
�g�?Q4k�?A"�@6�`H?D3k�?I�
xg�?Q4k�?A"�@6�pJ�F�k�?I�
0g�?Q4k�?A"�@6��J�F�k�?I�	�g�?Q4k�?A"d@6t�J�F�k�?I�	�g�?Q4k�?A#�@7��JtFuk�?I�	Xg�?Q4k�?A $@4?�K�G�k�?I�	g�?Q4k�?A"�@6��H?D3k�?I��g�?Q4k�?A"�@6��J�F�k�?I��g�?Q4k�?A"�@6��J�F�k�?I�8g�?Q4k�?A"d@6t�J�F�k�?I��g�?Q4k�?A#�@7�
JtFuk�?I��g�?Q4k�?A $@4?
K�G�k�?I�`g�?Q4k�?A"�@6�
 H?D3k�?I�g�?Q4k�?A"�@6�
0J�F�k�?I��g�?Q4k�?A"�@6�
@J�F�k�?I��g�?Q4k�?A"d@6t
PJ�F�k�?I�@g�?Q4k�?A#�@7�
`JtFuk�?I��g�?Q4k�?A $@4?
pK�G�k�?I��g�?Q4k�?A"�@6�
�H?D3k�?I�hg�?Q4k�?A"�@6�
�J�F�k�?I� g�?Q4k�?A"�@6�
�J�F�k�?I��g�?Q4k�?A"d@6t
�J�F�k�?I��g�?Q4k�?A#�@7�
�JtFuk�?I�Hg�?Q4k�?A $@4?
�K�G�k�?I�g�?Q4k�?A"�@6�
�H?D3k�?I��g�?Q4k�?A"�@6�
�J�F�k�?I�pg�?Q4k�?A"�@6�J�F�k�?I�(g�?Q4k�?A"d@6tJ�F�k�?I��g�?Q4k�?A#�@7� JtFuk�?I��g�?Q4k�?A $@4?0K�G�k�?I�Pg�?Q4k�?A"�@6�@H?D3k�?I�g�?Q4k�?A"�@6�PJ�F�k�?I��g�?Q4k�?A"�@6�`J�F�k�?I�xg�?Q4k�?A"d@6tpJ�F�k�?I�0g�?Q47�?A� �4k�?�4k�?�7�?Y�t `�k�?�k�?�K�>�k�?y4
k�?q�]�k�?i47�?A� �4k�?�K�?Yk�?�7�?Y�t `�k�?�k�?�4@k�?y4k�?q�]ek�?iK�?A�87�?!���7�?A+h@?�ǿ��4+h48� �"d@6t��� ��k�?�k�?�4:k�?�4:�]-k�?�4+h48� ��]u@_S47�?!��}YK�>��@�O�?�@��_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!H4 k�?���$�@Ka?�k�?�4!H4 k�?���$�@k�?�o�7�?�(b 4>	TVhz?�+���49�"�6� ��Z+���4!�ha?�+���49h48���Z+���4?hh?�+h@3�ǳ��4+h48� �"�@6���� ��k�?�k�?�4&k�?�4&�]Uk�?�4+h48� ��]�@k�:�4+h48� ��]]@4+h48� �"d@6t蒕 ��k�?�k�?�4$k�?�4$�]]k�?�4+h48� �4?�Hs?��t��`G�7t8���k�?�4�]k�?�4+h48� �4Pk�?�4�^�k�?�+���44J�J�+���4!@h5J�h6J� h?h3 +���4:H�_
�7�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�� ��k�?�k�?�K�?k�?�K�?�]	5k�?�4+h48� �4\k�?�4�^%k�?�+���440J�J�+���4!@h5J�h6J� h?h3 +���4:H�_	Q7�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�� ��k�?�k�?�K�?k�?�K�?�]�k�?�4+h48� �4\k�?�4�^}k�?�+���44PJ�J�+���4!@h5J�h6J� h?h3 +���4:H�_�7�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�� ��k�?�k�?�K�?k�?�K�?�]�k�?�4+h48� �4Rk�?�4�^�k�?�4+h48� ��]�@4+h48� �"�@6��� ��k�?�k�?�4$k�?�4$�]�k�?�4+h48� �4?�Ht?�
tt���G�7u@���k�?�4�]�k�?�4+h48� ��]�@+���@3��t�4>��HR��hJ��9t@��24+h48� � $@4?8�� ��k�?�k�?�4$k�?�4$�]]k�?�4+h48� �+���H6k�?�4�]Ek�?�4+h48� �4@k�?�4�^�k�?�4+h48� �4Fk�?�4�^�k�?�4+h48� �+���@6x��>#�P7�
�a �"�P6�
�
�4?�� ��k�?�k�?�4k�?�+���@5xҶ> $P4?
�� �"�P6�
�� ����]]k�?�4+h48� �+���D?x���k�?�4�]=k�?�4+h48� �4@k�?�4�^�k�?�+���4:��_y7�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�?  �k�?�k�?�K�?k�?�K�?�]�k�?�4+h48� �4Xk�?�4�^�k�?�+���4:��_17�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�?  �k�?�k�?�K�?k�?�K�?�]ik�?�4+h48� �4\k�?�4�^
]k�?�+���4:��^�7�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�?  �k�?�k�?�K�?k�?�K�?�]!k�?�4+h48� �4Xk�?�4�^k�?�+���4:��^�7�>�K�>�K�>�k�?K�>�k�?K�>�k�?!K�?k�?)K�?	k�?1k�?94+h48� �7�?�?  �k�?�k�?�K�?k�?�K�?�]�k�?�4+h48� ��]!@4+h48� �"�@6�`�� ��k�?�k�?�4$k�?�4$�]!k�?�4+h48� �+���@4~ҕ�"�P6�
p5 �"dP6t
p�6��� ��k�?�k�?�+���@?~���"�P6�
p� � $P4?
p� �t�k�?�+���@5~Ҷ� $P4?
p� �"�P6�
p� ����]�k�?�4+h48� �#�@7���t `�k�?�k�?�4k�?�4�]Qk�?�4+h48� ���+���H3�
RU6��Ҷk�?�4�]k�?�4+h48� ��]@4+h48� �#�@7���t `�k�?�k�?�4$k�?�4$�]k�?�4+h48� �+���H?�+���H3�k�?�k�?�4�^�k�?�4+h48� �"�@6�Ȓ� ��k�?�k�?�4
k�?�4
�])k�?�4+h48� ��]q@4+h48� �"�@6�ؒ� ��k�?�k�?�4$k�?�4$�]qk�?�4+h48� �+���@3��t�"�P6�	�� �#�P7�	�36��� ��k�?�k�?�+���@!��?�"dP6t	�� �"�P6�	�5 ���k�?�+���@4�ҕ�"�P6�	�5 �"dP6t	�� Ҷ��]!k�?�4+h48� ��]i@+���@!��?�4>��RR��rJփ9@��2g�:�+���D5Һ�7�:�7�:�7�:�7�:�k�?�7�:��_�k�?�G�:���0�47�:� �4Pk�?�4k�?�7�:ɒ� ��k�?�k�?�G�:��?��w��@"dP6t	P� �"�P6�	P
�7��t `�k�?qk�?yG�:�Ҷ��w��@ $P4?	P� �"�P6�	P� ���k�?iG�:����`w�`@"�P6�	P� � $P4?	P� �t�k�?a�]}p@p@a*K�r���e�A����pp����k�?Y47�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�4@k�?y4k�?q�]ek�?i47�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�G�:��t�w鲀@"�P6�`� �#�P7�`36��� ��k�?qk�?yG�:��?��w��@"dP6t`� �"�P6�`5 ���k�?iG�:�ҕ�w鲠@"�P6�`5 �"dP6t`� Ҷ�k�?a�]1k�?Y47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�G�:�Ҷ�k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒ� ��k�?�k�?�+���@6���4?�k�?y4
k�?q�]!k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒ� ��k�?�k�?�4@k�?y4k�?q�]�k�?i+���@4��a�47�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�4`k�?y4k�?q�]k�?i47�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�+���@3k�?y4k�?q�]9k�?i47�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�4tk�?y4k�?q�]�k�?i�247�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�+���@3k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɐ?  �k�?�k�?�4tk�?y4k�?q�]�k�?i+���@5��a�47�:� �4Pk�?�K�:�k�?�7�:ɓ� ��k�?�k�?�4`k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɓ� ��k�?�k�?�+���@4k�?y4k�?q�]k�?i47�:� �4Pk�?�K�:�k�?�7�:ɓ� ��k�?�k�?�4tk�?y4k�?q�]�k�?i�247�:� �4Pk�?�K�:�k�?�7�:ɓ� ��k�?�k�?�+���@4k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɓ� ��k�?�k�?�4tk�?y4k�?q�]yk�?i+���@6��br47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�4`k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�+���@5k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�4\k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�+���@5k�?y4k�?q�]�k�?i��47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�+���@5k�?y4k�?q�]	k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�4\k�?y4k�?q�]�k�?i47�:� �4Pk�?�K�:�k�?�7�:ɒt `�k�?�k�?�+���@5k�?y4k�?q�]�k�?i4+h48� � $@4?�� ��k�?�k�?�4$k�?�4$�]k�?�4+h48� �7�:�� ��k�?�k�?�K�:�k�?�K�:��]�k�?�4+h48� ��]�@4+h48� �"�@6�(�� ��k�?�k�?�4$k�?�4$�]�k�?�4+h48� �+���H3�k�?�4�]�k�?�4+h48� ��]�@+���H5�k�>�+���H6���h4k�:�+hH?0��+hh30K�:Ѳ�p��G����+���46�
����k�>�4+h48� �"�@6�P�� ��k�?�k�?�4*k�?�4*�]!k�?�4+h48� �K�:�k�?�4�]k�?�4+h48� �"�@6���� ��k�?�k�?�4k�?�4�\Uk�?�4+h48� ��\�@4+h48� �"�@6���� ��k�?�k�?�4
k�?�4
�\�k�?�4+h48� ��\�@4+h48� �"d@6t��� ��k�?�k�?�4$k�?�4$�\�k�?�K�>�K��^7�>�4+h48� �7�>��t `�k�?�k�?�K�>�k�?�K�>��\Mk�?�4+h48� ��\�@K�>�@?"��!:K�>�Jtk�:��^�K�:�+hH5H�� �47�<ѓ �4�k�?�4k�?�7�:ɓ� ��k�?�k�?�"�@6�ؒ� ��k�?qk�?y4"k�?i4"k�?a�]	�k�?Y�"+hH3HJz�^i7�<��k�<�4+h48� �"�@6��� ��k�?�k�?�4$k�?�4$�\5k�?�4+h48� �7�<ْt `�k�?�k�?�K�<�k�?�K�<��\�k�?�4+h48� ��\@k�>�K�>�D:�^U7�?K�?K�?k�?1K�?!k�?9k�?A47�?1� �ֿk�?�7�>�� ��k�?�k�?��_�k�?yK�>��w���7�<���e7�>�K�<�4
tt�C�<�4r��@*4^��@�4�c�>�c�>�C�>����24+h48� �"�@6�(�� ��k�?�k�?�4$k�?�4$�\�k�?�4+h48� �7�<��t `�k�?�k�?�K�<�k�?�K�<��\%k�?�4+h48� ��\m@�R4+h48� � $@4?P�� ��k�?�k�?�4$k�?�4$�\ek�?�4+h48� �7�<��� ��k�?�k�?�K�<�k�?�K�<��\�k�?�4+h48� �"�@6�x�� ��k�?�k�?�4k�?�4�\mk�?�4+h48� �K�>�Ftk�?�4�\Uk�?�4+h48� �4Rk�?�4�^k�?�4+h48� ��\
@K�>�C� �l@چl ��h@J�h ��4k�;�"�@6��J�7�;����34k�;�"�@6��J�7�;��`634k�;�"d@6t�J�7�;�� �34k�;�4~c�;�K�>�Bt"�� ��� ��� �B4"k�;A"�@6��H?H3k�;IH4k�;QH5k�;Y@6 k�;a��c�;i4k�;A#�@7��JtJuk�;IJvk�;QJak�;Y7�;a���34k�;A"�@6��J�J�k�;IJ�k�;Q7�;Y� 34k�;A4~c�;IK�>�F��?��H��`P�Z�@@��@�@�X@��@��@�@�X@��@��@�@��@��@�0@4Lk�<"�@6��7�<Q6�HKW?���u4�J4k�<#�@7�HJtJuk�<	Jvk�<Bak�<��c�<!4Fk�<"d@6th7�<I6�@KX?����4��4Nk�<"�@6��7�<Q4:HKW?���m4�B4Bk�<"d@6t7�<I6�@KX?���-4��4Tk�<"�@6�H7�<Y4:PKX?���
�4��4Dk�<"d@6t�7�<I6�@KX?���
�4�R4Fk�<"�@6��7�<I4:@KX?���
=4�4Dk�<"d@6t07�<I6�@KX?���	�4��4:k�<"�@6�xH?H3k�<	H4k�<H5k�<H6 k�<!H?(k�<)H30k�<1@48k�<9�c�<A4Jk�<"�@6��7�<Q4:HKW?����4��4Jk�<"d@6t7�<Q6�HKW?����4�j4Bk�<"�@6�X7�<I4:@KX?���U4�4k�<4~c�<	4+h48� �"�@6���� ��k�?�k�?�4$k�?�4$�\�k�?�4+h48� �7�;I�t `�k�?�k�?�K�;Ak�?�K�;A�\-k�?�4+h48� ��\u@4+h48� � $@4?ȓ� ��k�?�k�?�4$k�?�4$�\uk�?�4+h48� �7�;��� ��k�?�k�?�K�;�k�?�K�;��\
�k�?�4+h48� ��\E@4+h48� �"�@6�� ��k�?�k�?�4$k�?�4$�\
Ek�?�4+h48� �7�<	�t `�k�?�k�?�K�<k�?�K�<�\	�k�?�4+h48� ��\
@4+h48� � $@4?�� ��k�?�k�?�4k�?�4�\	k�?�4+h48� ��\	]@4+h48� �"�@6�8�?  �k�?�k�?�44k�?�44�\]k�?�4+h48� �K�>�B���k�?�K�>�C��tִ��
�^�k�?�4+h48� ��\%@4+h48� � $@4?p�� ��k�?�k�?�44k�?�44�\%k�?�4+h48� �K�>�B��??k�?�K�>�Btҕ?����
�^�k�?�4+h48� ��\�@4+h48� �#�@7���t `�k�?�k�?�44k�?�44�\�k�?�4+h48� �K�>�@?��_k�?�K�>�B�Ҷ_�6�?
�^}k�?�4+h48� ��\�@4+h48� �"d@6t��� ��k�?�k�?�44k�?�44�\�k�?�4+h48� �K�>�C��tk�?�K�>�B�������
�^Ek�?�4+h48� ��\}@4+h48� �"�@6��� ��k�?�k�?�44k�?�44�\}k�?�4+h48� �K�>�Btҕ�k�?�K�>�B��?���t
�^
k�?�4+h48� ��\E@K�>�B�"��)b4+h48� � $@4?P�� ��k�?�k�?�4k�?�4�\-k�?�4+h48� ��\u@4+h48� �"�@6�`�?  �k�?�k�?�4$k�?�4$�\uk�?�K�>�J��^�7�>�4+h48� �7�>��� ��k�?�k�?�K�>�k�?�K�>��\�k�?�4+h48� ��\%@K�>�J�k�:��]=K�:�+hH6H�� �47�<ѓ �4�k�?�4k�?�7�:ɒt `�k�?�k�?�"�@6���� ��k�?qk�?y4"k�?i4"k�?a�\
�k�?Y�"+hH4HJ��]7�<�4+h48� �"�@6���� ��k�?�k�?�4$k�?�4$�\�k�?�4+h48� �7�<ْ� ��k�?�k�?�K�<�k�?�K�<��\qk�?�4+h48� ��\�@k�>�K�>�G��^	7�?K�?K�?k�?1K�?!k�?9k�?A47�?1� ���k�?�7�>�?  �k�?�k�?��^Mk�?yK�>�`w��x7�<���7�>�K�<�4
�t�C�<�4r��@*4^��@�4�c�>�c�>�C�>����24+h48� �"�@6�ؒ� ��k�?�k�?�4$k�?�4$�\Qk�?�4+h48� �7�<��� ��k�?�k�?�K�<�k�?�K�<��\�k�?�4+h48� ��\!@�R4+h48� �#�@7��t `�k�?�k�?�4$k�?�4$�\k�?�4+h48� �7�<��?  �k�?�k�?�K�<�k�?�K�<��\�k�?�4+h48� �"�@6�(�� ��k�?�k�?�4k�?�4�\!k�?�4+h48� �K�>�F�k�?�4�\	k�?�4+h48� �4Rk�?�4�]�k�?�4+h48� ��\�@K�>�K�:т� K�:Ѷ���k�:�+h@!�ǡ��4+h48� �#�@7�0�t `�k�?�k�?�4$k�?�4$�\qk�?�4+h48� ��\�@Hb?�4~�@�O�?��@(�_K�?�K�?�8 �@ K�?�k�?�7��+h@!�ǡ��4+h48� �#�P7�0�t `�k�?�k�?�4 k�?�4 �\9k�?�4+h48� ��\�@4+h48� ��\I@4+h48� � $P4?P�� ��k�?�k�?�42k�?�42�\Ik�?�4+h48� �Kv@k�?�4�\9k�?�4+h48� ��\A@4+h48� �#�P7���t `�k�?�k�?�42k�?�42�\Ak�?�4+h48� �+hH!8k�?�4�\)k�?�4+h48� ��\1@4+h48� �"dP6t��� ��k�?�k�?�42k�?�42�\1k�?�4+h48� �+hH?0k�?�4�\k�?�4+h48� ��\!@4+h48� ��\�@+h@4�Ǵ��4+h48� �"�P6���� ��k�?�k�?�4k�?�4�\�k�?�4+h48� ��\@K�?Y�@�7�?��@(�_K�?�K�?�8 �@ K�?�k�?�o��Cc�>?c�>7c�>/g�>%+h@4�Ǵ��4+h48� �"�P6� �� ��k�?�k�?�4*k�?�4*�\yk�?�4+h48� ��\�@k�?k�>�47�>� �4k�?�4k�?�7�?�� ��k�?�k�?�C�>?"dP6t0� �"�P6�0
�7��t `�k�?qk�?y4k�?iC�>? $P4?0� �"�P6�0� ���k�?a�\�k�?YK�>�4�t�K�>�4
�t�C�>�6�@4����3�c�>�C�>7��B���!�@ↈ ��k�?!K�>�K�?!��7�?!
�7�>����XK�?!
k�?!K�?!��4�7�?!
����k�?!K�?!��w�7�>���q7�?!�zk�?!K�>�K�?!��7�?!
�7�>���	XK�?!
�k�?!K�?!��4�7�?!
����k�?!K�?!��w�7�>����7�?!��k�?!K�>�K�?!��7�?!?7�>���1XK�?!
�k�?!K�?!��4�7�?!
�a��k�?!K�?!��w�7�>����7�?!��k�?!K�>�K�?!�?7�?!�7�>���YXK�?!
�k�?!K�?!��4~7�?!3���k�?!K�?!��w��7�>����7�?!C�>/�&!" �  ��k�?!K�>�K�?!��7�?!
�7�>���aXK�?!
vk�?!K�?!��4�7�?!
u���k�?!K�?!��w��7�>����7�?!�zk�?!K�>�K�?!�u7�?!
�7�>����XK�?!
�k�?!K�?!�t4�7�?!
�5�k�?!K�?!�`w�x7�>���7�?!��k�?!K�>�K�?!��7�?!
�7�>����XK�?!
�k�?!K�?!��4�7�?!
����k�?!K�?!��w�7�>���A7�?!��k�?!K�>�K�?!��7�?!?7�>����XK�?!
�k�?!K�?!��4~7�?!
�a��k�?!K�?!��w�7�>���i7�?!K�>��G�K�>�6t�7�>�� 4~�� JC�>7�� :K�>��G�K�>�6t�4�7�>�
��C�>/��!�C�>%ǖ��k�?!K�>�K�?!�?7�?!�7�>���YXK�?!
uk�?!K�?!�?4�7�?!���6k�?!K�?!� w�87�>����7�?!��k�?!K�>�K�?!��7�?!
u7�>����XK�?!
�k�?!K�?!��4�7�?!
u���k�?!K�?!��w��7�>���7�?!��k�?!K�>�K�?!�t7�?!
�7�>����XK�?!
�k�?!K�?!�t4Z7�?!
�5�k�?!K�?!�`w�x7�>���=7�?!C�>%�4��k�?!K�>�K�?!��7�?!?7�>����XK�?!
�k�?!K�?!��4�7�?!
�a��k�?!K�?!��w�7�>���]7�?!��k�?!K�>�K�?!��7�?!?7�>����XK�?!
tk�?!K�?!��4�7�?!3���k�?!K�?!��w��7�>����7�?!G�>�?��� 
4g�>47�>� �4k�?�K�>�k�?�7�?�?  �k�?�k�?�G�>�t�w鲀@"�P6��� �#�P7��36��� ��k�?qk�?y4k�?iG�>���`w�`@"�P6��� � $P4?�� �t�k�?a�\k�?YK�>�4
�t�K�>�4?t�C�?6t@4�
���Җ�c�?K�>�87�>���m7�>�+h@?�ǿ��4+h48� �"dP6tP�� ��k�?�k�?�4(k�?�4(�\k�?�4+h48� ��\I@_S4 7�>���UYK�>Y�@�O�>��@��_K�?�K�?�8 �@ K�?�Ka?�k�?�4!@H4 k�?���$�@Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!@H4 k�?���$�@k�?�o�7�?�(b04>�TUhz?�+���49@"�6� ���Z+���4!@ha?�+���4948���Z+���4?h?�+h@3�ǳ��4+h48� �"�P6���� ��k�?�k�?�40k�?�40�[-k�?�4+h48� ��[u@+h@3@��@"�\�@4+h`4@+���H5@��F~+hH68��+hh?8k�5�47�5�� �4k�?�4k�?�7�3a�� ��k�?�k�?�4Fk�?y4k�?q�\Ik�?i47�5�� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�+���@!�?>"d`6t�� �"�`6��
�7��t `�k�?qk�?y4k�?i+���@6��>#�`7��a �"�`6��� �?�k�?a�\	yk�?Y47�5�� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�+���D!�?�k�?y4k�?q�\	k�?i+hH9�K�5��� J�� �+h44�B�C�5��� 6���M7�5�� B+���@!.�?�4>��@��`փ9@�@�4?�Hv?�
�t���G�+hH!�78�����"�+���@5.Ҷ�4>��@��`��9v@�Bnk�8�k�5�+���4: �]I7�4�+���4:@�])7�4�+���4:��]	7�5!+���4:`�]�7�5QK�4��`@�k�<�K�4�K�<�7�<�
�7�4���]XK�<�
�k�<�K�<�4X7�<�
����k�<�K�<�w���7�5����7�<�k�<�K�5�K�<�7�<�
�7�5����XK�<�
k�<�K�4�K�<�7�<�
�7�4���5XK�<�
�k�<�K�<�4\7�<�
����k�<�K�5!K�<�7�<�
�7�5)���XK�<�
�k�<�K�<�w���7�5���m7�<�K�5Q��A"k�<�K�5�K�<�?7�<��7�5����XK�<�
�k�<�K�<��4X7�<�3���k�<�K�5QK�<��7�<�?7�5Y��eXK�<�
tk�<�K�<��w���7�5���57�<�+���@!.�?�4>��W��v�փ9@���k�6ag�3y+���D5�Һ�7�3y7�3i7�3m7�3qk�?�7�3u�^Ak�?�G�3y��*�47�6a� �4Pk�?�4k�?�7�3a�� ��k�?�k�?�G�3u�?��w��@"d`6t� �"�`6�
�7��t `�k�?qk�?yG�3uҶ��w��@ $`4?� �"�`6�� ���k�?iG�3u���`w�`@"�`6�� � $`4?� �t�k�?a�\�k�?Y47�6a� �4Pk�?�K�3ak�?�7�3a�?  �k�?�k�?�4@k�?y4k�?q�\�k�?i47�6a� �4Pk�?�K�3ak�?�7�3a�?  �k�?�k�?�G�3m�t�w鲀@"�`6�� �#�`7�36��� ��k�?qk�?yG�3m�?��w��@"d`6t� �"�`6�5 ���k�?iG�3mҕ�w鲠@"�`6�5 �"d`6t� Ҷ�k�?a�[�k�?Y47�6a� �4Pk�?�K�3ak�?�7�3a�t `�k�?�k�?�G�3qҶ�k�?y4k�?q�[Ek�?i47�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�G�3i���4��k�?y4
k�?q�[�k�?i47�6a� �4Pk�?�K�3ak�?�7�3a�?  �k�?�k�?�4@k�?y4k�?q�[=k�?i+���@5���a:47�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�4`k�?y4k�?q�[�k�?i47�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�+���@4�k�?y4k�?q�[�k�?i��47�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�+���@4�k�?y4k�?q�[k�?i+���@6���aj47�6a� �4Pk�?�K�3ak�?�7�3a�t `�k�?�k�?�"�P6��� ��k�?qk�?y4k�?i4k�?a�[�k�?Y47�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�+���@?�k�?y4k�?q�[�k�?i�247�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�4tk�?y4k�?q�[%k�?i47�6a� �4Pk�?�K�3ak�?�7�3a�� ��k�?�k�?�+���@?�k�?y4k�?q�[Ek�?i+h@4�ǔŪ4+h48� �4�k�?�4�\�k�?�4+h48� �7�4ɐ?  �k�?�k�?�K�4�k�?�K�4��[	-k�?�4+h48� �4�k�?�4�\k�?�4+h48� �4�k�?�4�\�k�?�4+h48� �7�5Y�t `�k�?�k�?�K�5Qk�?�K�5Q�[k�?�4+h48� �4�k�?�4�\k�?�4+h48� �4�k�?�4�\�k�?�4+h48� �7�5)�� ��k�?�k�?�K�5!k�?�K�5!�[�k�?�4+h48� �4�k�?�4�\�k�?�4+h48� �4�k�?�4�\�k�?�4+h48� �7�6	�?  �k�?�k�?�K�6k�?�K�6�[�k�?�4+h48� �4�k�?�4�\�k�?�4+h48� �4�k�?�4�\�k�?�4+h48� �7�5��t `�k�?�k�?�K�5�k�?�K�5��[�k�?�4+h48� �4�k�?�4�\�k�?�4+h48� ��[�@47�8ѓ �4k�?�4k�?�7�3a�� ��k�?�k�?�7�5��?  �k�?qk�?yK�5�k�?iK�5�k�?a�[}k�?YK�5�����@�_��k�<�K�<� �4@S��
�k�=c�=	4
K�5���7�=� ���k�?�K�<�?  �k�?�k�?��_�k�?y47�8ѓ �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�K�<�4?�� ��k�?qk�?yK�<�J�k�?iK�<�J�k�?a�[�k�?Y47�8ѓ �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4@k�?y4k�?q�[�k�?i47�8ѓ �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�6i�� ��k�?qk�?yK�6ak�?iK�6ak�?a�[mk�?Y47�8ѓ �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�+���H?�k�?y4k�?q�[
k�?i47�8ѓ �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�#�P7��t `�k�?qk�?y4k�?i4k�?a�[
k�?Y47�8ѓ �4k�?�K�3ak�?�7�3a�t `�k�?�k�?�7�5��� ��k�?qk�?yK�5�k�?iK�5�k�?a�[Ek�?Y�_q@�2+���@3.�t���D��#���C��"���B��!���A�� ��� ��4(k�8�"�P6� H?H3k�8�H4k�8�H5k�8�H6 k�8���k�8�4(k�8�#�P7�HJtJuk�8�Jvk�8�Jak�8�J k�8��Hk�8�4(k�8�"�P6�pJ�J�k�8�J�k�8�J�k�8�J� k�8���k�8�4(k�8�"�P6��H?H3k�8�H4k�8�H5k�8�H6 k�8��Xk�8�4(k�8�#�P7��JtJuk�8�Jvk�8�Jak�8�J k�8���k�8�4(k�8�"�P6��J�J�k�8�J�k�8�J�k�8�J� k�8��hk�8�4(k�8�"�P6�H?H3k�8�H4k�8�H5k�8�H6 k�8���k�8�4(k�8�#�P7�8JtJuk�8�Jvk�8�Jak�8�J k�8��xk�8�4&k�8�"�P6�`J�J�k�8�J�k�8�J�k�8�J� k�8�7�8��3k�<�K�8�K�<��7�<�?7�8���XK�<�
�k�<�k�?!4@VҶ
�k�?Ac�?I4
47�?A� ���k�?�7�?!�t `�k�?�k�?��_�k�?yK�?!K�<��7�<�?7�?)��	XK�<�
�k�<�K�<�v��7�8����7�<�4Hk�3a4+h48� �7�8ِ?  �k�?�k�?�K�8�k�?�K�8��[�k�?�4+h48� ��[�@K�5���+h49����7�5�k�:�+���46�J�J�+���44�j�J�j�J� j�j� +���4:��\�7�4�+���4?�K�K�+���45�j�K�j�K� j�j� +���4:��\7�5Q+���4?�K�K�+���45�j�K�j�K� j�j� +���4:��\�7�5!k�<�K�4�K�<��7�<�
t7�4���XK�<�
�k�<�K�<�?4\7�<����6k�<�K�5QK�<�?7�<��7�5Y��
iXK�<�
uk�<�K�<�?4\7�<����6k�<�K�5!K�<�?7�<��7�5)���XK�<�
�k�<�K�<� w��87�6���7�<�+���H?@k�<�+���H3@�bo4k�3YK�3Y��p��G����+���4!P
���
ak�<�+hH50��+hh60K�<�H:�\=7�=K�=��7�3����7�=k�3�47�3� �4k�?�4k�?�7�3a�� ��k�?�k�?�K�<�D?k�?y4k�?q�[ek�?ik�6�k�3�K�<�J�k�3�K�3���!�K�<�@? ��!zK�<�Jz�\�7�=K�=��7�3���
a7�=+h@5�����\-K�3�+hH6H�� �47�6�� �4�k�?�4k�?�7�3a�t `�k�?�k�?�"�P6���� ��k�?qk�?y4"k�?i4"k�?a�[�k�?Y�"+hH4HJ��\7�6�k�4K�<�F��� �47�4� �4k�?�4k�?�7�3a�t `�k�?�k�?�K�<�F�k�?y4k�?q�[�k�?i+���@?.���K�<�By K�<�B�"K�<�F�K�<�F��?�k�?��^�7�=K�=�x7�4q���7�=47�:� �4k�?�4k�?�7�3a�� ��k�?�k�?�4@k�?y4k�?q�[�k�?i47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�3ɓ� ��k�?qk�?y4k�?iK�3�k�?a�[�k�?Y47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4@k�?y4k�?q�[�k�?iK�<�F��\�7�=K�=K�=	k�=!K�=k�=)k�=147�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�=)�� ��k�?qk�?y4k�?iK�=!k�?a�[�k�?YK�<�F��\�7�=K�=K�=	k�=!K�=k�=)k�=147�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�=)�� ��k�?qk�?y4k�?iK�=!k�?a�[�k�?Y47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4@k�?y4k�?q�[�k�?i47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�4y�� ��k�?qk�?yK�4qk�?iK�4qk�?a�[�k�?Y47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4?�Ha?�
�t�� G�78���k�?y4
k�?q�[k�?i47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4Pk�?y4k�?q�[�k�?i47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�6	�� ��k�?qk�?yK�6k�?iK�6k�?a�[ik�?Y47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4Rk�?y4k�?q�[Qk�?i47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�4@k�?y4k�?q�[�k�?i47�:� �4k�?�K�3ak�?�7�3a�� ��k�?�k�?�7�6ɒ� ��k�?qk�?yK�6�k�?iK�6�k�?a�[yk�?Y4+h48� �7�:钕 ��k�?�k�?�K�:�k�?�K�:��[	k�?�4+h48� ��[Q@K�<�K�3Y� K�3Y���
k�3Y4?�Ha?�
�t�� G�78���+hh4�+h@5�ǵ��4+h48� �"�P6�ؐ?  �k�?�k�?�4.k�?�4.�[�k�?�4+h48� ��[@Hb?�4~�@�O�?��@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�7�k�=�k�=�k�=�+h@5�ǵ��4+h48� �"�`6��?  �k�?�k�?�4"k�?�4"�[)k�?�4+h48� ��[q@k�>4�k�>!K�=�6���?  �k�>qk�>yk�?4�k�>)K�=��� ��k�>�k�>�k�?4�k�>1K�=�4?�� ��k�>�k�>�k�?!4�k�>9K�=�6��� ��k�>�k�>�k�?)4�k�>AK�=�6t�� ��k�>�k�>�k�?14�k�>IK�=�4? �� ��k�>�k�>�k�?94Xk�>QK�=�6�(�� ��k�>�k�>�k�?Ak�>Y47�>7�>!7�>q7�?k�?�k�?�4?�K�=�
tt���G�7u8
��J�J�k�?ak�?iK�?aK�?ik�?�k�?��[�k�?yK�>�� K�=�K�>����4�k�>!K�=�6t�� ��k�>qk�>yk�?4�k�>)K�=�4?8�� ��k�>�k�>�k�?4�k�>1K�=�6�X�� ��k�>�k�>�k�?!4�k�>9K�=�6tx�� ��k�>�k�>�k�?)4�k�>AK�=�4?��� ��k�>�k�>�k�?14�k�>IK�=�6���� ��k�>�k�>�k�?94�k�>QK�=�6t��� ��k�>�k�>�k�?Ak�>Y47�>7�>!7�>q7�?k�?�K�=�H?k�?�k�?��_�k�?�K�>�`#RK�=�K�>��4+h48� �"�`6�8�?  �k�?�k�?�40k�?�40�Zk�?�4+h48� �K�>k�?�4�Z�k�?�4+h48� ��Z�@4k�>4+h48� �#�`7�h�t `�k�?�k�?�4k�?�4�Z�k�?�4+h48� �K�>k�?�4�Z�k�?�4+h48� �"d`6t��� ��k�?�k�?�4k�?�4�Zk�?�4+h48� �K�>��w���G�7�?	 �k�?�4�Z�k�?�4+h48� ��Z�@K�>�� K�>�?��k�>+h@3�ǳ��4+h48� �"�`6���� ��k�?�k�?�4 k�?�4 �Z�k�?�4+h48� ��Z�@K�=��@�7�>�@(�_K�?�K�?�8 �@ K�?�k�?�o�7�?�(b 4>�hz?�+h@3�ǳ��4+h48� �"�`6���� ��k�?�k�?�4Nk�?�4N�Z]k�?�4+h48� ��Z�@4c�?Q+���h (Kt@k�?YKu@��q�4k�?9k�?A4+���h? Hs?�4t�4�+���h5�+���46 �� ��+���h?�+���h6�+���h �+���h �k�?I+h@3�Ǔ�B4+h48� �"�`6��� ��k�?�k�?�4$k�?�4$�Z�k�?�4+h48� �K�?Ik�?�4�Zuk�?�4+h48� �+���H5�k�?�4�Zk�?�4+h48� �+���H!�k�?�4�Z�k�?�4+h48� �4?�K�?9
tt���G�7u8
��J�J�k�?�k�?�4�[
k�?�4+h48� ��Z=@47�?I+���48�+���47�+���44�k�?�k�?�4?�K�?9
�t���G�7a86�K�K�k�?ak�?iK�?aK�?ik�?�k�?��[Mk�?y+h@!�ǁ�B4+h48� �#�`7�8�t `�k�?�k�?�4$k�?�4$�ZUk�?�4+h48� �K�?Ik�?�4�ZEk�?�4+h48� �+���H3�k�?�4�Z�k�?�4+h48� �+���H5�k�?�4�Z�k�?�4+h48� �4?�K�?9?t���G�7s8
�J�J�k�?�k�?�4�[�k�?�4+h48� ��Z
@K�?I�� +���H3��`%�Ht?�"�@6���+h@!�ǁł4+h48� �#�`7�`�t `�k�?�k�?�44k�?�44�Z�k�?�4+h48� �G�?M�?�k�?�4�Z�k�?�4+h48� �"�`6���� ��k�?�k�?�4k�?�4�Z�k�?�4+h48� �G�?I�t�k�?�4�Z�k�?�4+h48� �"�`6���?  �k�?�k�?�4k�?�4�Z
�k�?�4+h48� �K�?Ik�?�4�Z
�k�?�4+h48� ��Z
�@4+h48� � $`4?��� ��k�?�k�?�44k�?�44�Z�k�?�4+h48� �+���D6����k�?�4�Z�k�?�4+h48� �"d`6t� ��k�?�k�?�4k�?�4�Zk�?�4+h48� �+���D?����k�?�4�Z�k�?�4+h48� �"�`6��� ��k�?�k�?�4k�?�4�Z5k�?�4+h48� �+���H4�k�?�4�Zk�?�4+h48� ��Z%@k�?A"�`6��+���49���=48K�?9+���49��_]7�?AK�?A� #�G�?A���4?łt ��4+h48� �"�`6��� ��k�?�k�?�4k�?�4�Z	�k�?�4+h48� �4?�K�?9
�t���G�7v8���k�?�4�Z	Mk�?�4+h48� �"�`6� �� ��k�?�k�?�4
k�?�4
�Z�k�?�4+h48� ��Z�@�
4+h48� �"d`6t0�� ��k�?�k�?�4k�?�4�Z�k�?�4+h48� �G�?A���k�?�4�Z�k�?�4+h48� �"�`6�H�� ��k�?�k�?�4&k�?�4&�Z�k�?�4+h48� �4?�K�?9
�t���G�7v8���k�?�4�Z�k�?�4+h48� ��Z�@��+���H4 ��@�C�?Q���c�?Q+h@6��V�2K�?9+���49 +����\
48��*K�?9+���49 +����^�48�K�?YK�?9�� K�?9�t�}k�?9C�?Q���Hv?�  �4?��+h@3�ǳ��4+h48� �"�`6�p�� ��k�?�k�?�4Lk�?�4L�Z�k�?�4+h48� ��Z�@Hb?�4~�@�O�?��@(�_K�?�K�?�8 �@ K�?�k�?�7��+h@3�ǳ��4+h48� �"�`6��� ��k�?�k�?�4
k�?�4
�ZMk�?�4+h48� ��Z�@4+h48� �"d`6t �� ��k�?�k�?�4&k�?�4&�Z�k�?�4+h48� ��Z�@4+h48� �#�`7�H�t `�k�?�k�?�44k�?�44�Z�k�?�4+h48� ��Z%@4+h48� � $`4?��� ��k�?�k�?�4Hk�?�4H�Z%k�?�4+h48� ��Zm@4+h48� �"�`6�Ȑ?  �k�?�k�?�4Zk�?�4Z�Zmk�?�4+h48� ��Z�@4+h48� �"�`6�(�� ��k�?�k�?�4"k�?�4"�Z�k�?�4+h48� ��Z�@4+h48� �"�`6�P�� ��k�?�k�?�4&k�?�4&�Z�k�?�4+h48� ��ZA@4+h48� �"d`6tx�� ��k�?�k�?�4*k�?�4*�ZAk�?�4+h48� ��Z�@4+h48� �#�`7���t `�k�?�k�?�4.k�?�4.�Z�k�?�4+h48� ��Z�@4+h48� � $`4?ؓ� ��k�?�k�?�4*k�?�4*�Z�k�?�4+h48� ��Z@4+h48� �"�`6�	�?  �k�?�k�?�4Fk�?�4F�Zk�?�4+h48� ��Za@4+h48� ��Z)@4+h48� �"�`6�	P�� ��k�?�k�?�4,k�?�4,�Z)k�?�4+h48� ��Zq@4+h48� �"�`6�	��� ��k�?�k�?�4&k�?�4&�Zqk�?�4+h48� ��Z�@4+h48� �"d`6t	��� ��k�?�k�?�4&k�?�4&�Z�k�?�4+h48� ��Z@4+h48� �#�`7�	Вt `�k�?�k�?�4&k�?�4&�Zk�?�4+h48� ��ZI@4+h48� ��Z@4+h48� � $`4?	��� ��k�?�k�?�42k�?�42�Zk�?�4+h48� ��ZY@4+h48� �"�`6�
0�?  �k�?�k�?�4Jk�?�4J�ZYk�?�4+h48� ��Z�@4+h48� �"�`6�
��� ��k�?�k�?�40k�?�40�Z�k�?�4+h48� ��Z�@4+h48� �"�`6�
��� ��k�?�k�?�48k�?�48�Z�k�?�4+h48� ��Z1@4+h48� ��Z�@4+h48� �"d`6t
蒕 ��k�?�k�?�4.k�?�4.�Z�k�?�4+h48� ��ZA@4+h48� �#�`7��t `�k�?�k�?�4lk�?�4l�ZAk�?�4+h48� ��Z�@4+h48� � $`4?��� ��k�?�k�?�4jk�?�4j�Z�k�?�4+h48� ��Z�@4+h48� ��Z�@4+h48� �"�`6���?  �k�?�k�?�40k�?�40�Z�k�?�4+h48� ��Z�@4+h48� �"�`6�(�� ��k�?�k�?�4(k�?�4(�Z�k�?�4+h48� ��Z)@4+h48� �"�`6�P�� ��k�?�k�?�4"k�?�4"�Z)k�?�4+h48� ��Zq@4+h48� ��Z9@4+h48� �"d`6tx�� ��k�?�k�?�44k�?�44�Z9k�?�4+h48� ��Z�@4+h48� �#�`7���t `�k�?�k�?�4Jk�?�4J�Z�k�?�4+h48� ��Z�@4+h48� � $`4?
�� ��k�?�k�?�4\k�?�4\�Z�k�?�4+h48� ��Z@4+h48� �"�`6�
`�?  �k�?�k�?�4rk�?�4r�Zk�?�4+h48� ��ZY@4+h48� �"�`6�
ؒ� ��k�?�k�?�4zk�?�4z�Z
Yk�?�4+h48� ��Z
�@4+h48� �"�`6�X�� ��k�?�k�?�4nk�?�4n�Z�k�?�4+h48� ��Z�@4+h48� �"d`6tȒ� ��k�?�k�?�4lk�?�4l�Z�k�?�4+h48� ��Z1@4+h48� �#�`7�8�t `�k�?�k�?�4pk�?�4p�Z1k�?�4+h48� ��Zy@4+h48� � $`4?��� ��k�?�k�?�4rk�?�4r�Z
yk�?�4+h48� ��Z
�@4+h48� �"�`6� �?  �k�?�k�?�4pk�?�4p�Z	�k�?�4+h48� ��Z
	@4+h48� �"�`6���� ��k�?�k�?�4fk�?�4f�Z		k�?�4+h48� ��Z	Q@4+h48� �"�`6���� ��k�?�k�?�4^k�?�4^�ZQk�?�4+h48� ��Z�@4+h48� �"d`6tX�� ��k�?�k�?�4vk�?�4v�Z�k�?�4+h48� ��Z�@4+h48� �#�`7�Вt `�k�?�k�?�4jk�?�4j�Z�k�?�4+h48� ��Z)@4+h48� ��Z�@+h@!�ǡ��4+h48� �#�`7�@�t `�k�?�k�?�4k�?�4�Z�k�?�4+h48� ��Z!@K�?Y�@�7�?��@(�_K�?�K�?�8 �@ K�?�k�?�7�g�=�k�=�+h@!�ǡ��4+h48� �#�p7�P�t `�k�?�k�?�4$k�?�4$�Z�k�?�4+h48� ��Z�@k�>K�=�4?�4�k�>17�>�� ��k�>�k�>�k�?!k�>9k�>!+h@6�ǖ�B4+h48� � $p4?x�� ��k�?�k�?�4$k�?�4$�ZYk�?�4+h48� �K�>!k�?�4�ZIk�?�4+h48� �K�>1k�?�4�Z�k�?�4+h48� �K�>k�?�4�Z�k�?�4+h48� �K�?!k�?�4�ZYk�?�4+h48� �G�=�k�?�4�Z	k�?�4+h48� ��Z@47�>!7�>17�>�7�?!k�?�G�=�k�?�VAk�?�k�?��Z�k�?y+h@?�ǟ�B4+h48� �"dp6t��� ��k�?�k�?�4$k�?�4$�Z�k�?�4+h48� �K�>!k�?�4�Zyk�?�4+h48� �K�>1k�?�4�Z)k�?�4+h48� �K�>k�?�4�Y�k�?�4+h48� �K�?!k�?�4�Y�k�?�4+h48� �G�=�k�?�4�Y=k�?�4+h48� ��YE@K�>!�� 
K�?!� %�k�>K�=�"p@6t��+h@5�Ǖ�j4+h48� �"�p6�ؐ?  �k�?�k�?�44k�?�44�Y�k�?�4+h48� �G�>%Ҷ�k�?�4�Y�k�?�4+h48� �#�p7��t `�k�?�k�?�4k�?�4�Y
k�?�4+h48� �G�>!�?�k�?�4�Y�k�?�4+h48� �"�p6� �� ��k�?�k�?�4k�?�4�Y5k�?�4+h48� �K�>!k�?�4�Y%k�?�4+h48� ��Y-@4+h48� �"�p6�0�� ��k�?�k�?�44k�?�44�Y-k�?�4+h48� �G�?%ҕ�k�?�4�Yk�?�4+h48� � $p4?h�� ��k�?�k�?�4k�?�4�YUk�?�4+h48� �G�?!���k�?�4�Y=k�?�4+h48� �"dp6tx�� ��k�?�k�?�4k�?�4�Y}k�?�4+h48� �K�?!k�?�4�Ymk�?�4+h48� ��Yu@K�>k�>+h@5�ǵ��4+h48� �"�p6���?  �k�?�k�?�4"k�?�4"�YMk�?�4+h48� ��Y�@K�>K�=��@�7�>�@(�_K�?�K�?�8 �@ K�?�k�?�7�k�=�k�=�+h@5�ǵ��4+h48� �"�p6���?  �k�?�k�?�40k�?�40�Yk�?�4+h48� ��YM@k�>)4�k�>A7�>)�� ��k�>�k�>�k�?1k�>Ik�>1+h@?�ǟ�B4+h48� �"dp6t�� ��k�?�k�?�4 k�?�4 �Y�k�?�4+h48� �K�>1k�?�4�Y�k�?�4+h48� �K�>Ak�?�4�Y}k�?�4+h48� �K�>)k�?�4�Y-k�?�4+h48� �K�?1k�?�4�Y�k�?�4+h48� �K�=�k�?�4�Y�k�?�4+h48� ��Y�@47�>17�>A7�>�7�?1k�?�K�=�k�?�k�?��^�k�?�+h@?�ǟ�B4+h48� �"dp6t0�� ��k�?�k�?�4 k�?�4 �Y%k�?�4+h48� �K�>1k�?�4�Yk�?�4+h48� �K�>Ak�?�4�Y�p@p@a*K�r���e�A���0pp����k�?�4+h48� �K�>)k�?�4�Yuk�?�4+h48� �K�?1k�?�4�Y%k�?�4+h48� �K�=�k�?�4�Y�k�?�4+h48� ��Y�@K�>1��#Bk�>)G�>1�?�4?Ƀ� �"K�=�"�6�� ��K�=�#�@7�3�+h@4�ǔ²4+h48� �"�p6�P�� ��k�?�k�?�40k�?�40�Y=k�?�4+h48� �G�>5ҕ�k�?�4�Y%k�?�4+h48� � $p4?��� ��k�?�k�?�4k�?�4�Yek�?�4+h48� �G�>1���k�?�4�YMk�?�4+h48� �"dp6t��� ��k�?�k�?�4k�?�4�Y�k�?�4+h48� �K�>1k�?�4�Y}k�?�4+h48� ��Y�@֟K�>)
�t���@g�>!+h@6�Ƕ��4+h48� � $p4?��� ��k�?�k�?�4.k�?�4.�Y
Ek�?�4+h48� ��Y
�@G�>!K�=��@�7�>�@(�_K�?�K�?�8 �@ K�?�k�?�7�g�>�k�>�+h@6�Ƕ��4+h48� � $p4?��� ��k�?�k�?�4&k�?�4&�Y�k�?�4+h48� ��YE@k�?ik�?qG�>��_MK�>�k�?iK�>�J�#�pK�0�a K�?i�_�K�>�k�?q֟K�?q
�t���@g�?a+h@6�Ƕ��4+h48� � $p4?�� ��k�?�k�?�4$k�?�4$�Y
�k�?�4+h48� ��Y
�@G�?aK�>��@�7�?�@(�_K�?�K�?�8 �@ K�?�k�?�7�g�=�k�=�+h@6�Ƕ��4+h48� � $p4?@�� ��k�?�k�?�4Fk�?�4F�Y	Ek�?�4+h48� ��Y	�@G�=��_EK�=�k�>K�=�J�#�pK�0�a#k�>!"�p6�@7y@��e�R4$k�>17v@�� ��k�>�k�>�k�?!k�>947�>!7�>17�>�7�?!k�?�K�>k�?�TUk�?�k�?��Z9k�?yK�>!��"K�=�#�@7�3�+h@4�ǔ��4+h48� �"�p6���� ��k�?�k�?�44k�?�44�Yk�?�4+h48� �G�>%ҕ�k�?�4�Y�k�?�4+h48� � $p4?Г� ��k�?�k�?�4k�?�4�Y=k�?�4+h48� �G�>!���k�?�4�Y%k�?�4+h48� ��Y-@+h@3�Ǔ�
�Z�@+h@4�Ǵ��4+h48� �"�p6���� ��k�?�k�?�4Dk�?�4D�Y�k�?�4+h48� ��Y5@K�=��@�7�>�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!@H4 k�?���$�@k�?�7�k�>�+h@4�Ǵ��4+h48� �"�p6�P�� ��k�?�k�?�4k�?�4�Yuk�?�4+h48� ��Y�@+h@4�ǔ�b4+h48� �4Dk�?�4�Zk�?�4+h48� �K�>�4?�� ��k�?�k�?�K�>�J�k�?�K�>�J��YEk�?�4+h48� �4Dk�?�4�Z5k�?�4+h48� ��Y=@K�>�J���A�K�>�J�4?t�K�>�Bt��0F4c�?5C�?5����K�>�H?4�t�K�>�B�
4��� :K�>�H?4�t�K�>�B�
4��� *K�>�H?��@4�c�?Yc�?YC�?Y��c�?3K�>�J�4
�t�K�>�C�4��� :K�>�J�4
�t�K�>�C�4��� 4�c�?Yc�?YC�?Yc�?3�c�?3C�?3���*C�?5��tk�?9K�?9k�?QK�?QK�>�H?��`�K�?Q�`G�K�>�J�
�t�K�>�
v@?4r��@*4^��@�4�c�?Yc�?YC�?Y���K�?Q�?�-k�?QK�?QK�>�J���`4�c�?3c�?3C�?3����4K�>�� �4Fk�?�K�?9k�?�7�?A�� ��k�?�k�?�7�?I�� ��k�?qk�?y�_Uk�?iK�?I�bߊ@4�c�?3c�?3C�?3c�?1+h@6�Ƕ��4+h48� � ,p4?p�� ��k�?�k�?�4k�?�4�Y�k�?�4+h48� ��Y@C�?1K�>��@�7�?�@(�_K�?�K�?�8 �@ K�?�k�?�7�k�>�+h@6�Ƕ��4+h48� � ,p4?��� ��k�?�k�?�4,k�?�4,�Y�k�?�4+h48� ��Y�@+h@6�ǖ�b4+h48� �4Dk�?�4�Z
5k�?�4+h48� �K�>�6t�� ��k�?�k�?�K�>�J�k�?�K�>�K��Yak�?�4+h48� �4Dk�?�4�Z	Uk�?�4+h48� ��YY@k�?IK�>�J�4?t�K�>�Bt��0F4����k�?AK�?A����`G�K�>�J�
�t�K�>�
v@?��0�4֓����w���@C�?I���c�?I4K�>�� �4Fk�?�K�?Ak�?�7�?9�t `�k�?�k�?�7�?Q��k�?qk�?y�_�k�?i�?K�?Q?t���@G�?I�g�?IK�?Ik�?1+h@5�Ǖ�4+h48� �C�?I��>#�p7�a �"�p6�
�4?�� ��k�?�k�?�C�?Iҕ>"�p6�5 �"lp6t� Ҷ�k�?�C�?I�?>"lp6t� �"�p6�5 ����Y�k�?�4+h48� �4@k�?�4�Z�k�?�4+h48� �G�?I���k�?�4�YQk�?�4+h48� ��YY@+h@3�ǳ��4+h48� �"�p6���� ��k�?�k�?�4*k�?�4*�YAk�?�4+h48� ��Y�@K�?1K�>��@�7�?�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�o�7�?�(h4>U+���49=Y���4+���43=Yhs?�hu?�+h@4�Ǵ��4+h48� �"�p6�p�� ��k�?�k�?�4(k�?�4(�Yik�?�4+h48� ��Y�@4+����_e`4?qZ�_
�Hy?�+���h<?y"�p6��+���49?�����R+���h ?�+���H6=Yk�?i+���H!=Y�"c�4+���h??i+h@3D��@�+���H4?i��w���G����+���46=a� �+���H3?y� *+���@4?q���
+���` ?q��+���H5?i��w���G����+���4!=a6 ��_�Hy?�+���d<?uH?�K�"�pJ���� J+���H6?i��w���G����+���43=a ���t�+���D:?u�_�Hy?�Hu?�J� 4pH?���!jKs@k�?qKt@��a4+���h5?a+���H6?�+���H!?a64?�
t���G�4?�+���H5?a
�t���G�7v8
��H3H4+���45?y
������K�?q+���H3?a� *+���H4?a��+����h5?a+���H6?�+���H!?a6+���h??�K�?i+���H4?i�� *+���H5?i��+�����h6?i7y@+���4:?�����RHa?�H?"tpJt��� :+���@5?q��@"Hv?� 0�4?����Ks@�`@Ht?�4�X��Kv�� "Ha?�#�7�� 3�Ht?�"��6���+h@!�ǡ��4+h48� �#�p7���t `�k�?�k�?�4&k�?�4&�Y
1k�?�4+h48� ��Y
y@Hb?�4~�@�O�?��@(�_K�?�K�?�8 �@ K�?�k�?�o��V7�(���A47�(�k�(9k�(1+h@?�ǿ��4+h48� �"tp6tВ� ��k�?�k�?�4 k�?�4 �Y�k�?�4+h48� ��Y	@K�(�k�?K�(��bcB4k�=K�=��w���G����7�)
���
a7�(�6�PKX?����]7�?q7�(�KX?����]�_�7�?!����K�=�`w��`G�K�=��w���G����7�)
���
a7�(�6�PKX?���]7�?q7�(�KX?����]�_
�7�?!7�=
������K�(1#�@7�3�4+h48� �K�=��w���G����7�)
����6t�� ��k�?�k�?�K�=��w���G����7�)!����k�?�K�=��w���G����7�)!�����Y�k�?�4+h48� ��Y�@K�?K�=�6 K�=����k�=K�(1J�"�pJ��5 "K�=k�=7�=�_eK�(1+h@3�ǳ��4+h48� �"�p6�� ��k�?�k�?�4k�?�4�Y9k�?�4+h48� ��Y�@K�(Y�@�O�(��@��_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!	H4 k�?���$�@Ka?�k�?�4!@H4 k�?���$�@k�?�7�k�$�+h@3�ǳ��4+h48� �"�p6� �� ��k�?�k�?�4&k�?�4&�YAk�?�4+h48� ��Y�@k�'A4k�%K�%��w���G�7�&�
���5��7�K�%4��� K�%����k�%#�p7�	`JtJuk�;QJvk�;YJak�;ak�;i47�;Q� �7 �� ��k�?�k�?��_k�?�"�pJ�	`
�k�%Ka �?k�%!4k�%K�%��wᲀG����"�p6��
���
aJ�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7s �t `�k�?�k�?��_�k�?�K�%��wᲠG�+h46�
��<�K�%��w��G�+h43� �K�%��`rK�%��w��G�+h4!�6 �K�%!�@2K�%��wᲀG�+h45�� �k�%!K�%4 �� K�%�t��k�%+h@5�Ǖ��4+h48� �"�p6�H�?  �k�?�k�?�4k�?�4�Y�k�?�4+h48� �K�%k�?�4�Y�k�?�4+h48� � 4p4?`�� ��k�?�k�?�4k�?�4�Yk�?�4+h48� �K�%!k�?�4�Yk�?�4+h48� ��Y	@k�%1K�%��G�Ks ���K�%!K�%6�@
�t�K�%��7t 
t4��7�%1
������`v���k�;IK�%1K�;I��@
K�;Ik�%1k�;Qk�=a47�%1� ��?k�?�7�=a�� ��k�?�k�?��[�k�?y47�=a� �֟k�?�7�;Q�� ��k�?�k�?��_Uk�?yK�;Q� v�87�%1��e7�;Q+h@?�ǟ�z4+h48� �"tp6t��� ��k�?�k�?�4k�?�4�X�k�?�4+h48� �7�%9�� ��k�?�k�?�K�%1k�?�K�%1�X�k�?�4+h48� �4Dk�?�4�Zqk�?�4+h48� ��X}@4k�%K�%1�`B�4@Uҕ
�k�;Qc�;Y47�;Q� �7�%1�?  �k�?�k�?��_�k�?�k�%	K�%	�` K�%1��k�%	4��7�%1?K�%	�x��@K�%��w���G�7�&�
���54�t
�������w���5k�;IK�%� w�� G�7�&�!����K�;I��@BK�%� w�� G�K�;I7�&�!��
���K�%	K�%1��`
K�%1k�%	4K�%	47�%1�� ��k�?�k�?��_Ek�?�K�%��k�%K�%1��]m@K�%�b K�$�"�6���K�%�?�k�'A+h@3�Ǔ�JK�'Ak�;IK�'A��b*4k�%4+h48� �4Dk�?�4�Z�k�?�4+h48� �K�%�`w��`G�7�&�
s��
�4?�� ��k�?�k�?�K�%��w���G�7�&�
�����k�?�K�%�`w��`G�7�&�
s�����XUk�?�4+h48� �4Dk�?�4�ZAk�?�4+h48� ��XM@K�;IK�%�� K�%����k�%K�$�K�"�pJ�h�� 7�'A�_	�K�$�+h@6�Ƕ��4+h48� � 4p4?��� ��k�?�k�?�4$k�?�4$�X�k�?�4+h48� ��X@K�$��@�7�%�@(�_K�?�K�?�8 �@ K�?�k�?�7��k�89+h@6�Ƕ��4+h48� � 4p4?p�� ��k�?�k�?�4&k�?�4&�X�k�?�4+h48� ��X�@+h@6���+h`?Pk�9"tp6t�J�J�k�;AJ�k�;IJ� k�;Qk�;Y47�;A� �7s �t `�k�?�k�?��_�k�?�"�pJ��
�k�8�K k�9	4k�8�K�8ᲀwᲀG����"�p6�x
���
aJ�J�k�;AJ�k�;IJ�k�;Qk�;Y47�;A� �7s �t `�k�?�k�?��_�k�?�K�8ᲠwᲠG�+h46�
��<�K�8��w��G�+h43� �K�8���`rK�8��w��G�+h4!�6 �K�9	�@2K�8ᲀwᲀG�+h45�� �k�9	K�8�4 �� K�8�t��k�8�+h@5�Ǖ��4+h48� �"�p6���?  �k�?�k�?�4k�?�4�X�k�?�4+h48� �K�8�k�?�4�X�k�?�4+h48� � 4p4?��� ��k�?�k�?�4k�?�4�X�k�?�4+h48� �K�9	k�?�4�X�k�?�4+h48� ��X�@k�91K�9	Ks � K�9	��k�9	K�8���G�Ka 
���K�9	K�8�
��@
xt�K�8���7 ?4�t7�91
������ v��k�;AK�91K�;A�@
K�;Ak�91k�;Ak�=Q47�91� �ֿk�?�7�=Q�� ��k�?�k�?��Z}k�?y47�=Q� ���k�?�7�;A�t `�k�?�k�?��_�k�?yK�;A��v��7�91���7�;A+h@6�ǖ�z4+h48� � 4p4?ȓ� ��k�?�k�?�4k�?�4�X}k�?�4+h48� �7�99�� ��k�?�k�?�K�91k�?�K�91�Xk�?�4+h48� �4Dk�?�4�Y�k�?�4+h48� ��X�@K�91��@�47�91� �4k�?�4k�?�7�8�t `�k�?�k�?�7�9�� ��k�?qk�?y�_ik�?i�K�89#�7�3�K�9��`K�94?���`K�89#��7�3�K�89J�"�pJ��5$��_q@Z�^�K�89k�9��K�9�t��@@�^�K�89k�9!+h@3�Ǔ�24+h48� �"�p6�蒶 ��k�?�k�?�4k�?�4�X	5k�?�4+h48� �K�9k�?�4�X	%k�?�4+h48� ��X	-@4+h48� �"�p6��� ��k�?�k�?�4k�?�4�X-k�?�4+h48� �K�9!k�?�4�Xk�?�4+h48� ��X%@4+h48� �"�p6�(�?  �k�?�k�?�4k�?�4�X%k�?�4+h48� �+h@5Dk�?�+h@6D�6�?
�Z�k�?�4+h48� ��X�@+h@3D��@:K�9K�9!�� "K�89 0�4?����K�9�Y�K�89K�89Jt"�pJ��� "+hh 8K�9�a�4+hh?8+h@3�ǳ��4+h48� �"�p6�H�� ��k�?�k�?�4$k�?�4$�X
k�?�4+h48� ��XU@K�8Y�@�7�8��@(�_K�?�K�?�8 �@ K�?�k�?�7��4+h48� �"tp6t�� ��k�?�k�?�40k�?�40�X�k�?�4+h48� �#�p7�@�t `�k�?�k�?�4k�?�4�Xuk�?�4+h48� ��X�@4+h48� ��X�@K�?Y�@�7�?��@(�_K�?�K�?�8 �@ K�?�k�?�7�+h@!�ǡ��4+h48� �#�p7�`�t `�k�?�k�?�4 k�?�4 �X
k�?�4+h48� ��XU@+h@!���@+h@?���R+h@3����
�_�@+h@4���
�]e@���Y�@4k�?y+h@6��6@"+hH!�#�pK���a "�_)@Z�^�7�?y+h@4��T�
�_m7�?y+h@5��u�
�_�7�?y+h@6��V�
�Y�7�?y�Y	@K�?y#�pK���a K�?y�X�Ky�BKt@��A2+h@5P���*��KzH
�t��Xm�@@���]u7�?yK�?y#�pK���a BK�?y�XY+h@4�ր?+h�P`4�k�=q7�=qKx@+hH70+hH58k�?��X�Y+h@6����
�\�@+h@!�ǡ��4+h48� �#�p7���t `�k�?�k�?�4k�?�4�Xk�?�4+h48� ��Xa@K�<��@�7�=�@(�_K�?�K�?�8 �@ K�?�k�?�7�+h@!�ǡ��4+h48� �#�p7���t `�k�?�k�?�4k�?�4�X�k�?�4+h48� ��X1@+hh �`�4+hh?�"tp6t�J�+h46�j�_S+hh?0+hh38k�=q+h` P7�=qk�?�YX�X�W+h@4�Ǵ��4+h48� �"�p6���� ��k�?�k�?�4k�?�4�XAk�?�4+h48� ��X�@K�<��@�7�=�@(�_K�?�K�?�8 �@ K�?�k�?�7�KTKUk�;KVk�;KAk�;!k�;)7�;k�:�+h@3�ǳ��+h@4B����4+h48� �"�@6� �� ��k�?�k�?�4k�?�4�X�k�?�4+h48� ��X�@k�=a4@Uҕ
�k�?ac�?i4
47�?a� ��?k�?�7�=a�� ��k�?�k�?��\�k�?yK�=a��v��7�;A��q7�=a47�;� �7u �� ��k�?�k�?��_�k�?�K�;<k�=Qk�=YK�=QK�=Y
�Kv ��a*K�=QK�=Y��`G�Kt 
�t�7u&� ���4��?@2� `*"u@6tP�5E� �a@�@�K�=Y�?��G�K�;A
t�K�=QK�=Y
���G�Ka 6t�7s&v 7�;G��K�=Y�?��k�=YK�=Y�`@�`vk�;A"�@6��K�;A4�� 84C�;IC�� 4��)7�;IS8�4c�;1+h@?�ǿ��+h@3B����4+h48� �"�@6�h�� ��k�?�k�?�4k�?�4�X�k�?�4+h48� ��X�@C�;1K�:��@�7�;�@(�_K�?�K�?�8 �@ K�?�k�?�7�Ks0k�?qk�?aK�?a��wò�@6�;�ҶEҡ�� �a@������4+h48� �K�?a��wò�@"�@6��� �#�@7��36��� ��k�?�k�?�K�?a� wð @#�@7��a �"�@6��� �?�k�?�K�?a�`wò`@"�@6��� � 5@4?�� �t��X)k�?�4+h48� �4@k�?�4�Yk�?�4+h48� ��YU@K�?a4>�� K�?a�t��k�?a4+h48� ��X�@K�>��@�7�?�@h�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@k�?�7�+h@5�ǵ��4+h48� �"�@6���?  �k�?�k�?�4Pk�?�4P�X�k�?�4+h48� ��XA@4k�?i7y0k�?�k�?�k�?�k�?�ZX�_�W+h@6�ǖ�
�_U@Ka0#���7��
a�� 4+h��`5D+h` D+h@6��V@*+h@!�ǡ@+h@?�ǟ�"p�6tk�?i+h@5�֠�+h`5�+h@6���_+h`6�+h@?���+h`?�K�?ik�?a+h@4�Ǵ��4+h48� �"�@6��� ��k�?�k�?�4Nk�?�4N�Xik�?�4+h48� ��X�@K�?aK�>��@�7�?�@(�_K�?�K�?�8 �@ K�?�k�?�7��+h@4�Ǵ��4+h48� �"�@6�P�� ��k�?�k�?�4(k�?�4(�X
1k�?�4+h48� ��X
y@4+h48� �"�@6�x�� ��k�?�k�?�4.k�?�4.�Xyk�?�4+h48� ��X�@4+h48� �"u@6t��� ��k�?�k�?�4k�?�4�X�k�?�4+h48� �+h@?���k�?�4�Zqk�?�4+h48� ��X�@4+h48� �"�@6��� ��k�?�k�?�4k�?�4�X
�k�?�4+h48� �+h@4�ҕ?k�?�4�ZYk�?�4+h48� ��X
�@4+h48� � 5@4?0�� ��k�?�k�?�4k�?�4�X	�k�?�4+h48� �+h@6���_k�?�4�ZAk�?�4+h48� ��X	y@4+h48� �"u@6tX�� ��k�?�k�?�4k�?�4�Xyk�?�4+h48� �+h@?���k�?�4�Z)k�?�4+h48� ��Xa@4+h48� �"�@6���� ��k�?�k�?�4k�?�4�Xak�?�4+h48� �+h@4�ҕ�k�?�4�Zk�?�4+h48� ��XI@4+h48� � 5@4?��� ��k�?�k�?�4k�?�4�XIk�?�4+h48� �+h@6����k�?�4�Z�k�?�4+h48� ��X1@4+h48� �"u@6tВ� ��k�?�k�?�4k�?�4�X1k�?�4+h48� �+h@?����k�?�4�Z�k�?�4+h48� ��X@4+h48� �"�@6���� ��k�?�k�?�4k�?�4�Xk�?�4+h48� �+h@4�ҕ�k�?�4�Z�k�?�4+h48� ��X@4+h48� � 5@4? �� ��k�?�k�?�4k�?�4�Xk�?�4+h48� �+h@6���k�?�4�Z�k�?�4+h48� ��X�@4+h48� �"u@6tH�� ��k�?�k�?�4k�?�4�X�k�?�4+h48� �+h@?���?k�?�4�Z�k�?�4+h48� ��X�@4+h48� �"�@6�p�� ��k�?�k�?�4k�?�4�X�k�?�4+h48� �+h@4�ҕ_k�?�4�Z�k�?�4+h48� ��X�@4+h48� � 5@4?��� ��k�?�k�?�4k�?�4�W�k�?�4+h48� �+h@6����k�?�4�Zik�?�4+h48� ��W�@4+h48� �"u@6t��� ��k�?�k�?�4k�?�4�W�k�?�4+h48� �+h@?���k�?�4�ZQk�?�4+h48� ��W�@4+h48� �"�@6��� ��k�?�k�?�4k�?�4�W�k�?�4+h48� �+h@4�ҕ�k�?�4�Z9k�?�4+h48� ��Wu@4+h48� � 5@4?�� ��k�?�k�?�4k�?�4�Wuk�?�4+h48� �+h@6����k�?�4�Z!k�?�4+h48� ��W]@+h@3�ǳ��4+h48� �"�@6���� ��k�?�k�?�4&k�?�4&�WEk�?�4+h48� ��W�@K�?Y�@�7�?��@(�_K�?�K�?�8 �@ K�?�k�?�7�4k�;9+h` BKt ��Vz7�=a7z ��-47�=a�XI7�;QK�;Q��7y ���7�;Q"�@6��H?H3k�;QH4k�;YH5 k�;ak�;i47�;Q� �7v �� ��k�?�k�?��^�k�?��� 4+h@3���+h`3�"�@6�J�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7t �� ��k�?�k�?��^�k�?��� 4+h@?����+h`?�"u@6t J�J�k�;QJ�k�;YJ� k�;ak�;i47�;Q� �7s �t `�k�?�k�?��^k�?��� 4+h@6����+h`6� 5@4?PK�K�k�;QK�k�;YK�k�;ak�;i47�;Q� �7a �?  �k�?�k�?��^%k�?��� 4+h@4�֓�+h`4�"�@6�pJ�J�k�;QJ�k�;YJ� k�;ak�;i47�;Q� �7u �� ��k�?�k�?��^Ek�?��� 4+h@3��+h`3�"�@6��J�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7t �� ��k�?�k�?��^ek�?��� 4+h@?���_+h`?�"u@6t�J�J�k�;QJ�k�;YJ� k�;ak�;i47�;Q� �7s �t `�k�?�k�?��^
�k�?��� *+h@5�ǵ@4�c�;Ic�;IC�;I+h@3��?+h`3�"�@6��J�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7t �� ��k�?�k�?��^mk�?��� 4+h@?���+h`?�"u@6tJ�J�k�;QJ�k�;YJ� k�;ak�;i47�;Q� �7s �t `�k�?�k�?��^�k�?��� *+h@5���@4�c�;Ic�;IC�;I+h@3���+h`3�"�@6�@J�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7t �� ��k�?�k�?��^
uk�?��� 4+h@?����+h`?�"u@6t`J�J�k�;QJ�k�;YJ� k�;ak�;i47�;Q� �7s �t `�k�?�k�?��^	�k�?��� 4+h@6����+h`6� 5@4?�K�K�k�;QK�k�;YK� k�;ak�;i47�;Q� �7a �?  �k�?�k�?��^�k�?��� 4+h@4�֓+h`4�"�@6��J�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7u �� ��k�?�k�?��^�k�?��� 4+h@3���+h`3�"�@6��J�J�k�;QJ�k�;YJ�k�;ak�;i47�;Q� �7t �� ��k�?�k�?��^�k�?��� 4+h@?���_+h`?�"u@6t	J�J�k�;QJ�k�;YJ� k�;ak�;i47�;Q� �7s �t `�k�?�k�?��^k�?��� Z+h@5��U@B+h@6��v@*+h@!��A@+h@?��?�4�c�;Ic�;IC�;I+h@5�ִ?+h`5�"�@6�	0H?H3k�;QH4k�;YH5k�;ak�;i47�;Q� �7v �� ��k�?�k�?��^�k�?��� 4+h@3��+h`3�+h@4�Ǵ��"�@6��J�J�k�;J�k�;J�k�;!k�;)�_�7�;+h@5�ּ_+h`5�4+h`6B+h@!�ǡ��4+h48� �#�@7�P�t `�k�?�k�?�4,k�?�4,�W	�k�?�4+h48� ��W
%@+h@!�����#�@7�	0JtJuk�;Jvk�;Jak�;!k�;)�_q7�;+h@?���+h`?�+h@3�Ǔ��"�@6��J�J�k�;J�k�;J� k�;!k�;)�_
�7�;+h@4�֜+h`4�+h@5��5��"�@6�H?H3k�;H4k�;H5k�;!k�;)�_
17�;+h@6����+h`6�+h@!��A��#�@7�`JtJuk�;Jvk�;Ja k�;!k�;)�_�7�;+h@?����+h`?�+h@3����"�@6��J�J�k�;J�k�;J� k�;!k�;)�_�7�;+h@4�֜�+h`4�+h@5��5��"�@6�H?H3k�;H4k�;H5k�;!k�;)�_Q7�;+h@6����+h`6�+h@!�����#�@7��JtJuk�;Jvk�;Ja k�;!k�;)�_
�7�;+h@?���?+h`?�+h@3�����"�@6�	J�J�k�;J�k�;J� k�;!k�;)�_
7�;+h@4�֜?+h`4�+h@5��u��"�@6��H?H3k�;H4k�;H5k�;!k�;)�_	q7�;+h@6����+h`6��" "4?�	�+hh3�Kt�� 
�_�@+hH5�k�;AC�;Cǖ�C�;C� c�;CC�;Cǿ�C�;C�`_c�;CK�;A�� �_�@�k�;9"��6�k�;9K�;9k�;1K�;9"u@Jt��� K�;9�WuY+h@5�ǵ��4+h48� �"�@6���?  �k�?�k�?�44k�?�44�W%k�?�4+h48� ��Wm@K�;1K�8��@�7�9�@`�_K�?�K�?�8 �@ K�?��@(�_K�?�K�?�8 �@ K�?�Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!H4 k�?���$�@Ka?�k�?�4!�H4 k�?���$�@Ka?�k�?�4!@H4 k�?���$�@Ka?�k�?�4!@H4 k�?���$�@Ka?�k�?�4!H4 k�?���$�@Ka?�k�?�4!	@H4 k�?���$�@Ka?�k�?�4!�H4 k�?���$�@k�?�7�k�?��_�@�_
@�_=@|�7z 4�_U44+h48� �"�@6�	`�� ��k�?�k�?�4k�?�STk�?qk�?yk�?i4�k�?a4
k�?Y�_�k�?Q4+h48`� � 5@4?	p�� ��k�?�k�?�4
k�?�UVk�?qk�?yk�?i4�k�?a4k�?Y�_Uk�?Q�Wm@���jKs�`"�@�_u@"�@J�	��� �^u@�^E@���_@k�?AK�?A+hh6H (4:�WUY4+h48� �#�@7�	��t `�k�?�k�?�48k�?�48�Wk�?�4+h48� �+hD!L�?�k�?�4�W�k�?�4+h48� �"�@6�	��� ��k�?�k�?�4k�?�4�W9k�?�4+h48� �+hD3H�t�k�?�4�Wk�?�4+h48� �4�k�?�4�X	�k�?�4+h48� ��W�@�j�_�@#�@K�	��| "�^�@�^U@�"��6��W�YKu�� 
�_�@+h@6�Ƕ��4+h48� � 5@4?	ȓ� ��k�?�k�?�4k�?�4�W!k�?�4+h48� ��Wi@�"�6��W}Y�_@��failed to abort connections for pin status: subsys=, info=error setting CI variable...unknown type of var passed in, type=HPSCVERSION A.02.01.001HPSCERR HPSCERRTXT HPSCNUMPROCS HPSCNUMSOCKETS HPSCNUMSOCKOWNERS  Internal error.nOption data missing.Missing equal-sign.Failed to retrieve all PIDs.AIFJSGET call failed.AIFPROCGET call failed.Invalid job/session identifier.�Failed to retrieve job/session PIDsFailed to retrieve process PID.More capabilities required for item(s) requested.Invalid pin number.No sockets found for processes matching selection criteria.�SHOWCONN command parser failed.SHOWCONN found no options to process.	Pin number  does not exist.Job number # does not exist.Required NL.PUB.SYS procedure sk_get_conn_info missing.Unknown error encountered. (SC ERROR %)JS_TYPE_NONESESSIONJOB	JS_TYPE_3sk_get_conn_info >upshiftupshift>enable_AIF_access.nFailed to enable AIF access, status=enable_AIF_access>disable_AIF_accessrFailed to disable AIF access, status=disable_AIF_access>dump_PID_array_contentsnumber of entries in PID_array: : dump_PID_array_contents>get_PID_by_pineAIFPROCGET status: subsys=
 info=get_PID_by_pin�p@p@a*K�r���e�A����pp����p@p@a*K�r���e�A���pp����p@p@a*K�r���e�A����pp����	>process_option_systemilAIFPROCGET status: subsys= info=process_option_system�p@p@a*K�r���e�A����p	p����p@p@a*K�r���e�A���`p
p����>print_header y_ ontJOBNUM  INTRO DATE AND TIME    LDEV   USERNAME REMOTE ADDRESS  RPORT  LPORT  FLAGS   PIN(PROGRAM) DNS-NODENAMEprint_header>find_first_nil_charfind_first_nil_char>find_first_nil_ptrtfind_first_nil_ptr>get_host_namey_get_host_name>show_host_aliasesarnumber of alias names = : "yshow_host_aliases>show_host_addressesAddress:   nshow_host_addresses>get_host_by_addret_error amfrom gethostbyaddr. get_host_by_addr>pac_to_stringasIN : umbout: "al" - len=pac_to_string                >conv_ip_to_str conv_ip_to_str>translate_tcp_port_to_service m      stecho  . discrdstsystatdaytimqotd  @chargnftpdat��ftpcmdGStelnet(Psmtp  time  rlp   whois �domainbootpsbootpctftp  fingersupduphostn pop   portmpauth  sftp  uucp-pnntp  ntp   ntbiosntbiosntbiosbftp  snmp  snmptrbgp   exec  login syslog`printrtalk  ntalk rip   timed kloginkshellekshellansrmkerbrskreg  �kpwd  DASrvribootsibootcsocks postmsloopbk�nft   vt    vtr   ptop  sockrgrpm   vta   pmlock0nfsd  eklognnetdstninst rfa   nsstatrfa   hpds   phdspnshcs   pdss  grmd  spc   iasql hpip  ShardXumdir gnusrv�hpnpd translate_tcp_port_to_service>pin_detail_display pin(program)    : n=pin re-use count: ldev/job/session: @scheduling info :  priority cpu time used   :  msecprocess type    : start time      : sockets in use  : ============ SOCKET # ============local�H�  ip address    : �no data for host. 
  node name     :   socket address: I(  socket address: �P (TCPUDP`PXP`connection socketdatagram socket%call socket�Connection doesn't exist (initialized)5Unknown stateCIPCCONNECT called, wait for IPCRECV\IPCRECVCN done, user must accept/rejecteConnected, can send and recv dataoInitiated graceful close, can only receiveuReceived graceful close, send only{Both parties closed, user must shut�Connection aborted, user must shut��Socket is bound to an address���sk_listen has been called (listening)Socket shutdown or encounteered error��@Socket shutdown lingering pending  socket type   : 
  socket protocl: M4  socket state  : ��  socket flags��    select supported    : M�    BSD socket          : �    catch all flag      : +    tcp msg mode        : �     connection initiator: Nhremote�  ip address    : no data for host.�N�  node name     : ��  socket address:   socket address:  (O,pin_detail_display4CGKOSW[_cgkoUNUSED_MONTH_0JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC -159=AEUNUSED_DAY_0SUNMONTUEWEDTHUFRISAT $(+/37;USRAPPCITSKSYSDETJSMOTH ASBSCSDSES%)JS_TYPE_NONESESSIONJOB	JS_TYPE_3>display_summaryTotal processes checked: Processes with sockets : Total sockets open     : display_summary>process_output_flags n(process_output_flags4?M]lz�������
UNKNOWN_ST
CONNECTING_STWAIT_CONFIRM_STDUPLEX_OPEN_ST
IN_SIMPLEX_STOUT_SIMPLEX_ST
LOSED_ST_CABORTED_CONN_STBOUND_ST
TENING_LISSHUT_ST
GERING_LINZED_INITIALI $(+/37;USRAPPCITSKSYSDETJSMOTH>display_connection_info o_s r n how hos:0ad    yuser process        application process ci process          task process        system process      detached process    jsmain process      other process       ????????                ��no data for host. display_connection_info4CGKOSW[_cgkoUNUSED_MONTH_0JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC -159=AEUNUSED_DAY_0SUNMONTUEWEDTHUFRISAT%)JS_TYPE_NONESESSIONJOB	JS_TYPE_3>get_process_infootaAIFJSGET failed, status=item arr[ wi] status=get_process_info>show_connections_for_pins_in_PID_arrayfbefore AIFPROCGET:after  AIFPROCGET:@AIFPROCGET status: subsys= info= all =�`AIFPROCGET item 1: subsys=pe info= all =Process  diedAIF error �� accessing process show_connections_for_pins_in_PID_array                                                                                                                >helplayFLAGS column usage:s  Column 1 (process type): y    a: Application (1st son of a CI)    u: User process (not the 1st son of a CI)    c: CI process�ذ    t: Task process    s: System process    d: Detached process    j: JSMAIN process    o: Other (unknown process type)  Column 2 (protocol):    t: TCP protocolX    u: UDP protocol    p: PXP protocol  Column 3 (socket type):    l: Listening socket (call socket)    c: Connection socket    d: Datagram (UDP) socket  Column 4 (direction):    o: Outgoing connection (initiated by this process)    i: Incoming connection (received by this process)�ژ  Column 5 (API in use):    n: NetIPC socket    b: BSD socket  Column 6 (socket state):��    u: Undefined    = undefined state    z: initialiZed  = connection doesn't exist�8    c: Connecting   = ipcconnect called, wait for ipcrecv    w: Wait_confirm = ipcrecvcn done, user must accept/reject    d: Duplex_open  = connected, can send and recv data    i: simplex_In   = graceful close, can only receive    o: simplex_Out  = received graceful close, send only    l: cLosed       = both parties closed, user must shut    a: conn_Aborted = connection aborted, user must shut    b: Bound        = socket is bound to an address    t: lisTening    = sk_listen has been called    s: Shut         = sock shutdown or encountered an error    g: linGering    = sock shutdown lingering pendinghelp>get_jsnum_for_pintabefore AIFPROCGET:taafter  AIFPROCGET:AIFPROCGET status: subsys= info= all =AIFPROCGET item 1: subsys= info= all =get_jsnum_for_pin>get_jsmain_pin_by_jsnumbefore AIFJSGET:after  AIFJSGET:AIFJSGET status: subsys= info= all =��get_jsmain_pin_by_jsnum>get_any_jsmain_pinnget_any_jsmain_pin>get_PIDs_for_any_js_process_familyEAIFPROCGET status: subsys= info=@get_PIDs_for_any_js_process_family�p@p@a*K�r���e�A����pp����p@p@a*K�r���e�A���@pp����>valid_job_numn_valid_job_num>convert_to_js_rec_fmtt_convert_to_js_rec_fmt%)JS_TYPE_NONESESSIONJOB	JS_TYPE_3>get_all_js_rec_PIDsget_all_js_rec_PIDs�p@p@a*K�r���e�A����p
p����p@p@a*K�r���e�A��� pp����p@_@a*K�r���e�A����__����
>process_job_idsprocess_job_ids>process_option_job JOB data @ _; next kwd @  s jobs to check " process_option_jobHELP=   MYSESS= PIN=    JOB=    DETAIL= NONAME= NAME=   XPTALL= 	XPORT=  
LINK=   SYSTEM= KILL=   
DEBUG=  TRACE=  SUMMARY=VERSION=>process_option_pinspin @ l_; next kwd @  pin to check "my_js_num   =parms_js_num=enough caps =ss_process_option_pinHELP=   MYSESS= PIN=    JOB=    DETAIL= NONAME= NAME=   XPTALL= 	XPORT=  
LINK=   SYSTEM= KILL=   
DEBUG=  TRACE=  SUMMARY=VERSION=
SC-program file version A.02.01.001>execute_command ob execute_commandL>initialize�none  l_initialize>parm_on_or_off  on �parm_on_or_offON�������������������������������SMAMALGLDIOPCVUVLGSPPSNANMCAP_CSNDSFRES16RES17RES18RES19RES20RES21RES22BAIAPMRES26RES27MRRES29CAP_DSPH>check_user_capabilities__adjust_optionscheck_user_capabilities__adjust_options
>show_options_parsedcommand options parsed:_show_options_parsedHELP=   MYSESS= PIN=    JOB=    DETAIL= NONAME= NAME=   XPTALL= 	XPORT=  
LINK=   SYSTEM= KILL=   
DEBUG=  TRACE=  SUMMARY=VERSION=>parse_command_optionsecexit parse_command_optionsHELP=   MYSESS= PIN=    JOB=    DETAIL= NONAME= NAME=   XPTALL= 	XPORT=  
LINK=   SYSTEM= KILL=   
DEBUG=  TRACE=  SUMMARY=VERSION=LOUTPUT_uINPUTapa[Unexpected escape. Subsys # Info #2exit main
`c�Hc�c�Hc�dHddHddHdd$Hd(d0Hd4d<Hd@dHHdLdTHdXd`HdddlHdpdxHd|d�Hd�d�Hd�d�Hd�d�Hd�d�Hd�d�Hd�d�Hd�d�Hd�d�Hd�d�Hd�d�HeeHeeHee He$e,He0e8He<eDHeHePHeTe�He�e�He�e�He�fHffHffHf f$Hf(f,Hf0f4Hf8f<Hf@fDHfHfLHfPfTHfXf\Hf`fdHfhflHfpftHfxf|Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hf�f�Hgg,Hg0gLHgPg�Hg�h�Hh�ii�kD�kHl�lTp ��p�z�@zLz�z�|��0|�~l~��0�p�T���d� ���� �,�(�8������������0��X��x�d����|����D��d���������l�4� 
��T�� ����� �
� 
4,� 
8L&|&�-H� -h2�� 2�4(�4H6�� 74;�;$>��?B��  0B�E��xFLN���N�V��xWW�W�Z\0Z|[�0[�^��P^�`4`tb8bXk�k�x\py�|�h�ii$ ll4p$p@zz,z�|�|�~p~��4�P�X�t�h�����������\�h�������H������8��� ��
0&�-L2�4,6�7;>�>�B�E�E�N�V�W�Z`[�^�`8`Tb<k�x`x�@z�z�z�����������$TEXT$	$PRIVATE$$MILLICODE$$CODE$$LIT$$UNWIND_START$$UNWIND$MILLICODE$$UNWIND$$UNWIND_END$$RECOVER_START$$RECOVER$MILLICODE$	$RECOVER$
$RECOVER_END$$GLOBAL$$SHORTDATA$$DATA$
$PFA_COUNTER$$BSS$$PFA_COUNTER_END$0@0h�0 y�0,�0@�P0P�`0d�l0x@0�@�0�	@�0h�h�2	�
@�
�[2	�
@
�[6
	�i�
x��� �|�U	��i&
x���#�<U	��iFU	��ifU
 i� 
@kK (}0 P���@6
T
lW
x���  X}x t}P0
,e�U
<`l66
@
Lp�
x��� ��8 �}�0
Xf�0
hf�0
xe�0
�f�U
�@pBU
�@pb0
�f�U
��p�6
�zO
a� ��pU�z.6
z�
g���� ���6 |�
x�� ���U8@|�6H~�
x�� ��U``~�6t�s
x�� �8U���R6
@���
x��#��A��T @�� X��U���v6
���
x��#�� p�H ���6��/
x�� ��P6
��;
a�% ���6
��
a�% ��6
(�
c���% �86
<�
x���% �XUT ��6
d�{
x���% 8��6
|��
x���� X��U����
d�%"��!6
���
c�F�	 t�P ��U���6
��g
g�� ��h6
���
c�m ���6
P
�o
x���$�� ��0 �`U
`�U
(��.0
8f�U
H�N6
X�W
x�� ��6
U
l�#
g��������� 8�@ X�6
P
��
x���$�� x�� ��X0
�g3U
� �"U
�@�BU
���b6
P
��
x��#�#�< ���U
���6

7
x��#�� ��� ��64O
x��pP� <��6
A@&�
c���#��A�9� L�� h�(6
AX-k
a���#��� ��h ���6
At2�
a��#�� ��� ��p6
@�4K
x���#�� � 0��6
�77
a���A�P \�(U� 76
�;'
c����A�ͬ t�x ��H6
@�?
x���|#��A�� ��� ���U`>�
a�6
@ B�
x���%#�� �� ��6
4FO
x��#��A�ܬ�� ,�p H�UL�E�U\�FUl�F.6
|N�
x��#��A�} d�8 ���6�W
x�� ��� ���6�W�
x��MA ��� ���6�Z
x�� �  ��6
�[�
a��*A���A��X 4�B L�6�^�
x��A�o� d�H6�`w
c� ��� ��PU(``V60b[
x�� ��� 	��6Hk�
c�A���A��� 	,�` 	L�(6dy�
 	l�� 	|z� 	���Up@x�U�x�U��x�U� x�U��yU�y:U��yZU��yz6
	�i�i

x���6
T
lTl
x��� 6
@
Lp�p&
x���6
�zLz
a�6
z�z�
g����6 |�|�
x��6H~�~r
x��6t�p�6
x��6
@����Z
x��#��A��T6
����j
x��#��6��,�
x��6
��8�
a�%6
����
a�%6
(���
c���%6
<���
x���%6
d�x�^
x���%6
|���j
x����6
�����
c�F�	6
��d�J
g��6
�����
c�m6
P
�l��
x���$��6
X�T�:
x��6
U
l� �
g���������6
P
���
x���$��6
P
���
x��#�#�<6

4

x��#��64L2
x��pP�6
A@&�&�
c���#��A�9�6
AX-h-N
a���#���6
At2�2�
a��#��6
@�4H4.
x���#��6
�746�
a���A�P6
�;$;

c����A�ͬ6
@�?>�
x���|#��A��6
@ B�B�
x���%#��6
4FLE�
x��#��A�ܬ��6
|N�N�
x��#��A�}6�WV�
x��6�W�W�
x��MA6�Z|Zb
x��6
�[�[�
a��*A���A��X6�^�^�
x��A�o�6�`t`:
c�60bXb>
x��6Hk�k�
c�A���A���6dy�xb
0 y�x~0�` �` �`� �`( �`$ �` �`H �`\ �`� `� `�0c� 4ed HeX \eL pe@ �e4 �e( �e �e �e �d� �d� d� $d� 8d� Ld� `d� td� �d� �d� �d� �dt �dh �d\ dP dD (d8 <d, Pd  dd xd �c�0c�0$d04d0Dd0Td+0dd70tdC0�dO0�d[0�dg0�ds0�d0�d�0�d�0�d�0d�0d�0$d�04d�0Dd�0Td�0dd�0te0�e0�e0�e'0�e30�e?0�eK0�eW �e�0�e� �e� �e� �e� �e�0f0f0$f#04f+0Df30Tf;0dfC0tfK0�fS0�f[0�fc0�fk0�fs0�f{0�f�0�f�0f�0f�0$f�04f�0Df�0Tf�0df�0tf�0�f�0�g �g 0�g� �gP �g� h� (h� 4h( @h� Lh< XhX$global$$START$_start
$UNWIND_START$UNWIND_END$RECOVER_START$RECOVER_END$dp$$PFA_C_START
$PFA_C_ENDSCSPASCAL  HP31502     A.05.00 S$5$abort_tcp_connectionsset_ci_variables$7$civar_error"S$7$set_ci_variables$7$civar_error$L0C$6$set_ci_variablesS$6$set_ci_variablesC$8$err_msgS$8$err_msgS$9$sk_get_conn_info_existsS$10$upshiftS$11$enable_aif_accessS$12$disable_aif_accessS$13$dump_pid_array_contentsC$14$get_pid_by_pinS$14$get_pid_by_pinC$15$process_option_systemS$15$process_option_systemS$16$print_headerS$17$find_first_nil_charS$18$find_first_nil_ptrS$19$get_host_nameS$20$show_host_aliasesS$21$show_host_addressesS$22$get_host_by_addrC$23$pac_to_stringS$23$pac_to_stringS$24$conv_ip_to_str"S$25$translate_tcp_port_to_serviceC$26$pin_detail_displayS$26$pin_detail_displayS$27$display_summaryC$28$process_output_flagsS$28$process_output_flagsC$29$display_connection_infoS$29$display_connection_infoS$30$get_process_info+C$31$show_connections_for_pins_in_pid_array+S$31$show_connections_for_pins_in_pid_array	S$32$helpC$33$get_jsnum_for_pinS$33$get_jsnum_for_pinC$34$get_jsmain_pin_by_jsnumS$34$get_jsmain_pin_by_jsnumC$35$get_any_jsmain_pinS$35$get_any_jsmain_pin'C$36$get_pids_for_any_js_process_family'S$36$get_pids_for_any_js_process_familyS$37$valid_job_numC$38$convert_to_js_rec_fmtS$38$convert_to_js_rec_fmtC$39$get_all_js_rec_pidsS$39$get_all_js_rec_pidsC$40$process_job_idsS$40$process_job_idsC$41$process_option_jobS$41$process_option_jobC$42$process_option_pinS$42$process_option_pinC$43$display_versionS$43$display_versionC$44$execute_commandS$44$execute_commandC$45$initializeS$45$initializeC$46$parm_on_or_offS$46$parm_on_or_offC$47$show_user_capabilities,C$48$check_user_capabilities__adjust_options,S$48$check_user_capabilities__adjust_optionsC$49$show_options_parsedS$49$show_options_parsedC$50$parse_command_optionsS$50$parse_command_optionsC$2$PROGRAM	$00002BD9S$2$PROGRAMinputoutputabort_tcp_connectionssk_abort_conns
P_WRITESTR
P_WRITEINT	P_WRITELNset_ci_variables$$lr_wa_unk
HPCIPUTVARerr_msg	$$lr_wa_8
$$lr_wa_12$$lr_unk_unk	$$lr_wa_9
P_STRWRITESTR
P_STRWRITEINT
$$lr_wa_13
P_STRWRITECHRsk_get_conn_info_exists
P_DYN_CALLupshiftenable_aif_accessAIFACCESSONdisable_aif_accessAIFACCESSOFFdump_pid_array_contentsP_WRITELONGINTget_pid_by_pin
AIFPROCGETprocess_option_systemprint_headerfind_first_nil_charfind_first_nil_ptr
get_host_nameshow_host_aliases
P_WRITECHRshow_host_addressesget_host_by_addr
gethostbyaddr
pac_to_stringP_PROMPTconv_ip_to_strtranslate_tcp_port_to_servicepin_detail_displayALMANAC
P_STRLTRIM
$$lr_wa_10P_WRITEBOOLdisplay_summaryprocess_output_flagsdisplay_connection_info$$scmp_pascU_dDgetP_STRRPTU_dDreleaseget_process_infoAIFJSGET&show_connections_for_pins_in_pid_arrayhelpget_jsnum_for_pinget_jsmain_pin_by_jsnumget_any_jsmain_pin"get_pids_for_any_js_process_family
valid_job_numP_STRREADINTconvert_to_js_rec_fmtget_all_js_rec_pids	get_mypinprocess_job_idsprocess_option_jobP_STRPOS
P_STRRTRIMP_STRDELETEprocess_option_pindisplay_versionexecute_command
initializeparm_on_or_offshow_user_capabilities'check_user_capabilities__adjust_optionsWHOshow_options_parsedparse_command_optionsPROGRAMP_INIT_ARGSU_INIT_TRAPS
P_GET_PARM
P_GET_INFO	P_REWRITEP_RESETU_get_escapecodeP_TERMINATEU_EXITMILLI/12.34/Mmovelr1.o%HPUX Precision Architecture Assembler92453#A.08.00(sllic UX.08.00.00 10/25/89)$find_alignment$more_na$bigger_but_still_small$b_out$b_loop	$wordloop$endloop$bad_alignment
$odd_words$non_aligned_entry$lr_na_0_Alt$lr_na_1_Alt$lr_na_2_Alt$lr_na_3_Alt$lr_na_4_Alt$lr_na_5_Alt$lr_na_6_Alt$lr_na_7_Alt$lr_na_8_Alt$lr_na_9_Alt
$lr_na_10_Alt
$lr_na_11_Alt
$lr_na_12_Alt
$lr_na_13_Alt
$lr_na_14_Alt
$lr_na_15_Alt
$lr_na_16_Alt
$lr_na_17_Alt
$lr_na_18_Alt
$lr_na_19_Alt
$lr_na_20_Alt
$lr_na_21_Alt
$lr_na_22_Alt
$lr_na_23_Alt
$lr_na_24_Alt
$lr_na_25_Alt
$lr_na_26_Alt
$lr_na_27_Alt
$lr_na_28_Alt
$lr_na_29_Alt
$lr_na_30_Alt$na_restart$last$wloop$out$big_wa1$big_wa2$$lr_na_unk
$$lr_na_31
$$lr_na_30
$$lr_na_29
$$lr_na_28
$$lr_na_27
$$lr_na_26
$$lr_na_25
$$lr_na_24
$$lr_na_23
$$lr_na_22
$$lr_na_21
$$lr_na_20
$$lr_na_19
$$lr_na_18
$$lr_na_17
$$lr_na_16
$$lr_na_15
$$lr_na_14
$$lr_na_13
$$lr_na_12
$$lr_na_11
$$lr_na_10	$$lr_na_9	$$lr_na_8	$$lr_na_7	$$lr_na_6	$$lr_na_5	$$lr_na_4	$$lr_na_3	$$lr_na_2	$$lr_na_1$$lr_wa_big
$$lr_wa_31
$$lr_wa_30
$$lr_wa_29
$$lr_wa_28
$$lr_wa_27
$$lr_wa_26
$$lr_wa_25
$$lr_wa_24
$$lr_wa_23
$$lr_wa_22
$$lr_wa_21
$$lr_wa_20
$$lr_wa_19
$$lr_wa_18
$$lr_wa_17
$$lr_wa_16
$$lr_wa_15
$$lr_wa_14
$$lr_wa_11	$$lr_wa_7	$$lr_wa_6	$$lr_wa_5	$$lr_wa_4	$$lr_wa_3	$$lr_wa_2	$$lr_wa_1MILLI/12.34/Mscmp_pc.olengths_not_equalright_is_shorter$$scmp_byteMILLI/12.34/Mscmp_by.ofinishblooplab1setitlab2isshort����1U� LX� LX LX_@��������s a*K�r��e�A��Lpp�� ����DISC                             1SCS             PUB             SYS                             MANAGER SYS     ��a*K�rl�W�.l�W�.l�Z݇Yl�W�OԶ�jjcԶO	�   l�_o�(WWW             ԷԶԶ���y��:$               $FOWNER         ��$               $GMASK          �$               $GROUP          �`               `               �$standard_level 'os_features', tables on$                                      $page, title 'SHOWCONN program'$                                               program showconn(input, output, run_parm, run_info);                                                                                                          const                                                                            showconn_version        = 'A.02.01.001';                                                                                                                    {                                                                              $LOG: SCS $                                                                                                                                                   REVISION 1.4 SUN, MAR 24, 1996,  2:13 PM  EERO.NSPROD                          Added call to sk_abort_conns and functionality to be able to abort tcp         connections to any process.  Cut another script from showconn script just      for aborting connections.  The new script is ABORTCON and takes two parms,     pin number and another one to display version number.                                                                                                         REVISION 1.3 MON, OCT 23, 1995,  5:50 PM  EERO.NSPROD                           - Added HPSRC log-keyword to better maintain fix history while modified the      SC-program for release.                                                      - Replaced MPE build environment includes to make this source stand-alone so     that it can be distributed and succesfully compiled on customers' systems.   - Removed AIF user ID (put "xxxxx" in place, forcing a compiler error).          Users need to replace it with their assigned AIF user ID and then compile.   - Minor corrections to validating a job/session number.  Previous version did    not properly detect incorrect job numbers such as "#" and "#S".                                                                                            }                                                                                                                                                             type                                                                             bit1    = 0..1;                                                                bit2    = 0..3;                                                                bit3    = 0..7;                                                                bit4    = 0..15;                                                               bit5    = 0..31;                                                               bit6    = 0..63;                                                               bit7    = 0..127;                                                              bit8    = 0..255;                                                              bit9    = 0..511;                                                              bit10   = 0..1023;                                                             bit11   = 0..2047;                                                             bit12   = 0..4095;                                                             bit13   = 0..8191;                                                             bit14   = 0..16383;                                                            bit15   = 0..32767;                                                            bit16   = 0..65535;                                                            bit17   = 0..131071;                                                           bit18   = 0..262143;                                                           bit19   = 0..524287;                                                           bit20   = 0..1048575;                                                          bit21   = 0..2097151;                                                          bit22   = 0..4194303;                                                          bit23   = 0..8388607;                                                          bit24   = 0..16777215;                                                         bit25   = 0..33554431;                                                         bit26   = 0..67108863;                                                         bit27   = 0..134217727;                                                        bit28   = 0..268435455;                                                        bit29   = 0..536870911;                                                        bit30   = 0..1073741823;                                                       bit31   = 0..2147483645;                                                                                                                                      byte    = 0..255;                                                                                                                                             hpe_status = record                                                            case boolean of                                                                  true: (info     :shortint;                                                            subsys   :shortint);                                                    false:(all      :integer);                                                     end;                                                                                                                                                        pin_type = bit16;                                                                                                                                           $page, title 'SHOWCONN - constants and types '$                                                                                                               const                                                                            ALL_OK                  =    0;                                                MAX_MAXPIN              = 8190;   { max# of processes on MPE/iX 5.0 & 5.5 }    MAX_SOCKETS_PER_PROCESS = 1024;                                                ALL_CONNECTIONS         =    0;                                                INCOMING_CONNECTION     =    1;                                                                                                                               { Protocols }                                                                  TCP_PROTOCOL            =    4;                                                UDP_PROTOCOL            =    5;                                                PXP_PROTOCOL            =    6;                                                                                                                               { Types of sockets }                                                           CONNECTION_SOCKET       =    0;                                                DATAGRAM_SOCKET         =    1;                                                CALL_SOCKET             =    3;                                                                                                                               { Socket states }                                                              INITIALIZED             =   -1;  { connection doesn't exist                }   CONNECTING              =    1;  { IPCCONNECT called, wait for IPCRECV     }   WAIT_CONFIRM            =    2;  { IPCRECVCN done, user must accept/reject }   DUPLEX_OPEN             =    3;  { connected, can send and recv data       }   SIMPLEX_IN              =    4;  { graceful close, can only receive        }   SIMPLEX_OUT             =    5;  { received graceful close, send only      }   CLOSED                  =    6;  { both parties closed, user must shut     }   CONN_ABORTED            =    7;  { connection aborted, user must shut      }   BOUND                   =    8;  { socket is bound to an address           }   LISTENING               =    9;  { sk_listen has been called               }   SHUT                    =   10;  { sock shutdown or encounteered error     }   LINGERING               =   11;  { sock shutdown lingering pending         }                                                                                                                                                               type                                                                             { type below is the EXTERNAL type used between the user program and      }     { AIFPROCGET (item 2149) to get connection info.                         }                                                                                    ext_conn_flags_type = packed record                                             case integer of                                                                  1:(all                    : bit16);                                            2:(select_supported       : boolean;                   { bit 0      }             bsd_sk                 : boolean;                   { bit 1      }             catch_all_flag         : boolean;                   { bit 2      }             tcp_msg_mode           : boolean;                   { bit 3      }             connection_initiator   : boolean;                   { bit 4      }             filler_11_bits         : bit11);                    { bits 5..15 }        end;                                                                                                                                                         ext_conn_element_type = packed record                                            local_ip_addr  : bit32;                                                        remote_ip_addr : bit32;                                                        local_sap      : bit16;                                                        remote_sap     : bit16;                                                        socket_state   : shortint;                                                     flags          : ext_conn_flags_type;                                          protocol       : bit8;                                                         socket_type    : bit8;                                                         filler         : bit16;                                                        end;                                                                                                                                                        ext_conn_type       = record                                                     count : integer;                                                               mode  : integer;                                                               entry : array[1..MAX_SOCKETS_PER_PROCESS] of ext_conn_element_type;            end;                                                                                                                                                        ext_conn_ptr_type   = ^ $extnaddr$ ext_conn_type;                                                                                                           const                                                                            max_run_info_len        =  256;                                                max_kwd_len             =    8;                                                max_job_ids             = max_run_info_len div 4;                              max_job_str_len         =   35; { sessname,username.acctname,groupnme }        max_serv_name_len       =    6; { service bound to tcp port number    }        max_varname_len         = 255;                                                 max_sc_ci_vars          =   6;                                                 create_int_var          =   1;                                                 create_str_var          =   2;                                                 string_length_item      =  11;                                                                                                                                { keyword table indexes }                                                      kw_help                 =  1;                                                  kw_mysess               =  2;                                                  kw_pin                  =  3;                                                  kw_job                  =  4;                                                  kw_detail               =  5;                                                  kw_noname               =  6;                                                  kw_name                 =  7;                                                  kw_xptall               =  8;                                                  kw_xport                =  9;                                                  kw_link                 = 10;                                                  kw_system               = 11;                                                  kw_kill                 = 12;                                                  kw_debug                = 13;                                                  kw_trace                = 14;                                                  kw_summary              = 15;                                                  kw_version              = 16;                                                                                                                                 first_keyword           = kw_help;                                             last_keyword            = kw_version;                                                                                                                       type                                                                             pac256 = packed array [1..256] of char;                                        str256 = string[256];                                                                                                                                         PID_num_type = record                                                          case integer of                                                                  1: (all          :longint);                                                    2: (pin          :integer;                                                         re_use_count :integer);                                                    end;                                                                                                                                                        PID_num_array   = array [1..max_maxpin] of PID_num_type;                                                                                                      PID_record_type = record                                                         process_count :integer;                                                        PID_entry     :PID_num_array;                                                  end;                                                                                                                                                      $page, title 'SHOWCONN - constants and types '$                                  job_ses_id_type = (js_type_none, session, job, js_type_3);                                                                                                    job_ses_num_type = crunched record                                             case integer of                                                                  1: (all        :integer);                                                      2: (job_ses_id :job_ses_id_type;                                                   js_number  :bit14;                                                             extension  :shortint);                                                     end;                                                                                                                                                        js_rec_type = record                                                             num_entries :integer;                                                          entry       :array [1..max_job_ids] of job_ses_num_type;                       end;                                                                                                                                                        job_name_type = packed array [1..16] of char;                                                                                                                 job_id_str_type = string[max_job_str_len];                                                                                                                    job_id_rec_type = record                                                         num_entries :integer;                                                          entry       :array [1..max_job_ids] of job_id_str_type;                        end;                                                                                                                                                        filename_type = record                                                           filename   :job_name_type;                                                     group      :job_name_type;                                                     account    :job_name_type;                                                     end;                                                                                                                                                        weekday_type = (UNUSED_DAY_0, SUN, MON, TUE, WED, THU, FRI, SAT);              month_name_type = (UNUSED_MONTH_0, JAN, FEB, MAR, APR, MAY, JUN,                                  JUL, AUG, SEP, OCT, NOV, DEC);                                                                                                             date_type = crunched record                                                    case integer of                                                                  1: (all         :integer);                                                     2: (unused      :shortint;                                                         year        :bit7;                                                             day         :bit9);                                                        3: (high_16_bits:shortint;                                                         low_16_bits :shortint);                                                    end;                                                                                                                                                        time_type = crunched record                                                    case integer of                                                                  1: (all         :integer);                                                     2: (hour        :bit8;                                                             minute      :bit8;                                                             second      :bit8;                                                             tenth       :bit8);                                                        end;                                                                                                                                                      $page, title 'SHOWCONN - constants and types '$                                  MPE_sched_queue_name_type = (AS, BS, CS, DS, ES);                                                                                                             sched_q_type = crunched record                                                 case integer of                                                                  1: (all    :integer);                                                          2: (filler :bit29;                                                                 queue  :MPE_sched_queue_name_type);                                        end;                                                                                                                                                        MPE_process_type = (USR,  { user process             0 }                                           APP,  { son of CI (application)  1 }                                           CI,   { CI process               2 }                                           TSK,  { task process             3 }                                           SYS,  { system process           4 }                                           DET,  { detached proc            5 }                                           JSM,  { JSMAIN proc              6 }                                           OTH); { unknown                  7 }                                                                                                      process_type_type = crunched record                                            case integer of                                                                  1: (all       :integer);                                                       2: (filler    :bit29;                                                              proc_type :MPE_process_type);                                              end;                                                                                                                                                        CPU_time_type = record                                                         case integer of                                                                  1: (all       :longint);                                                       2: (high_word :integer;                                                            low_word  :integer);                                                       end;                                                                                                                                                        proc_info_rec_type = record                                                      proc_PID     :PID_num_type;     { AIFPROCGET item 2001 }                       job_num      :job_ses_num_type; { AIFPROCGET item 2015 }                       jobname      :job_name_type;    { AIFJSGET item 1001 }                         user_name    :job_name_type;    { AIFJSGET item 1009 }                         group_name   :job_name_type;    { AIFJSGET item 1010 }                         acct_name    :job_name_type;    { AIFJSGET item 1011 }                         ldev         :integer;          { AIFJSGET item 1012 }                         start_date   :date_type;        { AIFJSGET item 1014 }                         start_time   :time_type;        { AIFJSGET item 1015 }                         progname     :filename_type;    { AIFPROCGET item 2034 }                       sched_queue  :sched_q_type;     { AIFPROCGET item 2017 }                       sched_pri    :integer;          { AIFPROCGET item 2019 }                       process_type :process_type_type;{ AIFPROCGET item 2033 }                       CPU_time     :CPU_time_type;    { AIFPROCGET item 2092 }                       end;                                                                                                                                                        counter_record_type = record                                                     socket_count  :integer;                                                        socket_owners :integer;                                                        end;                                                                                                                                                      $page, title 'SHOWCONN - constants and types '$                                  str_16_type = record                                                           case integer of                                                                  1: (str    :string[16]);                                                       2: (len    :integer;                                                               arr    :packed array [1..16] of char);                                     end;                                                                                                                                                        run_info_options_map_type = packed record                                      case integer of                                                                  1: (mask      :integer);   {bit}                                               2: (help      :boolean;    { 0 }  { help on command output     }                   mysess    :boolean;    { 1 }  { callers process family     }                   pin       :boolean;    { 2 }  { specified pin(s)           }                   job       :boolean;    { 3 }  { specified job(s)           }                   detail    :boolean;    { 4 }  { detail info for each proc. }                   noname    :boolean;    { 5 }  { no DNS name resolution     }                   name      :boolean;    { 6 }  { DNS names requested        }                   xptall    :boolean;    { 7 }  { everything from transport  }                   xport     :boolean;    { 8 }  { some transport info        }                   link      :boolean;    { 9 }  { link addresses also        }                   system    :boolean;    {10 }  { everything - entire system }                   kill      :boolean;    {11 }  { kill tcp conns of a process}                   debug     :boolean;    {12 }  { show debugging info        }                   trace     :boolean;    {13 }  { trace procedures called    }                   summary   :boolean;    {14 }  { produce summary at the end }                   version   :boolean);   {15 }  { show program file version  }               end;                                                                                                                                                        run_info_type = record                                                         case integer of                                                                  1: (str    :str256);                                                           2: (len    :integer;                                                               arr    :pac256);                                                           end;                                                                                                                                                        kwd_type  = record                                                             case integer of                                                                  1: (str    :string[max_kwd_len]);                                              2: (len    :integer;                                                               arr    :packed array[1..max_kwd_len] of char);                             end;                                                                                                                                                        kwd_entry_type = record                                                          ind        :integer;                                                           kwd        :kwd_type;                                                          end;                                                                                                                                                        kwd_array_type  = array [first_keyword..last_keyword] of kwd_entry_type;                                                                                    $page, title 'SHOWCONN - constants and types '$                                  sc_subsys_num_type   = (unused_subsys_num_zero,                                                        showconn);                                                                                                                            sc_error_type   = (err_no_error,                         {  0 }                                   err_internal_error,                   {  1 }                                   err_option_data_missing,              {  2 }                                   err_no_equal_sign_found,              {  3 }                                   err_failed_to_retrieve_all_pids,      {  4 }                                   err_AIFJSGET_error,                   {  5 }                                   err_AIFPROCGET_error,                 {  6 }                                   err_invalid_job_session_id,           {  7 }         s p@a*K�r��e�A��Lppp����                          err_failed_to_retrieve_js_PIDs,       {  8 }                                   err_failed_to_retrieve_process_PID,   {  9 }                                   err_illegal_capability_for_item_requested, { 10 }                              err_invalid_pin_number,               { 11 }                                   err_no_sockets_found,                 { 12 }                                   err_command_parser_error,             { 13 }                                   err_no_options_passed,                { 14 }                                   err_no_such_pin,                      { 15 }                                   err_no_such_job_sess,                 { 16 }                                   err_required_proc_missing);           { 17 }                                                                                               sc_status_type = packed record                                                 case integer of                                                                  1: (all       :bit32);                                                         2: (hpe       :hpe_status);                                                    3: (bit0_10   :bit11;                                                              sc_error  :sc_error_type;                                                      bit0_14   :bit15;                                                              sc_subsys :sc_subsys_num_type);                                            end;                                                                                                                                                        serv_name_type = record                                                        case integer of                                                                  1: (str    :string[max_serv_name_len]);                                        2: (len    :integer;                                                               arr    :packed array [1..max_serv_name_len] of char);                      end;                                                                                                                                                      $page, title 'SHOWCONN - constants and types '$                                  { The following socket states are named so that all should have }              { different, distinct 1st letter.  These 1st letters show up as }              { the socket state in command output.  Also, these states should}              { match the actual socket states as given in sockets code and   }              { include file "dskconn" - that also should match sockets master}              { definitions in their "real" include files.                    }              {                                                               }              { Enumerated types ALWAYS show up in capital letters and here   }              { the capitalization makes no difference.  The reason for that  }              { is purely documentation/readability so that the character     }              { that is wanted to appear in output is capitalized.  Downshift }              { occurs in process_output_flags routine by adding 32 to ascii  }              { code of the first character of enumerated values below.       }                                                                                             socket_state_type = (Unknown_st     ,  {  0 }                                                       Connecting_st  ,  {  1 }                                                       Wait_confirm_st,  {  2 }                                                       Duplex_open_st ,  {  3 }                                                       In_simplex_st  ,  {  4 }                                                       Out_simplex_st ,  {  5 }                                                       Losed_st_c     ,  {  6 } { closed 'L' leading char }                           Aborted_conn_st,  {  7 }                                                       Bound_st       ,  {  8 }                                                       Tening_lis     ,  {  9 } { lisTening 'T' leading   }                           Shut_st        ,  { 10 }                                                       Gering_lin     ,  { 11 } { really is "lingering" }                             Zed_initiali      { 12 }{ this state is really -1 and }                       );              { is documented as "initialized".I have}                                       { two problems with it.  1) 1st letter }                                       { collision with another state and     }                                       { 2) -1 is impossible with pascal's    }                                       { enumerated types,  so this code will }                                       { translate it by adding 13 to it...   }                                                                                  var_name_type = record                                                           case integer of                                                                1: (str   :string[max_varname_len]);                                           2: (len   :integer;                                                                arr   :array [1..max_varname_len] of char);                                end;                                                                                                                                                        var_info_type = record                                                            var_name   :var_name_type;                                                     case var_type:integer of                                                         create_str_var:                                                                  (var_str_value  :var_name_type;                                                 var_str_len    :integer);                                                   create_int_var:                                                                  (var_int_value  :integer);                                                 end;                                                                                                                                                       var_info_array_type = record                                                      num_variables     :integer;                                                    entry             :array [1..max_sc_ci_vars] of var_info_type;                 end;                                                                      $page, title 'SHOWCONN - constants and types '$                                                                                                               const                                                                            numeric              = ['0'..'9'];                                                                                                                            delimiters           = [' ', ';', ',', '!', '|'];                                                                                                             processes_with_ldevs = [USR, APP, CI, JSM];                                                                                                                                                                                                  sc_status_ok = sc_status_type                                                                       [ bit0_10   :0,                                                                  sc_error  :err_no_error,                                                       bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_internal_error = sc_status_type                                                                  [ bit0_10   :0,                                                                  sc_error  :err_internal_error,                                                 bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_option_incomplete = sc_status_type                                                               [ bit0_10   :0,                                                                  sc_error  :err_option_data_missing,                                            bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_option_missing_equal_sign = sc_status_type                                                       [ bit0_10   :0,                                                                  sc_error  :err_no_equal_sign_found,                                            bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_failed_to_retrieve_all_pids = sc_status_type                                                     [ bit0_10   :0,                                                                  sc_error  :err_failed_to_retrieve_all_pids,                                    bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_AIFJSGET_call_failed = sc_status_type                                                            [ bit0_10   :0,                                                                  sc_error  :err_AIFJSGET_error,                                                 bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_AIFPROCGET_call_failed = sc_status_type                                                          [ bit0_10   :0,                                                                  sc_error  :err_AIFPROCGET_error,                                               bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                               $page, title 'SHOWCONN - constants and types '$                                  sc_invalid_job_identifier = sc_status_type                                                          [ bit0_10   :0,                                                                  sc_error  :err_invalid_job_session_id,                                         bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_failed_to_retrieve_js_PIDs = sc_status_type                                                      [ bit0_10   :0,                                                                  sc_error  :err_failed_to_retrieve_js_PIDs,                                     bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_failed_to_retrieve_process_pid = sc_status_type                                                  [ bit0_10   :0,                                                                  sc_error  :err_failed_to_retrieve_process_PID,                                 bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_illegal_capability = sc_status_type                                                              [ bit0_10   :0,                                                                  sc_error  :err_illegal_capability_for_item_requested,                          bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_bad_pin_number = sc_status_type                                                                  [ bit0_10   :0,                                                                  sc_error  :err_invalid_pin_number,                                             bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_no_connections = sc_status_type                                                                  [ bit0_10   :0,                                                                  sc_error  :err_no_sockets_found,                                               bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_command_parser_failed = sc_status_type                                                           [ bit0_10   :0,                                                                  sc_error  :err_command_parser_error,                                           bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_no_options_passed = sc_status_type                                                               [ bit0_10   :0,                                                                  sc_error  :err_no_options_passed,                                              bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_status_no_such_pin = sc_status_type                                                              [ bit0_10   :0,                                                                  sc_error  :err_no_such_pin,                                                    bit0_14   :0,                                                                  sc_subsys :showconn ];                                $page, title 'SHOWCONN - constants and types '$                                                                                                                 sc_status_no_such_job_sess = sc_status_type                                                         [ bit0_10   :0,                                                                  sc_error  :err_no_such_job_sess,                                               bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 sc_status_required_procedure_missing = sc_status_type                                               [ bit0_10   :0,                                                                  sc_error  :err_required_proc_missing,                                          bit0_14   :0,                                                                  sc_subsys :showconn ];                                                                                                                 kwd_table = kwd_array_type                                                     [ kwd_entry_type [ind:kw_help    , kwd:kwd_type[arr :'HELP=   ', len :5 ]],      kwd_entry_type [ind:kw_mysess  , kwd:kwd_type[arr :'MYSESS= ', len :7 ]],      kwd_entry_type [ind:kw_pin     , kwd:kwd_type[arr :'PIN=    ', len :4 ]],      kwd_entry_type [ind:kw_job     , kwd:kwd_type[arr :'JOB=    ', len :4 ]],      kwd_entry_type [ind:kw_detail  , kwd:kwd_type[arr :'DETAIL= ', len :7 ]],      kwd_entry_type [ind:kw_noname  , kwd:kwd_type[arr :'NONAME= ', len :7 ]],      kwd_entry_type [ind:kw_name    , kwd:kwd_type[arr :'NAME=   ', len :5 ]],      kwd_entry_type [ind:kw_xptall  , kwd:kwd_type[arr :'XPTALL= ', len :7 ]],      kwd_entry_type [ind:kw_xport   , kwd:kwd_type[arr :'XPORT=  ', len :6 ]],      kwd_entry_type [ind:kw_link    , kwd:kwd_type[arr :'LINK=   ', len :5 ]],      kwd_entry_type [ind:kw_system  , kwd:kwd_type[arr :'SYSTEM= ', len :7 ]],      kwd_entry_type [ind:kw_kill    , kwd:kwd_type[arr :'KILL=   ', len :5 ]],      kwd_entry_type [ind:kw_debug   , kwd:kwd_type[arr :'DEBUG=  ', len :6 ]],      kwd_entry_type [ind:kw_trace   , kwd:kwd_type[arr :'TRACE=  ', len :6 ]],      kwd_entry_type [ind:kw_summary , kwd:kwd_type[arr :'SUMMARY=', len :8 ]],      kwd_entry_type [ind:kw_version , kwd:kwd_type[arr :'VERSION=', len :8 ]]     ];                                                                                                                                                            parm_ON  =  'ON';                                                              parm_OFF = 'OFF';                                                                                                                                                                                                                          $page, title 'SHOWCONN - constants and types (for DNS name lookup)'$           { begin cut/paste from my nslookup program }                                   {                                                                              --- type definition from C for gethostbyaddr functional return ---             struct hostent {                                                                   char *h_name;          /* official name of host              */                char **h_aliases;      /* alias list                         */                int  h_addrtype;       /* host address type                  */                int  h_length;         /* length of address                  */                char **h_addr_list;    /* list of addresses from name server */            }                                                                                                                                                             const                                                                            max_string_len    = 255;                                                       max_addr_list_len = 255;                                                                                                                                    type                                                                             dns_name_type = record                                                         case integer of                                                                  1: (str    :string[max_string_len]);                                           2: (len    :integer;                                                               arr    :packed array [0..max_string_len] of char);                         end;                                                                                                                                                        host_name_type        = packed array [0..max_string_len] of char;              host_name_ptr_type    = ^host_name_type;                                                                                                                      addr_type             = packed array [0..3] of byte;                           addr_ptr_type         = ^addr_type;                                            addr_ptr_list_type    = packed array [0..max_addr_list_len] of addr_ptr_type;  ptr_list_ptr_type     = ^addr_ptr_list_type;                                                                                                                  host_data_type = record                                                          host_name_ptr :host_name_ptr_type;                                             aliases_ptr   :ptr_list_ptr_type;                                              addrtype      :integer;                                                        addr_len      :integer;                                                        addr_ptr_list :ptr_list_ptr_type;                                              end;                                                                                                                                                        host_data_ptr_type = ^host_data_type;                                                                                                                         ip_address_type = record                                                       case integer of                                                                  1: (all    :bit32);                                                            2: (octet  :array [0..3] of byte);                                             3: (addr   :addr_type);             { for gethostbyaddr call }                 end;                                                                                                                                                      { end cut/paste from my nslookup program }                                                                                                                    $page, title 'SHOWCONN - constants and types '$                                  ip_addr_string_type  = string[15];                                             out_flags_type       = string[ 8];                                                                                                                                                                                                         const                                                                                                                                                           {---------------------------------------------------------------------------}  { NOTE: The following is not valid - causes a compile-time error.  You'll   }  {       need to put your company's assigned AIF user ID constant below.     }  {       AIF calls will not work without an HP recognized AIF user ID.       }  {---------------------------------------------------------------------------}                                                                                 c_aif_user_id        = xxxxxxxxxx;   { Change this line to your AIF user ID }                                                                                 {---------------------------------------------------------------------------}                                                                                 progen_pin           =          1;                                             max_aif_items        =         10;                                                                                                                            { AIFJSGET item numbers }                                                      item_jobname         =       1001;                                             item_user_name       =       1009;                                             item_group_name      =       1010;                                             item_acct_name       =       1011;                                             item_ldev            =       1012;                                             item_start_date      =       1014;                                             item_start_time      =       1015;                                             item_jsmain_pin      =       1017;                                                                                                                            { AIFPROCGET item numbers }                                                    item_proc_PID        =       2001;                                             item_sibling_pin     =       2006;                                             item_first_child_pin =       2008;                                             item_jsmain_proc_pin =       2010;                                             item_jobses_number   =       2015;                                             item_sched_queue     =       2017;                                             item_sched_priority  =       2019;                                             item_process_type    =       2033;                                             item_program_name    =       2034;                                             item_list_child_PIDs =       2066;                                             item_CPU_time_msecs  =       2092;                                             item_connection_info =       2149;                                             item_list_end        =          0;                                                                                                                            { Some AIF errors }                                                            AIF_error_no_such_job_sess =  -28;                                             AIF_error_process_died     =  -30;                                                                                                                            nil_PID_num      = PID_num_type    [ all : 0 ];                                nil_PID_list     = PID_num_array   [ max_maxpin of nil_PID_num ];              nil_PID_array    = PID_record_type [ process_count : max_maxpin,                                                    PID_entry     : nil_PID_list ];                                                                                          nil_conn_element   = ext_conn_element_type                                     [ local_ip_addr  :0,                                                             remote_ip_addr :0,                                                             local_sap      :0,                                                             remote_sap     :0,                                                             socket_state   :0,                                                             flags          :ext_conn_flags_type [ all : 0 ],                               protocol       :0,                                                             socket_type    :0,                                                             filler         :0                                                            ];                                                                                                                                                          $page, title 'SHOWCONN - constants and types '$                                { nil_conn_array   = ext_conn_type                                             { [ count : 0,                                                                 {   mode  : ALL_CONNECTIONS,                                                   {   entry : array[1..MAX_SOCKETS_PER_PROCESS] of nil_conn_element              { ];                                                                           {}                                                                               counters_all_zero = counter_record_type                                        [ socket_count  :0,                                                              socket_owners :0                                                             ];                                                                                                                                                            nil_job_ses_num_rec = job_ses_num_type                                         [ job_ses_id :js_type_none,                                                      js_number  :0,                                                                 extension  :0                                                                ];                                                                                                                                                            nil_job_name = job_name_type [16 of ' '];                          p@p@a*K�r��e�A��L�pp����                                                                                           nil_filename = filename_type                                                   [ filename   :nil_job_name,                                                      group      :nil_job_name,                                                      account    :nil_job_name                                                     ];                                                                                                                                                            nil_process_info_record = proc_info_rec_type                                   [ proc_PID     :nil_PID_num,                                                     job_num      :nil_job_ses_num_rec,                                             jobname      :nil_job_name,                                                    user_name    :nil_job_name,                                                    group_name   :nil_job_name,                                                    acct_name    :nil_job_name,                                                    ldev         :0,                                                               start_date   :date_type [ all : 0 ],                                           start_time   :time_type [ all : 0 ],                                           progname     :nil_filename,                                                    sched_queue  :sched_q_type [ all : 0 ],                                        sched_pri    :0,                                                               process_type :process_type_type                                                              [ filler    :0,                                                                  proc_type :oth  { unknown process (7) }                                      ],                                                               CPU_time     :CPU_time_type [ all : 0 ]                                      ];                                                                                                                                                          $page, title 'SHOWCONN - constants and types '$                                  default_run_info_options_map = run_info_options_map_type                       [ help      :false,                                                              mysess    :true,                                                               pin       :false,                                                              job       :false,                                                              detail    :true,                                                               noname    :true,                                                               name      :false,                                                              xptall    :false,                                                              xport     :false,                                                              link      :false,                                                              system    :false,                                                              kill      :false,                                                              debug     :false,                                                              trace     :false,                                                              summary   :true,                                                               version   :false                                                             ];                                                                                                                                                          type                                                                                                                                                            user_capabilities =                                                              (                                                           {  bits  }          SM   , AM   , AL   , GL   , DI    , OP    , CV    , UV   , {  0.. 7 }          LG   , SP   , PS   , NA   , NM    , cap_CS, ND    , SF   , {  8..15 }          res16, res17, res18, res19, res20 , res21 , res22 , BA   , { 16..23 }          IA   , PM   , res26, res27, MR    , res29 , cap_DS, PH     { 24..31 }         );                                                                                                                                                          capability_mask_type = packed set of user_capabilities;                                                                                                     const                                                                            required_capability = [SM, PM, NA, NM, OP];                                    empty_set           = [];                                                                                                                                   $page, title 'SHOWCONN - Global variables'$                                    var                                                                              run_parm               :integer;                                               error_parm             :integer;                                               run_info               :str256;                                                glob_user_caps         :capability_mask_type;                                  PID_array              :pid_record_type;                                       counters               :counter_record_type;                                   ip_address             :ip_address_type;                                       host_data_ptr          :host_data_ptr_type;                                    dns_name               :dns_name_type;                                         host_name              :host_name_type;                                        host_name_ptr          :host_name_ptr_type;                                    host_name_len          :integer;                                               host_aliases_len       :integer;                                               host_addr_list_len     :integer;                                               info_len               :integer;                                               h_errno                :integer;                                               opt                    :run_info_options_map_type;                             last_proc_num          :integer;                                               last_js_num            :string[ 8];                                            kwd_pos_arr            :array [first_keyword..last_keyword] of integer;        header_printed         :boolean;                                               trace_option_processed :boolean;                                               enough_capabilities    :boolean;                                               escape_reason          :hpe_status;                                            conn_abort_requested   :boolean;                                                                                                                            $page, title 'SHOWCONN - External procedures and Intrinsics'$                                                                                                 { Declared an "OPTION UNRESOLVED" procedure that we can use for checking }     { whether the required transport patch has been installed.  If procedure }     { sk_get_conn_info is not in NL.PUB.SYS, print a decent error message    }     { and terminate.  If not declared as "OPTION UNRESOLVED; EXTERNAL" the   }     { program would not load and an ugly "unresolved external" loader error  }     { would be reported instead.                                             }                                                                                    procedure sk_get_conn_info     { don't need nor use it and the definition }      option unresolved; external; { is incorrect anyway... just to make the  }                                   { program to issue a nice error message... }                                                                                   Procedure  SK_ABORT_CONNS (Pin : Pin_Type;                     {1257}                                     var Status : Hpe_Status);           {1257}          external;                                                      {1257}                                                                                         procedure who            ;intrinsic;                                           procedure debug          ;intrinsic;                                           procedure almanac        ;intrinsic;                                           procedure hpciputvar     ;intrinsic;                                                                                                                          $sysintr 'AIFINTR.PUB.SYS'$                                                    procedure AIFPROCGET     ;intrinsic;                                           procedure AIFJSGET       ;intrinsic;                                           procedure AIFACCESSON    ;intrinsic;                                           procedure AIFACCESSOFF   ;intrinsic;                                                                                                                          function  get_mypin  :pin_type     ;external;                                  function  gethostbyaddr(var addr    :addr_type;                                                            len     :integer;                                                              atype   :integer;                                                          var h_errno :integer  ) :host_data_ptr_type; external;                                                                                                                                                               $page, title 'SHOWCONN - Internal procedures and functions'$                                                                                                  procedure abort_tcp_connections(pin :pin_type);                                var  status    :hpe_status;                                                    begin                                                                             sk_abort_conns (pin, status);                                                  if status.info <> ALL_OK then                                                     begin                                                                          writeln('failed to abort connections for pin ', pin:1);                        writeln('status: subsys=', status.subsys:1, ', info=', status.info:1);         end;                                                                     end;                                                                                                                                                          procedure set_ci_variables (err_msg       :var_name_type;                                                  error_num     :integer;                                                        num_processes :integer;                                                        num_sockets   :integer;                                                        num_owners    :integer );                          const                                                                            sc_error             = 'HPSCERR ';                                             sc_error_text        = 'HPSCERRTXT ';                                          sc_version           = 'HPSCVERSION ';                                         sc_num_processes     = 'HPSCNUMPROCS ';                                        sc_num_sockets       = 'HPSCNUMSOCKETS ';                                      sc_num_socket_owners = 'HPSCNUMSOCKOWNERS ';                                 var                                                                              var_info_array :var_info_array_type;                                           i              :integer;                                                       status         :hpe_status;                                                                                                                                 procedure civar_error(err_num :shortint; var_value:shortint);                  begin                                                                            writeln ('error setting CI variable...', err_num, var_value);                end;                                                                                                                                                          begin                                                                            with var_info_array do                                                           begin                                                                          entry[1].var_name.str      := sc_version;                                      entry[1].var_type          := create_str_var;                                  entry[1].var_str_value.str := showconn_version;                                entry[1].var_str_len       := 11;                                                                                                                             entry[2].var_name.str      := sc_error;                                        entry[2].var_type          := create_int_var;                                  entry[2].var_int_value     := error_num;                                                                                                                      entry[3].var_name.str      := sc_error_text;                                   entry[3].var_type          := create_str_var;                                  entry[3].var_str_value.str := err_msg.str;                                     entry[3].var_str_len       := err_msg.len;                                                                                                                    entry[4].var_name.str      := sc_num_processes;                                entry[4].var_type          := create_int_var;                                  entry[4].var_int_value     := num_processes;                                                                                                                  entry[5].var_name.str      := sc_num_sockets;                                  entry[5].var_type          := create_int_var;                                  entry[5].var_int_value     := num_sockets;                                                                                                                    entry[6].var_name.str      := sc_num_socket_owners;                            entry[6].var_type          := create_int_var;                                  entry[6].var_int_value     := num_owners;                                                                                                                     num_variables := max_sc_ci_vars;                                               end; { with }                                                                                                                                               status.all := all_ok;                                                          for i:=1 to var_info_array.num_variables do                                      begin                                                                             with var_info_array.entry[i] do                                                begin                                                                          case var_type of                                                                  create_str_var:                                                                  begin                                                                          hpciputvar(var_name.arr      , status,                                                    create_str_var    , var_str_value.arr,                                         string_length_item, var_str_value.len);                             if status.all <> all_ok then                                                      civar_error(1, var_str_value.len);                                          end;                                                                                                                                                        create_int_var:                                                                  begin                                                                          hpciputvar(var_name.arr, status, create_int_var, var_int_value);               if status.all <> all_ok then                                                      civar_error(2, var_int_value);                                              end;                                                                                                                                                        otherwise writeln('unknown type of var passed in, type=',var_type:1);          end; {case}                                                                 end; { with var_info_array }                                                end; { for i:=... }                                                        end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure err_msg(sc_status :sc_status_type;                                                     parm      :integer)                                                                                                                         option default_parms (parm := 0);                                                                                                                             var                                                                              err_text     :string[80];                                                      err_descr    :var_name_type;                                                   nextpos      :integer;                                                       begin                                                                            nextpos  := 1;                                                                 err_text := '';                                                                case sc_status.sc_error of                                                                                                                                  { 1} err_internal_error:                                                              err_text := 'Internal error.';                                                                                                                         { 2} err_option_data_missing:                                                         err_text := 'Option data missing.';                                                                                                                    { 3} err_no_equal_sign_found:                                                         err_text := 'Missing equal-sign.';                                                                                                                     { 4} err_failed_to_retrieve_all_pids:                                                 err_text := 'Failed to retrieve all PIDs.';                                                                                                            { 5} err_AIFJSGET_error:                                                              err_text := 'AIFJSGET call failed.';                                                                                                                   { 6} err_AIFPROCGET_error:                                                            err_text := 'AIFPROCGET call failed.';                                                                                                                 { 7} err_invalid_job_session_id:                                                      err_text := 'Invalid job/session identifier.';                                                                                                         { 8} err_failed_to_retrieve_js_PIDs:                                                  err_text := 'Failed to retrieve job/session PIDs';                                                                                                     { 9} err_failed_to_retrieve_process_PID:                                              err_text := 'Failed to retrieve process PID.';                                                                                                         {10} err_illegal_capability_for_item_requested:                                       err_text := 'More capabilities required for item(s) requested.';                                                                                       {11} err_invalid_pin_number:                                                          err_text := 'Invalid pin number.';                                                                                                                     {12} err_no_sockets_found:                                                            err_text := 'No sockets found for' +                                                       ' processes matching selection criteria.';                                                                                                 {13} err_command_parser_error:                                                        err_text := 'SHOWCONN command parser failed.';                                                                                                         {14} err_no_options_passed:                                                           err_text := 'SHOWCONN found no options to process.';                                                                                                   {15} err_no_such_pin:                                                                  strwrite(err_text, 1, nextpos,                                                         'Pin number ', parm:1, ' does not exist.');                                                                                                   {16} err_no_such_job_sess:                                                             strwrite(err_text, 1, nextpos,                                                         'Job number #',                                                $PUSH, TYPE_COERCION 'REPRESENTATION'$                                                          job_ses_num_type(parm).job_ses_id:1,                                           job_ses_num_type(parm).js_number:1,                           $POP$                                                                                          ' does not exist.');                                                                                                                          {17} err_required_proc_missing:                                                       err_text := 'Required NL.PUB.SYS procedure sk_get_conn_info missing.';                                                                                      otherwise err_text := 'Unknown error encountered.';                            end; { case }                                                                                                                                                                                                                             strwrite(err_text, strlen(err_text) + 1, nextpos,                            $PUSH, TYPE_COERCION 'CONVERSION'$                                                        ' (SC ERROR ', integer(sc_status.sc_error):1, ')');                 $POP$                                                                                                                                                                                                                                                                                                                         err_descr.str := err_text;                                                     set_ci_variables (err_descr,                                                 $PUSH, TYPE_COERCION 'CONVERSION'$                                                                 integer(sc_status.sc_error),                               $POP$                                                                                              PID_array.process_count,                                                       counters.socket_count,                                                         counters.socket_owners);                                     writeln(err_text);                                                           end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function sk_get_conn_info_exists:boolean;                                      begin                                                                            sk_get_conn_info_exists := (addr(sk_get_conn_info) <> NIL);                  end;                                                                                                                                                          function upshift(input_str :str256) :str256;                                   const                                                                            lower_case = ['a'..'z'];                                                     var                                                                              i :integer;                                                                  begin                                                                            if opt.trace then                                                                 writeln('>upshift');                                                        for i:=1 to strlen(input_str) do                                                 if input_str[i] in lower_case then                                                input_str[i] := chr(ord(input_str[i])-32);                                upshift := input_str;                                                          if opt.trace then                                                                 writeln('upshift');                                                       end;                                                                                                                                                          procedure enable_AIF_access;                                                   var                                                                              local_status :hpe_status;                                                    begin                                                                            if opt.trace then                                                                 writeln('>enable_AIF_access');                                              local_status.all := all_OK;                                                    AIFACCESSON (local_status, c_aif_user_id);                                     if local_status.all <> all_OK then                                               writeln ('Failed to enable AIF access, status=',local_status.all:1);         if opt.trace then                                                                 writeln('enable_AIF_access');                                             end;                                                                                                                                                          procedure disable_AIF_access;                                                  var                                                                              local_status :hpe_status;                                                    begin                                                                            if opt.trace then                                                                 writeln('>disable_AIF_access');                                             local_status.all := all_OK;                                                    AIFACCESSOFF (local_status, c_aif_user_id);                                    if local_status.all <> all_OK then                                               writeln ('Failed to disable AIF access, status=',local_statup@p@a*K�r��e�A��LPpp����s.all:1);        if opt.trace then                                                                 writeln('disable_AIF_access');                                            end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure dump_PID_array_contents;                                             var                                                                              index :integer;                                                              begin                                                                            if opt.trace then                                                                 writeln('>dump_PID_array_contents');                                        writeln ('number of entries in PID_array: ',PID_array.process_count:1);        for index:=1 to PID_array.process_count do                                       writeln (index:2,': ', PID_array.PID_entry[index].pin         :5,                                     PID_array.PID_entry[index].re_use_count:5,                                     PID_array.PID_entry[index].all         :20);          if opt.trace then                                                                 writeln('dump_PID_array_contents');                                       end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure get_PID_by_pin(    pin_num   :integer;                                                        var sc_status :sc_status_type);                       var                                                                              local_status     :hpe_status;                                                  PID_num          :PID_num_type;                                                item_num_array   :array[1..max_aif_items] of integer;                          item_array       :array[1..max_aif_items] of globalanyptr;                     item_statuses    :array[1..max_aif_items] of hpe_status;                                                                                                    begin                                                                            if opt.trace then                                                                 writeln('>get_PID_by_pin');                                                 local_status.all      := all_OK;                                               PID_array             := nil_PID_array;                                                                                                                       item_num_array[1]     := item_proc_PID;                                        item_array    [1]     := addr(PID_num);                                        item_statuses [1].all := all_OK;                                               item_num_array[2]     := item_list_end;                                                                                                                       AIFPROCGET(local_status, item_num_array, item_array, item_statuses, pin_num);                                                                                 if ( local_status.all <> all_OK ) then                                           begin                                                                          case local_status.info of                                                         AIF_error_process_died:                                                           sc_status := sc_status_no_such_pin;                                         otherwise                                                                         sc_status := sc_failed_to_retrieve_process_pid;                             end; { case }                                                                                                                                              PID_array.process_count := 0;                                                  if opt.debug then                                                                writeln('AIFPROCGET status: subsys=',local_status.subsys:1,                                                ' info=',local_status.info:1);                   end                                                                          else                                                                             begin                                                                          PID_array.process_count := 1;                                                  PID_array.PID_entry[1]  := PID_num;                                            if opt.debug then                                                                 dump_PID_array_contents;                                                    end;                                                                         if opt.trace then                                                                 writeln('get_PID_by_pin');                                                end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure process_option_system(var sc_status :sc_status_type);                var                                                                              local_status     :hpe_status;                                                  item_num_array   :array[1..max_aif_items] of integer;                          item_array       :array[1..max_aif_items] of globalanyptr;                     item_statuses    :array[1..max_aif_items] of hpe_status;                                                                                                    begin                                                                            if opt.trace then                                                                 writeln('>process_option_system');                                          local_status.all        := all_OK;                                             PID_array               := nil_PID_array;                                                                                                                     item_num_array[1]     := item_list_child_PIDs;                                 item_array    [1]     := addr(PID_array);                                      item_statuses [1].all := all_OK;                                               item_num_array[2]     := item_list_end;                                                                                                                       AIFPROCGET( local_status, item_num_array, item_array, item_statuses,                       progen_pin);                                                                                                                                      if ( local_status.all <> all_OK ) then                                           begin                                                                          sc_status := sc_failed_to_retrieve_all_pids;                                   if opt.debug then                                                                writeln('AIFPROCGET status: subsys=',local_status.subsys:1,                                                ' info=',local_status.info:1);                   end                                                                          else                                                                             if opt.debug then                                                                 dump_PID_array_contents;                                                  if opt.trace then                                                                 writeln('process_option_system');                                         end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure print_header;                                                        var                                                                              header_line_1 :string[80];                                                     header_line_2 :string[80];                                                     nextpos       :integer;                                                      begin                                                                            if opt.trace then                                                                 writeln('>print_header');                                                   header_line_1 := '';                                                           header_line_2 := '';                                                           writeln;                                                                       strwrite(header_line_1, 1, nextpos,                                                     'JOBNUM  INTRO DATE AND TIME    LDEV   USERNAME');                           { '#S3     MON JUL 24 1995 18:50    15   MANAGER.SYS,PUB' }                                                                                            strwrite(header_line_2, 1, nextpos,                                                     ' REMOTE ADDRESS  RPORT  LPORT  FLAGS   PIN(PROGRAM)');                      { '    15.13.196.72 32818   1537  utcon3   61(VTSERVER.NET.SYS)'  }     if opt.name then                                                                  strwrite(header_line_2, nextpos, nextpos, ' DNS-NODENAME');                 writeln (header_line_1);                                                       writeln (header_line_2);                                                       if opt.trace then                                                                 writeln('print_header');                                                  end;                                                                                                                                                                                                                                         function  find_first_nil_char (name_ptr  :host_name_ptr_type): integer;          var     index          :integer;                                                       nil_char_found :boolean;                                               begin                                                                          if opt.trace then                                                                 writeln('>find_first_nil_char');                                            index          := 0;                                                           nil_char_found := false;                                                       repeat                                                                           if name_ptr^[index] = chr(0) then                                                 nil_char_found := true                                                      else                                                                              index := index + 1;                                                       until nil_char_found or (index = max_string_len);                              if nil_char_found then                                                           find_first_nil_char := index                                                 else                                                                             find_first_nil_char := 0;                                                    if opt.trace then                                                                 writeln('find_first_nil_char');                                             end;                                                                                                                                                        $page, title 'SHOWCONN - Internal procedures and functions'$                   function  find_first_nil_ptr(addr_ptr_list_ptr:ptr_list_ptr_type):integer;       var     index          :integer;                                                       nil_ptr_found  :boolean;                                               begin                                                                          if opt.trace then                                                                 writeln('>find_first_nil_ptr');                                             index         := 0;                                                            nil_ptr_found := false;                                                        repeat                                                                           if addr_ptr_list_ptr^[index] = nil then                                           nil_ptr_found := true                                                       else                                                                              index := index + 1;                                                       until nil_ptr_found or (index = max_addr_list_len);                            if nil_ptr_found then                                                            find_first_nil_ptr := index                                                  else                                                                             find_first_nil_ptr := 0;                                                     if opt.trace then                                                                 writeln('find_first_nil_ptr');                                              end;                                                                                                                                                        function get_host_name (host_name_ptr :host_name_ptr_type) :dns_name_type;       var  i:integer;                                                                begin                                                                          if opt.trace then                                                                 writeln('>get_host_name');                                                  host_name_len := find_first_nil_char(host_data_ptr^.host_name_ptr);            for i:=0 to host_name_len do                                                     dns_name.arr[i] := host_data_ptr^.host_name_ptr^[i];                         dns_name.len := host_name_len;                                                 get_host_name := dns_name;                                                     if opt.trace then                                                                 writeln('get_host_name');                                                   end;                                                                                                                                                        $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure show_host_aliases (alias_list_ptr :ptr_list_ptr_type);                 var  i, j      :integer;                                                            alias_ptr :host_name_ptr_type;                                            begin                                                                          if opt.trace then                                                                 writeln('>show_host_aliases');                                              host_aliases_len := find_first_nil_ptr (host_data_ptr^.aliases_ptr);           writeln ('number of alias names = ', host_aliases_len:1);                      for i:=0 to host_aliases_len-1 do                                                begin                                                                          $PUSH, TYPE_COERCION 'CONVERSION'$                                             alias_ptr := host_name_ptr_type(host_data_ptr^.aliases_ptr^[i]);               $POP$                                                                          host_name_len := find_first_nil_char(alias_ptr);                               for j:=0 to host_name_len-1 do                                                   dns_name.arr[j] := alias_ptr^[j];                                            dns_name.len := host_name_len;                                                 writeln ((i+1):3,': "', dns_name.str, '"');                                    end;                                                                         if opt.trace then                                                                 writeln('show_host_aliases');                                               end;                                                                                                                                                        procedure show_host_addresses(addr_ptr_list :ptr_list_ptr_type);                 var address_ptr :addr_ptr_type;                                                    index       :integer;                                                      begin                                                                          if opt.trace then                                                                 writeln('>show_host_addresses');                                            host_addr_list_len := find_first_nil_ptr (addr_ptr_list);                      for index := 0 to host_addr_list_len-1 do                                        writeln ('Address:   ',                                                                  addr_ptr_list^[index]^[0]:1, '.',                                              addr_ptr_list^[index]^[1]:1, '.',                                              addr_ptr_list^[index]^[2]:1, '.',                                              addr_ptr_list^[index]^[3]:1);                                      if opt.trace then                                                                 writeln('show_host_addresses');                                             end;                                                                                                                                                        procedure get_host_by_addr(ip_address_parm  :ip_address_type);                   begin                                                                          if opt.trace then                                                                 writeln('>get_host_by_addr');                                               with ip_address_parm do                                                          begin                                                                          host_data_ptr := gethostbyaddr(ip_address_parm.addr, 4, 2, h_errno);           if h_errno <> 0 then                                                              writeln ('error ',h_errno:1, 'from gethostbyaddr.');                        end;                                                                         if opt.trace then                                                                 writeln('get_host_by_addr');                                                end;                                                                                                                                                        $page, title 'SHOWCONN - Internal procedures and functions'$                   function pac_to_string (input_arr    :job_name_type):str_16_type;              const                                                                            nil_str_16 = str_16_type                                                       [ len   : 0,                                                                     arr   : '                '                                                   ];                                                                                                                                                          var                                                                              temp_str :str_16_type;                                                         i        :integer;                                                           begin                                                                            if opt.trace then                                                                 writeln('>pac_to_string');                                                  if opt.debug then                                                                 begin                                                                          prompt('IN : ');                                                               for i:=1 to 16 do write(input_arr[i], '=',ord(input_arr[i]):1,'|');            writeln;                                                                       end;                                                                        temp_str     := nil_str_16;                                                    temp_str.len := 1;                                                             while input_arr[temp_str.len] <> ' ' do                                          begin                                                                          temp_str.arr[temp_str.len] := input_arr[temp_str.len];                         temp_str.len := temp_str.len + 1;                                              end;                                                                         temp_str.len  := temp_str.len - 1;                                             pac_to_string := temp_str;                                                     if opt.debug then                                                                 writeln('out: "',temp_str.str,'" - len=',temp_str.len:1);                   if opt.trace then                                                                 writeln('pac_to_string');                                                 end;                                                                                                                                                          function conv_ip_to_str(ip_addr_int  :bit32) :ip_addr_string_type;             var                                                                              temp_ip_str  :ip_addr_string_type;                                             temp_ip      :ip_address_type;                                                 nextpos      :integer;                                                       begin                                                                            if opt.trace then                                                                 writeln('>conv_ip_to_str');                                                 temp_ip.all := ip_addr_int;                                                    temp_ip_str := '';                                                             if temp_ip.all <> 0 then                                                          strwrite(temp_ip_str, 1, nextpos,                                                       temp_ip.octet[0]:1,'.',                                                        temp_ip.octet[1]:1,'.',                                                        temp_ip.octet[2]:1,'.',                                                        temp_ip.octet[3]:1);                                               conv_ip_to_str := temp_ip_str;                                                 if opt.trace then                                                                 writeln('conv_ip_to_str');                                                end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function translate_tcp_port_to_service(port_num :integer): serv_name_type;     var                                                                              temp_str     :string[max_serv_name_len];                                       nextpos      :integer;                                                       begin                                                                             if opt.trace then                                                                 writeln('>translate_tcp_port_to_service');                                  temp_str := '';                                                                case port_num of                                                                    0: temp_str := '      ';                                                       7: temp_str := 'echo  ';                                                       9: temp_str := 'discrd';                                                      11: temp_str := 'systat';                                                      13: temp_str := 'daytim';                                                      17: temp_str := 'qotd  ';                                                      19: temp_str := 'chargn';                                                      20: temp_str := 'ftpdat';                                                      21: temp_str := 'ftpcmd';                                                      23: temp_str := 'telnet';                                                      25: temp_str := 'smtp  ';                                                      37: temp_str := 'time  ';                                                      39: temp_str := 'rlp   ';                                                      43: temp_str := 'whois ';                                                      53: temp_str := 'domain';                                                      67: temp_str := 'bootps';                                                      68: temp_str := 'bootpc';                                                      69: temp_str := 'tftp  ';                                                      79: temp_str := 'finger';                                                      95: temp_str := 'supdup';                                                     101: temp_str := 'hostn ';                                                     109: temp_str := 'pop   ';                                                     111: temp_str := 'portmp';                                                     113: temp_str := 'auth  ';                                                     115: temp_str := 'sftp  ';                                                     117: temp_str := 'uucp-p';                                                     119: temp_str := 'nntp  ';                                                     123: temp_str := 'ntp   ';                                                     137: temp_str := 'ntbios';                                                     138: temp_str := 'ntbios';                                                     139: temp_str := 'ntbios';                                                     152: temp_str := 'bftp  ';                                                     161: temp_str := 'snmp  ';                                                     162: temp_str := 'snmptr';                                                     179: temp_str := 'bgp   ';                                                     512: temp_str := 'exec  ';                                                     513: temp_str := 'login ';                                                     514: temp_str := 'syslog';                                                     515: temp_str := 'printr';                                                     517: temp_str := 'talk  ';                                                     518: temp_str := 'ntalk ';                                                     520: temp_str := 'rip   ';                                                     525: temp_str := 'timed ';                                                     543: temp_str := 'klogin';                                                     544: temp_str := 'kshell';                                                     545: temp_str := 'ekshel';                                                     570: temp_str := 'lansrm';                                                     750: temp_str := 'kerbrs';                                                     760: temp_str := 'kreg  ';                                                     761: temp_str := 'kpwd  ';                                                     987: temp_str := 'DASrvr';                           p@p@a*K�r��e�A��L�pp����                         1067: temp_str := 'iboots';                                                    1068: temp_str := 'ibootc';                                                    1080: temp_str := 'socks ';                                                    1234: temp_str := 'postms';                                                    1260: temp_str := 'loopbk';                                                    1536: temp_str := 'nft   ';                                                    1537: temp_str := 'vt    ';                                                    1538: temp_str := 'vtr   ';                                                    1540: temp_str := 'ptop  ';                                                    1541: temp_str := 'sockrg';                                                    1542: temp_str := 'rpm   ';                                                    1570: temp_str := 'vta   ';                                                    1889: temp_str := 'pmlock';                                                    2049: temp_str := 'nfsd  ';                                                    2105: temp_str := 'eklogn';                                                    2106: temp_str := 'netdst';                                                    2150: temp_str := 'ninst ';                                                    2560: temp_str := 'rfa   ';                                                    2564: temp_str := 'nsstat';                                                    4672: temp_str := 'rfa   ';                                                    5696: temp_str := 'pds   ';                                                    5697: temp_str := 'hdspns';                                                    5710: temp_str := 'hcs   ';                                                    5718: temp_str := 'pdss  ';                                                    5999: temp_str := 'grmd  ';                                                    6111: temp_str := 'spc   ';                                                    7489: temp_str := 'iasql ';                                                    7490: temp_str := 'hpip  ';                                                    7815: temp_str := 'ShardX';                                                    9411: temp_str := 'umdir ';                                                   21490: temp_str := 'gnusrv';                                                   22370: temp_str := 'hpnpd ';                                                   otherwise strwrite(temp_str, 1, nextpos, port_num:5, ' ');                     end; { case }                                                                 translate_tcp_port_to_service.str := temp_str;                                 if opt.trace then                                                                 writeln('translate_tcp_port_to_service');                                end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure pin_detail_display (PID_arr_index :integer;                                                        conn_arr      :ext_conn_type;                                                  proc_info     :proc_info_rec_type);              var                                                                              date_error     :shortint;                                                      al_year        :shortint;                                                      al_month       :shortint;                                                      al_day         :shortint;                                                      al_wkday       :shortint;                                                      nextpos        :integer;                                                       index          :integer;                                                       ip_addr        :ip_address_type;                                               proc_start     :string[40];                                                    tmp_type       :string[40];                                                    tmp_prot       :string[40];                                                    tmp_state      :string[80];                                                    tmp_port       :serv_name_type;                                                host_name      :dns_name_type;                                               begin                                                                            if opt.trace then                                                                 writeln('>pin_detail_display');                                             proc_start := '';                                                              with proc_info do                                                              begin                                                                          writeln;                                                                       writeln('pin(program)    : ',                                                           PID_array.PID_entry[PID_arr_index].pin:1,                                     '(', pac_to_string(progname.filename).str, '.',                                     pac_to_string(progname.group).str, '.',                                        pac_to_string(progname.account).str, ')'                                 );                                                                      writeln('pin re-use count: ',                                                           PID_array.PID_entry[PID_arr_index].re_use_count:1);                                                                                                  if (process_type.proc_type IN processes_with_ldevs) then                          writeln('ldev/job/session: ', ldev:1, ' ',                                                            '#' , job_num.job_ses_id:1,                                                          job_num.js_number:1,                                                     ' ' , pac_to_string(jobname).str,',',                                                pac_to_string(user_name).str,'.',                                              pac_to_string(acct_name).str,',',                                              pac_to_string(group_name).str                            );                                                                   writeln('scheduling info : ', sched_queue.queue, ' priority ',                                              ((32767-sched_pri) div 128):1);                   writeln('cpu time used   : ', cpu_time.all:1, ' msec');                        writeln('process type    : ', process_type.proc_type);                                                                                                        if (process_type.proc_type IN processes_with_ldevs) then                          begin                                                                          date_error := 0;                                                               almanac(start_date.low_16_bits, date_error,                                            al_year, al_month, al_day, al_wkday);                                  if (date_error = 0) then                                                          begin                                                                          strwrite(proc_start, 1, nextpos,                                       $PUSH, TYPE_COERCION 'CONVERSION'$                                                              weekday_type(al_wkday),' ',                                                    month_name_type(al_month),                                    $POP$                                                                                           al_day:3,                                                                      1900+start_date.year:5, ' ');                                         if start_time.hour < 10 then                                                      strwrite(proc_start, nextpos, nextpos,                                                  '0', start_time.hour:1, ':')                                       else                                                                              strwrite(proc_start, nextpos, nextpos,                                                  start_time.hour:2, ':');                                           if start_time.minute < 10 then                                                    strwrite(proc_start, nextpos, nextpos,                                                  '0', start_time.minute:1, ':')                                     else                                                                              strwrite(proc_start, nextpos, nextpos,                                                  start_time.minute:2, ':');                                         if start_time.second < 10 then                                                    strwrite(proc_start, nextpos, nextpos,                                                  '0', start_time.second:1, '.', start_time.tenth:1)                 else                                                                              strwrite(proc_start, nextpos, nextpos,                                                  start_time.second:2, '.', start_time.tenth:1);                     end;                                                                        writeln('start time      : ', proc_start);                                     end;                                                                        end; { with proc_info }                                                                                                                                       writeln('sockets in use  : ', conn_arr.count:1);                               for index:=1 to conn_arr.count do                                                begin                                                                          counters.socket_count := counters.socket_count + 1;                            with conn_arr.entry[index] do                                                    begin                                                                          writeln('============ SOCKET #',index:1,' ============');                      writeln('local');                                                              writeln('  ip address    : ', conv_ip_to_str(local_ip_addr));                  if (socket_type = CONNECTION_SOCKET) then                                         begin                                                                          ip_addr.all := local_ip_addr;                                                  get_host_by_addr(ip_addr);                                                     if host_data_ptr = nil then                                                      strwrite(host_name.str, 1, nextpos, 'no data for host.')                     else                                                                             host_name := get_host_name(host_data_ptr^.host_name_ptr);                    end                                                                         else                                                                              host_name.str := '';                                                        writeln('  node name     : ', host_name.str);                                  tmp_port.str:=strltrim(translate_tcp_port_to_service(local_sap).str);          if tmp_port.str[1] IN numeric then                                                writeln('  socket address: ', tmp_port.str)                                 else                                                                              writeln('  socket address: ', tmp_port.str, ' (',local_sap:1,')');                                                                                         case protocol of                                                                 TCP_PROTOCOL: tmp_prot := 'TCP';                                               UDP_PROTOCOL: tmp_prot := 'UDP';                                               PXP_PROTOCOL: tmp_prot := 'PXP';                                               otherwise tmp_prot := '?';                                                   end; { case }                                                                                                                                                                                                                                case socket_type of                                                              CONNECTION_SOCKET : tmp_type := 'connection socket';                           DATAGRAM_SOCKET   : tmp_type := 'datagram socket';                             CALL_SOCKET       : tmp_type := 'call socket';                                 otherwise   tmp_type := '?';                                                 end; { case }                                                                  case socket_state of                                                            -1: tmp_state := 'Connection doesn''t exist (initialized)';                     0: tmp_state := 'Unknown state';                                               1: tmp_state := 'IPCCONNECT called, wait for IPCRECV';                         2: tmp_state := 'IPCRECVCN done, user must accept/reject';                     3: tmp_state := 'Connected, can send and recv data';                           4: tmp_state := 'Initiated graceful close, can only receive';                  5: tmp_state := 'Received graceful close, send only';                          6: tmp_state := 'Both parties closed, user must shut';                         7: tmp_state := 'Connection aborted, user must shut';                          8: tmp_state := 'Socket is bound to an address';                               9: tmp_state := 'sk_listen has been called (listening)';                      10: tmp_state := 'Socket shutdown or encounteered error';                      11: tmp_state := 'Socket shutdown lingering pending';                          otherwise tmp_state := '?';                                                    end; { case }                                                                                                                                                writeln('  socket type   : ', tmp_type);                                       writeln('  socket protocl: ', tmp_prot);                                       writeln('  socket state  : ', tmp_state);                                      writeln('  socket flags');                                                     writeln('    select supported    : ', flags.select_supported);                 writeln('    BSD socket          : ', flags.bsd_sk);                           writeln('    catch all flag      : ', flags.catch_all_flag);                   writeln('    tcp msg mode        : ', flags.tcp_msg_mode);                     writeln('    connection initiator: ', flags.connection_initiator);                                                                                            if (socket_type = CONNECTION_SOCKET) then                                         begin                                                                          writeln('remote');                                                             writeln('  ip address    : ', conv_ip_to_str(remote_ip_addr));                 ip_addr.all := remote_ip_addr;                                                 get_host_by_addr(ip_addr);                                                     if host_data_ptr = nil then                                                      strwrite(host_name.str, 1, nextpos, 'no data for host.')                     else                                                                             host_name := get_host_name(host_data_ptr^.host_name_ptr);                    writeln('  node name     : ', host_name.str);                                  tmp_port.str:=strltrim(translate_tcp_port_to_service(remote_sap).str);         if tmp_port.str[1] IN numeric then                                                writeln('  socket address: ', tmp_port.str)                                 else                                                                              writeln('  socket address: ', tmp_port.str, ' (',remote_sap:1,')');         end                                                                        end;                                                                        end;                                                                           if opt.trace then                                                                 writeln('pin_detail_display');                                            end;                                                                                                                                                          procedure display_summary;                                                     begin                                                                            if opt.trace then                                                                 writeln('>display_summary');                                                writeln;                                                                       writeln ('Total processes checked: ', PID_array.process_count:4);              writeln ('Processes with sockets : ', counters.socket_owners:4);               writeln ('Total sockets open     : ', counters.socket_count :4);               writeln;                                                                       if opt.trace then                                                                 writeln('display_summary');                                               end;                                                                                                                                                                                                                                         $page, title 'SHOWCONN - Internal procedures and functions'$                   function process_output_flags(proc_type   :MPE_process_type;                                                 protocol    :bit8;                                                             socket_type :bit8;                                                             flags       :ext_conn_flags_type;                                              socket_state:shortint ) :out_flags_type;         var                                                                              tmp_flags :out_flags_type;                                                     nextpos   :integer;                                                          begin                                                                            if opt.trace then                                                                 writeln('>process_output_flags');                                           nextpos   :=  0;                                                               tmp_flags := '';                                                                                                                                              { 1st flag }                                                                   strwrite(tmp_flags, 1, nextpos, proc_type:1);                                  tmp_flags[1] := chr(ord(tmp_flags[1])+32);    { downshift to lower-case }                                                                                     { 2nd flag }                                                                   case protocol of                                                                 TCP_PROTOCOL: tmp_flags := tmp_flags + 't';                                    UDP_PROTOCOL: tmp_flags := tmp_flags + 'u';                                    PXP_PROTOCOL: tmp_flags := tmp_flags + 'p';                                    otherwise tmp_flags := tmp_flags + '?';                                      end; { case }                                                                                                                                                 { 3rd flag }                                                                   case socket_type of                                                              CONNECTION_SOCKET : tmp_flags := tmp_flags + 'c';                              DATAGRAM_SOCKET   : tmp_flags := tmp_flags + 'd'; { datagram socket     }      CALL_SOCKET       : tmp_flags := tmp_flags + 'l'; { call socket (Listen)}      otherwise           tmp_flags := tmp_flags + '?';                            end; { case }                                                                                                                                                 { kludge here since sk_get_conn_info returns bogus info for PXP }              { call socket...  convert all unknown PXP sockets to display    }              { a call socket instead of "?" which doesn't look too nice...   }                                                                                             if (tmp_flags[strlen(tmp_flags)] = '?') and (protocol=PXP_PROTOCOL) then           tmp_flags[strlen(tmp_flags)] := 'l';                                                                                                                      { 4th flag }                                                                   if socket_type = CONNECTION_SOCKET then                                           if flags.connection_initiator then                                                tmp_flags := tmp_flags + 'o'  { outgoing connection }                       else                                                                              tmp_flags := tmp_flags + 'i'  { incoming connection }                       else                                                                              tmp_flags := tmp_flags + '-'; { not a connection socket }                                                                                               { 5th flag }                                                                   if flags.bsd_sk then                                                              tmp_flags := tmp_flags + 'b'                                                else                                                                              tmp_flags := tmp_flags + 'n';                                                                                                                              { 6th flag }                                                                   if socket_state = -1 then                                                         socket_state := 12;     { convert negative value to enumerated range }                                                                                     strwrite(tmp_flags, strlen(tmp_flags)+1, nextpos,                            $PUSH, TYPE_COERCION 'CONVERSION'$                                                        socket_state_type(socket_state):1);                                 $POP$                                                                                                                                                           tmp_flags[6] := chr(ord(tmp_flags[6])+32); { downshift to lower case }                                                                                        process_output_flags := tmp_flags;                                             if opt.trace then                                                                 writeln('process_output_flags');                                          end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure display_connection_info(PID_arr_index :integer;                                                        conn_arr      :ext_conn_type;                                                  proc_info     :proc_info_rec_type);          const                                                                            max_output_line_len  = 256;                                                                                                                                 type                                                                             output_line_type     = string[max_output_line_len];                                                                                                         const                                                                            blank_output_line = output_line_type [ max_output_line_len of ' ' ];                                                                                        var                                                                              i              :integer;                                                       index          :integer;                                                       nextpos        :integer;                                                       al_year        :shortint;                                                      al_month       :shortint;                                                      al_day         :shortint;                                                      al_wkday       :shortint;                                                      date_error     :shortint;                                                      r_ip           :ip_address_type;                                               l_ip_str       :ip_addr_string_type;                                           r_ip_str       :ip_addr_string_type;                                           l_port         :string[ 8];                                                    r_port         :string[ 8];                                                    sk_prot        :string[ 8];                                                    sk_type        :string[ 8];                                                    out_flags      :out_flags_type;                                                loc_jobname    :str_16_type;                                                   loc_filename   :str_16_type;                                                   loc_user_name  :str_16_type;                                                   loc_acct_name  :str_16_type;                                                   loc_group_name :str_16_type;                                                   curr_js_num    :string[ 8];                                                    js_name        :string[40];                                                    pr_name        :string[40];                                                    proc_start     :string[40];                                                    host_name      :dns_name_type;                                                 output_line_1  :output_line_type;                                              output_line_2  :output_line_type;                                            begin                                                                            if opt.trace then                                                                 writeln('>display_connection_info');                                                                                                                       if not(header_printed) then                                                       begin                                                                          print_header;                                                                  header_printed := true;                                                        end;                                                                                                                                                       if conn_arr.count > 0 then                                                        begin                                                                          counters.socket_owners := counters.socket_owners + 1;                                                                                                         { build the header only once per job/session process family and }              { once per process with multiple sockets open.  Do not print the}              { first line for system, detached etc processes with no ldev.   }                                                               p@p@a*K�r��e�A��L0pp����                              with proc_info do                                                                begin { job/sess number... }                                                   curr_js_num := '';                                                             strwrite(curr_js_num,1, nextpos, '#',                                                   job_num.job_ses_id:1, job_num.js_number:1);                           end; { with }                                                                                                                                               if { next session }                                                               ((last_js_num <> curr_js_num) and                                               (proc_info.process_type.proc_type IN processes_with_ldevs))                                                                                                  or { next non-user process }                                                                                                                                  ((last_proc_num <> PID_array.PID_entry[PID_arr_index].pin) and                  NOT(proc_info.process_type.proc_type IN processes_with_ldevs)) then                                                                                          { construct output_line_1 }                                                    begin                                                                          output_line_1 := '';                                                           js_name       := '';                                                                                                                                          { convert pac's to strings, trim blanks and construct logon name }             loc_jobname    := pac_to_string(proc_info.jobname);                            loc_user_name  := pac_to_string(proc_info.user_name);                          loc_acct_name  := pac_to_string(proc_info.acct_name);                          loc_group_name := pac_to_string(proc_info.group_name);                                                                                                        if loc_jobname.len > 0 then                                                       js_name := loc_jobname.str + ',';                                                                                                                          js_name := js_name + loc_user_name.str + '.' + loc_acct_name.str;                                                                                             if loc_group_name.len > 0 then                                                    js_name := js_name + ',' + loc_group_name.str;                                                                                                             if (proc_info.process_type.proc_type IN processes_with_ldevs) then             with proc_info do                                                                begin                                                                          proc_start := '';                                                              date_error := 0;                                                               almanac(start_date.low_16_bits, date_error,                                            al_year, al_month, al_day, al_wkday);                                  if (date_error = 0) then                                                          begin                                                                          strwrite(proc_start, 1, nextpos,                                  $PUSH, TYPE_COERCION 'CONVERSION'$                                                                   weekday_type(al_wkday),' ',                                                    month_name_type(al_month),                               $POP$                                                                                                al_day:3,                                                                      1900+al_year:5, ' ');                                                                                                                                if start_time.hour < 10 then                                                      strwrite(proc_start, nextpos, nextpos, '0', start_time.hour:1)              else                                                                              strwrite(proc_start, nextpos, nextpos, start_time.hour:2);                  if start_time.minute < 10 then                                                    strwrite(proc_start, nextpos, nextpos,':0',start_time.minute:1)             else                                                                              strwrite(proc_start, nextpos, nextpos,':', start_time.minute:2);                                                                                           end;                                                                      { else }                                                                           { some error, keep quiet about it to confuse the enemy...  }                   { just kidding... if there was an error, there probably is }                   { no data for the process obtained due to previous error   }                   { which is likely to be that the process died.             }                                                                                                if opt.debug then                                                                 writeln('[',loc_filename.str,    ']',                                                  '[',loc_group_name.str,  ']',                                                  '[',loc_acct_name.str,  ']',                                                   '[',pr_name, ']',                                                              '[',js_name, ']');                                                                                                                                 strwrite (output_line_1, 1, nextpos,                                                     curr_js_num,                                                                   strrpt(' ', 7-strlen(curr_js_num)),                                     ' ',   proc_start,                                                                    ldev:6,                                                                 '   ', js_name);                                                            end { with proc_info }                                                       else                                                                             begin                                                                          { not IN processes_with_ldevs }                                                case proc_info.process_type.proc_type of                                         usr: output_line_1 := 'user process        ';                                  app: output_line_1 := 'application process ';                                  ci : output_line_1 := 'ci process          ';                                  tsk: output_line_1 := 'task process        ';                                  sys: output_line_1 := 'system process      ';                                  det: output_line_1 := 'detached process    ';                                  jsm: output_line_1 := 'jsmain process      ';                                  oth: output_line_1 := 'other process       ';                                  otherwise output_line_1 := '????????           ';                              end; { case }                                                                  output_line_1 := output_line_1 + strrpt(' ',15);                               nextpos := 36;                                                               end;                                                                                                                                                        writeln(output_line_1);                                                        last_js_num   := curr_js_num;                                                  end; { if ((index = 1) and... }                                             end; { if conn_arr.count > 0 }                                                                                                                                                                                                            { construct output_line_2 }                                                    output_line_2 := '';                                                           with proc_info do                                                                begin                                                                                                                                                         { convert pac's to strings, trim blanks and construct program name }           loc_filename   := pac_to_string(progname.filename);                            loc_group_name := pac_to_string(progname.group);                               loc_acct_name  := pac_to_string(progname.account);                             pr_name        := loc_filename.str + '.' +                                                       loc_group_name.str + '.' +                                                     loc_acct_name.str;                                           end;                                                                                                                                                        for index:=1 to conn_arr.count do                                                begin                                                                          with conn_arr.entry[index] do                                                    begin                                                                          counters.socket_count := counters.socket_count + 1;                            l_ip_str := conv_ip_to_str(local_ip_addr);                                                                                                                    { no need to test if local_sap is zero since we are here already }             { ...i.e. we got here because the process had a socket open.     }             l_port := '';                                                                  strwrite(l_port, 1, nextpos, local_sap:7);                                                                                                                    { remote ip... conditionally since call and UDP sockets haven't  }             { got one...                                                     }             host_name.str := '';                                                           r_ip_str      := '';                                                           r_ip.all      := remote_ip_addr;                                               if (r_ip.all <> 0) and (protocol <> PXP_PROTOCOL) then                            begin                                                                          r_ip_str := conv_ip_to_str(remote_ip_addr);                                    if opt.name then                                                                 begin                                                                          get_host_by_addr(r_ip);                                                        if host_data_ptr = nil then                                                      strwrite(host_name.str, 1, nextpos, 'no data for host.')                     else                                                                             host_name := get_host_name(host_data_ptr^.host_name_ptr);                    end;                                                                         end;                                                                                                                                                       { remote_sap is also conditionally there... depends whether we   }             { have a connection or not...                                    }             r_port := '';                                                                  if remote_sap <> 0 then                                                           strwrite(r_port, 1, nextpos, remote_sap:6);                                                                                                                out_flags := process_output_flags(proc_info.process_type.proc_type,                                              protocol, socket_type,                                                         flags, socket_state );                                                                                                      strwrite(output_line_2, 1, nextpos,                                                     ' ', r_ip_str:15,                                                              ' ', translate_tcp_port_to_service(remote_sap).str:6                              , translate_tcp_port_to_service(local_sap ).str:7,                          ' ', out_flags                                                                    , PID_array.PID_entry[PID_arr_index].pin:5,                                 '(', pr_name,')',                                                              ' ', host_name.str);                                                                                                                                 { write the second line always }                                               writeln(output_line_2);                                                                                                                                      end; { with conn_arr[index] }                                               end; { for index:=1 to conn_arr.count }                                        last_proc_num := PID_array.PID_entry[PID_arr_index].pin;                       if opt.trace then                                                                 writeln('display_connection_info');                                       end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure get_process_info (    PID_arr_index       :integer;                                              var process_info_record :proc_info_rec_type;                                   var status              :hpe_status);              var                                                                              i                :integer;                                                     AIF_status       :hpe_status;                                                  item_num_array   :array[1..max_aif_items] of integer;                          item_array       :array[1..max_aif_items] of globalanyptr;                     item_statuses    :array[1..max_aif_items] of hpe_status;                                                                                                    begin                                                                            if opt.trace then                                                                 writeln('>get_process_info');                                               AIF_status.all        := all_OK;                                                                                                                              item_num_array[1]     := item_program_name;                                    item_array    [1]     := addr(process_info_record.progname);                   item_statuses [1].all := all_OK;                                                                                                                              item_num_array[2]     := item_proc_PID;                                        item_array    [2]     := addr(process_info_record.proc_PID);                   item_statuses [2].all := all_OK;                                                                                                                              item_num_array[3]     := item_jobses_number;                                   item_array    [3]     := addr(process_info_record.job_num);                    item_statuses [3].all := all_OK;                                                                                                                              item_num_array[4]     := item_sched_queue;                                     item_array    [4]     := addr(process_info_record.sched_queue);                item_statuses [4].all := all_OK;                                                                                                                              item_num_array[5]     := item_sched_priority;                                  item_array    [5]     := addr(process_info_record.sched_pri);                  item_statuses [5].all := all_OK;                                                                                                                              item_num_array[6]     := item_process_type;                                    item_array    [6]     := addr(process_info_record.process_type);               item_statuses [6].all := all_OK;                                                                                                                              item_num_array[7]     := item_CPU_time_msecs;                                  item_array    [7]     := addr(process_info_record.CPU_time);                   item_statuses [7].all := all_OK;                                                                                                                              item_num_array[8]     := item_list_end;                                                                                                                       AIFPROCGET(AIF_status, item_num_array, item_array, item_statuses,                         {no pin}, PID_array.PID_entry[PID_arr_index].all);                                                                                                 if AIF_status.all <> all_OK then                                                  { stop here and bail out with bad status }                                     status := AIF_status                                                        else                                                                              begin                                                                          { all okay, try getting JS info as well }                                                                                                                     item_num_array[1]     := item_jobname;                                         item_array    [1]     := addr(process_info_record.jobname);                    item_statuses [1].all := all_OK;                                                                                                                              item_num_array[2]     := item_user_name;                                       item_array    [2]     := addr(process_info_record.user_name);                  item_statuses [2].all := all_OK;                                                                                                                              item_num_array[3]     := item_group_name;                                      item_array    [3]     := addr(process_info_record.group_name);                 item_statuses [3].all := all_OK;                                                                                                                              item_num_array[4]     := item_acct_name;                                       item_array    [4]     := addr(process_info_record.acct_name);                  item_statuses [4].all := all_OK;                                                                                                                              item_num_array[5]     := item_ldev;                                            item_array    [5]     := addr(process_info_record.ldev);                       item_statuses [5].all := all_OK;                                                                                                                              item_num_array[6]     := item_start_date;                                      item_array    [6]     := addr(process_info_record.start_date);                 item_statuses [6].all := all_OK;                                                                                                                              item_num_array[7]     := item_start_time;                                      item_array    [7]     := addr(process_info_record.start_time);                 item_statuses [7].all := all_OK;                                                                                                                              item_num_array[8]     := item_list_end;                                                                                                                       AIFJSGET(AIF_status, item_num_array, item_array, item_statuses,                         process_info_record.job_num);                                                                                                                        if AIF_status.all <> all_OK then                                                  begin                                                                          { return bad status to the caller }                                            status := AIF_status;                                                          writeln('AIFJSGET failed, status=', AIF_status.all:1);                         for i:=1 to 7 do                                                                 writeln('item arr[',i:1,'] status=',item_statuses[i].all:10);                end;                                                                        end;                                                                        if opt.trace then                                                                 writeln('get_process_info');                                              end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure show_connections_for_pins_in_PID_array                                            (var sc_status   :sc_status_type);                                var                                                                              item_num_array      :array[1..max_aif_items] of integer;                       item_array          :array[1..max_aif_items] of globalanyptr;                  item_statuses       :array[1..max_aif_items] of hpe_status;                    process_info_record :proc_info_rec_type;                                       connection_array    :ext_conn_type;                                            pin                 :pin_type;                                                 PID_arr_index       :integer;                                                  status              :hpe_status;                                               AIF_status          :hpe_status;                                               no_connection_found :boolean;                                                                                                                                 begin                                                                          if opt.trace then                                                                 writeln('>show_connections_for_pins_in_PID_array');                         no_connection_found   := true;                                                 connection_array.mode := ALL_CONNECTIONS; { input parm. Not modified by AIF,}                                            { no need to set inside the loop. }                                                                                 for PID_arr_index:=1 to PID_array.process_count do                               begin                                                                          status.all            := all_OK;                                               connection_array.count:= max_sockets_per_process; { both input and output }                                                      { parm.  Have to re-set }                                                      { for every process.    }    sc_status             := sc_status_ok;                                         item_num_array[1]     := item_connection_info;                                 item_array    [1]     := addr(connection_array);                               item_statuses [1].all := all_OK;                                               item_num_array[2]     := item_list_end;                                        AIF_status.all        := all_OK;                                                                                                                              if opt.debug then                                                                 writeln ('before AIFPROCGET:', AIF_status.all, item_num_array[1],                        item_statuses[1].all, PID_array.PID_entry[PID_arr_index].all);                                                                                   AIFPROCGET(AIF_status, item_num_array, item_array, item_statuses,                         {no pin}, PID_array.PID_entry[PID_arr_index].all);                                                                                                 if opt.debug then                                                                 writeln ('after  AIFPROCGET:', AIF_status.all, item_num_array[1],                        item_statuses[1].all, PID_array.PID_entry[PID_arr_index].all);                                                                                   if (AIF_status.all <> all_OK) or                                                  (item_statuses[1].all <> all_OK) then                                          begin                                                                          sc_status      := sc_AIFPROCGET_call_failed;                                   if opt.debug then                                                                 begin                                                                          writeln('AIFPROCGET status: subsys=',AIF_status.subsys:1,                                                ' info=',AIF_status.info:1,                                                    ' all =',AIF_status.all:1);                          writeln('AIFPROCGET item 1: subsys=',item_statuses[1].subsys:1,                                          ' info=',item_statuses[1].info:1,                                              ' all =',item_statuses[1].all:1);                    end;                                                                        end;                                                                                                                                                       status.all          := all_OK;                                                 process_info_record := nil_process_info_record;                                                                                                               get_process_info (PID_arr_index, process_info_record, status);                                                                                                if status.all <> all_OK then                                                     begin                                                                          case status.info of                                                              AIF_error_process_died:                                                          writeln ('Process ',PID_array.PID_entry[PID_arr_index].pin:1,' died');                                                                                      otherwise                                                                        writeln ('AIF error ', status.info:1, ' accessing process ',                                          PID_array.PID_entry[PID_arr_index].pin:1);            end; { case }                                                                end                                                                          else if connection_array.count > 0 then                                          begin                                                                          if no_connection_found then                                                       no_connection_found := false;                                                                                          p@p@a*K�r��e�A��L�pp����                                    if opt.pin then                                                                   pin_detail_display(PID_arr_index,                                                                 connection_array,                                                              process_info_record)                                     else                                                                              display_connection_info(PID_arr_index,                                                                 connection_array,                                                              process_info_record);                               end;                                                                                                                                                        end; { for PID_arr_index:=1 to PID_array.process_count }                                                                                                    if no_connection_found then                                                       sc_status := sc_no_connections;                                                                                                                            if opt.trace then                                                                 writeln('show_connections_for_pins_in_PID_array');                          end;                                                                                                                                                                                                                                       $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure help;                                                                begin                                                                            if opt.trace then                                                                 writeln('>help');                                                           writeln ('FLAGS column usage:');                                               writeln ('  Column 1 (process type):');                                        writeln ('    a: Application (1st son of a CI)');                              writeln ('    u: User process (not the 1st son of a CI)');                     writeln ('    c: CI process');                                                 writeln ('    t: Task process');                                               writeln ('    s: System process');                                             writeln ('    d: Detached process');                                           writeln ('    j: JSMAIN process');                                             writeln ('    o: Other (unknown process type)');                               writeln;                                                                       writeln ('  Column 2 (protocol):');                                            writeln ('    t: TCP protocol');                                               writeln ('    u: UDP protocol');                                               writeln ('    p: PXP protocol');                                               writeln;                                                                       writeln ('  Column 3 (socket type):');                                         writeln ('    l: Listening socket (call socket)');                             writeln ('    c: Connection socket');                                          writeln ('    d: Datagram (UDP) socket');                                      writeln;                                                                       writeln ('  Column 4 (direction):');                                           writeln ('    o: Outgoing connection (initiated by this process)');            writeln ('    i: Incoming connection (received by this process)');             writeln;                                                                       writeln ('  Column 5 (API in use):');                                          writeln ('    n: NetIPC socket');                                              writeln ('    b: BSD socket');                                                 writeln;                                                                       writeln ('  Column 6 (socket state):');                                        writeln ('    u: Undefined    = undefined state');                             writeln ('    z: initialiZed  = connection doesn''t exist');                   writeln ('    c: Connecting   = ipcconnect called, wait for ipcrecv');         writeln ('    w: Wait_confirm = ipcrecvcn done, user must accept/reject');     writeln ('    d: Duplex_open  = connected, can send and recv data');           writeln ('    i: simplex_In   = graceful close, can only receive');            writeln ('    o: simplex_Out  = received graceful close, send only');          writeln ('    l: cLosed       = both parties closed, user must shut');         writeln ('    a: conn_Aborted = connection aborted, user must shut');          writeln ('    b: Bound        = socket is bound to an address');               writeln ('    t: lisTening    = sk_listen has been called');                   writeln ('    s: Shut         = sock shutdown or encountered an error');       writeln ('    g: linGering    = sock shutdown lingering pending');             writeln;                                                                       if opt.trace then                                                                 writeln('help');                                                          end;                                                                                                                                                                                                                                         $page, title 'SHOWCONN - Internal procedures and functions'$                   function get_jsnum_for_pin (    pin_num    :pin_type;                                                      var sc_status  :sc_status_type):job_ses_num_type;  var                                                                              loc_js_num       :job_ses_num_type;                                            AIF_status       :hpe_status;                                                  item_num_array   :array[1..max_aif_items] of integer;                          item_array       :array[1..max_aif_items] of globalanyptr;                     item_statuses    :array[1..max_aif_items] of hpe_status;                     begin                                                                            if opt.trace then                                                                 writeln('>get_jsnum_for_pin');                                                                                                                             loc_js_num.all        := 0;                                                    sc_status             := sc_status_ok;                                         item_num_array[1]     := item_jobses_number;                                   item_array    [1]     := addr(loc_js_num);                                     item_statuses [1].all := all_OK;                                               item_num_array[2]     := item_list_end;                                        AIF_status.all        := all_OK;                                                                                                                              if opt.debug then                                                                 writeln ('before AIFPROCGET:', AIF_status.all, item_num_array[1],                        loc_js_num.all, item_statuses[1].all, pin_num);                                                                                                  AIFPROCGET(AIF_status, item_num_array, item_array, item_statuses, pin_num);                                                                                   if opt.debug then                                                                 writeln ('after  AIFPROCGET:', AIF_status.all, item_num_array[1],                        loc_js_num.all, item_statuses[1].all, pin_num);                                                                                                  if (AIF_status.all <> all_OK) or                                                  (item_statuses[1].all <> all_OK) then                                          begin                                                                          loc_js_num.all := 0;                                                           sc_status      := sc_AIFPROCGET_call_failed;                                   if opt.debug then                                                                 begin                                                                          writeln('AIFPROCGET status: subsys=', AIF_status.subsys:1,                                               ' info='  , AIF_status.info:1,                                                 ' all ='  , AIF_status.all:1);                       writeln('AIFPROCGET item 1: subsys=', item_statuses[1].subsys:1,                                         ' info='  , item_statuses[1].info:1,                                           ' all ='  , item_statuses[1].all:1);                 end;                                                                        end;                                                                                                                                                       get_jsnum_for_pin := loc_js_num;                                                                                                                              if opt.trace then                                                                 writeln('get_jsnum_for_pin');                                             end;                                                                                                                                                                                                                                         $page, title 'SHOWCONN - Internal procedures and functions'$                   function get_jsmain_pin_by_jsnum(    js_num     :job_ses_num_type;                                              var sc_status  :sc_status_type) :pin_type;    var                                                                              loc_jsmain_pin   :integer;                                                     AIF_status       :hpe_status;                                                  item_num_array   :array[1..max_aif_items] of integer;                          item_array       :array[1..max_aif_items] of globalanyptr;                     item_statuses    :array[1..max_aif_items] of hpe_status;                     begin                                                                            if opt.trace then                                                                 writeln('>get_jsmain_pin_by_jsnum');                                                                                                                       loc_jsmain_pin        := 0;                                                    item_num_array[1]     := item_jsmain_pin;                                      item_array    [1]     := addr(loc_jsmain_pin);                                 item_statuses [1].all := all_OK;                                               item_num_array[2]     := item_list_end;                                        AIF_status.all        := all_OK;                                                                                                                              if opt.debug then                                                                 writeln ('before AIFJSGET:', AIF_status.all, item_num_array[1],                          loc_jsmain_pin, item_statuses[1].all, js_num.all);                                                                                               AIFJSGET(AIF_status, item_num_array, item_array, item_statuses, js_num);                                                                                      if opt.debug then                                                                 writeln ('after  AIFJSGET:', AIF_status.all, item_num_array[1],                          loc_jsmain_pin, item_statuses[1].all, js_num.all);                                                                                               if AIF_status.all <> all_OK then                                                  begin                                                                          loc_jsmain_pin := 0;                                                           case AIF_status.info of                                                           AIF_error_no_such_job_sess:                                                       sc_status := sc_status_no_such_job_sess;                                    otherwise                                                                         sc_status := sc_AIFJSGET_call_failed;                                       end; { case }                                                               if opt.debug then                                                                 writeln('AIFJSGET status: subsys=',AIF_status.subsys:1,                                                  ' info=',AIF_status.info:1,                                                    ' all =',AIF_status.all:1);                       end;                                                                                                                                                       get_jsmain_pin_by_jsnum := loc_jsmain_pin;                                     if opt.trace then                                                                 writeln('get_jsmain_pin_by_jsnum');                                       end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function get_any_jsmain_pin(    pin_num     :pin_type;                                                     var sc_status   :sc_status_type):pin_type;         var                                                                              loc_jsnum          :job_ses_num_type;                                          loc_jsmain_pin     :integer;                                                 begin                                                                            if opt.trace then                                                                 writeln('>get_any_jsmain_pin');                                             loc_jsnum.all  := 0;                                                           loc_jsmain_pin := 0;                                                           loc_jsnum      := get_jsnum_for_pin (pin_num, sc_status);                      if sc_status.all = sc_status_ok.all then                                          loc_jsmain_pin := get_jsmain_pin_by_jsnum(loc_jsnum, sc_status);            get_any_jsmain_pin := loc_jsmain_pin;                                          if opt.trace then                                                                 writeln('get_any_jsmain_pin');                                            end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure get_PIDs_for_any_js_process_family(    pin_num    :pin_type;                                                      var sc_status  :sc_status_type);  var                                                                              index            :integer;                                                     loc_jsmain_pin   :integer;                                                     AIF_status       :hpe_status;                                                  item_num_array   :array[1..max_aif_items] of integer;                          item_array       :array[1..max_aif_items] of globalanyptr;                     item_statuses    :array[1..max_aif_items] of hpe_status;                     begin                                                                            if opt.trace then                                                                 writeln('>get_PIDs_for_any_js_process_family');                                                                                                            loc_jsmain_pin := get_any_jsmain_pin(pin_num, sc_status);                                                                                                     if sc_status.all = sc_status_ok.all then                                          begin                                                                          AIF_status.all        := all_OK;                                               PID_array             := nil_PID_array;                                                                                                                       item_num_array[1]     := item_list_child_PIDs;                                 item_array    [1]     := addr(PID_array);                                      item_statuses [1].all := all_OK;                                               item_num_array[2]     := item_list_end;                                                                                                                       AIFPROCGET( AIF_status, item_num_array, item_array, item_statuses,                         loc_jsmain_pin);                                                                                                                                  if ( AIF_status.all <> all_OK ) then                                             begin                                                                          sc_status := sc_AIFPROCGET_call_failed;                                        if opt.debug then                                                                writeln('AIFPROCGET status: subsys=',AIF_status.subsys:1,                                                  ' info=',AIF_status.info:1);                     end;                                                                         end; { if sc_status.all = sc_status_ok.all }                                if opt.debug then                                                                 dump_PID_array_contents;                                                    if opt.trace then                                                                 writeln('get_PIDs_for_any_js_process_family');                            end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function valid_job_num(job_id :job_id_str_type) :boolean;                      const                                                                            max_mpe_jobnum = 16384;                                                      var                                                                              temp_result       :boolean;                                                    jobnum_with_pound :boolean;                                                    jobnum_start      :integer;                                                    nextpos           :integer;                                                    jobnum            :integer;                                                    i                 :integer;                                                  begin                                                                            if opt.trace then                                                                 writeln('>valid_job_num');                                                  if opt.debug then                                                                 writeln('"',job_id,'"');                                                                                                                                   if strlen(job_id) > 1 then                                                        begin                                                                          jobnum_with_pound := (job_id[1] = '#');                                        if jobnum_with_pound then                                                         temp_result := ((job_id[2] = 'S') or (job_id[2] = 'J')) and                                   (strlen(job_id) > 2)                                         else                                                                              temp_result := (job_id[1] = 'S') or (job_id[1] = 'J');                      end                                                                         else                                                                              temp_result := false;                                                                                                                                      if temp_result then                                                              begin                                                                      $PUSH, TYPE_COERCION 'CONVERSION'$                                                 jobnum_start := 2 + integer(jobnum_with_pound);                            $POP$                                                                              i            := jobnum_start;                                                                                                                                 while (i<=strlen(job_id)) and (job_id[i] IN numeric) do                          i := i + 1;                                                                                                                                                 if i > strlen(job_id) then { walked through entire string, all numeric }          temp_result := true                                                         else                                                                              temp_result := false;                                                                                                                                      if temp_result then { still ok, check number in range }                           begin                                                                          strread(job_id, jobnum_start, nextpos, jobnum);                                if jobnum < max_mpe_jobnum then                                                   temp_result := true                                                         else                                                                              temp_result := false;                                                       end;                                                                        end;                                                                                                                                                        valid_job_num := temp_result;                                                  if opt.trace then                                                                 writeln('valid_job_num');                                                 end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function convert_to_js_rec_fmt(job_id :job_id_str_type) :job_ses_num_type;     var                                                                              nextpos     :integer;                                                          jsnum_pos   :integer;                                                          temp_js_rec :job_ses_num_type;                                               begin                                                                            if opt.trace then                                                                 writeln('>convert_to_js_rec_fmt');                                          if opt.debug then                                                                 writeln('"',job_id,'"');                                                                                                                                   temp_js_rec := nil_job_ses_num_rec;                                          $PUSH, TYPE_COERCION 'CONVERSION'$                                               jsnum_pos   := 2 + integer(job_id[1] = '#');                                                                                                                  temp_js_rec.job_ses_id :=                                                         job_ses_id_type(1+integer(job_id[jsnum_pos-1] = 'J'));                    $POP$                                                                                                                                                           strread(job_id, jsnum_pos, nextpos, temp_js_rec.js_number);                                                                                                   convert_to_js_rec_fmt := temp_js_rec;                                          if opt.debug then                                                                 writeln(temp_js_rec.job_ses_id, ' ', temp_js_rec.js_number);                if opt.trace then                                                                 writeln('convert_to_js_rec_fmt');                                         end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure get_all_js_rec_PIDs(    js_rec     :js_rec_type;                                                   var sc_status  :sc_status_type);                 var                                                                              i              :integer;                                                       index          :integer;                                                       all_allowed    :boolean;                                                       loc_jsmain_pin :pin_type;                                                      my_js_num      :job_ses_num_type;                                              loc_PID_array  :PID_record_type;                                             begin                                                                            if opt.trace then                                                                 writeln('>get_all_js_rec_PIDs');                                            all_allowed   := true;                                                         my_js_num     := get_jsnum_for_pin (get_mypin, sc_status);                     loc_PID_array := nil_PID_array;                                                { the following is needed since nil_PID_array initializes to max_maxpin}       loc_PID_array.process_count := 0;                                                                                                                             for index := 1 to js_rec.num_entries do                                           begin                                                                          if not(enough_capabilities) and                                                   (js_rec.entry[index].all <> my_js_num.all) then                                begin                                                                          { don't process it }                                                           if all_allowed then                                                               all_allowed := false;                                                       end                                                                         else                                                                              begin                                                                          loc_jsmain_pin:=get_jsmain_pin_by_jsnum(js_rec.entry[index], sc_status);                                                                                      if sc_status.all <> sc_status_ok.all then                                                                                                                        error_parm := js_rec.entry[index]p@p@a*K�r��e�A��Lpp����.all                                                                                                                      else { succesful get_jsmain_pin_by_jsnum call }                                                                                                                  begin                                                                          get_PIDs_for_any_js_process_family(loc_jsmain_pin, sc_status);                                                                                                if sc_status.all = sc_status_ok.all then                                          begin                                                                          for i:=1 to PID_array.process_count do                                            loc_PID_array.PID_entry[loc_PID_array.process_count + i] :=                        PID_array.PID_entry[i];                                                 loc_PID_array.process_count := loc_PID_array.process_count + i;                end;                                                                        end; { else of sc_status.all <> sc_status_ok.all }                          end; { else of not(enough_capabilities)... }                                end; { for index... }                                                       PID_array := loc_PID_array;                                                                                                                                   if (sc_status.all = sc_status_ok.all) and                                         not(all_allowed) then                                                          sc_status := sc_illegal_capability                                          else if PID_array.process_count > 0 then                                          sc_status := sc_status_ok                                                   else if error_parm <> 0 then                                                      sc_status := sc_status_no_such_job_sess                                     else                                                                              sc_status := sc_failed_to_retrieve_js_PIDs;                                                                                                                if opt.trace then                                                                 writeln('get_all_js_rec_PIDs');                                           end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure process_job_ids(    job_ids    :job_id_rec_type;                                               var sc_status  :sc_status_type);                     var                                                                              i       :integer;                                                              js_rec  :js_rec_type;                                                        begin                                                                            if opt.trace then                                                                 writeln('>process_job_ids');                                                for i:=1 to job_ids.num_entries do                                               if valid_job_num(job_ids.entry[i]) then                                          js_rec.entry[i] := convert_to_js_rec_fmt(job_ids.entry[i])                   else                                                                             begin                                                                          sc_status := sc_invalid_job_identifier;                                        writeln(job_ids.entry[i]);                                                     end;                                                                       if sc_status.all <> sc_status_ok.all then                                         { bail out, otherwise continue }                                            else                                                                              begin                                                                          js_rec.num_entries := i;                                                       get_all_js_rec_PIDs(js_rec, sc_status);                                        end;                                                                        if opt.trace then                                                                 writeln('process_job_ids');                                               end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure process_option_job(var sc_status :sc_status_type);                   { syntaxes to parse...                                                           :showconn job=#j1                                                              :showconn job=#s6                                                              :showconn job=j1                                                               :showconn job=s6                                                               :showconn job="#j1 #j2 #j3 #j4 j5 s6 #j7"                                                                                                                     ...hmmmm... should also do (not implemented yet)                               :showconn job=@                                                                :showconn job=@j                                                               :showconn job=@s                                                               :showconn job=manager.sys                                                      :showconn job=@.sys                                                            :showconn job=mgr.@                                                            :showconn job=#j1 #j2 #j3 #j4 manager.sys mgr.@ @.sys                                                                                                       }                                                                              var                                                                              i               :integer;                                                      blank_pos       :integer;                                                      job_data_pos    :integer;                                                      next_kwd_pos    :integer;                                                      next_to_job_kwd :integer;                                                      jobs_to_check   :string[max_run_info_len];                                     job_ids         :job_id_rec_type;                                            begin                                                                            if opt.trace then                                                                 writeln('>process_option_job');                                             { initialize job-id's to zero entries and nil strings }                        job_ids.num_entries := 0;                                                      for i:=1 to max_job_ids do                                                       job_ids.entry[i] := '';                                                                                                                                     job_data_pos    := strpos(run_info, kwd_table[kw_job].kwd.str) +                                                   kwd_table[kw_job].kwd.len;                 next_to_job_kwd := strlen(run_info) + 1;                    { initialize    }                                                                                 { find all other keyword locations and the first after 'JOB' keyword    }      for i:=first_keyword to last_keyword do                                          begin                                                                          kwd_pos_arr[i] := strpos(run_info, kwd_table[i].kwd.str);                      if (kwd_pos_arr[i] > job_data_pos) and                                            (kwd_pos_arr[i] < next_to_job_kwd) then                                           next_to_job_kwd := kwd_pos_arr[i];                                       end;                                                                                                                                                        if opt.debug then                                                                 writeln('JOB data @ ',job_data_pos:1, '; next kwd @ ',next_to_job_kwd:1);                                                                                  jobs_to_check := '';                                                           strmove((next_to_job_kwd-job_data_pos), run_info     , job_data_pos,                                                  jobs_to_check, 1);                                                                                                     jobs_to_check := strrtrim(strltrim(jobs_to_check));                                                                                                           if opt.debug then                                                                 writeln('jobs to check "',jobs_to_check,'"');                                                                                                              { next, move individual job-id's from info string to job_ids table }           i := 1;                                                                        while strlen(jobs_to_check) > 0 do                                               begin                                                                          blank_pos := strpos(jobs_to_check, ' ');                                       if blank_pos = 0 then                                                             blank_pos := strlen(jobs_to_check) + 1;                                                                                                                    strmove( blank_pos-1, jobs_to_check, 1, job_ids.entry[i], 1);                                                                                                 if blank_pos > strlen(jobs_to_check) then                                         blank_pos := strlen(jobs_to_check);                                                                                                                        strdelete(jobs_to_check, 1, blank_pos);                                        i := i + 1;                                                                    end;                                                                         if i = 1 then { above while loop not executed }                                   sc_status := sc_option_incomplete;                                                                                                                         job_ids.num_entries := i-1;                                                                                                                                   if opt.debug then                                                                 for i:=1 to job_ids.num_entries do                                               writeln('"',job_ids.entry[i],'"');                                                                                                                       if sc_status.all = sc_status_ok.all then                                          process_job_ids(job_ids, sc_status);                                        if opt.trace then                                                                 writeln('process_option_job');                                            end;                                                                                                                                                                                                                                         $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure process_option_pin(var sc_status :sc_status_type);                   var                                                                              i               :integer;                                                      nextpos         :integer;                                                      blank_pos       :integer;                                                      pin_data_pos    :integer;                                                      next_kwd_pos    :integer;                                                      next_to_pin_kwd :integer;                                                      pin_num         :integer;                                                      my_js_num       :job_ses_num_type;                                             parms_js_num    :job_ses_num_type;                                             pin_to_check    :string[max_run_info_len];                                   begin                                                                            if opt.trace then                                                                 writeln('>process_option_pin');                                                                                                                            { This global flag will only get set to true if the command line had both   }  { the pin= and kill= keywords defined, i.e. the user is selecting a pin     }  { and requests a kill function to be executed on it.  This is not killing   }  { a process, but killing all TCP-connections the process may have.          }  {                                                                           }  { Since setting this flag happens in this procedure, the only way to cause  }  { a connection to be torn down using showconn, is to point it to a specific }  { pin.  I'm not sure this is the right thing to do... however, at least in  }  { this first implementation of :SHOWCONN PIN=xx;KILL is restricted to work  }  { on pin numbers only, not on job, session or entire system basis.          }                                                                                 conn_abort_requested := opt.kill;                                                                                                                             pin_num         := 0;                                                          pin_data_pos    := strpos(run_info, kwd_table[kw_pin].kwd.str) +                                                   kwd_table[kw_pin].kwd.len;                 next_to_pin_kwd := strlen(run_info);                        { initialize    }                                                                                 { find all other keyword locations and the first after 'pin' keyword    }      for i:=first_keyword to last_keyword do                                          begin                                                                          kwd_pos_arr[i] := strpos(run_info, kwd_table[i].kwd.str);                      if (kwd_pos_arr[i] > pin_data_pos) and                                            (kwd_pos_arr[i] < next_to_pin_kwd) then                                           next_to_pin_kwd := kwd_pos_arr[i];                                       end;                                                                                                                                                        if opt.debug then                                                                 writeln('pin @ ',pin_data_pos:1, '; next kwd @ ',next_to_pin_kwd:1);                                                                                       pin_to_check := '';                                                            if next_to_pin_kwd = strlen(run_info) then                                        next_to_pin_kwd := next_to_pin_kwd + 1;                                                                                                                    strmove((next_to_pin_kwd-pin_data_pos), run_info    , pin_data_pos,                                                    pin_to_check, 1);                                                                                                     pin_to_check := strrtrim(strltrim(pin_to_check));                                                                                                             if opt.debug then                                                                 writeln('pin to check "',pin_to_check,'"');                                                                                                                if strlen(pin_to_check) > 0 then                                                  strread(pin_to_check, 1, nextpos, pin_num)                                  else                                                                              sc_status := sc_option_incomplete;                                                                                                                         if (pin_num < progen_pin) or (pin_num > max_maxpin) then                          sc_status := sc_bad_pin_number;                                                                                                                            if sc_status.all = sc_status_ok.all then                                          begin                                                                          my_js_num    := get_jsnum_for_pin(get_mypin, sc_status);                       parms_js_num := get_jsnum_for_pin(pin_num  , sc_status);                                                                                                      if opt.debug then                                                                 begin                                                                          writeln('my_js_num   =',my_js_num.all:1);                                      writeln('parms_js_num=',parms_js_num.all:1);                                   writeln('enough caps =',enough_capabilities);                                  end;                                                                                                                                                       if not(enough_capabilities) and (my_js_num.all <> parms_js_num.all) then          sc_status := sc_illegal_capability                                          else                                                                              begin                                                                          get_PID_by_pin(pin_num, sc_status);                                            if sc_status.all <> sc_status_ok.all then                                         begin                                                                          counters.socket_owners := 0;                                                   error_parm             := pin_num; { for error reporting }                     end                                { in calling procedure}                  else                                                                              counters.socket_owners := 1;                                                end;                                                                        end;                                                                                                                                                       if opt.trace then                                                                 writeln('process_option_pin');                                            end;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      procedure display_version;                                                       begin                                                                          writeln('SC-program file version ', showconn_version);                         writeln;                                                                       end;                                                                                                                                                        $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure execute_command;                                                     var                                                                              err_descr    :var_name_type;                                                   sc_status    :sc_status_type;                                                begin                                                                            if opt.trace then                                                                 writeln('>execute_command');                                                                                                                               { Below "process_option_..." procedures all return a list of PIDs.}            { Depending on option, the PID list returned is either a list of  }            { PIDs for pins that were specified in "PIN=" option,  list of    }            { PIDs for all pins in process families specified by "JOB=" option}            { or a list of all PIDs on the system.                            }            {                                                                 }            { Procedure show_connections_for_pins_in_PID_array processes the  }            { PID array displaying info for each PID entered in the PID_array }            { (if the pin in question has sockets and still has the same PID  }            { than at the time the command execution started).                }                                                                                           if opt.version or opt.help then                                                   begin                                                                          if opt.version then                                                               display_version;                                                            if opt.help then                                                                  help;                                                                       end                                                                                                                                                        else                                                                                                                                                             begin                                                                                                                                                         enable_AIF_access;                                                                                                                                              sc_status := sc_status_ok;                                                                                                                                    if opt.mysess or (opt.mask = default_run_info_options_map.mask) then              get_PIDs_for_any_js_process_family(get_mypin, sc_status);                                                                                                  if opt.pin then                                                                   process_option_pin(sc_status);                                                                                                                             if opt.job then                                                                   process_option_job(sc_status);                                                                                                                             if opt.system then                                                                process_option_system(sc_status);                                                                                                                        disable_AIF_access;                                                                                                                                           if sc_status.all <> sc_status_ok.all then                                         err_msg(sc_status, error_parm)                                                                                                                             else if PID_array.process_count > 0 then                                          begin                                                                          if conn_abort_requested then                                                      abort_tcp_connections(PID_array.PID_entry[1].pin)                           else                                                                              begin { not a connection abort request, but a regular show request }           show_connections_for_pins_in_PID_array(sc_status);                                                                                                            if sc_status.all <> sc_status_ok.all then                                         begin                                                                          err_msg(sc_status);                                                            opt.summary := false; { no sumary since no connections }                       end                                                                         else                                                                              begin                                                                          err_descr.str := '';                                                           set_ci_variables (err_descr, 0,                                                                  PID_array.process_count,                                                       counters.socket_count,                                                         counters.socket_owners);                                     end;                                                                                                                                                       if opt.summary then                                                               display_summary;                                                                                                                                           end;  { not a connection abort request, but a regular show request }        end;                                                                                                                                                       end;                                                                                                                                                       if opt.trace then                                                                 writeln('execute_command');                                               end;                                                                                                                                                          procedure initialize;                                                          var                                                                              err_descr    :var_name_type;                                                 begin                                                                            if opt.trace then                                                                 writeln('>initialize');                                                     last_proc_num        := 0;                                                     error_parm           := 0;                                                     last_js_num          := 'none';                                                counters             := counters_all_zero;                                     err_descr.str        := '';                                                    conn_abort_requested := false;                                                 set_ci_variables (err_descr, 0, 0, 0, 0);                                      if opt.trace then                                                                 writeln('initialize');                                                    end;                                   p@T�a*K�r��e�A��L�T�T�����                                                                                                                       $page, title 'SHOWCONN - Internal procedures and functions'$                   function parm_on_or_off(keyword_parm :kwd_type) :boolean;                      {--------------------------------------------------}                           { Call this function only with keywords that have  }                           { been detected in the info-string!                }                           {--------------------------------------------------}                           var                                                                              parm_str   :string[max_run_info_len];                                          parm_start :integer;                                                           nextpos    :integer;                                                         begin                                                                            if opt.trace and trace_option_processed then                                      writeln('>parm_on_or_off');                                                 parm_str   := strrpt(' ', max_run_info_len);                                   parm_start := strpos(run_info, keyword_parm.str) + keyword_parm.len;           nextpos    := 0;                                                               while ((parm_start + nextpos) <= strlen(run_info)) and                               NOT(run_info[parm_start + nextpos] IN delimiters) do                       begin                                                                          parm_str[nextpos+1] := run_info[parm_start + nextpos];                         nextpos             := nextpos + 1;                                            end;                                                                         setstrlen(parm_str, nextpos);                                                  parm_on_or_off := (parm_str = parm_ON);                                        if opt.trace and trace_option_processed then                                      writeln('parm_on_or_off');                                                end;                                                                                                                                                          procedure show_user_capabilities;                                              type                                                                             caps_type = packed record                                                      case integer of                                                                  1: (caps   :capability_mask_type);                                             2: (bit    :packed array [0..31] of boolean);                                  end;                                                                       var                                                                              i        :integer;                                                             nextpos  :integer;                                                             caps     :caps_type;                                                         begin                                                                            caps.caps := glob_user_caps;                                                   for i:=0 to 31 do                                                                if caps.bit[i] then                                                        $PUSH, TYPE_COERCION 'CONVERSION'$                                                    prompt (user_capabilities(i), ' ');                                     $POP$                                                                            writeln;                                                                     end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function check_user_capabilities__adjust_options :sc_status_type;                {-------------------------------------------------------------------}          {                                                                   }          { Here we need to figure out if the user running this program has   }          { appropriate capabilities for the function requested.  Rules       }          { ought to be something like:                                       }          {                                                                   }          {  request      minimal required capability one of below            }          {  ----------   --------------------------------------------------  }          {  opt.pin    - SM, PM, NA, NM, OP + joe.user if a pin in his j/s.  }          {  opt.job    - SM, PM, NA, NM, OP + joe.user if his own job        }          {  opt.debug  - SM, PM, NA, NM, OP                                  }          {  opt.trace  - SM, PM, NA, NM, OP                                  }          {  opt.system - SM, PM, NA, NM, OP                                  }          {                                                                   }          { For the sake of saving coding effort, only options debug, trace   }          { and system are checked here.  Capability check for options 'pin'  }          { and 'job' will be done once the option has been parsed so that    }          { the pin number and the job identifier(s) have been extracted.     }          {-------------------------------------------------------------------}        var                                                                              loc_status :sc_status_type;                                                  begin                                                                            if opt.trace then                                                                 writeln('>check_user_capabilities__adjust_options');                                                                                                       loc_status := sc_status_ok;                                                    who (,glob_user_caps,,,,,,);                                                                                                                                  if opt.debug then                                                                 show_user_capabilities;                                                                                                                                    if (glob_user_caps * required_capability <> empty_set) then                       { enough capabilities - allow to see entire system }                           enough_capabilities := true                                                 else                                                                              begin                                                                          enough_capabilities := false;                                                  if opt.system or                                                                  opt.trace  or                                                                  opt.debug  then                                                                loc_status := sc_illegal_capability;                                                                                                                       { not enough capabilities,  turn off illegal ones }                            opt.system := false;                                                           opt.trace  := false;                                                           opt.debug  := false;                                                           end;                                                                        check_user_capabilities__adjust_options := loc_status;                         if opt.trace then                                                                 writeln('check_user_capabilities__adjust_options');                       end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   procedure show_options_parsed;                                                   begin                                                                          if opt.trace then                                                                 writeln('>show_options_parsed');                                            writeln('command options parsed:');                                            writeln(kwd_table[kw_help    ].kwd.arr, opt.help    :7);                       writeln(kwd_table[kw_mysess  ].kwd.arr, opt.mysess  :7);                       writeln(kwd_table[kw_pin     ].kwd.arr, opt.pin     :7);                       writeln(kwd_table[kw_job     ].kwd.arr, opt.job     :7);                       writeln(kwd_table[kw_detail  ].kwd.arr, opt.detail  :7);                       writeln(kwd_table[kw_noname  ].kwd.arr, opt.noname  :7);                       writeln(kwd_table[kw_name    ].kwd.arr, opt.name    :7);                       writeln(kwd_table[kw_xptall  ].kwd.arr, opt.xptall  :7);                       writeln(kwd_table[kw_xport   ].kwd.arr, opt.xport   :7);                       writeln(kwd_table[kw_link    ].kwd.arr, opt.link    :7);                       writeln(kwd_table[kw_system  ].kwd.arr, opt.system  :7);                       writeln(kwd_table[kw_debug   ].kwd.arr, opt.debug   :7);                       writeln(kwd_table[kw_kill    ].kwd.arr, opt.kill    :7);                       writeln(kwd_table[kw_trace   ].kwd.arr, opt.trace   :7);                       writeln(kwd_table[kw_summary ].kwd.arr, opt.summary :7);                       if opt.trace then                                                                 writeln('show_options_parsed');                                           end;                                                                                                                                                          $page, title 'SHOWCONN - Internal procedures and functions'$                   function parse_command_options :sc_status_type;                                var                                                                              loc_status  :sc_status_type;                                                   loc_opt     :run_info_options_map_type;                                      begin                                                                            loc_status             := sc_status_ok;                                        trace_option_processed := false;                                               if strlen(run_info) > 0 then                                                      begin                                                                          run_info      := upshift(run_info);                                                                                                                           { This first part detects which keywords were in the info-string. }            { However, it does not examine the values assigned to keywords... }                                                                                           opt.help      := (strpos(run_info, kwd_table[kw_help  ].kwd.str) <> 0);        opt.mysess    := (strpos(run_info, kwd_table[kw_mysess].kwd.str) <> 0);        opt.pin       := (strpos(run_info, kwd_table[kw_pin   ].kwd.str) <> 0);        opt.job       := (strpos(run_info, kwd_table[kw_job   ].kwd.str) <> 0);        opt.detail    := (strpos(run_info, kwd_table[kw_detail].kwd.str) <> 0);        opt.noname    := (strpos(run_info, kwd_table[kw_noname].kwd.str) <> 0);        opt.name      := (strpos(run_info, kwd_table[kw_name  ].kwd.str) <> 0)                                                            and not(opt.noname);                                                                                       opt.xptall    := (strpos(run_info, kwd_table[kw_xptall].kwd.str) <> 0);        opt.xport     := (strpos(run_info, kwd_table[kw_xport ].kwd.str) <> 0)                                                            and not(opt.xptall);                                                                                       opt.link      := (strpos(run_info, kwd_table[kw_link  ].kwd.str) <> 0);        opt.system    := (strpos(run_info, kwd_table[kw_system].kwd.str) <> 0);        opt.debug     := (strpos(run_info, kwd_table[kw_debug ].kwd.str) <> 0);        opt.kill      := (strpos(run_info, kwd_table[kw_kill  ].kwd.str) <> 0);        opt.trace     := (strpos(run_info, kwd_table[kw_trace ].kwd.str) <> 0);                                                                                       opt.summary   := (strpos(run_info, kwd_table[kw_summary].kwd.str) <> 0) or                      opt.system or                                                                  opt.job or                                                                     opt.pin or                                                                     opt.mysess;                                                                                                                                  opt.version   := (strpos(run_info, kwd_table[kw_version].kwd.str) <> 0);                                                                                      { Now in the second phase we'll examine those keywords that have  }            { ON/OFF values.  Function parm_on_or_off returns true if the     }            { string after keyword reads "ON"...                              }            {                                                                 }            { Note that this is not used to parse other than ON/OFF type parms}            { job and pin numbers are handled in separate routines...         }                                                                                           if opt.trace then                                                                 opt.trace   := parm_on_or_off(kwd_table[kw_trace].kwd);                     trace_option_processed := true;                                                                                                                               if opt.trace then                                                                 writeln('>parse_command_options');                                                                                                                         if opt.version then                                                               opt.version := parm_on_or_off(kwd_table[kw_version].kwd);                   if opt.debug then                                                                 opt.debug   := parm_on_or_off(kwd_table[kw_debug].kwd);                     if opt.mysess then                                                                opt.mysess  := parm_on_or_off(kwd_table[kw_mysess].kwd);                    if opt.system then                                                                opt.system  := parm_on_or_off(kwd_table[kw_system].kwd);                    if opt.help then                                                                  opt.help    := parm_on_or_off(kwd_table[kw_help].kwd);                      if opt.mysess then                                                                opt.mysess  := parm_on_or_off(kwd_table[kw_mysess].kwd);                    if opt.name then                                                                  opt.name    := parm_on_or_off(kwd_table[kw_name].kwd);                      if opt.summary then                                                               opt.summary := parm_on_or_off(kwd_table[kw_summary].kwd);                   if opt.kill then                                                                  opt.kill    := parm_on_or_off(kwd_table[kw_kill].kwd);                      end                                                                         else                                                                              opt := default_run_info_options_map;                                                                                                                       if run_parm = -1 then                                                             show_options_parsed;                                                                                                                                       loc_opt := opt;                                                                if loc_opt.debug then                                                             loc_opt.debug := false;                                                     if loc_opt.trace then                                                             loc_opt.trace := false;                                                     if loc_opt.mask <> 0 then                                                         { ok, something real (i.e. else than debug or trace) was requested }           loc_status := check_user_capabilities__adjust_options                       else                                                                              loc_status := sc_no_options_passed; { parser saw nothing requested }                                                                                       parse_command_options := loc_status;                                                                                                                          { final user capability check for options 'pin' and 'job' are done }           { after those numbers have been parsed from info-string.           }                                                                                          if loc_status.all <> sc_status_ok.all then                                        err_msg(loc_status);                                                                                                                                       if opt.trace then                                                                 writeln('exit parse_command_options');                                    end;                                                                                                                                                          $page, title 'SHOWCONN - Main outer block'$                                    begin                                                                            if sk_get_conn_info_exists then                                                   begin                                                                          if run_parm = 0 then  { normal execution begins here with TRY-RECOVER }           begin                                                                                                                                                         TRY                                                                              begin                                                                          if parse_command_options.all = sc_status_ok.all then                              begin                                                                          initialize;                                                                    execute_command;                                                               end;                                                                        end;                                                                                                                                                        RECOVER                                                                          begin                                                                             escape_reason.all := escapecode;                                               err_msg(sc_internal_error);                                                    writeln('[Unexpected escape. Subsys #',escape_reason.subsys:1,                                             ' Info #',escape_reason.info:1,']');            end;                                                                         end                                                                                                                                                        else { This only to be able to execute without TRY-RECOVER to see the }             { actual escape stack trace for diagnosing problems.  (parm=-1)  }                                                                                          if parse_command_options.all = sc_status_ok.all then                              begin                                                                          initialize;                                                                    execute_command;                                                               end                                                                         else                                                                              err_msg(sc_command_parser_failed);                                                                                                                      if run_parm = -1 then                                                             show_options_parsed;                                                        if opt.trace then                                                                 writeln('exit main');                                                       end                                                                       T����������a*K�r��e�A������� ����DISC                             1SHOWCONN        PUB             SYS                             MANAGER SYS     ��a*K�rl�W�A4l�W�A4l�W�:�G<=΀� VV�O	�   l�_olWWW             ������y��;$               $FOWNER         ��$               $GMASK          �$               $GROUP          �`               `               �parm job='' system='' name='off' mysess='on' pin=''                            parm summary='on' help='off' version='off' debug_cmd='' debug='' trace=''                                                                                     comment                                                                        comment  Below is the version stamp for this command file.                     comment  When/if you customize this script, please change the                  comment  version to reflect something else than what HP supplied.              comment  This may be helpful in the future diagnosing problems with            comment  either the CI-script and/or the SC-program.                           comment                                                                                                                                                       setvar hpscscriptversion, 'A.02.00.001'                                                                                                                       if ups('!debug_cmd') = 'ON' or ups('!debug_cmd') = 'DEBUG_CMD' then               echo job      =!job                                                            echo system   =!system                                                         echo mysess   =!mysess                                                         echo name     =!name                                                           echo summary  =!summary                                                        echo help     =!help                                                           echo version  =!version                                                        echo debug_cmd=!debug_cmd                                                      echo debug    =!debug                                                          echo trace    =!trace                                                       endif                                                                                                                                                         setvar info, ''                                                                if len('!job') > 0 then                                                           setvar info, info + ' job=!job'                                             endif                                                                                                                                                         if ups('!system') = 'ON' or ups('!system') = 'SYSTEM' then                        setvar info, info + ' system=ON'                                            endif                                                                                                                                                         if (ups('!mysess') = 'ON') and (len('!system') = 0) and &                                                     (len('!job') = 0) and &                                                        (len('!pin') = 0) then                             comment                                                                        comment  only set mysess-flag if none of 'system', 'job' or 'pin' was          comment  requested since mysess is the default and would take precedence       comment  over others.                                                          comment                                                                        setvar info, info + ' mysess=ON'                                            endif                                                                                                                                                         if len('!pin') > 0 then                                                           setvar info, info + ' pin=!pin'                                             endif                                                                                                                                                         if ups('!name') = 'ON' or ups('!name') = 'NAME' then                              setvar info, info + ' name=ON'                                              endif                                                                                                                                                         if ups('!summary') = 'ON' or ups('!summary') = 'SUMMARY' then                     setvar info, info + ' summary=ON'                                           else                                                                              setvar info, info + ' summary=OFF'                                          endif                                                                                                                                                                                                                                        if ups('!help') = 'ON' or ups('!help') = 'HELP' then                              setvar info, info + ' help=ON'                                              endif                                                                                                                                                         if ups('!debug') = 'ON' or ups('!debug') = 'DEBUG' then                           setvar info, info + ' debug=ON'                                             endif                                                                                                                                                         if ups('!trace') = 'ON' or ups('!trace') = 'TRACE' then                           setvar info, info + ' trace=ON'                                             endif                                                                                                                                                         if ups('!debug_cmd') = 'ON' or ups('!debug_cmd') = 'DEBUG_CMD' then               echo executing:                                                                echo sc "!info"                                                             endif                                                                                                                                                         if ups('!version') = 'ON' or ups('!version') = 'VERSION' then                     setvar info, info + ' version=ON'                                              echo                                                                           echo SHOWCONN-script version !hpscscriptversion                             endif                                                                                                                                                         sc "!info"                                                                     deletevar info                                                                 ������������������������STORE/RESTORE-HP/3000.MPEXL  !��0�������B5152AA  C600304/06/990000�������������������������