summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2008-07-12 08:28:36 +0000
committerDoug Barton <dougb@FreeBSD.org>2008-07-12 08:28:36 +0000
commit218ea97b9e01d8e16190789f89493723232ae1f0 (patch)
tree6b71f5fa714ae5d1b0e548b08fe2025e1c5439ad
parentcba78608de638f8cc6d1d48a2b3072e82386b70d (diff)
Vendor import of BIND 9.3.5-P1vendor/bind9/9.3.5-P1
Notes
svn path=/vendor/bind9/dist-9.3/; revision=180473 svn path=/vendor/bind9/9.3.5-P1/; revision=180474; tag=vendor/bind9/9.3.5-P1
-rw-r--r--CHANGES5
-rw-r--r--bin/named/client.c10
-rw-r--r--bin/named/server.c34
-rw-r--r--doc/arm/Bv9ARM-book.xml12
-rw-r--r--doc/arm/Bv9ARM.ch06.html12
-rw-r--r--doc/arm/Bv9ARM.pdf1700
-rw-r--r--lib/dns/api6
-rw-r--r--lib/dns/dispatch.c707
-rw-r--r--lib/dns/include/dns/dispatch.h13
-rw-r--r--lib/dns/resolver.c43
-rw-r--r--version6
11 files changed, 1176 insertions, 1372 deletions
diff --git a/CHANGES b/CHANGES
index d76e389248c5..a44e20337bb5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+ --- 9.3.5-P1 released ---
+
+2375. [security] Fully randomize UDP query ports to improve
+ forgery resilience. [RT #17949]
+
--- 9.3.5 released ---
--- 9.3.5rc2 released ---
diff --git a/bin/named/client.c b/bin/named/client.c
index 6d4cc91a4e4c..3215c6e63732 100644
--- a/bin/named/client.c
+++ b/bin/named/client.c
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: client.c,v 1.176.2.13.4.38 2007/08/28 07:19:08 tbox Exp $ */
+/* $Id: client.c,v 1.176.2.13.4.38.4.1 2008/05/22 21:11:13 each Exp $ */
#include <config.h>
@@ -1349,14 +1349,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
}
/*
- * Hash the incoming request here as it is after
- * dns_dispatch_importrecv().
- */
- dns_dispatch_hash(&client->now, sizeof(client->now));
- dns_dispatch_hash(isc_buffer_base(buffer),
- isc_buffer_usedlength(buffer));
-
- /*
* It's a request. Parse it.
*/
result = dns_message_parse(client->message, buffer, 0);
diff --git a/bin/named/server.c b/bin/named/server.c
index a01e5e79cfe3..c705af0ddcb1 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: server.c,v 1.339.2.15.2.78 2008/01/17 23:45:27 tbox Exp $ */
+/* $Id: server.c,v 1.339.2.15.2.78.4.1 2008/05/22 21:11:14 each Exp $ */
#include <config.h>
@@ -485,6 +485,14 @@ get_view_querysource_dispatch(const cfg_obj_t **maps,
attrs |= DNS_DISPATCHATTR_IPV6;
break;
}
+
+ if (isc_sockaddr_getport(&sa) != 0) {
+ INSIST(obj != NULL);
+ cfg_obj_log(obj, ns_g_lctx, ISC_LOG_INFO,
+ "using specific query-source port suppresses port "
+ "randomization and can be insecure.");
+ }
+
attrmask = 0;
attrmask |= DNS_DISPATCHATTR_UDP;
attrmask |= DNS_DISPATCHATTR_TCP;
@@ -494,7 +502,7 @@ get_view_querysource_dispatch(const cfg_obj_t **maps,
disp = NULL;
result = dns_dispatch_getudp(ns_g_dispatchmgr, ns_g_socketmgr,
ns_g_taskmgr, &sa, 4096,
- 1000, 32768, 16411, 16433,
+ 1024, 32768, 16411, 16433,
attrs, attrmask, &disp);
if (result != ISC_R_SUCCESS) {
isc_sockaddr_t any;
@@ -1866,7 +1874,9 @@ scan_interfaces(ns_server_t *server, isc_boolean_t verbose) {
}
static isc_result_t
-add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) {
+add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr,
+ isc_boolean_t wcardport_ok)
+{
ns_listenelt_t *lelt = NULL;
dns_acl_t *src_acl = NULL;
dns_aclelement_t aelt;
@@ -1876,7 +1886,8 @@ add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) {
REQUIRE(isc_sockaddr_pf(addr) == AF_INET6);
isc_sockaddr_any6(&any_sa6);
- if (!isc_sockaddr_equal(&any_sa6, addr)) {
+ if (!isc_sockaddr_equal(&any_sa6, addr) &&
+ (wcardport_ok || isc_sockaddr_getport(addr) != 0)) {
aelt.type = dns_aclelementtype_ipprefix;
aelt.negative = ISC_FALSE;
aelt.u.ip_prefix.prefixlen = 128;
@@ -1935,7 +1946,16 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) {
result = dns_dispatch_getlocaladdress(dispatch6, &addr);
if (result != ISC_R_SUCCESS)
goto fail;
- result = add_listenelt(mctx, list, &addr);
+
+ /*
+ * We always add non-wildcard address regardless of whether
+ * the port is 'any' (the fourth arg is TRUE): if the port is
+ * specific, we need to add it since it may conflict with a
+ * listening interface; if it's zero, we'll dynamically open
+ * query ports, and some of them may override an existing
+ * wildcard IPv6 port.
+ */
+ result = add_listenelt(mctx, list, &addr, ISC_TRUE);
if (result != ISC_R_SUCCESS)
goto fail;
}
@@ -1965,12 +1985,12 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) {
continue;
addrp = dns_zone_getnotifysrc6(zone);
- result = add_listenelt(mctx, list, addrp);
+ result = add_listenelt(mctx, list, addrp, ISC_FALSE);
if (result != ISC_R_SUCCESS)
goto fail;
addrp = dns_zone_getxfrsource6(zone);
- result = add_listenelt(mctx, list, addrp);
+ result = add_listenelt(mctx, list, addrp, ISC_FALSE);
if (result != ISC_R_SUCCESS)
goto fail;
}
diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml
index 67f8c8973624..710cd36c1d1d 100644
--- a/doc/arm/Bv9ARM-book.xml
+++ b/doc/arm/Bv9ARM-book.xml
@@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
-<!-- File: $Id: Bv9ARM-book.xml,v 1.155.2.27.2.88 2008/01/18 23:45:32 tbox Exp $ -->
+<!-- File: $Id: Bv9ARM-book.xml,v 1.155.2.27.2.88.2.1 2008/05/22 21:11:14 each Exp $ -->
<book>
<title>BIND 9 Administrator Reference Manual</title>
@@ -3732,7 +3732,15 @@ IPv6, there is a separate <command>query-source-v6</command> option.
If <command>address</command> is <command>*</command> (asterisk) or is omitted,
a wildcard IP address (<command>INADDR_ANY</command>) will be used.
If <command>port</command> is <command>*</command> or is omitted,
-a random unprivileged port will be used. The <command>avoid-v4-udp-ports</command>
+a random unprivileged port number is picked up and will be
+used for each query.
+It is generally strongly discouraged to
+specify a particular port for the
+<command>query-source</command> or
+<command>query-source-v6</command> options;
+it implicitly disables the use of randomized port numbers
+and leads to insecure operation.
+The <command>avoid-v4-udp-ports</command>
and <command>avoid-v6-udp-ports</command> options can be used to prevent named
from selecting certain ports. The defaults are:</para>
<programlisting>query-source address * port *;
diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html
index dd8d8ca33f67..d59d9d198b61 100644
--- a/doc/arm/Bv9ARM.ch06.html
+++ b/doc/arm/Bv9ARM.ch06.html
@@ -14,7 +14,7 @@
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
-<!-- $Id: Bv9ARM.ch06.html,v 1.56.2.12.2.54 2008/01/19 01:52:14 marka Exp $ -->
+<!-- $Id: Bv9ARM.ch06.html,v 1.56.2.12.2.54.2.1 2008/05/27 22:09:04 each Exp $ -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
@@ -1892,7 +1892,15 @@ IPv6, there is a separate <span><strong class="command">query-source-v6</strong>
If <span><strong class="command">address</strong></span> is <span><strong class="command">*</strong></span> (asterisk) or is omitted,
a wildcard IP address (<span><strong class="command">INADDR_ANY</strong></span>) will be used.
If <span><strong class="command">port</strong></span> is <span><strong class="command">*</strong></span> or is omitted,
-a random unprivileged port will be used. The <span><strong class="command">avoid-v4-udp-ports</strong></span>
+a random unprivileged port number is picked up and will be
+used for each query.
+It is generally strongly discouraged to
+specify a particular port for the
+<span><strong class="command">query-source</strong></span> or
+<span><strong class="command">query-source-v6</strong></span> options;
+it implicitly disables the use of randomized port numbers
+and leads to insecure operation.
+The <span><strong class="command">avoid-v4-udp-ports</strong></span>
and <span><strong class="command">avoid-v6-udp-ports</strong></span> options can be used to prevent named
from selecting certain ports. The defaults are:</p>
<pre class="programlisting">query-source address * port *;
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
index 7c74c3935bc0..7b599bab06e6 100644
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -889,8 +889,8 @@ endobj
/Filter /FlateDecode
>>
stream
-xڍ�=O1 ���[����I�V|$P6���^�I큎���5P!��<X��M^_� zI
-!)�'�͡��Rf� }1j��"��c�$ F��cD���~ᤊAbg�0������2P@&S�; M� ���}�������RM�������_��z�v�� ���������|_$�0��I�˃���"��$�oc���rQ3{��u>���:1����q��QUendstream
+xڍ�=O1 ���[�3�l��� (�pj��R{HG���z�B�eHl?�� TCt$M!:���P���}�g�\�M�TkM��4B-1��L~b�p6à1A����_����8���-�% B
+.o^&����i-N�4^��a��ޏ}s|���s�m��[�c�l��f?]��"����]N0P(�G�Y?I,�ϱQ���A���6_>��:��۷/kP�endstream
endobj
594 0 obj <<
/Type /Page
@@ -3225,22 +3225,19 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
977 0 obj <<
-/Length 2580
+/Length 2662
/Filter /FlateDecode
>>
stream
-xڵY_s�8ϧ�=�}S��+��S6M{�٦�lvnnv�A��ZS[r-9���}�R�l%�]zә�A
-k��A�# ��~��ѻ����ϯ'��xvy��ҵWp��|9��>Z��?�q��5�{���pN�6g�(f�R��>����V`g�/�Q�+�j5�@�X����Y�h�v}-� ,�g]�M^N�rz��\��D(��mST%xI�qQ�W���Di*���|^,t ���w�l��uY��r
-��N3i�i��8����4� ~xM�8�/�;�����9���܎�0�ģ�m��,�چ���]^��q,9�
-�[� D�7�d�Z;��(pڕ�C����x��acTr�5�Չ���}O�į)��U}%1��L��$�C�6��S�A։oN;� �i���$$�FL�E���(��H�$N�&.�f���)5d☖�(�ܨ���e(2ڎ�l��f��|��l�u���� +�#r �A�2l�
-�m�R���ܵ��* r��
-z����q�MVo��P���熷96�������!�yU��MMT��^�_�Xi�h���O_E-a'��xV�1����
-����
-�x'"��G�ʿ���!໙89�(�7���8c�
- �,.��bAj��V�Ag@S˔4񼼤i]�w�|��i�޿1�E8JB��/[q�@�:\������;&C��HbR�G���)=��)��"w-TM���t �"j*�#��C�7ñOͰ��>�#���z54v괝<�R����W��K�1��oC�1�M� 4�T��g�t�j��h��<M
-V���/h���4bRvW�非��)9XY��6��P�
-a�ɨ��/����]��ʜ;z �������s�Z�U��|u���b�I-[O�C�R���f�/3h� L������Z�>���
-�v%{���f��;0���\[
+xڭ]�۶��~��T]DŽ�I����|v����E�L'�O�NK�,Rw�v�߻�(��b���A�b��]�' &~bb �*Փ$��pa&���<�ܻ �q��u���_�|�I��XƓ��C�2n��̗�L��~�q~swIç1��Ļ��n�$����og�~���L�t>�pK໛�7w7��7���F�z�)�Y�v�����z�������7�V����+���/�������3�Z3y��D����BŌV*@6?^���̺�c�3�2ce2�@��hR+�����
+AW���' �O�#�E���E�@����� ǖA�eC�C�b�>>��!=>��`J%��y :�����+vX���b�A���4�ψ���zyB���s���4�M8���I�b��?�l���u=�d��Z��b�Xk�5�,Yj�7�(�������OTz���f�b}�"ڽI��<�_bR �J��L�m��4,M�n4����Oq~'���d
+~�u�@]�� �6��Y,��FY5�/�u�`6a�.�gMN�!�i 1��u���# e�O�i�-�4B_�Q����v)
+\R�4����uI�]O�=#$3 7ǝ]�{�ϱU�8��Q��2"m8�����JR��D(��1����D2h*�]�L@>�#���6 �[G"�vO\:G.�v� �0�G��^�r�/�M��f�sè<l�O��R�ү��� ��\/�)d)w���F5B��J�
+z
+��~Po�|��c��`׏"~�8ӭ�\z&�eQ/�ӳ����ɖ���#�彮džB����������Ľ��m(L z�3�Y 0�D�p�  )G"��h��hV���@�o�+�b�X�kr������w�u2tﰢ2��_����{aD� P�� 4�u0�l,Š{Ś �{Y�C��.��U����ܽ-Pպ���*�ѣ��]DW��
+J9��p�����d�l�'�[,��Z,ʵXm�DHP�/�1':}Ae���>X�6rE�� �&_4���"�7Y�+-DZ���Ƕu�As�K;J ��/���J 귎p"�aF�
+��U��&A��D{%����Ex�s�ڛS���L��;N�ӊ�X�eO�g/I����7�D"�R�U���Y��XR��kX���hZ~V �k��*����j�w",^ �Ӗ�}��kᓖQ�?~��|E��� 4�
+B�D( h�h߇ ���l0��o�p} ��a�.i��SI��9�'S��K��u9�-��a�m������ե�.���}�]5�~z�0}\�w��Ѫ�)�k����A���2��#�w�i�u���
endobj
976 0 obj <<
/Type /Page
@@ -3253,10 +3250,10 @@ endobj
/D [976 0 R /XYZ 85.0394 794.5015 null]
>> endobj
370 0 obj <<
-/D [976 0 R /XYZ 85.0394 419.653 null]
+/D [976 0 R /XYZ 85.0394 388.7711 null]
>> endobj
979 0 obj <<
-/D [976 0 R /XYZ 85.0394 393.5443 null]
+/D [976 0 R /XYZ 85.0394 358.9876 null]
>> endobj
975 0 obj <<
/Font << /F62 638 0 R /F43 604 0 R /F42 601 0 R /F57 628 0 R /F84 802 0 R /F86 982 0 R >>
@@ -3264,30 +3261,18 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
985 0 obj <<
-/Length 3187
+/Length 2975
/Filter /FlateDecode
>>
stream
-x��Z�s�6�_��35�}����l/�k�����]��Rb�ʒג7M��(K��l�7��L� ? h���I*R��"s�H�J��\�C�w�yV�i5����⛷�^8�R�.n�FcY!�U����(Z,a�~w������������r�����%Q߽����/W�&*z��W?�\��������� �8*� ��������ח�_o�����2^������_墀e!�q6Y<���9��^ĉIlL��/>\�kp����������
-���i��%����K�`�ώE�$��d�1��4u"�.���R�%�F��Z�L���!�
-�{���H�X!��"1�TE7�_GO�C�Lg��Z�ʼn�J��9C<#گ���⛫�Z�ia=�ђ¸���~E6p
-L�"�RXk���C[�{�`U�re���H�"2o
-"J橫rO5E[2��Dt�ݮ��XF���������E������_3�ž�x����Q�ܼ��U?(����R��#�+�n B��m�A��:�` ۿ�g�R@�� �Sj���sf&5`\�̨Td�)e�߶)��,�R�>o��rߍ������%���˜4�6yGĶ\o���]5T���k Ⱦ�2���u�T��>�K��݋�)�'a 
-M�ֲ����C��]���/:G�Q�k�ܷ� ��2�W<�����@��[_��Ul�3mP>�d�)���P�Mw۪����XyU27����0��mU]��P�?���7��0�}Ƀ4������*y�,���tYa� [��PF�� >9' ��fSm�����Y�m�ͼ�>� Wq��̘���Ӕ���:���˥ 3uh%��ϯqXp�=��{���}U���;�TGl�xУ�BA�]9����TA��X s���觍� gf7�dB%ƍ7���|-d��@���
-\�H��zIq&,�P�K2p͈2E���&�Ѥ4�)���#! h<�X���}�uT�� 5 K Ȃ�l:� .�fp)�:����
-����[�7h kJ_
-��\�5p�7R��j�R��Sϋ2p��2�V
-ʒ���0�=� �����.S�96U�]H�Zyno��
-�a�S�zG�"dž]ƀr"��M�����2�b�A�
-\��,� X�� � \3�L͕��a��22@�H9�WR���^A9c����W2`��z{% [K�����/ߋ���� ��`0���fi��%�y����l���z���z��P�W{L����~>/
-�Q���Ì���*���x�����G��͛�*����h�,�H��O�!��DP7H���0"��*0��
-O��FCv'czX��<��3�kw���2�*��7Y�����t�fR#^\yS�8�s�?�k�a�6��㪕��K��I�K��� n�g^r�Y��A\G��v��MPż�u��n�7�2��a���B9kִ<oTT*4�y_0*#�g�J�:�ފ�s�����0;��L>�(ڈ4F�2��
-գ]
-x�fҒ1(9 �xb�΅�ҿ���y��fE�f8�W�`3�'��<���A�3�<ŝIj���IJ[�|B5��ϐ=��I6K����(�Ŵav:���塉�]��w�&W�;� o���dz���ˠ��DQ�h��Ѐ�Po�?P g���X�f��'��;Ԇg"���ڊ�5i8 ���p"VC|��?����f��9ʀ�L���Ʋk��>qQe�����fV��Zn���H��P k՗��
-��G��g߶��4�J�}��� m�[�@�S��{ P�[
-|�#_�J@P�����3�y�溦| "����g�ýCY�1;��น�Xc�o�L�Ղ�����ߡT�ׁ�p"t��?�'!�˛n!��MN��c�“0Rǽ��~ל ���'�P�)�еw\��2I
-��sFT �i�A�q�/��,YP�Go�X�S����]��'j���Gc��{W �;F�g� �M �NO��As�Wp&���/�~��_��g�X{&o�!Ċ- �B�
-b�4`�B�E���N?endstream
+x��Z�s�6�_��R3�~
+��-] �U���F����B����z��!@'Q����� ��gO̳-�)|˺.�MDs����;�Qh)ڶ���%sQ�)���b:_��E�3�΍�j�|�7����m���G�W���:� }#n��� �gqz��TNX��2�JE&�RF������r���|
+�.��aST�gР�e@�e�6Ժ���"��Q�a]R�.Dh���e���D��No��Z���XG?��K��0�R}U����� d� ꧝�6���IaxUs۪����XyY07�ݏ�0��}�vKԧC���}��pka滂'�h,,1߶j�峪W��e)��8���A�^Q5����l� �65$h�-��w���&~��vʎ����SY�KC��`d�>��i!Ŷ$�� հ�}�.� �wj�N_��I�Q =�r�U�tcm9��0ob�D����pfrL&�r�M�7� ��ch�PR@��'dZ-�NLW@OH�
+�ܐ�g�}�ny{�L��.n�Ö�f���}����W�Ȋ�]��H�1�r�la��P*Dc�L�q�ɂ� �j��� ͻh�]�(�'I1�Zݞ׃y&�� P��Pg���n�j�s�P�J��6:T��н��;*��y(*�cX]�H#weuh n&$!u��]� PetU�S����P��d�� �� �� Y{8آ�v��9����ڲ���7k,�H�Y$(�����V@R��4�:�I$���$��LX���k�qM�2D��Sv��M�C��I!:>��FO��׽� ��Z}=�:d�Yp��M�B��� .��R#p)�qZ���JOaK������D�u� �z\g��N���>�Rp:WN�W���e���%�}e�ZV#�ű*�����} �h�}�"*�R�)Ou��<��ʉDJ7���2�J��3�<��\�!�q��V���b9vϨ�qM�2 WV#G�!ed���r��:�+�}���D���>^ɀ-��$l�C���J��(�X
+gW5:��$����|���=���._��2�.>���b��<c`���
+0τ��L*���j���m�w���9Y�.�@�=�X��U��O���R�.oZ���7^����cM �7�����$��Y`u����l.8���=�Նt�.›�;��X��e��P{sTP��I���A��&�Ӗ�T��Jw�n�I�U�Y}dzUE�P�?��M^��u�S�����8!���9$m�@{-�@3/�/@�V���ޔ�hN+���=l�Vq���=�tW����,�,�p��M\�xu��NE�T8�N�~�,�&�9�Z�ȧD�7 m��,�=��%_� �18Ȁ+���.U8 J��д�����V��zF�$('Ú�'�
+qt&����\��J�5�ޒ��EY�>#�y&�"�6"�!� �_�y� ��6�hcN #M�p.O�>��B�q<
+�ۧNB0H����� ��endstream
endobj
984 0 obj <<
/Type /Page
@@ -3300,34 +3285,29 @@ endobj
/D [984 0 R /XYZ 56.6929 794.5015 null]
>> endobj
374 0 obj <<
-/D [984 0 R /XYZ 56.6929 645.6366 null]
+/D [984 0 R /XYZ 56.6929 573.6377 null]
>> endobj
741 0 obj <<
-/D [984 0 R /XYZ 56.6929 622.1818 null]
+/D [984 0 R /XYZ 56.6929 551.8981 null]
>> endobj
983 0 obj <<
-/Font << /F62 638 0 R /F43 604 0 R /F84 802 0 R /F42 601 0 R >>
+/Font << /F62 638 0 R /F43 604 0 R /F84 802 0 R /F86 982 0 R /F42 601 0 R >>
/XObject << /Im1 795 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
989 0 obj <<
-/Length 3155
+/Length 3506
/Filter /FlateDecode
>>
stream
-xڭ]s�6�ݿBo'�D,�>���s��r��]�J�mN%R)���.����ɍg��
-!�"�b-�����7�w6�-�Ǿl�6
-}�?�e�� ��W�4>U� �r��ݾ-W�'#V�P����7�` f��\|�
-��B)3����p�uA
-#V*�[��yݞ�6�u��LE�5BFrb�3kY��A�� �؈�(XNw����c�d��,���E��e��D����`4�o�*OM���� }9����˚@Zv�t%��b��ܡY ��Z����P��P�g�J(�Yã_c6;˭5� ٫�p+?�
-�X�d89g����{��� |��Sm�>4�|#>F�π��3������UGx����t��a�%���;$� /�=)�K<�!Ke�L�A/�.� �>��6�(��J�7�[�p\:PFS��
-Q�hIϴ4�X
-�4���C�| 0�@�O�ՊD��h�e0�� 6����n>=*�n�}"
-��̑Q
-��?7䁡#����5�~�ʧ��#�8�0=3�τ!�z�"� �ŨP�L���Ϙ0��}F���C�������A�|J����,�ٟ�tgQ����f7��ꌎ�y����l�8����O�������w)
-1��-\���_´
-�+I?]�tJJ��e�-B46,h�6V
-a��V�[� 6b!Y�-~�O���C:�ݎ�� DI��D�yU~L�F�`j���^��
+xڭ]s�6�ݿBo'�D,�?���sMr9wn�>Pes*��H�u��b��(ٙ�d,�%�X�7�' ����^M�W�f\O�+6����xę%�Y������1�7�L�V��\Ɯ㓻��w������Lh65��L6����4�y��������ڪ����4�������n�g�iߋ�™���ㆠ?���緟������;K���I<�W���&K8�OW,����tXƽ�͕�2�J�4�����?�{���1�i�2�a��=r�2�}f�����k�ES��(�x���E�eC�yl�uӔ�uD-�����l���� y���{����i�ޛ�z��U�T욈ݧ��=s�#rw�Qq�b��/��EYT�r:߷���Q]�� j��m�k�%n8� �2絘�8ϼ
+!0��}B�3*D��Zs���6 w��{��싦m�@P[���h'������M��T��$̋���}S,�{sLu����a�1 � 2��ר�)���k�.Ka�vXC)L�jN�Q��:o.S�a��18�ᙵ�� svF�$a�����9vH��b�Y��,��<b�����]4�p 0�B���(\B�< a54��VҲ��-���Aѵ��FC-|���B�B�� ���Ę�μ��� y�W
+�]���%�]b �w��y�UL�A/�.� �>��.R mN�'�(~Q� -�0t.�dEy,
+��.cK����Ⱥl�3@���"n3c��Z�b���*/�M$�Z�� 0�^%u��g�܎���ٽ<�
+^m����H� �ˉ��6�-s�5�҅�L7�����DH�_�>c�T���4K�A
+�\��a!l��?�|a��2R�WV.%H�-�F�r]�π�� !�7En^��!LXį�\=�;ڂ9���;���,����2�y�̤6|�r�ՌX��7�X9��AS�Bax�Q��A쇊 ~+��L�1��ǟI���7T9��.�Mp���量w���C���^X�3F�2L �X�Ie,�Je,㨌eRVa�Vю��`�t��e<>:�5�܏>'�O�G�
+Q�3��b-:�֭�g_�zv0�N^�h��`3߱7'i!��|�@��8��r��
+���rՕ-2��鈅d]��Ϳn=��W� �`1��!?�(��D�W�cʻ�����?�o%Yendstream
endobj
988 0 obj <<
/Type /Page
@@ -3340,23 +3320,23 @@ endobj
/D [988 0 R /XYZ 85.0394 794.5015 null]
>> endobj
987 0 obj <<
-/Font << /F62 638 0 R /F42 601 0 R /F43 604 0 R /F57 628 0 R /F84 802 0 R /F86 982 0 R >>
+/Font << /F62 638 0 R /F43 604 0 R /F42 601 0 R /F57 628 0 R /F84 802 0 R /F86 982 0 R >>
/XObject << /Im1 795 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
994 0 obj <<
-/Length 3150
+/Length 2914
/Filter /FlateDecode
>>
stream
-xڭZ�s�8�_�Ufj.�E�=u۴םݶ�d���A��DWY�Zr��_
-r��(y��L0��L͠���??�ㇵ��m`C������ߒ��R�ŀ�)4�,u^ᛦʷ`�&)�˹�Y��5�zE�"�Te���US�����6��5O�H�ue}O����n� �|��m�tw�x������
-L�R�-��{.�`�(�خѲ�|a���@;_���~���fd�R�`����e������r5���j3"����� �5� �5�UK�p����o`��K:�L$9~88}��@sG#ph:� B�!KC�qh�D?�=��SYU4�q����D8gZ�4z>a�-P�� BfN$�s��8֖�5Q�,x��.85��;D&#�<�� C��~(ڂ&*MĀ,����|չ�s͚&�M�z��Z��{�f[86��ȱΆN�fr���)Q��Ȣ�M�B�&�����v�W�T\~���sWl�§�2iv��Tv4����c�I�WS����=�n��-���]��ݕ�Eh,���+���VTx9�Ϸ����b�����}^�S~ϧ�= ��iSls
-r��&�&�eE�t���r�{,��|�w#]���~hih�PFM�2K�y��hh �o(�_�55�K�J+� ���e^yc��Ǽ��e9� ��j��*K���1
-���X�є�.e@u�R"��,����b�9+8M>��T1L� ��R����v\�����X7�P�uq}�W� ��Kɽ���eb�Ҕ�oG�/ )�ݫg��*Y��AN��b ]�V��^tRhz܇�~_z�qCy2�ԡ��b*1Z�K8����jU&
-"V$`W�LͣXBY>����&��kC� dVP3<J�p�@���6LF�QL7��n��B+@�0ŵ}�k)a��4�~M0��Ls� }H�h��|nv@̡b+[�'0-�9�D�8��z��҄�� ����������i�$ r�Y���
-y?���H4!w�m�1=�c�!�M�a�Ի���̔��QC���}:�@�j3<��⍯͠�lj�5����B$���^�}���t�J���Ų����Kix˄�/\��̕F*�D]��2�g��B�</9MHVOV@�7=��� 0�����e=���J��r��O��b�Czx�r���f�!O��w3P�{���1*� K>�ou2pΗ|؈���i���p��! ��`\�� <�^�%2��;R��KȊ�˺+�5�g��O���˅��� ��E�?�R�;�S
-DZmx[�Cj�T�í�{����wu�u�z��h���;Ť6���D�U8�E����8��ӿ�*��'Ύ�G)��
+xڥZ_s�8ϧ��*35��E�=u۴��n�K�O{� �J��,���4�� HY�崽Ng*��
+8# 3F�i0,�6��g��:F=���{��q���1 ~`�l��H�H4��:�2�)��|(?!d��J�"&?Vs`����J�_�-v ��������'����+��mQwc��Op2�
+|�\�>(Z6��\X��Q����/,s �h�+b���O4��l��e .�[�L�<���)W�G=߭6s"�:8� BYc�XE����![�l#���bIg��$���o;�h�hM��0ei�6��W��<�x*���<p��›N�I+��C�(���I��v�:ε�}M�C ��W��t�Єs��'^~a�X��E[�B��D �#�m`���Q�;�֬ia��4��������=m����F�u6tj���c?N�ʖfnb^�i�9��s.iOyU�N���݈��]� >��I� ���{��v�|}8V��|5�-UE�}���S���S��V}����E����F"��'���qB�C�X�ÿ�=���z*��T�g!�?n�mNY��D�ĺ�����]N`��R�ߍt�������B }(�,Y��s���a���P�~��4X.*U��3�Jn�y� V�j?ˉ]x��扨���p�AL9��>(O�t��&�0@Db�5_o����A1&L_m��� ��.U���e-�L��5�W^�8'�q�T
+�,��J�pRO�5�9�#�{!�N�%욶�F����}y�/��b2�(���\��kW#N(�S(xԟ�
+�BXp6y�h%��2����C���
+{ �6b���P��hT�c��
+��� � �^0J���]~�()��G� �FI5��H0&�E{�`��� Ci�n��k���=x^a< .%�r�F�Ĵ�P?��� )�ëg��I�:+�x��b�H�^����0������`ㆪc��C���b�,����� TMX
+Q+�_ԡ':Vb�W/Ǵ
endobj
993 0 obj <<
/Type /Page
@@ -3364,82 +3344,82 @@ endobj
/Resources 992 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 991 0 R
-/Annots [ 998 0 R 1000 0 R ]
+/Annots [ 998 0 R ]
>> endobj
998 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [361.118 468.8579 409.8647 480.9176]
+/Rect [361.118 436.2023 409.8647 448.2619]
/Subtype /Link
/A << /S /GoTo /D (configuration_file_elements) >>
>> endobj
-1000 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [347.1258 85.4256 404.2417 97.4853]
-/Subtype /Link
-/A << /S /GoTo /D (journal) >>
->> endobj
995 0 obj <<
/D [993 0 R /XYZ 56.6929 794.5015 null]
>> endobj
378 0 obj <<
-/D [993 0 R /XYZ 56.6929 647.7963 null]
+/D [993 0 R /XYZ 56.6929 621.8163 null]
>> endobj
996 0 obj <<
-/D [993 0 R /XYZ 56.6929 624.4206 null]
+/D [993 0 R /XYZ 56.6929 597.0941 null]
>> endobj
382 0 obj <<
-/D [993 0 R /XYZ 56.6929 550.3829 null]
+/D [993 0 R /XYZ 56.6929 519.9904 null]
>> endobj
997 0 obj <<
-/D [993 0 R /XYZ 56.6929 524.5365 null]
+/D [993 0 R /XYZ 56.6929 492.7975 null]
>> endobj
386 0 obj <<
-/D [993 0 R /XYZ 56.6929 216.2206 null]
+/D [993 0 R /XYZ 56.6929 176.8325 null]
>> endobj
999 0 obj <<
-/D [993 0 R /XYZ 56.6929 192.8449 null]
+/D [993 0 R /XYZ 56.6929 152.1104 null]
>> endobj
992 0 obj <<
/Font << /F62 638 0 R /F43 604 0 R /F84 802 0 R /F42 601 0 R /F57 628 0 R >>
/XObject << /Im1 795 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1003 0 obj <<
-/Length 2948
+1002 0 obj <<
+/Length 3192
/Filter /FlateDecode
>>
stream
-xڥZKs�6��W�tU��A��3O֩��z���l�D۬�HE��8�~��
-�{+g�V�Rh���m�weە�v���8�9�.�B��x�%z�-�H n�~����5_�x��$�h�H�]�.�˘(Z� "@�r{ؒx}خ�= 4����ht� �u�/iB�t 1Wa�/Ůg�Z&wM��X,5(�,��SJx����*�0W�!�)kjG^���Q8,�t�9חOt,u�D{)�j_���|)���ړ�T.5<�
-�Ԍ�����T�H`��
-�C�Hж0\uy]4�����N(l�����rص�!
-sy�^jf�I�K��N���(̡Ӈ9���=
-s��� �ç_���b�'��缋�_� a��@����t�q�ԧ��4�2��X�"U6��r�: f��|��a��&.�X����R�"X|��\Q,����4�˔9i.��K�(0�+�f�j� *�Q!��K�ms�c��(@��}@�'<$ Y��8_<`
-�v��T��s��v��Wn
-F*2zx�1ԯ��Χ+�Rn�{�j$u!]E�X�*��E���P�9P�G^֠��Q��r%�T���\B�M�,�/ ���';���ɭ��-��x� ��>N��ž.*���n��RȀe#@L�,�4��&�+P�y �=!2�[!+mސAC����+�HAY�ȹ�0�ܼ���7�|�C�)�e2�<� ���!^Yυmܽ
-��;���x�杜7�:��z)��3�w)�1��Q�����8�1n�Ը˷� b����&{<�#� ]5O�MÞMqܩT:֙��8�g
-'�~��xc���ߦ!�
-d�b:�2j���c�c��+�f��Re�����(�q/�Q�,8��
+xڥZKs�6��W�tU��A��q2�d�J����=ds�$��E*"e����F$(QrR)�
+9X9��r�B+o�ߖ�o����]�{y�l�y�1�5���5���T�Z��H3�᧲�a�,)�JU�ÖN+G=�{"�b�L�W��cL�e��ʓ��\��6z��?-���6𿳰S���u_� i�� �c}2�Se��lށ�-N��`
+��oX����k�?��-J��Ou�`R�S��pŠ�n�M����k"�Iݮ\W(���ػ/�42�ڭ�j�^k�M���s_4]���W���16^��S+?\�v[�պ��7�6]�ӿܶ/��"9K�h��M�X�U�o�I��<�8X�9Y����U�u��݀���&=gz�P|��L�Ff�D��t!�=N��v������[BH���M���ө
+���1+B��u�ŝ�&$m�'�!��t�B� ������rO�k�� ��qu4R6��"��--u��������2�k{�p :+���;���.� ��0�ACϨ���K�ej-��73�:�����r}�w�K�\�(םl&D|.��\Ta���a���4g�N��d�$(��&���$�9{ aT4e{舋��/����|�u� 
+�L hՆ4H�
+jB^N��=.���/�и� ��< ��xN|m������ �C�cc�r8
+��v�jp���۽b�"ü��� ;h��RE��
+���s_��K1�E�Gw�]�/-�� ���Md�Wl�@��f�<�ΈϠNf���x�ś���Jοb*�niq^�I�߆#}����Hx�/�ٴ�=r�`��|��� ^���VP}a�wNU1ׅ0\��W�~U��8���u�f��&x*��S-(��320���{�x�m�:7E��z�+��4�}E��uԷ-��]�@w���;���{�W��82x�Ise��=��n27�L�v �?���c�\nb�7Ix�|�ľ�����m�U�_}�%
+�iF�i=2��JNu�76:Ӎց޵ʆ�I�4e���?�C�IԹ�"$KUfÝؼ �47/�Oj��e)i�,�J݂Qŭv��O�*|���(g_�p;��ů�{���Ƚ#�޽Q6�7�8�F��;�����ђ8��w�ct��16�lpc��OJ&��zc?�D�n��\�³n :(^I><:L>��z}A��/�N>�*�*?�?��).��U 
+���d�*�Mn9���)���5�+W��oׂ%�oL�%cGCO�-��oə�S-�\D��{� 6�ֳ�j��|i� �L�b�+���J�$��b�8�/�S#l��*EY�3��?7J̇W��.ќ�endstream
endobj
-1002 0 obj <<
+1001 0 obj <<
/Type /Page
-/Contents 1003 0 R
-/Resources 1001 0 R
+/Contents 1002 0 R
+/Resources 1000 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 991 0 R
+/Annots [ 1004 0 R ]
>> endobj
1004 0 obj <<
-/D [1002 0 R /XYZ 85.0394 794.5015 null]
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [375.4723 755.8266 432.5882 767.8862]
+/Subtype /Link
+/A << /S /GoTo /D (journal) >>
+>> endobj
+1003 0 obj <<
+/D [1001 0 R /XYZ 85.0394 794.5015 null]
>> endobj
390 0 obj <<
-/D [1002 0 R /XYZ 85.0394 449.5881 null]
+/D [1001 0 R /XYZ 85.0394 427.5127 null]
>> endobj
1005 0 obj <<
-/D [1002 0 R /XYZ 85.0394 421.8763 null]
+/D [1001 0 R /XYZ 85.0394 402.5515 null]
>> endobj
-1001 0 obj <<
+1000 0 obj <<
/Font << /F62 638 0 R /F42 601 0 R /F43 604 0 R /F57 628 0 R /F84 802 0 R >>
/XObject << /Im1 795 0 R >>
/ProcSet [ /PDF /Text ]
@@ -5335,7 +5315,7 @@ endobj
stream
x��te\���6� �t�����ݡ�0 00� ������R"��t �ȋ>������?��?��w���^�Z׺�7����5�
���r�pr� t���P(�W琅C��fL9g0���]��
-��{fXE
+��{fXE
0�����a֏��O�o������?��x����=� a.��Ab���9Y� ���/z{x�œ*�����2#�Dj,���8��E�y��;�o��n �A����ߋ(��X>�.3v�ms�W`g��Ϩ�"�
rn���蚗ߡR�w�9�_�ҹ�_8=�e4%v>oF�k(�?`Lٽ�`��4����&9[~��;26cL�|r)S�j���l(��
b��7�����V�h9���,�I��R���e��߷R�%=��� �t��(��%�LǏ�)��>1٥����^�2��O�� %��>�pjÕr{2��w��<�g��-j�!3c��akI�,A�$�L��ƋJ��n��U��m�މD3
@@ -5358,7 +5338,7 @@ $O����ŀD�
t���=��b���w�6�"���µ?��J�OP2R� oQo+��1)�w�����d�I��Z�V͝�(e��� �"Q��F�s(�F�$'�qL �/�!�� �Hvk։�h�ȉ��؉�o?�a:���q�c�� g�!_Q�~�W�1�a��U�Gm�Y�mn%�R�r9���0q�5�/�E�(�ړ��,W��$�����Lx���|�奕�w�Z|�V���,�Od
�y�G� ����3l�4���\�T2Z��Ag�.7�#�P��v�eŦQL����O���\� ��ĵJ��(�3�].�*,M�>�Bx�(�S��|D�u��ޡ�{:ґ��2G9�C�{ɕ<|?��K����@F)�,�w��?�� ���a��h%ٱo^��{�6�� @�-��%�~j�wXjz1��i���%u�3^��g��`d+�K[�De��]��Y����?�>��Hj�,�kѸ�h�8�� �v_� [�J֮�9m=����?\�k>�ଇ�*�ѳ�,Y �<���u� Z/ZV$S��#�mNO��5M@��r��0H�7�&7[��A���O�Ƨ���5�pE6~d��^.x�T1���$��7��4����j��G1���po��3�Q��Z:�N����,0����Zg����)�Q����X""���0�����BvFA�)Y9(�YÖ���S�|�����qb��N.L�X��_��¿�%�%�����|�D>W�7}C��#�ZR��$�`b�Gο�a�9g�S%\��/���hC|�?s� ؅�g����)��m}�v��k��.b�&O
���+uqf�`�a�����,I�㯽/������ݛ��'P6ߢH��?����ٹ���9��mHr7:pMRY�#� '�W���KC�|-�mW�躖nᲶ�0����3���=j���-,n��e����b�i�;��H�l<)�L.��Y���ڷ)�wL=(�����L|�)=�'��-�@����<�Nr�6�E�ʃ3�d�k�����%�����(kD~�(�_y��; ���f�O�{&*��yү9ۏB�T�d>�.<S��X3p7��~�"럽��l˴��DQ�f���
-*s"}Y ;҉��{Y����]p��ݯ���Xo���}
+*s"}Y ;҉��{Y����]p��ݯ���Xo���}
endobj
1195 0 obj <<
/Type /Font
@@ -5367,14 +5347,14 @@ endobj
/FirstChar 67
/LastChar 85
/Widths 1348 0 R
-/BaseFont /FJYMCJ+URWPalladioL-Bold-Slant_167
+/BaseFont /UCTAZU+URWPalladioL-Bold-Slant_167
/FontDescriptor 1193 0 R
>> endobj
1193 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /FJYMCJ+URWPalladioL-Bold-Slant_167
+/FontName /UCTAZU+URWPalladioL-Bold-Slant_167
/ItalicAngle -9
/StemV 123
/XHeight 471
@@ -5394,13 +5374,15 @@ endobj
/Filter /FlateDecode
>>
stream
-x��RkTSW�����RI�zX%2yj  �@�X0<�!1��ܒ�K/7�4��*�ʲ��.y��RaU��Zb��/�*�
-���
-�� G ��u�]�|!o��ǧ�@0�n��T5���$>iaQ*P SjXK�P*4@�)�00�H��&od�up�g����
--�1�����:Ɓ �`�N��ߊ����N�J �Q��T ��L�ʷ8�!A�0�J5P)4���t%�S:X�H�$8�����JF(��2�À�{*���&�$��l6�$���)iZ31�� M\�P��@!���x��
-�z
-!=�a=��XobJ����;��&W\�y̞���|dk��m��~��^?��x�OQ�G�9os�9�T2� R����E���������F��/��P9��<�rY[�ڃ;�Y�7z?��������uk�s��ԑ™5�n�z��������5�9TBI*;�f/�ϻEW'�bU��������\_[��w��n;��2�� ���9l�^��A�H[l�+�� g/��Sn6�{�����e��� <��wK�sJ�b�ѣ �U�(kh�C���p}��m
- �uXej��=�?�yL�7��n���ʥ��k���M����&˞D��F ����ѿ.��p�%� �)g�ny_�m�P�Z[03��$�T-i��� ��p]�7�I�8Ի���E��]x㋎ }v����$��8r�gQ��Жi����}�;^�b���=i�q޲}PT6#r_����Z�c������8v��瞊�~P��E��+|ӳ��6چ+�� ����)L<>�lK+���'ƍ�ܳ�l��%���8��P�q����o�\�cE���3 ���?/�}�u�'T��,njO�������؇��;����fi@ ���?�VE2�Ϊ(#[�]h�?A��+��n4�m�r�"���n��~/}�Z��M�%��U%1����U�|<�5c�BT�TzZ��fƝ�cOJ���^ �7��oWD�����5��s�2R��˙2��M�|o�|U�A�9/���t�S�>����'�/�_�65n�����F@�٪۷_w���l��Ϗ�u�۽�S��J� 5-��� +�;��RV���^1��׶�1uC��e���B�Fec�i���bǏc4�xiT���v��ò���vp�����4�Z�s��n��e�+�^p���sN�� ����"5%�*WL�'� �~���{�!�K�Ğ5�T���-/�_��j�C���4U��ͭq��^����+�kN��ۋ�y���S�/_'�Z���!���mzڲ& B��`!�k{]��yy�Ҡ��F�� ���~A�� ԉ���s8�y���Y�b�ݬ�]�����j���qKҵ�/G#w�_Z�X��"��X�͛g��4+�p~����.�� �OPj`N`Z�F�7����endstream
+x��RkTSW�����RI�zX%2yj   b,��{CnIH@��TeY�F�<EE����J-�
+S�ia�q��U�5�����̯YsΟ�������M�1D��P��ar� X*�p؀<��-����!r�@�VkՀ���B�
+!�O��`,C�#i*x�'I| ��8���@*'T������� S 0�g�Z �M����Lς!&��� �F8 A)�IMT��[�f�Ke�x&)
+xMɤR$��j=�`%��#���������C�j�Z�f���S��5�Z�;�dh R �qt:5~+N
+C�V3=+!�jD!B��0`pV2�+��Hf(���H�P��R�΄�p��+!�������$1Q޿�T2R��D�>�?�S1珘4 Gt ��d�9$���N�Ӛ�Q!h��|���z
+9Dd�@P�XG*f1Q� �
+�H�ֺlx/��p��5'��%���ǩˈ��O-w�V�Z� �1>
+k]� �GZ�ǵ}M.���|QYP��]#���������1�F�D{��9��|V@�,|��n����&|�]j p삸5�ZQ;�/-�,zr1CN���ͳl|�y���Z7�����'
+(԰'0�O���ߌ�endstream
endobj
1166 0 obj <<
/Type /Font
@@ -5409,14 +5391,14 @@ endobj
/FirstChar 60
/LastChar 62
/Widths 1350 0 R
-/BaseFont /FQSFCW+CMMI10
+/BaseFont /MAGIUQ+CMMI10
/FontDescriptor 1164 0 R
>> endobj
1164 0 obj <<
/Ascent 694
/CapHeight 683
/Descent -194
-/FontName /FQSFCW+CMMI10
+/FontName /MAGIUQ+CMMI10
/ItalicAngle -14.04
/StemV 72
/XHeight 431
@@ -5436,7 +5418,7 @@ endobj
/Length1 1608
/Length2 6751
/Length3 532
-/Length 7596
+/Length 7597
/Filter /FlateDecode
>>
stream
@@ -5445,30 +5427,32 @@ x��tuT���6��J �Cw�� 
 �RRRD�
fg�p��r������;`�����I4���p�‘N�P��|�0�P�- ��<���
���3���>
-jg����h� � �����O����� ���4�O�?9�0h(�V�(|S���mC �^-�-
-���D��>?O���;\I��Xf=$��-p6\������R� �G h�Q?���X���U���>���>rW�C�#9.P�%լ�Ǥ�ޘ���?�����3C��%��M�(w��<:rə\a:��]�������cRd#_�P��xu
-VJ�y��ӥ���:s�&�b�WI�����L������M)��9�cF�� �>��(Ї�v;)s,7�
-��i� ��˯�m��}&�q>�����?\K>�gp�z�� te�9|��_�h��X��P8� "H>I
-������m3���&R��5����`��/ScF��oΞ�<��IK�2�f��#2:=2��J��Yn�*��:j��lo�J�>�q.�|X�-0�d�,��SA�+�H��N���ӌ���3U
-��k8�XOf��Lrٌm�X?�O.+%`�N]m�/(
-M((7���uk�ݝ�|~'Ņ����K����cԸ��"UE���,
-�0 $���{�Dl�5�u . lQ"��1�WO�6i$הH��V�}^��+�۵�R|��W̞�.�l�RT���ו�^���_���Q1���j�&�/�pe�G�&h������ ݥ�NjW&���t'�o:�ɫ�L�8tİ�4���lTI/\��2�<�*�;�7��:Uz �&��mĻ�x��` T)�5-�(���)�[��f�U��ƙZ�H�u�u�U�4�Kk!���b�"-8�Io�+�K�?��S]m�����7w�,����x8��j&j��_��!4�|&x��#o'�XL�r�<��=;�)h�x�beS"�G}Zh#�rV��e����%<E>�-�H���L荒����;�=ׅ����w{�fՊ�s��k�5W"��X ��洗-�K��P�v���{�Zt�I����z縦Vc%�W������>�z̏�R6�V'��$ྚ���O9�IK�X�bw���9�� ��O9��-q�.|��J�5��$e�"�hl�wN���"i6�C�N� ��~Q�Z{�8��S��\%��LܽB{혪{^ ��S6w�
-�K��V\Jr���n�.�����3`E����'[��\�.E�� J�$�ܲ�zK� 4����� m�;2�\�uʘ�&S����� ����lQKK��;|cf�ѯl��g������/���� �M�ʪ�:E�"��5��Š��_�������<���۹��Z�`�<D��|҄�-�u���}���9.�Uy �ZB��ه��(��[��3x�|�F��^�>/�y"ϳ�Z>���'��7q���'�A�Q5��beV� �YƯx H�r2'���~����l�F4��R���������\�?s�D�N��$e��[�(UQ�� ���ݞW��p�5E��'7�x�D�"���Q]A��jN?�}\ۻ�ۨX $����*D�\J���Y<LI�[�>悝�K��V��b�=Ug����L�n�4�]�>���u�zj핫�^=s�6�Yv��M:G�!�U:��-��J_�.NJ?�wr�JxvQI
-
-&�����fԋ�R�����/�\|E�a��������)EԫY��۝s���Uĵ�*���}�p'8���*u�.�gvƽ3��yiw�ɖ�������4�v�/�((Ѭ�g�����泠3�Bݿ���"��a�:E��6���>���s�� O��B�:=.% �Cʿ�tY�(���e���e�&���35n:�wSk��m�<�"x��ɕ
-E?��y�x�` j$d�}V]`[�?�z�_�.��C���v�x��k7�V��6u��U��erI����q��ݔ�9�?�=��ό�- �{m�4<¡������q*q��:���/S+��{�}P~T$k�#w�+k��Ū�W6����LT�~�n�=������͎�X�. �� ���͇�UY��0��ՂU�Q�n��7] �f%#n]Ye/������SU�t��7M��{��ݞi�z��')�� n���1*&�R��R� _H�߽�' �8�Q���Eg���#b��Lz�k�#&�6��MvB?�@#���˄![>=�wo��o��&�4��)�����1�L6��햘nj}��� ��c�2�[<�/���8�͵���F�5�4��Q{�z��_ז��K��Z�E�4����-���٥�W��N�L7�>'�,��|���3��ٖQSF9N!�b�|XH.�f0
-��
-��ʓ�_c�gaJ�0˛J2lb��O���>�^>@K:[�I�0,�)q�!��1?��::�� ���xs��ICA��� 3&��p$Y@�L����K���T��� ��~p�
-�9���R}�wݎ�q}9�sh��@ͬ������ܷ�v�/����7K���\/$D?$ �֩�NWy�pw��������D���]�~< &��\��'�vAd&4�2��9x��M� �C�pX�˅ �
-�%�mK�
-���8m �����x1h���DfTF�������Cl��+� � #~R $W1�\5�!��*n&�o��ç�)���+���f����s(�aW+�iw�cf;��=���v�Է��u/��Mm.��4%2��m뷨<6�D��y�g,�q��-7��E��+���X����Y�٘�b6�t#� �O��KS����4���D4U��L����#z�V��Y�1� ���WZE�E.��_G��=��l��U��?�]�h^��N>ъ�V~$F�b��fQD}J �� ��������¥_���K"!q]K�қ�ݕ�<F�� }��`�K�!������/�f��I#34��:x�<��92&�t�9�Lކ�r��] m}M��ke�d�H�����;�Mk��]�e6{4�O�2;�&�&�N:��`����X^����!��ؠa�f������ʚ+�\�lG�k_@�^wAir�!�~��{�Ĝ�w��u����{��U����s_bt�d%�}'7A�u���q`1Y��5���䒘�1ʷ,3x�5<i[-��m��P1dm�H�V��f�+i�i�sQ5�CŁո����9 ��[m��G��o÷�@�ƥ�&�<4��Zo��=%s`���[��q�c ����Cy>���A�Q=C G�ͩ��&:�)|�+)eeG쭱�GGxp�"����� �ic����
- ��N�?�$��L�v�Z�ޚ2[3��Z�Q�i�q2a#�k̔��S�w����L�g]�|�=����Gd��9�B�8TN.R���}���߈�1 �����A8:��z�ձFA�q|�I@���X����s:;�B��f�
-AQ�lj8 �)��a���yᛶ��8�@��ܼo�XN��VU���`�����7^��r��1vx��| e�@��ՇI!Ԫ�C�) V���3�k
-�F�����ȅ��5*�.���5�w�Z~�&s`��p�I��Bl\"����]�X�\-���B{�2I��+�.�<u︊�@�NK�(��p�f)�
-�,��N�� B�h��M��
-{�ԱP���$^�N��2� ��� ;���� 7��)�����,�!�S�j�f�����ae��q�0�`$Θ�L��fX�cW~�v�\j��D�n�g�n����
-������ rE�����C�o4��`�h��Q��#�S2I�쯈�����g��?
-��T��K��sr&�gы[9�ҽ�X.Wދ5���/_�Ή��Wj!Y��@��n�oz�"K�ɍh�fċ�������[K�[�����#V�FKi�s#��g\Dޓ����=b;�ш�by�w� TS�E;r��?W)�z���L#Wt�=�}r]�L;� ��t�F��\�8�� ����#.:$����Vb�"�Z��_���?��
+jg����h� � �����O����� ���4�O�?9�0h(�V�(|S���mC �^-�-
+��{c*>o�d?�s�� c�x�6���YX����%gr��GLw�W�pV�/:�I��|C ���}(X)Q�gf�kbO��+r��՛̋m_%-��#3 �7��G7���b��62L���@����̱���: �8�2ԷI�f���VN��"4�� L?ժ�*Ns�a �������GP��<�����D�b��=5�y�y�GDv����'���>J��la�d�/������<Z �E�Ym�Gc��$��}�]v���,�[�3h��o��ߜ�j0��G�IѺE�Q��ª�=S��j
+a?�"�=;������Y1��a�\'���E2�_�rBebP��y< �55J+qD*ᄑC-�n���]�y,%�ԧ����������$��=+�:� �<L�,Jd�zo}�7���ō z���/�jI�}�|�4����lfc{0Y[F�y�D�`; ٸ.���R�ϰH
+>��:�B���r������䣠s��i��r��dx�a�rCV���
+Rrd ���aAf�|��G�A;�R:?+�C�݂��.�v���� ���ܯF���p-m�P������$Е�h��~)���cE�C�' � �$���]�Z���)͌j(H�;KDldv`��͠����HSJ���c�uTf�L�)>�9{r�`�'-M�0��7B����P��*d�g�9��O���9�)*��pĹ��a���(�����_O��\"U#;�ҿN3vl���|T)D<���c=�-g��2�e3��c�D>������:at���D�
+|�
+8T��>�A�*�^��3�fhC���9����d���\�<�U��e�e��*4���Jj�/֭Yvw�r����"�/1^xx6"�Q�J�T9o�
+���౗�\�� ��״m�,zi��=[mI�jk)<�4��wo�1�q
+��c��y5`j8N��q#(t.�[q)�M�� ����,J΀5J�ןl��r!��.6(!�r˦�-�����n�_��}��D�tr]�)cr�L� �G3��6~� D--�N����aG�����^�˻��G�sn.p7mB(�����P����N�
++���s����J�����n�v�k}�%����I2��׉���#|�8��Vu�-�k �3gzn���oo�~��U�M^{��L|�<��k� �3�����ū_��IG�H狕Y�.�g��% �ɜ��^��J�$��=TH�4� He ^"�[`
+��S�7�p%�Ph����9�ꓔ=zn�TE�ւpr�w{^a��}��f���L�� �s��;x�Fu�f�9e��qm�o�b��̺�{���r)��Vf�0%�n�� v�.�"[e��[�a�T�q&bn2 �Sd��w)� �*��ꩵW�^ jx�̭�Pf���7��s�T0V� ����*}�g�|+���Y�m|�+��E%)
+���d�Eu�)�dK�bƛQ/.K ������s��fL�
+O�[>`��Q�fiXWow�� b�W��X���!Ý�|���m����������qXZ$[�+��ڗҰۥ����D�N�}f�V��ς�P�Su�־[j�Hχ�Q��t\~�L �wB�M�R0<Qv�
+ ����$\)��e٣8n�Y?���t���Ը���M��z;��̊\t�=:'W�)��z��y���� �u��YuY�ul���k��|1��ᓶ�e��ï�(Z�_j�� �Wq[��%q���'Ǚ�?tS��������N?3RܶX0 �)����~қ�SƩ������k�L�d ���A�Q��a���E^��;\ٌf'3Q������H�wB"7;b��4|/Ȟ�7�We���`��W V��F���O�t-蚕�t �ueq��8c"�;�OU͋ҥ��4�~�]{xw{��F�r��(���ݪbcĨ���K��J�,d|!�}�
+�,l�G���E�ʏ�Eblȃ2�5����|\��6Y� �\$��J"�/�l���ܽ�K �Is�L�'Ҡ��8���T3� *�[b������'�f��g� n�
+��'�:N`J��Z�a��8�\k?Q�^��"A��<�0��,P�Ye�Kn~A�=S����}l�ul��� _�����"EzT ��p��um��-5���I�4��swo��
+ai(�3(O�~��K��)��,of(ɰ!��R@�?��c��z�
+Go����J�E�QEAN��o��_�u�x3H3��I%�\�4r� ��~�����٫���4��H~����.ΡP�]�4G���9��l��TO�{��R�ޫ�U��7����ҔȰ"���ߢ�|ؼS�;�Q������ ܨ��]�����b���g�^dc�����ҍ`&4>�/M��F���Ċ��|T�3����[�*g����7�f_iu�`�~��|²�VUZ�_� w��y��;:�D+�[���Y��E�a(���b$��&P��[w�c�� �~�
+V.�L��u-�bHovW���W������p.���Z㫞'���q��&<��� ������Ș���h�x3y�{ȭx>ty���5 (ή�m��#Ux�G���6I���w�����x?��쬚���;q�$z�>����wcyŎ�r��+gd`��m��vߣR+k�Hsm���}A{}��ɩ�\��&��s��Y�� t@�bWd�Ij�STq욾��}��}�����)���Ɓ�ld�z�����KbJ�(߲��)��m��
+ж�>BŐ��#5Z%�o��]���E�`�V�vҗ�$�o��vej� �6e����4���jk�-0��́���n�_�͎���2;���b�?5F� 5�7��ʻ�輧�u���U������E���0~��N6����?�d���FdeG��\-]? ^j~�Ӗ���� �s�b0࿃�&ow����RԶ�BcĈD^�8���K�)��ҽ}����=�;,'�ǔ{}����!��E�I�g���d�<�I��f���Ҕ|�0����zj�,v�,M����w�Ӳ�%.� ���]M܎�;w�nU���+0��:1�d��"21ۅk!zk�l�DD�k�Fѧ��Ʉ���1S��Oq��ˢ2e�u-��4�"� ����4 a�{�xP9�H�R���#�|#��,v2S����V�����&m#`b�J���� ���Q+EI���$8�<ꇡ���o����e� r�c8�&[U�>T���f� �x���=�������-��ͫW&�P�^Y�4X�z��h�j�G
+��I���/.^�v#�N�q�J�K��Y��}�������{!�����4R�N�_Bo TΨ<k�K*��0��4��(�f�HZ+��Ύʾ#Ζר ��no�TX0�-k�A�́�3��'M� �q�p���v [`�s��� ����$�֮pS�LX��Խ�*��:-ɢP��Ñ��� EC]�pe��xa������3���-Q:X*�;��� �bS�����jOh��@\j-��>~��{Y�_MNA"yZ��Żƈ��!�}vwRC%fB@��G����Qc(�Za}6���1޻���[���U�d5�{�
+v���
+�ͶD=�-z��ݸY,��S-��Ӻ���@6WptL�ZJ:�]�e�b�\�*(R��;1�3���W4�
+*��R�B��w�x�:�&ˬ3$��K6����/�����RZ ��H��N)�-��JZ
+ ��*ƍ���9�8c�2�a]�]���Ur�a����m�9��&*�F�/b3��fr*ݾ9�0��%�azcD�z��N�$�粿"�G'[DL�Uf�(p^R�
+/Q��ə�E/n��J�6c�L\y/Ԙ0��|�:'�_��dAe��UO�鹊,�&7��/~���.Co-�Gn��C�JR�X)-�yύ,��9pyO:�f��M�PF#���ߡ�PMY�ȁRB�\����o�3�\�)�p��ue2A�0.�>��sE>r���N7�h�kv����Cd؛RZ��X�j�[��#��
endobj
982 0 obj <<
/Type /Font
@@ -5477,14 +5461,14 @@ endobj
/FirstChar 36
/LastChar 121
/Widths 1351 0 R
-/BaseFont /TSWFRI+NimbusSanL-Bold
+/BaseFont /DOHFNV+NimbusSanL-Bold
/FontDescriptor 980 0 R
>> endobj
980 0 obj <<
/Ascent 722
/CapHeight 722
/Descent -217
-/FontName /TSWFRI+NimbusSanL-Bold
+/FontName /DOHFNV+NimbusSanL-Bold
/ItalicAngle 0
/StemV 141
/XHeight 532
@@ -5508,7 +5492,7 @@ x��zeT\ݶ%���Z���R�C
��B����!� �Aܝ` �A�$M�������W�����8{Ϲ�\{ͽΨ��(v��<������
х"]�6P���~e�����٣
������AQ
-؂��P�-����{@(�;���'�� OH
+؂��P�-����{@(�;���'�� OH
�������R�����9�ݝ��r��v
��ӷ��8�@��������@��R���s������ �C۸#����A���sn �_ ���[�u��sx�vU+O�ɿ=��W���;�^���
Бz�y�C������4uͩn��tpI^�N�bf�O�P4�s�
@@ -5540,7 +5524,7 @@ QL��Y��v�)��-�G�j�z��gh���.���&$RD Ls�p��J�'+�*�p-r��smD_�.:.��W�lK���e��
+o�=(n��n�꽎��,�Y���|�{|�c�pQ'c7�Ҭ��zZ��tg����E�v��!��C�K�;��>]�
���zp�sB�����Ѭ�&����*=�Ʀ(�I�X�Rw����*�����V�Jl�fF}�ˍ.G$=�"���_dm-n��e�ul}h���E��G|d#±���Ռ�������f��W4��Е(Y�q}Gk�w�u^�I_�ry*p��t7AN gN����7��
_���։��:�0h"�Qo�����'�,E@����jĀ"p.a����{��g���(g��pX���o
-�&+����[%B�YZ�J�4���A�&�����3�/��J�ŭL׈�8��r?�.�B�u����u��뷧�@u�Q����5�tΥ������"K�"�az���$&��%����#�y�� ��x����+xS��"���L=�#�x�{��.^7���|��������Na�9��U��<�F'�ZB��K�-��BE�~l�Q�TJ�3��DYr<TϜy5Yq8��8gme� �Ц�q�sR������7���Udn�� s ���'���kQ�������#Zy�gU?���y;��
+�&+����[%B�YZ�J�4���A�&�����3�/��J�ŭL׈�8��r?�.�B�u����u��뷧�@u�Q����5�tΥ������"K�"�az���$&��%����#�y�� ��x����+xS��"���L=�#�x�{��.^7���|��������Na�9��U��<�F'�ZB��K�-��BE�~l�Q�TJ�3��DYr<TϜy5Yq8��8gme� �Ц�q�sR������7���Udn�� s ���'���kQ�������#Zy�gU?���y;��
endobj
802 0 obj <<
/Type /Font
@@ -5549,14 +5533,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 1352 0 R
-/BaseFont /XOQSPH+NimbusSanL-Regu
+/BaseFont /PNUUAQ+NimbusSanL-Regu
/FontDescriptor 800 0 R
>> endobj
800 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /XOQSPH+NimbusSanL-Regu
+/FontName /PNUUAQ+NimbusSanL-Regu
/ItalicAngle 0
/StemV 85
/XHeight 523
@@ -5576,33 +5560,30 @@ endobj
/Filter /FlateDecode
>>
stream
-x��WgP�붦�H�ޅ���A�W���$$���^�)*�Ez�
-"]�t�H�"����3��_��_wnf����Y�Y�Yߚ ����aQG�1"�²
-�@df0@��Dddd��
-����114������/��ן� u������c��kG#�q�
-
-��p�bX2}���H
-�HM�Z�&T��Ի�گ�|�ùH���U �w�^~��w��TS��~l�|m��s^�T�� 2^2��';�,��i����8�c��;;���t)t%��2Iv9ޜ|qANzLb���ʦ9i�,v�*�:Ԝ��fՁ@�8s�f��f�����O9ݢ�ԟ#A�W����%�J�'WN_*�T�ˮ̛?�ΞU�7V�)
-�s��'���e
-��j�T��+��7"��O m�lA�2*�Z� 4�,���^>��fi� i����6����\��@����e��[�V�Y�
-�~s��Ω��䘤�;�K��fb�>��x��|���5�0�9�����������
-y%�\֯�5���e՛�E��%X؞��tᐧY�Q�uV���2�4e����hJia��6[G���;��0}H��3d6�r9�3:`�H �����h~���%`�ӵa�8"N�Kw��E��w�|�2{�����Jڜ�9�ښ��|J9��mj�cpM�!�׷��hr'ntk>a;:�|�K��*M/x���[#�<
-#�xr�>C�]�K�pP݅qNIOu���W�C��2tX���!+�5��Iv�|e�7�C����}h�W����"]xN2R̮%d�m��ղU}O.���Q��� ����ws ��3�� s�}�f_,�[�<7�W�(�y�F�ٽJ�)����ţ�%|�TA��"��c� �c�Z�R<���^N畋x����{gc�G�$��(���S�~�GB���� w8�a�e��%m���3�-b?Q�㩗2��W��xosL��]�,[Mbh��@F&�1�=�g����r��49|�1����+��-�`�|��qfH�+�6��H��M���5!��w|zz_��L}'�D��L�e�Al2���E��4��[����>�}+[ �K7�����>��(��`cWߔz�� �d^���B�y���y�Ȕ?U����G�'��D0�|��Q�~���^��qVA��A � �c��3&"��.R[q��i���c���ѭ
-����
-. h����+�GU�M�d�$Y������@���H���x�|�y����GV3O��}>;l �^Tu�����?��U����!�C�ިo�M�]_D��� ��\-q�X�j�4ʪ[���J �zx�d}����'�u �mQh.�G$Z��I�
-ٮ+}����`�KT�Qh�����QDn�@�Uv���j � @T|��z�_�����j.jY$]�~�}vV���x_U����x��5�T�{歚3(���d��o�3tA����ٞ�r�w̶t��/u-��Ό���׾>#]����v��%���Q���vu'��
-�<�V��4���a�$4.x8�� BSP��x������JQ����7�3����� )���O{F^j�[Pߜud�c�ŵu��F ?6E6k}�͏S���f�)�hhZ��ίF�I�Ł��#a,�k�1�t�*��qʒBp%v2f�N�=��hS
-�&�e}S�
-�Y/;����8��M�r�,Nys<�d{�$ƈ 7�g�0�����\��� �j+�Tp�&{[��\��9��"��`��r�v�_���7���툗���x�a�����b]�.�x��Ez\]S�$�oZzq
-��_ ��mgU���c\��Nɷ�%bsG�]�!��e1JE"����ˡȍBkn�T|�f������<\ʋ���.�x#ϛqsƆ��I)_�T�;ʯ�r��ؼ|9�R��&�r��YG�
-.lo&
-AlJ�&�$)� =W��…��U}I�J��^U�'���=&�7���B?ޣ,| ~�(q�٠��%_����x��0�
-�qf�b��G?vCo�[ᡃ����������垴��; �WC#$#}ר�5 F��eJ�:�K^�:�)F{�N�m���⿔M5�9Rq9�:)1H6���fѫ
-�+��� |�H5O�v��q���Ò��HG�`��!o�?��1[E�;� Ѣ���^��q�j��8e_P�DF��>M��X�e��qJ@�K]�~-��w��^�$C�}j�kz� t�c?�?�Q54[f��+�N�؋�XZ�\����%
-(ۼ�6�gb�N��e�V�w�.e��6*6Z�Ѵ�'r�p��~6}�X�G�J �} 5e�Z9��� �3&58�� VGh�}�uj
-��
-���|�K
-�4v_yF����R��@��6�4��'�m��w� ����wX^ʩ�M<�����#��#r����@*׈�g�k�dU͘�xO����Y�O F@V2޺7�t(:?��ŷj}�<��'����"�0�Kyq�W�d{�b��a�S���3�ec%s�Z�$��(�3��[�䚽��!��� �� \�(g��B:��endstream
+x��WgP�붦�t�w! E@z/�4�^B ����{�ޑ��{Q��� ҥIW�4)��>���u��u�f&��}���U����ps�
+*����8FPTHD�u�uEk#��U0��-
+��$�ܪ(E�Հ���A@
+�\�����!~'�D!��X K��@c� �`����#O��+6��;�%r�U�o K�E1@( �@<0�b�B
+���7[�����x@@$ӟ �`Ǵ�tLCN�;5��vQ��da���|�
+D�_Z��l��Ee�Pݰ��[ω-��/�W���a�m)��<V�[|�T�<M����V���ۦ�޻-\3�1Y]z�o`Upq��p�8�h�����[�?-�1��)(��]3euՋ�m�č�c�ޞ�}��/,ϟs˻]#��wy΢dn\����>0DEj��<�9�M�4�M�}VB?��j�� V��HC�Hi9�{��_���k�h�?�>� ���e�ϩ�:ý�������|~)P+"r>r��;�,��}����ⴎ (���8�Wӥؕ�J�,��pc���ae��J>��U������3N�U���,=�����&���*�?�u�
+R~��]%�動`�+��^M8~�d`VC/��l��<˨�o��S��Z�>#n��c`�`�Y�eq�*.�TOo-��6�/�R�$���^!�8�ro8�����&yԺ�m ����c�@چ�u:;�P�X5��j!% #��QZ�߭�g��IK�5����5�fQ�����>�fc�43 B��ۥ���cJ��)�T|��!܉Ju��=3��7H
+�<���}���I-ې�^ze�츍ר"�Sskk�O2ÍM-�������d���]�9QN5�Lm/������0U��f�r5�;��.�*�iݽ L����R���65��5ܒ����ߠ�;��YIO�RS���b��Ưij�L.�����Զ����@���۞�~'1qv�CY����o+���M�-��Ў��I�}��g`O�f��p���ă�ji��9I��̲{��6����_�^�IVH�[u3�E�T=ݱ���fH��#wϓl��n�cn�⑇��l���f`�+�fk�Q�iS>P�s�{RNA�����y�˻�o��[�����Δ�����h�!e�� �t���6���a7"7�P�&�����&ƞ�S��ϗ�_Wl�ݴ
+��I _ծ"�i��<�_Hǣ�˭N������vV�x�nmhm���������/U쟕���w���o��媚"T"�K)� I���CZ5[�L�ʄ1VD��}��
+�^ˇ��,M�!�7�<&�R�� ������u���b�y ��9+���o�И9U3����z�82�L ���ߚ���
+��ƣ�)wCp�L�X/'zFCf"����S�b�)�_��q Zkwm�6�H�E���#|���6��̑�2n�R�.��@����f���D�J^xj���\��E�$����7�< ݚOُ-2tH�^��m>zk��joR}���]G�|�� #X�e%臈ϸ�jYJ�l ��*�8h�-�j�h�� 6OLO&��&��&�ߥ����.c���]$T����:�s0����y�i�� dzv5�$+�]�����k�_�x����Rj5�çJј/!�j#z�d�o�`Y��B��(�w��ƪLIz�~���a��MHMT.
+�Sq��qz����rn�h^�x�뒚� :� ���:[8�~�s�A�j������eN�9�,+�TK��%Tu�����r}7�p��p1$�/��~p�x듏��ѫ��V�ZK4:0W����5�hu2����own���x{�_Q��R�10�ԅRG"%�}P��%����_�F㩪U��p�Y����|����9¦�3�����d9�TZ�̏{������k+�֟�78��%�5Bf���uS}��#g6�\��Q_O�Џx�@�R�@*;���y���j�Nf\�T-���
+�,�Y:'�`�Ǎ�x���<KR�y��:�
+�>Qΰ ��s��?�Y���|� �x���F�ֳ�r�%�Z�8A�i7���
+�4r��?Ke7bC���%Qx\�pX)���;�"O����w�#;9���O��#o�R�b��@?�=y��Ϝ�Ƭ�#���-Wr�Hر �Y�+_~���� o�pGC�
+�n�Th~5��KB L� c%[ˍ���T/���K� �+հ3�>�xZ�!r�!%
+�Z�l�S��-=�v�ˌ��9��$�w7�����씅-�p8u>�}P\��ġ�ݹ�SF��C58UZ:���P>�T�ymçț>��0}�9;#}���kTr������2‰��-�U�K�;iS���_:�N}A2 /"޵��Z=��Kd����?"WL`:%�����.-s|F�ܯ%��S�v��V�z��:�RI��Q����~lIֈ��C�fn�D���tқ$3i����/����M���A��p��� �����r:�����9���ґ�k�a�O" V �3e\����mz��q����Hrw�_ʄ�����:�\���
+&�U��˰���hɞw��2R���-聕SNX�_��'W;�R׸���IXud"�}�)��On��VQ�nj*J�(E�h���k��V;6N�X5�+̶�G0!^s����D�2Щ�R�֩_��ޝ�1����I�8������E�{�8��� L�Y�ኳS�vb?V�V�+W��:�l(A͋���Ok�����vD"�7�x�&ZSf4���8��A^S�*�ڇ���8e��,���uV���7T�UK[k�a�{fѯ=k
+h�q��Ph2�"e�=�H��Κ���Z���Ɲ#���%&R�O€���;��h����ǹ�c��)��g��,>��}1b�C�nD
+D=�o��E�.�9 �6.ğS3U�,�{^�nIb(�5Kq�G�Q��1��3�;+ ��[����J�߹{M���o�-t}<��������s���c�H�)��a"rt��|x��4ns%�����ҏ-�F�P��
+��'���q�Fm!�b���̎��'���Z�ޥ�t�crڰ�p�G�J��!�޽;c� �*�(����b�"�rEA��g�kp��>�����5��3��
+ ��5�uVҔ]��pH�2����VK�B>���J["g���x��%��{�o�h ��罶W �#Ӡ�O*�sm�|�W�1��R�i!9w��j�r������d��2��'��3` �m��� 0d��)��������8���;����.z�u陀�w>ꡟK�i�+A�&b3��*�?;��s୅��� ��(Z��������L�6(V��!?h��"x���N��ȥ��6��Sb,�K/�� �����|�@�w�#6��%����&p
+?V,�Y
+��|6������Q���$2��۽��C�m���z����)�e&���l���x �W����v_zD:���Q��D��6�7��'�n+��v��3�J�:,�?�R�&��C�QΑ|�=_z��S0�{D��5�V�f�j���ۄ�ڃg�# KY/�m������Z�>X���}��}�O�橲8�#]�=x1��(홟3LU3�dјN�R��^+E�=J��.���!�f'�o~H�����0g ʉ�
endobj
715 0 obj <<
/Type /Font
@@ -5611,14 +5592,14 @@ endobj
/FirstChar 46
/LastChar 122
/Widths 1353 0 R
-/BaseFont /KQTSTM+NimbusMonL-BoldObli
+/BaseFont /NXYYRQ+NimbusMonL-BoldObli
/FontDescriptor 713 0 R
>> endobj
713 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /KQTSTM+NimbusMonL-BoldObli
+/FontName /NXYYRQ+NimbusMonL-BoldObli
/ItalicAngle -12
/StemV 103
/XHeight 439
@@ -5639,7 +5620,7 @@ endobj
>>
stream
x��weP���-�<��Npw��0��
-r��X��_��]��� 9
+r��X��_��]��� 9
�ٝA��`a�y\�@��Y~���K㛖%��!
��B(ֆ��ػ���� ��,��b���*w3���m�$�
�@}�){�w���x�ˋD���#^�2j���p���[����q����R�}�Lӥ�%'!*=w�v�*���� ,T��ˆ<vI�"4P��}���
@@ -5660,7 +5641,7 @@ K^{�{��D�,kG�����+L��� �nTJ��<�� �-ű��2y�
�V���&rG\@�2;�����pq1�n�#�����L��r�q��Y"�*��,��0��
�͕�,� 4[����e��d?i����b!Z�O;�,��񏒉0�*�j���p细�KL���orͥ�;�\����Yq�I�� �ih�x�6��Ŧl���}K�i��`�YKq�>��X�8% De�)eZ=��5�8����@H���,�թ��c����S���-�ό����^�z2gt_�^)��q�;AQ3p��������v8%������n��.��$�'�����<S�e���9�V��ˠ09�������D 0�tkl+����T����I��p��E�%��K_�Z�S�w�SșEU�O�cm�#��#���%�?�>MW��D���<R��v��H�JB4B1CPHxB�v?�s���> A~X��i�Z���������`�+p솭�Y��du��: ���}'F4�ɯ2���k��~�e���rB�A|t#�]v�=~gW��F�Ap)jK�}*3�4W`����/�兓Dz����/|�8/m�'*�~V��|s�fbr��]�ه���I:�S��g�Ԥ-�D8fv��R����@���a����b&%dY7����Gˣ��� �~%��H�j7ޛ׵�� �i�%�S<�P�l�M�����5�k�*�B���&� ����ͲD ���� ���5w�S~A�}f� `s���f����k��ڋ�I����P�;Сv�5e� Z���hҮ���`q��^kM�7�5 �X�w��4�<mc��b�<f���������F��d�=�}��������"~a��{�./� ?֐*�A/sP죙���pL�]Ձ��-a��P��;�y��te`��{
,�I�0��vI�B�qN�^ Ų�*[�3�Q��V婁�6*%`�"���oβ����n�`��Q$���I]��w�Z���*�m���ň
-U��%۸T?�x��h�K�d��������:������ңw��-����D6�� >QuO}��*�ڥ�&v�]ɚ��U�^�M%f��+��S��Ϫs�]̙� �4"� �?�'%����9 ���}��q�]�]k�8xE�k��eEJ4�����Bۜ!¿E,~�TS`�$螺��)��X�w��}��g�������m�Z��π��w�e��6�� �@M�S�7nDA�ُg�u{\�zo�iC&�R�V��dA�W"M���X]2P���.�Y��Y.oi����U��kZl�!�9(1��d�aw�ɾ ��Q1���9�Dv2@&*����A���OX��fή��f�v(�x�bmendstream
+U��%۸T?�x��h�K�d��������:������ңw��-����D6�� >QuO}��*�ڥ�&v�]ɚ��U�^�M%f��+��S��Ϫs�]̙� �4"� �?�'%����9 ���}��q�]�]k�8xE�k��eEJ4�����Bۜ!¿E,~�TS`�$螺��)��X�w��}��g�������m�Z��π��w�e��6�� �@M�S�7nDA�ُg�u{\�zo�iC&�R�V��dA�W"M���X]2P���.�Y��Y.oi����U��kZl�!�9(1��d�aw�ɾ ��Q1���9�Dv2@&*����A���OX��fή��f�v(���bYendstream
endobj
707 0 obj <<
/Type /Font
@@ -5669,14 +5650,14 @@ endobj
/FirstChar 40
/LastChar 122
/Widths 1354 0 R
-/BaseFont /PYOUGV+NimbusMonL-ReguObli
+/BaseFont /ZFUKPF+NimbusMonL-ReguObli
/FontDescriptor 705 0 R
>> endobj
705 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /PYOUGV+NimbusMonL-ReguObli
+/FontName /ZFUKPF+NimbusMonL-ReguObli
/ItalicAngle -12
/StemV 43
/XHeight 426
@@ -5698,7 +5679,7 @@ endobj
stream
x���UT�]�%��kቻ;���N�Z���;����;��Z�����t�������y�ω�#N�8�Y���XQ�^����L��΅��������hdccd
���W��5�5���8��
-rp���a��K�h���l�tp�ͪ(*�ou�X�����؛��4�7q�gK�����E]��v�
+rp���a��K�h���l�tp�ͪ(*�ou�X�����؛��4�7q�gK�����E]��v�
��V���^Nc_��iܐ�槕Q�ъ�+���P�Y���Z#����6S��S7C�0��D�X>�O�ƶa�l�J���Ҋuw����h���7n- �}������[�w� g�����נ�����ۭ�IZR � �Y�u#1�� t,����CMMW�M���Ӗ$�I�]��}}���(+�X{���H�=s]Ԑ��<���b57U�Ct��# �@ �KC�F���5�0�
��ʩ�t��N�����u�T��4F�䂙ϸ��:�0��z2.�8���"�@b��:�(o`ԿkM.Z�#�2GY�nplw��m݆�f[8�")�-�>���"���,��6�#�VE��4� �T� �����X}׹�F;�yh ȱ��x�!:�<�?-p�y�>sd�aEG2��iħ��_,�:���I�
� ����.���^�!Oz�(~�@��ʨJ� �(�)I�ɒ!�[��7O�0 �(��/��#?��tss��w�gWW��;�
@@ -5770,7 +5751,7 @@ Pпܠ�ST
�jD�G�@�=��0V�23q�8@R��Sx����Q�k>֘Iۻ��n�@���+7�� #xA&
V��2��u=���"�� �}��Rp�G0�|�����v���#�i�j3�T��(3Z��]��6$�H�.�2r�"��.Q}�[�(~�a��|�g7L���i G�zB�������y,<ri5��<�Q��"�@X1p�J9���{5�XO�!��D��-���{��|���|�Ȕ�;��U�F rE���>����%���.�c�G�3*ٺr��.��S�Z����i�����"�8׊�[�o��i��tB!N�Ma3_#�֑3?z25Q��%Tb�����S�\ ��`�D�����"�һK$��� W�P-$�"ta�5�.��i�"2a ��Eg|�����O-,�'�Ƥ�p|�̔��7r����������!�v����0�B�y\�q�XkʀX��;my��(~a��{�|�ob���֭�x�=���` �罦(h ��85]��C����U�u���4
�?0
-t��t�q���?p�?��'Lľ�\�m�����>��endstream
+t��t�q���?p�?��'Lľ�\�m�����6��endstream
endobj
638 0 obj <<
/Type /Font
@@ -5779,14 +5760,14 @@ endobj
/FirstChar 40
/LastChar 90
/Widths 1355 0 R
-/BaseFont /IKWPAS+URWPalladioL-Roma-Slant_167
+/BaseFont /DCPNPJ+URWPalladioL-Roma-Slant_167
/FontDescriptor 636 0 R
>> endobj
636 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /IKWPAS+URWPalladioL-Roma-Slant_167
+/FontName /DCPNPJ+URWPalladioL-Roma-Slant_167
/ItalicAngle -9
/StemV 84
/XHeight 469
@@ -5811,7 +5792,7 @@ x���ePeݲ%
�k䀣�u9��lŌ���
t�W������$�L�l�=
-F6�� �� c��s���b�l@�������7�������6ۚ�������F���h��lb03��ۣ��lM��� [�_-��F
+F6�� �� c��s���b�l@�������7�������6ۚ�������F���h��lb03��ۣ��lM��� [�_-��F
�ݡ$�6;�� �S�F���9Lq��#7���A�Oy���k��0\���)�ڊ�P���_�����+WX��4�qW%�3A pǂy�Nј�h�F�����H�Q�v�;�0p�]�t�~xd,���x��6m$��b��a���a�Q���ZCE{�͸V>$zytg�C� ���~^�Z΢�'�4v̢��Q(�����E$9�>R��vJr ��!V��Q�-�� �]k��#L�)N[
Y'L
Ml%�:Tid��
@@ -5856,7 +5837,7 @@ S�ŕ���?U�h�� �~�ܭ�����F� ̽� �`2��; �_�ۥ��%�%B\a�Pbs������xۊ͏P��"2�'�\s�a
�--�T��?�שּׁ~Ig.�s#IR�1�d�0s��l��)w܏�C�5Z�D��A|aK]��Q�)�э�ۥf�-6w��n�ԑ�Z����e��KQ��!q�l���;��` ����j�"�Fd�(��%Х� ���:�K��֐���j?�0GL��/����s�mt�7@F.�v�\�`�_��@��+߭'9/���Q��;*��~��\݂���"@�w�>
���h����;f&��� tYPX�(�ї��*�R�͋MI.riAۏ�eBapX,&L��F�qO�i/z�-J�َX!|���{/��l��2�L��$��y�r���t A3�����MT�˹#��_��C��%3(�BN�fMݱd[�0i�����e�n��,2����>Q~E�l�чd��K
� �X�� �S�M�kh_v.�Z�X�Y��~d�Z��q�z3�=p��*S�ᣍ.rY�8xz��m:���fkl��3V�y�ݪ"|pA�q+K����5���X��3�S�K�8�Xg�y6V�O���n�|@a������\1-��$j���Y�6I���Q����.���!�" ���#k��@n���.MV5�ҞpɾT �L$*jsK��kU3P"���ǂ�\e,Ѷ��Ue�ATI���#DR���f���D�4��;��"_u��+E�8崕�.a�M�eə�m��b�B�_S���,�5�L(�����l�O���,��V"��e��ŗ��~,���������gq8��Z���}�/�'la��S�q�t���^H��Nw��taES<hpFE��u�F,p?��8*��z"��>���lf���~,��Ni`��ύg C�@2|���>�6.�W��>��ؓM�+� $g;���G�ޗ��E׮ڧqkER���c{��Z��Zd;_P�� t���/QO�I��g����%E:)�7��zz��t�Z��
-�9���N�ө޶Gn����,���:�5�=�x�=Z����Q�Gc]q��_������'�(�DZ���J���I�'�_��:��HjD�l��,�q�` G���\�@�������ܪ�X��Q<�i8��|#�����O(m�m�8�7�r�j�"T�y� Z�|A��Pq�� [���3V�l� �V�lb��.۞F �o�J���
+�9���N�ө޶Gn����,���:�5�=�x�=Z����Q�Gc]q��_������'�(�DZ���J���I�'�_��:��HjD�l��,�q�` G���\�@�������ܪ�X��Q<�i8��|#�����O(m�m�8�7�r�j�"T�y� Z�|A��Pq�� [���3V�l� �V�lb��.۞F �o�J���
endobj
631 0 obj <<
/Type /Font
@@ -5865,14 +5846,14 @@ endobj
/FirstChar 34
/LastChar 125
/Widths 1356 0 R
-/BaseFont /IQJBXB+NimbusMonL-Bold
+/BaseFont /EGSTMX+NimbusMonL-Bold
/FontDescriptor 629 0 R
>> endobj
629 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /IQJBXB+NimbusMonL-Bold
+/FontName /EGSTMX+NimbusMonL-Bold
/ItalicAngle 0
/StemV 101
/XHeight 439
@@ -5894,7 +5875,7 @@ endobj
stream
xڬ�c�f��%��Y�'UiVڶm?i۶]i�Ҷmۨ�U�����_�s������c�kƌ���؛�XA�N���(fg�L�D�����1rq�����S��
t�W�(����$ M�l�=
-���
+���
���t�F�����YQv6�5�;^����������:� ��� :�4�[[�3��L�Lw�������e�/mP)*���K ��0x� �o���l�X:��8���=ڋeMѓ
����!��+@����N�;�A�1�\=��zQfB��Q��ޤ��^�;�t�G��?T����dO�H��?��0;QA�j �ο'��y�깅�;ģɉ�%�v�@��ǯ�Z�A�ބ�w�~�I�����GN�Ki#�`��n�.� ���ϓ$�(�zX��u3?�#�4�9����B.��ӄ?�7kE4� ]O8�vC���UkSM�ڇ��02��YZ��uH�H7�R�$�j�D"$m|/���K|ZT7��蝳�9�1��u����@�v�y��Vh�x+20%3�t�%7!AZ|����{�ڏG�P����� _����X���"���'y��� ��o)8[�̗3 !�,� �h!k<L��l�8�}�-��4��4�e�nv���@��+��Z�F�h�������??jb��S�cj��F�א���yx㰢�B;^��tlY���H�� �޴ǭ^���=�D��bx:3p�=�c��#�],�qGĮ�k�
�H�f�Ж�������� � ӓ�|#9�$�|S��W�mMQ$T Y�ZQ^��P�LR`�!T��|ބl�lFO���S�gc8FR����S?߰���l8DN�ޝ�l����y���4ۭ�L��K ����4|Eu��ﴀ�f
@@ -5966,7 +5947,7 @@ d�\�xy�>���
�M�b�����@o�1�%Hy.�y�?.��rn���T��p�Z[��4��ɏ�H�y��#I�H���g�1�rw�eB��?�ɾj��o�[�V���3PTc�=,r�?s0��)�:K�+�b�J�'(g�c?8Ⱦ<χ��ų���氅SvU'�N������m�iG�D���Q�  �V|Q�i��-(�P�1W��s+�A�rl�xHԆD�# ���Z�� �V� �� .u�&̺�E� V��|���Ko��N69]�?%����:��GI ��m��i�y�Y�^\���㿾�ޫ�`Q�|��i��<{�Ds���ѩ�6�&`��WJܓ �+�W|S#3L�+uۭ�`D��dh��Vd��+�{�"o�� �x���$������\D`�}��c��͆\�Z.�[ۆ��]D�D1��DSM ���C�:-��٦��hj9
[�J�G)��D�U��QG^D:���!5�ޫ�
e�'�7�d��c��h�0�ݔ}tw�ֲ���6qj%�y?x�`*O�z����mD����g���|[w��P0 ���3ij �naT���rļ��[�D�� ����
-bi}j2�s ���o����Ha�)y�c�H��i��6a�1����Rm8 �8�%���N �� ���"@��9c��}�1���
+bi}j2�s ���o����Ha�)y�c�H��i��6a�1����Rm8 �8�%���N �� ���"@��9c��}�1���
endobj
628 0 obj <<
/Type /Font
@@ -5975,14 +5956,14 @@ endobj
/FirstChar 33
/LastChar 125
/Widths 1357 0 R
-/BaseFont /YTDMMS+NimbusMonL-Regu
+/BaseFont /SIBBBC+NimbusMonL-Regu
/FontDescriptor 626 0 R
>> endobj
626 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /YTDMMS+NimbusMonL-Regu
+/FontName /SIBBBC+NimbusMonL-Regu
/ItalicAngle 0
/StemV 41
/XHeight 426
@@ -6004,7 +5985,7 @@ endobj
stream
xڬzSx�]�e�Tlc�v%�ض��ضmۨ�m�b�b�6����ӧ��}�}.�~�5ǜcb����xɉ��M쌀bv���� L\
�����:���T��@���5 ,��))'��S�m���Pp1��0�Xm���
-�(g��7%���Me��>��$�o��E��?q��F��!��=���Z���Z���� ��1
+�(g��7%���Me��>��$�o��E��?q��F��!��=���Z���Z���� ��1
Hk
\P3�ة��%��Q��sy1*�����3�W���;7 K�y�m�Z�h\H�������|���_�D��!)?�o��r$q0>����O�<X)
@@ -6087,7 +6068,7 @@ lş�$f_dq_����C�C'O�_��͢z��7Ͱ5�A��`E��Kࣃ�>�҄r�:���䗈�֒"�J��K4��N�
@���o_U�;���e?Z*���O��ͦcZ�6z�*�
�mK1�����:��<f:��V.sF���N�����EQ�g���u�,��vz�!�uS,�#\���6KѯA�I�)�SX1�~��<& �;�] z�)ZP=�N�кg�)Q���}�>՘z_#� *��s,b��o&��]���Ҭ�{����x�Z��\�.��q�5�]�_��~w X~��U�"bg�%̗��bٶ�¾V�3a��$����!�L;ENL��[��(�z����� :\�o������d��n�j�P�n���{:}*PDv�w*[�@9�
�0a����[��r��%�\q��]�����|O-F�kދ��'�Q�.��Tq�������)R�c�����D�V����5y�L �R�wO��ͳ���Ʋ��x��uj2a�� d�M�a�x��]&e9�};��q�m��ʳ� $j��V�_y��6�W 3���R��ѹc�Es�N1}�Nj�Ǟ�c�!\��1��,,���\XM������Dʟ&�~9F=�'KJk�
-����i<��i��?�l��endstream
+����i<��i��?o���endstream
endobj
622 0 obj <<
/Type /Font
@@ -6096,14 +6077,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 1358 0 R
-/BaseFont /XDWPTM+URWPalladioL-Ital
+/BaseFont /ZCVAEP+URWPalladioL-Ital
/FontDescriptor 620 0 R
>> endobj
620 0 obj <<
/Ascent 722
/CapHeight 693
/Descent -261
-/FontName /XDWPTM+URWPalladioL-Ital
+/FontName /ZCVAEP+URWPalladioL-Ital
/ItalicAngle -9.5
/StemV 78
/XHeight 482
@@ -6119,19 +6100,18 @@ endobj
/Length1 862
/Length2 1251
/Length3 532
-/Length 1861
+/Length 1860
/Filter /FlateDecode
>>
stream
x��UkTgn�J�+ŀ��
-�2�@ �,��K
-�#l�������a6O"X�2���r�a�
-�`>��3l�^�;��!��e��Pq��G�#�h� ��b?����5�߄, ��B�����[sx��`X
-�p���!)$�:�"��s��������Rݫ��W��c��P�z��KG��W���
-��Y'u���_N��^��VT�Om"���#�dk^Y��2��N|�4�5��|�m{����6��l�йƹ�n퍖�',M7����x>r�q���ڸ��;Y��1�x�K����4 �>�p"
-+����*�Q}��z��&��T��g�>�ҙ�X���o�i�癩e�|婅k2�_�-O��$e��m4v3j{h�}����C�Q0y�z�őZ���G��S^�47��>/�B jr��<�
-��~��~|F ��S���˵���@�]w{�3_jyth�Q�%Wfe���c$��MG�������|��W@ .�ry���2<x�ZE�T�egd�偗���kE%�D%��i�G���]�}�x��X�$#M/7�j�#��WY6o����Ԝ���t�5��YQz
-Y�8��9�=���� ����B#�ps^R�g�3���y��2�̎�- c��d����VS�qm�ŮR�C�H�b���L��S���*��i�A�����[��͍�J=��鋸�?&��XB�1�rhB��=7�np���L�Y�P]flB��K� ��9���v�'�ց��\�S��㲎���05t=�e��j���Bfw�Dh�?+��V#��� pM��{&?ԾT�=rrǏj����ۚ}������7��<𬃮��Q�?tg��/��� ���<e}�K����� ���P�d����7�W�DB�Dk��"[���I���c���2��e��,�i��Ԟ���*�GUM�=u�)����0订�c�<�y�2^�0YY�O�����8��s���/'I���kԵJ��|�U)S�%Z���2�ڇ<�dsV�tJ��k3H���o�cg���R��u㾊�h{��Fg��:O~�Ӽ�7��1���p�����j�J}�(�vOP1F�+L;��ǮBeJ�|Ė��k���1�}Z��0��2�B�Mf�t�qq�BI%@�6\�.��$�^6��O��&>-Jh�g�uIrrr<䗣ș�K�b�V�r|qO�%Q�8ʨ��!���S�v���sN�/����VEk����t)�m]�e�n�5�2�tUK�o��iAv�)
+�2�@ �&X4�;*(R��� L P�
+A@0�P�TZ)�`��b���Y#BAn�\u��إ?w�ٙ?�>���3����Y�y��l$vEDHi����A� �D2����! �$0
+ߢ}�>��n6o�HzA|�d_d �߫k�}����e@
+�2��
+ݮ:Pǽ���:�Z�w��y ��( ?4f��ugwɣ8�zF�}�X�K��\_k�7 �F�1�w:�X~u�se�jq��q��Z�Q��fG'�@=�~8;�9�L5��^��q�8�J���Z���rE���v�*3�@i&���9gtg2�ҽ=���j�n�M � |����(V���6�)~�O��<��r`�fR<�K��Y�ll _�w���צ��]�f*�춛 ���:yIY��ɔs�0;����� C?E[�k!��dM���,�=Wy�:U���{��C"pΨ<�M��)��mPǡ=(�᱙G�Gͼ��=��W�t����&�|FW�xh�?+�S��^�ઞ��vM|�{9�g�Զ�4ki�w���A���ox�q�y;�0�п���k^����W{�{�q�5�~�������y�n)�)�����[��T�ч��7F��7�,�$�m���3�쀒\��?j<#YW�V�+�k璃��a�=e姴9���u��i��$����_c��I����"�I�z�U�"3)�cT&ON봼���6�9` ���fP�VI�4�Tǝ}��vqf/�&sl^3�L�v���6��?�{��ݦ��yyώkE'+�
+��5��+Ԛ�&a�����QbmA�_=v����"6� ^o(�q �����������W V�o3*��W���W
+���e1���:;4����X��V����:�'����?|p�o�?�
endobj
612 0 obj <<
/Type /Font
@@ -6140,14 +6120,14 @@ endobj
/FirstChar 13
/LastChar 110
/Widths 1360 0 R
-/BaseFont /FHPWHM+CMSY10
+/BaseFont /AKTMYL+CMSY10
/FontDescriptor 610 0 R
>> endobj
610 0 obj <<
/Ascent 750
/CapHeight 683
/Descent -194
-/FontName /FHPWHM+CMSY10
+/FontName /AKTMYL+CMSY10
/ItalicAngle -14.035
/StemV 85
/XHeight 431
@@ -6171,7 +6151,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xڬ�c��]�%\]��.۶m۶m۶m��v�m���}�ܹ��̯��G����8;v�>'�z2��@N������X��Ɖ�������*�oe�odn+E�`k��kf�"&t0�w2���w2�
+xڬ�c��]�%\]��.۶m۶m۶m��v�m���}�ܹ��̯��G����8;v�>'�z2��@N������X��Ɖ�������*�oe�odn+E�`k��kf�"&t0�w2���w2�
�V���^MV��O Y'������ߑ��+�1.��L�/�}j���^N�I-�����Y�Л��'����6��M�7��o��1�m��'=Uf�1K�w;9<�~��
��|��#W����"*�>�w����5�� zѷ����_?F#�h�zݕ��������뾬 ��Daܔ��֖x���3� 4v�_P���?2ք���γ��;�,f'+@��V��y��Ɂv(�މ���7Gf� q�}-W)��/�^�e�����k��*(|���Ɛ)��d��P>�,U���D�"w("Z��Q�D�xy�.Մ�0��.��'�6h¬N� �����&2�S
5@Uc„7VC���Nx��a���ݻT��E uFB�j5̘򻖅P����M{�o�� ��e�`����Ͱ U����Ƀ����� Le�rػ�#���J�쏗�U>���!+�x��p�|m��-Z�
@@ -6282,7 +6262,7 @@ D�})�;\l�������f�>���z@��_9�6�c�Q���5����S��tW��
��eI?�1k�����N���U~^����s���Ҥ�O��2N�#,��>������U�Q�?c"x� �Km������A��|���X��鰭���DSZM�*,���^X䢨� ��xp{M�܎ ]�2b�h7�����k�<���.�`�Lˆ��lv �w§ ��; �w�xS(��N�51����K�|�RJ���7�����䠆��!��+�����[�u;r+
i��^jm�3����O3Ҥ�/v�+����E����CD��+ō2��3�W�-C�R*ݤ���9�d<�[����9�xu���i$�E�yZ�
�t0�=�&A�_�39 �M�䮩����� gF��@1Bz�*���.
-4:o��g��t2+,d�@w�/-���k���l�*��!�|�3����������c��7�lS��/���� �����������-��
+4:o��g��t2+,d�@w�/-���k���l�*��!�|�3����������c��7�lS��/���� �����������-��
endobj
604 0 obj <<
/Type /Font
@@ -6291,14 +6271,14 @@ endobj
/FirstChar 2
/LastChar 216
/Widths 1361 0 R
-/BaseFont /QLANNN+URWPalladioL-Roma
+/BaseFont /PFLJOO+URWPalladioL-Roma
/FontDescriptor 602 0 R
>> endobj
602 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /QLANNN+URWPalladioL-Roma
+/FontName /PFLJOO+URWPalladioL-Roma
/ItalicAngle 0
/StemV 84
/XHeight 469
@@ -6319,7 +6299,7 @@ endobj
>>
stream
xڬzc�e߳eٶ�m�˶m۶mWuٶm�6���.����4�f>ͼ'����+W�ʽ�ވCF��L'hbod*fo�B�D�� PURW0��14������1�5���� ;��X�ۉ��r�MM
-7�3u2�(��Xd,�M�M�
+7�3u2�(��Xd,�M�M�
�|I�
�wȻ8hN����3/�c�o�e�����N���J? �g�X��n�P����>; ��7ƣw#5����$O>��L1<16:�w>p�K�M��O���˯�Z)Z�L~ӑm�{��*��RƢ)�0=��g �\"nsY�{s�?��iE�vY���9��Η�5{���r=Fa����BL���J|��u�áq��x&��2�r&G-H.��"]pY����
"+0Tj�kə����yF
@@ -6426,7 +6406,7 @@ L���%�Le̿+1�-�*��0�G70�o2��"��d��\g�i�7���s�qL�7!���ϝ�{�r%tC����A@�
6_m�q'2~��=aF���М�?� �Z�._|;l[�OX��J�+QG�i�ZɏP&Yyf2�<��r�G �75���3��#z�FF⨾��F4�N��5�c��6P���e� ��k��u_K���L�*���0MH�Cr�T>�㇟x F��R�B_!�i�N�%$h�]t� ������s���=n��<�����Y����QK���gF==�3���sC�G��!Y� W�a�Š +��Y�]�h��!{�#i���"����4bw�Z�X �2&��.�l=b, �,�l<a�r�7�')�͋RQ�.)�2�.�я��r�u��)R�\-C�"
�{0���eh饑@�s����V>��A��G��5W0!��B�V\��6���ߥ�����;RЭ$��v(�@�ICM��v��_��/# �
���������2� 6�w��{0��+/6A3C�X ���?
-�0�j T���q�]����'DY� �.g���¨� ;AJҴ��ͭ[��H�aA@�� ?�J�A�tI�%[ح$ ҍ�"ɾs��?���
+�0�j T���q�]����'DY� �.g���¨� ;AJҴ��ͭ[��H�aA@�� ?�J�A�tI�%[ح$ ҍ�"ɾs��?���
endobj
601 0 obj <<
/Type /Font
@@ -6435,14 +6415,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 1362 0 R
-/BaseFont /INPKTB+URWPalladioL-Bold
+/BaseFont /WEGQVN+URWPalladioL-Bold
/FontDescriptor 599 0 R
>> endobj
599 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /INPKTB+URWPalladioL-Bold
+/FontName /WEGQVN+URWPalladioL-Bold
/ItalicAngle 0
/StemV 123
/XHeight 471
@@ -6506,7 +6486,7 @@ endobj
/Type /Pages
/Count 6
/Parent 1364 0 R
-/Kids [988 0 R 993 0 R 1002 0 R 1007 0 R 1015 0 R 1022 0 R]
+/Kids [988 0 R 993 0 R 1001 0 R 1007 0 R 1015 0 R 1022 0 R]
>> endobj
1035 0 obj <<
/Type /Pages
@@ -7631,7 +7611,7 @@ endobj
/Count -4
>> endobj
1368 0 obj <<
-/Names [(Access_Control_Lists) 1185 0 R (Bv9ARM.ch01) 617 0 R (Bv9ARM.ch02) 671 0 R (Bv9ARM.ch03) 686 0 R (Bv9ARM.ch04) 734 0 R (Bv9ARM.ch05) 819 0 R (Bv9ARM.ch06) 831 0 R (Bv9ARM.ch07) 1184 0 R (Bv9ARM.ch08) 1203 0 R (Bv9ARM.ch09) 1218 0 R (Configuration_File_Grammar) 855 0 R (DNSSEC) 787 0 R (Doc-Start) 598 0 R (Setting_TTLs) 1152 0 R (access_control) 970 0 R (acl) 863 0 R (address_match_lists) 836 0 R (admin_tools) 708 0 R (appendix.A) 558 0 R (bibliography) 1234 0 R (boolean_options) 740 0 R (builtin) 1031 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 514 0 R (chapter.8) 538 0 R (cite.RFC1034) 1244 0 R (cite.RFC1035) 1246 0 R (cite.RFC1101) 1302 0 R (cite.RFC1123) 1304 0 R (cite.RFC1183) 1286 0 R (cite.RFC1464) 1322 0 R (cite.RFC1535) 1273 0 R (cite.RFC1536) 1275 0 R (cite.RFC1537) 1312 0 R (cite.RFC1591) 1306 0 R (cite.RFC1706) 1288 0 R (cite.RFC1712) 1336 0 R (cite.RFC1713) 1324 0 R (cite.RFC1794) 1326 0 R (cite.RFC1876) 1290 0 R (cite.RFC1886) 1265 0 R (cite.RFC1912) 1314 0 R (cite.RFC1982) 1277 0 R (cite.RFC1995) 1251 0 R (cite.RFC1996) 1253 0 R (cite.RFC2010) 1316 0 R (cite.RFC2052) 1292 0 R (cite.RFC2065) 1267 0 R (cite.RFC2136) 1255 0 R (cite.RFC2137) 1269 0 R (cite.RFC2163) 1294 0 R (cite.RFC2168) 1296 0 R (cite.RFC2181) 1257 0 R (cite.RFC2219) 1318 0 R (cite.RFC2230) 1298 0 R (cite.RFC2240) 1328 0 R (cite.RFC2308) 1259 0 R (cite.RFC2317) 1308 0 R (cite.RFC2345) 1330 0 R (cite.RFC2352) 1332 0 R (cite.RFC2845) 1261 0 R (cite.RFC974) 1248 0 R (cite.id2492151) 1345 0 R (configuration_file_elements) 832 0 R (controls_statement_definition_and_usage) 722 0 R (diagnostic_tools) 659 0 R (dynamic_update) 738 0 R (dynamic_update_policies) 779 0 R (dynamic_update_security) 974 0 R (historical_dns_information) 1225 0 R (id2465952) 643 0 R (id2466044) 619 0 R (id2466730) 623 0 R (id2466739) 624 0 R (id2466914) 639 0 R (id2467034) 618 0 R (id2467398) 641 0 R (id2467418) 642 0 R (id2467436) 996 0 R (id2467452) 997 0 R (id2467554) 999 0 R (id2467742) 646 0 R (id2467817) 653 0 R (id2467840) 656 0 R (id2467861) 657 0 R (id2467880) 658 0 R (id2467977) 664 0 R (id2468009) 665 0 R (id2468035) 666 0 R (id2468135) 672 0 R (id2468160) 673 0 R (id2468170) 674 0 R (id2468184) 675 0 R (id2468193) 681 0 R (id2468224) 688 0 R (id2468240) 689 0 R (id2468330) 694 0 R (id2468346) 695 0 R (id2468613) 698 0 R (id2468618) 699 0 R (id2469880) 727 0 R (id2469892) 728 0 R (id2470305) 749 0 R (id2470322) 750 0 R (id2470869) 766 0 R (id2470885) 767 0 R (id2470919) 768 0 R (id2470935) 774 0 R (id2470944) 775 0 R (id2470983) 776 0 R (id2471035) 777 0 R (id2471147) 784 0 R (id2471161) 785 0 R (id2471210) 786 0 R (id2471413) 792 0 R (id2471480) 793 0 R (id2471623) 794 0 R (id2471692) 810 0 R (id2471819) 812 0 R (id2471840) 813 0 R (id2471940) 820 0 R (id2472078) 833 0 R (id2472779) 841 0 R (id2472806) 842 0 R (id2472968) 847 0 R (id2472983) 848 0 R (id2473012) 849 0 R (id2473089) 856 0 R (id2473658) 862 0 R (id2473700) 864 0 R (id2473827) 866 0 R (id2474104) 874 0 R (id2474121) 875 0 R (id2474144) 876 0 R (id2474167) 877 0 R (id2474238) 886 0 R (id2474433) 887 0 R (id2474553) 888 0 R (id2475111) 903 0 R (id2475571) 909 0 R (id2475643) 910 0 R (id2475774) 918 0 R (id2475818) 919 0 R (id2475833) 920 0 R (id2477449) 940 0 R (id2478728) 962 0 R (id2478778) 964 0 R (id2478957) 973 0 R (id2479114) 979 0 R (id2482003) 1005 0 R (id2482477) 1019 0 R (id2482944) 1033 0 R (id2483640) 1048 0 R (id2483690) 1049 0 R (id2483774) 1055 0 R (id2484992) 1068 0 R (id2484998) 1069 0 R (id2485002) 1070 0 R (id2485236) 1077 0 R (id2485403) 1078 0 R (id2486371) 1115 0 R (id2486530) 1117 0 R (id2486548) 1118 0 R (id2486569) 1121 0 R (id2486777) 1127 0 R (id2487428) 1133 0 R (id2487537) 1135 0 R (id2487558) 1141 0 R (id2487915) 1143 0 R (id2488030) 1145 0 R (id2488049) 1146 0 R (id2488354) 1153 0 R (id2488528) 1155 0 R (id2488541) 1156 0 R (id2488633) 1158 0 R (id2488652) 1159 0 R (id2488708) 1167 0 R (id2488771) 1168 0 R (id2488802) 1169 0 R (id2488862) 1174 0 R (id2489260) 1196 0 R (id2489336) 1197 0 R (id2489394) 1198 0 R (id2489601) 1204 0 R (id2489606) 1205 0 R (id2489618) 1206 0 R (id2489635) 1207 0 R (id2489833) 1219 0 R (id2489838) 1220 0 R (id2489972) 1226 0 R (id2490352) 1228 0 R (id2490628) 1240 0 R (id2490630) 1242 0 R (id2490638) 1247 0 R (id2490730) 1243 0 R (id2490754) 1245 0 R (id2490791) 1256 0 R (id2490817) 1258 0 R (id2490842) 1250 0 R (id2490867) 1252 0 R (id2490890) 1254 0 R (id2490946) 1260 0 R (id2491006) 1263 0 R (id2491021) 1264 0 R (id2491060) 1266 0 R (id2491099) 1268 0 R (id2491127) 1271 0 R (id2491136) 1272 0 R (id2491161) 1274 0 R (id2491228) 1276 0 R (id2491265) 1284 0 R (id2491270) 1285 0 R (id2491328) 1287 0 R (id2491365) 1295 0 R (id2491400) 1289 0 R (id2491454) 1291 0 R (id2491494) 1293 0 R (id2491521) 1297 0 R (id2491547) 1300 0 R (id2491555) 1301 0 R (id2491580) 1303 0 R (id2491604) 1305 0 R (id2491625) 1307 0 R (id2491740) 1310 0 R (id2491748) 1311 0 R (id2491773) 1313 0 R (id2491800) 1315 0 R (id2491836) 1317 0 R (id2491876) 1320 0 R (id2491896) 1321 0 R (id2491918) 1323 0 R (id2491943) 1325 0 R (id2491968) 1327 0 R (id2491990) 1329 0 R (id2492036) 1331 0 R (id2492060) 1334 0 R (id2492067) 1335 0 R (id2492139) 1342 0 R (id2492149) 1344 0 R (id2492151) 1346 0 R (incremental_zone_transfers) 746 0 R (internet_drafts) 1341 0 R (ipv6addresses) 814 0 R (journal) 739 0 R (lwresd) 821 0 R (notify) 735 0 R (options) 929 0 R (page.1) 597 0 R (page.10) 693 0 R (page.11) 704 0 R (page.12) 712 0 R (page.13) 719 0 R (page.14) 726 0 R (page.15) 733 0 R (page.16) 745 0 R (page.17) 755 0 R (page.18) 760 0 R (page.19) 764 0 R (page.2) 609 0 R (page.20) 773 0 R (page.21) 783 0 R (page.22) 791 0 R (page.23) 799 0 R (page.24) 809 0 R (page.25) 818 0 R (page.26) 826 0 R (page.27) 830 0 R (page.28) 840 0 R (page.29) 846 0 R (page.3) 616 0 R (page.30) 854 0 R (page.31) 861 0 R (page.32) 871 0 R (page.33) 885 0 R (page.34) 892 0 R (page.35) 896 0 R (page.36) 902 0 R (page.37) 908 0 R (page.38) 917 0 R (page.39) 924 0 R (page.4) 635 0 R (page.40) 928 0 R (page.41) 933 0 R (page.42) 939 0 R (page.43) 945 0 R (page.44) 955 0 R (page.45) 961 0 R (page.46) 969 0 R (page.47) 978 0 R (page.48) 986 0 R (page.49) 990 0 R (page.5) 652 0 R (page.50) 995 0 R (page.51) 1004 0 R (page.52) 1009 0 R (page.53) 1017 0 R (page.54) 1024 0 R (page.55) 1030 0 R (page.56) 1040 0 R (page.57) 1045 0 R (page.58) 1054 0 R (page.59) 1059 0 R (page.6) 663 0 R (page.60) 1063 0 R (page.61) 1067 0 R (page.62) 1076 0 R (page.63) 1088 0 R (page.64) 1098 0 R (page.65) 1114 0 R (page.66) 1126 0 R (page.67) 1132 0 R (page.68) 1140 0 R (page.69) 1151 0 R (page.7) 670 0 R (page.70) 1163 0 R (page.71) 1173 0 R (page.72) 1179 0 R (page.73) 1183 0 R (page.74) 1192 0 R (page.75) 1202 0 R (page.76) 1213 0 R (page.77) 1217 0 R (page.78) 1224 0 R (page.79) 1233 0 R (page.8) 680 0 R (page.80) 1282 0 R (page.81) 1340 0 R (page.9) 685 0 R (proposed_standards) 751 0 R (rfcs) 648 0 R (rndc) 881 0 R (rrset_ordering) 700 0 R (sample_configuration) 687 0 R (section*.1) 1239 0 R (section*.10) 1333 0 R (section*.11) 1343 0 R (section*.2) 1241 0 R (section*.3) 1249 0 R (section*.4) 1262 0 R (section*.5) 1270 0 R (section*.6) 1283 0 R (section*.7) 1299 0 R (section*.8) 1309 0 R (section*.9) 1319 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 466 0 R (section.7.1) 518 0 R (section.7.2) 522 0 R (section.7.3) 534 0 R (section.8.1) 542 0 R (section.8.2) 550 0 R (section.8.3) 554 0 R (section.A.1) 562 0 R (section.A.2) 570 0 R (section.A.3) 578 0 R (server_statement_definition_and_usage) 951 0 R (server_statement_grammar) 1041 0 R (statsfile) 935 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 418 0 R (subsection.6.2.18) 422 0 R (subsection.6.2.19) 426 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 430 0 R (subsection.6.2.21) 434 0 R (subsection.6.2.22) 438 0 R (subsection.6.2.23) 442 0 R (subsection.6.2.24) 446 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 470 0 R (subsection.6.3.2) 482 0 R (subsection.6.3.3) 486 0 R (subsection.6.3.4) 490 0 R (subsection.6.3.5) 494 0 R (subsection.6.3.6) 510 0 R (subsection.7.2.1) 526 0 R (subsection.7.2.2) 530 0 R (subsection.8.1.1) 546 0 R (subsection.A.1.1) 566 0 R (subsection.A.2.1) 574 0 R (subsection.A.3.1) 582 0 R (subsection.A.3.2) 586 0 R (subsection.A.3.3) 590 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 450 0 R (subsubsection.6.2.24.2) 454 0 R (subsubsection.6.2.24.3) 458 0 R (subsubsection.6.2.24.4) 462 0 R (subsubsection.6.3.1.1) 474 0 R (subsubsection.6.3.1.2) 478 0 R (subsubsection.6.3.5.1) 498 0 R (subsubsection.6.3.5.2) 502 0 R (subsubsection.6.3.5.3) 506 0 R (table.1.1) 625 0 R (table.1.2) 640 0 R (table.3.1) 696 0 R (table.3.2) 729 0 R (table.6.1) 834 0 R (table.6.10) 1122 0 R (table.6.11) 1128 0 R (table.6.12) 1134 0 R (table.6.13) 1142 0 R (table.6.14) 1144 0 R (table.6.15) 1147 0 R (table.6.16) 1154 0 R (table.6.17) 1157 0 R (table.6.18) 1175 0 R (table.6.2) 857 0 R (table.6.3) 865 0 R (table.6.4) 904 0 R (table.6.5) 941 0 R (table.6.6) 1020 0 R (table.6.7) 1034 0 R (table.6.8) 1071 0 R (table.6.9) 1116 0 R (table.A.1) 1227 0 R (table.A.2) 1229 0 R (the_category_phrase) 898 0 R (the_sortlist_statement) 1011 0 R (topology) 1010 0 R (tsig) 765 0 R (tuning) 1025 0 R (types_of_resource_records_and_when_to_use_them) 647 0 R (view_statement_grammar) 1036 0 R (zone_statement_grammar) 965 0 R (zone_transfers) 741 0 R]
+/Names [(Access_Control_Lists) 1185 0 R (Bv9ARM.ch01) 617 0 R (Bv9ARM.ch02) 671 0 R (Bv9ARM.ch03) 686 0 R (Bv9ARM.ch04) 734 0 R (Bv9ARM.ch05) 819 0 R (Bv9ARM.ch06) 831 0 R (Bv9ARM.ch07) 1184 0 R (Bv9ARM.ch08) 1203 0 R (Bv9ARM.ch09) 1218 0 R (Configuration_File_Grammar) 855 0 R (DNSSEC) 787 0 R (Doc-Start) 598 0 R (Setting_TTLs) 1152 0 R (access_control) 970 0 R (acl) 863 0 R (address_match_lists) 836 0 R (admin_tools) 708 0 R (appendix.A) 558 0 R (bibliography) 1234 0 R (boolean_options) 740 0 R (builtin) 1031 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 230 0 R (chapter.6) 242 0 R (chapter.7) 514 0 R (chapter.8) 538 0 R (cite.RFC1034) 1244 0 R (cite.RFC1035) 1246 0 R (cite.RFC1101) 1302 0 R (cite.RFC1123) 1304 0 R (cite.RFC1183) 1286 0 R (cite.RFC1464) 1322 0 R (cite.RFC1535) 1273 0 R (cite.RFC1536) 1275 0 R (cite.RFC1537) 1312 0 R (cite.RFC1591) 1306 0 R (cite.RFC1706) 1288 0 R (cite.RFC1712) 1336 0 R (cite.RFC1713) 1324 0 R (cite.RFC1794) 1326 0 R (cite.RFC1876) 1290 0 R (cite.RFC1886) 1265 0 R (cite.RFC1912) 1314 0 R (cite.RFC1982) 1277 0 R (cite.RFC1995) 1251 0 R (cite.RFC1996) 1253 0 R (cite.RFC2010) 1316 0 R (cite.RFC2052) 1292 0 R (cite.RFC2065) 1267 0 R (cite.RFC2136) 1255 0 R (cite.RFC2137) 1269 0 R (cite.RFC2163) 1294 0 R (cite.RFC2168) 1296 0 R (cite.RFC2181) 1257 0 R (cite.RFC2219) 1318 0 R (cite.RFC2230) 1298 0 R (cite.RFC2240) 1328 0 R (cite.RFC2308) 1259 0 R (cite.RFC2317) 1308 0 R (cite.RFC2345) 1330 0 R (cite.RFC2352) 1332 0 R (cite.RFC2845) 1261 0 R (cite.RFC974) 1248 0 R (cite.id2492088) 1345 0 R (configuration_file_elements) 832 0 R (controls_statement_definition_and_usage) 722 0 R (diagnostic_tools) 659 0 R (dynamic_update) 738 0 R (dynamic_update_policies) 779 0 R (dynamic_update_security) 974 0 R (historical_dns_information) 1225 0 R (id2465952) 643 0 R (id2466044) 619 0 R (id2466730) 623 0 R (id2466739) 624 0 R (id2466914) 639 0 R (id2467034) 618 0 R (id2467398) 641 0 R (id2467418) 642 0 R (id2467442) 996 0 R (id2467458) 997 0 R (id2467559) 999 0 R (id2467742) 646 0 R (id2467817) 653 0 R (id2467840) 656 0 R (id2467861) 657 0 R (id2467880) 658 0 R (id2467977) 664 0 R (id2468009) 665 0 R (id2468035) 666 0 R (id2468135) 672 0 R (id2468160) 673 0 R (id2468170) 674 0 R (id2468184) 675 0 R (id2468193) 681 0 R (id2468224) 688 0 R (id2468240) 689 0 R (id2468330) 694 0 R (id2468346) 695 0 R (id2468613) 698 0 R (id2468618) 699 0 R (id2469880) 727 0 R (id2469892) 728 0 R (id2470305) 749 0 R (id2470322) 750 0 R (id2470869) 766 0 R (id2470885) 767 0 R (id2470919) 768 0 R (id2470935) 774 0 R (id2470944) 775 0 R (id2470983) 776 0 R (id2471035) 777 0 R (id2471147) 784 0 R (id2471161) 785 0 R (id2471210) 786 0 R (id2471413) 792 0 R (id2471480) 793 0 R (id2471623) 794 0 R (id2471692) 810 0 R (id2471819) 812 0 R (id2471840) 813 0 R (id2471940) 820 0 R (id2472078) 833 0 R (id2472779) 841 0 R (id2472806) 842 0 R (id2472968) 847 0 R (id2472983) 848 0 R (id2473012) 849 0 R (id2473089) 856 0 R (id2473658) 862 0 R (id2473700) 864 0 R (id2473827) 866 0 R (id2474104) 874 0 R (id2474121) 875 0 R (id2474144) 876 0 R (id2474167) 877 0 R (id2474238) 886 0 R (id2474433) 887 0 R (id2474553) 888 0 R (id2475111) 903 0 R (id2475571) 909 0 R (id2475643) 910 0 R (id2475774) 918 0 R (id2475818) 919 0 R (id2475833) 920 0 R (id2477449) 940 0 R (id2478728) 962 0 R (id2478778) 964 0 R (id2478957) 973 0 R (id2479114) 979 0 R (id2482008) 1005 0 R (id2482414) 1019 0 R (id2482881) 1033 0 R (id2483577) 1048 0 R (id2483627) 1049 0 R (id2483712) 1055 0 R (id2484997) 1068 0 R (id2485003) 1069 0 R (id2485008) 1070 0 R (id2485309) 1077 0 R (id2485477) 1078 0 R (id2486444) 1115 0 R (id2486603) 1117 0 R (id2486621) 1118 0 R (id2486643) 1121 0 R (id2486782) 1127 0 R (id2487433) 1133 0 R (id2487542) 1135 0 R (id2487563) 1141 0 R (id2487921) 1143 0 R (id2488036) 1145 0 R (id2488054) 1146 0 R (id2488359) 1153 0 R (id2488465) 1155 0 R (id2488478) 1156 0 R (id2488570) 1158 0 R (id2488589) 1159 0 R (id2488645) 1167 0 R (id2488708) 1168 0 R (id2488739) 1169 0 R (id2488800) 1174 0 R (id2489197) 1196 0 R (id2489410) 1197 0 R (id2489467) 1198 0 R (id2489606) 1204 0 R (id2489611) 1205 0 R (id2489623) 1206 0 R (id2489640) 1207 0 R (id2489702) 1219 0 R (id2489707) 1220 0 R (id2490045) 1226 0 R (id2490357) 1228 0 R (id2490633) 1240 0 R (id2490635) 1242 0 R (id2490644) 1247 0 R (id2490667) 1243 0 R (id2490691) 1245 0 R (id2490728) 1256 0 R (id2490754) 1258 0 R (id2490779) 1250 0 R (id2490804) 1252 0 R (id2490827) 1254 0 R (id2490883) 1260 0 R (id2490944) 1263 0 R (id2490958) 1264 0 R (id2490997) 1266 0 R (id2491036) 1268 0 R (id2491064) 1271 0 R (id2491073) 1272 0 R (id2491098) 1274 0 R (id2491165) 1276 0 R (id2491202) 1284 0 R (id2491207) 1285 0 R (id2491265) 1287 0 R (id2491302) 1295 0 R (id2491337) 1289 0 R (id2491392) 1291 0 R (id2491431) 1293 0 R (id2491458) 1297 0 R (id2491484) 1300 0 R (id2491492) 1301 0 R (id2491517) 1303 0 R (id2491541) 1305 0 R (id2491562) 1307 0 R (id2491677) 1310 0 R (id2491685) 1311 0 R (id2491710) 1313 0 R (id2491737) 1315 0 R (id2491773) 1317 0 R (id2491813) 1320 0 R (id2491833) 1321 0 R (id2491856) 1323 0 R (id2491880) 1325 0 R (id2491905) 1327 0 R (id2491927) 1329 0 R (id2491973) 1331 0 R (id2491997) 1334 0 R (id2492004) 1335 0 R (id2492076) 1342 0 R (id2492086) 1344 0 R (id2492088) 1346 0 R (incremental_zone_transfers) 746 0 R (internet_drafts) 1341 0 R (ipv6addresses) 814 0 R (journal) 739 0 R (lwresd) 821 0 R (notify) 735 0 R (options) 929 0 R (page.1) 597 0 R (page.10) 693 0 R (page.11) 704 0 R (page.12) 712 0 R (page.13) 719 0 R (page.14) 726 0 R (page.15) 733 0 R (page.16) 745 0 R (page.17) 755 0 R (page.18) 760 0 R (page.19) 764 0 R (page.2) 609 0 R (page.20) 773 0 R (page.21) 783 0 R (page.22) 791 0 R (page.23) 799 0 R (page.24) 809 0 R (page.25) 818 0 R (page.26) 826 0 R (page.27) 830 0 R (page.28) 840 0 R (page.29) 846 0 R (page.3) 616 0 R (page.30) 854 0 R (page.31) 861 0 R (page.32) 871 0 R (page.33) 885 0 R (page.34) 892 0 R (page.35) 896 0 R (page.36) 902 0 R (page.37) 908 0 R (page.38) 917 0 R (page.39) 924 0 R (page.4) 635 0 R (page.40) 928 0 R (page.41) 933 0 R (page.42) 939 0 R (page.43) 945 0 R (page.44) 955 0 R (page.45) 961 0 R (page.46) 969 0 R (page.47) 978 0 R (page.48) 986 0 R (page.49) 990 0 R (page.5) 652 0 R (page.50) 995 0 R (page.51) 1003 0 R (page.52) 1009 0 R (page.53) 1017 0 R (page.54) 1024 0 R (page.55) 1030 0 R (page.56) 1040 0 R (page.57) 1045 0 R (page.58) 1054 0 R (page.59) 1059 0 R (page.6) 663 0 R (page.60) 1063 0 R (page.61) 1067 0 R (page.62) 1076 0 R (page.63) 1088 0 R (page.64) 1098 0 R (page.65) 1114 0 R (page.66) 1126 0 R (page.67) 1132 0 R (page.68) 1140 0 R (page.69) 1151 0 R (page.7) 670 0 R (page.70) 1163 0 R (page.71) 1173 0 R (page.72) 1179 0 R (page.73) 1183 0 R (page.74) 1192 0 R (page.75) 1202 0 R (page.76) 1213 0 R (page.77) 1217 0 R (page.78) 1224 0 R (page.79) 1233 0 R (page.8) 680 0 R (page.80) 1282 0 R (page.81) 1340 0 R (page.9) 685 0 R (proposed_standards) 751 0 R (rfcs) 648 0 R (rndc) 881 0 R (rrset_ordering) 700 0 R (sample_configuration) 687 0 R (section*.1) 1239 0 R (section*.10) 1333 0 R (section*.11) 1343 0 R (section*.2) 1241 0 R (section*.3) 1249 0 R (section*.4) 1262 0 R (section*.5) 1270 0 R (section*.6) 1283 0 R (section*.7) 1299 0 R (section*.8) 1309 0 R (section*.9) 1319 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 234 0 R (section.5.2) 238 0 R (section.6.1) 246 0 R (section.6.2) 274 0 R (section.6.3) 466 0 R (section.7.1) 518 0 R (section.7.2) 522 0 R (section.7.3) 534 0 R (section.8.1) 542 0 R (section.8.2) 550 0 R (section.8.3) 554 0 R (section.A.1) 562 0 R (section.A.2) 570 0 R (section.A.3) 578 0 R (server_statement_definition_and_usage) 951 0 R (server_statement_grammar) 1041 0 R (statsfile) 935 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.2) 226 0 R (subsection.6.1.1) 250 0 R (subsection.6.1.2) 262 0 R (subsection.6.2.1) 278 0 R (subsection.6.2.10) 314 0 R (subsection.6.2.11) 326 0 R (subsection.6.2.12) 330 0 R (subsection.6.2.13) 334 0 R (subsection.6.2.14) 338 0 R (subsection.6.2.15) 342 0 R (subsection.6.2.16) 346 0 R (subsection.6.2.17) 418 0 R (subsection.6.2.18) 422 0 R (subsection.6.2.19) 426 0 R (subsection.6.2.2) 282 0 R (subsection.6.2.20) 430 0 R (subsection.6.2.21) 434 0 R (subsection.6.2.22) 438 0 R (subsection.6.2.23) 442 0 R (subsection.6.2.24) 446 0 R (subsection.6.2.3) 286 0 R (subsection.6.2.4) 290 0 R (subsection.6.2.5) 294 0 R (subsection.6.2.6) 298 0 R (subsection.6.2.7) 302 0 R (subsection.6.2.8) 306 0 R (subsection.6.2.9) 310 0 R (subsection.6.3.1) 470 0 R (subsection.6.3.2) 482 0 R (subsection.6.3.3) 486 0 R (subsection.6.3.4) 490 0 R (subsection.6.3.5) 494 0 R (subsection.6.3.6) 510 0 R (subsection.7.2.1) 526 0 R (subsection.7.2.2) 530 0 R (subsection.8.1.1) 546 0 R (subsection.A.1.1) 566 0 R (subsection.A.2.1) 574 0 R (subsection.A.3.1) 582 0 R (subsection.A.3.2) 586 0 R (subsection.A.3.3) 590 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 254 0 R (subsubsection.6.1.1.2) 258 0 R (subsubsection.6.1.2.1) 266 0 R (subsubsection.6.1.2.2) 270 0 R (subsubsection.6.2.10.1) 318 0 R (subsubsection.6.2.10.2) 322 0 R (subsubsection.6.2.16.1) 350 0 R (subsubsection.6.2.16.10) 386 0 R (subsubsection.6.2.16.11) 390 0 R (subsubsection.6.2.16.12) 394 0 R (subsubsection.6.2.16.13) 398 0 R (subsubsection.6.2.16.14) 402 0 R (subsubsection.6.2.16.15) 406 0 R (subsubsection.6.2.16.16) 410 0 R (subsubsection.6.2.16.17) 414 0 R (subsubsection.6.2.16.2) 354 0 R (subsubsection.6.2.16.3) 358 0 R (subsubsection.6.2.16.4) 362 0 R (subsubsection.6.2.16.5) 366 0 R (subsubsection.6.2.16.6) 370 0 R (subsubsection.6.2.16.7) 374 0 R (subsubsection.6.2.16.8) 378 0 R (subsubsection.6.2.16.9) 382 0 R (subsubsection.6.2.24.1) 450 0 R (subsubsection.6.2.24.2) 454 0 R (subsubsection.6.2.24.3) 458 0 R (subsubsection.6.2.24.4) 462 0 R (subsubsection.6.3.1.1) 474 0 R (subsubsection.6.3.1.2) 478 0 R (subsubsection.6.3.5.1) 498 0 R (subsubsection.6.3.5.2) 502 0 R (subsubsection.6.3.5.3) 506 0 R (table.1.1) 625 0 R (table.1.2) 640 0 R (table.3.1) 696 0 R (table.3.2) 729 0 R (table.6.1) 834 0 R (table.6.10) 1122 0 R (table.6.11) 1128 0 R (table.6.12) 1134 0 R (table.6.13) 1142 0 R (table.6.14) 1144 0 R (table.6.15) 1147 0 R (table.6.16) 1154 0 R (table.6.17) 1157 0 R (table.6.18) 1175 0 R (table.6.2) 857 0 R (table.6.3) 865 0 R (table.6.4) 904 0 R (table.6.5) 941 0 R (table.6.6) 1020 0 R (table.6.7) 1034 0 R (table.6.8) 1071 0 R (table.6.9) 1116 0 R (table.A.1) 1227 0 R (table.A.2) 1229 0 R (the_category_phrase) 898 0 R (the_sortlist_statement) 1011 0 R (topology) 1010 0 R (tsig) 765 0 R (tuning) 1025 0 R (types_of_resource_records_and_when_to_use_them) 647 0 R (view_statement_grammar) 1036 0 R (zone_statement_grammar) 965 0 R (zone_transfers) 741 0 R]
/Limits [(Access_Control_Lists) (zone_transfers)]
>> endobj
1369 0 obj <<
@@ -7650,7 +7630,7 @@ endobj
>> endobj
1372 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20080403035022Z)
+/CreationDate (D:20080527222349Z)
/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
>> endobj
xref
@@ -7662,591 +7642,591 @@ xref
0000000000 00000 f
0000000009 00000 n
0000018969 00000 n
-0000491464 00000 n
+0000491721 00000 n
0000000054 00000 n
0000000086 00000 n
0000019093 00000 n
-0000491392 00000 n
+0000491649 00000 n
0000000133 00000 n
0000000173 00000 n
0000019218 00000 n
-0000491306 00000 n
+0000491563 00000 n
0000000221 00000 n
0000000273 00000 n
0000019343 00000 n
-0000491220 00000 n
+0000491477 00000 n
0000000321 00000 n
0000000377 00000 n
0000023633 00000 n
-0000491110 00000 n
+0000491367 00000 n
0000000425 00000 n
0000000478 00000 n
0000023758 00000 n
-0000491036 00000 n
+0000491293 00000 n
0000000531 00000 n
0000000572 00000 n
0000023883 00000 n
-0000490949 00000 n
+0000491206 00000 n
0000000625 00000 n
0000000674 00000 n
0000024008 00000 n
-0000490862 00000 n
+0000491119 00000 n
0000000727 00000 n
0000000757 00000 n
0000028318 00000 n
-0000490738 00000 n
+0000490995 00000 n
0000000810 00000 n
0000000861 00000 n
0000028443 00000 n
-0000490664 00000 n
+0000490921 00000 n
0000000919 00000 n
0000000964 00000 n
0000028568 00000 n
-0000490577 00000 n
+0000490834 00000 n
0000001022 00000 n
0000001062 00000 n
0000028693 00000 n
-0000490503 00000 n
+0000490760 00000 n
0000001120 00000 n
0000001162 00000 n
0000031606 00000 n
-0000490379 00000 n
+0000490636 00000 n
0000001215 00000 n
0000001260 00000 n
0000031731 00000 n
-0000490318 00000 n
+0000490575 00000 n
0000001318 00000 n
0000001355 00000 n
0000031856 00000 n
-0000490244 00000 n
+0000490501 00000 n
0000001408 00000 n
0000001463 00000 n
0000034244 00000 n
-0000490119 00000 n
+0000490376 00000 n
0000001509 00000 n
0000001556 00000 n
0000034369 00000 n
-0000490045 00000 n
+0000490302 00000 n
0000001604 00000 n
0000001648 00000 n
0000034494 00000 n
-0000489958 00000 n
+0000490215 00000 n
0000001696 00000 n
0000001735 00000 n
0000034617 00000 n
-0000489871 00000 n
+0000490128 00000 n
0000001783 00000 n
0000001825 00000 n
0000034741 00000 n
-0000489784 00000 n
+0000490041 00000 n
0000001873 00000 n
0000001936 00000 n
0000035777 00000 n
-0000489710 00000 n
+0000489967 00000 n
0000001984 00000 n
0000002034 00000 n
0000037455 00000 n
-0000489582 00000 n
+0000489839 00000 n
0000002080 00000 n
0000002126 00000 n
0000037579 00000 n
-0000489469 00000 n
+0000489726 00000 n
0000002174 00000 n
0000002218 00000 n
0000037704 00000 n
-0000489393 00000 n
+0000489650 00000 n
0000002271 00000 n
0000002323 00000 n
0000037829 00000 n
-0000489316 00000 n
+0000489573 00000 n
0000002377 00000 n
0000002436 00000 n
0000040461 00000 n
-0000489225 00000 n
+0000489482 00000 n
0000002485 00000 n
0000002523 00000 n
0000040712 00000 n
-0000489108 00000 n
+0000489365 00000 n
0000002572 00000 n
0000002618 00000 n
0000040838 00000 n
-0000488990 00000 n
+0000489247 00000 n
0000002672 00000 n
0000002739 00000 n
0000044023 00000 n
-0000488911 00000 n
+0000489168 00000 n
0000002798 00000 n
0000002842 00000 n
0000044149 00000 n
-0000488832 00000 n
+0000489089 00000 n
0000002901 00000 n
0000002949 00000 n
0000054288 00000 n
-0000488753 00000 n
+0000489010 00000 n
0000003003 00000 n
0000003036 00000 n
0000057561 00000 n
-0000488621 00000 n
+0000488878 00000 n
0000003083 00000 n
0000003126 00000 n
0000057687 00000 n
-0000488542 00000 n
+0000488799 00000 n
0000003175 00000 n
0000003205 00000 n
0000057813 00000 n
-0000488410 00000 n
+0000488667 00000 n
0000003254 00000 n
0000003292 00000 n
0000057938 00000 n
-0000488345 00000 n
+0000488602 00000 n
0000003346 00000 n
0000003388 00000 n
0000062257 00000 n
-0000488252 00000 n
+0000488509 00000 n
0000003437 00000 n
0000003496 00000 n
0000062383 00000 n
-0000488120 00000 n
+0000488377 00000 n
0000003545 00000 n
0000003578 00000 n
0000062509 00000 n
-0000488055 00000 n
+0000488312 00000 n
0000003632 00000 n
0000003681 00000 n
0000069370 00000 n
-0000487923 00000 n
+0000488180 00000 n
0000003730 00000 n
0000003758 00000 n
0000069496 00000 n
-0000487805 00000 n
+0000488062 00000 n
0000003812 00000 n
0000003881 00000 n
0000069621 00000 n
-0000487726 00000 n
+0000487983 00000 n
0000003940 00000 n
0000003988 00000 n
0000069747 00000 n
-0000487647 00000 n
+0000487904 00000 n
0000004047 00000 n
0000004092 00000 n
0000072749 00000 n
-0000487554 00000 n
+0000487811 00000 n
0000004146 00000 n
0000004214 00000 n
0000072875 00000 n
-0000487461 00000 n
+0000487718 00000 n
0000004268 00000 n
0000004338 00000 n
0000073001 00000 n
-0000487368 00000 n
+0000487625 00000 n
0000004392 00000 n
0000004455 00000 n
0000073127 00000 n
-0000487275 00000 n
+0000487532 00000 n
0000004509 00000 n
0000004564 00000 n
0000076860 00000 n
-0000487196 00000 n
+0000487453 00000 n
0000004618 00000 n
0000004650 00000 n
0000076986 00000 n
-0000487103 00000 n
+0000487360 00000 n
0000004699 00000 n
0000004727 00000 n
0000077111 00000 n
-0000487010 00000 n
+0000487267 00000 n
0000004776 00000 n
0000004808 00000 n
0000077237 00000 n
-0000486878 00000 n
+0000487135 00000 n
0000004857 00000 n
0000004887 00000 n
0000080688 00000 n
-0000486799 00000 n
+0000487056 00000 n
0000004941 00000 n
0000004982 00000 n
0000080813 00000 n
-0000486706 00000 n
+0000486963 00000 n
0000005036 00000 n
0000005078 00000 n
0000080939 00000 n
-0000486627 00000 n
+0000486884 00000 n
0000005132 00000 n
0000005177 00000 n
0000088379 00000 n
-0000486509 00000 n
+0000486766 00000 n
0000005226 00000 n
0000005272 00000 n
0000088505 00000 n
-0000486430 00000 n
+0000486687 00000 n
0000005326 00000 n
0000005386 00000 n
0000088631 00000 n
-0000486351 00000 n
+0000486608 00000 n
0000005440 00000 n
0000005509 00000 n
0000091066 00000 n
-0000486218 00000 n
+0000486475 00000 n
0000005556 00000 n
0000005609 00000 n
0000091192 00000 n
-0000486139 00000 n
+0000486396 00000 n
0000005658 00000 n
0000005714 00000 n
0000091318 00000 n
-0000486060 00000 n
+0000486317 00000 n
0000005763 00000 n
0000005812 00000 n
0000095439 00000 n
-0000485927 00000 n
+0000486184 00000 n
0000005859 00000 n
0000005911 00000 n
0000095565 00000 n
-0000485809 00000 n
+0000486066 00000 n
0000005960 00000 n
0000006011 00000 n
0000099709 00000 n
-0000485691 00000 n
+0000485948 00000 n
0000006065 00000 n
0000006110 00000 n
0000099834 00000 n
-0000485612 00000 n
+0000485869 00000 n
0000006169 00000 n
0000006203 00000 n
0000099959 00000 n
-0000485533 00000 n
+0000485790 00000 n
0000006262 00000 n
0000006310 00000 n
0000103241 00000 n
-0000485415 00000 n
+0000485672 00000 n
0000006364 00000 n
0000006404 00000 n
0000103367 00000 n
-0000485336 00000 n
+0000485593 00000 n
0000006463 00000 n
0000006497 00000 n
0000103493 00000 n
-0000485257 00000 n
+0000485514 00000 n
0000006556 00000 n
0000006604 00000 n
0000107219 00000 n
-0000485124 00000 n
+0000485381 00000 n
0000006653 00000 n
0000006703 00000 n
0000111057 00000 n
-0000485045 00000 n
+0000485302 00000 n
0000006757 00000 n
0000006804 00000 n
0000111183 00000 n
-0000484952 00000 n
+0000485209 00000 n
0000006858 00000 n
0000006918 00000 n
0000111433 00000 n
-0000484859 00000 n
+0000485116 00000 n
0000006972 00000 n
0000007024 00000 n
0000111559 00000 n
-0000484766 00000 n
+0000485023 00000 n
0000007078 00000 n
0000007143 00000 n
0000116189 00000 n
-0000484673 00000 n
+0000484930 00000 n
0000007197 00000 n
0000007248 00000 n
0000116315 00000 n
-0000484580 00000 n
+0000484837 00000 n
0000007302 00000 n
0000007366 00000 n
0000116441 00000 n
-0000484487 00000 n
+0000484744 00000 n
0000007420 00000 n
0000007467 00000 n
0000116567 00000 n
-0000484394 00000 n
+0000484651 00000 n
0000007521 00000 n
0000007581 00000 n
0000119509 00000 n
-0000484301 00000 n
+0000484558 00000 n
0000007635 00000 n
0000007686 00000 n
0000119635 00000 n
-0000484169 00000 n
+0000484426 00000 n
0000007741 00000 n
0000007806 00000 n
0000119761 00000 n
-0000484090 00000 n
+0000484347 00000 n
0000007866 00000 n
0000007913 00000 n
0000130170 00000 n
-0000484011 00000 n
+0000484268 00000 n
0000007973 00000 n
0000008021 00000 n
0000133886 00000 n
-0000483918 00000 n
+0000484175 00000 n
0000008076 00000 n
0000008126 00000 n
0000134012 00000 n
-0000483825 00000 n
+0000484082 00000 n
0000008181 00000 n
0000008244 00000 n
0000135742 00000 n
-0000483732 00000 n
+0000483989 00000 n
0000008299 00000 n
0000008351 00000 n
0000135868 00000 n
-0000483639 00000 n
+0000483896 00000 n
0000008406 00000 n
0000008471 00000 n
0000135994 00000 n
-0000483546 00000 n
+0000483803 00000 n
0000008526 00000 n
0000008578 00000 n
0000141175 00000 n
-0000483413 00000 n
+0000483670 00000 n
0000008633 00000 n
0000008698 00000 n
0000145209 00000 n
-0000483334 00000 n
+0000483591 00000 n
0000008758 00000 n
0000008802 00000 n
0000162726 00000 n
-0000483241 00000 n
+0000483498 00000 n
0000008862 00000 n
0000008901 00000 n
0000162852 00000 n
-0000483148 00000 n
+0000483405 00000 n
0000008961 00000 n
0000009008 00000 n
0000166993 00000 n
-0000483055 00000 n
+0000483312 00000 n
0000009068 00000 n
0000009111 00000 n
0000167119 00000 n
-0000482962 00000 n
+0000483219 00000 n
0000009171 00000 n
0000009210 00000 n
-0000170214 00000 n
-0000482869 00000 n
+0000170296 00000 n
+0000483126 00000 n
0000009270 00000 n
0000009312 00000 n
-0000173956 00000 n
-0000482776 00000 n
+0000173827 00000 n
+0000483033 00000 n
0000009372 00000 n
0000009415 00000 n
-0000181576 00000 n
-0000482683 00000 n
+0000181413 00000 n
+0000482940 00000 n
0000009475 00000 n
0000009522 00000 n
-0000181702 00000 n
-0000482590 00000 n
+0000181539 00000 n
+0000482847 00000 n
0000009582 00000 n
0000009643 00000 n
-0000181828 00000 n
-0000482497 00000 n
+0000181665 00000 n
+0000482754 00000 n
0000009704 00000 n
0000009756 00000 n
-0000185325 00000 n
-0000482404 00000 n
+0000185582 00000 n
+0000482661 00000 n
0000009817 00000 n
0000009870 00000 n
-0000189658 00000 n
-0000482311 00000 n
+0000189915 00000 n
+0000482568 00000 n
0000009931 00000 n
0000009969 00000 n
-0000189787 00000 n
-0000482218 00000 n
+0000190044 00000 n
+0000482475 00000 n
0000010030 00000 n
0000010082 00000 n
-0000192689 00000 n
-0000482125 00000 n
+0000192946 00000 n
+0000482382 00000 n
0000010143 00000 n
0000010187 00000 n
-0000196435 00000 n
-0000482032 00000 n
+0000196692 00000 n
+0000482289 00000 n
0000010248 00000 n
0000010284 00000 n
-0000200400 00000 n
-0000481939 00000 n
+0000200657 00000 n
+0000482196 00000 n
0000010345 00000 n
0000010408 00000 n
-0000200529 00000 n
-0000481860 00000 n
+0000200786 00000 n
+0000482117 00000 n
0000010469 00000 n
0000010518 00000 n
-0000204050 00000 n
-0000481767 00000 n
+0000204307 00000 n
+0000482024 00000 n
0000010573 00000 n
0000010624 00000 n
-0000204177 00000 n
-0000481674 00000 n
+0000204434 00000 n
+0000481931 00000 n
0000010679 00000 n
0000010743 00000 n
-0000208304 00000 n
-0000481581 00000 n
+0000208561 00000 n
+0000481838 00000 n
0000010798 00000 n
0000010855 00000 n
-0000208431 00000 n
-0000481488 00000 n
+0000208688 00000 n
+0000481745 00000 n
0000010910 00000 n
0000010980 00000 n
-0000208559 00000 n
-0000481395 00000 n
+0000208816 00000 n
+0000481652 00000 n
0000011035 00000 n
0000011084 00000 n
-0000211978 00000 n
-0000481302 00000 n
+0000212235 00000 n
+0000481559 00000 n
0000011139 00000 n
0000011201 00000 n
-0000213555 00000 n
-0000481209 00000 n
+0000213812 00000 n
+0000481466 00000 n
0000011256 00000 n
0000011305 00000 n
-0000218410 00000 n
-0000481091 00000 n
+0000218667 00000 n
+0000481348 00000 n
0000011360 00000 n
0000011422 00000 n
-0000218539 00000 n
-0000481012 00000 n
+0000218796 00000 n
+0000481269 00000 n
0000011482 00000 n
0000011521 00000 n
-0000223490 00000 n
-0000480919 00000 n
+0000223747 00000 n
+0000481176 00000 n
0000011581 00000 n
0000011615 00000 n
-0000223619 00000 n
-0000480826 00000 n
+0000223876 00000 n
+0000481083 00000 n
0000011675 00000 n
0000011716 00000 n
-0000233806 00000 n
-0000480747 00000 n
+0000234063 00000 n
+0000481004 00000 n
0000011776 00000 n
0000011828 00000 n
-0000237977 00000 n
-0000480629 00000 n
+0000238234 00000 n
+0000480886 00000 n
0000011877 00000 n
0000011910 00000 n
-0000238106 00000 n
-0000480511 00000 n
+0000238363 00000 n
+0000480768 00000 n
0000011964 00000 n
0000012036 00000 n
-0000238234 00000 n
-0000480432 00000 n
+0000238491 00000 n
+0000480689 00000 n
0000012095 00000 n
0000012139 00000 n
-0000245968 00000 n
-0000480353 00000 n
+0000246225 00000 n
+0000480610 00000 n
0000012198 00000 n
0000012251 00000 n
-0000249552 00000 n
-0000480260 00000 n
+0000249809 00000 n
+0000480517 00000 n
0000012305 00000 n
0000012355 00000 n
-0000252912 00000 n
-0000480167 00000 n
+0000253169 00000 n
+0000480424 00000 n
0000012409 00000 n
0000012447 00000 n
-0000253170 00000 n
-0000480074 00000 n
+0000253427 00000 n
+0000480331 00000 n
0000012501 00000 n
0000012550 00000 n
-0000253428 00000 n
-0000479942 00000 n
+0000253685 00000 n
+0000480199 00000 n
0000012604 00000 n
0000012656 00000 n
-0000253557 00000 n
-0000479863 00000 n
+0000253814 00000 n
+0000480120 00000 n
0000012715 00000 n
0000012767 00000 n
-0000256438 00000 n
-0000479770 00000 n
+0000256695 00000 n
+0000480027 00000 n
0000012826 00000 n
0000012879 00000 n
-0000256567 00000 n
-0000479691 00000 n
+0000256824 00000 n
+0000479948 00000 n
0000012938 00000 n
0000012987 00000 n
-0000256696 00000 n
-0000479612 00000 n
+0000256953 00000 n
+0000479869 00000 n
0000013041 00000 n
0000013121 00000 n
-0000262565 00000 n
-0000479479 00000 n
+0000262822 00000 n
+0000479736 00000 n
0000013168 00000 n
0000013220 00000 n
-0000262694 00000 n
-0000479400 00000 n
+0000262951 00000 n
+0000479657 00000 n
0000013269 00000 n
0000013313 00000 n
-0000266427 00000 n
-0000479268 00000 n
+0000266684 00000 n
+0000479525 00000 n
0000013362 00000 n
0000013424 00000 n
-0000266556 00000 n
-0000479189 00000 n
+0000266813 00000 n
+0000479446 00000 n
0000013478 00000 n
0000013526 00000 n
-0000266685 00000 n
-0000479110 00000 n
+0000266942 00000 n
+0000479367 00000 n
0000013580 00000 n
0000013631 00000 n
-0000266814 00000 n
-0000479031 00000 n
+0000267071 00000 n
+0000479288 00000 n
0000013680 00000 n
0000013727 00000 n
-0000269731 00000 n
-0000478898 00000 n
+0000269988 00000 n
+0000479155 00000 n
0000013774 00000 n
0000013811 00000 n
-0000269860 00000 n
-0000478780 00000 n
+0000270117 00000 n
+0000479037 00000 n
0000013860 00000 n
0000013899 00000 n
-0000269989 00000 n
-0000478715 00000 n
+0000270246 00000 n
+0000478972 00000 n
0000013953 00000 n
0000014031 00000 n
-0000270118 00000 n
-0000478622 00000 n
+0000270375 00000 n
+0000478879 00000 n
0000014080 00000 n
0000014147 00000 n
-0000270247 00000 n
-0000478543 00000 n
+0000270504 00000 n
+0000478800 00000 n
0000014196 00000 n
0000014241 00000 n
-0000273741 00000 n
-0000478424 00000 n
+0000273998 00000 n
+0000478681 00000 n
0000014289 00000 n
0000014321 00000 n
-0000273870 00000 n
-0000478306 00000 n
+0000274127 00000 n
+0000478563 00000 n
0000014370 00000 n
0000014409 00000 n
-0000273999 00000 n
-0000478241 00000 n
+0000274256 00000 n
+0000478498 00000 n
0000014463 00000 n
0000014524 00000 n
-0000277498 00000 n
-0000478109 00000 n
+0000277755 00000 n
+0000478366 00000 n
0000014573 00000 n
0000014630 00000 n
-0000277627 00000 n
-0000478044 00000 n
+0000277884 00000 n
+0000478301 00000 n
0000014684 00000 n
0000014733 00000 n
-0000281814 00000 n
-0000477926 00000 n
+0000282071 00000 n
+0000478183 00000 n
0000014782 00000 n
0000014844 00000 n
-0000281943 00000 n
-0000477847 00000 n
+0000282200 00000 n
+0000478104 00000 n
0000014898 00000 n
0000014953 00000 n
-0000292558 00000 n
-0000477754 00000 n
+0000292815 00000 n
+0000478011 00000 n
0000015007 00000 n
0000015048 00000 n
-0000292687 00000 n
-0000477675 00000 n
+0000292944 00000 n
+0000477932 00000 n
0000015102 00000 n
0000015154 00000 n
0000015507 00000 n
@@ -8254,20 +8234,20 @@ xref
0000015207 00000 n
0000015629 00000 n
0000015692 00000 n
-0000474516 00000 n
-0000448852 00000 n
-0000474342 00000 n
-0000447664 00000 n
-0000421504 00000 n
-0000447490 00000 n
-0000475521 00000 n
+0000474773 00000 n
+0000449109 00000 n
+0000474599 00000 n
+0000447921 00000 n
+0000421761 00000 n
+0000447747 00000 n
+0000475778 00000 n
0000016419 00000 n
0000016234 00000 n
0000015840 00000 n
0000016356 00000 n
-0000420819 00000 n
-0000418674 00000 n
-0000420655 00000 n
+0000421076 00000 n
+0000418932 00000 n
+0000420912 00000 n
0000019594 00000 n
0000018784 00000 n
0000016504 00000 n
@@ -8275,25 +8255,25 @@ xref
0000019030 00000 n
0000019155 00000 n
0000019280 00000 n
-0000417820 00000 n
-0000397462 00000 n
-0000417646 00000 n
+0000418078 00000 n
+0000397720 00000 n
+0000417904 00000 n
0000019405 00000 n
0000019468 00000 n
0000019531 00000 n
-0000396513 00000 n
-0000376761 00000 n
-0000396340 00000 n
-0000376034 00000 n
-0000359650 00000 n
-0000375861 00000 n
+0000396771 00000 n
+0000377019 00000 n
+0000396598 00000 n
+0000376292 00000 n
+0000359908 00000 n
+0000376119 00000 n
0000024132 00000 n
0000022950 00000 n
0000019718 00000 n
0000023444 00000 n
-0000359115 00000 n
-0000342198 00000 n
-0000358931 00000 n
+0000359373 00000 n
+0000342456 00000 n
+0000359189 00000 n
0000023507 00000 n
0000023570 00000 n
0000023695 00000 n
@@ -8302,8 +8282,8 @@ xref
0000023100 00000 n
0000023293 00000 n
0000024070 00000 n
-0000238170 00000 n
-0000282007 00000 n
+0000238427 00000 n
+0000282264 00000 n
0000028818 00000 n
0000027783 00000 n
0000024256 00000 n
@@ -8331,7 +8311,7 @@ xref
0000034556 00000 n
0000034678 00000 n
0000034803 00000 n
-0000475639 00000 n
+0000475896 00000 n
0000035902 00000 n
0000035592 00000 n
0000034951 00000 n
@@ -8355,28 +8335,28 @@ xref
0000040239 00000 n
0000040775 00000 n
0000040901 00000 n
-0000192753 00000 n
+0000193010 00000 n
0000044275 00000 n
0000043838 00000 n
0000041075 00000 n
0000043960 00000 n
-0000341671 00000 n
-0000332362 00000 n
-0000341494 00000 n
+0000341929 00000 n
+0000332620 00000 n
+0000341752 00000 n
0000044212 00000 n
0000047975 00000 n
0000047790 00000 n
0000044399 00000 n
0000047912 00000 n
-0000331919 00000 n
-0000325120 00000 n
-0000331742 00000 n
+0000332177 00000 n
+0000325378 00000 n
+0000332000 00000 n
0000052340 00000 n
0000051949 00000 n
0000048138 00000 n
0000052277 00000 n
0000052091 00000 n
-0000475757 00000 n
+0000476014 00000 n
0000111622 00000 n
0000054540 00000 n
0000054103 00000 n
@@ -8396,7 +8376,7 @@ xref
0000057875 00000 n
0000058001 00000 n
0000145272 00000 n
-0000174019 00000 n
+0000173890 00000 n
0000062635 00000 n
0000061718 00000 n
0000058162 00000 n
@@ -8406,7 +8386,7 @@ xref
0000062033 00000 n
0000062446 00000 n
0000062572 00000 n
-0000282786 00000 n
+0000283043 00000 n
0000065550 00000 n
0000065178 00000 n
0000062785 00000 n
@@ -8424,7 +8404,7 @@ xref
0000069559 00000 n
0000069684 00000 n
0000069810 00000 n
-0000475875 00000 n
+0000476132 00000 n
0000073253 00000 n
0000072376 00000 n
0000070010 00000 n
@@ -8434,7 +8414,7 @@ xref
0000073064 00000 n
0000073190 00000 n
0000072518 00000 n
-0000233870 00000 n
+0000234127 00000 n
0000077362 00000 n
0000076675 00000 n
0000073390 00000 n
@@ -8455,9 +8435,9 @@ xref
0000083942 00000 n
0000081187 00000 n
0000085700 00000 n
-0000324285 00000 n
-0000315425 00000 n
-0000324113 00000 n
+0000324543 00000 n
+0000315683 00000 n
+0000324371 00000 n
0000085532 00000 n
0000085589 00000 n
0000085678 00000 n
@@ -8469,7 +8449,7 @@ xref
0000088157 00000 n
0000088568 00000 n
0000088694 00000 n
-0000277691 00000 n
+0000277948 00000 n
0000091444 00000 n
0000090881 00000 n
0000088881 00000 n
@@ -8477,7 +8457,7 @@ xref
0000091129 00000 n
0000091255 00000 n
0000091381 00000 n
-0000475993 00000 n
+0000476250 00000 n
0000091876 00000 n
0000091691 00000 n
0000091542 00000 n
@@ -8522,7 +8502,7 @@ xref
0000111307 00000 n
0000111370 00000 n
0000111496 00000 n
-0000476111 00000 n
+0000476368 00000 n
0000116693 00000 n
0000115127 00000 n
0000111796 00000 n
@@ -8536,7 +8516,7 @@ xref
0000115609 00000 n
0000115760 00000 n
0000115944 00000 n
-0000293201 00000 n
+0000293458 00000 n
0000119887 00000 n
0000119324 00000 n
0000116830 00000 n
@@ -8568,7 +8548,7 @@ xref
0000134075 00000 n
0000133520 00000 n
0000133671 00000 n
-0000476229 00000 n
+0000476486 00000 n
0000136120 00000 n
0000135557 00000 n
0000134249 00000 n
@@ -8590,7 +8570,7 @@ xref
0000141425 00000 n
0000145146 00000 n
0000144991 00000 n
-0000200593 00000 n
+0000200850 00000 n
0000149374 00000 n
0000149063 00000 n
0000145458 00000 n
@@ -8605,8 +8585,8 @@ xref
0000153392 00000 n
0000153548 00000 n
0000153730 00000 n
-0000476347 00000 n
-0000204241 00000 n
+0000476604 00000 n
+0000204498 00000 n
0000158684 00000 n
0000158103 00000 n
0000154129 00000 n
@@ -8620,7 +8600,7 @@ xref
0000162789 00000 n
0000162495 00000 n
0000162915 00000 n
-0000213619 00000 n
+0000213876 00000 n
0000167245 00000 n
0000166445 00000 n
0000163102 00000 n
@@ -8629,412 +8609,412 @@ xref
0000166595 00000 n
0000166760 00000 n
0000167182 00000 n
-0000266877 00000 n
-0000170339 00000 n
-0000170029 00000 n
+0000267134 00000 n
+0000170422 00000 n
+0000170111 00000 n
0000167369 00000 n
-0000170151 00000 n
-0000170276 00000 n
-0000314899 00000 n
-0000307009 00000 n
-0000314726 00000 n
-0000174082 00000 n
-0000173771 00000 n
-0000170504 00000 n
-0000173893 00000 n
-0000177641 00000 n
-0000177456 00000 n
-0000174221 00000 n
-0000177578 00000 n
-0000476465 00000 n
-0000181954 00000 n
-0000181036 00000 n
-0000177806 00000 n
-0000181513 00000 n
-0000181639 00000 n
-0000181765 00000 n
-0000181187 00000 n
-0000181891 00000 n
-0000181360 00000 n
-0000185454 00000 n
-0000185135 00000 n
-0000182106 00000 n
-0000185260 00000 n
-0000185389 00000 n
-0000189915 00000 n
-0000189121 00000 n
-0000185607 00000 n
-0000189593 00000 n
-0000189722 00000 n
+0000170233 00000 n
+0000170359 00000 n
+0000315157 00000 n
+0000307266 00000 n
+0000314984 00000 n
+0000173953 00000 n
+0000173642 00000 n
+0000170587 00000 n
+0000173764 00000 n
+0000177876 00000 n
+0000177691 00000 n
+0000174105 00000 n
+0000177813 00000 n
+0000476722 00000 n
+0000181791 00000 n
+0000181035 00000 n
+0000178041 00000 n
+0000181350 00000 n
+0000181476 00000 n
+0000181602 00000 n
+0000181177 00000 n
+0000181728 00000 n
+0000185711 00000 n
+0000185216 00000 n
+0000181943 00000 n
+0000185517 00000 n
+0000185362 00000 n
+0000185646 00000 n
+0000190172 00000 n
+0000189378 00000 n
+0000185864 00000 n
0000189850 00000 n
-0000189276 00000 n
-0000189438 00000 n
-0000192947 00000 n
-0000192309 00000 n
-0000190081 00000 n
-0000192624 00000 n
-0000192455 00000 n
-0000192817 00000 n
-0000192882 00000 n
-0000196563 00000 n
-0000196062 00000 n
-0000193059 00000 n
-0000196370 00000 n
-0000196499 00000 n
-0000196208 00000 n
-0000200787 00000 n
-0000200020 00000 n
-0000196742 00000 n
-0000200335 00000 n
-0000200464 00000 n
-0000200167 00000 n
-0000200657 00000 n
-0000200722 00000 n
-0000476587 00000 n
+0000189979 00000 n
+0000190107 00000 n
+0000189533 00000 n
+0000189695 00000 n
+0000193204 00000 n
+0000192566 00000 n
+0000190338 00000 n
+0000192881 00000 n
+0000192712 00000 n
+0000193074 00000 n
+0000193139 00000 n
+0000196820 00000 n
+0000196319 00000 n
+0000193316 00000 n
+0000196627 00000 n
+0000196756 00000 n
+0000196465 00000 n
+0000201044 00000 n
+0000200277 00000 n
+0000196999 00000 n
+0000200592 00000 n
+0000200721 00000 n
+0000200424 00000 n
+0000200914 00000 n
+0000200979 00000 n
+0000476844 00000 n
+0000208880 00000 n
+0000204561 00000 n
+0000204116 00000 n
+0000201156 00000 n
+0000204242 00000 n
+0000204371 00000 n
+0000208945 00000 n
+0000207865 00000 n
+0000204673 00000 n
+0000208496 00000 n
+0000208030 00000 n
+0000208181 00000 n
0000208623 00000 n
-0000204304 00000 n
-0000203859 00000 n
-0000200899 00000 n
-0000203985 00000 n
-0000204114 00000 n
-0000208688 00000 n
-0000207608 00000 n
-0000204416 00000 n
-0000208239 00000 n
-0000207773 00000 n
-0000207924 00000 n
-0000208366 00000 n
-0000208494 00000 n
-0000208085 00000 n
-0000212106 00000 n
-0000211787 00000 n
-0000208800 00000 n
-0000211913 00000 n
-0000212042 00000 n
-0000213683 00000 n
-0000213364 00000 n
-0000212218 00000 n
-0000213490 00000 n
-0000215059 00000 n
-0000214868 00000 n
-0000213795 00000 n
-0000214994 00000 n
-0000218796 00000 n
-0000218219 00000 n
-0000215158 00000 n
-0000218345 00000 n
-0000218474 00000 n
-0000218603 00000 n
-0000218668 00000 n
-0000218733 00000 n
-0000476712 00000 n
-0000223748 00000 n
-0000222246 00000 n
-0000218908 00000 n
-0000223425 00000 n
-0000223554 00000 n
-0000223683 00000 n
-0000222438 00000 n
-0000222600 00000 n
-0000222762 00000 n
-0000222924 00000 n
-0000223095 00000 n
-0000223265 00000 n
-0000228568 00000 n
-0000227339 00000 n
-0000223860 00000 n
-0000228503 00000 n
-0000227531 00000 n
-0000227694 00000 n
-0000227856 00000 n
-0000228018 00000 n
-0000228178 00000 n
-0000228340 00000 n
-0000233934 00000 n
-0000231575 00000 n
-0000228693 00000 n
-0000233741 00000 n
-0000231821 00000 n
-0000231974 00000 n
-0000232136 00000 n
-0000232298 00000 n
-0000232460 00000 n
-0000232622 00000 n
-0000232784 00000 n
-0000232946 00000 n
-0000233108 00000 n
-0000233262 00000 n
-0000233423 00000 n
-0000233578 00000 n
-0000238491 00000 n
-0000237294 00000 n
-0000234059 00000 n
-0000237782 00000 n
-0000237847 00000 n
-0000237912 00000 n
-0000238041 00000 n
+0000208751 00000 n
+0000208342 00000 n
+0000212363 00000 n
+0000212044 00000 n
+0000209057 00000 n
+0000212170 00000 n
+0000212299 00000 n
+0000213940 00000 n
+0000213621 00000 n
+0000212475 00000 n
+0000213747 00000 n
+0000215316 00000 n
+0000215125 00000 n
+0000214052 00000 n
+0000215251 00000 n
+0000219053 00000 n
+0000218476 00000 n
+0000215415 00000 n
+0000218602 00000 n
+0000218731 00000 n
+0000218860 00000 n
+0000218925 00000 n
+0000218990 00000 n
+0000476969 00000 n
+0000224005 00000 n
+0000222503 00000 n
+0000219165 00000 n
+0000223682 00000 n
+0000223811 00000 n
+0000223940 00000 n
+0000222695 00000 n
+0000222857 00000 n
+0000223019 00000 n
+0000223181 00000 n
+0000223352 00000 n
+0000223522 00000 n
+0000228825 00000 n
+0000227596 00000 n
+0000224117 00000 n
+0000228760 00000 n
+0000227788 00000 n
+0000227951 00000 n
+0000228113 00000 n
+0000228275 00000 n
+0000228435 00000 n
+0000228597 00000 n
+0000234191 00000 n
+0000231832 00000 n
+0000228950 00000 n
+0000233998 00000 n
+0000232078 00000 n
+0000232231 00000 n
+0000232393 00000 n
+0000232555 00000 n
+0000232717 00000 n
+0000232879 00000 n
+0000233041 00000 n
+0000233203 00000 n
+0000233365 00000 n
+0000233519 00000 n
+0000233680 00000 n
+0000233835 00000 n
+0000238748 00000 n
+0000237551 00000 n
+0000234316 00000 n
+0000238039 00000 n
+0000238104 00000 n
+0000238169 00000 n
0000238298 00000 n
-0000237450 00000 n
-0000237620 00000 n
-0000238363 00000 n
-0000238427 00000 n
-0000242086 00000 n
-0000241765 00000 n
-0000238616 00000 n
-0000241891 00000 n
-0000241956 00000 n
-0000242021 00000 n
-0000246097 00000 n
-0000245647 00000 n
-0000242185 00000 n
-0000245773 00000 n
-0000245838 00000 n
-0000245903 00000 n
-0000246032 00000 n
-0000476837 00000 n
-0000249811 00000 n
-0000249101 00000 n
-0000246222 00000 n
-0000249227 00000 n
-0000249292 00000 n
-0000249357 00000 n
-0000249422 00000 n
-0000249487 00000 n
-0000249616 00000 n
-0000249681 00000 n
-0000249746 00000 n
-0000253684 00000 n
-0000252721 00000 n
-0000249936 00000 n
-0000252847 00000 n
-0000252976 00000 n
-0000253041 00000 n
-0000253106 00000 n
-0000253234 00000 n
+0000238555 00000 n
+0000237707 00000 n
+0000237877 00000 n
+0000238620 00000 n
+0000238684 00000 n
+0000242343 00000 n
+0000242022 00000 n
+0000238873 00000 n
+0000242148 00000 n
+0000242213 00000 n
+0000242278 00000 n
+0000246354 00000 n
+0000245904 00000 n
+0000242442 00000 n
+0000246030 00000 n
+0000246095 00000 n
+0000246160 00000 n
+0000246289 00000 n
+0000477094 00000 n
+0000250068 00000 n
+0000249358 00000 n
+0000246479 00000 n
+0000249484 00000 n
+0000249549 00000 n
+0000249614 00000 n
+0000249679 00000 n
+0000249744 00000 n
+0000249873 00000 n
+0000249938 00000 n
+0000250003 00000 n
+0000253941 00000 n
+0000252978 00000 n
+0000250193 00000 n
+0000253104 00000 n
+0000253233 00000 n
0000253298 00000 n
0000253363 00000 n
-0000253492 00000 n
+0000253491 00000 n
+0000253555 00000 n
0000253620 00000 n
-0000256825 00000 n
-0000256247 00000 n
-0000253876 00000 n
-0000256373 00000 n
-0000306654 00000 n
-0000304656 00000 n
-0000306489 00000 n
-0000256502 00000 n
-0000256631 00000 n
-0000256760 00000 n
-0000259788 00000 n
-0000259467 00000 n
-0000257018 00000 n
-0000259593 00000 n
-0000259658 00000 n
-0000259723 00000 n
-0000260241 00000 n
-0000260050 00000 n
-0000259900 00000 n
-0000260176 00000 n
-0000262822 00000 n
-0000261914 00000 n
-0000260283 00000 n
-0000262500 00000 n
-0000262629 00000 n
-0000262758 00000 n
-0000262070 00000 n
-0000262285 00000 n
-0000476962 00000 n
-0000266941 00000 n
-0000266236 00000 n
-0000262948 00000 n
-0000266362 00000 n
-0000304335 00000 n
-0000295122 00000 n
-0000304149 00000 n
-0000266491 00000 n
-0000266620 00000 n
-0000266749 00000 n
-0000270375 00000 n
-0000269149 00000 n
-0000267106 00000 n
-0000269666 00000 n
-0000269795 00000 n
-0000269924 00000 n
-0000270053 00000 n
-0000270182 00000 n
-0000270311 00000 n
-0000269305 00000 n
-0000269477 00000 n
-0000270829 00000 n
-0000270638 00000 n
-0000270488 00000 n
-0000270764 00000 n
-0000274128 00000 n
-0000273550 00000 n
-0000270871 00000 n
-0000273676 00000 n
-0000273805 00000 n
-0000273934 00000 n
-0000274063 00000 n
-0000278014 00000 n
-0000277307 00000 n
-0000274214 00000 n
-0000277433 00000 n
-0000277562 00000 n
-0000277755 00000 n
-0000277820 00000 n
-0000277884 00000 n
-0000277949 00000 n
-0000284668 00000 n
-0000280868 00000 n
-0000278140 00000 n
-0000281749 00000 n
-0000281878 00000 n
-0000281042 00000 n
-0000281221 00000 n
-0000281398 00000 n
-0000281573 00000 n
-0000282071 00000 n
-0000282136 00000 n
-0000282201 00000 n
-0000282266 00000 n
-0000282331 00000 n
-0000282396 00000 n
-0000282461 00000 n
-0000282526 00000 n
-0000282591 00000 n
-0000282656 00000 n
-0000282721 00000 n
-0000282850 00000 n
-0000282915 00000 n
-0000282980 00000 n
-0000283045 00000 n
-0000283110 00000 n
-0000283175 00000 n
-0000283240 00000 n
-0000283305 00000 n
-0000283370 00000 n
-0000283435 00000 n
-0000283500 00000 n
-0000283565 00000 n
-0000283630 00000 n
-0000283695 00000 n
-0000283760 00000 n
-0000283825 00000 n
-0000283890 00000 n
-0000283955 00000 n
-0000284020 00000 n
-0000284085 00000 n
-0000284150 00000 n
-0000284215 00000 n
-0000284280 00000 n
-0000284345 00000 n
-0000284410 00000 n
-0000284475 00000 n
-0000284540 00000 n
-0000284604 00000 n
-0000477087 00000 n
-0000291179 00000 n
-0000287484 00000 n
-0000284820 00000 n
-0000287610 00000 n
-0000287675 00000 n
-0000287740 00000 n
-0000287805 00000 n
-0000287870 00000 n
-0000287935 00000 n
-0000288000 00000 n
-0000288065 00000 n
-0000288129 00000 n
-0000288194 00000 n
-0000288259 00000 n
-0000288324 00000 n
-0000288389 00000 n
-0000288454 00000 n
-0000288519 00000 n
-0000288584 00000 n
-0000288648 00000 n
-0000288713 00000 n
-0000288778 00000 n
-0000288843 00000 n
-0000288908 00000 n
-0000288973 00000 n
-0000289038 00000 n
-0000289103 00000 n
-0000289168 00000 n
-0000289233 00000 n
-0000289298 00000 n
-0000289363 00000 n
-0000289428 00000 n
-0000289493 00000 n
-0000289558 00000 n
-0000289623 00000 n
-0000289688 00000 n
-0000289753 00000 n
-0000289818 00000 n
-0000289883 00000 n
-0000289948 00000 n
-0000290013 00000 n
-0000290078 00000 n
-0000290143 00000 n
-0000290208 00000 n
-0000290273 00000 n
-0000290338 00000 n
-0000290403 00000 n
-0000290468 00000 n
-0000290533 00000 n
-0000290598 00000 n
-0000290663 00000 n
-0000290728 00000 n
-0000290793 00000 n
-0000290858 00000 n
-0000290923 00000 n
-0000290987 00000 n
-0000291051 00000 n
+0000253749 00000 n
+0000253877 00000 n
+0000257082 00000 n
+0000256504 00000 n
+0000254133 00000 n
+0000256630 00000 n
+0000306911 00000 n
+0000304913 00000 n
+0000306746 00000 n
+0000256759 00000 n
+0000256888 00000 n
+0000257017 00000 n
+0000260045 00000 n
+0000259724 00000 n
+0000257275 00000 n
+0000259850 00000 n
+0000259915 00000 n
+0000259980 00000 n
+0000260498 00000 n
+0000260307 00000 n
+0000260157 00000 n
+0000260433 00000 n
+0000263079 00000 n
+0000262171 00000 n
+0000260540 00000 n
+0000262757 00000 n
+0000262886 00000 n
+0000263015 00000 n
+0000262327 00000 n
+0000262542 00000 n
+0000477219 00000 n
+0000267198 00000 n
+0000266493 00000 n
+0000263205 00000 n
+0000266619 00000 n
+0000304592 00000 n
+0000295379 00000 n
+0000304406 00000 n
+0000266748 00000 n
+0000266877 00000 n
+0000267006 00000 n
+0000270632 00000 n
+0000269406 00000 n
+0000267363 00000 n
+0000269923 00000 n
+0000270052 00000 n
+0000270181 00000 n
+0000270310 00000 n
+0000270439 00000 n
+0000270568 00000 n
+0000269562 00000 n
+0000269734 00000 n
+0000271086 00000 n
+0000270895 00000 n
+0000270745 00000 n
+0000271021 00000 n
+0000274385 00000 n
+0000273807 00000 n
+0000271128 00000 n
+0000273933 00000 n
+0000274062 00000 n
+0000274191 00000 n
+0000274320 00000 n
+0000278271 00000 n
+0000277564 00000 n
+0000274471 00000 n
+0000277690 00000 n
+0000277819 00000 n
+0000278012 00000 n
+0000278077 00000 n
+0000278141 00000 n
+0000278206 00000 n
+0000284925 00000 n
+0000281125 00000 n
+0000278397 00000 n
+0000282006 00000 n
+0000282135 00000 n
+0000281299 00000 n
+0000281478 00000 n
+0000281655 00000 n
+0000281830 00000 n
+0000282328 00000 n
+0000282393 00000 n
+0000282458 00000 n
+0000282523 00000 n
+0000282588 00000 n
+0000282653 00000 n
+0000282718 00000 n
+0000282783 00000 n
+0000282848 00000 n
+0000282913 00000 n
+0000282978 00000 n
+0000283107 00000 n
+0000283172 00000 n
+0000283237 00000 n
+0000283302 00000 n
+0000283367 00000 n
+0000283432 00000 n
+0000283497 00000 n
+0000283562 00000 n
+0000283627 00000 n
+0000283692 00000 n
+0000283757 00000 n
+0000283822 00000 n
+0000283887 00000 n
+0000283952 00000 n
+0000284017 00000 n
+0000284082 00000 n
+0000284147 00000 n
+0000284212 00000 n
+0000284277 00000 n
+0000284342 00000 n
+0000284407 00000 n
+0000284472 00000 n
+0000284537 00000 n
+0000284602 00000 n
+0000284667 00000 n
+0000284732 00000 n
+0000284797 00000 n
+0000284861 00000 n
+0000477344 00000 n
+0000291436 00000 n
+0000287741 00000 n
+0000285077 00000 n
+0000287867 00000 n
+0000287932 00000 n
+0000287997 00000 n
+0000288062 00000 n
+0000288127 00000 n
+0000288192 00000 n
+0000288257 00000 n
+0000288322 00000 n
+0000288386 00000 n
+0000288451 00000 n
+0000288516 00000 n
+0000288581 00000 n
+0000288646 00000 n
+0000288711 00000 n
+0000288776 00000 n
+0000288841 00000 n
+0000288905 00000 n
+0000288970 00000 n
+0000289035 00000 n
+0000289100 00000 n
+0000289165 00000 n
+0000289230 00000 n
+0000289295 00000 n
+0000289360 00000 n
+0000289425 00000 n
+0000289490 00000 n
+0000289555 00000 n
+0000289620 00000 n
+0000289685 00000 n
+0000289750 00000 n
+0000289815 00000 n
+0000289880 00000 n
+0000289945 00000 n
+0000290010 00000 n
+0000290075 00000 n
+0000290140 00000 n
+0000290205 00000 n
+0000290270 00000 n
+0000290335 00000 n
+0000290400 00000 n
+0000290465 00000 n
+0000290530 00000 n
+0000290595 00000 n
+0000290660 00000 n
+0000290725 00000 n
+0000290790 00000 n
+0000290855 00000 n
+0000290920 00000 n
+0000290985 00000 n
+0000291050 00000 n
0000291115 00000 n
-0000293076 00000 n
-0000292367 00000 n
-0000291291 00000 n
-0000292493 00000 n
-0000292622 00000 n
-0000292751 00000 n
-0000292816 00000 n
-0000292881 00000 n
-0000292946 00000 n
-0000293011 00000 n
-0000293233 00000 n
-0000304577 00000 n
-0000306901 00000 n
-0000306870 00000 n
-0000315174 00000 n
-0000324690 00000 n
-0000332161 00000 n
-0000341957 00000 n
-0000359455 00000 n
-0000376442 00000 n
-0000397081 00000 n
-0000418224 00000 n
-0000421306 00000 n
-0000421076 00000 n
-0000448225 00000 n
-0000475035 00000 n
-0000477185 00000 n
-0000477305 00000 n
-0000477428 00000 n
-0000477517 00000 n
-0000477599 00000 n
-0000491574 00000 n
-0000503622 00000 n
-0000503663 00000 n
-0000503703 00000 n
-0000503837 00000 n
+0000291180 00000 n
+0000291244 00000 n
+0000291308 00000 n
+0000291372 00000 n
+0000293333 00000 n
+0000292624 00000 n
+0000291548 00000 n
+0000292750 00000 n
+0000292879 00000 n
+0000293008 00000 n
+0000293073 00000 n
+0000293138 00000 n
+0000293203 00000 n
+0000293268 00000 n
+0000293490 00000 n
+0000304834 00000 n
+0000307158 00000 n
+0000307127 00000 n
+0000315432 00000 n
+0000324948 00000 n
+0000332419 00000 n
+0000342215 00000 n
+0000359713 00000 n
+0000376700 00000 n
+0000397339 00000 n
+0000418482 00000 n
+0000421563 00000 n
+0000421333 00000 n
+0000448482 00000 n
+0000475292 00000 n
+0000477442 00000 n
+0000477562 00000 n
+0000477685 00000 n
+0000477774 00000 n
+0000477856 00000 n
+0000491831 00000 n
+0000503879 00000 n
+0000503920 00000 n
+0000503960 00000 n
+0000504094 00000 n
trailer
<<
/Size 1373
/Root 1371 0 R
/Info 1372 0 R
-/ID [<B146BB689FDC064660D3C5269A4887DD> <B146BB689FDC064660D3C5269A4887DD>]
+/ID [<01CCFD1E5FBF13DF94A8F939D2FB9838> <01CCFD1E5FBF13DF94A8F939D2FB9838>]
>>
startxref
-504095
+504352
%%EOF
diff --git a/lib/dns/api b/lib/dns/api
index 520c3c3a52d3..1b3fb8d5a269 100644
--- a/lib/dns/api
+++ b/lib/dns/api
@@ -1,3 +1,3 @@
-LIBINTERFACE = 24
-LIBREVISION = 2
-LIBAGE = 2
+LIBINTERFACE = 25
+LIBREVISION = 0
+LIBAGE = 0
diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c
index 869fd7bba01c..207432d5f357 100644
--- a/lib/dns/dispatch.c
+++ b/lib/dns/dispatch.c
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: dispatch.c,v 1.101.2.6.2.21 2007/08/28 07:19:13 tbox Exp $ */
+/* $Id: dispatch.c,v 1.101.2.6.2.21.4.1 2008/05/22 21:11:15 each Exp $ */
#include <config.h>
@@ -27,6 +27,7 @@
#include <isc/mem.h>
#include <isc/mutex.h>
#include <isc/print.h>
+#include <isc/random.h>
#include <isc/string.h>
#include <isc/task.h>
#include <isc/time.h>
@@ -43,25 +44,22 @@
typedef ISC_LIST(dns_dispentry_t) dns_displist_t;
-typedef struct dns_nsid {
- isc_uint16_t nsid_state;
- isc_uint16_t *nsid_vtable;
- isc_uint16_t *nsid_pool;
- isc_uint16_t nsid_a1, nsid_a2, nsid_a3;
- isc_uint16_t nsid_c1, nsid_c2, nsid_c3;
- isc_uint16_t nsid_state2;
- isc_boolean_t nsid_usepool;
-} dns_nsid_t;
-
typedef struct dns_qid {
unsigned int magic;
unsigned int qid_nbuckets; /* hash table size */
unsigned int qid_increment; /* id increment on collision */
isc_mutex_t lock;
- dns_nsid_t nsid;
dns_displist_t *qid_table; /* the table itself */
} dns_qid_t;
+/* ARC4 Random generator state */
+typedef struct arc4ctx {
+ isc_uint8_t i;
+ isc_uint8_t j;
+ isc_uint8_t s[256];
+ int count;
+} arc4ctx_t;
+
struct dns_dispatchmgr {
/* Unlocked. */
unsigned int magic;
@@ -74,6 +72,10 @@ struct dns_dispatchmgr {
unsigned int state;
ISC_LIST(dns_dispatch_t) list;
+ /* Locked by arc4_lock. */
+ isc_mutex_t arc4_lock;
+ arc4ctx_t arc4ctx; /*%< ARC4 context for QID */
+
/* locked by buffer lock */
dns_qid_t *qid;
isc_mutex_t buffer_lock;
@@ -100,6 +102,7 @@ struct dns_dispentry {
unsigned int magic;
dns_dispatch_t *disp;
dns_messageid_t id;
+ in_port_t port;
unsigned int bucket;
isc_sockaddr_t host;
isc_task_t *task;
@@ -119,6 +122,7 @@ struct dns_dispatch {
isc_task_t *task; /* internal task */
isc_socket_t *socket; /* isc socket attached to */
isc_sockaddr_t local; /* local address */
+ in_port_t localport; /* local UDP port */
unsigned int maxrequests; /* max requests */
isc_event_t *ctlevent;
@@ -161,14 +165,14 @@ struct dns_dispatch {
* Statics.
*/
static dns_dispentry_t *bucket_search(dns_qid_t *, isc_sockaddr_t *,
- dns_messageid_t, unsigned int);
+ dns_messageid_t, in_port_t, unsigned int);
static isc_boolean_t destroy_disp_ok(dns_dispatch_t *);
static void destroy_disp(isc_task_t *task, isc_event_t *event);
static void udp_recv(isc_task_t *, isc_event_t *);
static void tcp_recv(isc_task_t *, isc_event_t *);
static void startrecv(dns_dispatch_t *);
-static dns_messageid_t dns_randomid(dns_nsid_t *);
-static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t);
+static isc_uint32_t dns_hash(dns_qid_t *, isc_sockaddr_t *, dns_messageid_t,
+ in_port_t);
static void free_buffer(dns_dispatch_t *disp, void *buf, unsigned int len);
static void *allocate_udp_buffer(dns_dispatch_t *disp);
static inline void free_event(dns_dispatch_t *disp, dns_dispatchevent_t *ev);
@@ -188,12 +192,8 @@ static isc_result_t dispatch_createudp(dns_dispatchmgr_t *mgr,
static isc_boolean_t destroy_mgr_ok(dns_dispatchmgr_t *mgr);
static void destroy_mgr(dns_dispatchmgr_t **mgrp);
static isc_result_t qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets,
- unsigned int increment, isc_boolean_t usepool,
- dns_qid_t **qidp);
+ unsigned int increment, dns_qid_t **qidp);
static void qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp);
-static isc_uint16_t nsid_next(dns_nsid_t *nsid);
-static isc_result_t nsid_init(isc_mem_t *mctx, dns_nsid_t *nsid, isc_boolean_t usepool);
-static void nsid_destroy(isc_mem_t *mctx, dns_nsid_t *nsid);
#define LVL(x) ISC_LOG_DEBUG(x)
@@ -274,26 +274,152 @@ request_log(dns_dispatch_t *disp, dns_dispentry_t *resp,
}
/*
- * Return an unpredictable message ID.
+ * ARC4 random number generator obtained from OpenBSD
*/
-static dns_messageid_t
-dns_randomid(dns_nsid_t *nsid) {
- isc_uint32_t id;
+static void
+dispatch_arc4init(arc4ctx_t *actx) {
+ int n;
+ for (n = 0; n < 256; n++)
+ actx->s[n] = n;
+ actx->i = 0;
+ actx->j = 0;
+ actx->count = 0;
+}
+
+static void
+dispatch_arc4addrandom(arc4ctx_t *actx, unsigned char *dat, int datlen) {
+ int n;
+ isc_uint8_t si;
+
+ actx->i--;
+ for (n = 0; n < 256; n++) {
+ actx->i = (actx->i + 1);
+ si = actx->s[actx->i];
+ actx->j = (actx->j + si + dat[n % datlen]);
+ actx->s[actx->i] = actx->s[actx->j];
+ actx->s[actx->j] = si;
+ }
+ actx->j = actx->i;
+}
+
+static inline isc_uint8_t
+dispatch_arc4get8(arc4ctx_t *actx) {
+ isc_uint8_t si, sj;
+
+ actx->i = (actx->i + 1);
+ si = actx->s[actx->i];
+ actx->j = (actx->j + si);
+ sj = actx->s[actx->j];
+ actx->s[actx->i] = sj;
+ actx->s[actx->j] = si;
+
+ return (actx->s[(si + sj) & 0xff]);
+}
+
+static inline isc_uint16_t
+dispatch_arc4get16(arc4ctx_t *actx) {
+ isc_uint16_t val;
+
+ val = dispatch_arc4get8(actx) << 8;
+ val |= dispatch_arc4get8(actx);
+
+ return (val);
+}
+
+static void
+dispatch_arc4stir(dns_dispatchmgr_t *mgr) {
+ int i;
+ union {
+ unsigned char rnd[128];
+ isc_uint32_t rnd32[32];
+ } rnd;
+ isc_result_t result;
+
+ if (mgr->entropy != NULL) {
+ /*
+ * We accept any quality of random data to avoid blocking.
+ */
+ result = isc_entropy_getdata(mgr->entropy, rnd.rnd,
+ sizeof(rnd), NULL, 0);
+ RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ } else {
+ for (i = 0; i < 32; i++)
+ isc_random_get(&rnd.rnd32[i]);
+ }
+ dispatch_arc4addrandom(&mgr->arc4ctx, rnd.rnd, sizeof(rnd.rnd));
+
+ /*
+ * Discard early keystream, as per recommendations in:
+ * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps
+ */
+ for (i = 0; i < 256; i++)
+ (void)dispatch_arc4get8(&mgr->arc4ctx);
+
+ /*
+ * Derived from OpenBSD's implementation. The rationale is not clear,
+ * but should be conservative enough in safety, and reasonably large
+ * for efficiency.
+ */
+ mgr->arc4ctx.count = 1600000;
+}
+
+static isc_uint16_t
+dispatch_arc4random(dns_dispatchmgr_t *mgr) {
+ isc_uint16_t result;
+
+ LOCK(&mgr->arc4_lock);
+ mgr->arc4ctx.count -= sizeof(isc_uint16_t);
+ if (mgr->arc4ctx.count <= 0)
+ dispatch_arc4stir(mgr);
+ result = dispatch_arc4get16(&mgr->arc4ctx);
+ UNLOCK(&mgr->arc4_lock);
+ return (result);
+}
+
+static isc_uint16_t
+dispatch_arc4uniformrandom(dns_dispatchmgr_t *mgr, isc_uint16_t upper_bound) {
+ isc_uint16_t min, r;
+ /* The caller must hold the manager lock. */
+
+ if (upper_bound < 2)
+ return (0);
- id = nsid_next(nsid);
+ /*
+ * Ensure the range of random numbers [min, 0xffff] be a multiple of
+ * upper_bound and contain at least a half of the 16 bit range.
+ */
- return ((dns_messageid_t)id);
+ if (upper_bound > 0x8000)
+ min = 1 + ~upper_bound; /* 0x8000 - upper_bound */
+ else
+ min = (isc_uint16_t)(0x10000 % (isc_uint32_t)upper_bound);
+
+ /*
+ * This could theoretically loop forever but each retry has
+ * p > 0.5 (worst case, usually far better) of selecting a
+ * number inside the range we need, so it should rarely need
+ * to re-roll.
+ */
+ for (;;) {
+ r = dispatch_arc4random(mgr);
+ if (r >= min)
+ break;
+ }
+
+ return (r % upper_bound);
}
/*
* Return a hash of the destination and message id.
*/
static isc_uint32_t
-dns_hash(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id) {
+dns_hash(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
+ in_port_t port)
+{
unsigned int ret;
ret = isc_sockaddr_hash(dest, ISC_TRUE);
- ret ^= id;
+ ret ^= (id << 16) | port;
ret %= qid->qid_nbuckets;
INSIST(ret < qid->qid_nbuckets);
@@ -410,7 +536,7 @@ destroy_disp(isc_task_t *task, isc_event_t *event) {
*/
static dns_dispentry_t *
bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
- unsigned int bucket)
+ in_port_t port, unsigned int bucket)
{
dns_dispentry_t *res;
@@ -419,8 +545,10 @@ bucket_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
res = ISC_LIST_HEAD(qid->qid_table[bucket]);
while (res != NULL) {
- if ((res->id == id) && isc_sockaddr_equal(dest, &res->host))
+ if ((res->id == id) && isc_sockaddr_equal(dest, &res->host) &&
+ res->port == port) {
return (res);
+ }
res = ISC_LIST_NEXT(res, link);
}
@@ -622,13 +750,10 @@ udp_recv(isc_task_t *task, isc_event_t *ev_in) {
goto restart;
}
- dns_dispatch_hash(&ev->timestamp, sizeof(&ev->timestamp));
- dns_dispatch_hash(ev->region.base, ev->region.length);
-
/* response */
- bucket = dns_hash(qid, &ev->address, id);
+ bucket = dns_hash(qid, &ev->address, id, disp->localport);
LOCK(&qid->lock);
- resp = bucket_search(qid, &ev->address, id, bucket);
+ resp = bucket_search(qid, &ev->address, id, disp->localport, bucket);
dispatch_log(disp, LVL(90),
"search for response in bucket %d: %s",
bucket, (resp == NULL ? "not found" : "found"));
@@ -859,14 +984,13 @@ tcp_recv(isc_task_t *task, isc_event_t *ev_in) {
goto restart;
}
- dns_dispatch_hash(tcpmsg->buffer.base, tcpmsg->buffer.length);
-
/*
* Response.
*/
- bucket = dns_hash(qid, &tcpmsg->address, id);
+ bucket = dns_hash(qid, &tcpmsg->address, id, disp->localport);
LOCK(&qid->lock);
- resp = bucket_search(qid, &tcpmsg->address, id, bucket);
+ resp = bucket_search(qid, &tcpmsg->address, id, disp->localport,
+ bucket);
dispatch_log(disp, LVL(90),
"search for response in bucket %d: %s",
bucket, (resp == NULL ? "not found" : "found"));
@@ -1015,6 +1139,8 @@ destroy_mgr(dns_dispatchmgr_t **mgrp) {
DESTROYLOCK(&mgr->lock);
mgr->state = 0;
+ DESTROYLOCK(&mgr->arc4_lock);
+
isc_mempool_destroy(&mgr->epool);
isc_mempool_destroy(&mgr->rpool);
isc_mempool_destroy(&mgr->dpool);
@@ -1093,10 +1219,14 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
if (result != ISC_R_SUCCESS)
goto deallocate;
- result = isc_mutex_init(&mgr->buffer_lock);
+ result = isc_mutex_init(&mgr->arc4_lock);
if (result != ISC_R_SUCCESS)
goto kill_lock;
+ result = isc_mutex_init(&mgr->buffer_lock);
+ if (result != ISC_R_SUCCESS)
+ goto kill_arc4_lock;
+
result = isc_mutex_init(&mgr->pool_lock);
if (result != ISC_R_SUCCESS)
goto kill_buffer_lock;
@@ -1147,6 +1277,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
if (entropy != NULL)
isc_entropy_attach(entropy, &mgr->entropy);
+ dispatch_arc4init(&mgr->arc4ctx);
+
*mgrp = mgr;
return (ISC_R_SUCCESS);
@@ -1158,6 +1290,8 @@ dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
DESTROYLOCK(&mgr->pool_lock);
kill_buffer_lock:
DESTROYLOCK(&mgr->buffer_lock);
+ kill_arc4_lock:
+ DESTROYLOCK(&mgr->arc4_lock);
kill_lock:
DESTROYLOCK(&mgr->lock);
deallocate:
@@ -1245,7 +1379,7 @@ dns_dispatchmgr_setudp(dns_dispatchmgr_t *mgr,
isc_mempool_setmaxalloc(mgr->bpool, maxbuffers);
isc_mempool_associatelock(mgr->bpool, &mgr->pool_lock);
- result = qid_allocate(mgr, buckets, increment, ISC_TRUE, &mgr->qid);
+ result = qid_allocate(mgr, buckets, increment, &mgr->qid);
if (result != ISC_R_SUCCESS)
goto cleanup;
@@ -1284,20 +1418,27 @@ dns_dispatchmgr_destroy(dns_dispatchmgr_t **mgrp) {
}
static isc_boolean_t
-blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock) {
+blacklisted(dns_dispatchmgr_t *mgr, isc_socket_t *sock,
+ isc_sockaddr_t *sockaddrp)
+{
isc_sockaddr_t sockaddr;
isc_result_t result;
+ REQUIRE(sock != NULL || sockaddrp != NULL);
+
if (mgr->portlist == NULL)
return (ISC_FALSE);
- result = isc_socket_getsockname(sock, &sockaddr);
- if (result != ISC_R_SUCCESS)
- return (ISC_FALSE);
+ if (sock != NULL) {
+ sockaddrp = &sockaddr;
+ result = isc_socket_getsockname(sock, sockaddrp);
+ if (result != ISC_R_SUCCESS)
+ return (ISC_FALSE);
+ }
if (mgr->portlist != NULL &&
- dns_portlist_match(mgr->portlist, isc_sockaddr_pf(&sockaddr),
- isc_sockaddr_getport(&sockaddr)))
+ dns_portlist_match(mgr->portlist, isc_sockaddr_pf(sockaddrp),
+ isc_sockaddr_getport(sockaddrp)))
return (ISC_TRUE);
return (ISC_FALSE);
}
@@ -1318,7 +1459,7 @@ local_addr_match(dns_dispatch_t *disp, isc_sockaddr_t *addr) {
if (disp->mgr->portlist != NULL &&
isc_sockaddr_getport(addr) == 0 &&
isc_sockaddr_getport(&disp->local) == 0 &&
- blacklisted(disp->mgr, disp->socket))
+ blacklisted(disp->mgr, disp->socket, NULL))
return (ISC_FALSE);
/*
@@ -1391,7 +1532,7 @@ dispatch_find(dns_dispatchmgr_t *mgr, isc_sockaddr_t *local,
static isc_result_t
qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets,
- unsigned int increment, isc_boolean_t usepool, dns_qid_t **qidp)
+ unsigned int increment, dns_qid_t **qidp)
{
dns_qid_t *qid;
unsigned int i;
@@ -1412,16 +1553,8 @@ qid_allocate(dns_dispatchmgr_t *mgr, unsigned int buckets,
return (ISC_R_NOMEMORY);
}
- if (nsid_init(mgr->mctx, &qid->nsid, usepool) != ISC_R_SUCCESS) {
- isc_mem_put(mgr->mctx, qid->qid_table,
- buckets * sizeof(dns_displist_t));
- isc_mem_put(mgr->mctx, qid, sizeof(*qid));
- return (ISC_R_NOMEMORY);
- }
-
if (isc_mutex_init(&qid->lock) != ISC_R_SUCCESS) {
UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_mutex_init failed");
- nsid_destroy(mgr->mctx, &qid->nsid);
isc_mem_put(mgr->mctx, qid->qid_table,
buckets * sizeof(dns_displist_t));
isc_mem_put(mgr->mctx, qid, sizeof(*qid));
@@ -1449,7 +1582,6 @@ qid_destroy(isc_mem_t *mctx, dns_qid_t **qidp) {
*qidp = NULL;
qid->magic = 0;
- nsid_destroy(mctx, &qid->nsid);
isc_mem_put(mctx, qid->qid_table,
qid->qid_nbuckets * sizeof(dns_displist_t));
DESTROYLOCK(&qid->lock);
@@ -1486,6 +1618,7 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, unsigned int maxrequests,
disp->refcount = 1;
disp->recv_pending = 0;
memset(&disp->local, 0, sizeof(disp->local));
+ disp->localport = 0;
disp->shutting_down = 0;
disp->shutdown_out = 0;
disp->connected = 0;
@@ -1593,7 +1726,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock,
return (result);
}
- result = qid_allocate(mgr, buckets, increment, ISC_FALSE, &disp->qid);
+ result = qid_allocate(mgr, buckets, increment, &disp->qid);
if (result != ISC_R_SUCCESS)
goto deallocate_dispatch;
@@ -1660,7 +1793,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
dns_dispatch_t **dispp)
{
isc_result_t result;
- dns_dispatch_t *disp;
+ dns_dispatch_t *disp = NULL;
REQUIRE(VALID_DISPATCHMGR(mgr));
REQUIRE(sockmgr != NULL);
@@ -1680,6 +1813,11 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
LOCK(&mgr->lock);
+ if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) {
+ REQUIRE(isc_sockaddr_getport(localaddr) == 0);
+ goto createudp;
+ }
+
/*
* First, see if we have a dispatcher that matches.
*/
@@ -1708,6 +1846,7 @@ dns_dispatch_getudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
return (ISC_R_SUCCESS);
}
+ createudp:
/*
* Nope, create one.
*/
@@ -1743,7 +1882,9 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
dns_dispatch_t *disp;
isc_socket_t *sock = NULL;
isc_socket_t *held[DNS_DISPATCH_HELD];
- unsigned int i = 0, j = 0;
+ unsigned int i = 0, j = 0, k = 0;
+ isc_sockaddr_t localaddr_bound;
+ in_port_t localport = 0;
/*
* dispatch_allocate() checks mgr for us.
@@ -1759,11 +1900,34 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
* from returning the same port to us too quickly.
*/
memset(held, 0, sizeof(held));
+ localaddr_bound = *localaddr;
getsocket:
- result = create_socket(sockmgr, localaddr, &sock);
+ if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) != 0) {
+ in_port_t prt;
+
+ /* XXX: should the range be configurable? */
+ prt = 1024 + dispatch_arc4uniformrandom(mgr, 65535 - 1023);
+ isc_sockaddr_setport(&localaddr_bound, prt);
+ if (blacklisted(mgr, NULL, &localaddr_bound)) {
+ if (++k == 1024)
+ attributes &= ~DNS_DISPATCHATTR_RANDOMPORT;
+ goto getsocket;
+ }
+ result = create_socket(sockmgr, &localaddr_bound, &sock);
+ if (result == ISC_R_ADDRINUSE) {
+ if (++k == 1024)
+ attributes &= ~DNS_DISPATCHATTR_RANDOMPORT;
+ goto getsocket;
+ }
+ localport = prt;
+ } else
+ result = create_socket(sockmgr, localaddr, &sock);
if (result != ISC_R_SUCCESS)
goto deallocate_dispatch;
- if (isc_sockaddr_getport(localaddr) == 0 && blacklisted(mgr, sock)) {
+ if ((attributes & DNS_DISPATCHATTR_RANDOMPORT) == 0 &&
+ isc_sockaddr_getport(localaddr) == 0 &&
+ blacklisted(mgr, sock, NULL))
+ {
if (held[i] != NULL)
isc_socket_detach(&held[i]);
held[i++] = sock;
@@ -1784,6 +1948,7 @@ dispatch_createudp(dns_dispatchmgr_t *mgr, isc_socketmgr_t *sockmgr,
disp->socktype = isc_sockettype_udp;
disp->socket = sock;
disp->local = *localaddr;
+ disp->localport = localport;
disp->task = NULL;
result = isc_task_create(taskmgr, 0, &disp->task);
@@ -1916,19 +2081,20 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest,
/*
* Try somewhat hard to find an unique ID.
*/
+ id = (dns_messageid_t)dispatch_arc4random(disp->mgr);
qid = DNS_QID(disp);
LOCK(&qid->lock);
- id = dns_randomid(&qid->nsid);
- bucket = dns_hash(qid, dest, id);
+ bucket = dns_hash(qid, dest, id, disp->localport);
ok = ISC_FALSE;
for (i = 0; i < 64; i++) {
- if (bucket_search(qid, dest, id, bucket) == NULL) {
+ if (bucket_search(qid, dest, id, disp->localport, bucket) ==
+ NULL) {
ok = ISC_TRUE;
break;
}
id += qid->qid_increment;
id &= 0x0000ffff;
- bucket = dns_hash(qid, dest, id);
+ bucket = dns_hash(qid, dest, id, disp->localport);
}
if (!ok) {
@@ -1950,6 +2116,7 @@ dns_dispatch_addresponse(dns_dispatch_t *disp, isc_sockaddr_t *dest,
isc_task_attach(task, &res->task);
res->disp = disp;
res->id = id;
+ res->port = disp->localport;
res->bucket = bucket;
res->host = *dest;
res->action = action;
@@ -2261,409 +2428,3 @@ dns_dispatchmgr_dump(dns_dispatchmgr_t *mgr) {
}
}
#endif
-
-/*
- * Allow the user to pick one of two ID randomization algorithms.
- *
- * The first algorithm is an adaptation of the sequence shuffling
- * algorithm discovered by Carter Bays and S. D. Durham [ACM Trans. Math.
- * Software 2 (1976), 59-64], as documented as Algorithm B in Chapter
- * 3.2.2 in Volume 2 of Knuth's "The Art of Computer Programming". We use
- * a randomly selected linear congruential random number generator with a
- * modulus of 2^16, whose increment is a randomly picked odd number, and
- * whose multiplier is picked from a set which meets the following
- * criteria:
- * Is of the form 8*n+5, which ensures "high potency" according to
- * principle iii in the summary chapter 3.6. This form also has a
- * gcd(a-1,m) of 4 which is good according to principle iv.
- *
- * Is between 0.01 and 0.99 times the modulus as specified by
- * principle iv.
- *
- * Passes the spectral test "with flying colors" (ut >= 1) in
- * dimensions 2 through 6 as calculated by Algorithm S in Chapter
- * 3.3.4 and the ratings calculated by formula 35 in section E.
- *
- * Of the multipliers that pass this test, pick the set that is
- * best according to the theoretical bounds of the serial
- * correlation test. This was calculated using a simplified
- * version of Knuth's Theorem K in Chapter 3.3.3.
- *
- * These criteria may not be important for this use, but we might as well
- * pick from the best generators since there are so many possible ones and
- * we don't have that many random bits to do the picking.
- *
- * We use a modulus of 2^16 instead of something bigger so that we will
- * tend to cycle through all the possible IDs before repeating any,
- * however the shuffling will perturb this somewhat. Theoretically there
- * is no minimimum interval between two uses of the same ID, but in
- * practice it seems to be >64000.
- *
- * Our adaptatation of Algorithm B mixes the hash state which has
- * captured various random events into the shuffler to perturb the
- * sequence.
- *
- * One disadvantage of this algorithm is that if the generator parameters
- * were to be guessed, it would be possible to mount a limited brute force
- * attack on the ID space since the IDs are only shuffled within a limited
- * range.
- *
- * The second algorithm uses the same random number generator to populate
- * a pool of 65536 IDs. The hash state is used to pick an ID from a window
- * of 4096 IDs in this pool, then the chosen ID is swapped with the ID
- * at the beginning of the window and the window position is advanced.
- * This means that the interval between uses of the ID will be no less
- * than 65536-4096. The ID sequence in the pool will become more random
- * over time.
- *
- * For both algorithms, two more linear congruential random number generators
- * are selected. The ID from the first part of algorithm is used to seed
- * the first of these generators, and its output is used to seed the second.
- * The strategy is use these generators as 1 to 1 hashes to obfuscate the
- * properties of the generator used in the first part of either algorithm.
- *
- * The first algorithm may be suitable for use in a client resolver since
- * its memory requirements are fairly low and it's pretty random out of
- * the box. It is somewhat succeptible to a limited brute force attack,
- * so the second algorithm is probably preferable for a longer running
- * program that issues a large number of queries and has time to randomize
- * the pool.
- */
-
-#define NSID_SHUFFLE_TABLE_SIZE 100 /* Suggested by Knuth */
-/*
- * Pick one of the next 4096 IDs in the pool.
- * There is a tradeoff here between randomness and how often and ID is reused.
- */
-#define NSID_LOOKAHEAD 4096 /* Must be a power of 2 */
-#define NSID_SHUFFLE_ONLY 1 /* algorithm 1 */
-#define NSID_USE_POOL 2 /* algorithm 2 */
-#define NSID_HASHSHIFT 3
-#define NSID_HASHROTATE(v) \
- (((v) << NSID_HASHSHIFT) | ((v) >> ((sizeof(v) * 8) - NSID_HASHSHIFT)))
-
-static isc_uint32_t nsid_hash_state;
-
-/*
- * Keep a running hash of various bits of data that we'll use to
- * stir the ID pool or perturb the ID generator
- */
-static void
-nsid_hash(void *data, size_t len) {
- unsigned char *p = data;
- /*
- * Hash function similar to the one we use for hashing names.
- * We don't fold case or toss the upper bit here, though.
- * This hash doesn't do much interesting when fed binary zeros,
- * so there may be a better hash function.
- * This function doesn't need to be very strong since we're
- * only using it to stir the pool, but it should be reasonably
- * fast.
- */
- /*
- * We don't care about locking access to nsid_hash_state.
- * In fact races make the result even more non deteministic.
- */
- while (len-- > 0U) {
- nsid_hash_state = NSID_HASHROTATE(nsid_hash_state);
- nsid_hash_state += *p++;
- }
-}
-
-/*
- * Table of good linear congruential multipliers for modulus 2^16
- * in order of increasing serial correlation bounds (so trim from
- * the end).
- */
-static const isc_uint16_t nsid_multiplier_table[] = {
- 17565, 25013, 11733, 19877, 23989, 23997, 24997, 25421,
- 26781, 27413, 35901, 35917, 35973, 36229, 38317, 38437,
- 39941, 40493, 41853, 46317, 50581, 51429, 53453, 53805,
- 11317, 11789, 12045, 12413, 14277, 14821, 14917, 18989,
- 19821, 23005, 23533, 23573, 23693, 27549, 27709, 28461,
- 29365, 35605, 37693, 37757, 38309, 41285, 45261, 47061,
- 47269, 48133, 48597, 50277, 50717, 50757, 50805, 51341,
- 51413, 51581, 51597, 53445, 11493, 14229, 20365, 20653,
- 23485, 25541, 27429, 29421, 30173, 35445, 35653, 36789,
- 36797, 37109, 37157, 37669, 38661, 39773, 40397, 41837,
- 41877, 45293, 47277, 47845, 49853, 51085, 51349, 54085,
- 56933, 8877, 8973, 9885, 11365, 11813, 13581, 13589,
- 13613, 14109, 14317, 15765, 15789, 16925, 17069, 17205,
- 17621, 17941, 19077, 19381, 20245, 22845, 23733, 24869,
- 25453, 27213, 28381, 28965, 29245, 29997, 30733, 30901,
- 34877, 35485, 35613, 36133, 36661, 36917, 38597, 40285,
- 40693, 41413, 41541, 41637, 42053, 42349, 45245, 45469,
- 46493, 48205, 48613, 50861, 51861, 52877, 53933, 54397,
- 55669, 56453, 56965, 58021, 7757, 7781, 8333, 9661,
- 12229, 14373, 14453, 17549, 18141, 19085, 20773, 23701,
- 24205, 24333, 25261, 25317, 27181, 30117, 30477, 34757,
- 34885, 35565, 35885, 36541, 37957, 39733, 39813, 41157,
- 41893, 42317, 46621, 48117, 48181, 49525, 55261, 55389,
- 56845, 7045, 7749, 7965, 8469, 9133, 9549, 9789,
- 10173, 11181, 11285, 12253, 13453, 13533, 13757, 14477,
- 15053, 16901, 17213, 17269, 17525, 17629, 18605, 19013,
- 19829, 19933, 20069, 20093, 23261, 23333, 24949, 25309,
- 27613, 28453, 28709, 29301, 29541, 34165, 34413, 37301,
- 37773, 38045, 38405, 41077, 41781, 41925, 42717, 44437,
- 44525, 44613, 45933, 45941, 47077, 50077, 50893, 52117,
- 5293, 55069, 55989, 58125, 59205, 6869, 14685, 15453,
- 16821, 17045, 17613, 18437, 21029, 22773, 22909, 25445,
- 25757, 26541, 30709, 30909, 31093, 31149, 37069, 37725,
- 37925, 38949, 39637, 39701, 40765, 40861, 42965, 44813,
- 45077, 45733, 47045, 50093, 52861, 52957, 54181, 56325,
- 56365, 56381, 56877, 57013, 5741, 58101, 58669, 8613,
- 10045, 10261, 10653, 10733, 11461, 12261, 14069, 15877,
- 17757, 21165, 23885, 24701, 26429, 26645, 27925, 28765,
- 29197, 30189, 31293, 39781, 39909, 40365, 41229, 41453,
- 41653, 42165, 42365, 47421, 48029, 48085, 52773, 5573,
- 57037, 57637, 58341, 58357, 58901, 6357, 7789, 9093,
- 10125, 10709, 10765, 11957, 12469, 13437, 13509, 14773,
- 15437, 15773, 17813, 18829, 19565, 20237, 23461, 23685,
- 23725, 23941, 24877, 25461, 26405, 29509, 30285, 35181,
- 37229, 37893, 38565, 40293, 44189, 44581, 45701, 47381,
- 47589, 48557, 4941, 51069, 5165, 52797, 53149, 5341,
- 56301, 56765, 58581, 59493, 59677, 6085, 6349, 8293,
- 8501, 8517, 11597, 11709, 12589, 12693, 13517, 14909,
- 17397, 18085, 21101, 21269, 22717, 25237, 25661, 29189,
- 30101, 31397, 33933, 34213, 34661, 35533, 36493, 37309,
- 40037, 4189, 42909, 44309, 44357, 44389, 4541, 45461,
- 46445, 48237, 54149, 55301, 55853, 56621, 56717, 56901,
- 5813, 58437, 12493, 15365, 15989, 17829, 18229, 19341,
- 21013, 21357, 22925, 24885, 26053, 27581, 28221, 28485,
- 30605, 30613, 30789, 35437, 36285, 37189, 3941, 41797,
- 4269, 42901, 43293, 44645, 45221, 46893, 4893, 50301,
- 50325, 5189, 52109, 53517, 54053, 54485, 5525, 55949,
- 56973, 59069, 59421, 60733, 61253, 6421, 6701, 6709,
- 7101, 8669, 15797, 19221, 19837, 20133, 20957, 21293,
- 21461, 22461, 29085, 29861, 30869, 34973, 36469, 37565,
- 38125, 38829, 39469, 40061, 40117, 44093, 47429, 48341,
- 50597, 51757, 5541, 57629, 58405, 59621, 59693, 59701,
- 61837, 7061, 10421, 11949, 15405, 20861, 25397, 25509,
- 25893, 26037, 28629, 28869, 29605, 30213, 34205, 35637,
- 36365, 37285, 3773, 39117, 4021, 41061, 42653, 44509,
- 4461, 44829, 4725, 5125, 52269, 56469, 59085, 5917,
- 60973, 8349, 17725, 18637, 19773, 20293, 21453, 22533,
- 24285, 26333, 26997, 31501, 34541, 34805, 37509, 38477,
- 41333, 44125, 46285, 46997, 47637, 48173, 4925, 50253,
- 50381, 50917, 51205, 51325, 52165, 52229, 5253, 5269,
- 53509, 56253, 56341, 5821, 58373, 60301, 61653, 61973,
- 62373, 8397, 11981, 14341, 14509, 15077, 22261, 22429,
- 24261, 28165, 28685, 30661, 34021, 34445, 39149, 3917,
- 43013, 43317, 44053, 44101, 4533, 49541, 49981, 5277,
- 54477, 56357, 57261, 57765, 58573, 59061, 60197, 61197,
- 62189, 7725, 8477, 9565, 10229, 11437, 14613, 14709,
- 16813, 20029, 20677, 31445, 3165, 31957, 3229, 33541,
- 36645, 3805, 38973, 3965, 4029, 44293, 44557, 46245,
- 48917, 4909, 51749, 53709, 55733, 56445, 5925, 6093,
- 61053, 62637, 8661, 9109, 10821, 11389, 13813, 14325,
- 15501, 16149, 18845, 22669, 26437, 29869, 31837, 33709,
- 33973, 34173, 3677, 3877, 3981, 39885, 42117, 4421,
- 44221, 44245, 44693, 46157, 47309, 5005, 51461, 52037,
- 55333, 55693, 56277, 58949, 6205, 62141, 62469, 6293,
- 10101, 12509, 14029, 17997, 20469, 21149, 25221, 27109,
- 2773, 2877, 29405, 31493, 31645, 4077, 42005, 42077,
- 42469, 42501, 44013, 48653, 49349, 4997, 50101, 55405,
- 56957, 58037, 59429, 60749, 61797, 62381, 62837, 6605,
- 10541, 23981, 24533, 2701, 27333, 27341, 31197, 33805,
- 3621, 37381, 3749, 3829, 38533, 42613, 44381, 45901,
- 48517, 51269, 57725, 59461, 60045, 62029, 13805, 14013,
- 15461, 16069, 16157, 18573, 2309, 23501, 28645, 3077,
- 31541, 36357, 36877, 3789, 39429, 39805, 47685, 47949,
- 49413, 5485, 56757, 57549, 57805, 58317, 59549, 62213,
- 62613, 62853, 62933, 8909, 12941, 16677, 20333, 21541,
- 24429, 26077, 26421, 2885, 31269, 33381, 3661, 40925,
- 42925, 45173, 4525, 4709, 53133, 55941, 57413, 57797,
- 62125, 62237, 62733, 6773, 12317, 13197, 16533, 16933,
- 18245, 2213, 2477, 29757, 33293, 35517, 40133, 40749,
- 4661, 49941, 62757, 7853, 8149, 8573, 11029, 13421,
- 21549, 22709, 22725, 24629, 2469, 26125, 2669, 34253,
- 36709, 41013, 45597, 46637, 52285, 52333, 54685, 59013,
- 60997, 61189, 61981, 62605, 62821, 7077, 7525, 8781,
- 10861, 15277, 2205, 22077, 28517, 28949, 32109, 33493,
- 4661, 49941, 62757, 7853, 8149, 8573, 11029, 13421,
- 21549, 22709, 22725, 24629, 2469, 26125, 2669, 34253,
- 36709, 41013, 45597, 46637, 52285, 52333, 54685, 59013,
- 60997, 61189, 61981, 62605, 62821, 7077, 7525, 8781,
- 10861, 15277, 2205, 22077, 28517, 28949, 32109, 33493,
- 3685, 39197, 39869, 42621, 44997, 48565, 5221, 57381,
- 61749, 62317, 63245, 63381, 23149, 2549, 28661, 31653,
- 33885, 36341, 37053, 39517, 42805, 45853, 48997, 59349,
- 60053, 62509, 63069, 6525, 1893, 20181, 2365, 24893,
- 27397, 31357, 32277, 33357, 34437, 36677, 37661, 43469,
- 43917, 50997, 53869, 5653, 13221, 16741, 17893, 2157,
- 28653, 31789, 35301, 35821, 61613, 62245, 12405, 14517,
- 17453, 18421, 3149, 3205, 40341, 4109, 43941, 46869,
- 48837, 50621, 57405, 60509, 62877, 8157, 12933, 12957,
- 16501, 19533, 3461, 36829, 52357, 58189, 58293, 63053,
- 17109, 1933, 32157, 37701, 59005, 61621, 13029, 15085,
- 16493, 32317, 35093, 5061, 51557, 62221, 20765, 24613,
- 2629, 30861, 33197, 33749, 35365, 37933, 40317, 48045,
- 56229, 61157, 63797, 7917, 17965, 1917, 1973, 20301,
- 2253, 33157, 58629, 59861, 61085, 63909, 8141, 9221,
- 14757, 1581, 21637, 26557, 33869, 34285, 35733, 40933,
- 42517, 43501, 53653, 61885, 63805, 7141, 21653, 54973,
- 31189, 60061, 60341, 63357, 16045, 2053, 26069, 33997,
- 43901, 54565, 63837, 8949, 17909, 18693, 32349, 33125,
- 37293, 48821, 49053, 51309, 64037, 7117, 1445, 20405,
- 23085, 26269, 26293, 27349, 32381, 33141, 34525, 36461,
- 37581, 43525, 4357, 43877, 5069, 55197, 63965, 9845,
- 12093, 2197, 2229, 32165, 33469, 40981, 42397, 8749,
- 10853, 1453, 18069, 21693, 30573, 36261, 37421, 42533
-};
-
-#define NSID_MULT_TABLE_SIZE \
- ((sizeof nsid_multiplier_table)/(sizeof nsid_multiplier_table[0]))
-#define NSID_RANGE_MASK (NSID_LOOKAHEAD - 1)
-#define NSID_POOL_MASK 0xFFFF /* used to wrap the pool index */
-#define NSID_SHUFFLE_ONLY 1
-#define NSID_USE_POOL 2
-
-static isc_uint16_t
-nsid_next(dns_nsid_t *nsid) {
- isc_uint16_t id, compressed_hash;
- isc_uint16_t j;
-
- compressed_hash = ((nsid_hash_state >> 16) ^
- (nsid_hash_state)) & 0xFFFF;
-
- if (nsid->nsid_usepool) {
- isc_uint16_t pick;
-
- pick = compressed_hash & NSID_RANGE_MASK;
- pick = (nsid->nsid_state + pick) & NSID_POOL_MASK;
- id = nsid->nsid_pool[pick];
- if (pick != 0) {
- /* Swap two IDs to stir the pool */
- nsid->nsid_pool[pick] =
- nsid->nsid_pool[nsid->nsid_state];
- nsid->nsid_pool[nsid->nsid_state] = id;
- }
-
- /* increment the base pointer into the pool */
- if (nsid->nsid_state == 65535)
- nsid->nsid_state = 0;
- else
- nsid->nsid_state++;
- } else {
- /*
- * This is the original Algorithm B
- * j = ((u_long) NSID_SHUFFLE_TABLE_SIZE * nsid_state2) >> 16;
- *
- * We'll perturb it with some random stuff ...
- */
- j = ((isc_uint32_t) NSID_SHUFFLE_TABLE_SIZE *
- (nsid->nsid_state2 ^ compressed_hash)) >> 16;
- nsid->nsid_state2 = id = nsid->nsid_vtable[j];
- nsid->nsid_state = (((isc_uint32_t) nsid->nsid_a1 * nsid->nsid_state) +
- nsid->nsid_c1) & 0xFFFF;
- nsid->nsid_vtable[j] = nsid->nsid_state;
- }
-
- /* Now lets obfuscate ... */
- id = (((isc_uint32_t) nsid->nsid_a2 * id) + nsid->nsid_c2) & 0xFFFF;
- id = (((isc_uint32_t) nsid->nsid_a3 * id) + nsid->nsid_c3) & 0xFFFF;
-
- return (id);
-}
-
-static isc_result_t
-nsid_init(isc_mem_t *mctx, dns_nsid_t *nsid, isc_boolean_t usepool) {
- isc_time_t now;
- pid_t mypid;
- isc_uint16_t a1ndx, a2ndx, a3ndx, c1ndx, c2ndx, c3ndx;
- int i;
-
- isc_time_now(&now);
- mypid = getpid();
-
- /* Initialize the state */
- memset(nsid, 0, sizeof(*nsid));
- nsid_hash(&now, sizeof now);
- nsid_hash(&mypid, sizeof mypid);
-
- /*
- * Select our random number generators and initial seed.
- * We could really use more random bits at this point,
- * but we'll try to make a silk purse out of a sows ear ...
- */
- /* generator 1 */
- a1ndx = ((isc_uint32_t) NSID_MULT_TABLE_SIZE *
- (nsid_hash_state & 0xFFFF)) >> 16;
- nsid->nsid_a1 = nsid_multiplier_table[a1ndx];
- c1ndx = (nsid_hash_state >> 9) & 0x7FFF;
- nsid->nsid_c1 = 2 * c1ndx + 1;
-
- /* generator 2, distinct from 1 */
- a2ndx = ((isc_uint32_t) (NSID_MULT_TABLE_SIZE - 1) *
- ((nsid_hash_state >> 10) & 0xFFFF)) >> 16;
- if (a2ndx >= a1ndx)
- a2ndx++;
- nsid->nsid_a2 = nsid_multiplier_table[a2ndx];
- c2ndx = nsid_hash_state % 32767;
- if (c2ndx >= c1ndx)
- c2ndx++;
- nsid->nsid_c2 = 2*c2ndx + 1;
-
- /* generator 3, distinct from 1 and 2 */
- a3ndx = ((isc_uint32_t) (NSID_MULT_TABLE_SIZE - 2) *
- ((nsid_hash_state >> 20) & 0xFFFF)) >> 16;
- if (a3ndx >= a1ndx || a3ndx >= a2ndx)
- a3ndx++;
- if (a3ndx >= a1ndx && a3ndx >= a2ndx)
- a3ndx++;
- nsid->nsid_a3 = nsid_multiplier_table[a3ndx];
- c3ndx = nsid_hash_state % 32766;
- if (c3ndx >= c1ndx || c3ndx >= c2ndx)
- c3ndx++;
- if (c3ndx >= c1ndx && c3ndx >= c2ndx)
- c3ndx++;
- nsid->nsid_c3 = 2*c3ndx + 1;
-
- nsid->nsid_state =
- ((nsid_hash_state >> 16) ^ (nsid_hash_state)) & 0xFFFF;
-
- nsid->nsid_usepool = usepool;
- if (nsid->nsid_usepool) {
- nsid->nsid_pool = isc_mem_get(mctx, 0x10000 * sizeof(isc_uint16_t));
- if (nsid->nsid_pool == NULL)
- return (ISC_R_NOMEMORY);
- for (i = 0; ; i++) {
- nsid->nsid_pool[i] = nsid->nsid_state;
- nsid->nsid_state =
- (((u_long) nsid->nsid_a1 * nsid->nsid_state) +
- nsid->nsid_c1) & 0xFFFF;
- if (i == 0xFFFF)
- break;
- }
- } else {
- nsid->nsid_vtable = isc_mem_get(mctx, NSID_SHUFFLE_TABLE_SIZE *
- (sizeof(isc_uint16_t)) );
- if (nsid->nsid_vtable == NULL)
- return (ISC_R_NOMEMORY);
-
- for (i = 0; i < NSID_SHUFFLE_TABLE_SIZE; i++) {
- nsid->nsid_vtable[i] = nsid->nsid_state;
- nsid->nsid_state =
- (((isc_uint32_t) nsid->nsid_a1 * nsid->nsid_state) +
- nsid->nsid_c1) & 0xFFFF;
- }
- nsid->nsid_state2 = nsid->nsid_state;
- }
- return (ISC_R_SUCCESS);
-}
-
-static void
-nsid_destroy(isc_mem_t *mctx, dns_nsid_t *nsid) {
- if (nsid->nsid_usepool)
- isc_mem_put(mctx, nsid->nsid_pool,
- 0x10000 * sizeof(isc_uint16_t));
- else
- isc_mem_put(mctx, nsid->nsid_vtable,
- NSID_SHUFFLE_TABLE_SIZE * (sizeof(isc_uint16_t)) );
- memset(nsid, 0, sizeof(*nsid));
-}
-
-void
-dns_dispatch_hash(void *data, size_t len) {
- nsid_hash(data, len);
-}
diff --git a/lib/dns/include/dns/dispatch.h b/lib/dns/include/dns/dispatch.h
index 29dd7f806385..806ab880f3cc 100644
--- a/lib/dns/include/dns/dispatch.h
+++ b/lib/dns/include/dns/dispatch.h
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: dispatch.h,v 1.45.2.2.4.5 2007/08/28 07:19:14 tbox Exp $ */
+/* $Id: dispatch.h,v 1.45.2.2.4.5.4.1 2008/05/22 21:11:16 each Exp $ */
#ifndef DNS_DISPATCH_H
#define DNS_DISPATCH_H 1
@@ -112,6 +112,9 @@ struct dns_dispatchevent {
* _MAKEQUERY
* The dispatcher can be used to issue queries to other servers, and
* accept replies from them.
+ *
+ * _RANDOMPORT
+ * Allocate UDP port randomly.
*/
#define DNS_DISPATCHATTR_PRIVATE 0x00000001U
#define DNS_DISPATCHATTR_TCP 0x00000002U
@@ -121,6 +124,7 @@ struct dns_dispatchevent {
#define DNS_DISPATCHATTR_NOLISTEN 0x00000020U
#define DNS_DISPATCHATTR_MAKEQUERY 0x00000040U
#define DNS_DISPATCHATTR_CONNECTED 0x00000080U
+#define DNS_DISPATCHATTR_RANDOMPORT 0x00000100U
isc_result_t
dns_dispatchmgr_create(isc_mem_t *mctx, isc_entropy_t *entropy,
@@ -437,13 +441,6 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event);
* event != NULL
*/
-void
-dns_dispatch_hash(void *data, size_t len);
-/*%<
- * Feed 'data' to the dispatch query id generator where 'len' is the size
- * of 'data'.
- */
-
ISC_LANG_ENDDECLS
#endif /* DNS_DISPATCH_H */
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 16d22e08b332..93f10f5dd3e3 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: resolver.c,v 1.218.2.18.4.77 2008/01/17 23:45:27 tbox Exp $ */
+/* $Id: resolver.c,v 1.218.2.18.4.77.2.1 2008/05/22 21:11:15 each Exp $ */
#include <config.h>
@@ -1070,17 +1070,50 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
* A dispatch will be created once the connect succeeds.
*/
} else {
+ isc_sockaddr_t localaddr;
+ unsigned int attrs, attrmask;
+ dns_dispatch_t *disp_base;
+
+ attrs = 0;
+ attrs |= DNS_DISPATCHATTR_UDP;
+ attrs |= DNS_DISPATCHATTR_RANDOMPORT;
+
+ attrmask = 0;
+ attrmask |= DNS_DISPATCHATTR_UDP;
+ attrmask |= DNS_DISPATCHATTR_TCP;
+ attrmask |= DNS_DISPATCHATTR_IPV4;
+ attrmask |= DNS_DISPATCHATTR_IPV6;
+
switch (isc_sockaddr_pf(&addrinfo->sockaddr)) {
- case PF_INET:
- dns_dispatch_attach(res->dispatchv4, &query->dispatch);
+ case AF_INET:
+ disp_base = res->dispatchv4;
+ attrs |= DNS_DISPATCHATTR_IPV4;
break;
- case PF_INET6:
- dns_dispatch_attach(res->dispatchv6, &query->dispatch);
+ case AF_INET6:
+ disp_base = res->dispatchv6;
+ attrs |= DNS_DISPATCHATTR_IPV6;
break;
default:
result = ISC_R_NOTIMPLEMENTED;
goto cleanup_query;
}
+
+ result = dns_dispatch_getlocaladdress(disp_base, &localaddr);
+ if (result != ISC_R_SUCCESS)
+ goto cleanup_query;
+ if (isc_sockaddr_getport(&localaddr) == 0) {
+ result = dns_dispatch_getudp(res->dispatchmgr,
+ res->socketmgr,
+ res->taskmgr,
+ &localaddr,
+ 4096, 1000, 32768,
+ 16411, 16433,
+ attrs, attrmask,
+ &query->dispatch);
+ if (result != ISC_R_SUCCESS)
+ goto cleanup_query;
+ } else
+ dns_dispatch_attach(disp_base, &query->dispatch);
/*
* We should always have a valid dispatcher here. If we
* don't support a protocol family, then its dispatcher
diff --git a/version b/version
index 4327c9e433c6..6853a8a6bf39 100644
--- a/version
+++ b/version
@@ -1,4 +1,4 @@
-# $Id: version,v 1.26.2.17.2.31 2008/04/03 00:22:17 each Exp $
+# $Id: version,v 1.26.2.17.2.31.4.1 2008/05/22 21:11:13 each Exp $
#
# This file must follow /bin/sh rules. It is imported directly via
# configure.
@@ -6,5 +6,5 @@
MAJORVER=9
MINORVER=3
PATCHVER=5
-RELEASETYPE=
-RELEASEVER=
+RELEASETYPE=-P
+RELEASEVER=1