Hot Standby: First integrated patch
First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.
The patch tests successfully with the enclosed files:
* primary_setup_test.sql - run it on primary node
* standby_allowed.sql - run on standby - should all succeed
* standby_disallowed.sql - run on standby - should all fail
plus other manual testing.
This is still WIP - its good enough to release for comments, though I am
not yet confident enough to claim it bug free.
What this doesn't do YET:
* cope fully with subxid cache overflows (some parts still to add)
* cope with prepared transactions on master
* work correctly when running queries AND replaying WAL
* work correctly with regard to AccessExclusiveLocks, which should
prevent access to tables
These last four points are what I'm working on over the next two weeks,
plus any other holes people point out along the way. I have worked out
designs for most of these aspects and will discuss them on -hackers,
though most design notes are in the Wiki. I'm still looking into
prepared transactions.
Comments appreciated.
--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support
Attachments:
On Fri, 2008-10-17 at 15:38 +0100, Simon Riggs wrote:
First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.
Patch with --context=10 to get around apply problems reported by
Merlin.
Thanks.
Some additional info on categorisation of changes to give a better
overview of the change footprint:
Major changes for Hot Standby
backend/access/transam/xact.c | 679 ++++++++++++++++++!!!!!!!!!
backend/storage/ipc/procarray.c | 787 +++++++++++++++++++++++++!!!
backend/storage/lmgr/proc.c | 107 ++++
backend/postmaster/postmaster.c | 75 ++
backend/utils/time/tqual.c | 29 !
Minor changes for Hot Standby
backend/utils/init/postinit.c | 8
backend/access/transam/multixact.c | 14
backend/access/transam/slru.c | 16
backend/access/transam/twophase.c | 2
Required changes for bgwriter in recovery mode
backend/access/transam/xlog.c | 670 +++++++++++++++++--!!!!!!!!!!
backend/postmaster/bgwriter.c | 206 ++++++++-
Minor utility changes
bin/pg_controldata/pg_controldata.c | 3
bin/pg_resetxlog/pg_resetxlog.c | 2
Changed header files for above
include/access/xact.h | 27 +
include/access/xlog.h | 54 +!
include/access/xlog_internal.h | 6
include/catalog/pg_control.h | 6
include/postmaster/bgwriter.h | 6
include/storage/pmsignal.h | 1
include/storage/proc.h | 4
include/storage/procarray.h | 17
include/utils/snapshot.h | 67 ++!
Prevent operations that would fail in recovery mode
backend/access/heap/pruneheap.c | 8
backend/commands/discard.c | 1
backend/commands/lockcmds.c | 12
backend/commands/sequence.c | 2
backend/storage/lmgr/lock.c | 9
backend/tcop/utility.c | 21
backend/utils/adt/txid.c | 6
include/miscadmin.h | 3
Additional/Changed Comments only
backend/access/transam/clog.c | 3
backend/access/transam/subtrans.c | 3
backend/storage/buffer/README | 9
--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support
Attachments:
hot_standby.v1b.patch.bz2application/x-bzip; name=hot_standby.v1b.patch.bz2Download
BZh91AY&SY3a� ���� �����������aM\y^�8i`�m��N %^7���T�w�����Qss>>��������a���s�==S��gY�����{����H�
QB�R���!�'�=������!��=��R���
E���/J%R��`����s�w}��
�D�Z����H�}_^��E ��IQ( $D��@ ��B"*J*Bul��j�H�������}��fm��*���tW *�� �pz( oy�����k(�w�-�=f>�&�P B�P7����.�w�� �^���Y���w���Z�%AG����C7]Q(C�j����v�["�<�*�0�����FfQ�5y
������sC�vgM9�a �gV�v�0�_+z������{��[=��r��.�p:J��c�����Q��f��-��>�R�����]��l�AB��QnpQ���Q+�9���dIJ9zq������J�����[�wTm��������X��{]*k�cR�����y�}7�.�������A� V�D���*����0��P���P��
k9��4����lB�����V�St5�����F���!�kTd>�����Z4�}4�����i�_mOL�3��)��-�=�2��� ���Wf*-�����4S��$}�eI)V>� h 25�I�����]<�m�%Sf�`�j�6
T�������E T�;;�R���:��)� @�C@T�����=E=5?Td����Jh� �&�4�$�d'���=M4��M �JI
4�0h���i����<�
�
'�JIE<�S�z��
B 4P� B� M�I�2Lj5S�1i�&�?Q������P���
��&����$z(���z��x��6��h�
U����b� (�4E$�"4�`4����R4Q���f�BE9�,)�
)���C%�}�:U�m��$��-2o�p
��@��/��/����~�W�A6?���`Glc��b�����I�C��q*�����O$���]�0�$��������*���!; GI 3��t�H�I_�]iV����6���|��l}J����[r��u�J����W�km�~���
��H
F�#F��0,Y,�fll�dR)&�0k$����Q�)�j�J��d�*��W�>�n~��3��a���D�� e$eZ��L
r�h��$�3���Q��
bB�������vK$haQ�a�4��c�8q���Ru�?
��'r) +"���L�50�����g�~?��Y5Ik�nII
O|�����7��),�IY$Ll�]���d���v�����<���;���R&��Y���\������Y
&�+L�_Wn��l�ZCD�)�^���z9���"F6�(��K2�Q�L6I��kC�
�����3s����m9��&7C"�c92e�51\fJ���5����lQ���j
�p5MQ0��HQ��s@�q�@��S����Q����<s��6�����)/#��Q�g������6XpK��aAR��Q�E� 2�����^_�7�vI�gR}��`#��*b�H$�Qe6�$�)a�b���%���(�$h�iR�e������J��
i�S��(�����
�,b��cH�(6�#I����$��H�Md�Id���%�ma3LjFeIcM$��"*J"iDl1����#*@�"��D�H�$�6���`&�AtH^���(���V���M*ZZ��wn(>S������@Fa H{�r��a�sE�����)y�f�z��OHDlF��O �����\Xa
����D�S�wq�.>��
x �N>���Uh�����[����~|����������q��ZM;����QH?��3\�B�$$�R��������J��������W$�D��6RV���*���
�� ��<A�5 �H����z��1�Y1�)�����^�2�b����|���L�� �0�e�O�:>���&���D�4�|��T�W��6����DD;.b�L'�h1�5�T�4���,�j�UW����������U)X6��l�1sI\v��AU������1d�\��V��u}���%Z�&L��4V�%VSQ�e���d�So���� J1h
@�� ���
��ScL&�����d��,�R�fR����H���H�j�h��{lO�Zp��cC��
�!���S��������YG��9�"�H K!�a���
�}�M"��f{�4,�3@��`$��c�s��LP@zs! c��>�=;����fD������ON���n����cUm��K+�:��GM�#r��B���R�kMVa�Rb�����
��4)�l�
|���D�X�KK�$Qt�D�T�,DC�����[Xk~ �����69D�rj���t�P���y3�v( �K��d>#������-�m��R�fw�E��
)(MD�@�r�2��d�%��f���v�Wn�����+K*F�e��CV)�,M��Y�d���4�
��#�������$s*M���&_�(�Q���z��y����[��e���&P!�������WPN���Hj�:p��cq����m��4����!��}V� �)���Kl�
��C� B���E/I��&��*L[ g��U�YD9un4�������8���d��C��������D���q��bZX��H8K�!���Jy��S�>�����r�s���-�:0����
�l�#c�b*d<�]O��B��EE����5(X�*\�p��Q �&jM�.P�����S�T�>X� i;�L%{���0������{��H�����$Mz0�@����Xq��E�9�R�u �L�)�1!�y$B�P��"��z��a��~����_�.�����*IDq���7���3��V���U��M6�R�kh�C�Q��U�FBxxA�p�����|7��!��1���,f�0���To�dR�Nuq���::Aq�6O ��7�����%������kJ�T6�\bU6�nn�.��(�j���<��M������S��JNVD��7!���1�R�i��*���Z
yt����^ky�+���������^ZJ`�Dx����C�.�]��x���p��NX��L�y��BG����H�sdeN�S6����1������nK.��Cp�m���; �����1Zl���l����
;�Kya���?A�1���Ds� ��%R�a5,��`Qg`�����z����D����C���3<x5&w'���B�@�=$����oSh?� q;���}_�(nO�\F
�o��� ����������}%��s��
���A�WrF��0��%�&���s2*t�"
�H%�y������9�#z��ss,��\�3�����P��*��w?���p{,�b�L|��V ���Be������3So�-'#�<����W��^�8S�5]��N�k���2m��_R��>�JA����j5'9���N�L����>i��I�c�I ���#�:K;�H�@>I���O���m����3�LFN��i���Yj��e��L��gO!��.2��w'!�(�(���eF�$`�!�wv(Kb��h"-�����Q�h������+�������lf��$DZ�D� �G�bG�yuBdZH����#�I��@j���#��(��$&o�7��;D����8� ��qe��dZ��L��V���u����<&���7o>��J\�f?���~'!��DB���'"I���C�LA ��r�6G��l�pz�'d��{�������I�3|t�<K�3����N��� ��xM��L��go�4��>��pQ=%�4�����G���zRu�����sV������M�g]"! �9�q�px�x�����| V�������������I$(�hn��_��n�<(\����Y���'(rS��w��p��X^�nC��V?g0��I�8����M��>��u>�g�����������>s����(�1�=
*��h��,��E�����u�w�!��'�������p����)��Q����p���[��~��'��lw������6�/�%Y��C�w�����o:���h/�����?��NUx�c��D���G��T�#�M���}zY#�����w�D����@.Rt� �R����^�3��G�����$�:Ax����^!�[TE%�U���5)����no�������wMJ������vbB>���P>lB�=y������$�G$�O����:��i;��bS�"|�t5�
c�.�v�\5Zy�S��B Bd�����H
XZ���#���Hi!�{z���!K514#����������w�9f������wvYRyg_��|v����n�7�T������;�\7�G�2)�(�L>9 =�jEw���x!�������^Hx: P�}L<���u)���
���Q]`���{[�.8��$b�3%�$�P�hq������>�������\,���oAHPZM�o�n����Z��^�j�v�&{q4��c�4"��p�$:}�<�P��2&S����q��R*������n�?QJ?~9���=�#;�$/?Dc�r��=�6�>��pEP\�n���~�I?
���_��5����k0���v.�/Ps�
e���.rD���]��<4�-����@�^�QAW���y*�XY�<�k-1x���
Va��;0��T�En�O���!�*�3v�[!�X��Q�2Lb7�\����E�����sl`�|sY��Kn��\-��������Y7���D4T�eI�8a��A�����
;:g�N'�)N���Z�98��j�S�vL��)�'L=���/*����?6��O\��w��w4�g��#-}Q���$�����a�������EE�{;���\tP��8�������1�������j ��9�,���$��LS���������"b���oOF@R<#��G&����>��7���r���������t����r��its/
��(��MlM�^=\5@^�QE�nR�,�c4v����������l�'�C�����Fi��'UXZR����G�bD�MI��/�����C�����N����U�T��&�w�~p�]�=���W~��M'N�c m�$%�.��}z�JS�����C|���P�����O�e���,U6�e���w�^��{�X��M�\�su�����Y"�I%���+$B8�EC�)�`��vfwn��%��W+�������[��(��(�U�]S�^�.[rE��6�5� �hW����� T8Q�MJ9z!�eEN��2,D�B'.�J"��m����Q��������9��s���sp'q�zBA�:��m�t�nv���s�{c�kLs�M�AL�1"��8�~,�����a������&vh�V�;i�aA ,�K���I���q7�:b����DH��*$��)a�I2V��9E� y��{���Q�[�1����bH�)�3���;f��a�:� �)aW`s�d]��PG�w$�WiK�n�����?S�:��2s�:y;�#�e�c�� z�S��i�k;B�BeA�G&���;2nDt]�A�H�V�Y���.\�KKR�#H�����$G.��`���:q���.��v8v$a�����H�J.DreI��LD�.�9���c�H).p���)���\Q�H
���[ �':�r���V��Q ��"�JK��R�f�r��]�5DH&h�"�d��,f�
���I�d�^����U�"4�6��Lf���7H���nZ���h���,������4�� S}���&���6|{�n�����U���\�zY��F�����/w���y��]K����&�b�wI)Tm,�E�(2��U6�A3��48�`I�(��\���A�F��J�XQuXJ,��H�D;Jh� . 1l%[C���\���LRh�H���[L9\�[���p&]��N�q-w}z�bJ�0�K��71��T��6)��lYnX��M�����e��z���ta&m�����Ta
�Q�E
\,Y��X92lkEsm�Z��lmDh�������r�E���Q�E�����m��-QkEh�����P!C���]O�aLTR�{u�C�����wa��?6`�~c�# �bof�����l�\���l}����(�?.}��K��(I�����gC����ch�Y
d�%��5#A�����������5LES�O].4�J C�J�#J�ZE�Aj
�wY�H����
E�P��)H�4
/�tu��5
`.���0u��|�N�e����������;00@�W�z�vg*���k_����;=��G�k=v�6p�9���+X���*$!Q8�@r)T�6�M�rn�k#h�6��l�D�����P��#��qD(�!���.r)(��W3��t:��&QY,I ��0��#�C$8��`0��3���y �DE �rt�0$HDP���2�H�n+��=����ZS�vA��xW<T�=�p�������_(�)X�������=���~f��������4�p��/5d&R>�������^��@k 9�a�X�$z��?�J}��;d��HU}$9)4I�\��H���{\��s.�fA0�*R���8'����{�������Ba������ :E�#���� B���D�c�������`����5�7�g�����s��1�,� ����t{ Z��(<�2>��Q��������t@���=���J����G����-���H}c���� O���w{Nl}���{;6��������\�z��Z7�c���
h�o����k3��1�O#�k���^������%�/���0��������X{����x|8G0���������N���c�x�/�!�n4��t�:�E�;2&M��p�N�Y��=������3C�x�O��I������������Y<�a2��XF�J�h�j�SP�| �92������!����\ �L��B`r�&�����u-�ST�+�v�I�W���8����3AK3�3F��+�l��s�L�I�b�6��b�&�$��t������}G���"V}����M�7b�<��L�3\��Q"M�]u�n�L[��+"P�I5�44�������d�q��E�MI���wf15#�p�L�Y���$�P�\~��r*OV�m����9�DD@Y�����TVI�w�w[�%3H�l'��/��xn#������DaIC$��g$����(�d�I�O�`���d�f�gQ�*�>��s��+V�S[[}<i�|z��f�4K�*��{�u����S���;�-����L����?!���v�������Nb>h����
j�rM�IL�S#�U��yy]�$���$&��q�.F�d���
��]+�Ebw��,���,��sqC�w��,a��M�X������p��)C����D�9�
�a6&� ��C��}S|k�9`�RB\^�����iIz0X �TD
��3H�*��w��"���r9bG�f~���Z��������� iR 8�����gn"��}�A��p���#�7��>?�RlrG�rgo??���"9���;!��=���A����9�����:������J �h�<Z���V�t6�Lm
�f�t+j���d���������8UCT<0�ED{qOc�a�/�k���%��$��n�����>��o^������D��K�3�9x~������G��� �*����i,�CT��c����������KI���f! ���7�p=d�~�M`_����"X��C&��d��\���qO��B�C���#�����p��!��{[�3;��O��iH��s��(J�����G����?�=������������gR]���ff�nf���{}�[��W��>��P��#y����u|��}�fnw/����c a��e=%�����J�j!������<X6 ����4=f������*�B������+}���m29������>���?W�>�����!��t��Q��=��J��}�
�<��M�h��y��R�-q*��������(�p D���B��;&v:3���.T��p����[�����NQ�%?����W��m����w"b B~������HI��}w�H��"��Y�=�=zF��w�|��^��NS����a�������}����8��Hq�B�c}L~�������~�?����*�a�Ia���9���&5�5�'&n�sU�A��������9F�{L�X������3z�#j6�36dO����Q�!���qGrK�D�\��]�H�C��:�����[��&s��d��f�)����0gS�5sK��5���&�a�YA6ht$���Q+�]��0�2���:fr79�� ���e0�h�\c�@���|�f�m�6bD_�g�����t���a���Fn����� ����x�v�����`��9y��Pd'_���g?l��H}$��h�����(��C����Lg*�9Q�����jA�m � 9\t��=�4�+�z�^���^OD��H�p����s�@��
��0�K{��e���AGd�����G�ULwh`���gn�X7H�F��NU���D�LqA�a��O�� �#��'���o��S�>��oI1��!y?n��������Gw`��������>�{�����^^T+���3����r9�A}���B�*�~��=�7Nf��N���U??��&�0�v2��_���x��F���������y1��O&�t�XP�D�����g��"��K{���Y����a�50I������^�,�qj�E����������\��'��LP��>������M�c��'k�N�������FR:�H*��.~�����+���� �JM�cj��8�c����py��@�����2bO����0�0������ ������l�A����f�����'���}�<�q��G�s��*)�4�)1A1��<w���P�m���=�"��;Hpn� ��B}��O^�J����"�w��C3d��LM��]^l14
���`����MZ��zkO�w�a��}G�?���{F�V�������������M�f��c�����s|����Y�fY`>C!� ��l��5���C�f��n5
�����B��I� x0���3s�d`z@z�gH��@>���.U�����a�C$/X�Y��!����)�&Y� �$y������;#�:8������` �em5H@����u�������c�[�� �Zh�h?���0#RbG����2�u&�[�RC��@@}������N��w
a������)�w���: ���
�E��Ir���v��:��e�AF�"a����4Cz$j�S��������r�h#��
X�)n�[��@���f5]z�*�wr�[j���f,eR���#<�'3������X}R[�)$�f �wz�������9���1��dq��&(�=��&���97���o���xHm�w=������ i����W75c�$��v"��� $���j�����l!0]��<,�,�t(l�EL�Oi���JM2^uB5'�(!���{� ��?E
F�>c|^���h����A���u��J*�6�"�Va����*������|=��{�E�7�����mk
l�[��EP���S�%�=�K���y(�r�2
#����� �c��="I/��Rjx�jWx�z�S����I���8�����E��d�Kx*�2�a�����|p���E��x$~Vr<p�8�"�/�O��"��sA�A��na�H7]�Mq�����5to�u#xd-�,���cJ�pBz6o����������z'�����_���4����DA��@��p �gb~���Z�?.������d2��.e���B���O����=�9�V�k��*��d�'��-|3K�CN�+w�Bc�m��im*ksC3H
�j�h1��u��,0��3�1���.;p��YDL*�D���2��[T��]x�W=Vi������q����x����I���D�!�����3x�7���%�&�ra��3���;������8�O:�������5.W0%���@��st;�@9C���Z�;����� F��s��o8�7B�������d�_#������Jc�~Qu������>G�2���;oS&�q�k��-����^�KA���������F��q!���W�f�]���&|�e'��oC1B��{6�hh8�t�TA
��%���C�I����J���&�����i]�3J����&-�����DU�818{�>}]0���/M������"�$�����.;#�%n��@����*G��o��-�l��y
��(���>Hb����QG�1���e��~$�����3+�Ki�nAc���~�Y�\�������D�b��R�p�l��Ubt�ZJnJw����/]QSiA�kS3Z$�mZ������������g�nKsAGd���\K�$��a������=���(�6�6v[SS��(����2.�w Z�;����z�#}c��m�*&�����v!��(�x�8�dW���=���q��$���s��s$�7��[���L���H�*}�3��~��a����#�O�fQ�!6tU����a�Jv%V9����s��^Y=�kn\�Z��:v��K���[����h��+T��,���~rz�"��'D5��(�;��]Rf������3Y/��9����L��bZ�����U�T.^�Wj�H��aC����j���#�U�j� '2#r�L��A,�"iL����(jpxA�G(`|$�$ �$k
�����Ot=N(�%�\�i���� �3Q*!)L��qI,AD����F-d[�T]���=�D@��r_���|J���qc�FE���
XH����|��{�!�X">
�_�C��/r����s4x�-%�����
v-W]�@B�������}����M���Q��~:�e���2�::���>����>~0_���3MEQ�"p�y3��&�A�7������,��������n�}�{�PQ���O'=����|��A4d&�0�(c`�5u�Y1�I�nLM�P9O��p�Q.�������L�k�#��$�M��k�%#�MT�r�q��K.(l�0?P��;�F�O.2'j �"�t��#�7�b�I���>�5������F�T��<���Fy��d��s���|q;K��M�6M�N�8��� .$i(5X\�����|Gn�e�i��&����:�Bh �n�:(�������MT~v��%"&R��V�aH��O�J��G��4H��d�|��0nsZ�����J�0\�a�X�X�d�P���y�X�,;vw��l�'�@������u�S�X�Z�9���R�.�,q��L�f�RGaS�����q�����h:%�1��v�6A�?AA���}����;�@��%I�#m0AQ����y%;�h\��A������9���"O4M���>�/��=����n�l�/�f�CF�s��e��
��!����F��&R�����A�z��jZ�:3�ra��(��E�S$L��.����/�o,d����`}EM����^�g�w:V8���2���L�7,�'9�E �X�9�R���0�jad�v�^�����i��2E�� �SX��8����>��:?.��FbM�D:��Q0��B��Bx�T.�0�����L?��#w*9�n����J��vx���Uy�:�;S�{kics=v�fK����eL�f����Z������]`���t�gx���ap��p}�H�����;����.�#Vr
�tQ���8r��3
�/��;#�9�;��<j!�3hN19�,��z�����s�f���F�
�Ts���'��w������'������q&�6���a�Y��&E����x9�~�$�h�8b�s8�#�/:��F�����C��f�=M��<�Lc�����V�����2Cd#�y�\�*�d 1�;� ���c���P�9Zn�t���$�b
P�}|^�<�h<��f�%
.=� 4P�oI�3DY����a#.U�$,=��H���` F�ps����m(jHx(9�$���T��5@����\7K���.�����9��f��
��g���e���h,f2���|�d)�����|����FY��^��H���s8���� Nh2��k3��[���T����v��6���Y��,T��t���BkN�,cL���s'�=��dF�^���>���j]��xj���=L���csy6���xs������r?��o4a��u��&��%�(��������/��y����p������&egs
�b���4�z��'���g��H�O���wM��z������&�8Z��:�i��I�
V�[����3ea(� r8���O�P{�hD(}�2���&r��m�x�'.�� A%Y����$��g�����3�z
���D�'�u0���,RQ+���s�NX����C�Z�1�L^��!���dX�o��M�KH�d"�y?R�3NQ
Qz�$�EV�Nq���y��9�F������y4��b�i6�>D���K�d�,?��ZM���WH�6�d�lV+
A3�Q
���$[JP��V��1g����ms����H&��V�O�Dd��m`�����HTY�*������a�9��0��|�C�l�4;'g��B=1�Vl�J��"��8t�"��9����s��-�����(�\�8�bHb��)fX�9}���=����e���M� �r���L@@�u��q�$i3���.?RL��{�2����H7"&�e�
W�4���d�s]�H�CU��h�p��9
���������uj�����Z��~}�o$���F�r������LH�g?T���SH���|��� �kb$T�r�#b��Ri��d�i��R8s?��*M�F�fV#A��%R��������=���_�R�*;/��������M6C���Q��{����������.�x�����l���U�g����( ��pK?���D1�DY���<V^��lk��OG��g'g�k�G49����rJk\.������.��Q�_�> 3�u�����vL$��#�"�]��
@�!�o������3�<�/!1�r ����������B����c�qS���v��������w9�t%�����G�����N�;�H�"���%#J�*�5��x*f�3��S&�?g��?.������;�w���s�������ic;P�3�^=��8���� |L4�����F�B�dD��&{C��nk4 �M��1�������q�X;�����f=hl���pY�`�&F2��WS*3�������&��[�\v�/"��#;�pEb���mt����L��,����i�������DS�p���=��E�t�#\�ZnDE��M�6�1�P��4��UC?�c��ka!�z�^g�bT�`I���!������������������3��M|��T�}�p�L���������p���G���'�Ba@�4��!�*�>MT�<��������(�hF�D&��&�a7���K�Kz����Sj����TF�:�@~�pT�1���z��8oN�+�\�N����!�Lm����8K�(�?�V:�$F�������Z���;JpB4j��9��a\5�mE��j�1�����^OGCZ2�5-�D���pm�
��.�2�] ������B��u$d���9��y x*�b����}���X��,4T��1���N(u/�C�0KB�LV� �qS��(��Bt��M�;��,g�G��WZ�g�2f����l��W �Z+�g�!���~%���Y�"���|dhE��b���,�@�<�vdW�N��.T���7��eC��<�����6�e6/��c��B�9�G�Ue��C����ph�������l�7�Z_@������,�T�DB=��9d�.�4�$���#�C��#B�B�E.����"[������%�s��e����������X��G�9����O2&��w.6��^���rr��F�H
g����Y��x�y5�kf[�)<���l4��Wt��\��%�/Z3L��|J���:F M���6�*s�!5C+7�#[3�
���m��������[�A�Z.b6�o m/�>X 6d�� ���U�slX|Vw�Gqy��rEN�o�e�����w�}6��s��-KR�
����f�������&��]���dT���?�>���%�a�o�r+�eS�1"D_�dJD��L�\;l����?n���;J����~����*C:�����9���q����RI��0�E��\��UE����EZ/�����?��F��2~e3���th�&Ro������#��MYUt���MT��s�fc�W�;C�A�w
D@��nk��I�sG�2j�6��� ��<��������x�p���(�O8G<���>�_����JQ����Ij���X��������&=��x�^ZG����������BGm�r<����?�E��4J\6�8�-�����S'8��cS�&�d]T��XH�%B��q�n�
��&�����,4��-���&g'2 ���u0?.giw�goM� L_]�����nB':����������9!������&�?Rc���0�*���"�|���C�&k�&c��Ilj\�S���,��rm��1��M5��>��C�G�*f� %bmv8����7����cp-�U<����k6����k7!����-W���X�����+5�wIO���������y90�������r���� Q�#���I}k������l �)��M�1 ��8�<�q:��O;�E�-����]�0�sS�����vm��S:`G���ca���P����b����Q����
�\����T��;q�I�����8��mN��#�SQ��txm�1�N��^D\ww�<�r�ne�S-5���u&�b���HC�Gv\�M��qfH����H9&)^���M���e�����E5 �p��z�_�-�- ��{S�V�����69,z�@��M�~���j�%f��jSc�����qu���FbdHp�G�j�:U��0�`��vvd!����LCG��ggx���2��2d���EL�
t*���uo�=K^��pl�i��T��R���2EXG��q��'��H�~g8��NXq6�����r���+������s�<��h��@���������X��b���k��$A�6�7'QC�Yx��DC��������uM5SUT�MT�UT�U5SM4�\��;�}}3�y�7�v������nL����4�"�I��N�44/C
�iq.GQ�/�u4=^� [��g�0=M��*�����������F�-�=���y��z��������$s�'l�����I&f$&!=4�`G���o��j��������w#��j7��
hURz`n)����rA����?,��I�S�s������<���S@�O����_�G�y�m�G'�����.J5�T��]�f��1�m���������=�c$-'i�|� �(�'��������,u�Lo�&n=�������������O��\��*@3��L��k2������yP���J��O�4��,�>7a����V�<��qG�E����s��������D�~T&sg1�;�T�"(������>�#-��4hS#�L����7��c='7Cl����T3sGf��Z#6�d��1�^*lI�u�!���
��s�.b�kR�Dmv8jeS��j�ln7�Y�y��l�;���7B,��~��0F��$8�KIB*��}T�J�82�.�_�$�e&�����5���2m��P��6��v8�c����
Z���F�
�����r���@�Ag�N"�s��M�$��GW
��F���-�*���9���)�S�@��$��S�zv�n`������#Y�X���htWBgc�x��������%���a~-�Dx��������<�|)"8#�'\�R*�C���eM���Z��>e�r,�;����]�������t�{����e;rO�zl��<3V�b�;$5�'<�^��0����>B���J���{=��_�H��G���*6��������L�����g��r�X�t��-�1�/����h��:����x�waM�"F���-���V���F`��ph��M#�9 `�f���Qi3�*}��(9�)���N��������<�q�k�w����sX"�O��3���}��b/N��_l��S9�CGR ����Px=�*���
��#����9�v}3��6z��y�:���8�X'
�[����z��*-��~�����[h!����M����P������pA��|��W�# ���*,�������\>�1��������jS�@�#/7m
F�4se4������ejpW��O)�f�X�9�@��D�#C^�)��:IF���K�����s<��b0�6M����N��>�4s����dL��1Y"�Voe��q�k[_���������u�2q�o�x�~K%d��8�Kpt����-���17&b��!��������)hk���/?�����z�����~TXA���Y���<:���S�y������QyL�=�&����c.���32�t'�|��G�$��#��P������(3u��ggZn�����C��I�g�w:��1�j��`��$�Y6�
&����\���=�����r,W s���x��6p~Fh�6X��&���C�HFE��)J6�e�F��� ������������c��j�R�n��X�e�Q�-z><3�y�t{��8�����U��U������ggH�0���������o�y&bQ���%6v��a4i��Ea��h�$L-g�1�|5!�4H�d�����i���� ��D����r�bgY�X0�2��EzH��r6C�y��Q�9m���g�� S����q]�Y�+���[�����|�;�\=��2�����F��T�-�l�(B�7
l>9��#��a"��:����b1_$��(�/���hTQL�b�hDw�?7Tv���bN��}���dH���Z����
N �<%�q�T�O3U�78V=��[$�� Jgq ?J������(s�w2/� �)�LW���d��� �!;^��C�\>Y�M����������3�*E�p ��7+����^�DN/?Q�nmY�q��om�����C����0��C�:��D"���S��@��������4D~p���u�A�������^���c�H��
N'���&]Z���e�(���6���6��4����2�1D��lOFw�q���x�����.�#����t�����N;�QY���6���2��O
�����D�n��\=���2cL��<�d���������go�,�����B���bdM��6��OD
B���G���y[��z{�j��I28~-����?a����C�/q"�����k~0�7f8
R��K 2"B!
�/�?�$�����������d?���������qv�.����FUB��#�����a�t�W�~Z}�7����k5as9�u�� E}��?B�<21L�,q?�u(�H��oL��������t~����_���������y���^T�\����������hLB��&@���A��MK�^���D2~[�(%aD0�Is�M������? �dc*D�4�o��ob�u�D��l��Y�I#.�\��!\$U{������?`�)���>�� iT�O�OL$?�S�M!�?E�p�
�{
���G���������l $�������Rh��M%�(�?��!�
)�>s����=��v�B|�.���#r�L����<N����Z����j��U� �Q4���a��b`���a.���9�nTy~�N���)��M
����?3�f���������QD3�R&�{#����w!�����S�j�
��C��fk����&�d���J.�A��G����b~��'B$9�K��_�=���d$�-KB����lMk��52$��8�DH��`q_���QZ���&cZ���AyZ��K{��F�Y�����<Xk��� ��C���s�Mu������K�=_>>�wq����L�M6`�����11�C�_32A�V����� K�`L��F���6�\�Hg���&�#Z�"���]3�z[=����9y77n�=��p��x3V<~������8��0'.���t��$�Z[qwY�s#�n'�B�����t1��w��4\�[1��I&l�%q�L��;pM5�8�=�c^@0S�`�3#`�@�v�M�GwAS�m���O�����dU{�8���I��V2R�������3X�Ixc�7�������m�����v����G��� ���Q��m�4��l�4�0�A�.����4_�
Dd8U���bpl;�����N���#��>���2=<du����q>�&�����T�<"��W��r�=�A���2�N���2�8/���DT{a�\�Y2�s�g�+��;����pN?��*; ��#�q�z6����&}����y;�;��"��T���f�QZ��n+*>��l�>����<;���;';'b���#� ^7jR��<�@���}f��BowKf3{��k��>N�������'�v0y�g?����M���f~�$����A?G��0�d�@��3;�����C�8*/��.�&����bc�������y�[1_�����v��5&4�7�����U�"6����ym2���>%�V�/���X�9��m�����z��T�]�d�"3�s��.x���������,��w@I�N"�8D:��/>�g]����.>��Ur��a�{�++��N��r�������K��.��Od��Wn��W=5��E��u);w���'�"��xHB4[�[�}�������*i�Y�Mw#���9����?_!{�z��7���$��%��d�5<(���r���#��:��>s��>�a���\�68������7#v��vs�@����A���?!WL� �-O�#�s7�)�8#�s���@���R�;dH�Q��G���}��2��uT�#,�� &g^1���$U��~'��)�?���>�����7=���������-526��C�?� ����L�]��Hm��dt[���@��!%���*._��3�#:j=@���k��d��E�"I����I�����C�����0��(<�)a>�v���S#�K�i� ���������~�m��������O�n|(���vf,�=�$!����9�r��I ���_C���S�TJ!w�LHo]6*O�&gP���)6����3�$ob&����� �������o�81����D;grGL�:99��$p�cG����91��>�/�I��f�k��YTwM ��_2�Ns2S��VbV6����A1vE��N�`��X�K��'����� Y�%�p���nC�v�jv9�2G�W�,H�\z~�w��q{����x]W�630� ���W����\g��:���j`�K�}.���o��w��:Pqf��w&.���#������p����N,��E�'w�K�q1VpB�Zt���qrr��s�:Ix�����/w�Y���o�\5�U�/(I������G����n#EQJ(R6,���:��.U����<$c����7�y�9w7�_|��}�&�S�'�8S*����������L�w=$��r)�8��m*M���0Rq�D(���{�'��1�x��?,��3<�3�OK�u����|�����c�^��k���� @��_�`D����Z[I��*j)#,�RT���Rd�-,��,�-5�[Kef��k ��TQ,��I�'�j���+-�*����Qm�k����E�f�&��i4�d���DA�RI�L��M2KA������Y���Y-6�Y�L�4�T�L�4�&�&
��&#,�����ci4��l��� ���kIX�\�ID���f��S��h���32����ZRj2��Mj5�h��56����D�'�6�i4��Q����k��E#��4�E&��BYR�I$k5Il���5��I�$�i�L�MX���`�D���F1$���cy�I00IHHQ�A�'�� �@�J�Q#���V��#��5 /� ��A��A"���v(�K����I�`a&��(:"*! ��_�1!&�U�(������K���������L{>(��~1��������_w��|&��1pG�?0�����#���;��t)H�&c_�l6C�� �y��n��A��M2c�A
���lP�T\��(1C��L�B�j��Y0��;"�<���#��k���9��������e�z��7��#��_O�O��t|�����fvo�-$�����i��R�C����������|lI2��e$�A.��5���x���Iem����YpXR���/B����.9g��\��7���6r]���P����{��
�(��������jz���������p��y��kO��c�[uR4,��+�����B����(��#@�4�6����tI����Ayb�7C����������o#��l�!�/@�c���(x�=% ��������S9�'�EE_s���^�oC,�"��D4�^�9*�
�g+}]��d�����`����~����Q���yKv��b�m����V�#V���@�(�H!��#F^�
,Gsr��z�� ���*�3|s��:Wj�#jL����GiI���eOnv��|\��f�����7%1����D���yv(d: �����Cr�g3U�+C&;�br�� r*j#�l�����x3jo/I^��b��D�Cr����M��fb
�����6wBhv�����$y+�y>f������:($��,���4��Z�S<��\�G���T����9�����b
2:rf������1�Z_@���Fzt�����R�N�E.z��b�K%E;p����� h��$)$A!��o/���^����8=�_\���A'HTz�S��f_������m��|
��U���4hX���9r�<�c�����""�=V���!�[��j�eEo(x�f��D9���x7:���������n�qTk-���5�u1SyuWF�WM����_��:BI�hb����Pk��$�-,FM/�$�j�Z�h��V����"#b���l5�����i��G����M�t:O���� �y(�G2��dgB�%�l�K��'o1�&-_�0���!��b���N�i�hMH��S7�!X����w�����8� z���3��KNE���U84��Wcw
k�h� �t�3
M� dj������`�4��C`����!�v�F�:�I���j��&�8�D&��525������2l2��b*LTs!G���X���H�������J}f*�RM��brZ����)�c�\�s������s�Sdt�G�hM��]Lxw�L����cj�����kF���-NS$<��N
N���
����oR}�c_��,B,����=���=���Q�&d�5�����|����$|.{D�g���\J����uV�vI���mc%<k~~oZ�>����'���n��9�F!���<y9�����(�>���r5��;�5*����������|�����A�k\2) ����s�����NE1�F~�dM��;���P���&G��(����g|��:=}�}���;������
;f�W��(�
j>7��0��/�2)��|Zm�#Y�S���C���R�)JKi:#�L���O�����^����I-�v��Qx-]
�p��������������;Q�
�����vxz� O��������;N���L�������j=D��gk\�<��o���\t)���u3��]=����/m5F.z�k����x��W���@��a����?8N�{�E�tD�o�".H����r�wt���{v���!�k�.����Z�B�q�F�80�3�oz��\<�������!�&; `��tu�Z����J��������G'1sQ�L��7��$X�����
�Y�''�}7|�Ni�zLI �!��Y#A�rC�~�� �B�*!��AC�&6�6?V4l��
3c ��M��3Y@��P�����&����/-����Wu�bi3"�|U]{q���m p���Q`.0uH��`;����Jj���b�8�g�����?���>��}�>g��'�?0��jM,u8&��nq����##Pt+z��GV9��}��jh����d�{��cqO��i<R��������~",�T�w
�M�+����Q�c��)C�RC��?����o�nk����]]��X�09���6huE]qY�8�f�[�����7���W�1�:���i�S����oZ��f�����9:�d�!��>�C���q���C�9�m�=��t��;|���r�����7��5�l�o:�x�q���|x�>��QP?j���� ����.<2m��6v����Lm2�ff<�p1��>o�(����,��sM��-��J��f��[������!|�����V��I�d���a$�{y���<qI���q���u����%�N����������EUUUUUUUV������o����h���f ��D�,�9B����L����[�a�Kh�nq��&2$��H�:c
:m���1pb��N����w'd���w���f����e(vA���sf�����)d$��h+�xr�6-�P��<h%��l�Lck��C��'6 A\\t�\uC���z�#������� ��&�� n��I��h���3m��7,�����
�n����s��k��{��A'iC��e�!��� >�r�V�"���<��j�!�����N
�����c��3���>=7��Hg������{���`o���8�j
$���h\7�}�H�'Kn���z+�8�����v��|�:%�9����eml2d�.��\6����Q�wpy�r��=y��'��x���D����g���JE?U�U�9�3��>��Sfk|�X�!��O�;�u����Q������vq��W����o���&��x�i
H�
����4�����1�M��Z��<��,�o:��f9��pnZK��5 �c���,/��[���D�����@�~�VC��������80���{�1\\ag�������q��i-���%z�����eT��Zz���������{^h�\��gS\�����"�.�������0DW9���U�>�+w���|�2���6����^������N���&b9����]L����2�%�7�Js��[�r�����L��W=L��$$��3��T���7k�^,��x}�����x�R������'K5�5����;��%��0�����?�+Cp��!�����L�O��j�5�`�w0�}������Tprq���
����!��Vo����!%���iD:]:���X��n�70�����OR����$�j�K����7�3v�����Q���*i�� ,��G<EgO�U�C �vEq�t�v���P��������]��S�����S�.����S��vsfGkP��^��"��T+r ��1D$��>��������.g��]r\pJ� 0}���7,q�
���:�����U5��o�f�7Z���S������c�����2�7��_9�s"��wz*cz�<�o�6u�;�������,��t��tOx�Bu������4w�/j�1F�W'�+!�7��oa��G�3J#6�s[���7���|1��q��i��5�r��n�S�s�H���*l����0��Q�|�$ �7���'�a�P _��� e�G�~-�v�����3���������P���_�_�����w����n#�,L>w_��#��o�Xl�S D���o/Cy7��z����G���8MR�3�������,�$&����I��`�>GyCw�O�D���
I�3���"FL��^���L^�6(k#�f{�=���m���# �*�"f�F���������� ������#�&z8�]u����:fQ�4�����bN�L4;Q0h-�6�s.{~9�����C��<�`6��[���|^�<g��r���Q��f��!�D�{����$qgA����&m� D�)�b���Bo��##��m\���zx�v���Nl#�w�c�jew�j�I�"~���iP���� �2���v�X4q�9�D_K���Y���[� ����B�v�$"N�/�6����v�W��M���r;�� H������$�g�
J���Z��8�`���)��;�n�8=
\3����=&r�������#cc����qz����z �bc%c�� �,��0tfAa{k����A�4��������f�Nz�%rW�rX�s���;m���T�?���D�2�����RP���j��(D&�o qP�)!������#���D�����������I�_���[J^�<u�� 8������KK����a&�x�/���x������������2�'2i:P����Z�;@���8�&L�� ��U�^�G��T:������+T����m�tTpH�<Q�M�^N�7t��3�����o��nR�*��b�%l>QSgvD�$|�fU#����J�8�0��3\���l{&k�C"������=�M�s�|�{e�Vj$w�J��u���wE�,�����#�]���
k-]���lf4z����{%�JC�GIzk��}��8@��/# �S�s�������G�Q0�#�o=���������BH���K���W��Y1�!�k������29��#���4��H$��Z�����{!�������4U4�gH�F��J����B�s�y�v��?a��.���P�;���N;��y�Z���0�(�H��s~q���0�go�O��aN������
&����2@���l#����;E�+b���*�MOj��p�����p1]�"�$0�1"��p%��v�y)vv��p�m���1C ]!KUS�k���s����DO�@��Ow���=u�$��fVt��&��<���p�$�����>�����P�?�}K��;���p%�x _����#�
�� ����D����b�LN�R�=�9x'������������x�t�9i�������'P�V��'ztG3�C��m�'������t?(��4�<|6�-9���Zvj���y��'�8��?������m����Ay���p�O�#�����������M�6��b�#�?����>�^��q��?��������%�s��/!� �b�^d��r���OWH������tp�US�Rp����3�s����{��G��������ds�W��H����Ji(�����8��w5�3<_����|8�;�Hwf��q�+;�3*?!5�.���\����M�Taz%A����A���M�s�zZ�c�f�������>��H~�+l~��MM�CP���6V���>/
i�q��L����^����I��J�U���\�4f��1<�'[7�8w���V��@����,���k����$N$���}0vGne=�+�"��HH�;8�W�;��Le1b�fL;I?Ll��������.���(�5�O�������C<��E_��M�����cr�?�+���4�����<49������h�#.����S�q�7���;�,���C���Yk�������`�c����fkj9j�xE'�� ���
� ,@j�y��X���5l��r6<%��]�H �#��0��L�-z)��!ql�?���5#�E�:2��+�\�|�_�W���hR�,Q��u�:s����o�[k63b���n"�x6�M���~���^�=d}?��v�]�A�KT8���F�Sk��4������]}��^�������#�kz�C������yp`�H����.J>�p���cG��� �f��z�U�`�����r���fTp�=
��SX���1'y���~{�=���sr��@�~R]f0E�����8��EeV�o���ra�s
F{�C7����
���/B~���Hz.��}'��>�����~��������cM��~�F�Mq7 �x���M���u�p��6wa��q\E"/
q#� 0����j �I���`�5"���;������KVL��4N�F���:�{\u������O����&�A�U�&2;Bmb��������!����
x�HZl�
s7~���h��gr�N����"x�������z�a���=%���Z��C����?=����|�����{��pp�x�c���X�?D�V�z���V���j�3�������r'�k�����t��l��������_���4������!��/��|��I��[�i�&�-9���K �(���+���mRx�M�����N�(������A���[���XA�/�N��J���JH��b�?ZV����~R6�:$G�<�-3�z/���A����K�dJ��H��X�� �k��3�R/�����1Cb8�!���;��g8�������Id��
��~��?[��~w�6���=
�t��X�q�
`.��s��Ga@w�%�H��ZO?�p��1�a��g��{>��=�P������7�0��{Nt�KmI�X�����Nop���1�p�����*dc�X�e8cWY�'��� dYD��O|���Q<��>�����);�����|S���2-
�.a�A����[���8��+�w�=�����/si==�������'�<�g������h��{���T��T?1b�-"������Q��0I�;�F�(�p��u�QU"��1i����i�j���#Y<���w����_)zi6�vd��,��i�NI��D�_l��c\��rpm�q�T�����1�>����$;Vh�������Gp����9x�<�"7� �:��(r)����ca0b��u[���:5gh�j������o�cq�tX������}�0�5�TdK��_U<���dT���zy'��S�� i`���
�����Qbn���k`4H��vy��}��|�=�!�L�b���
��}tev? ��(�d/����y0���4(����3bLI����tp����9H�,���}j*R�a�N�dN�|*�Qi4�����Y=��-]|�MV�H����M� _@��H��#��vxf~`3 ��z=�3��b�~fc��H���
i�E�,7�;��%��4S� ���p��'(� �����t(Aq�^
��|zh�������7E��<�^�{���s��[����ez5'�������(R�>