Function argument names

Started by Dennis Bjorklundabout 22 years ago3 messages
#1Dennis Bjorklund
db@zigo.dhs.org
1 attachment(s)

Hi

I've implemented function argument names, which lets you write functions
like this:

CREATE FUNCTION bar (a int, b int) RETURNS int AS '
BEGIN
RETURN a + b;
END;
' LANGUAGE 'plpgsql';

It works by storing the variable names in a text[] field in pg_proc and
then the language handler can access these if it wants to (and I've
implemented that for pl/pgsql).

The patch is fairly big since it has to touch a lot of places:

* The parser
* The syntax tree (with help functions)
* The system tables pg_proc and pg_attribute
* The language pl/pgsql
* pg_dump

Other languages then pl/pgsql should also work to extend, but I've not
looked at that. The langage sql I've planned to look at, but since that
language is not as separate as the others I did not want to do it yet. The
patch is big as it is.

What's missing are changes to the documentation. I've added an entry for
the column in pg_proc, but that is all.

The syntax above is from sql99 (I think, I've only looked at sql2003).
Sql99 also lets you define the names of OLD and NEW for triggers, which
would be easy now.

For the changes in pl_comp.c it feels like I'm breaking the abstraction
when I pull out the argument names from the array. It uses the fact that I
know how text[] arrays are stored. I found no better way to do it. I'd be
happy if I could pull out the strings without knowing anything of how
these are stored.

The changes to the system tables was harder then I thought it was going to
be. The code in pg contains a lot of hard coded assumptions of what these
looks like. For example, prosrc has to be the first vararg element in
pg_proc, which I learned the hard way..

--
/Dennis

Attachments:

pg_fun_arg_names.txt.gzapplication/x-gzip; name=pg_fun_arg_names.txt.gzDownload
�1�?pg_fun_arg_names.txt�\}w����>�\6m �IH�d�&���i�%t���=cq6�M^�������WL������[li4�f~������a�������x:�2
��8co�����/�=���5��5s�O���-��s��������'�;�n-�C����w-qg�cp���j�M=?�F#�����+$��T*O/�'��Z�Z�Z}_���t�T�/�����S��F��������
�<��OP�5k����W���~���{%l�}<z�%S�-��3��C�����{��:�G�r�,_�[����s�Yb2<B���6��)^�M5�g�����W[���2�8_��l0\�x�{���F�hn�>M�2�"!�D��R��:s�BB������&tF`;�g������q'�����������f(eRj�N�����4��]g>�7|1q��H�!�����[�d��1��6�����g����n5�B��a�����k�+�����~��<IvA��6���(]:���;��kx�zq����_����.>hP��s~������[����W�

N�!Y�<�z���Mc��tL�jz����������"��e�
$���]�����+:������}�L>��ejH.&�i�k��{FC��0'�/������O7����<d��44��1�bl��{Zo�<K�wg;a�;��H�~���j{p��)������C�N�����*�������)
X�\v/~�8k�:g�~���w���������;gb�N�#m��M7�b(�0r\@YJ��c�3���"*��=v��HQ	)F6B�W:H���=�+��4XAFX["cd������ z��@51j�����+�M����e9��)H��
�	��Y����^}��v��������������a�o����54R��o�����{��s�7W4�qZT�
�|���|M�,_�&�
���>�
E���j`:���yc����S����|�+s1S���g���?`-1����	�^���C8m�]�(��Y#(�+��D��;wm(r%2lIO�V��`�J
�%�2�%�rq�=���J
����q����-�pUL�^�]���?b��$�B!�����#V�X.���
����D/�:d�_�5��7���R��|u�E�F<��)�'��C9}q�)fI��YN.~41�[�%�35�N�p���<C-d��7$D��_��Xp#��D/��+�����vj��8���Y���5Y����*��}	���.�a��uKs��k��e_�{��$@o�u���������TuW�Q�t=�f��-�q��r�s2�ry�����:���\K�#���F	��a2��@���\b���5	;?xeR��P*m�)��!���������~l3������d
�n���89�~#�Y��	�7��`�H
��}����=�N�9�-��?���D��r����d.��t�������9z�u	�h�B��%��F
R#YX��;�Z�w�{YX����X�w��a�lAkUv6�[�
�QB�5�����M,ts�%>��[�6�1�,����i>��>����e�#_����q��L�3b�+�X�����sc,�Y��lt[�J*�aa����LT�gb*f>�*�uO�7d��VL��_L����D,�j��/�Q(�`E��)>h��$���8dZ�}i��HV�D*�%��,��+b.���p~7F3j�Q�n��f4�)I4a� ��R	��F���0���4��\&�uM�E�IQ���E���_������Y�$
(O����=����l4���B�e���{$0LS�|:=���
%^�H����N
.W9��
�evl'���-� ��+>i�H���sl�
:eL_�A}����IWx���������%�M�rRS�]����41p�zIF@�0�.�>D@|r�(RciRUn4w�`*�����O}\������0�"���� ��/%��.��a������-�, �f�B2R�3zap�����n��n����@Lm������>���=�q(�
�'��#��S/�Iaf4/��]���z#~~����Bp���lsz�X�4{DV�b#�`4��	�k�� ��X����V��CH�*�����0H!��(e�EF|��O�;
���K�||q�{���u���O;����+f�nr�9A����xIK`�2\����Wd2�p ����
�Yy@�@
t���u�
{mqO�Sod,��r�t�P���\g��32jU�S�V��:�@�6r2z���58���2e�����i�Dy]1u�Dk<v�2ph�CK�TrPQ�>rw��_�v�
m/��:�R��'����`t�g�	Q<�N���E�"w&!D1-�L���tI����Xf��k��)�(fK�J|��^�eYX�SN|�� �+N��2N:3xd`V3�YMy�.���2��lu�O��$X\�)�Z�_���[�H��B��5�����G������)8C�bm>�-�
�B�.A�eK����)��)�
�A	�E�Rr����J>�u	��G�+��f@
7���d��?�QY�T�2@
��bk��n>~?|J��4+��H���;(����`��c� �}D��f�BL�p�j��D�z<z�w���GE6���3����5�p,��R��������KrAS"F���R��1#!w|W���~�B����c����K��>��^��^5]W!~^�\��6(G9�3&�y�4�=�%������	���|L�P�D�F��P<��h8r;���"��c~		����p�I���7M��S���F��Nn��Z>eW����0�����?���^��u���yd�D�o#eR{������B>3=U�@1�4�}������r�%��Z�''��sLV�����li<G���(� ���yN�T��q~f:���>_VmC�=J�=&��0�#����x,�S���dL=1���{\�p���m��`-��}�O�v����:��j�G�y�{��]�l�f�Y)�w���!��d�cg���/[������{�Ul���+	�����1�b���{�L��4I��|ql!c�����;<���
F�a_�E3�(-6��^'=bp�����w�m��Y.��:��Y@m��-:����G�7���Z��{�=�JXz���@Fz�Wu�8����v�j���l:���Z-V��T�8P',vt`E����?cR5��0�jvc5*���f�8
;�fO�#u]&�oC��Kd�����[�9�x���l�H'��t&�1T��jm-���%�=�����xj�����^Z�)f��f��/PY����s�H��b���dM�	M8A�^\�KQ���ii�.c6�Xyh�V/-K
`i�TK����dk�:Q��Z�0Pt+�L����x���I�Fp/���}�����>g&��=�OA�������O��7&���:C
�onF�+��8S\Z1��V��J�V9GY�%+OJ�
<�+SC�uu X�����
��D��h*!C��
�V����:��I�]T�?%�EJ���9i��Z8.���~�.i�[o�������M���m���Y~���<����0�;�,�:���r�"���d�j�����WF)���o�w���tDw~@a|@=o>��KB�c� SU���x~Z��v�}�� |����K����t;������������/�r�^��O���������_\��������o���:���n��i��
��yXk��������s��~qz%S��+�N�=!0��V2Du�D��@�-��A�3��L����|���
kk�����u]�\�������d�B����#T�i>Pv�-��M���3���k{�������|�����nt�?��������1��qRB���VC8��>8�W������Pw�w@����B,��BLC,��{/���c
9#w~3���h��-<]��<��[x��q�1����C^ct� <��D�n��������������!c����[�"�7�T��Z�xOY@�Y���8���d���`@{�z9����7���������5���}�/���'
|,�l�������4z~���7��]@Q? *p������������!�zH__I_/����-]����Z��9��,�\�'/��D�^#�Y�`�acG_��d����e;t�X�����4����P�\WL��A���Cq���#�{<H&�5��g�D�M5y`�Z���[q����g��n'p�������e���^���1�R=v����R���6�5pPJj�q�m����l��lM����mL�����d�c����c�`���j#Jul,��8�U�[kju�]��5����3�,X�H�������>;6���I�C\����}f��DsI���+�L�t��>��DGVS���h]2�)_��_L
����&khu_����`��D��r,��r��E��"|(���Ta�=
����*I�e���KI��h��PFl[�������"5� 	x�D���������4)���GX6�0�:�~o�c�'�w�_��"�Cw���\��W�h��'��2[/��v-~;�Z����*�TI7�c�9���M|��*� �:�������%�����O�������^���1 ���KIe��.j
\��[��ng1�����;��(�:6_B�����pp�V������>D.�LR$������-i�<��K��
����uh��r��I�.Km'R�	�P��;��h�Q	`$���c��Mg>K"R��J-���n\����O��+:jK����yS���T.���XE\p�5����(�"��G��s)�,�*\���C��nW��}&�mw�d;����0{=�P��s�>�w'b5Ei32�����|
�\"T�LW*!��V�W
���+�s����Cn#_��+u�t�F�� ��<��9�l�������}�>�A�����G8�^�
������m���!F�Z�6�Rs)���nq��x&j�C��r44|C��7���uRdi��\������w�g�s�s�3��5�R�;#�%�GL$?��\��Ka�31Up�
g���.U��Kg��P �qA��d��DL�5��~�\�A:��G{�����KAEED�>cK�z���4�?����e�\r������ >l���6w�:�hl��RMon���Q�%�"I��(l�9������M��|3���d��S0������3^��g�EPW�)n��%%N�Z�T]����v�r��.�t~��t�$�m2kd	�	����&Dg�����r*����B��
��s���9;}g���U(7v�{���`K���|�W�:�&d�OK �����8�a+_���,�"��;u����z��U'�Z�	7�_����������j9��(��/G�)�������c�M�Q���t	���]�e��_���a��,�%���X��$S�����=��U�s�}(��x����i)A!l�VjV��
Q����o�a���}��<��w��*���c����O��Y�������L��EIQ|
��=D�U���K���-�F�:^�6Kr��M���g�i��@"�����|(�/�
��1�O������f}RC	����5��W��8�M`+����zM&���D������5�Z���oZ.����k���u�����p��g�������"�=�%Y#'{��>h���(��Vv�����B�Z�qr�h4�F�o�W]P���`%O�C�|����b����sb���������|�i���_�g+�O>�:�3q��X��.s/P���XC���R
��=Xx#���[g	�:�L�[���>2�v0.��q�]�Bj�Enn��������/�Gk��t�� �oz;�;|�������y���c�����������<c�W�A�Lv�%>�<�
O���o��TY�6��>�vB�=���n��yA���"�{�����J���ra��� MF���>�dT�~]�Mf{��g�Q4�-K���K1���|^|�
������p����L��L�_k�s\��M^i�-���6��������G�_b,��wX�����G�|\�������/x�\�������z~�c�:x'/����o����}���=��O����[��?X�u���+��t��*.�H��g353�z��z�\�������8�y��������Zh�����x�|���{�'i�~j�~���N�L{�OKx|�(�����g�S���5�z�i���9j��bH�r�����/_��5_��^�����\��B�{��X<�^J����z"���y����$�
{�����B�t��:���W�M���h��3q�z��)|��O\��Q�%��O
���:71���\��G��m<�����-����}:���G��v����?�^�O�����G	��5q+j�_�H\^�D�JXu�?"�C���H_��K������!/���-.l�
�����Z�E.�����)`�r�������}����\�|�������/>c���o��&���i�(E�����i_Ia�P�ke�r$,���I��EL	��B��������u�0`J���b��.�Fed�a[fb��������1%F�~��ey
��h�$@�-�)�R����g�������2B-�I����
����I�PE�
��ql�U>����8S&@��e?��R����}�{�&B-�)�NV�j�2�6s�	�/�&�Y�HC��
���('��a*�T��e)��-1M$��h�*KZ���-E
�B�e�����`)K�z�����
%��;�$iT�
b)o�C[v�
��4�d�c)q��2���9���m��'�[��6T|k�E�J���`)K����e�%�Gh"e>��R��f
7���]�	�h�O������8G�_N�q�D�|��� �fZ�1Z�	�h�O��%��#�o���H��s��L7��u�$Z���-E�w{��q��g�� ��1j������q�� B&�!Y
�4��gS���-���,2B1��IY���L+n��O��Nq��aP�;�
�������'?��K~6���c�B�$��5��Xp^�\�a��a��73hX���r!S ���1�ZX���#�>�K[.d
�0b�0X0��	�t���a�t��u3E��*��R�Q�F���R�4`�W;a�R#�c���O]�W��;~��)����`]jQ����F��j�	�h��({kQ�z������{�!E�r������y�f��:K�����������|9C��:W����=��a�t[�e[��Sr��a��:/^���vU;2�TbF���a ���a��.�����`�g*H�V�����hH4z9c�"-B��Q�����SKY�)B1���]U��J[7�-�j[d,�r0!(�������V][_����:����	A��������#|�|?�)y��OH>��%B��s@	R�$�?�� ��������$+�*}J�-�����.@q�@�$��;g��kW�����z����%���a30
UJc��J���C�]xN2�6�f���&Bx����9f��A�,j���8"K�]	�mDL
u�<���2���k��f2�I�Mc>����@�d�H�O�d���+��%��0�:	B�=A�P�>/+6.~��oDyK�g������m�_�����29/���g�������o�I$6W���(�k�D��>I�	��SZ=�����Z���1������7���f��/\'�3�on���������t���-���2p�IV�2@��6L5��]joR�<��%��`��9�z����m�j��w�e������Lh8������UD���3�}���W��l\t���t�uW��w+
�b�8��n����^�A{�����#O��Z�F:��cS����A^����]f>��]5[om�0��
��f"�[����L�%3����3������'F���1a���}|0�\��i|�V/�P���7_���}���^�W������� z���O��������,���r`�J������*CK3�wx��"	��4�����N��C�[�	����.JLSb�a�>8�?�^:�^'������ ���1�.9��jE:�Z'���V+�)]1����q�7��6�n�o�!��P@,�"Q�FXa,{���R������rnw��N��G%L�'�W-�����K��2&3Kyblp���_���u�8*a�����`���.
B���X���q����]�����&��
�������H�",���~W�9� �N�����
�@%J!�~F;��������f-�L�1�	������V��5�"���_2��h�����)u��a�L�1B���(r��p&(j�(�c��^J��`��Ah��-�#P�F���n�,��0&���r�K�P�B%��i�����Z����r]@�"���g�{���3�HO��^�!��J�Z�|hFr�"?��%#��H�D��z���a��r�����i�o����kU�qN��/w<���"	B 5����Y7��m��Gx3|)�'B(�C`J��}�V��p���(>�^�*~�g|i)?�:�����aOsV���L�p����z�#3]����4m��S�F�lJ��>������y���HKY���e4��Y�'���20{�FL5�K�TB-D[K����3	dL�g��9C"�^��a�&S��1�r/l��Xxw%��?�$q�9b�d}�3)@���95OF����d}���?�T}m���u��|S��1��4�������J%1�T�Wm]�V�����c����uO�d]iQB����,��+�c^��@(��O��@x����(���#u���dL�'���=���0!�kk����V�G�6"&U�����U;�^��Q0��@%��	� �=��*v��0CQj�0P���v��&�|�)9��	�2Z��n�>�4-.�Q���l�m�0�!.�H��0�PTL�h%�������^���0!������bWz��#*&�R�-�O��RH��@U�p�#ve�y+P0!P^]7I� JI�����K�mK����q��v��u1�t0!���'���|�R0!�~�n�A���HQR��\�n�Avz�W��Oy2������X, 4��SHE��AQ�
E����2D}��0eX�o�����BS�8}TL���a����1��dL�_��n b1��6A�@*���v(r9/,'�0�����`Ko��<0���J1,eu���+���	�RX7��X��P�����E���\���Eu��c�}PG/��7������?�m���,s�b��#`B���
Hx���QG��@Q�\������3f^��;�N���������L�s�Q�����=�S���-���f}tL)�m�Q{����.R���!���@�R��������]��3"���RH����7�rT'��j��i=������o�H�����4���^0��y�a�([`�;`@������N&9;����H
N�����L��������<�k�c�[#�<w�0�)�i�j���H�s=��gG*N�u>����Nq�
�q���u��2�%A��w�/I�]ij���mm�%??#�]�
	�_�����<�^y�������ck�3PG�����bQ��^eo�"�;�4�Y����������N�O0��y,��7���5i�~p`( V�&|�Y��r����D�t�
c)����U.�^�G_%f5��"����2|���"�T�Yyr�H��O�t,s��
��)W��c5���p�u�Hi�7E�t�(8�w��*,��>������#B%�`�f��S}��R����w��@���QQTU�����*���|�k�:3�����m�d[�>,��}�2-B�3OTy�t*DA����6���f���!��@y�8�S�d��G����%�YV�r�x���/�����Nj����U�Z�L��@�kV|D���������I�O������@�+ ���U��'�����V���0Cro8��0�~:C�{��>��{�^"�@:E������#�h�l��D
��@*a��u��5W�E
��@*���������V��a�F���{�^�Ji�1�w�(8�a���~D�1�7��0�2B��~E��`$B��GQ�~:DE!��n
$��w���~w�x�a����D����%c���4
�:��{�0\�=�w����~`W���g��f������\8j!@�/�����6F����b�5�$��*��leD�$B��s� �XME��c�_�����"S d��T�?��*�,�y�5�����K[�bTt�
��[i)Z��O
��	���M21kvH���H������8wm��"������@����=/�t����'����=�oR*��*�Sf%�'@�$e>�]U���5�h2��Ee��%��!)�q�*q?_Y�E�W�R����4�Sl�����^�;�01:?^��Av1�!���������g����b�������R�S��,�U���Iy�2W}��������<����}�)��s~��T�������e�EZ=<j�f+Q64��~�8�G�~�?�8	�����.0��=�������cu�Z��!=q']o��>B%)�q�3e��8_�1�5C��!5�2�n�5�+��,�����C���7�����%E�v����������z�$�����|WV�c2�ZT���]��&2kw��0v+62`r��a������~*�H�d)S�Z����qwcV�!�NQa,%=����e?B�G	��)o=e� �������x�
!��1��-A�0�<�\�<���c!,>�h���9��?g���v����
!��&Y����?Ev����a2�T��e)��4y!��z�S�M2�V(Q��7^����{��w���8&�\$�$
J5��z���>[�]���Od��������}�����4{��/�E������mc>U�K�E]��O�u ��2*���\���0��X�}�eH�:#\@��L�!x'(8������]g��>:��q����������N$�'�T(8��������T���:���%��/�r7>$i>a4;`@�q�L������
�]bL�hS!d;`@������]e�ze(8�^y���]��ze(8�^Y���3;��bze(8�^Y��n\G���^�
�S���O�H�1���^Yo?&D �I��T$D�w��gy���KI���]H�D�z��p���$8Gl�w"�5�F�w8�tfo��kH��,S�U;�@Tvv��_������'��H\y������{me�~�l(@tf���P�s���m:�}��8�@��3���&ECn���+t@DU0��e��������{\y������pdR��|���e���Lg��M�S����=������Y�����f���Hg���n���c�<7����������U���k��P$���*�x-��$O���D�v�TG\/��,����z������d��0��(�R?R���~�H�<)��4��YM"�`:�U`B�P�*��N��ev�C��w���F�����)��SS����W��U!�|�#J�"�p�zA�,N���8;��,�S�Q/����H.f��HE��f����k2b��HE"l8�zG4C�pm ����dQn�Tfh2���p�PJ�}��m�/�F5\'��d�p7���k2��:�T$C�U�s�^h-���(�h!��!0��.�E�0Z����D�����^��Udbf� 0�P��w�q��R���L)NK[��H�D)V��������7�9QJ3���)�fO���z�l�(�-�D�tL)����7��v�����S
����F.��q ��:@`J!���q��R�����)�����;Q����!0�P��^l��dQ�/S�
���D����Q�z`(8s}p/| b�3���~���f��9�?;a@�!��A?b{d3z��"�h'(8�^:��m���R=cJ�
�KO���G'R��0�����[����T�'L	;`@�q�����C6c��+!��X8a@��3�����x�����0���z���'��vRQ��R��m �*�Wv�����+����'R��ze(8�^�[�� �0�Wv����<�z��#l��:l�����({T���@3��[F��B��#tse�
�2h&h����8)A?�N"t�r�d���Z��U,����i���$�y��@3�W��xJU^���|_�;~H|_^���C(vb�f;r�G����j�����(VCG��jB�HP��I�|�;6���F�a����������c�R�sg��&��,I��s�F�
�C����O�7Sn�e��o�<���\4�����0�k�h|!��e�Y� �Q����T��2?jj��o���D8�����h��������1A}_��0�����)�E{})�]rb�8����i�\2@��6L5���M�IvV����J��u"�z:�i�c\�t�K;�u"�^:����<\ya-�I�P���Es��b�l����e����$�^���:&��JH]L?�n�P����S�Eu��*�����"��G?��m���o`��&�'��H���<v��'���0��;\��Q��n9��C�?�0h�si�����fu#����P�E|��_9� ���r�������?vt��j������uw����PCG��m[��Gtw#G��F�X�Q���?T���7`Ma����������FP
�������)>\���sg���,L�Y�&����u�}����������	�H��z�^�&�:�N9���c[��
�
�}��@^ /���*��X��Z�3�uc���������ZC��}e_�<B��!��3��yC��M������m"$��@��	�y/�������3u�Li��#t@�'d�W��i�Q�����T$u0
^�����N.A]y���:�T������Q�Z_��X�������:��kQ�]��-u�R*a���� ��HO]+Y�����s��C��S����fb���S����}fD=y'���!����2�������?�+�u;�X�X���EP�q��PP�UG��a
Z���UG�PPnQ��4��(�M2[����%C�	��[�_����V���z��]H�D�B=���Gl}�����e�p*�w��*l��;9�lS��`U�����;�@��E����u47l��/2��CT'�a��A3)����E�E\�!���w��,�E�1h����� T�!���@��fU��
���_s�u�j:���Aq��G����w��u>M"�jL)7P�����MS_�Og��5�>��]�{�eu��aJ�y�����;.���.y�Q��x��	npC��e������\&'�k�y�Tq�`����t@���J��M��]Ls�~�k��:%��4
n.�k�gp��j= ������r�+�UmO�
!�2���w�rgaH���C�u�L)���E`����V��5���������)��5	���^|t�y� �`���:�$C�w�(8��u�PY����7���q�V��g���]A'S�.#�����k�7P���.�����n�����3Q!Qk�B.D�|j�0(tK����F�vMI�r���q/9J���q������%��4��@��?h�.����'���,�7O�u�_�P�:����1����?�����k�����@����I��K����������i�L�4���'y_���K@�U��3E���S���?sF�O���^�^�c4E�,��Y�[�G����������6�C�LlB3�a���gK��>��s#e��F�pS��U�9�/{��J��S&�H%1�D���X/yg���!IC��Kb�!�����s
�>���|h�)��R�'5/69�4<�+�������w������.;�G>�������1���� �kn����	������7��@E�k_7�4����\z��@�$�5oS��Lv��G��@�$�5o{�Ng��>7��5��;j{�y�69B�-x* �~gQ{�����0��V`-����-�������dn������P���:w���G�3|�u�&�&�
�F����W=p��2s@.*@A�S��4B�W���|`�Pl���7���h���K�(7*T[����^Oa�PH���b���V��#��l���m������j���)�/o�%@��[e��>3�����e���P,���Z�T"��z�>���K�_�-����).�Ic��0�N�(72F����8{������heo{-_�sFX���D�t�eW���������V�#����f��B�r iP�ZwQ�X;S���TF�.,-�V���Y8��#�nE����IJ�Pbl���Y ���������vss/���9��VY�#9��]��k
)���Zq�
!��j�*C�L�Z��(7��A??Nj�c��8�L`K�~���Y�PnG�y�����:B-�)�R��`��8g6��#B)�I���g�S\i��f�����V�!I����?�VX����q��,�����a��g>��[������+��������>O�����:�M�dL������Bq�!bwOO��	r�0X^7�}�<�,������?�����Msu����N��>#�c�2�p�N��7R���1�vU�mg����B������m;z8Y�<aT��1����p��y�7rS�&L���dL����}�"o!�K�t�TL�~t��x�7��a:R*&RO��|�7�����R"&j_u��������	��7�u�����N�����hew1R��@,R��Q���J���
����0a%�����LH�Fy������|�!E�E�;����(wD����F�����0eH�|�;���ht�b-�\��3��7���������M��o�#f���%�k���u�4��E�����c������������5o"e
��q������:��$=y���IY�(o��������R�l�;�l^��XMh� Bj�)��h�i��2��u�����7I0��Bln�.�_9SGP�)�
1_&�A��X�K�����2j����f'�"<a���?�����\��Y��	S���a��&Q
m��e�B3�Pb�0�&A�C�����,>hN�?Y��m��<���������kY����j�/�l�N�����FNw?��y��0Ll�	���:!�n�)H���Q���@NV=��F�2���@��tfO�����c��M]%��1�;����H��Df�P��9q�fw�b1�(A���������,f���%�i�����g�j���� �5����k�:Q�3q���:*��}]��F�f:p@	B7{sO[1���sO��
Q0�����%?���~�����%�E�d��'BL])�j�Fr)�s�^��� �n>�k>R�K�2��H�PM�F������;�����!��;��Gw���6_�)�*��rx��������*�EB��,���T�������[y4kF{�/*2�V^/���cR��3��&j���bZ��Z�b��D������
�o�j]P�j�Iq�:=�(E�"z$*�]���Vd������*J�HM������ ��3>���A����)�.���-�Mk�����aT�w��)#^��������]p�3>�kW�%�� S
J:��g,��5����BY��"�wOu	pC)Y���[��
�.�e�����4�y: ��>O�����p���'�];e`z=���(U*&����y"�<Y�	S�DL����%s�.��$�����me���'���'B���� �	����JV��<�[�O��K�h(���xp(WS�b�+.��#�9�Wg���]0
�j
�?4;�V����c���7���kZqv^g	��7�x��a�`����9���%'��F�F��
�{�y�A���Z}��j��c.d~��|��������Q��QpP�m��Ae��������+�i7���h�������J��^�j�&�
n�9v�����K��R��R���o���p���N����9B��Qq�D���{#g�����,���BQj����5Z/���^.�"F�J�������r�^f�$��dS��x��.�\K���4%N��;$���9���� ��9h���,����Q0x�!���z��~���"�58%�
:�y��_h�GXJ�5��(K�;��6g<�h�.����D!�����0U���j��h`uZ���sD�/�#��������}�<����v�'�j�"�N�*������j������6�y����T��sZ�19��)�� ��Y}������#���H���k$j�z��D��s��x�fS����|��co�:O��=dH���TB"�q���D�I�C+2`B�9��H<���[-�$eT�a)�o���&����i��#T�����}>���vo�����9��DLP9`�����A����}�x�M7�x��J��lS �*�.��wM��kKu][��7[R����6
B.
�I�|~�|�8a������bI�O�W^�v(���>�m ������
��!20�Tb\�m�(DK��Fet������R��+�����f��\�[��Tj���|���r���%�ts+����"���O������Tk��A� [�?{��������������Wv
�@��V\������x{W��W�ht�����z��@�$�5�8�Y��z���]@�$�5{�jg{W?B�
�,�n��u�Ww���o�S�-|�Y�tc�(s��XK���-�v+�$s��>�Q3V�|�uFb��F�����?�E/�u��@��<%���j��P���b1SZN$P�G��2xM����T0f7�	�(���h;0�D����D%��8�����j�7�	�(����nX4��=�N$P��6C�'�#q:�����Z�76l�7�c�j�d��}.N_{�r���{�E�rb��U������*��� u��C�)m�!k�*	������C�H^�j��9���;��%�w6th���X�"���%�W03�:!""��h�����"B�@�MmV��z=[cV�����P3P�Bgw/0{����/�{��Yb�G�v<z)�C�6Lj���h53f�sL�������@���fJ���j����E������8)B�+PG4������W��J�� ����L�9 ���"��E�f�������;�-�u�����,��I��DU�quxHJ���~�����^r��f�V4�����s�4�y�_�^S���]+a�<14w���[��� ,��:h��r=q�`�� �@�x����@���a����P���Z�	%�H�	�6��,�t.���gT-%`�p��avl;_[+=��	0A8jg��1���>�x�_lM�`*��[�N�h����)�
�-_�r?vy���������X�d��2��(d_�2��~�Gl�n�$�*������q�&������i����p���s��v�Oc�����G|�,)1U�� �{��|����k��V�y������9���v��J)1�y�����4�MJ�vGh���$���|�%���}�rGh��R��K���I����
p��5�|��C���w���:	B.1eXb������\�#�QPlF-�<!!�|w�,c�
���2�XO}��m��ybB%5��B�bHS 2���<A���q�L1��[B�E*Q�T�e�q�.��$D�'R��&�\(SuH�=���J5=�B�b/9`�t�XDl�v���@�F�b�������cJ���b$:P��i��]U��J�s�r��.��8)B�+PG��w��[��6)B�+PG������p�uGctE)Y���b�^m���B7�<�3LM��Z��W�C�"��z��YL��uDBc�]g�./�%j�N���4�t������Z]�wT��_y��D���������������������#�fpZ�0�^U���z���"��n,xx'��;L�'����^#�G��d��	�[��j"�!%{��?/L���E�H�
xqEz�p��0!�m�v,E%w[Y�R��+Q=���No�: ){U����<���6�M����w�����W��X���
����Q��>��}�p����u���e�r�d�Py��g��_�	���\&<��5�)��e�3�;�m--E�`�L�~���h��P-��DkJ�����$�F7
D%�!��	�<�?�-����p�����	m�$@���L��Vg��H������m[2B&1L*��Z�uL�wEZ%�*�/�"E
�J"&�L��V���S�]'?��7Cgh��H�P��QpL���Z�����UTp�����4��`l�bzX+4�������?��#d����o����y��{�31�������Z��1BjY������~�+N�M��V�m�:��;�\c��P�}rF�r������=W7�J]0
�j4�*+�V���Sb���Q��Qp���W��A�}D|�
Ag���Gi_{�c�����v�_�#��������=���S���b�,S ��`�zn���f�a+��W|�Me��X�=�h�e?�Y�#J�R�"eO����n[G�Nb�IkY�X���4������{��V���K����8���FP!4��SZ�b�������V�L��Hd(!��1�J1����]8@�}��3M���t�R&��T��g�6j�#��Mj��3O����I~��Es���vKF�;��)����jn���I�p��h�7j���#C����/m*�Z(8�=q�(��p"I=a�:`@�����Hku~���c����NPp,���d����$�����]0���lu����MU!i>a4;`@�q�����E��$;��j����e"�n:G
R��{��f�����L�SG2{�!op���+�:B;S
a��.�u<pk�>a"}��@ER�����|~��������d���e�y��b/\$3+w"���.���
'��Lj���4k���g���k� /�9��%8J���t������W�H����Vs>��0OX
��i��<�K��:I���, U�'
�^�z_8��)>��QJ�/y������t��%.�����V|�����j��~H/|������j�
��
�J*{ ����z���mkH�~4�H���r�D�thP3/y���5�{+�(��2kv���6������`�
���JG��1���>������q�/T�V�/7��muGLLy"@E@l�;����!;�����Z��Y�q[��aF�p�|�N��:��#��A�Ly�
@E@�)O�=� +~���_:�sD�)
�"�)�.1��.��W�}�o6�B�~��� 1�d�V����\�Z�ybK��P3��\3�r�8�V���7w��[���d�+�/�����Y�E��HD�L�������_y�6�����P�_�e�%����w�m���W�T��by>��+jk��oYI�I0��BT��W�x�@L{dy�Y�V�K��@�����G|8�U�8D�k�������u��@V!:Xn~��`��F,��0:@J���u�7�M(:�U
~(\�\�)1ZY���O�~��a�_~�Cz�������)���)1�Y��)��G����9���~i�g3V�$�hw���������O�^��M������
zu���|S��@��}[��3?wQ�U^�=�����R/�!����4k���o�-�|(������=r#���$��U�w�T��������m���4R�S�n:�o���frsJy��������e��kr~]V�g>k��8�V�\���i���>��I�jS"���R�,_�����	��\��0B�PplE�W�S\����&�Hu��h���=��Uw���K��J��
d+3�jn�R4�~�E���80Yn�a��:p{�&B���t��D�T��������AS���� �H����D+����80�6�1;���R>�J��S���+fP��������80�y�m��<<^0�;&jY:�\7(P��,��]�\n�~���:P��.@aJ?
B6���%�cz��7aY�q���/s�r���OZ���^"�N:HMR(��A�I~�f�����7F�q�Y������F���Ya�c���zT�\�I0��"`��t���"�H�?c��:����)�V��ec{�=��1�&����+����"Q�I
L0��du&$$�������HRn���HE�G�P`���"��[��tQcH
L0�#H��V���D���.�`H�G��V���
����N���#����'����ewo�7k��5[^��;��v��C���U�����&��`��m6*om9����*Z
L0�n�}�vV�J��*]
L0����j���;���%����f���	��t��m�q`
r�����[~�MF��X�7���G���������j�������H���ya7N4_�� .p��c���^�Fz~�a��d�.�����`x��h�L�#��S�H���i>)h�P��,���n�)�nv����Bt�fBM_9@`J���z�K��/f�����1f��$-�d�Z��b:h��Q�����0)B�+PG����=;X��
��"��uDR?����I��I�]�:�����]�~yQ}����#�_��yr�~��?3�?�(���z���TK�����}?3��@��L�\�^cn<�me�c3�������0R�{�9�@
�]������,!
G�8�@
$�"���1��(5���5�4��^O���<j"��j����z3��D�j���j����z;1��P���<P���2����?�A��2��;k��!����'#p���O1�V|a�l�c�^Z�_�yj���@��nsB�<f�����d�.,P�l���7�1���}����#�4�������%D����%�4�������Q6j��%�4�����PK5�q����6��l&���Q�G(i�C��vh����7�0P����M40��h
�$����A2�n��E����f\�q�Z3������8P�,�m����cJ�Z%t���G)�mo/6|�����`��'�hw�������>M�G�/���H�]Z=��j�h{��������
48�k��zW���L[��d��GH��J��K������;u�&��]]	)�B{����7������dk8�nol�W&�er���e����|
�/���:[^.1>t��3��s�W��Xj�QlWLT����|��H*������[��mTA��*�!5�2SUCxCf����A/��	j
���-���O�,b�VuEhhf�t�<�X!�|���q�N���?�5r���>F}�2����������"��X���W�S������>/8\��_?����n����x7T����>
n@5��u���\���g�����R������Ua������������&�Gn��������K�;��_���D�x�(����G��]��R)t���:��F$�a@�!�Vf�2��i���73�
h 3>hG�F������[�����T7[�p�$��:���
�}t75tY<�z�M?���la��oP��>�r#��|6e7��o��X��NSc<r�������C4w���;TO�W�]�����>�P�'t���G��i���}��B	\������ >�Y�P����$.��d_�A��� �g�0�2��U��|�1k�.,���[p�s�!-g��|O������Iy(���[�g�uHo��3�R����i�����>c����+N��qi~{���,�O^�y��R�%��sa/�,f/e��/�����S!���
�/8X!�:����w�j	8������:�Pm
p����=y�$?[��>Lm�?�R�������.�����M���� ���D��*�cS}}��q�h:Uq���P��*�c���3H�g�b�g�K�����>M�p�R}_��l-���T��r���7������+�:����Rf�i'���Z��cA�
Px>��e�4��(�+�����h�O��]��?+VqM�L���u�_Z��%*u��;`@���������p��Gz�k. P�P�g�Bn/yJY�?%��$�5��4s�]2�rhh����!)A<��+������deZ�O��Ow)R
��70{��`����j���[��"�@�1�M�����9Lfv�4�[V)�B����*�
���h��usv!�������y�'h�O��Za�u��X�7�y��y�BR�S��+x<aa��5������_��5�r;g����K9�Y(��p��r�d��~�f`���y��ov~7�?����H�\����s�--����pwY����B���
sX��5����WQ|�������,P���������9����9���<�DLv�������5���?C&�A�/�o7�j]v,	F!�S!�������c�d��%�h�2`
��f�V�����y�G-O��G$�a�w-�<z�p
�H�	���UG�Z���0�P`��#l��i�5@2�B8!_�������M3UU9_@���|���^��~���Blz�h����K�,�*O#�BB���g$rW��h��n�ng|�;�H���������Vv���a����
����+Q�3.��yN�S��?�IqH3����}��^�cCiE7��t��8{�I����X���������'Y�:�����>�v�?o��9@Z�0��6�/v^���K��'�����`��S���������$����U"���#��Y?J�/��}�M��z��!�����t���VX���9;7�g�����������9��N�9�a������W�m&F@�:������V��o�=��7n�����Gc�_��S�=b�����s�j��u�
���1e�;�1�U�a)�8�>�a�*/L�jA����32�;#�������x���L�~e�B��?�%�_&��|����"�[Q�X��
V���c[�9��U=��LM�����2v���+�/��y*dX����L0��\OW��?s+��r�\V���N�q�
hS�eE���4d;_��NE�����@�Tl���L����a��0��5���wht��\g�
���X��]CZ3C���NM���+h�<�l�e?�/���%fdq������wCSj���g8�����8t�Z-Bl}e��z��b��Cu}dd�S57b@�n�AG���-�������,�U�%�����oa�y���(*�?n�3����������� ��Mz��X�_�3z���O�Q�=���0�7j�v��o\��
q�.��0�]`:����%
�fF�u�P6�; ���!:]x���zJ�Q�P�H'��@�s�@;��X�Y����M�!rD�hA�%���\�'&�����.�/�Y�e)0�	�O�Wp���VYq�U��@�]q�TF"���d��Vk�k��<���/^��&��%<#�;�=n9����U�8\���������0)B�3O$��	�kc���[*������Ri�O�W(�����a��d���Q�J�i����d~cyb���������z�������l���&��E~��6�D�<R���U3��	qqM�g�E�=��k`�Yi������'���R��"������l4��1)��sW�e/#�+�01�<��	��c�Q2��\��3�����w��������~M�~���4�%���J�&��Z�6��mJ�=��F�z����s� ��'��CZ�5�G��hm�R,���5��+(S	)��]z>�}��!�91%�
�Z^���k�������J��,�g���WT��@��(�d}{(>~�3�\��HG��I�7��,��e�?���Qv^tU���q���O,U^T�����>a���r��\2J�R��-R�y4g�K�T����X����n����j�[�&�v�kv�a*���Uw����w�[�� n���*��L��G^��fm�a�:�@���>tW���lib1QI�@Qn��kl�
�4�gT5v"�E�;.������J��
���qAw]�������R�D�������V�NK���N$P��7���.a���i��f���
T,�����M������v�k�u���b2wQ�d��L��D�>J_@�&�D��Q��D�nf���9����]h�O���M'.�8��K��wc,� ��/����8,1�M�CVo��<$���
{�U ��p�5�`X�[�����+�2�I������E����H�t��P.2�k����AI��v�iq��o~{T�z�A����#�J5�f�m��{\HL�~t�AM$��lw�O��>�y�����]
���a��B���k\Gr�6��	:�Cl�@�-���a�F:d���9���`�����e6�`����9�M�r����b��rp2��v����J��(*��}��f��t���75�q��RAb�#�
�}�����)��.���0WsW��z^���~X�b4:�T(|�F��M{;�a���H��Yr�>�./����^!�m�0F"n>�N�����$u��fAM�p��cz76�,6K�lgf��[�/s��Q���4K��t���{��
"j��pD�H�����Y���gpKZ9��G��7I~?�
@������4aI�`�v��}�]�"=�Yr���J�R�o��wX_�m�&����?�12n:
�"���K�	��-aA��H�7X�/��dN�	F�m��[���d~��������[G��dN���
e��p.~P�j��0�����g�y��x�T��a�S\��|�F�P����6Y�,�7h,�����T��1#Xx���9�TX��G���!y��wj�������D��49�~t����=��m��J\&���{�0��0���(^�pN�j�
������L�����P��������)�w<FRv��<�:��/���_~�%�S����~7��6���y�UZ����bsp��]d���k��` ��Q���Y���>���z�k�S������������g|��j���1������]=��t���@����sz�����Y^rP>��_x�/{�")F�J�R��rG��1��K\���E�����er�7�0��(K���~hFr=urI���Z/K��Jd� *���$;���9.�J���y�!��&
B,���4���E����Ra�RQz�l3����(?���f�M�u@�X��+C���H/��R*�C�
m[U'����0:����[T'���RQz���g]�[}1W�����pz��K��9�>/�QK`��������3�J��dyU�Dm�}��G�i�h�@AP�\���<,��_��_��+��YGy���,����q��&��KB=�*�A�|Z�������{zhx�<*�
��-4�}����C_��������� !j�g��iP1f4���b�B[�}��e�(siN�#���	C}[��Z+�"�=��C����1�}r��fI0���0f.r����h�ac��~�N<��7:&��������/J6R���nl1��d�bA�0ah�?Y����X\�$"��/�~��������Y�r������n�q�����I����/����;?�C����Z�D@��,
b���U�`�������TM��q������2M�p�+t��tJ*�
����~���H!�'O��Lf_l�T��+ZA��E���
�����I��-��$�������Q��}T&�N�����:	F'���)\��n��a^��f3<_�����/�y��������_�w2�����C���o�}�YS)��!����N�bU9_W�m?_���+5H�x��H�a�����"lB��A5�O4.U�e�.k��>ls!�
��`^�����!�������:��w����}���R�y�7�����:����	�(�gS�� ��G�����}x��T�$P��>���Z����2�$P��>�^y��.�"L>����/�d*�H�D���4����nV��ge�0����Uq=T{9�4��J-jf���+����
z�I�y5�C��Pp���J�|��,+�F��Lu�&�0��'�����*�\�T<n��
�\���-�s��g���a�I��~���}�U�������s%\�`@�h@��"���/�
f��k��B^���:�}�0�}v@�����kv�����v����h���k�\��A�?N���K�N���M��b�VN#��H��0#����6����%�GV*
�\������V2�j����z����%AH&CT�����Z�#.A2W�[�I0
�%�V�����8�a���x����q!�Q�A .��2�j�uC�A[+��aD;��<u�K3���-����/j�
����F)�%�g����u�e�=��[�MB�p7����8ln����b32����$g��o8"g�f�s�����Y{�	��nf���GJ��.�����a�;B��8���-5��z��U�
���4��M@u���%"��E2�l'�����!���+�c>��,�a4��40�f��^s��C�[+�D�w��8���|N\$�^n��%��t�g.0�Y�`�U$c���`T��H�f����"���L��8�(�f���x�R���M��8�+	���C�E�	���Qq�������4�}�;���`��@IP-�����y�Fy�e�����,e6�0RI������Cf�2w�ki�Y&B(�0@Q��(Ah����iY��!Y�����b�#�
Z��������]��������<���3�I�SMj�����"����V��b/a�����w��yu��rc�q�y�e�
^;�Jn��$x�\�����_��E2F��@��H��!��e_�
�$���a9�%�zD��
�N���W��S5�N�{�� ��Jn��&E8�:GUUY��e@��>���"v����H���;x������[ ��3��Y�a��0����aC��q��;��}���A�����������Rbn��]S(�_�1���W�8���� �yG�Y��E���(l
j���2(C�2Z��34���s"#��|���5��.s�/OTEFL�9��uk����Qsld����_3��t���2j����2lf�L����'/J2�p���D
(1��j���C�r�*���%f(`#>O�4�dL)��Qe�����W�}��3�=&3{�ep���0�`����t�@hG�P9D���Q�E�f3^T�f�:�D��`��k��\��������Y4	0�h�"l��-���Z�)0��� T/h�L)�\���]�X`:��G�����;����@D�K�ZF�0��2�}]��+�x@i5.�:F��0��=�L"���1 �����������8�	����`��oZc����h7
�'���Q�>T�>�mC��@��Hy(��t�@~�]kF/��
��s	����`-�,X��Y���7��Zo�B"|�O����aaOs\��@%By��Q���F��u9w�:���,v%�]�$@��,x������@$@��	-��l=Z*I�xKo�l��(P"h�f"�H�z�wL�S�a�6���5��9�r�C���TQ
��U4��S�����8�nh+����9Ga�"n]��=��+6j���_��[
��0w{��C���1nCK�Y-�����<�q���!���}�V����?�����o�,�
��c��d�Zn��� '�	Rj��
�	A/LWv���O��5�&n�i�zgI0�(�+�xqu�!������@����[�3}��x��Um������P1T#�<����r�n����4�����������}+�������P1HE�$��7���o�|�g��o�;q����5��%��P;J��uJ����~��r�`.��&���������k���%�k�!�v���{����$�9���{�b0P&&7�� �i��cT������YA�uV�V��F���I�)�qv�1p��6�T0��8��.�6mY��u�����A���?�	1��

���K�"���E#�v�2q�02T����8������
��Q`�#�L#t'b�%���,�����@#(���"���r ���Z ����Il��R�b�"�0F��56��gB��QJ&�����l>>���<�J�L#���nj��q~AY��>��`��r&��3w��r������e%���(�h��{�����xd~�+���h�L��>x����)��i�2B�0�^3����g�K�����[z�����2�P���mG��Y7%k��<Y}`�h�r#���yi!�=�d�5��Vb��J����m��=��d�5��VKb��f6�n��<'�8����p���1aV�+����k�@-W���Z��YgGS���rV��y![�u�p4�-S��S�v�lV������-J��+���0b�3�a���1���c���I�V$���d��5�!�L���k�5A*X�M����a��j���X?��(�������7`��e��sU���k��wS_��\*���}\x�F^!*_(��in4P�����vn�z(wHSC'�G�|&Z<��k�3����Sp�e����5����T��zx(LV�yX���=�Qg�+���h6���6�&1�+�KW�����g���q��'�����rN��IPV�&/���I9WI9zL�q�O�C|I�wwV���D�t�6S�o��
��+�S������+��|�����'s��9�s�#��z������O����y��G ��}���m�w�0��)�q���U����o8p�|�}��WZ�Q�gX�.���A��h����9nsD��"DI��+8�e����i��#�n�^b������
T��c]l<"����	����6�5�JQb>L��t&fO����}���m�5�r�h���K�q	�����+z��k��]|��<������Rr�����w$?/���B��:�1�8��f��x�3�*"��L��G0���8������1QgiS��p�EEq�����&_�F�1�S|��"n0P�,+��%2~S�q������u��f�oeF������4�KG�J�^���9�/��b������m�������,����f��������L2��4�Iv����X�-b~X�K�b_�w�9�����_�y�?��r_�?>�����e���8����|&��w��k��1��f�.D2<vY��4|������ �{����p�}*.��5.��9��z'g�4
"�����������'����?�PJ�{��jK
��/�(OV��X<�E�{���
\L�|9A�Vl�%��ctQ�����������/	$1�+���Q�R�����y���j����`dR��[������z�����������1R,5�@5U�o��T+#�������\��1ZI��({��3@�d/>��<��e$.aKX��{[CW+��
K�~R�P8����! >��;	_�zT��	1� s� �JMu-����}����~{!8��jf
�d�. I�=p��o�A45b���u+�?v�~8�,���{�^|�����W�~��q���k�M���D�����*���y��C��@8���0� d>�]��^�Cb�R�3
+�
�`B���1�m�"2P4�wT�^���r�����9�-�%2z�����9���w����z�5��8`�4�W/������$wL��(V��N�+�����On�6��[�Y�m�N����_���|��K��]�h�M4����Ai6=�!>�!?�����0G��cS�����d�����#Lf<	��sZ�(��|^�e2��HJ�js:��=�}�p�$yE��D����q�+|�[����=�w��x:�Q���^��i`I��YB�Vyo����	1Z	�+���M�������}z�o1�l�#����{y��?[�~��..��I��@�b�o�SR5��d3bKX���������y��X���c�
�������������%��"K?���~��=���Hd�o��(T$39�
8K�{T���\����-������nb�b�A(�PQf�n�S��VyI)���pL�*��jPQ���n��mq�Y�������cN$5��A��m��v=[���T���:c���
N�����oEg3_u|�����b��=��T�9���'I��r��sg6�~�;��Az�;���
n�`n��`�G�1�w�sB�;���)=�4_�6��\���a�v���l���S��?�����"w
?����	I�F�uP����sY%�����];>D2�
�V��zN����
�No���DBr�ii�/��Z��M���(1�D�*�zVq�!�Z/����O2W�<RKAL���X��8�{�'�{�����x���v#?�=���Ww���s��a<����T{Q�C�z�<�br��|3�K�G�-8���{���$�x���)��a����H/��q�M�����tJ
���z	��sL�46�� ��,��D�iVq��3�	��p���AU�$�+[o����E~���@/�[��J��L�%.JaQ#�G�2���,)��}����,�`�
�������i�%���������
z��O������.��r1I��hx0T�������~x����~�����>�����<>�[}_���|�	>b�0>r�����h3�9.�1������d7� a����w������7��o����7zmU��b%8Y�\�0��q�_�g�!��e����m�����	
�TB-��������^�)
��G�t/9Aa�J�JF/�W}������K�9K���Y&��}�#|��o��{�S�kY�z�0rA�,�P���G���k|=�6n�X��'G��L�O_����f���yQ���X�`#�X�����<S���<H�����%��o��/�������;j�4��x	�r���:5p�fYa��b�n�nb�">><��5@�f���Yb-u.��q� �y�Qp��Z@qa�:P�f����T�����0n�}��]�p�/XL�v'�M�o����R��lwb�"h�F���`���U����Qn�}�m�:������b�Q|z����2�(d�G��b���/�����X�����.�1dFf���m�:x���q2 ������|-��y���Yn���3F\�������q�3*���.�������!����'����f?!F�M���/I���6��P$�cT8�t�/�'
n�5�|��*���2��>������}y��=e��z�.��~W��g(X��,<��I
f�<W)Nv�c!��L�QN�ui�{4g�2�P(?TI�o,�
��j�$����sF���h�y�����g<J��%@��C��FT���[.,�n�c5�g��g�n/F�.D�������a��m�<F�a�P�[r�����c/^r����1?�ooBa�_��F�t�N�	G/_>�������TMH�"^U�}�hm0*��Pj���i$������Y�^����I
���
���C�cp4�b��[zg���mI�T����<t������p������.�i��s�(1V7���Hq��Tf�r����Qs,�Z���@��q��P��-�!(����/�?)��rA���V.�U�5;,�[�h���R	�04b��zX�N
y�Xw��v��Y���D���i��I
C�{�?+�^)k+r��
	�h�M�h���G	�\����MN�	��P���G	��}����=mn	Il���Q���N�(U}kN�">a������rE���6CR)�0���Q�l�v)���e$�F�G	"�9G���Xb2|3L�b���@j��5���"�{H�����w��?�<��tC�:����������Z��"�����K�F$(s��6~G��+��|9,��=�7u6�`�l�S�U�z��q�g�e��,��P0L�Z=$|��H��#GQ�"��h�|�W�����+�����'�0�5.Y�T�J��Q�,��;y;`�j8�n:q� �ps'olsKHb�X��2���{�lO�">a�������;y�_�!��O�Rv�(A���������g�%�0������Q�D,f��R���M��m���zG(d�
���&��������Vn4���#)�Qoc'��6'���wC�.$��j�R�t�/I1S��jd��/�w��h��a���s15����D����f�}����DKQ���GRqU�1-/���/\u~x��W]���2����3b%~���<�M�h)�u�f}�N�"_*_���M���.�G����"�����,�m�$
h1��}�������t*������?!f=��y2�l��l�Bq�S�tN2�J_'C(�P����>�
wEqY��p���F��j�O�T��Y��Yh} ��yYYw�<B�=@CPqz��ub�5�����������<|�s��C'4���Y�_%�]�2bw'�+k�!B��@�')��>d����p����L[���b�o�>{U�3���~��a3�������D�A���^���:��^� �I�o_3���6�mObz����7�Sbz��S�����j����m��#�����*6�nW�D�Uu��D�����p��g}D9Y�rX/%���D�	F}��"�|����=�������j�����[p/)f��#N�S]�fW��n���7�����z��x������2���+N�*O8���'�y`f���_��qg=�ML��BT���*~bK���-��xk�~�?�%��������K�N���E��e��!$X"���X.i0:�$��f�6���W�|��f�b�(���Oo~��Kqi�\��,�oW^���+�����[�/2����C��"%�4%�n�~��{F W���f���� [��`�3��
G�?�e��H�f�U�h�N~\��������X�z�
{����Q���Y"�#�P���e~�V����VLDK>�V��*��LOE&O��Ia������/%�Pq�Y~�(�x/c��I:�B�+)����W���J�?�[jKAu}+��Za�)��[��W�_�"��H\Z�����q����xN�v!j���������<����4��;�z"��Iz�t�<�#�!�N�1f_�e%c�%���������s.c���	1�I�`T��qq���{���7"�$���2a�b�;��,�u[q�U���_E���T��R�(��b#l���"J��qsD)Y�;��~��D-hL�>G���:O���_�gj��Q���R�;��A�j��Q%��R�\�_�A����=��gI1�ij��������!�P�$cvl���8���zW��n��{�U������%��v��q�u���J/�M��m��c�D���bt;��8��2�Sz��������[{\�9�I�9j������|��Z���%i���H��l�y����HST?�n&1@
Q�Y��T�)�\�m�ARm�K'�X2%�/��e�0R	P"TRP�i)����K��}P��uz��q�����&s>�z>,:�i`[�g�L3*��;2��E|�s~���zx4h�����SL�|(�|<�����Yb�p2G
R}^�����`�I�>�|G��r%���^��A8�L��TCB�6��?�'���#�
��������A��5��Cq+.(V�GV�&����|�
H�k�����}�r�����v�O�hA�:X[�5j#�4�DT�[MDZ�������B5��p-�b�]���bT��I�hAD�����l��Va��8Zq��V�0*�1_��f�����o���A���0I���W�������D������^r�n�����CW�aW�S��/��l��f�q�M��l�J�^u&��G�
��q�,��������
�����/��%H��P$�IV��3��~f}�_���E
��L�q�;TO���_0���'�K
}��>��V���L�q�;S�m��;����;������#K
�_&����O�_E/b�5�t8�@�S�?���gw��~�8~�� j�H �AG��|�J�Y�|����U�~5��P����0@
!�d]��u�S�V���j�[��W��Ew I\�Y���C<��(�_�#�^�<	�Ne?^���N�i�D�<N�
��K���A�'��3�P��Pch�*�]����.!��(�;��zf�66����T��n
����b�y���)�Fnd#��5dVnd���1��p���dG���'���7vy=�VeM�hA���J��0u��&2��?��1���9�r�=qp�N�wC$
k�
�o ��iM�'����a!�{���<��������Z�Z�<	f�C$L�����Md����,|��>(�����l�/'�z��&��/F�?_�*���$�foM�QL�a��T��.�o���}�o"����)a���e���W�q;���s���|h��&
�#T���
4��{D3�)C���QD0��i��������8{���2��C�0@ET����h"e?�����H^�q�������b�s�Z������c�%|b[��	�S��YV3�e����d�T+y����h�m������IS�I�5�*�FyEN��9�Oi�l$���k^��+���~#��(��8�_X7+~��[�D��pNJ��s��\���Ht|��"]��Iw�����_$"
4�=����5���������K2���$�y���~4yf��_s�����^[]�0��	U�U��?cYe�]	:y&�t�m�Z0�9��#"g$��}�3��w�1��PI�kS"`=��A�>8si�=�+
���J"���~�Qz^�zr�j��C\&��u���)A�q]<�%N�*C��[�DJ������?b����[���ap�w�|��^� �����-��M�������E;����p�`����w���v��[�e�3��6�7Kc"ePh_kn��a#=D{�m�w�kc�l��m�Z�UcC�IQ��q0����&Lp���ox������Y���g�n
oP��t��S!���n&�L�gy���^
��N�)ey�a���E��N:T�����?B�8����I���,�zf=�Eg���m2�\p��)��/_����~����gcY�����:�!.0���x��W_���3�-_M�����8k��p�����"1�%�H�0U��Z�TE,:6�6�%�����@�n�D��	*�����m�mk������vn���E��5���npB��u;7l
����w�3���d7������Q��i����6/U7�����]���]g���������*�#�.�dmYS����3+�Q�y������)D%�/�;���V]��� ;e��wR8�S�^xh)�o�o�Q� ���)��S������
2��n����������5���
�������C#��4y��q9L���LC��t�����	U\+��������Fw�A�T�����m�n�kob;��q�+tH�SBK���h�Ua� p%nkaA�(0z�/g�����1�/�~��� �b���3[a}$.i:s�m�n~m�����	�M��PT��C~L����"������!�����i�(��L�O�E�mmL0�HP30>�u���:o7t@c��$a@�qs�f��o���.g��2�	��wl��c\s�w&������ �Z�u�5����)��� l����^���W���\�A&�A�#Z����\�
Du�TL�+�u��O�O(�DL��>�u������Q��H�	����h��|m���RJ$�as���om�h}d��N���DL�}��E#{��8\�J$�A�[����zq}+��o�����@\�J$�A�[7�������R	0A�������RT�J%�q��u��Kb~s��1<���-���kB�� T������k��������bn���c�^]^���#�������	0A���S��D���x>U����}�����L3H�k~�p�zWN>�}DLz��Cz_�9�����(���**��Ih����Dv�x$��x�T�(#�T"&b��HBD�0��th��@�Sw�f$��V��S�� H}�n���b�<�_��c����H}�n�8BL�7,?T�J&�����VAgFa-UQ�� ����]3��x���z����	0A������D�>a(�����1����,���!�T"&b����`�<��}����@�S�)L�7�^!�T"&�>u��QXEUT"&�>�k�\�s�Z����r��a��B�U�������$�[��~q���8w��v��@��~)�.B�0���+h�l ���F�E�#���)��2�N�`,��uF�Jd��2`
!�\�7	_�����3�/"��t<�vM�*N��C\������/E�����i�y3������|3��s�fv`
Q��m"�3w����{�[��+�S���(!�E�����up++pf8�3O��"jU��b�wgzDW�Y�3�����L����vT���'�r����������z�L����ya�x<���0����1c�i��[��pu�p0��|WW=�������/��������.qV����?�7��*%�q�X��������J���[�<gy�tG~�)���4;&��n76�b���Iu-��h��Qr��na�l@{R���\|�u�L~���zQF2P�p�T�������X`��&����~���F�|���&9���0P6�:��A�>_c���c�S�W��8��[���=h?&����:5�s700�z��@��pl��9?�D����1������9�A���=����V��XR��\�`B[�*�fG�3��]��~J2�qS&:�+f�J,l�|�O�q�3x����#��3������J7�������yI����i�]�$F9�@����u��_�s��tE"
Mi��'f�������:4$�~O�3��������)mu�Y��\' �z,4i1
��
F��c����G&�{)�Yz�3�����'����f��S_��#2.@zl�����Gj���1N������������������7k�Z��&=�o�1pV ;uq[����j����a	f$����Ml��)�7��M�������iqX�O�������x'n���Jc
^��1u���8�I���������W������?>�1���������G���P�2���f��.����sMz��nb����O���Xz�
�G��.��f�������|��.����z���Aj�o��H�
>�'�,��� 2XE�����y��\�����u���� I��/�K@���$���|�7V9�9{��`���}��0�wB2���1A��m�+���)1���t��HHW�n�~�9n���O"�,��73��.u
�K�� lO���]�����;��
"&�!���~"�J�b*4������"2=Y%�89��8�NFC��Y��	U�DL6���b����Zl�K$�A����aQD^����P_�s9�S��}
�����y������M�/��G�b�HhM�}y��Ln<�U�6���U��K���
������A���|�������m��P`Tu@>�0��������1f_M���:
F-*�Bn�L�WW��A��~1��H��hT��_�5�
	3LD��~V{�W�����A��s���!xO�1�������5��B1���w
���mS�$P��������/|����W�L��?Y�z�4��Q:E�QxA��������=S^�Tf��o��dgX�d���~��j>�����,�O�t�C��!��j������]��� �	�N.�J�m+a/�^NQ �@���T������K\�!o���^K�1�<������C�)���{D���q��*�XB�SHE�
�P��^i��|��_���GN\a�R0����=�d��L��\^����
Ac��P����1z�`���W��.y!����s������0�3�.���}���5���Y�-|�;�>lup }��m�V��"a�����\�$`;���aZ�S����6.�iqz�r��z\�v�<F6

�B�x�.g�6b����5_5����9���T���� �D�A3����=����oy�
��_��0��%&�x�}��eo�B���{u��y��p���_e�����49�5K����^k�%.������V���`���)0-M����*��(M�GyB�Z�	4;[w�c-�����N�q@�k|M�n���Q����%f]-����6G�qC�
��i\��:2��m��
T�P3>8���5�,�gVs���7�,�����zl����M�v
"��:�=��(O�/�[ZE'�[D���>"��D9������N�5������z>�����P(��`�q�������.y�6��By�����H0��:�N���p�w��:<y� k����c���+OT�?^���K�}8���4��8C.}�k&U�N�x�<s�����T�<�$Gx��9�ju"��\!�Bl�:�����1�/>�E�&@@GA��7�1����}�x�-�Q_���p#��3A�����z_�%�}(���p�S�]���'��m�^�?��_��*�^��p �Qv+���d���QS�l��W��b���n�q�)g=�9���C�)�r�������Mz�O���g����f���<�CB��H���^q�Igf�3��d�u�,~�^|���������e�/�Y��_�/_.1���a.����EE�����|7���"�I�qh�V-D���
f>�����d�m:����s����b��-7hx���jl�2i�*�_b��>��6	J�at�������7��
��8�V\���9(���Zo��^���_��YZ��]��N�f�U]&����@�R��i��^/|'o�><���v�|���k��<�#��������cl�Y)�<��`��s�&��������g�}�a^7��`���q��9���4�S�p�M1����M�0�������4
���$3c4��%D��/EG�G8��L	G�Q�3��H��GI�)�Q��Z�gT���48�#���������n4
��X&3k;2�Z�O���F��h�o�5b(&N����b\��I:�jo?_|<���I�dqt���<�Y�P����$.f^~;���xM��6���i�����>c�8�e���$F�r���_����%���P��#�CY�(��*?���2�lE��!��e�+��3�4�LK���'o�{�+[����C��n<=��N��<�����Do_�pVQ4��=SSR����[�l�����x[���}��m����l�a;��3��Oy��	����O�"9%��')�$���{gK�yT���;K~=��p�v�53��h��*^jm>b�����1e�g�^|��7Y�[ p�nk"����NS��)� ��i>v��7�.�����/l���:PN� Pie8��mo�5X���qK��*�j���+/���q���������L��W[S���������g��i���3�7�S-���w�
����1�_3�P_�����Sfh����^]"7�y�@����vC�K���YVu	����p��F�a��9���*��7�����&�+�<(���"�%U����]�4��(-K��)e������G�iX� W�}�Z�������L�f&��'��
=9N�i NL���^
���
�������8<����E��	e]=_H�&��"�!5~a������M#����"%�;�`0��Nj��;�	��_�"����Q��G9��DV;�Ib�����p������)1~r���s�Ha��]c�\�/G
�(eb��n@3^��.����]���'�����w�*)��c���!)��GfA��Z��~��O>����<�tR��v�Rs�����n������+��
� ���A��w{A��8J}�9�P�V��6H�S����/
g+g.?h5�p_VbJ��,� ��	�O��%#�` U�	�c����QI��W�����6���h8��?��1���sy$!�6o�$x�&!	�[�@��N�PF��@��\���md{�����uE,%@S�f�*�")m�O����F���a$)[,%j��(������v_O����I����4�`oy,A �I�q_��&�'k��DX5��$�(��&��,1�7�<�h���I���(���D�C��8�IBdCwz������&	,��M�h���$D�{��$D6z�7�<t��Y�y������i@��?�Eg��N����@�/y����7�+tp �9)yJ�
DT���^��a��:��X���{��m,1��b1n.������F�l�'���u�s~��\���n��K��3L��h	���i��$������i'��J[8�����*������e(m����	�nS���Hi\���k���f����_�r���h��^0��/aG������Y��9�,���$�:��~��f�n�#��9��h.��v=�A�����r}��d���@�_o���n0��7a��FX�s���h��s0�:���^�@#��9�,���$�:����v=�A�����r}��d���@�_�s����9����`�u@a=�N��:���`�uBa���FX7t�Y�:���.o2�z������Q��"H\gt����uG q������!$R�#p�uIe}�GY�t���+]*����~����e�R��i�:�c�2�T��L��������_�4R�7��F��:��Bg���8������zH��Q.E~H��")�i@%�.b�Myl2�?�~�~y�fq�,c�W���g���r�V�����h���i������P��*ch��,S��&#(o�T(j��)2����6�c�C�����#h����@���FX��Lw-wT���4�k����v�A3���n�����4+�+������E3����-��x<�~s3i���[�Sa�KH0T�a�9`���i4Hv")C����F*3��'��aI��#��j��$O����qh�`����%���oF(�a�[�Jo �b������N
f�� ���]�YF�������->G�K��v
*
mP+��c��f�n��|+���|,�k�[:�[�"P~�*�T����,+H���,�FU�U%>��s���'��\� )��p�zh�����0)������
��tjg��fB��7e�3"������N�O��H�v�l�F�c{�4H#��]j�p�P�%�r[p�����4�
m�����]/�T��	:�"������6�������k5o����3S��y�t�dhy����
�P���{=��L��J���b+p�cs�\���I��
c+q���p����G�(Sa�:�@�����m7�@.�``���
�jDM�������`�R)���J�������,N2� K��(����!:�M�$e�F2[�^��v���+E2T�D��H�`�<���,>���sz���-��~_mb�tw��p���������D��.���Yt6-��0�p���G�5��?�
d�~���		sL�4�Bn|�K~�Z|���R�O�9�7���ZJ�9�f��:q=�R�[Zca��wWf�� ���
������g���)�OmU�[!�dm�NN����1�pp�����4����Gt��-hc(�-��������������{;K�������7�*��x[��E�[oc��Px���	�=���kG-�9��j�mL�
���+�n��i��������
ng��9�.���e��j:_e���6f'����lAs�������A!�b�p;[��P�[���x�.jcr0�����)�p�\�����&M[D��FF�
�wZ�������l����726�;s~��i?x�qv��'��i&V�Zca�h������W��]���d\���-hcn���>6t�4 ($�7�m���;Y����6&����,A�r��V�
U�d��i����@Ya�N�{YY��Z6s�������i �<��!y����,���m
�����o��g��t�*gcr,�����!�N��K�+-�a�D
~p3;�����~Ca*��s��w*����
�����>M��u�lkW��@X`�n�������������x<�nl_��W����t�V�g�-�PM~���F�I�"C@A����z��]Kio�R�k��F�)���Jm�PVE���3{�p��.	F"�*�����:��Y�d(A�2e����J��B�<F){�o+j�P�?Q�HU�B�`B����qQ���&���X����%�V�v�����n{:�I'�e+U�S�kJ��n�`�0!�
��\|�je��#"`���KfX�{:%�y���.�Y�*��D�G��v�FT!:p@	��)��l�C�����VD�������X���:!PZ3s�_�J�d�;�a�l�1\i���\�5��K��M��d+s=�c]��t"�N5�V������k�xF�i�6	F%
���m�����
D�#�*��Dyh�
��s��d���qo�
!�����`d�;rq�m��ay(�/U~*��Cz��������b�$|�\<������)�+rWM�����WI���sms�aa}]���(���i"�������~Jsa;��4���W&���$;g.����[���a���@�������L��ODF<�D/F�K
���L09\����$�0bHj���f��KW�|���n�`T�!
���f��K�b����"�`��������_z!����V��a�],�yD��a+.�����~�E��#C[����w�j����#"Kq�zU����C����7�����!����<[���
�t�k9N�����l����s�����m[���0R��Vd������.{I0��V���O�w��KIz�I�H�((��
�����>�E��#"[qbr�~��w��`��|�K���R�l�n{`��<�O/
F)�J��L1,��#nT�i�\'�(�"�[q����l�m�4`J�&5�\zc<X���j��F��l%{#�-%X-G�0�X:��\1�[Q/1��yi�`t�!
����a�_cmXpl1
��81�a[qo���t�0@J���u����V�E���J�V���G8{�������$[������W�%v��L�V��\r�Q������K�
���$�
�u|��7��tI0*�Pa,%�{��=A��'O\
��	��2�HJ��T�3���T������D�t�d+��:����$w/F�K
���L�pw����u �Q�R�0�s����ZO�)�e�n��9�h����#"������.��8�v_�M�<2DA��m�x�n�]
�<"B��'�"v������3<d��a+nW��0�e�#��,��b�����/{�.52b����d�S�e�#��l���eX�v�)|�QS����&���[�	0�h�)�VX��O��)���jSa:��([����}N�r�#��Q�len�7����W��\��������c[���+9M�����a���z7��v.��~�7�0��Xj���]����U����u �Q�R����:��7�/~9#�L[���|�
����n@=�V���z����2obT��48[�A����^�a��40[�a�Z��7�n�a�:��0[���	�,�0bHj��T9��6� &�z�-�4�0:0
���mC�O�0�]�D2DA��������3�6E��R�l��z&`[
7c9H��@R�,������1)����=����4
�V��7�ty+n?F�K��+����U����t������f��
z����E/
F)�J���zs�;���{�)S��e+v���kq���L�P�len�J�Q��q�{�5���n8�V�v`���r1H�Q��
�V���*A�SWQ�A��0Z]@*���]���V�
�^"�L:F��)�����vr�k����t�H�B��o��`�K��I��8�"��^����h�����a�:��0[�A���������u �Q�R�����/{���y��l����@-�V�zhr�������v�iy��7+�fr�(o�����:`;�]Q�����wD�0m�Gmx06X���^����Rb�;�t@[����^������v��p��#1(b��nP���hS!��pT [�^�G�6��D���
�V�]�����K�M����Q�le-����r�&�h�B@A������
z����K�NQ`l%���w���I��GD��a+n#�����
{g����q.�V���[x8�'���@qd((�����f���Mogo�
��������x������$�T((���#��8���r�?6�%C�tB�Y�b����Y�y�����%�V�����1�v�-~��028*�������
3�f���
�V��<���x,P-&������u�ih���}�
���\�a��I�F�J��,&��D�f��=H��\\8*���m�G7f�������!���
���2���z58��.G�
d+s���C�5�kS�FI���b'p-CL77Sa�j�b�����48[�^���m2~�#�������W&!���"��Hv���������.G�0��h:�).����J_?��;(��K�,��f�*�����\����__X=� ���h�3b(t9�O��w='���q~-�����	������Y��}e~-���=��j=��\�����H��O�	���Hw���d���sr����J�!'*���64�7J�!}����~hwm{���1yo�=hl������X�����
������"���{�������J�Zd
7y��Y�����F=��cVE��1S-�� -���p]u�I���������������5���b��N:&����!��19�j�����1���:���-|���~�?��G���n��-��W�g<�<���J�i�\��g��`�s�_���=�Z<��K��I���9"���^�/���������RsORd��E�\r�i_�|��gl@V=��<o!��������?��/�I����I��c�$�?Y�_�&�k(���iv8_���so)�����������|��9�5|~)��������Ty^}~91)�Y�zJ���f�z���+���u3L�S*
��������=����B�74��~�Z/l�����	�)���C�����z�����~���3���J2�j�k���z'����G��
|��������������%??�5�:_�����L������c%�u��C��`��z����8������Uc��'��~���o������_���w�����o��/����7��G������7o����_������X��e����������*�����>�m�V
�7
*�o�P���#�����c�����f�b]��h��������D=�OYQ�)px��h������W��)o����^)W6�����>�V��e���8��D�!��	���u�s&.NW���?{�_�����)���
��)��=���7"]��{��������8f�G0R }�<���G����$����"���Cc��wP�R6�;�����;e�_���-���'�3�����|���}��3�g|��|�A�7 ���eP{���yw�����Rx��FT���]��F�t?����bG�LX��YW,�C�g����;��-�����9y=�_��������������������7���I���d���>d������]���t����#�u�-��?�NDBV)��f�4���R�bu����G��������S�a�����x�R&b�����b��.��hE���q�ln�Uv��m���`����`�A�%p)�a�_/T&y-
���z"���>������in�!;�/���00�X-a��5���K��/��4���3�Q?����/���-@g��
l�/�-{���7�@���x�_�}6Rj���{�j3P4�u�!�C>�b�Q����,�������H�����_�������!�|��`���>�~'�����������},)Y>������/�P�_����y�Y	�)g�K��CRD�=x�p_�����!��'g�_�`����y�e�����5i_��
�6�>��H�=�e�$�m��v�,��f|Q��g��J����������^�M����T��C������X46���#
��N�o�7��/���%���a��fX�^7�|7?a�-��%{i��b�?`�O�������L�/��x���}�>^_uF����w(�������L������c�5���'�w)���Kg��,�p|#��#_�d<�/~�a��W_��� ��������=�H�����~���W��������;1J9��e�]
��s@`��#�����Cd�a@������yT���lK�K��v���~���rl�@�o+�W�7��Qv���Y7����]>|a
�_��������a������@
/���~�)���|N2�������/_���������%����O_����Op�)a������&��x��I�{u�'#]&�$�n�%��}|<�$�������W�}.����%��T���~)��)��~�������M�?����3�!-!��W�Y7��H9��������H�]���\No����-�Od�nx����C�MQ�E�6���]|����E=(��y��e�\�O�K�:l=��G��,�����2�)�g��iv�VgGH�������c,KV7��1�3�������n�H�����i<���H��3��Y��'m`�_���{������F�[t������_������c��9�G�a�������J���nnk�����[���o���'��+�
�c��D{��������*�c�7,�=���������]��uW~@�)�IL��zw��y��Y���Z����A�w�xY?�M��T����#e��/����?�������o�?|���zv�����������c�z��$U8j����:�^�����70�����q��^���w������y���-�U�����u���V�6Z��O�����/.�E�U���2~��W+��5��x���<l�_
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dennis Bjorklund (#1)
Re: Function argument names

Dennis Bjorklund <db@zigo.dhs.org> writes:

I've implemented function argument names,

I have reviewed and applied this patch, with some editorialization.

Other languages then pl/pgsql should also work to extend, but I've not
looked at that. The langage sql I've planned to look at, but since that
language is not as separate as the others I did not want to do it yet.

I am not real sure what support for this should look like in SQL
functions. From the point of view of a SQL command inside a function,
it seems very close to a global SQL variable, which is a notion that
we've always shied away from. The PL languages are more comfortable
with such things, and should probably get fixed first.

Also, wouldn't it be a good idea for psql's \df or \df+ commands to
show the argument names?

What's missing are changes to the documentation.

Yup. Please supply. Note that I fixed the grammar to allow param names
to appear in *any* function parameter list, not only CREATE FUNCTION.
For instance "DROP FUNCTION x(p int)". (I believe that the pg_dump
patch requires this, in fact.)

For the changes in pl_comp.c it feels like I'm breaking the abstraction
when I pull out the argument names from the array.

So you were. I didn't do it that way.

The changes to the system tables was harder then I thought it was going to
be. The code in pg contains a lot of hard coded assumptions of what these
looks like. For example, prosrc has to be the first vararg element in
pg_proc, which I learned the hard way..

That's a bug; fixed. It is true that changing the bootstrapped tables
like pg_class and pg_proc requires changes in more than one place,
mostly undocumented places. But you did it, and lived to tell the tale ;-).
Be glad. Do you feel like contributing some documentation about what's
involved?

regards, tom lane

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: [PATCHES] Function argument names

[transferring to hackers]

Tom Lane said:

Dennis Bjorklund <db@zigo.dhs.org> writes:

I've implemented function argument names,

I have reviewed and applied this patch, with some editorialization.

Other languages then pl/pgsql should also work to extend, but I've not
looked at that. The langage sql I've planned to look at, but since
that language is not as separate as the others I did not want to do it
yet.

I am not real sure what support for this should look like in SQL
functions. From the point of view of a SQL command inside a function,
it seems very close to a global SQL variable, which is a notion that
we've always shied away from. The PL languages are more comfortable
with such things, and should probably get fixed first.

It occurred to me that perhaps by analogy with NEW and OLD, we could use
ARGS.foo to refer to a parameter called "foo".

Just a thought - I'd probably accept anything reasonable to get rid of the
ugly $n notation :-)

cheers

andrew