summaryrefslogtreecommitdiff
path: root/doc/gperf.ps
blob: 0a7bf0ddf996fe67f13227d9b3500f832f2aee86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
%!PS-Adobe-2.0
%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software
%%Title: gperf.dvi
%%Pages: 36
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSCommandLine: dvips -Pljfour -o gperf.ps gperf.dvi
%DVIPSParameters: dpi=600, compressed, comments removed
%DVIPSSource:  TeX output 1998.05.02:1318
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 39158280 55380996 1000 600 600 (gperf.dvi)
@start /Fa 1 47 df<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46
D E /Fb 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A
6C5AEA0FE0121271912B>46 D E /Fc 2 109 df<EB0FFE90387FFFC048B512F04814FC
3907FC0FFE48486C7E6D6C7F486C7E82A26E7FA36C5A6C5AEA01E0C8FC5C49B5FC131F90
B6FC000313F84813C0481300EA1FFC485A127F5B12FF5BA45CA26C6C5A16F83B3FF807BF
FF80391FFC1F3F390FFFFE1F6C497E0001EBF80326003FE0C8FC292B7EA92C>97
D<13FFB5FCA512077EB3B3AFB512FCA5163F7EBE19>108 D E /Fd
5 118 df<EC3FFF49B512E0010714F8011F8049805B90B7FC48EBE001481300485AEA0F
F8496D5A4848147C93C7FC485A5B127F90CAFCA35A5AA97E7EA27F123F6D141F6DEC3F80
121F6C7E01FC147F6C6CECFF006C6C6C5A6C9038F00FFE91B55A6C6C5C6D5C6D5C010714
80010149C7FC9038003FF0293278B038>99 D<EEFFC0277FFFC00713F8B5D8E01F13FC03
7F13FE92B5FC02E114FF14E36C01E713813A000FEFFC019139FFF000FE4B137C03801300
92C8FCA25C5CA25CA25CA45CB2007FB67EB77E82A35E6C5D30307CAF38>114
D<903907FF80F0017FEBF1F848B512FD000714FF5A5A5AEBFC00D87FE0131F0180130F48
C71207481403A5007FEC01F001C090C7FCEA3FF013FE381FFFF86CEBFFC0000314F8C614
FF013F1480010714E0D9003F13F0020013F8ED0FFC1503003CEC01FE007E140000FE15FF
167F7EA37F6D14FF16FE01F013036DEB07FC01FF137F91B512F816F016E04815C0D8FC3F
1400010F13FCD8780113E0283278B038>I<EB01E0497E1307AB003FB712804816C0B8FC
A46C1680260007F0C8FCB3A4EE03E0EE07F0A66E130F17E06D6C131F6EEB3FC0903901FF
81FF92B512806D15006E5B6E5B6E13F002075B020190C7FC2C3D7DBB38>I<D83FFE9038
03FFE0486C497FB55BA36C806C80C66CEB0007B3A9160FA2161F163F6E137F6D6C13FFDA
F007EBFFE091B712F06D16F87F6D14E76D02C713F00100020313E0DA3FF8C8FC35307FAE
38>I E /Fe 28 122 df<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1F
F8EA07E01010778F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FC
B3B3B2007FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC488148
0101EBFF802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15
FC6D7F00FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817
F05D17E04B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B
131FEC3F804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC48
16FC5A5A5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF
90267FE01F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167F
A3805C16FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB4
5A49B512E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318
C0EA07E0EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A
5BD80FFC495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC
32487BC63D>I<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293B57EA34B8016
F303038016E316E103078016C0030F805E83031F814C7E4B81153E83037E81037C7F03FC
815D830201824B7F0203825D830207824B7F020F825D84021F8392B8FC4A83A34A83027C
C8120F02FC835C840101844A810103845C840107844A81010F845C85011F85496C82B600
C091B712F0A5544D7CCC5D>65 D<93261FFF80EB01C00307B500F81303033F02FE13074A
B7EAC00F0207EEE03F021F903AFE007FF87F027F01E0903807FCFF91B5C70001B5FC0103
01FC6E7E4901F0151F4901C0814949814990C97E494882494882485B48197F4A173F5A4A
171F5A5C48190FA2485B1A07A25AA297C7FC91CDFCA2B5FCAD7EA280A2F207C07EA36C7F
A26C190F6E18807E6E171F6C1A006E5F6C193E6C6D177E6D6C5F6D6C4C5A6D6D15036D6D
4B5A6D01F04B5A6D01FCED3FC0010001FFEDFF806E01E0D903FEC7FC021F01FEEB3FFC02
0790B612F002015EDA003F92C8FC030714FCDB001F13804A4D79CB59>67
D<B912F0F0FF8019F019FC19FFD8001F902680000114C0DD001F7F060713F806017F726C
7E737E737F737F737F8587737F8587A2747EA38786A21C80A51CC0A586A462A51C80A51C
00A26263A2631AFF636163614F5B634F5B073F90C7FC4F5A4F5A06035B061F5B4DB512C0
BBC8FC19FC19F0198006F0C9FC524B7CCA5E>I<BB12C0A486D8000F01E0C77E18071801
F0007F193F191F190F1907861903A31901A3EF0F80A2737EA497C7FC171FA2173F177F17
FF160392B6FCA5EDE0031600177F173F171FA2050FEC0F80A3F21F00A494C8FC621A3EA2
1A7EA31AFE6219011903A21907190FF13FF819FF1803183FBBFCA262A3494A7CC951>I<
BBFCA41A80D8001F01C0C7FC181F18038484197F193F191F1AC0190FA31907A4171FF103
E0A496C7FCA25FA25F5F5E160792B6FCA5EDC0071601828383A283A794C9FCB1B8FCA543
4A7CC94D>I<B712FEA5D8000FEBE000B3B3B3ABB712FEA5274B7DCA2E>73
D<B700F8027FB512F0A5D8001F01C0C9EBC00074C7FCF101FE4F5A4F5AF10FE04F5A4F5A
4FC8FCF001FE4E5A4E5AF00FE04E5A4E5A4EC9FCEF01FE4D5A4D5AEF0FE04D5A4D5A4DCA
FCEE01FE16034C7E4C7F5E4C7F93B57E03C18015C303C780DBCFE77FDBDFC37FEDFF8104
017F4B6C804B7F4B6D7F03E0814B6D7F8385717F717F83857180727F8486727F8486727F
727F84867280737F8587737F87B700F8010FB612FCA5564B7CCA60>75
D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFE3B03FC0007FF80486C6D7F6D7F
486D6C7F83167F83A2707E6C90C7FC6C5A6C5AC9FCA5ED1FFF021FB5FC49B6FC130F013F
EBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485AA2485AA4167FA26D14FF
007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038E07F076C9038FFFE0300
014A7ED8003F9038F0007F0103018090C7FC37347CB23C>97 D<91380FFF8091B512F801
0314FF010F15804948C613C0D97FF8EB1FE0D9FFE0EB3FF04849137F4849EBFFF84890C7
FCA2485A121FA24848EC7FF0EE3FE0EE1FC0007F92C7FC5BA212FFAC127FA27FA2123FA2
6C6C153EA26C6C157E177C6C6D14FC6C6D14F86C6D13036C6DEB07F0D97FFCEB1FE06DB4
EBFFC0010F90B5120001035C010014F0020F13802F347CB237>99
D<EF1FF0EE3FFFA51600177FB3EC0FFF91B512E0010314F8010F14FC013FEB01FF903A7F
F8003FFFD9FFE0130F48497F48497F4890C77E48815B121F5B123FA2127F5BA312FFAC12
7FA36C7EA3121F6D5C120F6C6C5C6C6D5B6C5D6C01E0013F7F6D6C49EBFFE090393FFE03
FE6DB512F801075C0100148091261FFC00EBC0003B4D7CCB44>I<EC0FFF91B512F00103
14FC010F14FF90263FFE077F90267FF0007F49486D7E4801806D7E486F7E4890C7120F48
4881707E121F491403003F82A2127F5B701380A212FFA390B8FCA401F8CAFCA5127FA27F
A2123FA26C6CED0F80A26C6C151F6C17006E5C6C6D147E6C6D5C6C6D495AD93FFCEB07F0
903A1FFF803FE0010790B55A010192C7FC6D6C13FC020713C031347DB238>I<ED7FF091
3807FFFC023F7F4A7F902601FFE0138049018113C049484813E0EB0FFCEB1FF8A2EB3FF0
A2017F6D13C04A6C1380EE7F00163E93C7FCACB77EA526007FF0C8FCB3B3A3003FB512F8
A52B4D7DCC26>I<DA7FFCEB0FE00103B538807FF8010F9138E1FFFC013F02FB13FE903A
7FF01FFFF39026FFC007138348D90001130348168348486DEBC1FCEFC0F8000FEEE00049
147F001F82A9000F5E6D14FF00075EA26C6C495B6C93C7FC6C9038C007FE9138F01FFC48
90B55A01EF14E0D803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FCEEFF
C06C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF01400
49153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED7FE0
D80FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15F001071580D9
003F01F0C7FC37497DB13D>I<13FCEA03FF487F487FA2487FA66C5BA26C5B6C90C7FCEA
00FC90C8FCABEB7FC0B5FCA512037EB3B3A2B61280A5194D7BCC22>105
D<EB7FC0B5FCA512037EB3B3B3AAB61280A5194C7BCB22>108 D<90287FC001FFC0EC7F
F0B5010F01FC0103B5FC033F6D010F804B6D4980DBFE079026803F817F9126C1F801903A
C07E007FF00003D9C3E0DAE0F8806C9026C78000D9F1E06D7E02CFC7EBF3C002DEEDF780
DD7FFF6E7E02FC93C7FC4A5DA24A5DA34A5DB3AAB6D8C03FB5D8F00FB512FCA55E327BB1
67>I<903A7FC001FFC0B5010F13F8033F7F4B13FFDBFE077F9138C1F00300039026C3E0
017F6CD9C78080ECCF0014DE02DC6D7F14FC5CA25CA35CB3AAB6D8C07FEBFFE0A53B327B
B144>I<913807FF80027F13F80103B6FC010F15C090261FFE017F903A7FF0003FF84948
6D7E480180EB07FE4890C76C7E4817804980000F17C048486E13E0A2003F17F0A249157F
007F17F8A400FF17FCAB007F17F8A46C6CEDFFF0A2001F17E0A26C6C4A13C0A26C6C4A13
806C6D4913006C5E6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB612C0010392C7FCD9
007F13F80207138036347DB23D>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E113
80EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F13006F5A4A90C7FCA45CB3
A8B612E0A52A327CB132>114 D<903907FF8070017FEBF1F048B6FC1207380FFC01391F
E0003F4848130F491307127F90C71203A2481401A27FA27F01F090C7FC13FCEBFFC06C13
FEECFFE06C14FC6C806CECFF806C15C06C15E06C15F06C7E011F14F8010114FCEB000FEC
007FED1FFE0078140F00F8140715037E1501A27E16FC7E15036D14F86D13076D14F001F8
EB1FE001FFEBFFC04890B51280486C1400D8F81F13FCD8E00313C027347CB230>I<14F8
A51301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8
C7FCB3A7167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D1480
6D6C1300EC0FFC26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AC5EA25E
A25E7E6EEB0F7F017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114C0
9027003FFE00EBC0003B337BB144>I<B60081B500FC90387FFFF0A500019026E0000390
C73801FC006E6F5C6C6F5E6E6F1303017F61A26E6F1307013F4A5E846E49150F011F616E
6F131F6D4A93C7FC179F03806E5B6D021F153EEF0FFE6DD9C03F5DEE3E0703E06E13FC6D
027E5DEE7C0303F015816D4A6C5C03F815C3DA7FF95E4C7E03FD15E7DA3FFF5E4C137F19
FF6E496D5BA26E94C8FC4C7FA26E5E93C7120FA26E486E5AA202015E4B1403A26E486E5A
54327EB059>119 D<007FB500C090387FFFE0A5C601F0C73803F8006E5D017F5E6E1407
013F5E80170F011F5E6E141F6D93C7FC6F5B6D153E6F137E6D157C6F13FCA26D6D5B1601
6D5DEDF803027F5CEDFC07023F5CEDFE0F021F5C15FF161F6E91C8FC16BF6E13BE16FE6E
5BA26E5BA36E5BA26F5AA26F5AA26F5AA393C9FC5D153E157E157CD81F8013FC486C5B38
7FE001D8FFF05B14035D14074A5A49485A007F133F4948CAFC383F81FE381FFFF86C5B6C
13C0C648CBFC3B477EB041>121 D E /Ff 5 115 df<EC1FF891B57E010314E0010F14F8
4980017F8090B7FC48D9F80F1380DAC00113C048496C13E04848C7123F4848EC1FF04914
0F484815F81607484815FCA248481403A24915FEA200FF1501A290B7FCA517FCA290CAFC
7FA2127FA27F123F6D15FCA26C6CEC01FE7F6C6C14036C6C14076DEC0FFC6C6D131F6C01
E0EB7FF86C9039FC03FFF06DB612E06D15C06D158001071500010114FC6D6C13E0020790
C7FC2F3679B43E>101 D<923801FFC0030F13F0033F13FC92B512FE5C4A14FF5C4A1303
EC1FF89238F001FEEC3FE09238C000FC027F14005DAA003FB712F05AB812F8A36C16F0A2
C7D87F80C7FCB3B3003FB7FCA2481680A36C1600A2304A7CC93E>I<DA0FF0EB1FF0DA7F
FEEBFFFC49B5008313FE010714EF4991B6FC5B5B90267FF81F13F19026FFE007EB00FEDA
8001147C4890C7EB800049147F00038249143FA200078249141FA66D143F00035EA26D14
7F00015E6D14FF6C6D4890C7FCECE00790397FF81FFE90B65A5E485D5E01F914802703F8
7FFEC8FCEC0FF091CAFCA46C7EA213FF6C90B512F8EEFFC06D15F090B712FC4816FF4817
804817C04848C7000F13E0D81FF09138007FF04848ED1FF84915074848ED03FC90C91201
A24817FE481600A56C1601A26C6CED03FC6D15076C6CED0FF8D81FF8ED3FF001FE15FF6C
6C6C010313E06C01FC017F13C06C90B71280C6EEFE006D5D011F15F0010715C001004AC7
FC020713C038517DB33E>I<ED07FC3B3FFF803FFF804891B512E0B500C314F802CF8002
DF806C90B7FC6CDAF80F1380D8003FD9C00113C092C713E04A143F4AEC1FF04A15F84A14
0F4AEC07FCA217034A15FE1701A318FF83A95F18FEA280170318FC6E140718F86E140FEF
1FF06E143F6EEC7FE06EECFFC0DBC0031380EDF01F92B6120002DF14FC02CF5C02C35C02
C114C0DAC07F90C7FCED0FF892C9FCB3003FB512C04880B67EA36C5C6C5C384F7FB33E>
112 D<EE07FE263FFFF890387FFFC0484AB512E0B5D8FC0714F05D4B14F86C5C6C91387F
FC0FD80003EBFFC002FD90380007F0DAFFFEEB03E003F890C7FC5D5DA25D5DA292C9FCA2
5CA45CB3A3003FB612FC4881B7FCA37E6C5D35347CB33E>114 D
E /Fg 5 115 df<ED7FF00203B5FC021F14E0027F14F849B67E4915FF010F8249824982
49EBC01F9027FFFE00037F4801F801007F48496E7E02C0143F48496E7E4890C8120F4915
07001F8349815B003F18804981A2127F4917C08312FF90B9FCA71980190001C0CBFC7F12
7FA37F123F7FA26C6C163F6DEE7F806C6CEEFFC0A26C6D5C14E06C6D4A13806C01FC5C6C
6D021F130090267FFFC05B6D9039F801FFFE6D90B65A6D5E6D5E6D5E01005E023F92C7FC
020F14FC020114E09126001FFEC8FC3A4179BF4A>101 D<4CB47E041F13F093B512FC03
0380030F805D4B15805D92B7FC4AEBFC074A13F0DCC00313004A13804C6C5A4A48EB0078
95C7FC5DAB003FB812F04883B97EA56C5F6C5FC7D80FFCC9FCB3B3A8001FB712FE488248
83A56C94C7FC6C5E39597BD84A>I<F00FF8912601FFC0EB7FFE020FD9F803B51280023F
EBFE0F91B6009F14C0010392B612E05B5B5B4916F84901809138C07FC09126FE003F1300
D9FFF8010F9038803F804A6DEC040048496D6DC7FC4A7F48496D7FA291C8127F4883A249
153FA66D157FA26C5F6E14FFA26C6D495B6E5B6C6D495B6E5BD97FFE013F90C8FC6E6CB5
FC92B55A90B75A5F5F485E1780D9FE3F49C9FC020F13F8020113C091CCFCA47FA26C7F14
E46DB612E017FF6D16F04916FC90B9FC000318C08548844801C0C7003F7F4848C8120149
9238003FFCD83FF0EE0FFE4916074848707E84498200FF1980A290CB127FA56D17FFA26D
5E007F19006D5ED83FF8EE0FFE6D161F6CB4EE7FFC6C01C04A485A6C01F8020F5B9126FF
C001B5FC000191B712C06C606D94C7FC011F16FC6D5E010316E0D9007F92C8FC020F14F8
DA007F90C9FC43627CBF4A>I<EE0FFC263FFFF090B57E48D9F80714E0DAFC1F14F8B549
14FE92B7FC02FD826C90B87E856CDBE01F7FD8000FEC000703FC01017F4B6D7F03E0143F
4B6E7E4B140F8592C87E4A6F1380A34A6F13C0A284A21AE0A2197FAA19FFA21AC0A26E5D
A24E138080606F1600606F4A5A6F143F6F4A5A6F4A5A6F130303FF010F5BDCC03F5B93B6
5A6102FD93C7FC02FC5D6F5C031F14F0030714C0030191C8FC9238003FF093CAFCB3A400
3FB6FC4881A2B77EA36C5DA26C92CAFC435F7FBE4A>112 D<EF0FFE003FB591B512C048
DA800314F0B6D8C00F14F8043F14FC93B6FC03C115FE15C36C14C76C02CFEBF80FC701DF
13C092B5380007FC04FCEB03F84CEB01F004E090C7FC5E5E93C9FC5DA25DA25DA25DA25D
A45DB3A6003FB712F84882B8FC83A35F7E6C5E3F3F7BBE4A>114
D E /Fh 50 123 df<EEFF80030F13F092383FC0789238FE001CDA03F8130E4A48133FDA
1FE013FF4A5A4B5AEC7F005C5CEE00FE010115784A1400A513035CA4EE01FC0007B7FC17
F8A23A0007F0000F1607A2130F4A14F0A4160F131F4A14E0A4161F133F4A14C0A4163F13
7F91C71380A4167F5B491500A31201486C903801FF80B5D8F83F13FC5DA230407EBF33>
12 D<39078003C0391FE00FF0003F131F01F013F8A6390F3007980000EB001801701338
01601330A201E01370491360A2000114E039038001C001001380481303000EEB0700000C
1306001C130E485B485B485B4813601D1C75BE2D>34 D<EA0780EA1FE0123F13F0A6EA0F
30120013701360A213E013C0A21201EA038013005A120E120C121C5A5A5A5A0C1C71BE19
>39 D<007FB5FCA2B512FEA418067C961E>45 D<121EEA3F80EA7FC012FFA41380EA7F00
123C0A0A788919>I<13F0EA01FC1203EA07FEA313FCA2EA03F8EA01E0C7FCB3121EEA3F
80EA7FC012FFA41380EA7F00123C0F2778A619>58 D<000FB912FE5AA27ECDFCAE007FB9
12F0BAFCA27E3F1679A147>61 D<17E016011603831607A2160FA2161F83163FA2167F16
7716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED78
00157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0
171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF
80EC3FFEB500F00107B512FC19F85E3E417DC044>65 D<DCFFC01338030F01F01378037F
01FC13F0913A01FF803F01913A07FC000781DA1FE0EB03C3DA7FC0EB01E74AC812FF4948
ED7FE0D907FC153F495A4948151F495A4948150F494816C018074890C9FC485AA2485A00
0F1880491603121FA248481607A295C7FC485AA412FF5BA75BA2181C183C1838A27F007F
1778187018F0003F5F6D150160001F16036C6C4B5A95C7FC6C6C5D6C6C151E6C6C5D6C6C
15F86D6C495A6D6CEB07C0D91FF0EB1F80D907FE01FEC8FC0101B512F86D6C13E0DA07FE
C9FC3D4276BF42>67 D<013FB812F8A39026007FF0C7127F6E48140F18034B14011800A3
1978147F4B1570A502FF143892C7FCA3190017784915704A14F016011603160F91B6FC49
5DA29138FC001F16071603160101075D5CA2197019F019E0010F4A5A4A90C7120119C0A2
18031980011F16075CF00F00A260181E013F163E4A157E4D5A1703017F150F01FFEDFFF8
B9FCA2603D3E7DBD3E>69 D<013FB812E0A3903A007FF000016E48EB003F180F4B140718
03A31801147F4B15C0A514FF92C71270A395C7FC17F0495D5C160116031607161F49B65A
A39138FC003F160F160701075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5133F5CA313
7FEBFFF0B612F8A33B3E7DBD3B>I<4BB46C1370031F01F013F0037F9038FC01E0913A03
FF807E03913A0FF8000F83DA1FE0EB07C7DA7F80EB01EF4AC812FFD903FE16C04948157F
4948153F495A4948151F495A4948168091C9120F5A485AA2485A000F18004982121FA248
485EA295C7FC485AA412FF5BA6043FB512E05BA29339001FFC00715AA2607F127FA2171F
123F6D5EA2121F7F000F163F6C7E6C6C4B5A7F6C6C15FF6C6DEB01EFD93FC0EB07C7D91F
F0EB1F87D907FE9038FE03800101B5EAF8016D6C01E0C8FCDA07FEC9FC3C4276BF47>I<
013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B
5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA4
5F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC61
15C0483E7DBD44>I<021FB512FCA3DA000713006F5AA25EA41507A25EA4150FA25EA415
1FA25EA4153FA25EA4157FA25EA415FFA293C7FCA45C121FD87F805BEAFFC0A214035D13
804A5AEAFE0000F8495A48495A00705C6C495A6C01FEC8FC380F81FC3803FFE0C690C9FC
2E407ABD2F>74 D<013FB512FEA25E9026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9
FCA55B5CA513035CA513075CA21838A21870130F5CA218E0A3011F15014A15C01703A217
07EF0F80013F151F4A143F177FEFFF00017F140301FF143FB9FC5FA2353E7DBD39>76
D<90263FFFF0933807FFFE5013FC629026007FF8EFFC00023F4D5AA2023BEF77F0A2DA39
FC16E7A2F101CF0279EE038FDA70FE5FF1070FA2190E1A1FDAF07F151C02E06019381970
6F7EF1E03F130102C0DB01C05BA26F6CEB0380A2953807007F0103160E4A6C6C93C7FC60
A2606201076D6C5B02005F60A26F6C485A94380380015B010EDB07005BA2923801FC0EA2
4D1303131E011C6D6C485C5FA25F1907013CEC7FC0013860013C5D137C01FE6EC7120F26
07FF80013E4A7EB500FC031FB512F8043C5E4A131C573E7DBD53>I<90263FFFE0023FB5
FC6F16FEA29026003FF8020313C0021F030013004A6C157C023B163C6F15381439810238
167802787FDA707F157082153F82031F15F002F07FDAE00F5D8215078203031401010180
DAC0015D82811780047F1303010315C04A013F5C17E0161F17F0040F1307010715F891C7
000791C7FC17FC160317FE04015B4915FF010E6E130E188E177F18CEEF3FDE011E16FE01
1C6F5AA2170FA21707133C01386F5A133C017C150113FE2607FF801400B512FC18705C48
3E7DBD44>I<923803FF80031F13F09238FE01FE913903F0003FDA0FC0EB1FC0DA3F80EB
07E0027EC76C7E49486E7E49488149486E7E4948157F495A013F17804948ED3FC049C9FC
A24848EE1FE012035B000718F05B120FA2485A19F8123F5BA2127FA219F04848163FA5F0
7FE0A35BF0FFC0A219805F19007F4D5A127F4D5A60003F160F6D5E001F4C5A4D5A6C6C4B
5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C4A5A017FEC1FC06D6C495AD90FE001FEC8FC
903903F807F80100B512C0DA0FFCC9FC3D4276BF47>I<013FB612FEEFFFE018F8903B00
7FF0000FFC6E48EB01FF7113804BEC7FC0183F19E0F01FF0A2147F5D19F8A402FFED3FF0
92C8FCA219E0A2F07FC05B4AEDFF8019004D5A4D5AEF0FF80103ED3FE04A903801FF8091
B648C7FC17F002FCCAFCA213075CA5130F5CA5131F5CA5133F5CA3137F497EB612E0A25D
3D3E7DBD3E>I<013FB612F017FF18E0903B007FF0003FF86E48EB07FCEF01FE4B6D7EF0
7F8019C0183F19E0147F4B15F0A502FFED7FE092C8FCA219C0F0FF80A2494B13004A5D4D
5AEF0FF04D5AEF7F800103DA07FEC7FC91B612F017809139FC0007E0EE03F8EE00FC0107
814A147F717EA284A2130F5CA484011F157F5CA41902013F17075CA2F0F00F017F170E49
6C143FB600E0011F131C94380FF83C4B01071378CA3801FFE09438003F8040407DBD43>
82 D<9239FF8003800207EBF007021F9038FC0F0091387F00FE02FCEB1F1FD903F0EB07
BF49486DB4FC49487F4A6D5A49C8FC49157E133E137E173E49153CA57F1738A26D92C7FC
808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F020380DA003F7F
15031500707E163F161FA2160F121CA31607160F003C5EA35F003E151F94C7FC007E5D00
7F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC8FCD8
E00713F839C0007FC031427BBF33>I<0007B912F0A33C0FFE000FF8003F01F0160F01C0
4A13034848160190C7FC121EF000E048141F5E1238A212781270153F5E5AA3C81600157F
5EA515FF93C9FCA55C5DA514035DA514075DA5140F5DA3141FEC7FFC0003B7FCA33C3D76
BC42>I<B600E090B512FC4B15F8A2000101C0C7000F13006C49EC03FCEF01F091C9FC60
A317015A495EA417031203495EA4170712074993C7FCA45F120F49150EA4171E121F4915
1CA4173C123F491538A31778177017F05F001F15015F16036D4A5A000F93C8FC5E6C6C14
1E6C6C5C000115F86C6C495A017FEB07C090393FC03F8090260FFFFEC9FC010313F89038
007FC03E4073BD44>I<B6017FB5D88007B512804A1A00A2000701C0010101E0C713F06C
90C80180EC3FC06C48735A99C7FC057F150E1B1E6D191C6C1A3C1B3805FF15787214705E
636EEB03BF017F4E5AEE073F505A040E7F051F4AC8FC161C6E170E013F14386216780470
6D5BEEF00F04E05D90381FE00104C015F003035E0480140106F85B9226070007130302F0
5F010F010E150797C9FC5D190E4BEB03FC616E5A01075F5D61DAF9C014FE05015BECFB80
02FF6F5A7F92C75CA24A93CAFC835C606D5A605C604A15781870594074BD5D>87
D<0118130C0138131C491338491370484813E039038001C0390700038000061400000E5B
48130E0018130C0038131C00301318A20070133800601330A300EFEB778039FFC07FE001
E013F0A4397FC03FE0A2393F801FC0391E000F001E1C6CBE2D>92
D<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82A248140782A26C5A13
7890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848
133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F5B913903BF07009038
80073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97
D<EB3F80EA1FFFA3C6FC137FA291C9FCA55B5BA512015BA4EC07F80003EB3FFF9039F8F8
0FC09039FBE003E09039FF8001F891C77E5B4848147E49147F5B821780A2120F5B17C0A3
167F001F16805BA4EEFF00123F5B4B5AA24B5A5E007F4A5AA24B5A6D495A4BC7FCD87CE0
137E39F87001F839F03C07E039E00FFF80260003FCC8FC2A4077BE33>I<EC1FF0ECFFFE
903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F04848EB3FE0485AA2
4848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC0380150716006C6C
5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0FF0242A7AA828>
I<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0A491380FF03FECFF
FC902603F81F138090390FC007BF90391F8003FF90387E0001497F0001157F4848150048
5A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E1507A26C4A5A7F00
1F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE0FD90FF0EBE0002D
407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F000F80017E14C049EB
07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FCA2D8FF80C8FC90C9
FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B6C6C485A3900FC07
C0D93FFFC7FCEB07F8242A7BA828>I<ED07F0ED3FFCEDFC1E913803F03F4A48B4FC4A48
1380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513035CA50007B512F8A326
0007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5BA4EA03FF007F13FEB5FC
A229407DBF1C>I<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039
07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49
5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F
A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00
3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903
F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513
035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049
5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915
00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14
FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F
1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<ED0780ED1FE0153F
16F0157FA216E0153F16C0ED0F0092C7FCACED7F80EC3FFF1600A2140180A35DA41401A2
5DA41403A25DA41407A25DA4140FA25DA4141FA25DA4143F5DA4121E267F807FC7FCA200
FF137E14FE5CEB01F8495A387C07E0383C0FC0D80FFFC8FCEA03F8245187BD1C>I<147F
EB3FFFA313017FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F06F1380EE
FE00010F14F84A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0ECCFF814
FF497F14F9ECE1FE14C04A7E4A7E4980017E133F82151F82150F01FE8049130782A20001
81486C49B4FCB5D8F03F13F04B13E0A2303F7EBE30>I<143FEB1FFF5BA213017FA214FE
A5130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A5
5B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>I<902707F007F8EB03FCD803FFD91FFF90
380FFF80913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C003F090260FE700
EBE38002EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14074A4A14F0A501
3F021F140F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992C71380A300014B
147F486C496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907F007F8D803FFEB
1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85C
A24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A30001
5D486C491380B5D8F87F13FCA32E287DA733>I<EC0FF0ECFFFE903903F01F8090390FC0
07C049C66C7E013E6D7E01FC6D7E48488049147C0003157E485A000F157F5B121FA2485A
A2007F1680A2170048C85AA54B5AA25E5A6C4A5A7E4B5A5E6C140F6C6C5C4B5A6C6C013E
C7FC6C6C5B6C6C485A3900FC0FE090383FFF80D90FF8C8FC292A7BA82D>I<91387F01FE
903A7FFF0FFFC09139FE3E03F09238F801F8903A01FFE000FE4B137F6D497F4990C71380
4A15C04A141FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0130F4A147F18
80A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC91388F01F891
3883FFE0028090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8A3343A81A733
>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC
13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201
487EB512FEA325287EA724>114 D<9138FF81C0010713E390381F807F90397C003F8049
131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015
F06C6C7F011F7F13079038007FFE1403140100381300157EA2123C153E157E007C147CA2
007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>
I<EB0380A4130791C7FCA25BA25BA2133EA2137E13FE12011207001FB512C0B6FCA2D801
FCC7FCA312035BA512075BA5120F5BA41407001F130E13C0A4141E141C1380A26D5AA200
0F5B14F03807E1E03801FF80D8007EC7FC1A3978B723>I<01FE147F00FFEC7FFF4914FE
A20007140300031401A34914FCA4150312074914F8A41507120F4914F0A4150F121F4914
E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E3801FFF8
26003FE01380282977A733>I<B539E007FFF05D17E02707FE000313006C48EB01FC6F5A
5E00014A5A5EA24B5A6D1307000092C7FC5D150E6D5B7F5DA25D1480013F5B14815D14C3
011F5B02C7C8FCA214CE14EEEB0FFCA25CA26D5A5CA25CA26D5A2C2878A630>I<B500C3
B53803FFFCA204FE14F8290FFE003FE00013C0D807F86D48EB7F000003173E183C150F18
386D5E0001141F705B153F4D5A15776D4B5A0000ECE7F04DC7FCEC01C3170E9038FF0383
017F5D91380703F85FEC0E01021E5CD93F9C14F002BC6D5A02B813FDDAF8005B4A13FF5F
6D5A94C8FC5C4A137E167C6DC7FC1678010E14383E2878A642>I<48B539C07FFFC0A33C
000FFE003FF8006D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F
81C0EDC380DA1FC7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02
707FECE01F010180903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497E
B5D8803F13F8A332277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01
FC705A5F01014A5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05E
ED81C015C191381FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9
FC5C140E141E141C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3F
F0EA0FC0343A80A630>I<017FB512FEA2ECC00190397E0003FC49EB07F849EB0FF049EB
1FE049EB3FC0ED7F8000011500495B4A5A4A5A4848485A4A5AC7485A4A5A5D147F4AC7FC
495A495A49481370494813E0495A5C133F90387F8001D9FF0013C0485A48481303485A48
48EB078049130F4848131F003F143F397F8001FFB71200A227277EA628>I
E /Fi 57 122 df<922601FFFC903801FFE0033F9026FF801F13F84AB6D8E07F13FE020F
03F9B6FC023FD9C00FB500C0138091277FFC0003D9FE0113C0902601FFE049495A494949
494813E04990C714F049484A13E0495A19C0495A7413C0017F17804A6E6E138071913800
7E007192C7FCAEBCFCA526007FF8C7000301C0C8FCB3B3A7007FB5D8F803B612F0A55354
7DD34E>11 D<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FCDA
FFF0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190C7
FC715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03B6
12C0A542547DD34B>I<B712F0AB240B7F9F2D>45 D<EA07F0487E487E487E487EB51280
A76C13006C5A6C5A6C5A6C5A1111769025>I<157815FC14031407141F14FF130F0007B5
FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>49
D<EC3FFE0103B512E0010F14FC013F14FF90B712C048D9C07F7F2703FE000F13F8D807F8
01037FD80FE06D7F48486D7F48488001F01680486C6E13C07F486C6E13E07FA27013F0A5
6C5AA26C5AEA0FF0EA03C0C914E05EA218C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B
4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC
02FEEC03E0495A495A495A495AD91F80140749C8FC013E150F017FB7FC90B812C05A5A5A
5A5A5A5AB9FC1880A4344E79CD43>I<91380FFFC091B512FC0107ECFF80011F15E09026
3FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D15
E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B
5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113F89238007FFE707E701380
7013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318FC
A25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A5A
6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<177C
17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E157C
15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A13
1F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48C7
FCAF020FB712C0A53A4F7CCE43>I<D80380150ED807E0157E01FEEC03FED9FFF0137F91
B65A5F5F5F5F5F94C7FC5E5E16F016C093C8FC15F801E190C9FC01E0CAFCABEC0FFF027F
13F001E3B512FE01E76E7E9026FFF8077FDAC0017F49C713F8496E7E49143F4981496E7E
6C481680C9FC18C08218E0A418F0A3EA0FE0487E487E487E487EA418E0A35B6C484A13C0
5B491680003EC85A003F17006C6C4A5A6D5D6C6C4A5AD807F8495BD803FE01075B2701FF
C03F5B6C90B65A013F4AC7FC6D14F8010314C09026007FF8C8FC344F79CD43>I<ED0FFF
92B512E0020780021F14FC91397FFE03FE903A01FFF0007F4901C0EB3F804990C7121F49
48EC7FC0494814FF49484913E049485B01FF5C485BA2485B5AA2486F13C04A6D1380486F
1300177E94C7FC5AA291CAFC5AA21508913801FFF8020713FFB54814C04A14F04AC66C7E
023C6D7E4A6D7E4A6D7E7013804A15C0A24A15E07013F05C18F8A491C714FCA37EA67EA4
6C17F880A27E18F06C5D18E06C6D15C07E6E4913806C6D15006D6C495A6D6CEB7FFC6DB4
48485A6D90B55A010315C0010092C7FC023F13FC020713C0364F7ACD43>I<121F7F7FEB
FF8091B81280A45A1900606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A5F
4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15FF
A24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC0
6E5A395279D043>I<913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A3F
E0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717C04980120F18E0177FA212
1F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B92
38FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC0107
81011F81491680EBFFE748018115C048D9007F14E04848011F14F048487F484813030300
14F8484880161F4848020713FC1601824848157F173FA2171FA2170FA218F8A27F007F17
F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C
01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<9138
0FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E4849
80486F7E484980824817805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA37E
A25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C301030283
13F89039007FFE03EC00401500A218F05EA3D801F816E0487E486C16C0487E486D491380
A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807FFE
C7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7ACD43>I<EA07F0487E487E
487E487EB51280A76C13006C5A6C5A6C5A6C5AC8FCB3EA07F0487E487E487E487EB51280
A76C13006C5A6C5A6C5A6C5A113576B425>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C
7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E030781
16E083030F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D8402
03834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A8201
0185A24A820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A5
5B547BD366>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F
070F7F737F878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A0607
13F892B812E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F8773
7F747E1C807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F
5B19074F5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601
FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EB
C07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F8824949
824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3
485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A
1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C
5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF002
0091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FC
F1FF801AF01AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E74
7F747F86747F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80
A2631D00A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B5
12C0060F91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7
000114C0F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A4
97C7FC1701A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B3E
A31B7CA395C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF
1907191F0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF000
7F191F190785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A3170317
07170F177F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A51
7CD055>I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA
803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848
C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B48
1A3FA24849181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C700
3FEBC000A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5
FC6D13FF6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC0
7F033FEE001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B8D8C003B8
FCA5D8000701F8C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8C003B8FCA560527C
D169>I<B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I<B800C091B612F8
A5D8000701F8C90003EBF8009738007F8051C7FC505AF203F8F20FF0505A505A505A50C8
FCF101FCF107F84F5A4F5A4F5A4F5A07FEC9FCF003FC4E5A4E5A4E5A4E5A4E5ADD01FECA
FC4D5A4D5A4D5A4D7E173F4D7E4C487E4C7F5E4C804C804C80EEFF7F9226F9FE3F7FDBFB
FC809226FFF81F7F4C7EDCC0077F0480804C7E4B6D804B6D804B8284727F727F8684727F
727F8784728087737F85737F87737F85737F88857380747F888697B512FCB800C0013FEC
FFFEA55F527CD169>75 D<B812F8A5D8000701F8CAFCB3B3A91A7CA41AFC1AF8A51901A3
1903A219071AF0190FA2191F193F197F19FF180360183F4DB5FCBB12E0A546527CD151>
I<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA202EF6DEF03CFA202
E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D173CA26F6C1778A26F6C17F0A26F
6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA26F6D5DA3706C5DA2
706C5DA2706D495AA2706D495AA2706D495AA3706D49C7FCA2706D131EA2706D5BA2716C
5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101FFC8FCA3715BA2715BA2725AA2
725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD180>I<B600FC93B7FC8181A282
D800076E9239003FFC0070EE07E08282A28202EF7F02E77F02E380A202E18002E0806F7F
6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F707F707FA2707F708070807080858371
7F717F717F717FA27114807114C07114E07213F07213F8A27213FC7213FE7213FF721487
A27214C77214E77313F77313FF85A285858585A28586868686A286868686A2D93FFC187F
B7173F1B1F1B0F1B07755A60527CD169>I<93380FFFC00303B6FC031F15E092B712FC02
03D9FC0013FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901
E0ED1FFF49496F7F49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83
481B804A83481BC0A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C
1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B
6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0
011F13F0020F01FC90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0
565479D265>I<BAFC19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313
C0070F13E01BF0857313F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0
614F13C04F13004E485A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A55052
7CD15C>I<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F
737F85737F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095
B512C092B8C9FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F
8684A28684A787A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807
039038FE07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82
D<91260FFF80130791B500F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801
E0EB0FFD4801800101B5FC4848C87E48488149150F001F824981123F4981007F82A28412
FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C
16FC6C16FF6C17C06C836C836D826D82010F821303010082021F16801400030F15C0ED00
7F040714E01600173F050F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0
A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0
486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<00
3FBC1280A59126C0003F9038C0007F49C71607D87FF8060113C001E08449197F49193F90
C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A55351
7BD05E>I<B800C00103B612FCA5D8000701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC
81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E
6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF8030F90B65A030316C0DB007F92C9FC04
0F14F8DC007F13805E537CD167>I<B700FC017FB600FE91B612F0A5D8003F01C0C8001F
01E0C9EBF8006F71EE0FC06D7161876F1C1F6D7196C7FC6F8373606D1E3E6F836D716087
6F1CFC6D666F4B801F016D66704A806E525A88704A17076E059F5F70021F80080F160F6E
6570023F806EDC3E074CC8FC8870027E5F6EDC7C03163E7002FC804F6C167E6E1C7C7001
01814F6C16FC6E745B70010317016E4C6D5D060716C00580496D14036F63DDC00F16E04F
6D14076F07F05BDDE01F170F6F92C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C
6E5C6FF1FE3EDDFCFC177E6F4A6E147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5B
A24E817061A295C97E7061A270487090CAFCA37048705AA24D1601040360A27048705A84
537DD18B>87 D<B8030FB61280A5D8000F01FCCA003F90C7FC6FEF07F86D6D606D4F5A82
6D6E4C5A6D4F5A826E6D4CC8FC6E18FE826E6D4B5A6E4D5A826E6D4B5A6E4D5A836E6E4A
5A6E4D5A836F6D4AC9FC6F5E715C6F6D495A6F1503715C6F6D495A6F150F06805B6F6E48
5A6F153F06E05B706D48CAFC705C725A70EBFDFC7013FF61705C82705C6182715B96CBFC
B3AA030FB712F8A561527ED166>89 D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F
2703FE000113F0486C6D7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9
FCA6037FB5FC020FB6FC91B7FC01071487013FEBF0074913803901FFFC004813F0485B48
5B485B4890C7FC5A5BA2485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C90
26C003E1EBFFE06C9026F81FC014F06C90B5487EC6ED001F011F01FC010713E0010101E0
90C8FC3C387CB641>97 D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFF
C092B612F002F301017F913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A82
4A6E7FA2727EA285A28584A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F
495BDACFC04990C7FCDA87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FC
C8FC90C7000313C041547BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F90
38C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F1380
91C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E
6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B5
5A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4
913801FFE0021F13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC
49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C
7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D
90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13
FC49B6FC010715C04901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48
178048497F18C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA612
7FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D
6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034
387CB63D>I<ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB80
7F49903800FFFC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A52600
7FF8C8FCB3B3A7007FB512FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDA
FC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE001EBF83F48496C13E048499038
7FF01F4890C7D83FF813E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C
6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F0
2607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C83
6D828448B9FC12074848C700031480D81FF8EC003F4848150748486F13C083485A83A56D
5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE
011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5
FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C
8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542
537BD24B>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB
3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I<EB3FF0B5FCA512017EB3B3B3B1B6
12F0A51C537BD225>108 D<D93FF0D91FFCEDFFE0B591B500C0010713FE030302F0011F
6D7E030F6E017F8092271FE07FFCD9FF037F922A3F001FFE01F8007F0003027C9126FF03
E080C602F06DD90780137FDAF1E0038FC77FDAF3C0159EDAF7806D01BC143F07FC8102FF
C75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB512FEA567367BB570>I<D93FF0EB1F
FCB591B512C0030314F0030F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1
E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<
913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C
7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880
A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B
6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC
020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F30101
7F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717F
A285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F49
90C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1
B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF891
39E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0F
F04A90C7FCA55CB3AAB612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC
120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881A27FA27F01F091
C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15C0
1300020714E0EC003F030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D14
1F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F80714
8048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A313031307A2130F131F13
3F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015
806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801
FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E3
13F06D6CD907C3EBFFC0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7
FC42377BB54B>I<B600F00107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F163E6E15
7E013F167C6E15FC6D5E6F13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F6D93C7
FC815F6E6C133E177E023F147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C16FF6E
5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E07FB5D8
C003B512C0A5000101F0C701F0C7381FF8006E027FED07E06C715DA26E023F150F017F70
5DA26E181F013F4B6C92C7FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F315FC6D
715B160303E001E114016D020702E05B03F013C06D71485A160F03F8D9807F13076D05F8
5B93381F003F03FC160F027F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDBFF7C01
0F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E5F93C8
123F6F5EA2033E6FC9FC5A367DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7
FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE01
4C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B
7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F
02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A5
42357EB447>I<B600F00107B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F16
7C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B02
7F143E6F137E023F147C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA2
6E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E48
6C137E486C137C486C13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6C
B45A6C13F000035BC690CBFC404D7DB447>I E /Fj 47 122 df<B812C0AD2A0D7EA636>
45 D<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007C7FCB3B3
B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F8010315FF010F
16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F86E148048
486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380A219FFA2
83A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D13E0A294
B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90
C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9
FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5A
BAFCA219F0A4405E78DD51>I<92B5FC020F14F8023F14FF49B712C04916F0010FD9C01F
13FC90271FFC00077FD93FE001017F49486D8049C86C7F484883486C6F7F14C0486D826E
806E82487FA4805CA36C5E4A5E6C5B6C5B6C495E011FC85A90C95CA294B55A614C91C7FC
604C5B4C5B4C5B4C5B047F138092260FFFFEC8FC020FB512F817E094C9FC17F817FF91C7
003F13E0040713F8040113FE707F717F7113E085717FA2717F85A285831A80A31AC0EA03
FCEA0FFF487F487F487FA2B57EA31A80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F
000F5ED807FE92B55A6C6C6C4914806C01F0010791C7FC6C9026FF803F5B6D90B65A011F
16F0010716C001014BC8FCD9001F14F0020149C9FC426079DD51>I<F01F804E7E187F18
FFA25F5F5F5FA25F5F5FA294B5FC5E5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED03F8ED
07F0A2ED0FE0ED1FC0ED3F8016005D15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7FC14FE
495A5C1303495A495A495A5C133F49C8FC13FE485AA2485A485A485A5B121F485A48C9FC
12FEBCFCA6CA6CEBC000B1037FB8FCA6485E7CDD51>I<01C0EE01C0D801F8160F01FF16
7F02F0EC07FFDAFF8090B5FC92B7128019006060606060606095C7FC17FC5F17E0178004
FCC8FC16E09026FC3FFCC9FC91CBFCADED3FFE0203B512F0020F14FE023F6E7E91B712E0
01FDD9E00F7F9027FFFE00037F02F801007F02E06EB4FC02806E138091C8FC496F13C049
17E07113F0EA00F090C914F8A219FC83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2
B57EA319FEA35C4D13FC6C90C8FC5B4917F8EA3FF001804B13F06D17E0001F5E6C6C17C0
6D4B1380D807FC92B512006C6C4A5B6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712
C0010F93C7FC6D15FC010115F0D9003F1480020301F0C8FC406078DD51>I<EE1FFF0303
B512E0031F14F892B612FE0203814AD9FC037F021F9039C0007FC04A90C7EA1FE0DAFFFC
6E7E494914074949EC7FF8494914FF49495B4949497F4990C7FC495D5C13FF485BA25A4A
6E5B5A715B48496E5B725A4894C8FCA35AA35C48913801FFE0030F13FE033F6D7E4B14E0
92B612F89126E1FE037FB53AE3F0007FFEDAE7E06D7EDAEFC06D7F4B6D7F02FFC76C7F4A
82717F4A82A24A828385A24A1780A54A17C0A37EA77EA47E6E1780A27EA21A007E4D5B7E
6E5E7E6E5E6C4C5B6D7E013F4B5B6D6C4A5B6D01C0495B6D6D90B5C7FC6DD9FC0713FC6D
90B65A6D5E023F15C0020F92C8FC020114F8DA001F1380426079DD51>I<EA07E0120F7F
13FCEBFFFC91B912F8A45AA21AF01AE01AC01A801A00A248606161616101E0C9123F0180
4C5A48CA485A4D90C7FC60007E4C5A17074D5A4D5A4D5A485F4D5A17FF4C90C8FCC9485A
5F4C5A160F4C5A5F163F4C5A16FF5F5D94C9FC5D5D5E150FA24B5AA2153FA24B5AA215FF
A34A5BA25CA35CA44A5BA45CA65CAD6E5BA26E5BDA03FECAFC6E5A456377E051>I<9238
3FFF800203B512FC021FECFF80027F15E049B712F849D9F0077F010F90C76C7ED91FFCEC
1FFFD93FF06E7F494802037F494882717F484980854890C9127FA24884183FA25A80A380
806E157F6E5E14FE6E7E6F4A5A6C14F003FC495B03FF495B6C1580DCE0075B6CDBF80F90
C7FC9338FE1FFE6C9238FF7FF84D5A6D16C06D5E6D4BC8FC6D6F7E6D16E00101826D16FC
023F814A8149B87E010783498390263FFE3F8190267FFC0F819026FFF003814849C6FC48
496D804849131F4890C7000780160148486E1580003F163F49150F007F7014C049150171
7E8400FF835B8484A384A21A80A27F007F1900607F003F606D160F001F606D4C5A6C6D15
3F6C6D4B5A6C01F04B5A6C01FC02035B6C01FF021F5B6D9027F001FFFEC7FC6D90B65A01
0F16F001035E010093C8FC020F14F8DA007F90C9FC426079DD51>I<F00FE04E7EA24E7E
A34E7EA24E7EA34D7FA24D80A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017
FE04016D7FA24D7E04038217F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F
047F6E7FA294C77E4C825E03016F7FA24C800303845E03076F80A24C80030F845E031F6F
80A24C81033F845E037F707F93B9FCA292BA7EA24A85A203FCC912070203865D02077180
5D86020F864B82021F865D87023F864B83027F8692CBFC874A864A840101875C496C7280
90381FFFC0B700E092B812FEA66F647BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D8
00010280C7000114F8DF003F7F080F13FF74807480867480757FA2757FA28987A289A965
A26365A2515BA298B55A505C505C5091C7FC505B505B087F13F00703B512C096B6C8FC93
B812F81BC01BF8F3FF801CE00480C8001F13F8080713FE08016D7E7480757F757F757F89
757F89871E80871EC0A41EE087A663A21EC0A3631E80A2511400A2515B515B6398B55A50
5C08075C081F5C97B6C7FCBD5A1CF81CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03
C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F91
27F8007FFE13FF92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5
FC023F01FC16074A01F08291B54882490280824991CB7E49498449498449498449865D49
498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25C
A3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E
616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF80
6E01FC4C90C7FC020F01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE003
3F02F8013F1380030F91B648C8FC030117F86F6C16E004071680DC007F02F8C9FC050191
CAFC626677E375>I<BB12E0F2FF801BF01BFE757E1CF0D800010280C7000780DF007F13
FE080F6D7E0801807480093F7F090F13FC757F757F877580767F8A88767F8A888AA2767F
A28A881F80A37614C0A41FE0A5881FF0B05214E0A51FC0A4521480A31F006466A2525BA2
525BA2525B666499B55A515C5191C7FC515B515B515B097F5B50B512C008075C083F91C8
FC0707B512FCBD12F01CC051C9FC1BF81B8008E0CAFC6C627AE17C>I<BD12FCA488A2D8
000102C0C71201F1000F1A01F2007F1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3
197EA3F40FC0A499C7FC19FEA31801A218031807181F18FF93B6FCA6EEC000181F180718
031801A21800A21D7E197EA21DFCA696C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F
1DE01C7F1CFF63631B0F093F13C098B5FC1A0797B6FCBEFCA31D80A35F617AE06A>I<4D
B5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F
033F9127F8007FFE13FF92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9
001FB5FC023F01FC16074A01F08291B54882490280824991CB7E49498449498449498449
865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C8
FCA25CA3B5FCB07E071FB812F880A37EA296C70001ECC000A26C7FA37E807EA26C80A26C
80A26C807F6D7F816D7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0
ED7FEF020102F8EDFFC76E02FF02071383033F02FC013F1301030F91B638FC007F03014D
131F6F6C04E01307040704801301DC007F02F8CAFC050191CBFC6D6677E37F>71
D<B96C90B91280A6D8000102C0C9000102C0C7FCB3B3A293BBFCA604C0C91201B3B3A6B9
6C90B91280A671627AE17E>I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633627CE13C>
I<B96C020FB612FCA6D8000102C0CA003FEBF0000A0390C7FC525A525AF41FF0525A525A
525A090390C8FC515AF30FF8515A515A515A50485A5090C9FC505AF20FF8505A505A505A
4F485A4F90CAFCF107FC4F5A4F5A4F5A4F5A4E485A4E90CBFCF007FC4E5A4E7E4E7E18FF
4D7F4D805F4D804D804D8094B6FC04C181DCC3FE809326C7FC7F7F9338CFF83F9326DFF0
1F7FDCFFE0814D6C804D7EDCFE00814C6D804C7F4C6D804C824C6E7F85737F8873808588
738085738088747F86747F8974808689748086748089757F87757F8A7580878A7580090F
14FCB96C010FB8FCA670627AE17E>75 D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F3
0FC0A61B1FA31B3F1C80A21B7FA21BFFA262A262625013006262624FB5FC1907191F4EB6
FCBDFC63A553627AE161>I<B700E0040FB7128082828282A2D800016EDC000101FCC7FC
719338001FC08383A28302FD808302FC80816F7F6F806F8084816F806F806F8084707F82
70807080857080827080708085717F83718071807180868371807180727F867280847280
7280877280847280737F87731480857314C07314E01CF07314F8857314FC7413FE7413FF
1D9F867414DF7414FF86A286868787A287878787A28787888888A288888890261FFFC084
B712F8881D7F1D3F1D1F775A71627AE17E>78 D<94381FFFE00407B67E043F15F04BB712
FE030FEEFFC0033FD9FC0014F092B500C0010F13FC020349C7000113FF4A01F86E6C7F02
1F496F13E04A01C0030F7F4A496F7F91B5C96C7F0103497013FF494970804B834949717F
49874949717F49874B8390B586484A717FA24891CB6C7FA2481D804A84481DC0A3484972
14E0A3481DF0A34A85481DF8A5B51CFCB06C1DF8A36E96B5FCA36C1DF0A46C6D4E14E0A3
6C1DC06E606C1D80A26C6E4D1400A26C6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D4D5B6F
94B5FC6D636D6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0031F5B023F6D4B13F06E01FC92B5
5A6E01FF02035C020302C0010F91C8FC020002FC90B512FC033F90B712F0030F17C00303
94C9FCDB007F15F804071580DC001F01E0CAFC666677E379>I<BB7E1AFCF2FFC01BF81B
FE757ED800010280C7001F80070114F0736C7F081F7F747F747F7414807414C0A27414E0
A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A25014C01D8062501400505B505B08
7F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04C0CCFCB3B3A2B97EA65E627A
E16E>I<BA12F8F1FFE01AFEF2FFC01BF01BFED800010280C76C7F070714C0070014F074
7F081F7F747F747F7480A2748089A37480A389A865A3505CA265A2505C9AC9FC505B505B
505B087F5B4FB55A0707148096B548CAFC93B812F81BC050CBFC621AFF932680000314C0
DE007F7F071F13F8737F737F737F73808885888688A2747FA688A688A676140FF71F80A3
74801F3F86771400745E746E5BB96E6E5B746E485A75EBFE07091F90B55A090715E00901
5DCF003F91C7FC0A0013FC71647AE178>82 D<DBFFFCEC01E0020FD9FFE01303027F02FC
130749B7130F0107EEC01F011F16F049D9C007EBF83F4948C7383FFE7FD9FFF8020FB5FC
4801E014014849804849153F91C97E484882001F834982003F83845B007F187FA2193FA2
00FF181FA27F190FA27FA26D17078080806C01F893C7FC80ECFF8015F86CECFFC016FC6C
EDFFE017FE6CEEFFE018F86C17FE6C717E6C846C846D17F86D836D836D8313036D18806D
6C17C0020F17E01401DA000F16F01500040715F8EE007F1703050014FC183F84060713FE
84A2007C8300FC83A2197FA3193F7EA31AFC7EA27F1AF86D177F7F1AF06D17FF6D18E06D
5E01FF18C06E4B138002E04B130002F84B5A02FFED3FFC01CF01E0ECFFF8018301FF010F
5B010191B65A6D6C5E48011F93C7FC48010315FC48D9003F14E048020149C8FC476677E3
5A>I<001FBEFCA64849C79126E0000F148002E0180091C8171F498601F81A0349864986
A2491B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3
B3A3021FBAFCA663617AE070>I<B96C023FB612FEA6D8000102C0CA0007EBF000E2007F
C7FCB3B3B3AA656D63A2821C01806570170380525A6E7F6E4F5A70171F6E626E6D4D5A6E
6D177F525A6E6E030390C8FC033F01E04B5A6F6DED1FFC6F01FCED7FF80303D9FF809038
03FFE06F02F8017F5B6F6C90B7C9FC041F5E040716F8040016C0050F4ACAFCDD003F13C0
6F647AE17C>I<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7F
D97FE001077FD9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B
6D5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F0
48B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB
01F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B
7E011F02FC130F010302F001011400D9001F90CBFC49437CC14E>97
D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF
038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F7E4B6F1380
4B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F
13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE0013F13C09127
F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E04F65
7BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901F801
0113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B5A5C5A7113
E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C
6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF
00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102FCC7FCDA00
0F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3A892380FFF804AB512F8020F
14FE023FECFF8391B712E301039138807FF3499039F8000FFB011F01E00103B5FC494913
004990C87E49488148498148834A815A485BA2485BA25AA3485BA4B5FCAE7EA46C7FA37E
A26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C0103806D6D49806D01F0D91FF7
EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14F8020314E09127003FFE00EC
C0004F657BE35A>I<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE03
7F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A8048
84485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27E
A27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E0
4A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0
020092C8FC030713F041437CC14A>I<EE3FFC0307B51280033F14C04AB612F0020715F8
4A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F05B4913E0A24913C0A270
13FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01C0C8FCB3B3B0007F
B612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8F001B5FC027FDAFE03148049
B7128F49DCDFFD13C0010FD9F00FEBFFC149D9800114014990C7EBFC0349486E6C7E4948
EC3FFF48496E018113800780130048F0C03E97C7FC48496E7FA34884A96C60A36C6D4A5B
A26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B4990B612C060D97C7F4A
C9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F8014F091B77E18FE6CEFFFC019
F06D17FC19FF6D846D846D846D84013F8490BAFC0003854801E0C712014890C9000F7F48
4816014848EE007F4848717E8512FF5B85A56D5F007F616D173F003F616D177F6C6C4D5A
6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B011F90B712F801
0717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151>I<903807FF80B6FCA6C6FC
7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83
F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8
F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FCA24880A24880A76C5CA26C91
C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5FCA6C6FC7F7FB3B3AEB712C0
A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108
D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B6
12F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026
F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEE
FDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB6
12FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267F
E07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC
8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC
020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D
7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A3
48496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19
E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13
E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151>
I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227
BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A2
7313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F
92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7
B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A>
I<D90FFFEB0FFCB690383FFF8093B512E04B14F04B14F8923907FC7FFC92390FE0FFFEC6
EC1F806DD93F0113FF6D133E157E157C15F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B
90C7FCA55DB3B0B712F8A638417BC042>114 D<913A3FFF8007800107B5EAF81F011FEC
FE7F017F91B5FC48B8FC48EBE0014890C7121FD80FFC1407D81FF0801600485A007F167F
49153FA212FF171FA27F7F7F6D92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C0
6C16F06C826C826C826C82013F1680010F16C01303D9007F15E0020315F0EC001F150004
1F13F81607007C150100FC81177F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D
16C001FEEDFF806D0203130002C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F8
007F49C7FC48010F13E035437BC140>I<EC07E0A6140FA5141FA3143FA2147FA214FF5B
A25B5B5B5B137F48B5FC000F91B512FEB8FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D
1480A2173F6D16006F5B6D6D137E6D6D5B6DEBFF836EEBFFF86E5C020F14C002035C9126
003FFCC7FC325C7DDA3F>I<902607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3
A260A360A2607F60183E6D6D147E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D
91B55A6E1500021F5C020314F8DA003F018002F0C7FC51427BC05A>I<B700C00103B512
FCA6C66C01C0C8381FFE006D6DED07F0A26D6D5E190F6D6D5E191F6D606F153F6D95C7FC
6F5DA26D6D157E19FE6D6E5C18016E5E7013036E5E701307A26E6D5C180F6E6D5C181F6E
6D5C183F6E93C8FC705BA26E6D13FEA26E6E5A17816FEBC1F817C36F5C17E76F5C17FFA2
6F5CA26F5CA26F91C9FCA26F5BA36F5BA2705AA2705AA2705AA2705A4E417DBF55>I<B7
0081B600FC0103B512FCA6C66C0180C701FCC8381FFE006F6FED03F86D047F5F856F6E16
076D646F70140F6D705F866F6E161F6D646F4A6D143F6D99C7FC4E7F6F616D1B7E6F4A6D
14FE6D6395B57E7001FC15016E62DCC0016E13036EDBF87F5D05038004E0496C14076E62
DCF007ED800F6E4B6C5D050F15C004F8496C141F6E62DCFC1FEDE03F6E4B6C92C8FC053F
15F004FE496C5C6E197E7048EDF8FE6E027E6D5C05FE15FC4D6D13FD6F601BFF6F496E5B
A24D806F60A26F496E5BA24D806F60A26F496E90C9FCA294C87E6F5FA26F486F5A047C6F
5A6E417DBF75>I<B700C00103B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E19
0F6D6D5E191F6D6D5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D
5C18076E5E70130F6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F
5C17C3A26FEBE7F0A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA270
5AA2705AA35FA25F163F94CAFC5E167E16FED807E05CD81FF81301487E486C495AA2B549
5AA24B5A5E151F4B5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91
CCFCC613FCEB1FE04E5D7DBF55>121 D E /Fk 83 126 df<00101304007C131F00FEEB
3F80A26C137FA248133FB2007E1400007C7F003C131E00101304191C75B830>34
D<903907C007C0A2496C487EA8011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D
3A007F807F80A2020090C7FCA9495BA2003F90B512FE4881B81280A36C1600A22701FC01
FCC7FCA300031303A201F85BA76C486C5AA229387DB730>I<1438147C14FCA4EB03FF01
1F13E090B512FC4880000780481580261FFEFD13C09039F0FC3FE0D83FC0131FD87F80EB
0FF001001307007E15F800FE14035A1507A36CEC03F0A2007F91C7FC138013C0EA3FF0EA
1FFE13FF6C13FF6C14E0000114F86C6C7F011F7F01037F0100148002FD13C09138FC7FE0
151FED0FF015070018EC03F8127E1501B4FCA35AA26CEC03F07E01801307ED0FE0D83FC0
131F01F0EB7FC0D81FFEB512806CB612006C5C6C5CC614F0013F13C0D907FEC7FCEB00FC
A5147C143825477BBE30>I<D803C0EB01E0D80FF01303486C497E487E150F487ED87E7E
495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B1403EA1F
F86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA25C1303A2
5C1307A290390FF001E0ED07F84A487E011F497EA24A487E133F163F90267F807F1380ED
7E1F14005BA25B1201A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D5A0001EC
01E029477DBE30>I<EB07E0EB1FF8497E137F497E803801FC7F497E810003131F13F0A6
143F92C8FC91387F0FFF9026F87E1F1380000113FEEBF9FC13FB4A6C1300D9FFF013C06C
13E0151F02C05BEB7F809038FF003F4892C7FC485C48EB807E5A15FE391FDFC0FC383F8F
E014E1397F07F1F8EB03F300FEEBFBF0EB01FF5D7FEDC006027F130F91393F801F8015C0
6C137F6CEBFFE049EBF83F018701FC1300263FFFFBB5FC6C01F15B14E06C9038C03FFC00
039038001FF8D801FCEB07E0293A7DB830>I<EA07C0EA0FF0EA1FF8A213FCA213FE120F
1207EA007EA513FE13FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300127C
12380F1D70B730>I<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF
00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA2
7F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FE
EB01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7E
EB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FE
A4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A48
5A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC038000
7EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE000003
14F86C5C6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB
13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A
6D5A23277AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA2
29297DAF30>I<EA03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA007FA2137E
13FEEA01FC1203EA07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>I<007FB612
F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3F
C0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F
80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C
1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA248
5AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13
F8497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F049
1307A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15
F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF83
13006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0497EA2130F
A2131FA2133F137F13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB512F84814FC
B612FEA26C14FC6C14F81F3977B830>I<EB07FC90383FFFC090B512F00003804814FE48
80261FF80F1380263FE00113C09038C0007F4848EB3FE090C7121FED0FF04814075A6C15
F81503A3127E1218C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A13005DEC07
FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890C8FC4848EB
01F04848EB03F8485AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03FF013F13E0
90B512F84814FE4880481580260FFE0113C09038F0007F4848EB1FE0150F16F01507A26C
5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF8002071300903807FFFE495B5D8115FF6D
1480D9000113C09138003FE0ED1FF0ED07F8150316FC150116FE1500A21218127EB4FCA2
150116FC4814036C15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB612C06C1580
6CECFE00C65C013F13F001031380273A7CB830>I<EC03FC4A7E140F141FA2143F147F15
7E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FEA2485A485A
A2485AA2485A485AA2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA91387FFFFE
91B6FCA46E5B29397DB830>I<000FB612804815C05AA316800180C8FCAEEB83FF019F13
C090B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0
C81207A216F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F
3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730
>I<EC0FF8EC7FFF49B51280010714E0131F4914F090387FF80F9039FFC007F848138038
03FE005B485A4848EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C903803FFE0010F
13F8D8FF3F13FE48B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49EB07F8ED03
FC5B90C7120116FE1500A37EA46C7E15016D14FC121F6D1303000FEC07F86D130F6C6CEB
1FF06DEB3FE03A03FF81FFC06C90B512806C15006D5B011F13F8010713E001011380273A
7CB830>I<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF
00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075C
A4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003
ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201
A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B5
12006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF0
4848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F8
6D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0
010190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A
0FFC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A4
16FEA37E7E6D130315076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013F
EBE1FC010F138190380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3F
C0157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A
7CB830>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA0FF0EA03C0C7FCAFEA03C0EA
0FF0121F13F8123F13FCA3121FA2120F12031200120113F8120313F01207EA1FE0123FEA
7FC0EAFF80EA7F00127E12380E3470A630>59 D<16F01503ED07F8151F157FEDFFF01403
4A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B
000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC
6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF815
1F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612
FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C
13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13
C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801FFF0
495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90
C9FC127E1278252F7BB230>I<EC1FE0ECFFF8010313FE010F7F4914804914C090397FF0
3FE09038FF800F4890380007F0D803FC13033A07F801FBF89038F007FF380FE01F4A13FC
EA1FC0495A003FEBFF0F903800FE07903901FC03FE007FEBF801EA7E03ECF000A2EAFE07
00FC49137EAA00FE6D13FED87E0314FCA2ECF801D87F0114F8003FEBFC03903900FE07F0
903880FF0F001F90387FFFE06D6C13C0EA0FE06E13803A07F007FE009038F801F86C6CC7
127C6CB414FE6CEB800390387FF01F6DB512FC6D14F86D14E0010314C00100EBFE00EC1F
F0273A7CB830>64 D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A201
1F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881A39038FC001F00038149
130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<007F
B512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A1507
ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F
80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>
I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903
FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC167C16005A5AAC
7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF039
01FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A7CB8
30>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E1501
6F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B5A15
034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<007F
B7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C
92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB712804816C0
B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4153E
92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F13F1
013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A491307121F5B12
3F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A2
7F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC
7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D4813
F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B
3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<007F
B6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>I<
49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C127EB4FCA24A5A1403EB8007397F
F01FF86CB55A5D6C5C00075C000149C7FC38003FF025397AB730>I<D83FFF90380FFF80
486D4813C0B56C5AA26C497E6C496C1380D803F0903803F8004B5A4B5A151F4B5A5E4BC7
FC15FE14014A5A5D4A5A4A5A141F5D4A5A4AC8FC5C13F18101F37F13F790B57E14EFECC7
F01483EC03F8140101FE7F496C7E5B157F497F82151F82150F826F7EA26F7E1501821500
D83FFF903803FFC0486D4813E0B56C5AA26C497E6C496C13C02B387FB730>I<383FFFF8
487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA27E6C16802A
387EB730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C4913E000071600
01EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA2
01E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0
486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>I<D83FFC90381FFF8048
6C4913C0B54913E0A26C6D6C13C06C6E13800003913801F800EBF7C0A3EBF3E0A314F013
F1A214F8A213F014FCA2147C147EA2143E143FA2141FA21581A2140F15C1A2140715E1A2
140315F1A21401A215F91400A3157DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C
5A2B387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E013
3FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F
6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>
I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA282178016
3FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB038
7FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F
9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93
C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EB
FFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82
D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813
7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C
14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07
F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016
0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4
3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<
3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C
6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038
007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D8
07F0903801FC00A26D130300035DA46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F
5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035BA314FB01015BA314FFA26D5BA4
6E5A6E5A2B397EB730>I<D83FFC903801FFE0486C4913F000FF16F8A2007F16F06C486D
13E0D81FC09038001FC0000F1680A76D143F00071600A7000390380F803E9039F01FC07E
EC3FE0A3EC7FF0A2147D0001157CA29039F8FDF8FCA314F8A300005D01F913FCA2ECF07C
A201FD137DA2017D5CECE03DA3017F133FA2ECC01FA2013F5CA2EC800F6D486C5A2D397F
B730>I<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C
6C495AA26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA214F10107
5BA2903803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B
2B387EB730>89 D<001FB612FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C015
3FED7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C1303
495A5C130F495A5C133F495A91C8FC5B4848147C4914FE1203485A5B120F485A5B123F48
5A90B6FCB7FCA46C15FC27387CB730>I<127CA212FEA27EA26C7EA26C7EA26C7EA26C7E
A26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A2
6D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2
ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>92
D<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0F
FC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1F
E0EA07C00F1D70BE30>I<EB3FFC48B57E4814E04880488048809038F00FFE9038E001FF
806F7E6C48133F6C4880C8121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC00EA
7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A20007
14F76C14C3C6020013C0D93FF090C7FC2B2A7CA830>I<EA3FFC487E12FFA2127F123F12
00AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A13
7F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F
806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC
2C3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907FC003F
485A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06D
EB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F8
01075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF
874913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA2
5AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB7
12E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC0107
13E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE015
0F484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06D
EB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE
00010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC4913
87903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C15C026
0007F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF90
261FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA249
7F001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF
5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE01
80130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01F01307
6CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA
3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE
07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB5
00FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00
E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023
397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A4
7EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B
000F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0
A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD
7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B
7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47E
EA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80
D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803
FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380
322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07
FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB5
00FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90
B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F849130300
7F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6C
EB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E001
0190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C
816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F01607
A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E49
5C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<
ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038FFFC3FD8001F13E092
38801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A
287EA730>114 D<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC48
80A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F90
38000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03
FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>I<EB0780497E131F
A9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE003010FEB07F8
14F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF026337EB130>I<D83F
FCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A41501A2150315076D13
0F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF8010001C0C7FC2F2880A6
30>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D
130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2
ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B
3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C000315
7EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8
A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF
81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3
F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E79038
0FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF
80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512
C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F15
1FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9
ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1
EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC48
15FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A
5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A
485A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16
F09138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F
38003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F8014039138003FF02547
7BBE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387F
FFE06E13F8801407141F5C4A13E09138FFE00092C7FC495A5CB3A21303495A137F387FFF
F0B5FC14C05C49C8FCEA7FE025477BBE30>125 D E /Fl 2 16 df<EE7FFE0307B512E0
033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA3FE0EC07FCDA7F80EC01FED901FE
C9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948707E49CB7E017E187E4984498448
48F00F8000031AC04918074848F003E0A24848F001F0A248CD12F8A2001E1A78003E1A7C
A2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A0FAB6C1A1FA200781A1EA3007C1A
3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6CF001F0A26C6CF003E0A26C6CF007
C06D180F00011A806C6CF01F006D60017E187E6D606D6C4C5A6D6C4C5A6D6C4C5AD903F8
EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0EC07FCDA0FFCEC3FF0913B03FFC0
03FFC0020090B6C8FC033F14FC030714E09226007FFEC9FC50557BC05B>13
D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580A3B712C0AA6C1580A3
6C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA72D>15
D E /Fm 86 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03F
D907F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D
91C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00
AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33
D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013
00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E
0018130C0038131C003013181C1C7DBE2D>I<4B6C130C4B6C131EA20307143EA24C133C
A2030F147CA293C71278A24B14F8A2031E5CA2033E1301A2033C5CA3037C1303A203785C
A203F81307A24B5CA20201140F007FBAFCBB1280A26C1900C72707C0003EC8FC4B133CA3
020F147CA292C71278A24A14F8A2021E5CA3023E1301007FBAFCBB1280A26C1900C727F8
0007C0C8FC4A5CA20101140FA24A91C9FCA301035CA24A131EA20107143EA24A133CA201
0F147CA291C71278A34914F8A2011E5CA2013E1301A2013C5CA201186D5A41517BBE4C>
I<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8
1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092
C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303
01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC
158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280
D93FFEC7FCEB0FF8EB00E0A422497BC32D>I<013F4C7ED9FFC04B7E2601E0E015072607
C070150F48486C4B5A023E4BC7FC48486C5D48D90FC0EB01FE003ED90EF0EB07FCDA0F3F
133E007E903A070FFFF8F8007C0200EBC1F0EE000300FC6D6C495A604D5A171F95C8FC17
3E177E177C5F16015F007C4948485A1607007E5E003E49495A020E131F003F93C9FC6C49
133E260F803C137E0238137C6C6C485B3901E0E0016CB448485AD93F0049133F90C74848
EBFFC0030F903801E0E093398007C0704B4848487E4B153C033E90381F001C4B497F03FC
133E4B150F4A48017E7F0203147C5D4A4801FCEB0380140F5D4AC7FC5C143E5C14FC5C49
5A13034948027CEB07005C4948147E011F033E5B91C8140E013E153F017E6F5B017C9238
0F803C4917380001706C5A49923801E0E0496FB45A6C48043FC7FC41497BC34C>I<EC0F
C0EC3FF0ECF878903801F01CEB03E049487E130FEC800F011F7FA2EB3F00A5EC800EA25D
A25DA25D6D6C5AECC1C0A2ECC38002E7C7387FFFFCEB0FEE14FC4A020713C06D48913801
FE006E5DEF00F06D7E4D5A496C5D010F1503D91DFF4A5A013893C7FC496C6C5B01E0150E
48486C6C131E00036E131C2607801F143C000F6E5B001F6D6C1370263F000714F06F485A
48D903FE5B913801FF03486D495A0487C8FCED7FCFED3FFE6F4814386D6D5AA2007F6E6C
14786D6D6C14704B6C14F06C6C496C6C13E0001F91393E3FC0016C6C903AFC1FF003C03D
07FC07F007FC1F800001B5D8C001B512006C6C90C7EA7FFCD90FF8EC0FF03E437CC047>
I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A
120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03801307EB0F00131E13
3E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12
FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E
131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E6C
7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A61303
14F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B48
5A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A2805CA600F0140F00FC14
3F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FDBF00EB3FFCEB0FF0EB
03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39FF03C0FF00FE147F00
FC143F00F0140F00001400A6805CA220277AC32D>I<121EEA7F8012FF13C0A213E0A312
7FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919>
44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>
I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815F8A25D14
01A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8A25C1301
A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B1201A25B12
03A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A1260225B7B
C32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848EB0F80
A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A56C6CEB
07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B90383F
03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07FFB5FC13
9FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B512E039
03F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE01270B4FC6D
EB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A5A4A5A5D
4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E0485A485A
485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF809038F80F
E03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C07FA27F5B
A2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038
000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E487EA316
E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0C6B55A01
3F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403EC077E14
06140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B120148
5A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<
00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE
90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216
E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C
6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC
2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC049133F48
48137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE903887FF80
39FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0A34914F0
A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B6C6C48
5A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90B612FCA3
16F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F0
4A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2
131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E09038F001
F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB0F807F6C
6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D
13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C048487E4890
38007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C1403A2007E
15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F1380D903
FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C7E4848
137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F153FA3
6C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE13E0EB
07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB800739
1E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F
80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779
A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A412
7F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I<15
074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34AC67EA3
020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138800001
A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F13FC00
034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 D<B712FCEEFF8017F0000190
3980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318
F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE
01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707A218FEA718FC170FA2EF1FF8
18F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A17E094C7FC373E7DBD40>I<
DB3FF01306912603FFFE130E020F9038FF801E913A3FF007E03E9139FF8000F8D903FEC7
EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A91C812014848150012034848
167E5B000F173EA24848161EA2123F5B180E127FA349160012FFAC127F7F180EA2123FA2
7F001F171E181C6C7EA20007173C6D16386C6C1678000117706C6C16F06EEC01E06D6C15
C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600FF8013F891393FF007F0020F
B512C0020391C7FC9138003FF037427BBF42>I<B712FCEEFF8017E000019039C0001FF8
6C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184717EA21980187F19C0A3F03F
E0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A6017074D5A4D5AEF7FC04DC7
FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45>I<B912E0A300019038C00001
6C6C48EB001FEF0FF01703A217011700A31870A41838161CA41800A2163CA2167C16FC15
0391B5FCA3EC80031500167C163CA2161CA21807A3180E93C7FCA4181E181CA2183CA218
7CA218F8170117031707171F48486CEB01FFB912F0A3383E7DBD3E>I<B91280A3000190
38C000036C6C48EB007FEF1FC0170F1707A21703A31701A4EF00E0A21638A31800A31678
A216F81501150791B5FCA3EC8007150115001678A21638A693C8FCAF3801FFE0B612F0A3
333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF803C913A7FF00FC07C9139FF
0001F0D903FC90380078FC4948143DD91FE0141F4948140F4948140701FF15034890C8FC
491501485A000716005B000F177C5B001F173CA2485AA2181C127FA25B95C7FC12FFAB04
1FB512F0127FA26D9139000FFE00EF03FC123FA27F121FA26C7EA212077F12036C7E7F6C
7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C902600FF80EBF83C913A7FF007F0
1C021FB5EAC00C020391C8FC9138003FF03C427BBF47>I<B6D8C01FB512F8A3000101E0
C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3A92601FFE0EC3FFCB6D8C01F
B512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD
21>I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F
005B007C130700385C003C495A6C495A6C495A2603E07EC7FC3800FFF8EB3FC026407CBD
2F>I<B600C090387FFFFCA3000101E0C7000F138026007F80913807FE0018F818E0604D
5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E4B5A4B5AED07804B7E151F4B7E
4B7E15FF913881EFF8913883C7FCEC878791388F03FE91389E01FF14BCDAF8007F4A6D7E
5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E84173F717E717EA2717E84841980
2601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612F8A3000101E0C9FC38007F80B3
B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>I<
B500C093383FFFF0A300016D93387FF800D8007F18E0D977F016EFA3D973F8ED01CFA2D9
71FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E6C1438A26E6C1470A36E6C14
E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130EA36F6C5AA26F6C5AA36F6C5A
A25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F8486C147ED807FFEF3FF8B500F8
013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8007F030713006EEC01FC6E6E
5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7F
A26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2
EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487ED807FF15
01B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E0007E0
4948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E0001834915
0300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E049163FA300FF
18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00035F6D
150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8D900
7FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EEFF8017
E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A218F8A8
18F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9FCB3A7
3801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F000FE0D9
01FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E491503
00038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163FA200FF18
F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F805B6C6C
90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F819038061FC0
D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007E09127
1FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF0318FFA2
7113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF800001D9
C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017FF95C7
FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0707E707E
83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB600C0EB3F
F094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC130C90391FFF
801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848130F001F140748C71203
003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C6C14007F7FEA3FF8EBFF
806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F891
38007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C
15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E0
0713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393FC0003F
48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E01
07B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80EC01FC
715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C6D
6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF03D407D
BD44>I<B691380FFFFEA3000301E0020113E06C01809138007F806CEF3F00017F163E18
1C6E153C013F1638A26E1578011F1670A26D6C5DA26E140101075EA26E140301035EA26D
6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F5C
A2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3F
F8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301C0
010101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60A2
4D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F001076104037F6E0281140101036104
077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0
161E023F171C047814F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0
EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA2
4B81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8C003B512E0A3C649C7EB
FC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13
F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A
913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C0
7F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F1301
49486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512
FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F04
1EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B
170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3F
E7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<EAFFFCA4EA
F000B3B3B3B3ABEAFFFCA40E5B77C319>91 D<486C13C00003130101001380481303000E
EB070048130E0018130C0038131C003013180070133800601330A300E01370481360A400
CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE
2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313005A120E5A
12181238123012701260A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C7A
BE19>96 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E7E
A3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0
485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13CF
3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA31207120312
01B1EC03FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E491580
49141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D
5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D407E
BE33>I<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B
121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F14031680
6C6C13076C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC22
2A7DA828>I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D49
131FD803F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA2
6C7E000F14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFFC1
903A01FE01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C7E
4848137E48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6FC
A290C9FCA67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C131E
017E5B90381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C
903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648C7
FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E0F
DE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E
6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120E
A3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E
140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D8
00FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1EC
01FE913807FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FCA2
5BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2
EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478EB
01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38
FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>
I<EA01FC12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D4A
5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E
1401816E7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01
FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF90
2707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9
C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF
80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091
387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C
497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F
4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA448
15FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB
1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00
FF90381FFF8091387C0FE09039FDE003F03A03FFC001FC6C496C7E91C7127F49EC3F805B
EE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE91
38C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A
7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848
EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E1507
6C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E
92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381
EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0
603901FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E
6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001F
EC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F
0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001F
B512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700
EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA3000714030003140100011400B3
A51501A31503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE00100
903880FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E00015D7F
00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E010713
1CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B28
7EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C4817006D01
0F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC1538
D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138F1C0
1F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2027C
1301023C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C690388007F8
D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5A
EB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7ED90F
007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA630>
I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495AA2EC
8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5AA2EC
FEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A214780018137012
7EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<001F
B61280A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D
4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712
07491400485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<BE12C0A2
5A0280985B>124 D E /Fn 20 122 df<13FF000313E0487F001F13FC487F805A1580B6
12C0A315E0A315F0A37EA27EA27E000713F36C13E3C61383EB00031407A215E0A3140FA2
15C0141FA2EC3F80A2147F15005C5C1301495A5C1307495A495A133F495A495A4890C7FC
485A485A485A5B6C5AEA01801C3A72F736>39 D<C0FCA48BA4C7003F0280C8120FF3007F
1C0F1C030A00801D3F8989898989A2898B1E7FA21E3FA31E1FA28BA21E0FF207F8A5787E
A4080F92C8FCA31A1FA21A3FA21A7FF101FF1907193F94B7FCA8943880003F19071901F1
007F1A3FA21A1FA21A0FA2F71FE01A07A2F73FC0A61F7F97CA1380A41FFFA3541300A366
A266671E0FA21E1FA21E3F1E7F545A65651D0F1D3F9AB5FC1C030A3F5C0907B6FCC0FCA5
67A373757AF47F>69 D<BF12FCA48AA4C7003F0280C8123F1B01F3003F1C07767F1C0089
89898989A2891F8089A289A31E7FA21FC0A21E3FA3F20FF0A3F61FE0A49BC7FCA21A1FA3
1A3FA21A7FA21AFF1903190F197F94B7FCA8943880007F190F190319001A7FA21A3FA21A
1FA31A0FA997CBFCB3A9BBFCA86B757AF47A>I<96267FFFE01670063FB6ED01F80503B7
00F01403053F04FC14074CB96C130F040706E0131F043F72133F93BA00FC137F0303DC00
076D13FF030F03C09039003FFF814B02FCC8000713C3037F02E0030113F792B600806F6C
B5FC02034ACA121F4A02F8834A02E0834A4A1701027F4A8391B548CC7E494A85495C4C85
4988494A85494A85495C8A4991CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0F
A2485CA3481E075DA2795A489BC9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8
000302F8C7FCA36C80A36C80A27E817E817E817F6D80827F6D806D806D80826D6E606D80
6E80021F6E5F6E02F05F6E806E02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF
6FDAFFE0021F138703039226FF8003B51201030093B6EAFC00043F4E133F040706E0131F
04014E1307DC003F4CC71201050304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A
75F798>I<B800C00507B812C083838383A28383C7003F6F93C7001F01F0C7FC72060190
C8FC84A284848403EF8015E703E3808503E18103E0817080827080857080708070818286
708171807180837180867180718171818372808772807280728084877281728172818573
808873807380738085738189738174807480868974807480741580867415C01EE07514F0
7514F87514FC877514FE1EFF7515817515C1877614E11FF17614F97614FD7691B5FC8888
A28888898989A289898989A2898A8A8A8AA28A8A8A8A8B903803FFFEB800F8858B8B8BA2
8B8B795A8A767AF597>78 D<BC12FCF3FFF01CFF1DE01DFC1DFF1EC08AC7003F91C80001
15F8E0000F80090180756C6D7E76801C0F76808B7680888B7680A28BA2892080A420C0AB
2080A49AB61200A267A2676467525C64670A1F5C525C5291C7FC51B55A090F14F850B65A
94BA12C09BC8FC1DFC1DF09AC9FC1CF809FCCAFC0580CEFCB3B3A8BA12E0A872767AF584
>80 D<BC7E1BFF1CF01CFF1DC01DF81DFE777EC7003F91C8000715E0E0003F80090714FC
090180756C7F7680768076807680A276808B888BA37680A38CAA9DC8FCA3525CA267A252
5C676467525C525C5291C9FC99B512FC515C090F5C097F14C0080FB6CAFC94B912FC1DE0
9ACBFC1CF81CFE767E94C8003F14E0080780080114FC746C7F757F7580758075807580A2
75808A87A28A888AA78BA78BA779147E22FFA288A28B765E22FE76802103766E14FCBA00
C06E6E1307766EEB0FF876ED801F779138E07FF00B1F91B512E00B0716C00B011680E300
3FECFE00D1000714F8E4000F13E088787AF590>82 D<BA00E0030FB8FCA8C7003F0280CC
003FEBC000E503FCC7FCB3B3B3B3A46E1C0768A2836E1C0F68A26E1C1F7162A26E1C3F71
4F5A806E525A71606F6D97C8FC6F505A7118076F6D4E5A6F6EEF3FF86F6E4D5A6F6EEE01
FF6F02F84C5B6F02FE041F5B043F6D6C037F90C9FC7002F0913807FFFE0407DAFF8090B5
5A040192B712F07061051F188005074DCAFC050017F0061F16C0060103FCCBFCDE000391
CCFC88787AF595>85 D<97380FFFE00607B6FCA8F00003190086B3AD93383FFF800307B5
12F8033F14FF4AB712C0020716F0021F16FC027F9039FE007FFE91B500F0EB0FFF010302
80010190B5FC4949C87E49498149498149498149498190B548814884484A8192CAFC5AA2
485BA25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2807EA26C7F616C6E5D6C606C80616D6D
5D6D6D5D6D6D92B67E6D6D4A15FC010301FF0207EDFFFE6D02C0EB3FFE6D6C9039FC01FF
F86E90B65A020F16C002031600DA007F14FC030F14E09226007FFEC749C7FC5F797AF76C
>100 D<93387FFF80030FB512FC037FECFF804AB712E0020716F8021F16FE027FD9F807
7F49B5D8C000804991C7003F13E04901FC020F7F49496E7F49498049496E7F49496E7F90
B55A48727E92C914804884485B1BC048841BE0485BA27313F05AA25C5AA21BF885A2B5FC
A391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207F86C7F1A0F6C6E17F06C19
1F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0
EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A020F178002034CC7FC020016F8031F
15E0030392C8FCDB000F13E04D507BCE58>I<EF7FFE040FB512C093B612F0030715FC03
1F814B8192B5D8F01F13800203DA803F13C04A9026FC007F13E04A4990B5FC4A5B4A4948
14F04A13C091B51280A2491400A2495BA27114E05B4B6E13C0721380721300F007FC95C8
FCB3B912C0A8D8000749CAFCB3B3B3A7007FB712FCA844797AF83B>I<903801FFFCB6FC
A8C67E131F7FB3AD95380FFFE095B512FE05036E7E050F15E0053F15F84D81932701FFF0
1F7F4CD900077FDC07FC6D80DC0FF06D80DC1FC07F4C48824CC8FC047E6F7F5EEDFDF85E
03FF707F5EA25EA25EA293C9FCA45DB3B3A6B8D8E003B81280A8617879F76C>104
D<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5CA26D5B6D5B6D
5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3B3A5B81280A8
297979F835>I<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812C0A82A7879F735>
108 D<93381FFFE00303B6FC031F15E092B712FC020316FF020F17C0023FD9FC0014F091
B500C0010F13FC4991C700037F4901FC02007F010F496F13C049496F7F49496F7F4B8149
496F7F90B5C96C7F4886A24849707F481B80A248497014C0A2481BE0A348497113F0A348
1BF8A5B51AFCAE6C1BF8A46C1BF06E94B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B
006C6E4B5BA26C6E4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0
010F91C7FC010002FC90B512FC6E90B75A021F17E00207178002014CC8FCDA003F15F003
0392C9FCDB001F13E056507BCE61>111 D<902601FFF8EB07FEB691383FFFC094B512F0
0403804C14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114
E06DEBF9FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E0
95C8FCA25DA65DB3B3A2B812F8A8434E7ACD4F>114 D<912603FFFCEB0780027F9039FF
E00FC00103B6EAF83F010FEDFEFF013F92B5FC49EB000F2601FFF01300480180143F4890
C8120F4848814848814981123F83485A187FA212FF6D163FA37F7F6DEE1F8002C092C7FC
14F014FEECFFF06CECFF8016FEEEFFE06C16FC6C16FF18C06C836C17F86C836C836C8301
3F17806D17C0010717E0010117F0EB003F020716F8EC001F030015FC1607EE007F051F13
FE1707007E82B482836D167FA2183F7F181FA27F19FC7FA26D163F6D17F86D167F19F06D
16FF6E4A13E002E04A13C06E4A138002FE023F1300913AFFC003FFFE01E790B65A01C316
F0018016C026FE003F92C7FC48010714F80070D9007F90C8FC3F507ACE4C>I<15FFA75C
A55CA45CA25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FC
B3B3A3F01FE0AE183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B5
5A020F5D6E5D020115C06E6C5C031F49C7FC030113F03B6E7CEC4B>I<DAFFFE933803FF
F8B60303B6FCA8C66CEE0001011F717E6D84B3B3A862A497B5FCA261A2616D5F1ADF6F15
0F6DEF1F9F073F806D6EDA7F1F13FF6D6ED901FEEDFF8070EB07FC023F01FEEB3FF86E90
B612F06E16C0020316800200EDFE00031F14F80300028003C0C7FC614F79CD6C>I<B892
B612F8A8D8001F49C90003EBF0006D6D04001380A26D6E94C7FC626D6E5E1A03A26D6E4B
5AA26D6E4B5AA26E6D5E1A1F6E6D5E1A3F6E6070157FA26E6D4B5AA26E6E4990C8FCA26E
6E5C19036E6E5C1907A26E6E495AA26F6D495AA26F6D5C193F6F6D5C197F6F5E7113FFA2
6F028190C9FCA26FECC3FEA26FECE3FC18E76FECF7F818FFA2705CA2705CA2705CA2705C
A37091CAFCA2705BA2705BA2705BA2715AA3715AA24D5AA26017FF95CBFC5EA24C5AEA03
F8D80FFE4A5A487E486D495A487F5FB56C131F5F163F4C5AA24C5A4B90CCFC6C49485A4B
5AEC800F6C9038003FF849EBFFF0261FFC0713C06CB65A6C92CDFC6C14FCC614F0013F13
C0D907FCCEFC5D6F7CCC66>121 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: a4
%%BeginPaperSize: a4
a4
%%EndPaperSize

%%EndSetup
%%Page: 1 1
1 0 bop 1401 1386 a Fn(User's)66 b(Guide)1665 1760 y(for)e(the)1041
2133 y(GNU)h(GPERF)h(Utilit)-5 b(y)1553 2756 y Fm(Douglas)30
b(C.)h(Sc)m(hmidt)1417 3254 y(last)f(up)s(dated)f(14)i(April)d(1998)
1668 3503 y(for)i(v)m(ersion)g(2.7)p eop
%%Page: 2 2
2 1 bop 0 3629 a Fm(Cop)m(yrigh)m(t)452 3626 y(c)427
3629 y Fl(\015)30 b Fm(1989-1998)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)
-8 b(oundation,)31 b(Inc.)0 3903 y(P)m(ermission)23 b(is)h(gran)m(ted)h
(to)h(mak)m(e)g(and)e(distribute)e(v)m(erbatim)j(copies)f(of)h(this)f
(man)m(ual)g(pro)m(vided)g(the)h(cop)m(yrigh)m(t)0 4027
y(notice)31 b(and)e(this)h(p)s(ermission)d(notice)k(are)f(preserv)m(ed)
g(on)h(all)e(copies.)0 4301 y(P)m(ermission)d(is)h(gran)m(ted)i(to)g
(cop)m(y)f(and)g(distribute)d(mo)s(di\014ed)h(v)m(ersions)h(of)i(this)d
(man)m(ual)i(under)e(the)i(conditions)0 4426 y(for)21
b(v)m(erbatim)g(cop)m(ying,)i(pro)m(vided)c(also)j(that)f(the)g
(section)h(en)m(titled)e(\\GNU)i Fk(gperf)e Fm(General)h(Public)e
(License")i(is)0 4550 y(included)f(exactly)k(as)g(in)e(the)h(original,)
g(and)g(pro)m(vided)f(that)h(the)h(en)m(tire)f(resulting)e(deriv)m(ed)h
(w)m(ork)i(is)e(distributed)0 4675 y(under)29 b(the)h(terms)h(of)f(a)h
(p)s(ermission)c(notice)k(iden)m(tical)e(to)i(this)e(one.)0
4949 y(P)m(ermission)37 b(is)h(gran)m(ted)i(to)g(cop)m(y)g(and)f
(distribute)d(translations)i(of)h(this)f(man)m(ual)h(in)m(to)g(another)
g(language,)0 5073 y(under)f(the)h(ab)s(o)m(v)m(e)i(conditions)c(for)i
(mo)s(di\014ed)e(v)m(ersions,)k(except)g(that)f(the)f(section)g(en)m
(titled)g(\\GNU)h Fk(gperf)0 5198 y Fm(General)28 b(Public)e(License")j
(ma)m(y)g(b)s(e)e(included)f(in)h(a)i(translation)e(appro)m(v)m(ed)i(b)
m(y)f(the)g(author)h(instead)e(of)i(in)e(the)0 5322 y(original)i
(English.)p eop
%%Page: 1 3
1 2 bop 0 -116 a Fm(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2352
b(1)0 366 y Fj(GNU)30 b(GENERAL)h(PUBLIC)f(LICENSE)1453
615 y Fm(V)-8 b(ersion)30 b(1,)h(F)-8 b(ebruary)30 b(1989)240
874 y(Cop)m(yrigh)m(t)692 871 y(c)667 874 y Fl(\015)g
Fm(1989)i(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation,)31
b(Inc.)240 978 y(675)h(Mass)e(Av)m(e,)i(Cam)m(bridge,)e(MA)h(02139,)h
(USA)240 1185 y(Ev)m(ery)m(one)f(is)f(p)s(ermitted)f(to)i(cop)m(y)g
(and)f(distribute)e(v)m(erbatim)i(copies)240 1289 y(of)h(this)e
(license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m
(w)m(ed.)0 1792 y Fi(Pream)l(ble)125 2072 y Fm(The)40
b(license)g(agreemen)m(ts)j(of)e(most)g(soft)m(w)m(are)h(companies)f
(try)g(to)h(k)m(eep)f(users)f(at)i(the)f(mercy)g(of)g(those)0
2196 y(companies.)e(By)26 b(con)m(trast,)i(our)d(General)g(Public)e
(License)j(is)e(in)m(tended)h(to)h(guaran)m(tee)h(y)m(our)e(freedom)h
(to)g(share)0 2321 y(and)34 b(c)m(hange)i(free)e(soft)m(w)m(are|to)j
(mak)m(e)e(sure)f(the)h(soft)m(w)m(are)h(is)d(free)i(for)f(all)g(its)g
(users.)52 b(The)34 b(General)g(Public)0 2446 y(License)24
b(applies)e(to)j(the)f(F)-8 b(ree)25 b(Soft)m(w)m(are)g(F)-8
b(oundation's)24 b(soft)m(w)m(are)i(and)d(to)i(an)m(y)f(other)h
(program)e(whose)h(authors)0 2570 y(commit)30 b(to)h(using)e(it.)41
b(Y)-8 b(ou)30 b(can)h(use)f(it)g(for)g(y)m(our)h(programs,)f(to)s(o.)
125 2850 y(When)c(w)m(e)h(sp)s(eak)g(of)g(free)g(soft)m(w)m(are,)i(w)m
(e)e(are)g(referring)f(to)h(freedom,)h(not)f(price.)38
b(Sp)s(eci\014cally)-8 b(,)26 b(the)h(General)0 2975
y(Public)32 b(License)j(is)e(designed)h(to)h(mak)m(e)h(sure)e(that)h(y)
m(ou)h(ha)m(v)m(e)f(the)g(freedom)g(to)g(giv)m(e)h(a)m(w)m(a)m(y)g(or)f
(sell)e(copies)i(of)0 3099 y(free)h(soft)m(w)m(are,)k(that)c(y)m(ou)h
(receiv)m(e)g(source)f(co)s(de)g(or)h(can)f(get)h(it)f(if)f(y)m(ou)h(w)
m(an)m(t)h(it,)h(that)f(y)m(ou)f(can)g(c)m(hange)i(the)0
3224 y(soft)m(w)m(are)32 b(or)e(use)g(pieces)g(of)h(it)f(in)f(new)h
(free)g(programs;)h(and)e(that)i(y)m(ou)g(kno)m(w)f(y)m(ou)h(can)g(do)f
(these)h(things.)125 3504 y(T)-8 b(o)27 b(protect)h(y)m(our)f(righ)m
(ts,)h(w)m(e)f(need)g(to)h(mak)m(e)g(restrictions)e(that)h(forbid)f(an)
m(y)m(one)i(to)g(den)m(y)f(y)m(ou)g(these)g(righ)m(ts)0
3628 y(or)g(to)i(ask)e(y)m(ou)h(to)g(surrender)e(the)h(righ)m(ts.)39
b(These)28 b(restrictions)e(translate)h(to)i(certain)e(resp)s
(onsibilities)22 b(for)28 b(y)m(ou)0 3753 y(if)h(y)m(ou)i(distribute)d
(copies)i(of)h(the)f(soft)m(w)m(are,)i(or)f(if)e(y)m(ou)i(mo)s(dify)d
(it.)125 4033 y(F)-8 b(or)30 b(example,)f(if)g(y)m(ou)h(distribute)d
(copies)i(of)h(a)f(suc)m(h)h(a)f(program,)h(whether)f(gratis)g(or)h
(for)f(a)h(fee,)g(y)m(ou)g(m)m(ust)0 4157 y(giv)m(e)h(the)g(recipien)m
(ts)f(all)f(the)i(righ)m(ts)f(that)h(y)m(ou)g(ha)m(v)m(e.)43
b(Y)-8 b(ou)31 b(m)m(ust)g(mak)m(e)g(sure)f(that)h(they)-8
b(,)32 b(to)s(o,)g(receiv)m(e)f(or)g(can)0 4282 y(get)h(the)e(source)h
(co)s(de.)41 b(And)29 b(y)m(ou)i(m)m(ust)f(tell)g(them)g(their)f(righ)m
(ts.)125 4562 y(W)-8 b(e)30 b(protect)g(y)m(our)e(righ)m(ts)h(with)e(t)
m(w)m(o)k(steps:)40 b(\(1\))30 b(cop)m(yrigh)m(t)f(the)g(soft)m(w)m
(are,)i(and)d(\(2\))i(o\013er)g(y)m(ou)f(this)f(license)0
4686 y(whic)m(h)h(giv)m(es)i(y)m(ou)g(legal)f(p)s(ermission)d(to)k(cop)
m(y)-8 b(,)32 b(distribute)c(and/or)i(mo)s(dify)f(the)h(soft)m(w)m
(are.)125 4966 y(Also,)d(for)g(eac)m(h)h(author's)f(protection)g(and)f
(ours,)h(w)m(e)h(w)m(an)m(t)f(to)h(mak)m(e)g(certain)f(that)g(ev)m(ery)
m(one)i(understands)0 5091 y(that)37 b(there)f(is)f(no)h(w)m(arran)m(t)
m(y)h(for)f(this)f(free)i(soft)m(w)m(are.)59 b(If)36
b(the)g(soft)m(w)m(are)i(is)d(mo)s(di\014ed)f(b)m(y)i(someone)h(else)f
(and)0 5215 y(passed)j(on,)j(w)m(e)e(w)m(an)m(t)g(its)f(recipien)m(ts)g
(to)h(kno)m(w)f(that)i(what)e(they)h(ha)m(v)m(e)g(is)f(not)h(the)f
(original,)i(so)e(that)i(an)m(y)0 5340 y(problems)29
b(in)m(tro)s(duced)f(b)m(y)j(others)f(will)e(not)j(re\015ect)g(on)f
(the)g(original)f(authors')h(reputations.)p eop
%%Page: 2 4
2 3 bop 0 -116 a Fm(2)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm(The)e(precise)h(terms)g(and)g(conditions)f(for)h
(cop)m(ying,)h(distribution)26 b(and)k(mo)s(di\014cation)f(follo)m(w.)0
911 y Fi(TERMS)h(AND)g(CONDITIONS)49 1195 y Fm(1.)61
b(This)28 b(License)i(Agreemen)m(t)i(applies)c(to)j(an)m(y)g(program)f
(or)g(other)h(w)m(ork)f(whic)m(h)f(con)m(tains)h(a)h(notice)f(placed)
180 1320 y(b)m(y)k(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying)h(it)g
(ma)m(y)h(b)s(e)f(distributed)d(under)i(the)i(terms)f(of)h(this)e
(General)h(Public)180 1444 y(License.)53 b(The)34 b(\\Program",)k(b)s
(elo)m(w,)d(refers)f(to)i(an)m(y)f(suc)m(h)f(program)g(or)h(w)m(ork,)h
(and)e(a)h(\\w)m(ork)h(based)e(on)180 1569 y(the)d(Program")h(means)f
(either)g(the)h(Program)f(or)g(an)m(y)h(w)m(ork)f(con)m(taining)g(the)h
(Program)f(or)g(a)h(p)s(ortion)e(of)180 1693 y(it,)g(either)g(v)m
(erbatim)g(or)g(with)g(mo)s(di\014cations.)38 b(Eac)m(h)31
b(licensee)f(is)g(addressed)f(as)i(\\y)m(ou".)49 1853
y(2.)61 b(Y)-8 b(ou)41 b(ma)m(y)g(cop)m(y)h(and)e(distribute)e(v)m
(erbatim)i(copies)h(of)g(the)g(Program's)f(source)h(co)s(de)g(as)g(y)m
(ou)g(receiv)m(e)180 1978 y(it,)36 b(in)e(an)m(y)h(medium,)g(pro)m
(vided)f(that)h(y)m(ou)h(conspicuously)d(and)h(appropriately)g(publish)
d(on)k(eac)m(h)h(cop)m(y)180 2102 y(an)h(appropriate)g(cop)m(yrigh)m(t)
g(notice)h(and)f(disclaimer)e(of)i(w)m(arran)m(t)m(y;)42
b(k)m(eep)c(in)m(tact)g(all)e(the)i(notices)f(that)180
2227 y(refer)d(to)i(this)e(General)g(Public)f(License)h(and)g(to)i(the)
f(absence)g(of)g(an)m(y)g(w)m(arran)m(t)m(y;)j(and)c(giv)m(e)i(an)m(y)f
(other)180 2351 y(recipien)m(ts)29 b(of)h(the)g(Program)g(a)g(cop)m(y)g
(of)g(this)f(General)h(Public)d(License)i(along)h(with)f(the)h
(Program.)40 b(Y)-8 b(ou)180 2476 y(ma)m(y)31 b(c)m(harge)h(a)e(fee)h
(for)f(the)h(ph)m(ysical)e(act)i(of)g(transferring)e(a)h(cop)m(y)-8
b(.)49 2636 y(3.)61 b(Y)-8 b(ou)45 b(ma)m(y)f(mo)s(dify)f(y)m(our)h
(cop)m(y)h(or)f(copies)g(of)g(the)g(Program)g(or)g(an)m(y)h(p)s(ortion)
e(of)h(it,)j(and)d(cop)m(y)h(and)180 2761 y(distribute)24
b(suc)m(h)i(mo)s(di\014cations)f(under)g(the)i(terms)f(of)h(P)m
(aragraph)g(1)g(ab)s(o)m(v)m(e,)h(pro)m(vided)e(that)h(y)m(ou)g(also)f
(do)180 2885 y(the)31 b(follo)m(wing:)255 3045 y Fl(\017)60
b Fm(cause)30 b(the)g(mo)s(di\014ed)e(\014les)h(to)h(carry)g(prominen)m
(t)e(notices)i(stating)g(that)g(y)m(ou)h(c)m(hanged)f(the)g(\014les)f
(and)360 3170 y(the)i(date)g(of)f(an)m(y)h(c)m(hange;)h(and)255
3330 y Fl(\017)60 b Fm(cause)43 b(the)g(whole)f(of)h(an)m(y)g(w)m(ork)g
(that)h(y)m(ou)f(distribute)d(or)j(publish,)f(that)h(in)f(whole)g(or)h
(in)e(part)360 3454 y(con)m(tains)g(the)f(Program)h(or)g(an)m(y)f(part)
h(thereof,)j(either)c(with)f(or)h(without)g(mo)s(di\014cations,)h(to)h
(b)s(e)360 3579 y(licensed)32 b(at)j(no)f(c)m(harge)h(to)g(all)d(third)
h(parties)g(under)f(the)i(terms)g(of)g(this)f(General)h(Public)d
(License)360 3703 y(\(except)g(that)f(y)m(ou)g(ma)m(y)g(c)m(ho)s(ose)g
(to)g(gran)m(t)g(w)m(arran)m(t)m(y)h(protection)f(to)g(some)g(or)f(all)
f(third)g(parties,)h(at)360 3828 y(y)m(our)h(option\).)255
3988 y Fl(\017)60 b Fm(If)24 b(the)g(mo)s(di\014ed)e(program)i
(normally)f(reads)h(commands)g(in)m(teractiv)m(ely)g(when)f(run,)i(y)m
(ou)f(m)m(ust)g(cause)360 4113 y(it,)34 b(when)f(started)i(running)c
(for)i(suc)m(h)h(in)m(teractiv)m(e)g(use)g(in)e(the)i(simplest)e(and)h
(most)i(usual)d(w)m(a)m(y)-8 b(,)36 b(to)360 4237 y(prin)m(t)29
b(or)h(displa)m(y)e(an)i(announcemen)m(t)g(including)c(an)k
(appropriate)f(cop)m(yrigh)m(t)i(notice)f(and)f(a)i(notice)360
4362 y(that)c(there)f(is)f(no)g(w)m(arran)m(t)m(y)i(\(or)f(else,)h(sa)m
(ying)f(that)h(y)m(ou)f(pro)m(vide)f(a)h(w)m(arran)m(t)m(y\))h(and)f
(that)g(users)f(ma)m(y)360 4486 y(redistribute)j(the)j(program)g(under)
e(these)i(conditions,)f(and)g(telling)f(the)i(user)g(ho)m(w)f(to)i
(view)e(a)h(cop)m(y)360 4611 y(of)g(this)e(General)h(Public)e(License.)
255 4771 y Fl(\017)60 b Fm(Y)-8 b(ou)38 b(ma)m(y)g(c)m(harge)h(a)f(fee)
g(for)f(the)h(ph)m(ysical)e(act)j(of)e(transferring)f(a)i(cop)m(y)-8
b(,)41 b(and)c(y)m(ou)h(ma)m(y)g(at)g(y)m(our)360 4895
y(option)30 b(o\013er)h(w)m(arran)m(t)m(y)g(protection)g(in)e(exc)m
(hange)j(for)e(a)g(fee.)180 5091 y(Mere)22 b(aggregation)h(of)f
(another)g(indep)s(enden)m(t)d(w)m(ork)j(with)e(the)h(Program)h(\(or)g
(its)f(deriv)-5 b(ativ)m(e\))21 b(on)g(a)h(v)m(olume)180
5215 y(of)36 b(a)g(storage)h(or)f(distribution)c(medium)h(do)s(es)j
(not)g(bring)e(the)h(other)h(w)m(ork)g(under)e(the)i(scop)s(e)g(of)f
(these)180 5340 y(terms.)p eop
%%Page: 3 5
3 4 bop 0 -116 a Fm(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2352
b(3)49 366 y(4.)61 b(Y)-8 b(ou)33 b(ma)m(y)h(cop)m(y)f(and)g
(distribute)d(the)j(Program)g(\(or)g(a)g(p)s(ortion)f(or)h(deriv)-5
b(ativ)m(e)32 b(of)h(it,)g(under)f(P)m(aragraph)180 491
y(2\))j(in)e(ob)5 b(ject)36 b(co)s(de)e(or)h(executable)g(form)e(under)
g(the)i(terms)f(of)h(P)m(aragraphs)f(1)h(and)f(2)h(ab)s(o)m(v)m(e)g
(pro)m(vided)180 616 y(that)c(y)m(ou)g(also)f(do)g(one)h(of)f(the)h
(follo)m(wing:)255 762 y Fl(\017)60 b Fm(accompan)m(y)28
b(it)d(with)g(the)i(complete)f(corresp)s(onding)e(mac)m(hine-readable)i
(source)h(co)s(de,)g(whic)m(h)e(m)m(ust)360 887 y(b)s(e)30
b(distributed)d(under)i(the)i(terms)f(of)g(P)m(aragraphs)h(1)g(and)e(2)
i(ab)s(o)m(v)m(e;)h(or,)255 1033 y Fl(\017)60 b Fm(accompan)m(y)36
b(it)d(with)g(a)i(written)f(o\013er,)i(v)-5 b(alid)32
b(for)i(at)h(least)g(three)f(y)m(ears,)j(to)e(giv)m(e)g(an)m(y)f(third)
f(part)m(y)360 1158 y(free)25 b(\(except)h(for)f(a)g(nominal)e(c)m
(harge)j(for)f(the)g(cost)h(of)f(distribution\))d(a)j(complete)g(mac)m
(hine-readable)360 1282 y(cop)m(y)k(of)g(the)f(corresp)s(onding)f
(source)i(co)s(de,)g(to)g(b)s(e)f(distributed)d(under)i(the)i(terms)f
(of)h(P)m(aragraphs)g(1)360 1407 y(and)h(2)h(ab)s(o)m(v)m(e;)g(or,)255
1553 y Fl(\017)60 b Fm(accompan)m(y)25 b(it)f(with)f(the)h(information)
e(y)m(ou)j(receiv)m(ed)f(as)h(to)g(where)e(the)h(corresp)s(onding)e
(source)j(co)s(de)360 1678 y(ma)m(y)38 b(b)s(e)f(obtained.)61
b(\(This)36 b(alternativ)m(e)h(is)g(allo)m(w)m(ed)g(only)f(for)h
(noncommercial)g(distribution)d(and)360 1802 y(only)29
b(if)h(y)m(ou)h(receiv)m(ed)f(the)h(program)f(in)f(ob)5
b(ject)31 b(co)s(de)g(or)f(executable)h(form)f(alone.\))180
1971 y(Source)41 b(co)s(de)g(for)g(a)h(w)m(ork)f(means)g(the)g
(preferred)f(form)h(of)g(the)g(w)m(ork)h(for)e(making)h(mo)s
(di\014cations)e(to)180 2095 y(it.)54 b(F)-8 b(or)35
b(an)g(executable)h(\014le,)f(complete)g(source)g(co)s(de)g(means)g
(all)f(the)h(source)g(co)s(de)g(for)g(all)e(mo)s(dules)g(it)180
2220 y(con)m(tains;)39 b(but,)e(as)f(a)g(sp)s(ecial)f(exception,)i(it)f
(need)f(not)h(include)e(source)i(co)s(de)g(for)g(mo)s(dules)e(whic)m(h)
h(are)180 2344 y(standard)c(libraries)d(that)k(accompan)m(y)h(the)f(op)
s(erating)e(system)i(on)f(whic)m(h)f(the)i(executable)g(\014le)f(runs,)
f(or)180 2469 y(for)g(standard)g(header)g(\014les)f(or)i(de\014nitions)
c(\014les)j(that)h(accompan)m(y)g(that)g(op)s(erating)f(system.)49
2615 y(5.)61 b(Y)-8 b(ou)32 b(ma)m(y)h(not)f(cop)m(y)-8
b(,)33 b(mo)s(dify)-8 b(,)31 b(sublicense,)f(distribute)g(or)h
(transfer)h(the)g(Program)f(except)i(as)f(expressly)180
2740 y(pro)m(vided)20 b(under)g(this)g(General)h(Public)e(License.)37
b(An)m(y)21 b(attempt)i(otherwise)d(to)i(cop)m(y)-8 b(,)25
b(mo)s(dify)-8 b(,)22 b(sublicense,)180 2864 y(distribute)k(or)j
(transfer)e(the)i(Program)g(is)e(v)m(oid,)i(and)f(will)e(automatically)
i(terminate)h(y)m(our)f(righ)m(ts)g(to)h(use)180 2989
y(the)34 b(Program)g(under)f(this)f(License.)51 b(Ho)m(w)m(ev)m(er,)37
b(parties)d(who)f(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)f(righ)m(ts)g
(to)g(use)180 3113 y(copies,)f(from)f(y)m(ou)h(under)e(this)g(General)i
(Public)d(License)i(will)e(not)j(ha)m(v)m(e)h(their)d(licenses)h
(terminated)g(so)180 3238 y(long)e(as)h(suc)m(h)f(parties)f(remain)h
(in)f(full)f(compliance.)49 3384 y(6.)61 b(By)32 b(cop)m(ying,)h
(distributing)28 b(or)k(mo)s(difying)e(the)i(Program)g(\(or)h(an)m(y)f
(w)m(ork)g(based)g(on)g(the)g(Program\))h(y)m(ou)180
3509 y(indicate)c(y)m(our)i(acceptance)h(of)f(this)e(license)h(to)h(do)
f(so,)h(and)f(all)f(its)h(terms)g(and)g(conditions.)49
3655 y(7.)61 b(Eac)m(h)37 b(time)f(y)m(ou)g(redistribute)e(the)i
(Program)g(\(or)h(an)m(y)f(w)m(ork)g(based)g(on)g(the)g(Program\),)j
(the)d(recipien)m(t)180 3780 y(automatically)j(receiv)m(es)i(a)e
(license)g(from)g(the)g(original)f(licensor)g(to)i(cop)m(y)-8
b(,)44 b(distribute)37 b(or)i(mo)s(dify)f(the)180 3904
y(Program)31 b(sub)5 b(ject)32 b(to)g(these)f(terms)h(and)e
(conditions.)42 b(Y)-8 b(ou)32 b(ma)m(y)g(not)f(imp)s(ose)f(an)m(y)i
(further)e(restrictions)180 4029 y(on)g(the)h(recipien)m(ts')e
(exercise)i(of)g(the)f(righ)m(ts)g(gran)m(ted)h(herein.)49
4175 y(8.)61 b(The)28 b(F)-8 b(ree)29 b(Soft)m(w)m(are)g(F)-8
b(oundation)28 b(ma)m(y)h(publish)c(revised)i(and/or)h(new)g(v)m
(ersions)f(of)i(the)f(General)g(Public)180 4300 y(License)33
b(from)f(time)h(to)g(time.)49 b(Suc)m(h)32 b(new)h(v)m(ersions)f(will)e
(b)s(e)j(similar)d(in)i(spirit)e(to)k(the)f(presen)m(t)g(v)m(ersion,)
180 4424 y(but)d(ma)m(y)h(di\013er)e(in)g(detail)g(to)i(address)f(new)g
(problems)e(or)j(concerns.)180 4571 y(Eac)m(h)44 b(v)m(ersion)f(is)f
(giv)m(en)h(a)h(distinguishing)39 b(v)m(ersion)k(n)m(um)m(b)s(er.)78
b(If)43 b(the)g(Program)h(sp)s(eci\014es)e(a)h(v)m(ersion)180
4695 y(n)m(um)m(b)s(er)e(of)i(the)f(license)g(whic)m(h)f(applies)f(to)j
(it)f(and)g(\\an)m(y)h(later)g(v)m(ersion",)i(y)m(ou)e(ha)m(v)m(e)g
(the)g(option)f(of)180 4820 y(follo)m(wing)31 b(the)i(terms)g(and)f
(conditions)f(either)h(of)h(that)g(v)m(ersion)f(or)h(of)f(an)m(y)h
(later)g(v)m(ersion)f(published)d(b)m(y)180 4944 y(the)c(F)-8
b(ree)27 b(Soft)m(w)m(are)f(F)-8 b(oundation.)39 b(If)25
b(the)g(Program)h(do)s(es)f(not)g(sp)s(ecify)f(a)i(v)m(ersion)f(n)m(um)
m(b)s(er)f(of)h(the)h(license,)180 5069 y(y)m(ou)31 b(ma)m(y)g(c)m(ho)s
(ose)g(an)m(y)g(v)m(ersion)f(ev)m(er)h(published)26 b(b)m(y)31
b(the)f(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation.)49
5215 y(9.)61 b(If)34 b(y)m(ou)h(wish)d(to)k(incorp)s(orate)e(parts)g
(of)g(the)h(Program)g(in)m(to)f(other)h(free)f(programs)g(whose)h
(distribution)180 5340 y(conditions)42 b(are)i(di\013eren)m(t,)j(write)
c(to)h(the)g(author)g(to)g(ask)g(for)f(p)s(ermission.)78
b(F)-8 b(or)44 b(soft)m(w)m(are)h(whic)m(h)e(is)p eop
%%Page: 4 6
4 5 bop 0 -116 a Fm(4)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)180 366 y Fm(cop)m(yrigh)m(ted)45 b(b)m(y)g(the)h(F)-8
b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation,)49 b(write)44
b(to)i(the)g(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation;)52
b(w)m(e)180 491 y(sometimes)26 b(mak)m(e)h(exceptions)f(for)f(this.)38
b(Our)25 b(decision)f(will)g(b)s(e)h(guided)f(b)m(y)i(the)g(t)m(w)m(o)h
(goals)f(of)g(preserving)180 616 y(the)i(free)h(status)f(of)g(all)f
(deriv)-5 b(ativ)m(es)28 b(of)g(our)g(free)g(soft)m(w)m(are)i(and)d(of)
i(promoting)e(the)i(sharing)d(and)i(reuse)g(of)180 740
y(soft)m(w)m(are)k(generally)-8 b(.)180 1064 y Fi(NO)30
b(W)-15 b(ARRANTY)4 1271 y Fm(10.)61 b(BECA)m(USE)41
b(THE)f(PR)m(OGRAM)i(IS)e(LICENSED)g(FREE)h(OF)g(CHAR)m(GE,)g(THERE)f
(IS)h(NO)f(W)-10 b(AR-)180 1396 y(RANTY)22 b(F)m(OR)h(THE)f(PR)m
(OGRAM,)i(TO)d(THE)h(EXTENT)g(PERMITTED)g(BY)h(APPLICABLE)e(LA)-10
b(W.)180 1520 y(EX)m(CEPT)46 b(WHEN)i(OTHER)-10 b(WISE)45
b(ST)-8 b(A)g(TED)47 b(IN)g(WRITING)g(THE)f(COPYRIGHT)h(HOLDERS)180
1645 y(AND/OR)21 b(OTHER)f(P)-8 b(AR)g(TIES)20 b(PR)m(O)m(VIDE)h(THE)f
(PR)m(OGRAM)h(\\AS)f(IS")g(WITHOUT)g(W)-10 b(ARRANTY)180
1770 y(OF)28 b(ANY)h(KIND,)g(EITHER)e(EXPRESSED)h(OR)f(IMPLIED,)i
(INCLUDING,)g(BUT)f(NOT)g(LIMITED)180 1894 y(TO,)46 b(THE)g(IMPLIED)g
(W)-10 b(ARRANTIES)46 b(OF)h(MER)m(CHANT)-8 b(ABILITY)47
b(AND)g(FITNESS)e(F)m(OR)i(A)180 2019 y(P)-8 b(AR)g(TICULAR)37
b(PURPOSE.)f(THE)h(ENTIRE)f(RISK)g(AS)h(TO)f(THE)h(QUALITY)g(AND)h
(PERF)m(OR-)180 2143 y(MANCE)i(OF)f(THE)g(PR)m(OGRAM)h(IS)e(WITH)i
(YOU.)f(SHOULD)h(THE)f(PR)m(OGRAM)h(PR)m(O)m(VE)f(DE-)180
2268 y(FECTIVE,)c(YOU)g(ASSUME)g(THE)g(COST)f(OF)i(ALL)f(NECESSAR)-8
b(Y)34 b(SER)-10 b(VICING,)35 b(REP)-8 b(AIR)35 b(OR)180
2392 y(CORRECTION.)4 2542 y(11.)61 b(IN)25 b(NO)g(EVENT)f(UNLESS)g
(REQUIRED)h(BY)g(APPLICABLE)g(LA)-10 b(W)25 b(OR)g(A)m(GREED)h(TO)e(IN)
h(WRIT-)180 2666 y(ING)i(WILL)g(ANY)g(COPYRIGHT)f(HOLDER,)h(OR)f(ANY)h
(OTHER)f(P)-8 b(AR)g(TY)27 b(WHO)g(MA)-8 b(Y)28 b(MODIFY)180
2791 y(AND/OR)34 b(REDISTRIBUTE)d(THE)i(PR)m(OGRAM)g(AS)f(PERMITTED)g
(ABO)m(VE,)i(BE)f(LIABLE)g(TO)180 2915 y(YOU)26 b(F)m(OR)g(D)m(AMA)m
(GES,)h(INCLUDING)f(ANY)g(GENERAL,)g(SPECIAL,)e(INCIDENT)-8
b(AL)26 b(OR)f(CON-)180 3040 y(SEQUENTIAL)36 b(D)m(AMA)m(GES)i(ARISING)
f(OUT)f(OF)h(THE)g(USE)f(OR)h(INABILITY)g(TO)f(USE)g(THE)180
3164 y(PR)m(OGRAM)j(\(INCLUDING)g(BUT)f(NOT)g(LIMITED)g(TO)g(LOSS)e(OF)
j(D)m(A)-8 b(T)g(A)40 b(OR)d(D)m(A)-8 b(T)g(A)40 b(BEING)180
3289 y(RENDERED)k(INA)m(CCURA)-8 b(TE)44 b(OR)f(LOSSES)f(SUST)-8
b(AINED)43 b(BY)i(YOU)e(OR)h(THIRD)f(P)-8 b(AR)g(TIES)180
3413 y(OR)28 b(A)h(F)-10 b(AILURE)29 b(OF)g(THE)f(PR)m(OGRAM)i(TO)e
(OPERA)-8 b(TE)28 b(WITH)h(ANY)g(OTHER)f(PR)m(OGRAMS\),)180
3538 y(EVEN)38 b(IF)f(SUCH)h(HOLDER)f(OR)g(OTHER)g(P)-8
b(AR)g(TY)38 b(HAS)g(BEEN)g(AD)m(VISED)g(OF)g(THE)f(POSSI-)180
3662 y(BILITY)30 b(OF)g(SUCH)g(D)m(AMA)m(GES.)0 4111
y Fi(END)h(OF)f(TERMS)f(AND)i(CONDITIONS)p eop
%%Page: 5 7
5 6 bop 0 -116 a Fm(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2352
b(5)0 366 y Fi(App)t(endix:)45 b(Ho)l(w)31 b(to)g(Apply)e(These)i(T)-11
b(erms)30 b(to)h(Y)-11 b(our)29 b(New)i(Programs)125
692 y Fm(If)g(y)m(ou)h(dev)m(elop)g(a)g(new)g(program,)g(and)f(y)m(ou)h
(w)m(an)m(t)h(it)f(to)g(b)s(e)g(of)g(the)g(greatest)h(p)s(ossible)d
(use)h(to)i(h)m(umanit)m(y)-8 b(,)0 816 y(the)28 b(b)s(est)g(w)m(a)m(y)
h(to)f(ac)m(hiev)m(e)i(this)d(is)g(to)h(mak)m(e)h(it)f(free)g(soft)m(w)
m(are)h(whic)m(h)e(ev)m(ery)m(one)j(can)e(redistribute)d(and)j(c)m
(hange)0 941 y(under)h(these)i(terms.)125 1266 y(T)-8
b(o)28 b(do)h(so,)g(attac)m(h)h(the)f(follo)m(wing)e(notices)h(to)h
(the)g(program.)40 b(It)28 b(is)f(safest)i(to)h(attac)m(h)g(them)e(to)h
(the)g(start)g(of)0 1390 y(eac)m(h)34 b(source)g(\014le)e(to)i(most)f
(e\013ectiv)m(ely)h(con)m(v)m(ey)h(the)f(exclusion)d(of)j(w)m(arran)m
(t)m(y;)h(and)e(eac)m(h)h(\014le)f(should)e(ha)m(v)m(e)j(at)0
1515 y(least)d(the)f(\\cop)m(yrigh)m(t")i(line)d(and)g(a)i(p)s(oin)m
(ter)e(to)j(where)d(the)i(full)d(notice)j(is)e(found.)240
1819 y Fh(one)i(line)d(to)j(giv)m(e)g(the)g(program's)f(name)h(and)e(a)
i(brief)e(idea)h(of)g(what)h(it)f(do)s(es.)240 1923 y
Fk(Copyright)45 b(\(C\))i(19)p Fh(yy)103 b(name)30 b(of)h(author)240
2130 y Fk(This)47 b(program)e(is)j(free)e(software;)g(you)g(can)h
(redistribute)e(it)i(and/or)f(modify)240 2234 y(it)h(under)g(the)f
(terms)h(of)g(the)g(GNU)g(General)f(Public)g(License)g(as)h(published)e
(by)240 2338 y(the)i(Free)g(Software)e(Foundation;)g(either)h(version)g
(1,)h(or)g(\(at)g(your)g(option\))240 2442 y(any)g(later)f(version.)240
2649 y(This)h(program)e(is)j(distributed)c(in)k(the)e(hope)h(that)g(it)
g(will)g(be)g(useful,)240 2753 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e
(without)h(even)g(the)h(implied)f(warranty)g(of)240 2857
y(MERCHANTABILITY)e(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93
b(See)47 b(the)240 2961 y(GNU)g(General)f(Public)g(License)g(for)h
(more)f(details.)240 3168 y(You)h(should)f(have)h(received)e(a)j(copy)e
(of)h(the)g(GNU)g(General)f(Public)g(License)240 3272
y(along)g(with)h(this)g(program;)e(if)i(not,)g(write)f(to)i(the)e(Free)
h(Software)240 3376 y(Foundation,)e(Inc.,)h(59)h(Temple)f(Place)h(-)g
(Suite)g(330,)f(Boston,)g(MA)h(02111-1307,)e(USA.)125
3701 y Fm(Also)30 b(add)f(information)g(on)h(ho)m(w)h(to)g(con)m(tact)i
(y)m(ou)d(b)m(y)g(electronic)h(and)f(pap)s(er)f(mail.)125
4026 y(If)19 b(the)i(program)f(is)g(in)m(teractiv)m(e,)j(mak)m(e)e(it)f
(output)g(a)h(short)f(notice)h(lik)m(e)e(this)h(when)f(it)h(starts)h
(in)e(an)h(in)m(teractiv)m(e)0 4150 y(mo)s(de:)240 4455
y Fk(Gnomovision)45 b(version)h(69,)g(Copyright)g(\(C\))h(19)p
Fh(yy)55 b(name)30 b(of)g(author)240 4558 y Fk(Gnomovision)45
b(comes)h(with)h(ABSOLUTELY)e(NO)i(WARRANTY;)e(for)i(details)f(type)h
(`show)f(w'.)240 4662 y(This)h(is)g(free)f(software,)g(and)h(you)g(are)
f(welcome)g(to)h(redistribute)e(it)240 4766 y(under)h(certain)g
(conditions;)f(type)i(`show)f(c')h(for)g(details.)125
5091 y Fm(The)36 b(h)m(yp)s(othetical)h(commands)g(`sho)m(w)g(w')h(and)
e(`sho)m(w)i(c')g(should)d(sho)m(w)i(the)h(appropriate)e(parts)h(of)h
(the)0 5215 y(General)21 b(Public)e(License.)37 b(Of)21
b(course,)i(the)f(commands)f(y)m(ou)g(use)g(ma)m(y)h(b)s(e)e(called)h
(something)f(other)i(than)f(`sho)m(w)0 5340 y(w')30 b(and)g(`sho)m(w)g
(c';)i(they)e(could)g(ev)m(en)h(b)s(e)e(mouse-clic)m(ks)i(or)f(men)m(u)
g(items|whatev)m(er)h(suits)e(y)m(our)h(program.)p eop
%%Page: 6 8
6 7 bop 0 -116 a Fm(6)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm(Y)-8 b(ou)28 b(should)f(also)h(get)h(y)m(our)f
(emplo)m(y)m(er)h(\(if)e(y)m(ou)i(w)m(ork)f(as)h(a)g(programmer\))f(or)
g(y)m(our)g(sc)m(ho)s(ol,)h(if)e(an)m(y)-8 b(,)30 b(to)f(sign)0
491 y(a)i(\\cop)m(yrigh)m(t)g(disclaimer")d(for)j(the)f(program,)h(if)e
(necessary)-8 b(.)41 b(Here)31 b(a)g(sample;)f(alter)g(the)h(names:)240
744 y Fk(Yoyodyne,)45 b(Inc.,)i(hereby)f(disclaims)f(all)i(copyright)e
(interest)h(in)h(the)240 848 y(program)f(`Gnomovision')e(\(a)j(program)
f(to)h(direct)f(compilers)g(to)h(make)f(passes)240 952
y(at)h(assemblers\))e(written)h(by)h(James)f(Hacker.)240
1159 y Fh(signature)30 b(of)g(T)m(y)h(Co)s(on)p Fk(,)47
b(1)g(April)g(1989)240 1263 y(Ty)g(Coon,)g(President)e(of)i(Vice)125
1537 y Fm(That's)30 b(all)f(there)i(is)e(to)i(it!)p eop
%%Page: 7 9
7 8 bop 0 -116 a Fm(Con)m(tributors)29 b(to)i(GNU)g Fk(gperf)e
Fm(Utilit)m(y)2437 b(7)0 366 y Fj(Con)l(tributors)28
b(to)h(GNU)i Fg(gperf)e Fj(Utilit)l(y)75 740 y Fl(\017)60
b Fm(The)36 b(GNU)h Fk(gperf)e Fm(p)s(erfect)h(hash)f(function)g
(generator)j(utilit)m(y)c(w)m(as)j(originally)d(written)h(in)g(GNU)i(C)
p Fk(++)180 865 y Fm(b)m(y)h(Douglas)h(C.)f(Sc)m(hmidt.)62
b(It)39 b(is)e(no)m(w)h(also)g(a)m(v)-5 b(ailable)38
b(in)f(a)h(highly-p)s(ortable)e(\\old-st)m(yle")i(C)g(v)m(ersion.)180
989 y(The)g(general)h(idea)g(for)f(the)h(p)s(erfect)g(hash)f(function)g
(generator)i(w)m(as)f(inspired)d(b)m(y)i(Keith)g(Bostic's)i(al-)180
1114 y(gorithm)e(written)g(in)g(C,)g(and)h(distributed)c(to)40
b(net.sources)f(around)f(1984.)68 b(The)39 b(curren)m(t)f(program)h(is)
180 1238 y(a)34 b(hea)m(vily)f(mo)s(di\014ed,)f(enhanced,)i(and)f
(extended)g(implemen)m(tation)f(of)i(Keith's)f(basic)g(idea,)h(created)
g(at)180 1363 y(the)41 b(Univ)m(ersit)m(y)g(of)g(California,)h(Irvine.)
72 b(Bugs,)45 b(patc)m(hes,)g(and)c(suggestions)g(should)e(b)s(e)i(rep)
s(orted)f(to)180 1487 y Fk(<bug-gnu-utils@gnu.org>)24
b Fm(and)30 b Fk(<schmidt@ics.uci.edu>)p Fm(.)75 1637
y Fl(\017)60 b Fm(Sp)s(ecial)24 b(thanks)i(is)f(extended)i(to)g(Mic)m
(hael)f(Tiemann)e(and)i(Doug)h(Lea,)h(for)e(pro)m(viding)e(a)j(useful)d
(compiler,)180 1761 y(and)30 b(for)g(giving)f(me)i(a)f(forum)g(to)h
(exhibit)d(m)m(y)j(creation.)180 1911 y(In)23 b(addition,)h(Adam)f(de)h
(Bo)s(or)g(and)f(Nels)h(Olson)e(pro)m(vided)g(man)m(y)i(tips)f(and)g
(insigh)m(ts)f(that)j(greatly)f(help)s(ed)180 2035 y(impro)m(v)m(e)30
b(the)h(qualit)m(y)e(and)h(functionalit)m(y)f(of)h Fk(gperf)p
Fm(.)p eop
%%Page: 8 10
8 9 bop 0 -116 a Fm(8)2965 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 9 11
9 10 bop 0 -116 a Fm(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2891
b(9)0 366 y Fj(1)80 b(In)l(tro)t(duction)125 740 y Fk(gperf)36
b Fm(is)g(a)j(p)s(erfect)e(hash)g(function)f(generator)j(written)e(in)f
(C)p Fk(++)p Fm(.)62 b(It)38 b(transforms)f(an)g Fh(n)g
Fm(elemen)m(t)h(user-)0 865 y(sp)s(eci\014ed)28 b(k)m(eyw)m(ord)h(set)h
Fh(W)41 b Fm(in)m(to)29 b(a)h(p)s(erfect)f(hash)g(function)f
Fh(F)p Fm(.)h Fh(F)36 b Fm(uniquely)27 b(maps)i(k)m(eyw)m(ords)g(in)f
Fh(W)41 b Fm(on)m(to)31 b(the)0 989 y(range)i(0..)p Fh(k)p
Fm(,)h(where)d Fh(k)i Fk(>)p Fh(=)e(n)p Fm(.)46 b(If)32
b Fh(k)g(=)g(n)g Fm(then)g Fh(F)39 b Fm(is)31 b(a)i Fh(minimal)g
Fm(p)s(erfect)f(hash)g(function.)45 b Fk(gperf)31 b Fm(generates)j(a)0
1114 y(0..)p Fh(k)41 b Fm(elemen)m(t)35 b(static)g(lo)s(okup)e(table)i
(and)f(a)h(pair)e(of)i(C)f(functions.)52 b(These)34 b(functions)f
(determine)h(whether)g(a)0 1238 y(giv)m(en)c(c)m(haracter)i(string)e
Fh(s)k Fm(o)s(ccurs)c(in)f Fh(W)p Fm(,)i(using)e(at)i(most)f(one)h
(prob)s(e)e(in)m(to)i(the)f(lo)s(okup)f(table.)125 1512
y Fk(gperf)i Fm(curren)m(tly)i(generates)h(the)g(reserv)m(ed)f(k)m(eyw)
m(ord)h(recognizer)f(for)g(lexical)g(analyzers)g(in)f(sev)m(eral)h
(pro-)0 1637 y(duction)28 b(and)g(researc)m(h)i(compilers)e(and)g
(language)i(pro)s(cessing)d(to)s(ols,)j(including)25
b(GNU)30 b(C,)f(GNU)h(C)p Fk(++)p Fm(,)e(GNU)0 1761 y(P)m(ascal,)39
b(GNU)e(Mo)s(dula)f(3,)j(and)d(GNU)h(inden)m(t.)58 b(Complete)37
b(C)p Fk(++)e Fm(source)i(co)s(de)g(for)f Fk(gperf)g
Fm(is)f(a)m(v)-5 b(ailable)36 b(via)0 1886 y(anon)m(ymous)d(ftp)h(from)
f Fk(ics.uci.edu)d Fm(and)j Fk(ftp.santafe.edu)p Fm(.)46
b Fk(gperf)33 b Fm(w)m(as)g(also)h(distributed)d(along)i(with)0
2010 y(the)h(GNU)g(libg)p Fk(++)d Fm(library)h(for)h(sev)m(eral)h(y)m
(ears.)51 b(A)34 b(highly)d(p)s(ortable,)j(functionally)d(equiv)-5
b(alen)m(t)33 b(K&R)g(C)g(v)m(er-)0 2135 y(sion)39 b(of)h
Fk(gperf)e Fm(is)h(arc)m(hiv)m(ed)h(in)f(comp.sources.unix,)i(v)m
(olume)f(20.)70 b(Finally)-8 b(,)41 b(a)f(pap)s(er)f(describing)e
Fk(gperf)p Fm('s)0 2259 y(design)f(and)g(implemen)m(tation)g(in)f
(greater)j(detail)e(is)g(a)m(v)-5 b(ailable)36 b(in)g(the)h(Second)f
(USENIX)h(C)p Fk(++)f Fm(Conference)0 2384 y(pro)s(ceedings.)p
eop
%%Page: 10 12
10 11 bop 0 -116 a Fm(10)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 11 13
11 12 bop 0 -116 a Fm(Chapter)30 b(2:)41 b(Static)31
b(searc)m(h)g(structures)e(and)h(GNU)h Fk(gperf)1725
b Fm(11)0 366 y Fj(2)80 b(Static)31 b(searc)l(h)e(structures)e(and)k
(GNU)f Fg(gperf)125 768 y Fm(A)j Fh(static)h(searc)m(h)f(structure)38
b Fm(is)32 b(an)i(Abstract)f(Data)i(T)m(yp)s(e)e(with)f(certain)h
(fundamen)m(tal)f(op)s(erations,)h(e.g.,)0 892 y Fh(initialize)p
Fm(,)c Fh(insert)p Fm(,)h(and)g Fh(retriev)m(e)p Fm(.)43
b(Conceptually)-8 b(,)30 b(all)g(insertions)f(o)s(ccur)i(b)s(efore)f
(an)m(y)i(retriev)-5 b(als.)41 b(In)30 b(practice,)0
1017 y Fk(gperf)44 b Fm(generates)i(a)f Fk(static)f Fm(arra)m(y)h(con)m
(taining)g(searc)m(h)g(set)h(k)m(eyw)m(ords)f(and)g(an)m(y)g(asso)s
(ciated)g(attributes)0 1142 y(sp)s(eci\014ed)38 b(b)m(y)i(the)f(user.)
68 b(Th)m(us,)42 b(there)d(is)g(essen)m(tially)g(no)g(execution-time)h
(cost)h(for)f(the)f(insertions.)67 b(It)40 b(is)0 1266
y(a)e(useful)d(data)j(structure)f(for)g(represen)m(ting)f
Fh(static)i(searc)m(h)g(sets)p Fm(.)62 b(Static)37 b(searc)m(h)h(sets)g
(o)s(ccur)f(frequen)m(tly)f(in)0 1391 y(soft)m(w)m(are)28
b(system)g(applications.)37 b(T)m(ypical)26 b(static)i(searc)m(h)f
(sets)h(include)c(compiler)i(reserv)m(ed)h(w)m(ords,)g(assem)m(bler)0
1515 y(instruction)22 b(op)s(co)s(des,)j(and)e(built-in)e(shell)h(in)m
(terpreter)h(commands.)38 b(Searc)m(h)24 b(set)h(mem)m(b)s(ers,)f
(called)f Fh(k)m(eyw)m(ords)p Fm(,)0 1640 y(are)f(inserted)e(in)m(to)h
(the)g(structure)g(only)g(once,)j(usually)19 b(during)g(program)i
(initialization,)f(and)h(are)g(not)h(generally)0 1764
y(mo)s(di\014ed)28 b(at)j(run-time.)125 2044 y(Numerous)e(static)i
(searc)m(h)g(structure)f(implemen)m(tations)f(exist,)i(e.g.,)h(arra)m
(ys,)f(link)m(ed)d(lists,)i(binary)e(searc)m(h)0 2168
y(trees,)45 b(digital)c(searc)m(h)h(tries,)i(and)e(hash)f(tables.)74
b(Di\013eren)m(t)43 b(approac)m(hes)f(o\013er)g(trade-o\013s)h(b)s(et)m
(w)m(een)f(space)0 2293 y(utilization)36 b(and)h(searc)m(h)i(time)e
(e\016ciency)-8 b(.)64 b(F)-8 b(or)39 b(example,)h(an)e
Fh(n)f Fm(elemen)m(t)h(sorted)g(arra)m(y)h(is)e(space)h(e\016cien)m(t,)
0 2417 y(though)24 b(the)g(a)m(v)m(erage-case)k(time)c(complexit)m(y)g
(for)g(retriev)-5 b(al)24 b(op)s(erations)f(using)g(binary)f(searc)m(h)
j(is)e(prop)s(ortional)0 2542 y(to)34 b(log)f Fh(n)p
Fm(.)48 b(Con)m(v)m(ersely)-8 b(,)34 b(hash)f(table)g(implemen)m
(tations)e(often)j(lo)s(cate)f(a)h(table)f(en)m(try)g(in)f(constan)m(t)
i(time,)g(but)0 2666 y(t)m(ypically)29 b(imp)s(ose)g(additional)g
(memory)h(o)m(v)m(erhead)h(and)f(exhibit)f(p)s(o)s(or)g(w)m(orst)i
(case)g(p)s(erformance.)125 2946 y Fh(Minimal)23 b(p)s(erfect)i(hash)g
(functions)i Fm(pro)m(vide)e(an)g(optimal)g(solution)f(for)h(a)h
(particular)d(class)j(of)f(static)h(searc)m(h)0 3071
y(sets.)41 b(A)31 b(minimal)c(p)s(erfect)j(hash)g(function)f(is)h
(de\014ned)f(b)m(y)h(t)m(w)m(o)i(prop)s(erties:)75 3350
y Fl(\017)60 b Fm(It)25 b(allo)m(ws)e(k)m(eyw)m(ord)i(recognition)f(in)
g(a)g(static)i(searc)m(h)f(set)g(using)e(at)i(most)g
Fh(one)30 b Fm(prob)s(e)23 b(in)m(to)h(the)h(hash)f(table.)180
3475 y(This)29 b(represen)m(ts)h(the)g(\\p)s(erfect")i(prop)s(ert)m(y)
-8 b(.)75 3630 y Fl(\017)60 b Fm(The)31 b(actual)h(memory)f(allo)s
(cated)g(to)h(store)g(the)g(k)m(eyw)m(ords)g(is)e(precisely)g(large)i
(enough)f(for)g(the)g(k)m(eyw)m(ord)180 3754 y(set,)g(and)f
Fh(no)g(larger)p Fm(.)41 b(This)28 b(is)i(the)g(\\minimal")f(prop)s
(ert)m(y)-8 b(.)125 4064 y(F)g(or)22 b(most)g(applications)e(it)i(is)e
(far)i(easier)g(to)g(generate)h Fh(p)s(erfect)h Fm(hash)d(functions)g
(than)g Fh(minimal)e(p)s(erfect)24 b Fm(hash)0 4189 y(functions.)56
b(Moreo)m(v)m(er,)40 b(non-minimal)33 b(p)s(erfect)j(hash)f(functions)f
(frequen)m(tly)h(execute)j(faster)e(than)g(minimal)0
4313 y(ones)43 b(in)e(practice.)77 b(This)41 b(phenomena)h(o)s(ccurs)g
(since)g(searc)m(hing)g(a)h(sparse)f(k)m(eyw)m(ord)h(table)g(increases)
f(the)0 4438 y(probabilit)m(y)19 b(of)i(lo)s(cating)g(a)h(\\n)m(ull")e
(en)m(try)-8 b(,)25 b(thereb)m(y)c(reducing)f(string)g(comparisons.)37
b Fk(gperf)p Fm('s)20 b(default)h(b)s(eha)m(vior)0 4562
y(generates)38 b Fh(near-minimal)g Fm(p)s(erfect)f(hash)f(functions)f
(for)i(k)m(eyw)m(ord)g(sets.)60 b(Ho)m(w)m(ev)m(er,)41
b Fk(gperf)35 b Fm(pro)m(vides)h(man)m(y)0 4687 y(options)30
b(that)h(p)s(ermit)d(user)i(con)m(trol)h(o)m(v)m(er)h(the)e(degree)h
(of)g(minimalit)m(y)c(and)j(p)s(erfection.)125 4966 y(Static)23
b(searc)m(h)g(sets)h(often)f(exhibit)e(relativ)m(e)i(stabilit)m(y)f(o)m
(v)m(er)i(time.)38 b(F)-8 b(or)24 b(example,)g(Ada's)f(63)h(reserv)m
(ed)f(w)m(ords)0 5091 y(ha)m(v)m(e)35 b(remained)d(constan)m(t)j(for)e
(nearly)f(a)i(decade.)51 b(It)33 b(is)g(therefore)g(frequen)m(tly)g(w)m
(orth)m(while)f(to)i(exp)s(end)e(con-)0 5215 y(certed)23
b(e\013ort)g(building)18 b(an)k(optimal)f(searc)m(h)h(structure)g
Fh(once)p Fm(,)j(if)c(it)g(subsequen)m(tly)g(receiv)m(es)i(hea)m(vy)f
(use)g(m)m(ultiple)0 5340 y(times.)55 b Fk(gperf)34 b
Fm(remo)m(v)m(es)i(the)g(drudgery)d(asso)s(ciated)j(with)e
(constructing)h(time-)g(and)g(space-e\016cien)m(t)h(searc)m(h)p
eop
%%Page: 12 14
12 13 bop 0 -116 a Fm(12)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)0 366 y Fm(structures)37 b(b)m(y)h(hand.)61
b(It)38 b(has)f(pro)m(v)m(en)h(a)g(useful)e(and)h(practical)g(to)s(ol)h
(for)f(serious)g(programming)f(pro)5 b(jects.)0 491 y(Output)27
b(from)i Fk(gperf)e Fm(is)g(curren)m(tly)h(used)g(in)f(sev)m(eral)i
(pro)s(duction)d(and)i(researc)m(h)i(compilers,)d(including)e(GNU)0
616 y(C,)39 b(GNU)h(C)p Fk(++)p Fm(,)h(GNU)f(P)m(ascal,)i(and)d(GNU)h
(Mo)s(dula)e(3.)68 b(The)38 b(latter)i(t)m(w)m(o)g(compilers)e(are)i
(not)f(y)m(et)i(part)e(of)0 740 y(the)28 b(o\016cial)g(GNU)g
(distribution.)36 b(Eac)m(h)29 b(compiler)d(utilizes)g
Fk(gperf)h Fm(to)i(automatically)e(generate)j(static)e(searc)m(h)0
865 y(structures)i(that)h(e\016cien)m(tly)f(iden)m(tify)f(their)g(resp)
s(ectiv)m(e)i(reserv)m(ed)f(k)m(eyw)m(ords.)p eop
%%Page: 13 15
13 14 bop 0 -116 a Fm(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fk(gperf)1820 b Fm(13)0 366
y Fj(3)80 b(High-Lev)l(el)31 b(Description)e(of)h(GNU)h
Fg(gperf)125 849 y Fm(The)k(p)s(erfect)i(hash)e(function)h(generator)h
Fk(gperf)e Fm(reads)h(a)h(set)g(of)g(\\k)m(eyw)m(ords")g(from)f(a)h
Fh(k)m(ey\014le)42 b Fm(\(or)36 b(from)0 974 y(the)g(standard)g(input)e
(b)m(y)i(default\).)57 b(It)36 b(attempts)h(to)g(deriv)m(e)f(a)g(p)s
(erfect)g(hashing)f(function)g(that)h(recognizes)0 1099
y(a)g(mem)m(b)s(er)f(of)h(the)g Fh(static)h(k)m(eyw)m(ord)f(set)i
Fm(with)d(at)h(most)h(a)f(single)e(prob)s(e)h(in)m(to)h(the)g(lo)s
(okup)e(table.)57 b(If)35 b Fk(gperf)0 1223 y Fm(succeeds)g(in)e
(generating)h(suc)m(h)h(a)f(function)f(it)h(pro)s(duces)f(a)i(pair)e
(of)i(C)f(source)g(co)s(de)h(routines)e(that)i(p)s(erform)0
1348 y(hashing)h(and)g(table)h(lo)s(okup)f(recognition.)61
b(All)36 b(generated)i(C)f(co)s(de)g(is)g(directed)f(to)i(the)g
(standard)e(output.)0 1472 y(Command-line)24 b(options)i(describ)s(ed)e
(b)s(elo)m(w)h(allo)m(w)h(y)m(ou)h(to)g(mo)s(dify)d(the)j(input)d(and)i
(output)f(format)i(to)g Fk(gperf)p Fm(.)125 1768 y(By)h(default,)g
Fk(gperf)f Fm(attempts)j(to)f(pro)s(duce)e(time-e\016cien)m(t)i(co)s
(de,)g(with)e(less)g(emphasis)g(on)i(e\016cien)m(t)f(space)0
1892 y(utilization.)38 b(Ho)m(w)m(ev)m(er,)32 b(sev)m(eral)e(options)e
(exist)h(that)h(p)s(ermit)d(trading-o\013)i(execution)h(time)f(for)g
(storage)h(space)0 2017 y(and)23 b(vice)h(v)m(ersa.)39
b(In)23 b(particular,)g(expanding)g(the)g(generated)i(table)f(size)f
(pro)s(duces)g(a)h(sparse)f(searc)m(h)h(structure,)0
2142 y(generally)g(yielding)e(faster)k(searc)m(hes.)39
b(Con)m(v)m(ersely)-8 b(,)27 b(y)m(ou)e(can)g(direct)f
Fk(gperf)g Fm(to)h(utilize)e(a)j(C)e Fk(switch)f Fm(statemen)m(t)0
2266 y(sc)m(heme)28 b(that)f(minimizes)d(data)k(space)f(storage)i
(size.)39 b(F)-8 b(urthermore,)28 b(using)d(a)i(C)g Fk(switch)e
Fm(ma)m(y)i(actually)g(sp)s(eed)0 2391 y(up)i(the)i(k)m(eyw)m(ord)g
(retriev)-5 b(al)29 b(time)h(somewhat.)41 b(Actual)31
b(results)e(dep)s(end)g(on)h(y)m(our)g(C)g(compiler,)f(of)i(course.)125
2686 y(In)c(general,)h Fk(gperf)f Fm(assigns)g(v)-5 b(alues)27
b(to)h(the)g(c)m(haracters)i(it)d(is)g(using)f(for)i(hashing)e(un)m
(til)g(some)i(set)h(of)f(v)-5 b(alues)0 2811 y(giv)m(es)31
b(eac)m(h)g(k)m(eyw)m(ord)g(a)f(unique)f(v)-5 b(alue.)40
b(A)30 b(helpful)d(heuristic)i(is)g(that)i(the)f(larger)g(the)h(hash)e
(v)-5 b(alue)30 b(range,)h(the)0 2936 y(easier)i(it)g(is)f(for)g
Fk(gperf)g Fm(to)i(\014nd)d(and)i(generate)h(a)g(p)s(erfect)f(hash)f
(function.)47 b(Exp)s(erimen)m(tation)32 b(is)g(the)h(k)m(ey)h(to)0
3060 y(getting)d(the)g(most)f(from)g Fk(gperf)p Fm(.)0
3705 y Fi(3.1)68 b(Input)30 b(F)-11 b(ormat)31 b(to)f
Ff(gperf)125 4001 y Fm(Y)-8 b(ou)28 b(can)g(con)m(trol)g(the)g(input)d
(k)m(ey\014le)j(format)g(b)m(y)f(v)-5 b(arying)27 b(certain)h
(command-line)e(argumen)m(ts,)j(in)d(partic-)0 4126 y(ular)h(the)i(`)p
Fk(-t)p Fm(')g(option.)40 b(The)28 b(input's)f(app)s(earance)i(is)e
(similar)g(to)i(GNU)g(utilities)e Fk(flex)g Fm(and)h
Fk(bison)g Fm(\(or)h(UNIX)0 4250 y(utilities)f Fk(lex)h
Fm(and)h Fk(yacc)p Fm(\).)40 b(Here's)31 b(an)f(outline)f(of)i(the)f
(general)h(format:)240 4525 y Fk(declarations)240 4629
y(\045\045)240 4733 y(keywords)240 4837 y(\045\045)240
4940 y(functions)125 5215 y Fh(Unlik)m(e)f Fk(flex)25
b Fm(or)h Fk(bison)p Fm(,)g(all)f(sections)h(of)g Fk(gperf)p
Fm('s)f(input)f(are)j(optional.)38 b(The)26 b(follo)m(wing)e(sections)j
(describ)s(e)0 5340 y(the)k(input)d(format)j(for)f(eac)m(h)h(section.)p
eop
%%Page: 14 16
14 15 bop 0 -116 a Fm(14)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)0 366 y Fe(3.1.1)63 b Fd(struct)31 b Fe(Declarations)f(and)g
(C)g(Co)s(de)h(Inclusion)125 876 y Fm(The)f(k)m(eyw)m(ord)i(input)d
(\014le)h(optionally)g(con)m(tains)h(a)h(section)f(for)g(including)c
(arbitrary)j(C)h(declarations)g(and)0 1000 y(de\014nitions,)25
b(as)i(w)m(ell)f(as)h(pro)m(visions)e(for)h(pro)m(viding)f(a)i
(user-supplied)c Fk(struct)p Fm(.)38 b(If)26 b(the)h(`)p
Fk(-t)p Fm(')g(option)f Fh(is)k Fm(enabled,)0 1125 y(y)m(ou)39
b Fh(m)m(ust)h Fm(pro)m(vide)d(a)i(C)f Fk(struct)e Fm(as)j(the)f(last)g
(comp)s(onen)m(t)h(in)e(the)h(declaration)g(section)h(from)f(the)g(k)m
(ey\014le)0 1249 y(\014le.)50 b(The)34 b(\014rst)f(\014eld)f(in)h(this)
g(struct)g(m)m(ust)h(b)s(e)f(a)i Fk(char)29 b(*)k Fm(iden)m(ti\014er)f
(called)h(`)p Fk(name)p Fm(',)i(although)e(it)g(is)g(p)s(ossible)0
1374 y(to)e(mo)s(dify)e(this)g(\014eld's)g(name)h(with)g(the)g(`)p
Fk(-K)p Fm(')g(option)g(describ)s(ed)e(b)s(elo)m(w.)125
1883 y(Here)i(is)g(simple)e(example,)i(using)f(mon)m(ths)i(of)f(the)h
(y)m(ear)g(and)f(their)f(attributes)h(as)h(input:)240
2371 y Fk(struct)46 b(months)g({)i(char)e(*name;)g(int)h(number;)f(int)
h(days;)f(int)h(leap_days;)e(};)240 2475 y(\045\045)240
2578 y(january,)141 b(1,)47 b(31,)g(31)240 2682 y(february,)93
b(2,)47 b(28,)g(29)240 2786 y(march,)237 b(3,)47 b(31,)g(31)240
2890 y(april,)237 b(4,)47 b(30,)g(30)240 2994 y(may,)333
b(5,)47 b(31,)g(31)240 3097 y(june,)285 b(6,)47 b(30,)g(30)240
3201 y(july,)285 b(7,)47 b(31,)g(31)240 3305 y(august,)189
b(8,)47 b(31,)g(31)240 3409 y(september,)e(9,)i(30,)g(30)240
3512 y(october,)93 b(10,)47 b(31,)g(31)240 3616 y(november,)e(11,)i
(30,)g(30)240 3720 y(december,)e(12,)i(31,)g(31)125 4208
y Fm(Separating)41 b(the)i Fk(struct)d Fm(declaration)i(from)g(the)g
(list)f(of)i(k)m(ey)g(w)m(ords)f(and)f(other)i(\014elds)d(are)j(a)g
(pair)e(of)0 4333 y(consecutiv)m(e)c(p)s(ercen)m(t)f(signs,)h
Fk(\045\045)p Fm(,)g(app)s(earing)e(left)h(justi\014ed)e(in)h(the)h
(\014rst)g(column,)h(as)f(in)f(the)h(UNIX)h(utilit)m(y)0
4457 y Fk(lex)p Fm(.)125 4966 y(Using)21 b(a)h(syn)m(tax)h(similar)c
(to)k(GNU)g(utilities)c Fk(flex)i Fm(and)h Fk(bison)p
Fm(,)g(it)g(is)f(p)s(ossible)f(to)i(directly)f(include)f(C)i(source)0
5091 y(text)31 b(and)e(commen)m(ts)h(v)m(erbatim)g(in)m(to)f(the)h
(generated)h(output)e(\014le.)40 b(This)27 b(is)i(accomplished)g(b)m(y)
g(enclosing)g(the)0 5215 y(region)23 b(inside)d(left-justi\014ed)h
(surrounding)f Fk(\045{)p Fm(,)k Fk(\045})f Fm(pairs.)37
b(Here)23 b(is)f(an)h(input)e(fragmen)m(t)j(based)e(on)h(the)g
(previous)0 5340 y(example)30 b(that)h(illustrates)d(this)i(feature:)p
eop
%%Page: 15 17
15 16 bop 0 -116 a Fm(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fk(gperf)1820 b Fm(15)240
366 y Fk(\045{)240 470 y(#include)46 b(<assert.h>)240
574 y(/*)h(This)g(section)f(of)h(code)f(is)i(inserted)d(directly)h
(into)g(the)h(output.)f(*/)240 678 y(int)h(return_month_days)c
(\(struct)j(months)g(*months,)f(int)i(is_leap_year\);)240
782 y(\045})240 885 y(struct)f(months)g({)i(char)e(*name;)g(int)h
(number;)f(int)h(days;)f(int)h(leap_days;)e(};)240 989
y(\045\045)240 1093 y(january,)141 b(1,)47 b(31,)g(31)240
1197 y(february,)93 b(2,)47 b(28,)g(29)240 1300 y(march,)237
b(3,)47 b(31,)g(31)240 1404 y(...)125 1659 y Fm(It)25
b(is)g(p)s(ossible)e(to)j(omit)f(the)h(declaration)f(section)h(en)m
(tirely)-8 b(.)38 b(In)25 b(this)f(case)j(the)f(k)m(ey\014le)f(b)s
(egins)f(directly)g(with)0 1784 y(the)31 b(\014rst)e(k)m(eyw)m(ord)i
(line,)e(e.g.:)240 2039 y Fk(january,)141 b(1,)47 b(31,)g(31)240
2142 y(february,)93 b(2,)47 b(28,)g(29)240 2246 y(march,)237
b(3,)47 b(31,)g(31)240 2350 y(april,)237 b(4,)47 b(30,)g(30)240
2454 y(...)0 2876 y Fe(3.1.2)63 b(F)-10 b(ormat)29 b(for)h(Keyw)m(ord)g
(En)m(tries)125 3152 y Fm(The)g(second)h(k)m(ey\014le)h(format)f
(section)g(con)m(tains)h(lines)d(of)j(k)m(eyw)m(ords)f(and)g(an)m(y)g
(asso)s(ciated)h(attributes)f(y)m(ou)0 3276 y(migh)m(t)i(supply)-8
b(.)47 b(A)33 b(line)f(b)s(eginning)e(with)i(`)p Fk(#)p
Fm(')h(in)f(the)h(\014rst)g(column)f(is)g(considered)g(a)i(commen)m(t.)
50 b(Ev)m(erything)0 3401 y(follo)m(wing)29 b(the)h(`)p
Fk(#)p Fm(')h(is)e(ignored,)h(up)f(to)j(and)d(including)e(the)k(follo)m
(wing)e(newline.)125 3677 y(The)h(\014rst)g(\014eld)f(of)i(eac)m(h)h
(non-commen)m(t)g(line)d(is)h(alw)m(a)m(ys)h(the)g(k)m(ey)h(itself.)41
b(It)31 b(should)e(b)s(e)h(giv)m(en)h(as)g(a)g(simple)0
3801 y(name,)g(i.e.,)f(without)g(surrounding)c(string)k(quotation)g
(marks,)g(and)g(b)s(e)g(left-justi\014ed)e(\015ush)h(against)h(the)h
(\014rst)0 3926 y(column.)51 b(In)34 b(this)f(con)m(text,)k(a)e
(\\\014eld")f(is)f(considered)g(to)i(extend)f(up)g(to,)i(but)d(not)i
(include,)e(the)i(\014rst)e(blank,)0 4050 y(comma,)e(or)g(newline.)38
b(Here)31 b(is)f(a)g(simple)f(example)h(tak)m(en)h(from)f(a)h(partial)e
(list)g(of)i(C)f(reserv)m(ed)g(w)m(ords:)240 4305 y Fk(#)47
b(These)g(are)g(a)g(few)g(C)h(reserved)d(words,)h(see)h(the)g(c.gperf)f
(file)240 4409 y(#)h(for)g(a)h(complete)d(list)i(of)g(ANSI)g(C)g
(reserved)f(words.)240 4513 y(unsigned)240 4616 y(sizeof)240
4720 y(switch)240 4824 y(signed)240 4928 y(if)240 5032
y(default)240 5135 y(for)240 5239 y(while)240 5343 y(return)p
eop
%%Page: 16 18
16 17 bop 0 -116 a Fm(16)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm(Note)j(that)g(unlik)m(e)e Fk(flex)h
Fm(or)g Fk(bison)f Fm(the)i(\014rst)f Fk(\045\045)g Fm(mark)m(er)g(ma)m
(y)h(b)s(e)f(elided)f(if)g(the)i(declaration)f(section)h(is)0
491 y(empt)m(y)-8 b(.)125 772 y(Additional)39 b(\014elds)h(ma)m(y)i
(optionally)e(follo)m(w)g(the)i(leading)e(k)m(eyw)m(ord.)75
b(Fields)40 b(should)f(b)s(e)i(separated)h(b)m(y)0 896
y(commas,)h(and)c(terminate)h(at)h(the)f(end)f(of)h(line.)68
b(What)40 b(these)h(\014elds)d(mean)i(is)f(en)m(tirely)g(up)g(to)i(y)m
(ou;)k(they)0 1021 y(are)36 b(used)e(to)j(initialize)32
b(the)k(elemen)m(ts)g(of)f(the)h(user-de\014ned)e Fk(struct)g
Fm(pro)m(vided)g(b)m(y)h(y)m(ou)h(in)e(the)h(declaration)0
1145 y(section.)61 b(If)36 b(the)i(`)p Fk(-t)p Fm(')f(option)f(is)g
Fh(not)j Fm(enabled)d(these)i(\014elds)d(are)j(simply)c(ignored.)60
b(All)36 b(previous)f(examples)0 1270 y(except)c(the)g(last)f(one)h
(con)m(tain)g(k)m(eyw)m(ord)f(attributes.)0 1746 y Fe(3.1.3)63
b(Including)30 b(Additional)h(C)f(F)-10 b(unctions)125
2027 y Fm(The)30 b(optional)h(third)e(section)i(also)h(corresp)s(onds)e
(closely)g(with)g(con)m(v)m(en)m(tions)j(found)c(in)h
Fk(flex)g Fm(and)h Fk(bison)p Fm(.)0 2151 y(All)23 b(text)i(in)f(this)f
(section,)j(starting)e(at)h(the)g(\014nal)e Fk(\045\045)h
Fm(and)f(extending)h(to)h(the)g(end)f(of)g(the)h(input)d(\014le,)j(is)f
(included)0 2276 y(v)m(erbatim)k(in)m(to)h(the)g(generated)h(output)e
(\014le.)40 b(Naturally)-8 b(,)28 b(it)h(is)e(y)m(our)i(resp)s
(onsibilit)m(y)c(to)k(ensure)f(that)i(the)f(co)s(de)0
2400 y(con)m(tained)i(in)e(this)g(section)h(is)g(v)-5
b(alid)29 b(C.)0 2909 y Fi(3.2)68 b(Output)30 b(F)-11
b(ormat)31 b(for)f(Generated)i(C)e(Co)t(de)g(with)h Ff(gperf)125
3190 y Fm(Sev)m(eral)40 b(options)h(con)m(trol)g(ho)m(w)g(the)g
(generated)h(C)f(co)s(de)g(app)s(ears)f(on)h(the)g(standard)f(output.)
72 b(Tw)m(o)41 b(C)0 3315 y(function)d(are)i(generated.)70
b(They)39 b(are)h(called)e Fk(hash)h Fm(and)g Fk(in_word_set)p
Fm(,)g(although)g(y)m(ou)h(ma)m(y)g(mo)s(dify)e(the)0
3439 y(name)k(for)g Fk(in_word_set)d Fm(with)i(a)h(command-line)f
(option.)75 b(Both)43 b(functions)e(require)g(t)m(w)m(o)i(argumen)m
(ts,)j(a)0 3564 y(string,)g Fk(char)29 b(*)43 b Fh(str)p
Fm(,)j(and)c(a)i(length)f(parameter,)k Fk(int)42 b Fh(len)p
Fm(.)78 b(Their)41 b(default)i(function)f(protot)m(yp)s(es)h(are)h(as)0
3688 y(follo)m(ws:)240 3948 y Fk(static)i(int)h(hash)g(\(char)f(*str,)g
(int)h(len\);)240 4052 y(int)g(in_word_set)e(\(char)h(*str,)g(int)h
(len\);)125 4312 y Fm(By)e(default,)j(the)d(generated)h
Fk(hash)e Fm(function)f(returns)h(an)h(in)m(teger)g(v)-5
b(alue)45 b(created)h(b)m(y)f(adding)e Fh(len)h Fm(to)0
4437 y(sev)m(eral)c(user-sp)s(eci\014ed)e Fh(str)46 b
Fm(k)m(ey)40 b(p)s(ositions)e(indexed)g(in)m(to)i(an)g
Fh(asso)s(ciated)g(v)-5 b(alues)43 b Fm(table)c(stored)h(in)f(a)h(lo)s
(cal)0 4561 y(static)e(arra)m(y)-8 b(.)63 b(The)37 b(asso)s(ciated)h(v)
-5 b(alues)37 b(table)g(is)g(constructed)g(in)m(ternally)f(b)m(y)h
Fk(gperf)f Fm(and)h(later)h(output)f(as)0 4686 y(a)44
b(static)h(lo)s(cal)e(C)h(arra)m(y)g(called)f Fh(hash)p
1399 4686 28 4 v 32 w(table)5 b Fm(;)51 b(its)44 b(meaning)f(and)g
(prop)s(erties)g(are)h(describ)s(ed)e(b)s(elo)m(w.)81
b(See)0 4810 y(Chapter)32 b(7)h([Implemen)m(tation],)h(page)f(29.)49
b(The)33 b(relev)-5 b(an)m(t)33 b(k)m(ey)g(p)s(ositions)e(are)i(sp)s
(eci\014ed)e(via)i(the)g(`)p Fk(-k)p Fm(')f(option)0
4935 y(when)d(running)f Fk(gperf)p Fm(,)h(as)i(detailed)e(in)g(the)i
Fh(Options)i Fm(section)d(b)s(elo)m(w.)40 b(See)31 b(Chapter)e(4)i
([Options],)f(page)h(19.)125 5215 y(Tw)m(o)39 b(options,)i(`)p
Fk(-g)p Fm(')f(\(assume)f(y)m(ou)h(are)g(compiling)d(with)h(GNU)i(C)g
(and)e(its)h Fk(inline)f Fm(feature\))i(and)f(`)p Fk(-a)p
Fm(')0 5340 y(\(assume)30 b(ANSI)g(C-st)m(yle)h(function)e(protot)m(yp)
s(es\),)j(alter)e(the)g(con)m(ten)m(t)j(of)d(b)s(oth)g(the)g(generated)
i Fk(hash)d Fm(and)h Fk(in_)p eop
%%Page: 17 19
17 18 bop 0 -116 a Fm(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fk(gperf)1820 b Fm(17)0 366
y Fk(word_set)24 b Fm(routines.)38 b(Ho)m(w)m(ev)m(er,)29
b(function)24 b Fk(in_word_set)f Fm(ma)m(y)j(b)s(e)g(mo)s(di\014ed)d
(more)j(extensiv)m(ely)-8 b(,)27 b(in)e(resp)s(onse)0
491 y(to)31 b(y)m(our)f(option)g(settings.)41 b(The)30
b(options)g(that)g(a\013ect)i(the)f Fk(in_word_set)c
Fm(structure)j(are:)180 790 y(`)p Fk(-t)p Fm(')334 b(Mak)m(e)32
b(use)e(of)h(the)f(user-de\014ned)f Fk(struct)p Fm(.)180
964 y(`)p Fk(-S)h Fh(total)h(switc)m(h)f(statemen)m(ts)t
Fm(')660 1089 y(Generate)h(1)g(or)f(more)g(C)g Fk(switch)e
Fm(statemen)m(t)k(rather)e(than)g(use)g(a)g(large,)g(\(and)g(p)s(oten)m
(tially)660 1213 y(sparse\))j(static)g(arra)m(y)-8 b(.)50
b(Although)32 b(the)h(exact)i(time)d(and)g(space)i(sa)m(vings)f(of)g
(this)f(approac)m(h)660 1338 y(v)-5 b(ary)42 b(according)g(to)i(y)m
(our)e(C)g(compiler's)f(degree)i(of)f(optimization,)j(this)c(metho)s(d)
h(often)660 1462 y(results)29 b(in)g(smaller)g(and)h(faster)h(co)s(de.)
125 1761 y(If)20 b(the)h(`)p Fk(-t)p Fm(')f(and)h(`)p
Fk(-S)p Fm(')f(options)g(are)i(omitted,)h(the)e(default)f(action)h(is)e
(to)j(generate)g(a)f Fk(char)30 b(*)20 b Fm(arra)m(y)h(con)m(taining)0
1886 y(the)32 b(k)m(eys,)g(together)h(with)e(additional)e(n)m(ull)h
(strings)g(used)h(for)g(padding)f(the)h(arra)m(y)-8 b(.)46
b(By)31 b(exp)s(erimen)m(ting)f(with)0 2010 y(the)e(v)-5
b(arious)27 b(input)f(and)h(output)g(options,)h(and)g(timing)e(the)i
(resulting)e(C)h(co)s(de,)i(y)m(ou)f(can)g(determine)f(the)h(b)s(est)0
2135 y(option)i(c)m(hoices)h(for)f(di\013eren)m(t)g(k)m(eyw)m(ord)h
(set)g(c)m(haracteristics.)p eop
%%Page: 18 20
18 19 bop 0 -116 a Fm(18)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 19 21
19 20 bop 0 -116 a Fm(Chapter)30 b(4:)41 b(Options)29
b(to)i(the)g Fk(gperf)d Fm(Utilit)m(y)2203 b(19)0 366
y Fj(4)80 b(Options)30 b(to)g(the)f Fg(gperf)h Fj(Utilit)l(y)125
739 y Fm(There)38 b(are)i Fh(man)m(y)47 b Fm(options)39
b(to)h Fk(gperf)p Fm(.)66 b(They)39 b(w)m(ere)h(added)e(to)i(mak)m(e)h
(the)e(program)g(more)h(con)m(v)m(enien)m(t)0 863 y(for)34
b(use)f(with)g(real)g(applications.)49 b(\\On-line")33
b(help)f(is)h(readily)g(a)m(v)-5 b(ailable)33 b(via)g(the)h(`)p
Fk(-h)p Fm(')g(option.)51 b(Here)34 b(is)f(the)0 988
y(complete)e(list)e(of)h(options.)0 1435 y Fi(4.1)68
b(Options)31 b(that)g(a\013ect)g(In)l(terpretation)i(of)d(the)h(Input)f
(File)180 1733 y Fm(`)p Fk(-e)g Fh(k)m(eyw)m(ord)h(delimiter)d(list)r
Fm(')660 1858 y(Allo)m(ws)23 b(the)h(user)g(to)h(pro)m(vide)e(a)h
(string)f(con)m(taining)h(delimiters)d(used)j(to)h(separate)g(k)m(eyw)m
(ords)660 1982 y(from)j(their)g(attributes.)40 b(The)29
b(default)f(is)g Fk(")p Fm(,)p Fk(\\)p Fm(n)p Fk(")p
Fm(.)39 b(This)27 b(option)i(is)f(essen)m(tial)g(if)g(y)m(ou)h(w)m(an)m
(t)h(to)660 2107 y(use)g(k)m(eyw)m(ords)h(that)f(ha)m(v)m(e)i(em)m(b)s
(edded)d(commas)i(or)f(newlines.)38 b(One)30 b(useful)f(tric)m(k)h(is)f
(to)i(use)660 2232 y(-e'T)-8 b(AB',)32 b(where)e(T)-8
b(AB)31 b(is)f(the)g(literal)f(tab)i(c)m(haracter.)180
2405 y(`)p Fk(-t)p Fm(')334 b(Allo)m(ws)39 b(y)m(ou)h(to)g(include)e(a)
i Fk(struct)e Fm(t)m(yp)s(e)i(declaration)g(for)f(generated)i(co)s(de.)
69 b(An)m(y)40 b(text)660 2530 y(b)s(efore)h(a)h(pair)e(of)i
(consecutiv)m(e)g(\045\045)f(is)g(consider)f(part)h(of)h(the)g(t)m(yp)s
(e)f(declaration.)74 b(Key)660 2654 y(w)m(ords)32 b(and)g(additional)e
(\014elds)h(ma)m(y)j(follo)m(w)d(this,)i(one)f(group)g(of)h(\014elds)e
(p)s(er)h(line.)45 b(A)33 b(set)g(of)660 2779 y(examples)i(for)h
(generating)g(p)s(erfect)g(hash)f(tables)h(and)f(functions)g(for)g
(Ada,)j(C,)e(and)f(G)p Fk(++)p Fm(,)660 2903 y(P)m(ascal,)c(and)f(Mo)s
(dula)f(2)i(and)f(3)h(reserv)m(ed)f(w)m(ords)g(are)h(distributed)c
(with)i(this)h(release.)0 3350 y Fi(4.2)68 b(Options)31
b(to)g(sp)t(ecify)f(the)h(Language)g(for)f(the)h(Output)f(Co)t(de)180
3649 y Fm(`)p Fk(-L)g Fh(generated)h(language)g(name)5
b Fm(')660 3773 y(Instructs)35 b Fk(gperf)f Fm(to)i(generate)h(co)s(de)
f(in)e(the)i(language)g(sp)s(eci\014ed)d(b)m(y)j(the)g(option's)f
(argu-)660 3898 y(men)m(t.)41 b(Languages)31 b(handled)e(are)i(curren)m
(tly:)840 4072 y(`)p Fk(KR-C)p Fm(')238 b(Old-st)m(yle)43
b(K&R)g(C.)h(This)e(language)i(is)f(understo)s(o)s(d)f(b)m(y)i(old-st)m
(yle)f(C)1320 4196 y(compilers)25 b(and)i(ANSI)f(C)h(compilers,)f(but)g
(ANSI)h(C)g(compilers)e(ma)m(y)j(\015ag)1320 4321 y(w)m(arnings)h(\(or)
i(ev)m(en)g(errors\))f(b)s(ecause)g(of)h(lac)m(king)f(`)p
Fk(const)p Fm('.)840 4494 y(`)p Fk(C)p Fm(')382 b(Common)35
b(C.)g(This)f(language)h(is)g(understo)s(o)s(d)e(b)m(y)i(ANSI)g(C)g
(compilers,)1320 4619 y(and)44 b(also)g(b)m(y)g(old-st)m(yle)g(C)f
(compilers,)k(pro)m(vided)c(that)h(y)m(ou)h Fk(#define)1320
4744 y(const)33 b Fm(to)i(empt)m(y)g(for)g(compilers)e(whic)m(h)g
(don't)i(kno)m(w)f(ab)s(out)g(this)g(k)m(ey-)1320 4868
y(w)m(ord.)840 5042 y(`)p Fk(ANSI-C)p Fm(')142 b(ANSI)33
b(C.)h(This)d(language)j(is)f(understo)s(o)s(d)f(b)m(y)h(ANSI)g(C)h
(compilers)e(and)1320 5166 y(C)p Fk(++)d Fm(compilers.)840
5340 y(`)p Fk(C++)p Fm(')286 b(C)p Fk(++)p Fm(.)40 b(This)28
b(language)j(is)f(understo)s(o)s(d)e(b)m(y)i(C)p Fk(++)g
Fm(compilers.)p eop
%%Page: 20 22
20 21 bop 0 -116 a Fm(20)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)660 366 y Fm(The)f(default)f(is)h(C.)180 548
y(`)p Fk(-a)p Fm(')334 b(This)25 b(option)h(is)f(supp)s(orted)g(for)h
(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
Fk(gperf)p Fm(.)38 b(It)26 b(do)s(es)660 672 y(not)31
b(do)f(an)m(ything.)180 853 y(`)p Fk(-g)p Fm(')334 b(This)25
b(option)h(is)f(supp)s(orted)g(for)h(compatibilit)m(y)f(with)g
(previous)g(releases)i(of)g Fk(gperf)p Fm(.)38 b(It)26
b(do)s(es)660 978 y(not)31 b(do)f(an)m(ything.)0 1457
y Fi(4.3)68 b(Options)31 b(for)f(\014ne)g(tuning)h(Details)h(in)e(the)h
(Output)f(Co)t(de)180 1762 y Fm(`)p Fk(-K)g Fh(k)m(ey)h(name)5
b Fm(')660 1887 y(This)20 b(option)h(is)g(only)g(useful)f(when)h
(option)h(`)p Fk(-t)p Fm(')f(has)h(b)s(een)f(giv)m(en.)38
b(By)22 b(default,)h(the)f(program)660 2012 y(assumes)28
b(the)i(structure)e(comp)s(onen)m(t)h(iden)m(ti\014er)e(for)i(the)g(k)m
(eyw)m(ord)g(is)f(`)p Fk(name)p Fm('.)39 b(This)27 b(option)660
2136 y(allo)m(ws)34 b(an)h(arbitrary)e(c)m(hoice)i(of)g(iden)m
(ti\014er)e(for)h(this)g(comp)s(onen)m(t,)i(although)e(it)h(still)d(m)m
(ust)660 2261 y(o)s(ccur)e(as)h(the)f(\014rst)g(\014eld)f(in)g(y)m(our)
h(supplied)d Fk(struct)p Fm(.)180 2442 y(`)p Fk(-H)j
Fh(hash)g(function)f(name)5 b Fm(')660 2566 y(Allo)m(ws)31
b(y)m(ou)h(to)h(sp)s(ecify)d(the)i(name)g(for)f(the)h(generated)h(hash)
e(function.)44 b(Default)32 b(name)g(is)660 2691 y(`)p
Fk(hash)p Fm('.)40 b(This)29 b(option)g(p)s(ermits)g(the)i(use)f(of)g
(t)m(w)m(o)i(hash)e(tables)g(in)f(the)h(same)h(\014le.)180
2872 y(`)p Fk(-N)f Fh(lo)s(okup)f(function)g(name)5 b
Fm(')660 2996 y(Allo)m(ws)31 b(y)m(ou)i(to)g(sp)s(ecify)e(the)i(name)f
(for)g(the)h(generated)g(lo)s(okup)e(function.)45 b(Default)33
b(name)660 3121 y(is)27 b(`)p Fk(in_word_set)p Fm('.)37
b(This)26 b(option)h(p)s(ermits)f(completely)h(automatic)i(generation)f
(of)g(p)s(erfect)660 3246 y(hash)h(functions,)g(esp)s(ecially)g(when)g
(m)m(ultiple)e(generated)k(hash)f(functions)e(are)j(used)e(in)g(the)660
3370 y(same)i(application.)180 3551 y(`)p Fk(-Z)f Fh(class)g(name)5
b Fm(')660 3676 y(This)32 b(option)i(is)e(only)i(useful)e(when)h
(option)g(`)p Fk(-L)d(C++)p Fm(')j(has)h(b)s(een)f(giv)m(en.)52
b(It)34 b(allo)m(ws)f(y)m(ou)h(to)660 3800 y(sp)s(ecify)29
b(the)i(name)f(of)h(generated)g(C)p Fk(++)e Fm(class.)41
b(Default)30 b(name)h(is)e Fk(Perfect_Hash)p Fm(.)180
3981 y(`)p Fk(-7)p Fm(')334 b(This)29 b(option)i(sp)s(eci\014es)f(that)
h(all)f(strings)g(that)i(will)c(b)s(e)j(passed)f(as)i(argumen)m(ts)f
(to)h(the)f(gen-)660 4106 y(erated)e(hash)f(function)g(and)g(the)h
(generated)g(lo)s(okup)f(function)f(will)f(solely)i(consist)g(of)h
(7-bit)660 4231 y(ASCI)s(I)k(c)m(haracters)j(\(c)m(haracters)g(in)e
(the)g(range)h(0..127\).)56 b(\(Note)36 b(that)f(the)g(ANSI)f(C)h
(func-)660 4355 y(tions)k Fk(isalnum)e Fm(and)i Fk(isgraph)f
Fm(do)h Fh(not)j Fm(guaran)m(tee)e(that)h(a)e(c)m(haracter)i(is)e(in)f
(this)g(range.)660 4480 y(Only)e(an)h(explicit)f(test)i(lik)m(e)f(`)p
Fk(c)30 b(>=)g('A')f(&&)h(c)g(<=)g('Z')p Fm(')37 b(guaran)m(tees)h
(this.\))61 b(This)36 b(w)m(as)i(the)660 4604 y(default)29
b(in)g(earlier)g(v)m(ersions)g(of)h Fk(gperf)p Fm(;)f(no)m(w)h(the)g
(default)f(is)g(to)i(assume)e(8-bit)h(c)m(haracters.)180
4785 y(`)p Fk(-c)p Fm(')334 b(Generates)33 b(C)f(co)s(de)g(that)g(uses)
g(the)g Fk(strncmp)e Fm(function)h(to)h(p)s(erform)f(string)g
(comparisons.)660 4910 y(The)f(default)f(action)i(is)f(to)h(use)f
Fk(strcmp)p Fm(.)180 5091 y(`)p Fk(-C)p Fm(')334 b(Mak)m(es)27
b(the)f(con)m(ten)m(ts)h(of)f(all)e(generated)j(lo)s(okup)d(tables)h
(constan)m(t,)j(i.e.,)f(\\readonly".)39 b(Man)m(y)660
5215 y(compilers)21 b(can)i(generate)h(more)f(e\016cien)m(t)g(co)s(de)g
(for)f(this)f(b)m(y)i(putting)e(the)i(tables)g(in)e(readonly)660
5340 y(memory)-8 b(.)p eop
%%Page: 21 23
21 22 bop 0 -116 a Fm(Chapter)30 b(4:)41 b(Options)29
b(to)i(the)g Fk(gperf)d Fm(Utilit)m(y)2203 b(21)180 366
y(`)p Fk(-E)p Fm(')334 b(De\014ne)24 b(constan)m(t)h(v)-5
b(alues)23 b(using)f(an)i(en)m(um)f(lo)s(cal)g(to)i(the)e(lo)s(okup)g
(function)f(rather)i(than)f(with)660 491 y(#de\014nes.)46
b(This)31 b(also)i(means)f(that)h(di\013eren)m(t)g(lo)s(okup)e
(functions)g(can)i(reside)e(in)h(the)h(same)660 616 y(\014le.)40
b(Thanks)29 b(to)i(James)g(Clark)e Fk(<jjc@ai.mit.edu>)p
Fm(.)180 781 y(`)p Fk(-I)p Fm(')334 b(Include)40 b(the)h(necessary)h
(system)g(include)d(\014le,)k Fk(<string.h>)p Fm(,)f(at)g(the)g(b)s
(eginning)c(of)k(the)660 905 y(co)s(de.)52 b(By)35 b(default,)f(this)f
(is)h(not)g(done;)i(the)e(user)g(m)m(ust)g(include)e(this)h(header)h
(\014le)f(himself)660 1030 y(to)e(allo)m(w)f(compilation)f(of)h(the)h
(co)s(de.)180 1195 y(`)p Fk(-G)p Fm(')334 b(Generate)25
b(the)g(static)f(table)g(of)g(k)m(eyw)m(ords)g(as)h(a)f(static)g
(global)g(v)-5 b(ariable,)24 b(rather)g(than)g(hiding)660
1320 y(it)30 b(inside)e(of)j(the)f(lo)s(okup)f(function)g(\(whic)m(h)h
(is)f(the)i(default)e(b)s(eha)m(vior\).)180 1485 y(`)p
Fk(-W)h Fh(hash)g(table)g(arra)m(y)h(name)5 b Fm(')660
1609 y(Allo)m(ws)28 b(y)m(ou)h(to)h(sp)s(ecify)e(the)h(name)g(for)g
(the)g(generated)h(arra)m(y)g(con)m(taining)e(the)i(hash)e(table.)660
1734 y(Default)g(name)g(is)e(`)p Fk(wordlist)p Fm('.)38
b(This)26 b(option)i(p)s(ermits)e(the)h(use)h(of)g(t)m(w)m(o)h(hash)e
(tables)g(in)g(the)660 1858 y(same)k(\014le,)e(ev)m(en)j(when)d(the)i
(option)e(`)p Fk(-G)p Fm(')i(is)e(giv)m(en.)180 2023
y(`)p Fk(-S)h Fh(total)h(switc)m(h)f(statemen)m(ts)t
Fm(')660 2148 y(Causes)45 b(the)h(generated)g(C)f(co)s(de)h(to)g(use)g
(a)f Fk(switch)f Fm(statemen)m(t)k(sc)m(heme,)i(rather)45
b(than)660 2273 y(an)g(arra)m(y)h(lo)s(okup)e(table.)86
b(This)44 b(can)h(lead)g(to)h(a)g(reduction)f(in)f(b)s(oth)g(time)i
(and)e(space)660 2397 y(requiremen)m(ts)24 b(for)i(some)f(k)m
(ey\014les.)39 b(The)25 b(argumen)m(t)h(to)g(this)e(option)h
(determines)f(ho)m(w)i(man)m(y)660 2522 y Fk(switch)k
Fm(statemen)m(ts)k(are)e(generated.)46 b(A)32 b(v)-5
b(alue)32 b(of)g(1)g(generates)h(1)f Fk(switch)f Fm(con)m(taining)g
(all)660 2646 y(the)26 b(elemen)m(ts,)h(a)g(v)-5 b(alue)25
b(of)h(2)g(generates)i(2)e(tables)g(with)e(1/2)j(the)g(elemen)m(ts)f
(in)e(eac)m(h)j Fk(switch)p Fm(,)660 2771 y(etc.)40 b(This)25
b(is)g(useful)f(since)i(man)m(y)g(C)g(compilers)f(cannot)h(correctly)h
(generate)h(co)s(de)e(for)g(large)660 2895 y Fk(switch)j
Fm(statemen)m(ts.)44 b(This)29 b(option)h(w)m(as)h(inspired)d(in)h
(part)i(b)m(y)g(Keith)f(Bostic's)h(original)e(C)660 3020
y(program.)180 3185 y(`)p Fk(-T)p Fm(')334 b(Prev)m(en)m(ts)31
b(the)g(transfer)f(of)h(the)g(t)m(yp)s(e)g(declaration)f(to)h(the)g
(output)f(\014le.)40 b(Use)31 b(this)f(option)g(if)660
3309 y(the)h(t)m(yp)s(e)f(is)g(already)f(de\014ned)h(elsewhere.)180
3475 y(`)p Fk(-p)p Fm(')334 b(This)25 b(option)h(is)f(supp)s(orted)g
(for)h(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
Fk(gperf)p Fm(.)38 b(It)26 b(do)s(es)660 3599 y(not)31
b(do)f(an)m(ything.)0 4029 y Fi(4.4)68 b(Options)31 b(for)f(c)l
(hanging)h(the)g(Algorithms)g(emplo)l(y)l(ed)h(b)l(y)e
Ff(gperf)180 4323 y Fm(`)p Fk(-k)g Fh(k)m(eys)t Fm(')131
b(Allo)m(ws)23 b(selection)g(of)h(the)g(c)m(haracter)h(k)m(ey)g(p)s
(ositions)d(used)g(in)h(the)h(k)m(eyw)m(ords')g(hash)f(function.)660
4448 y(The)28 b(allo)m(w)m(able)g(c)m(hoices)h(range)g(b)s(et)m(w)m
(een)g(1-126,)i(inclusiv)m(e.)38 b(The)27 b(p)s(ositions)g(are)h
(separated)660 4572 y(b)m(y)d(commas,)j(e.g.,)g(`)p Fk(-k)i(9,4,13,14)p
Fm(';)25 b(ranges)h(ma)m(y)g(b)s(e)e(used,)i(e.g.,)i(`)p
Fk(-k)i(2-7)p Fm(';)d(and)e(p)s(ositions)660 4697 y(ma)m(y)j(o)s(ccur)f
(in)f(an)m(y)h(order.)39 b(F)-8 b(urthermore,)28 b(the)g(meta-c)m
(haracter)i('*')e(causes)g(the)f(generated)660 4822 y(hash)i(function)g
(to)h(consider)f Fc(all)i Fm(c)m(haracter)g(p)s(ositions)d(in)g(eac)m
(h)j(k)m(ey)-8 b(,)32 b(whereas)e('$')g(instructs)660
4946 y(the)f(hash)f(function)g(to)h(use)g(the)g(\\\014nal)f(c)m
(haracter")j(of)e(a)g(k)m(ey)h(\(this)e(is)g(the)h(only)f(w)m(a)m(y)i
(to)f(use)660 5071 y(a)i(c)m(haracter)h(p)s(osition)c(greater)k(than)e
(126,)i(inciden)m(tally\).)660 5215 y(F)-8 b(or)29 b(instance,)f(the)g
(option)f(`)p Fk(-k)j(1,2,4,6-10,'$')p Fm(')25 b(generates)k(a)f(hash)f
(function)g(that)h(con-)660 5340 y(siders)38 b(p)s(ositions)g
(1,2,4,6,7,8,9,10,)49 b(plus)38 b(the)i(last)f(c)m(haracter)j(in)d(eac)
m(h)i(k)m(ey)f(\(whic)m(h)f(ma)m(y)p eop
%%Page: 22 24
22 23 bop 0 -116 a Fm(22)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)660 366 y Fm(di\013er)j(for)h(eac)m(h)h(k)m(ey)-8
b(,)38 b(ob)m(viously\).)54 b(Keys)35 b(with)f(length)h(less)f(than)h
(the)h(indicated)d(k)m(ey)j(p)s(o-)660 491 y(sitions)j(w)m(ork)h(prop)s
(erly)-8 b(,)42 b(since)d(selected)i(k)m(ey)g(p)s(ositions)e(exceeding)
h(the)h(k)m(ey)g(length)f(are)660 616 y(simply)28 b(not)j(referenced)f
(in)f(the)h(hash)g(function.)180 843 y(`)p Fk(-l)p Fm(')334
b(Compare)32 b(k)m(ey)g(lengths)f(b)s(efore)g(trying)g(a)h(string)f
(comparison.)44 b(This)30 b(migh)m(t)i(cut)g(do)m(wn)f(on)660
967 y(the)23 b(n)m(um)m(b)s(er)e(of)h(string)f(comparisons)h(made)g
(during)e(the)j(lo)s(okup,)g(since)e(k)m(eys)i(with)e(di\013eren)m(t)
660 1092 y(lengths)i(are)h(nev)m(er)g(compared)f(via)g
Fk(strcmp)p Fm(.)37 b(Ho)m(w)m(ev)m(er,)27 b(using)22
b(`)p Fk(-l)p Fm(')i(migh)m(t)f(greatly)h(increase)660
1216 y(the)33 b(size)f(of)g(the)h(generated)h(C)e(co)s(de)g(if)g(the)g
(lo)s(okup)f(table)h(range)h(is)f(large)g(\(whic)m(h)g(implies)660
1341 y(that)26 b(the)f(switc)m(h)g(option)g(`)p Fk(-S)p
Fm(')g(is)f(not)i(enabled\),)g(since)e(the)i(length)f(table)g(con)m
(tains)g(as)h(man)m(y)660 1465 y(elemen)m(ts)31 b(as)f(there)h(are)g
(en)m(tries)f(in)f(the)h(lo)s(okup)f(table.)180 1692
y(`)p Fk(-D)p Fm(')334 b(Handle)26 b(k)m(eyw)m(ords)g(whose)h(k)m(ey)g
(p)s(osition)d(sets)j(hash)f(to)h(duplicate)e(v)-5 b(alues.)39
b(Duplicate)26 b(hash)660 1817 y(v)-5 b(alues)30 b(o)s(ccur)g(for)g(t)m
(w)m(o)i(reasons:)735 1993 y Fl(\017)60 b Fm(Since)33
b Fk(gperf)f Fm(do)s(es)h(not)h(bac)m(ktrac)m(k)h(it)e(is)g(p)s
(ossible)e(for)i(it)h(to)g(pro)s(cess)f(all)f(y)m(our)i(input)840
2117 y(k)m(eyw)m(ords)43 b(without)e(\014nding)g(a)i(unique)d(mapping)h
(for)h(eac)m(h)i(w)m(ord.)77 b(Ho)m(w)m(ev)m(er,)48 b(fre-)840
2242 y(quen)m(tly)39 b(only)f(a)i(v)m(ery)f(small)f(n)m(um)m(b)s(er)g
(of)h(duplicates)f(o)s(ccur,)j(and)e(the)g(ma)5 b(jorit)m(y)40
b(of)840 2366 y(k)m(eys)31 b(still)d(require)h(one)i(prob)s(e)e(in)m
(to)i(the)f(table.)735 2542 y Fl(\017)60 b Fm(Sometimes)45
b(a)g(set)h(of)g(k)m(eys)f(ma)m(y)h(ha)m(v)m(e)h(the)e(same)g(names,)50
b(but)44 b(p)s(ossess)g(di\013eren)m(t)840 2666 y(attributes.)39
b(With)24 b(the)i(-D)g(option)f Fk(gperf)f Fm(treats)i(all)e(these)i(k)
m(eys)g(as)g(part)f(of)g(an)h(equiv-)840 2791 y(alence)31
b(class)f(and)g(generates)i(a)e(p)s(erfect)h(hash)f(function)f(with)g
(m)m(ultiple)f(comparisons)840 2916 y(for)c(duplicate)e(k)m(eys.)39
b(It)24 b(is)f(up)f(to)j(y)m(ou)f(to)h(completely)e(disam)m(biguate)g
(the)h(k)m(eyw)m(ords)g(b)m(y)840 3040 y(mo)s(difying)g(the)i
(generated)i(C)e(co)s(de.)39 b(Ho)m(w)m(ev)m(er,)30 b
Fk(gperf)24 b Fm(helps)h(y)m(ou)i(out)f(b)m(y)h(organizing)840
3165 y(the)k(output.)660 3392 y(Option)26 b(`)p Fk(-D)p
Fm(')h(is)g(extremely)g(useful)f(for)h(certain)g(large)h(or)f(highly)e
(redundan)m(t)h(k)m(eyw)m(ord)i(sets,)660 3516 y(e.g.,)49
b(assem)m(bler)44 b(instruction)e(op)s(co)s(des.)81 b(Using)43
b(this)g(option)g(usually)f(means)i(that)h(the)660 3641
y(generated)29 b(hash)e(function)f(is)h(no)h(longer)f(p)s(erfect.)40
b(On)27 b(the)h(other)g(hand,)f(it)g(p)s(ermits)f Fk(gperf)660
3765 y Fm(to)31 b(w)m(ork)g(on)f(k)m(eyw)m(ord)h(sets)f(that)h(it)f
(otherwise)g(could)g(not)g(handle.)180 3992 y(`)p Fk(-f)g
Fh(iteration)g(amoun)m(t)r Fm(')660 4117 y(Generate)38
b(the)e(p)s(erfect)h(hash)e(function)g(\\fast".)61 b(This)34
b(decreases)j Fk(gperf)p Fm('s)f(running)d(time)660 4241
y(at)38 b(the)f(cost)h(of)f(minimizing)c(generated)38
b(table-size.)60 b(The)36 b(iteration)h(amoun)m(t)g(represen)m(ts)660
4366 y(the)29 b(n)m(um)m(b)s(er)f(of)h(times)g(to)g(iterate)h(when)e
(resolving)g(a)h(collision.)38 b(`0')30 b(means)f(iterate)h(b)m(y)f
(the)660 4490 y(n)m(um)m(b)s(er)22 b(of)h(k)m(eyw)m(ords.)38
b(This)21 b(option)i(is)f(probably)f(most)i(useful)e(when)h(used)g(in)g
(conjunction)660 4615 y(with)29 b(options)h(`)p Fk(-D)p
Fm(')g(and/or)g(`)p Fk(-S)p Fm(')h(for)f Fh(large)35
b Fm(k)m(eyw)m(ord)c(sets.)180 4842 y(`)p Fk(-i)f Fh(initial)e(v)-5
b(alue)5 b Fm(')660 4966 y(Pro)m(vides)36 b(an)g(initial)e
Fh(v)-5 b(alue)41 b Fm(for)36 b(the)h(asso)s(ciate)g(v)-5
b(alues)36 b(arra)m(y)-8 b(.)59 b(Default)37 b(is)e(0.)60
b(Increasing)660 5091 y(the)39 b(initial)d(v)-5 b(alue)39
b(helps)e(in\015ate)i(the)g(\014nal)e(table)i(size,)j(p)s(ossibly)36
b(leading)h(to)j(more)f(time)660 5215 y(e\016cien)m(t)e(k)m(eyw)m(ord)h
(lo)s(okups.)59 b(Note)38 b(that)g(this)e(option)g(is)g(not)h
(particularly)e(useful)g(when)660 5340 y(`)p Fk(-S)p
Fm(')30 b(is)g(used.)40 b(Also,)30 b(`)p Fk(-i)p Fm(')g(is)g(o)m(v)m
(erriden)g(when)f(the)h(`)p Fk(-r)p Fm(')h(option)f(is)f(used.)p
eop
%%Page: 23 25
23 24 bop 0 -116 a Fm(Chapter)30 b(4:)41 b(Options)29
b(to)i(the)g Fk(gperf)d Fm(Utilit)m(y)2203 b(23)180 366
y(`)p Fk(-j)30 b Fh(jump)f(v)-5 b(alue)5 b Fm(')660 491
y(A\013ects)35 b(the)f(\\jump)f(v)-5 b(alue",)36 b(i.e.,)f(ho)m(w)f
(far)g(to)g(adv)-5 b(ance)35 b(the)f(asso)s(ciated)h(c)m(haracter)g(v)
-5 b(alue)660 616 y(up)s(on)30 b(collisions.)41 b Fh(Jump)30
b(v)-5 b(alue)36 b Fm(is)31 b(rounded)f(up)g(to)j(an)e(o)s(dd)f(n)m(um)
m(b)s(er,)h(the)h(default)e(is)h(5.)44 b(If)660 740 y(the)31
b Fh(jump)d(v)-5 b(alue)35 b Fm(is)30 b(0)h Fk(gperf)d
Fm(jumps)h(b)m(y)h(random)g(amoun)m(ts.)180 908 y(`)p
Fk(-n)p Fm(')334 b(Instructs)36 b(the)i(generator)g(not)f(to)h(include)
d(the)j(length)e(of)h(a)h(k)m(eyw)m(ord)g(when)e(computing)660
1033 y(its)27 b(hash)g(v)-5 b(alue.)39 b(This)26 b(ma)m(y)i(sa)m(v)m(e)
h(a)f(few)f(assem)m(bly)g(instructions)f(in)g(the)i(generated)g(lo)s
(okup)660 1158 y(table.)180 1326 y(`)p Fk(-o)p Fm(')334
b(Reorders)38 b(the)h(k)m(eyw)m(ords)f(b)m(y)h(sorting)e(the)i(k)m(eyw)
m(ords)g(so)f(that)h(frequen)m(tly)f(o)s(ccuring)f(k)m(ey)660
1450 y(p)s(osition)h(set)j(comp)s(onen)m(ts)f(app)s(ear)f(\014rst.)69
b(A)40 b(second)h(reordering)d(pass)i(follo)m(ws)f(so)h(that)660
1575 y(k)m(eys)29 b(with)f(\\already)h(determined)e(v)-5
b(alues")29 b(are)g(placed)g(to)m(w)m(ards)g(the)g(fron)m(t)g(of)g(the)
g(k)m(eylist.)660 1700 y(This)e(ma)m(y)i(decrease)h(the)e(time)h
(required)d(to)k(generate)g(a)f(p)s(erfect)f(hash)g(function)f(for)i
(man)m(y)660 1824 y(k)m(eyw)m(ord)i(sets,)h(and)f(also)g(pro)s(duce)f
(more)h(minimal)d(p)s(erfect)j(hash)f(functions.)41 b(The)31
b(reason)660 1949 y(for)h(this)g(is)f(that)i(the)g(reordering)e(helps)g
(prune)g(the)h(searc)m(h)h(time)g(b)m(y)f(handling)e(inevitable)660
2073 y(collisions)20 b(early)j(in)f(the)h(searc)m(h)g(pro)s(cess.)38
b(On)22 b(the)h(other)g(hand,)h(if)e(the)h(n)m(um)m(b)s(er)f(of)h(k)m
(eyw)m(ords)660 2198 y(is)33 b Fh(v)m(ery)42 b Fm(large)33
b(using)f(`)p Fk(-o)p Fm(')i(ma)m(y)g Fh(increase)39
b Fk(gperf)p Fm('s)32 b(execution)i(time,)g(since)f(collisions)f(will)
660 2322 y(b)s(egin)h(earlier)g(and)h(con)m(tin)m(ue)h(throughout)f
(the)g(remainder)f(of)h(k)m(eyw)m(ord)h(pro)s(cessing.)52
b(See)660 2447 y(Cic)m(helli's)28 b(pap)s(er)h(from)h(the)h(Jan)m(uary)
f(1980)i(Comm)m(unications)d(of)h(the)h(A)m(CM)g(for)f(details.)180
2615 y(`)p Fk(-r)p Fm(')334 b(Utilizes)22 b(randomness)h(to)h
(initialize)d(the)i(asso)s(ciated)h(v)-5 b(alues)23 b(table.)38
b(This)22 b(frequen)m(tly)g(gener-)660 2740 y(ates)27
b(solutions)e(faster)i(than)f(using)e(deterministic)h(initialization)e
(\(whic)m(h)i(starts)i(all)e(asso)s(ci-)660 2864 y(ated)g(v)-5
b(alues)23 b(at)i(0\).)39 b(F)-8 b(urthermore,)26 b(using)c(the)j
(randomization)d(option)i(generally)f(increases)660 2989
y(the)32 b(size)f(of)g(the)h(table.)43 b(If)31 b Fk(gperf)f
Fm(has)h(di\016cultly)e(with)h(a)h(certain)h(k)m(eyw)m(ord)f(set)h(try)
f(using)660 3113 y(`)p Fk(-r)p Fm(')f(or)h(`)p Fk(-D)p
Fm('.)180 3282 y(`)p Fk(-s)f Fh(size-m)m(ultiple)5 b
Fm(')660 3406 y(A\013ects)27 b(the)g(size)f(of)g(the)h(generated)g
(hash)f(table.)39 b(The)26 b(n)m(umeric)f(argumen)m(t)h(for)g(this)f
(option)660 3531 y(indicates)f(\\ho)m(w)h(man)m(y)g(times)g(larger)g
(or)g(smaller")f(the)h(maxim)m(um)f(asso)s(ciated)h(v)-5
b(alue)25 b(range)660 3655 y(should)32 b(b)s(e,)k(in)d(relationship)f
(to)j(the)g(n)m(um)m(b)s(er)e(of)h(k)m(eys.)54 b(If)34
b(the)h Fh(size-m)m(ultiple)i Fm(is)d(negativ)m(e)660
3780 y(the)g(maxim)m(um)e(asso)s(ciated)i(v)-5 b(alue)32
b(is)h(calculated)g(b)m(y)g Fh(dividing)38 b Fm(it)33
b(in)m(to)h(the)f(total)h(n)m(um)m(b)s(er)660 3904 y(of)29
b(k)m(eys.)41 b(F)-8 b(or)29 b(example,)g(a)g(v)-5 b(alue)29
b(of)g(3)g(means)f(\\allo)m(w)h(the)g(maxim)m(um)f(asso)s(ciated)h(v)-5
b(alue)28 b(to)660 4029 y(b)s(e)i(ab)s(out)g(3)h(times)f(larger)g(than)
g(the)g(n)m(um)m(b)s(er)f(of)i(input)d(k)m(eys".)660
4175 y(Con)m(v)m(ersely)-8 b(,)29 b(a)g(v)-5 b(alue)27
b(of)h(-3)h(means)f(\\allo)m(w)g(the)g(maxim)m(um)f(asso)s(ciated)i(v)
-5 b(alue)27 b(to)i(b)s(e)e(ab)s(out)660 4300 y(3)38
b(times)g(smaller)e(than)i(the)g(n)m(um)m(b)s(er)e(of)i(input)e(k)m
(eys".)65 b(Negativ)m(e)40 b(v)-5 b(alues)37 b(are)h(useful)e(for)660
4424 y(limiting)27 b(the)j(o)m(v)m(erall)h(size)f(of)g(the)g(generated)
h(hash)e(table,)i(though)e(this)g(usually)f(increases)660
4549 y(the)j(n)m(um)m(b)s(er)e(of)h(duplicate)f(hash)h(v)-5
b(alues.)660 4695 y(If)44 b(`generate)j(switc)m(h')e(option)f(`)p
Fk(-S)p Fm(')h(is)f Fh(not)j Fm(enabled,)g(the)e(maxim)m(um)f(asso)s
(ciated)h(v)-5 b(alue)660 4820 y(in\015uences)32 b(the)h(static)h(arra)
m(y)g(table)f(size,)h(and)f(a)h(larger)f(table)g(should)e(decrease)k
(the)e(time)660 4944 y(required)c(for)h(an)g(unsuccessful)e(searc)m(h,)
j(at)g(the)g(exp)s(ense)f(of)g(extra)i(table)e(space.)660
5091 y(The)c(default)g(v)-5 b(alue)26 b(is)g(1,)i(th)m(us)e(the)h
(default)f(maxim)m(um)f(asso)s(ciated)i(v)-5 b(alue)26
b(ab)s(out)h(the)g(same)660 5215 y(size)i(as)g(the)g(n)m(um)m(b)s(er)f
(of)h(k)m(eys)g(\(for)g(e\016ciency)-8 b(,)30 b(the)f(maxim)m(um)f
(asso)s(ciated)h(v)-5 b(alue)28 b(is)g(alw)m(a)m(ys)660
5340 y(rounded)f(up)h(to)h(a)g(p)s(o)m(w)m(er)f(of)h(2\).)41
b(The)28 b(actual)h(table)f(size)h(ma)m(y)g(v)-5 b(ary)29
b(somewhat,)g(since)f(this)p eop
%%Page: 24 26
24 25 bop 0 -116 a Fm(24)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)660 366 y Fm(tec)m(hnique)e(is)f(essen)m(tially)h(a)g
(heuristic.)39 b(In)28 b(particular,)g(setting)i(this)e(v)-5
b(alue)29 b(to)s(o)h(high)d(slo)m(ws)660 491 y(do)m(wn)f
Fk(gperf)p Fm('s)f(run)m(time,)i(since)f(it)g(m)m(ust)g(searc)m(h)i
(through)e(a)h(m)m(uc)m(h)f(larger)h(range)g(of)f(v)-5
b(alues.)660 616 y(Judicious)28 b(use)i(of)g(the)h(`)p
Fk(-f)p Fm(')f(option)g(helps)f(alleviate)h(this)f(o)m(v)m(erhead,)j
(ho)m(w)m(ev)m(er.)0 1064 y Fi(4.5)68 b(Informativ)l(e)32
b(Output)180 1363 y Fm(`)p Fk(-h)p Fm(')334 b(Prin)m(ts)32
b(a)i(short)g(summary)e(on)i(the)g(meaning)e(of)i(eac)m(h)h(program)e
(option.)50 b(Ab)s(orts)33 b(further)660 1487 y(program)d(execution.)
180 1662 y(`)p Fk(-v)p Fm(')334 b(Prin)m(ts)29 b(out)i(the)f(curren)m
(t)h(v)m(ersion)e(n)m(um)m(b)s(er.)180 1836 y(`)p Fk(-d)p
Fm(')334 b(Enables)39 b(the)g(debugging)g(option.)68
b(This)38 b(pro)s(duces)h(v)m(erb)s(ose)h(diagnostics)f(to)h
(\\standard)660 1961 y(error")27 b(when)f Fk(gperf)g
Fm(is)g(executing.)39 b(It)27 b(is)f(useful)g(b)s(oth)g(for)h(main)m
(taining)e(the)i(program)g(and)660 2085 y(for)32 b(determining)f
(whether)g(a)i(giv)m(en)g(set)g(of)f(options)g(is)f(actually)h(sp)s
(eeding)f(up)h(the)g(searc)m(h)660 2210 y(for)25 b(a)h(solution.)38
b(Some)26 b(useful)e(information)g(is)g(dump)s(ed)g(at)i(the)g(end)f
(of)h(the)g(program)f(when)660 2334 y(the)31 b(`)p Fk(-d)p
Fm(')f(option)g(is)f(enabled.)p eop
%%Page: 25 27
25 26 bop 0 -116 a Fm(Chapter)30 b(5:)41 b(Kno)m(wn)30
b(Bugs)g(and)g(Limitations)e(with)h Fk(gperf)1697 b Fm(25)0
366 y Fj(5)80 b(Kno)l(wn)29 b(Bugs)g(and)h(Limitations)i(with)e
Fg(gperf)125 740 y Fm(The)f(follo)m(wing)g(are)i(some)g(limitations)d
(with)h(the)h(curren)m(t)h(release)f(of)h Fk(gperf)p
Fm(:)75 1014 y Fl(\017)60 b Fm(The)26 b Fk(gperf)f Fm(utilit)m(y)g(is)h
(tuned)g(to)h(execute)h(quic)m(kly)-8 b(,)27 b(and)f(w)m(orks)h(quic)m
(kly)e(for)h(small)g(to)h(medium)e(size)h(data)180 1139
y(sets)k(\(around)f(1000)j(k)m(eyw)m(ords\).)41 b(It)30
b(is)f(extremely)h(useful)e(for)h(main)m(taining)f(p)s(erfect)i(hash)f
(functions)f(for)180 1263 y(compiler)j(k)m(eyw)m(ord)i(sets.)48
b(Sev)m(eral)33 b(recen)m(t)h(enhancemen)m(ts)f(no)m(w)f(enable)g
Fk(gperf)g Fm(to)h(w)m(ork)g(e\016cien)m(tly)f(on)180
1388 y(m)m(uc)m(h)26 b(larger)g(k)m(eyw)m(ord)h(sets)g(\(o)m(v)m(er)g
(15,000)i(k)m(eyw)m(ords\).)40 b(When)26 b(pro)s(cessing)f(large)h(k)m
(eyw)m(ord)h(sets)g(it)e(helps)180 1512 y(greatly)31
b(to)g(ha)m(v)m(e)h(o)m(v)m(er)f(8)g(megs)g(of)f(RAM.)180
1662 y(Ho)m(w)m(ev)m(er,)45 b(since)39 b Fk(gperf)g Fm(do)s(es)g(not)i
(bac)m(ktrac)m(k)h(no)e(guaran)m(teed)h(solution)d(o)s(ccurs)i(on)g(ev)
m(ery)h(run.)68 b(On)180 1786 y(the)35 b(other)h(hand,)f(it)g(is)f
(usually)f(easy)j(to)g(obtain)f(a)g(solution)f(b)m(y)h(v)-5
b(arying)34 b(the)i(option)e(parameters.)56 b(In)180
1911 y(particular,)37 b(try)g(the)g(`)p Fk(-r)p Fm(')f(option,)j(and)d
(also)h(try)f(c)m(hanging)h(the)g(default)f(argumen)m(ts)h(to)h(the)f
(`)p Fk(-s)p Fm(')g(and)180 2035 y(`)p Fk(-j)p Fm(')31
b(options.)41 b(T)-8 b(o)31 b Fh(guaran)m(tee)37 b Fm(a)31
b(solution,)f(use)g(the)h(`)p Fk(-D)p Fm(')g(and)f(`)p
Fk(-S)p Fm(')g(options,)h(although)f(the)h(\014nal)e(results)180
2160 y(are)j(not)h(lik)m(ely)d(to)j(b)s(e)e(a)i Fh(p)s(erfect)g
Fm(hash)f(function)e(an)m(ymore!)47 b(Finally)-8 b(,)31
b(use)g(the)h(`)p Fk(-f)p Fm(')g(option)g(if)f(y)m(ou)h(w)m(an)m(t)180
2284 y Fk(gperf)d Fm(to)i(generate)h(the)f(p)s(erfect)f(hash)f
(function)g Fh(fast)p Fm(,)i(with)f(less)f(emphasis)g(on)h(making)g(it)
g(minimal.)75 2434 y Fl(\017)60 b Fm(The)28 b(size)g(of)g(the)h
(generate)h(static)f(k)m(eyw)m(ord)f(arra)m(y)h(can)g(get)g
Fh(extremely)37 b Fm(large)28 b(if)f(the)i(input)d(k)m(eyw)m(ord)j
(\014le)180 2558 y(is)k(large)g(or)h(if)f(the)g(k)m(eyw)m(ords)h(are)g
(quite)f(similar.)48 b(This)32 b(tends)h(to)i(slo)m(w)e(do)m(wn)g(the)h
(compilation)e(of)i(the)180 2683 y(generated)g(C)f(co)s(de,)h(and)e
Fh(greatly)42 b Fm(in\015ates)32 b(the)h(ob)5 b(ject)34
b(co)s(de)f(size.)49 b(If)32 b(this)g(situation)g(o)s(ccurs,)i
(consider)180 2807 y(using)i(the)i(`)p Fk(-S)p Fm(')g(option)g(to)g
(reduce)g(data)g(size,)i(p)s(oten)m(tially)d(increasing)f(k)m(eyw)m
(ord)j(recognition)e(time)h(a)180 2932 y(negligible)32
b(amoun)m(t.)52 b(Since)34 b(man)m(y)g(C)g(compilers)e(cannot)j
(correctly)g(generated)g(co)s(de)f(for)g(large)g(switc)m(h)180
3056 y(statemen)m(ts)j(it)e(is)g(imp)s(ortan)m(t)f(to)i(qualify)e(the)h
Fh(-S)41 b Fm(option)35 b(with)f(an)h(appropriate)g(n)m(umerical)e
(argumen)m(t)180 3181 y(that)e(con)m(trols)g(the)f(n)m(um)m(b)s(er)f
(of)i(switc)m(h)f(statemen)m(ts)i(generated.)75 3330
y Fl(\017)60 b Fm(The)31 b(maxim)m(um)f(n)m(um)m(b)s(er)g(of)h(k)m(ey)h
(p)s(ositions)e(selected)h(for)h(a)f(giv)m(en)h(k)m(ey)g(has)f(an)g
(arbitrary)f(limit)f(of)i(126.)180 3455 y(This)h(restriction)i(should)e
(b)s(e)h(remo)m(v)m(ed,)k(and)d(if)f(an)m(y)m(one)i(considers)e(this)g
(a)i(problem)e(write)g(me)h(and)g(let)180 3579 y(me)c(kno)m(w)h(so)f(I)
h(can)f(remo)m(v)m(e)i(the)f(constrain)m(t.)p eop
%%Page: 26 28
26 27 bop 0 -116 a Fm(26)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 27 29
27 28 bop 0 -116 a Fm(Chapter)30 b(6:)41 b(Things)28
b(Still)g(Left)j(to)g(Do)2433 b(27)0 366 y Fj(6)80 b(Things)30
b(Still)j(Left)d(to)f(Do)125 740 y Fm(It)40 b(should)f(b)s(e)h
(\\relativ)m(ely")i(easy)f(to)h(replace)e(the)h(curren)m(t)g(p)s
(erfect)g(hash)f(function)f(algorithm)h(with)g(a)0 865
y(more)35 b(exhaustiv)m(e)h(approac)m(h;)i(the)d(p)s(erfect)g(hash)g
(mo)s(dule)e(is)h(essen)m(tial)h(indep)s(enden)m(t)e(from)i(other)g
(program)0 989 y(mo)s(dules.)k(Additional)28 b(w)m(orth)m(while)h
(impro)m(v)m(emen)m(ts)h(include:)75 1263 y Fl(\017)60
b Fm(Mak)m(e)33 b(the)e(algorithm)f(more)h(robust.)42
b(A)m(t)32 b(presen)m(t,)f(the)h(program)e(halts)h(with)e(an)i(error)g
(diagnostic)f(if)g(it)180 1388 y(can't)j(\014nd)e(a)i(direct)f
(solution)f(and)h(the)h(`)p Fk(-D)p Fm(')f(option)g(is)g(not)g
(enabled.)46 b(A)33 b(more)g(comprehensiv)m(e,)f(alb)s(eit)180
1512 y(computationally)26 b(exp)s(ensiv)m(e,)h(approac)m(h)g(w)m(ould)e
(emplo)m(y)i(bac)m(ktrac)m(king)h(or)e(enable)g(alternativ)m(e)i
(options)180 1637 y(and)d(retry)-8 b(.)40 b(It's)26 b(not)h(clear)f(ho)
m(w)g(helpful)d(this)i(w)m(ould)g(b)s(e,)i(in)d(general,)k(since)d
(most)h(searc)m(h)h(sets)g(are)f(rather)180 1761 y(small)j(in)g
(practice.)75 1911 y Fl(\017)60 b Fm(Another)31 b(useful)e(extension)i
(in)m(v)m(olv)m(es)g(mo)s(difying)d(the)k(program)e(to)i(generate)h
(\\minimal")c(p)s(erfect)i(hash)180 2035 y(functions)i(\(under)h
(certain)g(circumstances,)i(the)e(curren)m(t)h(v)m(ersion)f(can)h(b)s
(e)f(rather)g(extra)m(v)-5 b(agan)m(t)37 b(in)d(the)180
2160 y(generated)i(table)f(size\).)55 b(Again,)36 b(this)e(is)g(mostly)
g(of)h(theoretical)h(in)m(terest,)g(since)f(a)g(sparse)g(table)g(often)
180 2284 y(pro)s(duces)29 b(faster)i(lo)s(okups,)f(and)g(use)g(of)h
(the)g(`)p Fk(-S)p Fm(')f Fk(switch)f Fm(option)h(can)h(minimize)d(the)
j(data)h(size,)e(at)i(the)180 2409 y(exp)s(ense)j(of)g(sligh)m(tly)f
(longer)h(lo)s(okups)f(\(note)j(that)f(the)f(gcc)i(compiler)d
(generally)g(pro)s(duces)g(go)s(o)s(d)i(co)s(de)180 2533
y(for)30 b Fk(switch)f Fm(statemen)m(ts,)j(reducing)d(the)i(need)f(for)
g(more)g(complex)g(sc)m(hemes\).)75 2683 y Fl(\017)60
b Fm(In)27 b(addition)f(to)j(impro)m(ving)d(the)i(algorithm,)f(it)h(w)m
(ould)e(also)i(b)s(e)f(useful)f(to)j(generate)g(a)g(C)p
Fk(++)d Fm(class)i(or)g(Ada)180 2807 y(pac)m(k)-5 b(age)32
b(as)f(the)g(co)s(de)f(output,)g(in)f(addition)g(to)i(the)g(curren)m(t)
f(C)g(routines.)p eop
%%Page: 28 30
28 29 bop 0 -116 a Fm(28)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 29 31
29 30 bop 0 -116 a Fm(Chapter)30 b(7:)41 b(Implemen)m(tation)29
b(Details)i(of)f(GNU)h Fk(gperf)1799 b Fm(29)0 366 y
Fj(7)80 b(Implemen)l(tation)29 b(Details)i(of)f(GNU)h
Fg(gperf)125 740 y Fm(A)42 b(pap)s(er)f(describing)e(the)k(high-lev)m
(el)e(description)f(of)i(the)g(data)h(structures)e(and)h(algorithms)f
(used)g(to)0 865 y(implemen)m(t)c Fk(gperf)f Fm(will)f(so)s(on)j(b)s(e)
f(a)m(v)-5 b(ailable.)63 b(This)36 b(pap)s(er)h(is)g(useful)f(not)i
(only)f(from)h(a)g(main)m(tenance)h(and)0 989 y(enhancemen)m(t)23
b(p)s(ersp)s(ectiv)m(e,)h(but)e(also)g(b)s(ecause)h(they)f(demonstrate)
h(sev)m(eral)g(clev)m(er)g(and)f(useful)f(programming)0
1114 y(tec)m(hniques,)31 b(e.g.,)i(`Iteration)f(Num)m(b)s(er')e(b)s(o)s
(olean)g(arra)m(ys,)i(double)e(hashing,)g(a)i(\\safe")g(and)f
(e\016cien)m(t)g(metho)s(d)0 1238 y(for)f(reading)g(arbitrarily)d(long)
j(input)f(from)h(a)g(\014le,)g(and)g(a)h(pro)m(v)-5 b(ably)29
b(optimal)h(algorithm)f(for)h(sim)m(ultaneously)0 1363
y(determining)e(b)s(oth)i(the)h(minim)m(um)c(and)j(maxim)m(um)f(elemen)
m(ts)i(in)e(a)i(list.)p eop
%%Page: 30 32
30 31 bop 0 -116 a Fm(30)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Page: 31 33
31 32 bop 0 -116 a Fm(Chapter)30 b(8:)41 b(Bibliograph)m(y)2833
b(31)0 366 y Fj(8)80 b(Bibliograph)l(y)125 808 y Fm([1])27
b(Chang,)h(C.C.:)38 b Fh(A)27 b(Sc)m(heme)h(for)e(Constructing)g
(Ordered)g(Minimal)e(P)m(erfect)k(Hashing)e(F)-8 b(unctions)31
b Fm(Infor-)0 932 y(mation)f(Sciences)g(39\(1986\),)k(187-195.)125
1220 y([2])39 b(Cic)m(helli,)e(Ric)m(hard)h(J.)g Fh(Author's)g(Resp)s
(onse)f(to)i(\\On)f(Cic)m(helli's)e(Minimal)g(P)m(erfect)j(Hash)f(F)-8
b(unctions)0 1344 y(Metho)s(d")31 b Fm(Comm)m(unications)e(of)h(the)h
(A)m(CM,)g(23,)h(12\(Decem)m(b)s(er)g(1980\),)h(729.)125
1632 y([3])j(Cic)m(helli,)e(Ric)m(hard)g(J.)h Fh(Minimal)e(P)m(erfect)j
(Hash)f(F)-8 b(unctions)35 b(Made)h(Simple)i Fm(Comm)m(unications)33
b(of)j(the)0 1756 y(A)m(CM,)31 b(23,)h(1\(Jan)m(uary)e(1980\),)j
(17-19.)125 2044 y([4])45 b(Co)s(ok,)i(C.)d(R.)h(and)e(Oldeho)s(eft,)k
(R.R.)d Fh(A)g(Letter)h(Orien)m(ted)f(Minimal)e(P)m(erfect)j(Hashing)e
(F)-8 b(unction)0 2168 y Fm(SIGPLAN)30 b(Notices,)h(17,)h(9\(Septem)m
(b)s(er)f(1982\),)h(18-27.)125 2456 y([5])43 b(Cormac)m(k,)k(G.)c(V.)g
(and)f(Horsp)s(o)s(ol,)j(R.)e(N.)g(S.)g(and)f(Kaiserw)m(erth,)j(M.)e
Fh(Practical)g(P)m(erfect)h(Hashing)0 2580 y Fm(Computer)30
b(Journal,)f(28,)i(1\(Jan)m(uary)g(1985\),)i(54-58.)125
2868 y([6])d(Jaesc)m(hk)m(e,)i(G.)f Fh(Recipro)s(cal)e(Hashing:)40
b(A)30 b(Metho)s(d)g(for)g(Generating)g(Minimal)e(P)m(erfect)j(Hashing)
f(F)-8 b(unc-)0 2992 y(tions)33 b Fm(Comm)m(unications)c(of)i(the)g(A)m
(CM,)g(24,)g(12\(Decem)m(b)s(er)i(1981\),)f(829-833.)125
3280 y([7])27 b(Jaesc)m(hk)m(e,)i(G.)e(and)f(Osterburg,)g(G.)h
Fh(On)f(Cic)m(helli's)e(Minimal)g(P)m(erfect)j(Hash)g(F)-8
b(unctions)26 b(Metho)s(d)k Fm(Com-)0 3404 y(m)m(unications)f(of)i(the)
f(A)m(CM,)h(23,)h(12\(Decem)m(b)s(er)g(1980\),)h(728-729.)125
3692 y([8])e(Sager,)h(Thomas)e(J.)h Fh(A)g(P)m(olynomial)e(Time)h
(Generator)i(for)e(Minimal)f(P)m(erfect)j(Hash)f(F)-8
b(unctions)34 b Fm(Com-)0 3816 y(m)m(unications)29 b(of)i(the)f(A)m
(CM,)h(28,)h(5\(Decem)m(b)s(er)g(1985\),)h(523-532)125
4104 y([9])40 b(Sc)m(hmidt,)i(Douglas)e(C.)g Fh(GPERF:)g(A)g(P)m
(erfect)i(Hash)d(F)-8 b(unction)40 b(Generator)48 b Fm(Second)39
b(USENIX)h(C)p Fk(++)0 4228 y Fm(Conference)30 b(Pro)s(ceedings,)g
(April)e(1990.)125 4516 y([10])k(Seb)s(esta,)f(R.W.)h(and)e(T)-8
b(a)m(ylor,)32 b(M.A.)f Fh(Minimal)e(P)m(erfect)j(Hash)f(F)-8
b(unctions)31 b(for)f(Reserv)m(ed)i(W)-8 b(ord)31 b(Lists)0
4640 y Fm(SIGPLAN)f(Notices,)h(20,)h(12\(Septem)m(b)s(er)f(1985\),)i
(47-53.)125 4928 y([11])28 b(Sprugnoli,)c(R.)j Fh(P)m(erfect)h(Hashing)
e(F)-8 b(unctions:)39 b(A)27 b(Single)e(Prob)s(e)h(Retrieving)g(Metho)s
(d)g(for)h(Static)g(Sets)0 5053 y Fm(Comm)m(unications)i(of)h(the)h(A)m
(CM,)g(20)g(11\(No)m(v)m(em)m(b)s(er)i(1977\),)g(841-850.)125
5340 y([12])e(Stallman,)e(Ric)m(hard)h(M.)h Fh(Using)e(and)h(P)m
(orting)g(GNU)h(CC)38 b Fm(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
b(oundation,)30 b(1988.)p eop
%%Page: 32 34
32 33 bop 0 -116 a Fm(32)2920 b(User's)31 b(Guide)e(to)i
Fk(gperf)125 366 y Fm([13])g(Stroustrup,)e(Bjarne)i Fh(The)e(C)p
Fk(++)h Fh(Programming)f(Language.)42 b Fm(Addison-W)-8
b(esley)g(,)30 b(1986.)125 640 y([14])h(Tiemann,)e(Mic)m(hael)i(D.)g
Fh(User's)f(Guide)f(to)j(GNU)f(C)p Fk(++)e Fm(F)-8 b(ree)32
b(Soft)m(w)m(are)f(F)-8 b(oundation,)30 b(1989.)p eop
%%Page: -1 35
-1 34 bop 3875 -116 a Fm(i)0 366 y Fj(T)-13 b(able)31
b(of)f(Con)l(ten)l(ts)0 715 y Fi(GNU)45 b(GENERAL)g(PUBLIC)g(LICENSE)25
b Fb(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)69
b Fi(1)299 871 y Fm(Pream)m(ble)15 b Fa(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45
b Fm(1)299 995 y(TERMS)29 b(AND)j(CONDITIONS)15 b Fa(.)f(.)h(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
45 b Fm(2)299 1120 y(App)s(endix:)38 b(Ho)m(w)31 b(to)g(Apply)e(These)h
(T)-8 b(erms)30 b(to)h(Y)-8 b(our)31 b(New)f(Programs)d
Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fm(5)0 1369
y Fi(Con)l(tributors)46 b(to)f(GNU)g Ff(gperf)e Fi(Utilit)l(y)g
Fb(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
(.)85 b Fi(7)0 1649 y(1)135 b(In)l(tro)t(duction)40 b
Fb(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
f(.)85 b Fi(9)0 1929 y(2)135 b(Static)45 b(searc)l(h)h(structures)f
(and)f(GNU)h Ff(gperf)38 b Fb(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)85
b Fi(11)0 2210 y(3)135 b(High-Lev)l(el)46 b(Description)g(of)f(GNU)g
Ff(gperf)15 b Fb(.)i(.)i(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)59
b Fi(13)299 2365 y Fm(3.1)92 b(Input)29 b(F)-8 b(ormat)32
b(to)f Fk(gperf)22 b Fa(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)53 b Fm(13)598
2490 y(3.1.1)93 b Fk(struct)28 b Fm(Declarations)j(and)f(C)g(Co)s(de)g
(Inclusion)24 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
(.)56 b Fm(14)598 2614 y(3.1.2)93 b(F)-8 b(ormat)31 b(for)f(Keyw)m(ord)
g(En)m(tries)16 b Fa(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45
b Fm(15)598 2739 y(3.1.3)93 b(Including)27 b(Additional)h(C)i(F)-8
b(unctions)19 b Fa(.)14 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Fm(16)299
2863 y(3.2)92 b(Output)29 b(F)-8 b(ormat)32 b(for)e(Generated)h(C)f(Co)
s(de)g(with)f Fk(gperf)22 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)52 b Fm(16)0 3112 y Fi(4)135 b(Options)45
b(to)g(the)h Ff(gperf)c Fi(Utilit)l(y)24 b Fb(.)e(.)d(.)g(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)69
b Fi(19)299 3268 y Fm(4.1)92 b(Options)29 b(that)i(a\013ect)h(In)m
(terpretation)e(of)h(the)f(Input)f(File)d Fa(.)15 b(.)h(.)f(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fm(19)299 3393 y(4.2)92
b(Options)29 b(to)i(sp)s(ecify)e(the)i(Language)g(for)f(the)h(Output)e
(Co)s(de)13 b Fa(.)h(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42
b Fm(19)299 3517 y(4.3)92 b(Options)29 b(for)h(\014ne)g(tuning)f
(Details)h(in)f(the)i(Output)e(Co)s(de)23 b Fa(.)14 b(.)h(.)g(.)g(.)h
(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 b Fm(20)299 3642
y(4.4)92 b(Options)29 b(for)h(c)m(hanging)g(the)h(Algorithms)e(emplo)m
(y)m(ed)h(b)m(y)h Fk(gperf)21 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g
(.)50 b Fm(21)299 3766 y(4.5)92 b(Informativ)m(e)30 b(Output)d
Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fm(24)0 4015
y Fi(5)135 b(Kno)l(wn)45 b(Bugs)f(and)h(Limitations)i(with)e
Ff(gperf)28 b Fb(.)17 b(.)i(.)h(.)f(.)h(.)f(.)h(.)72
b Fi(25)0 4296 y(6)135 b(Things)44 b(Still)i(Left)g(to)f(Do)17
b Fb(.)j(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)62 b Fi(27)0 4576 y(7)135
b(Implemen)l(tation)47 b(Details)g(of)e(GNU)g Ff(gperf)30
b Fb(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)78 b Fi(29)0
4856 y(8)135 b(Bibliograph)l(y)32 b Fb(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 b Fi(31)p eop
%%Page: -2 36
-2 35 bop 0 -116 a Fm(ii)2958 b(User's)31 b(Guide)e(to)i
Fk(gperf)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF