summaryrefslogtreecommitdiff
path: root/web/c_cpp/cwebx/sample.ps
blob: 53ae91cb6332847151aa2fb72054ff1f04b6f4ed (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
%!PS-Adobe-2.0
%%Creator: dvipsk 5.58a Copyright 1986, 1994 Radical Eye Software
%%Pages: 2
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSCommandLine: dvips -f -p6 -l7
%DVIPSParameters: dpi=300, compressed, comments removed
%DVIPSSource:  TeX output 1998.01.13:1225
%%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 300 300 () @start
/Fa 1 1 df<B512C0A212027D871A>0 D E /Fb 21 121 df<EB01FCEB0703130CEB1C07
1403EB18001338A45B3807FFFC3800701CA3EBE038A41470EA01C0A314E2A3380380E414
641438140090C7FC5A120612C612E412CC12701825819C17>12 D<903901FC0FEE903907
0E307E010C136091380CE07C90391C00C01C140113381638A2EC0380A20003B612F03A00
70038070A2EC070016E013E0A391380E01C0A2EA01C0A2ED0388141CA201801490000314
01ED00E04A13001300A248133038C63060EAE63838CC3180D8781FC8FC2725819C25>15
D<EA03CCEA063C120CEA181CEA383812301270A2EAE070A413E212C0A2EA61E4EA6264EA
3C380F127B9115>97 D<123F1207A2120EA45AA4EA39C0EA3E60EA3830A2EA7038A4EAE0
70A3136013E0EAC0C012C1EA6180EA6300123C0D1D7B9C13>I<EA01F0EA0708120CEA18
1CEA3838EA30001270A25AA513081310EA6020EA30C0EA1F000E127B9113>I<EB1F8013
03A2EB0700A4130EA4EA03DCEA063C120CEA181CEA383812301270A2485AA413E212C0A2
EA61E4EA6264EA3C38111D7B9C15>I<EA01E0EA0710120CEA1808EA381012701360EA7F
80EAE000A51308EA60101320EA30C0EA1F000D127B9113>I<EB03C0EB0670130CEB1C60
1400A25BA53803FF8038007000A55BA5485AA5485AA390C7FCA25A12C612E65A12781425
819C0D>I<13F3EA018FEA030FEA0607EA0E0E120C121CA2EA381CA413381230A2EA1878
13F0EA0F701200A213E0A2EAC0C012E1EAC300127E101A7D9113>I<EA0FC01201A2485A
A448C7FCA4EA0E78138CEA0F0E120E121CA4485AA35B00701380A21370EB7100EAE032EA
601C111D7D9C15>I<EA01801203EA0100C7FCA7121C12261247A2128EA2120E5AA35AA2
1271A31272A2123C091C7C9B0D>I<EA1F801203A2EA0700A4120EA45AA45AA45AA412E4
A412681238091D7C9C0B>108 D<393C1E078039266318C0394683A0E0384703C0008E13
80A2120EA2391C0701C0A3EC0380D8380E1388A2EC0708151039701C032039300C01C01D
127C9122>I<EA3C3CEA2646EA4687EA4707128EA2120EA2EA1C0EA35B00381340A21338
148038701900EA300E12127C9117>I<EA01E0EA0718EA0C0C12181238EA300E1270A2EA
E01CA31318133813301360EA60C0EA3180EA1E000F127B9115>I<EA07873804D9803808
E0C0A23811C0E0A21201A2380381C0A31480EA070314005B1306EA0E8C137090C7FCA25A
A4123CB47E131A7F9115>I<EA3C3CEA26C2EA4687EA4707EA8E061300120EA25AA45AA4
5A123010127C9112>114 D<EA01F0EA0608120C131CEA1818EA1C00121F13C0EA0FF012
07EA00781338EA603012E012C0EA8060EA60C0EA1F000E127D9111>I<13C01201A3EA03
80A4EAFFE0EA0700A3120EA45AA4EA3840A31380EA1900120E0B1A7D990E>I<EA1E03EA
27071247A2EA870EA2120EA2485AA438383880A21218EB3900EA1C59EA078E11127C9116
>I<EA070EEA19913810E38012203841C30013C01201A2485AA4EA07021267EAE70412CB
EA8B08EA70F011127D9113>120 D E /Fc 3 51 df<1360AAB512F0A238006000AA1416
7E9119>43 D<120C121C12EC120CAFEAFFC00A137D9211>49 D<121FEA60C01360EAF070
13301260EA0070A2136013C012011380EA02005AEA08101210EA2020EA7FE012FF0C137E
9211>I E /Fd 5 111 df<126012F0A212701210A41220A212401280040C7C830C>59
D<130113031306A3130CA31318A31330A31360A213C0A3EA0180A3EA0300A31206A25AA3
5AA35AA35AA35AA210297E9E15>61 D<EA01F0EA030C120CEA1C1EEA383CEA3018EA7000
A25AA51304EA60081310EA3060EA1F800F127E9112>99 D<EB01E0EB0630EB0E7814F0EB
1C601400A45BA23803FFC038003800A25BA55BA5485AA55B1203A20063C7FC12F312F612
E4127815257E9C14>102 D<EA3C1F384E6180384681C0EA4701128F128E120EA2381C03
80A3EB070000381310A2130E1420387006403830038014127E9119>110
D E /Fe 11 106 df<1203A4EAC30CEAE31CEA7338EA1FE0EA0780A2EA1FE0EA7338EAE3
1CEAC30CEA0300A40E127D9215>3 D<EB3F80EBC0603803001800041304487F487F48EB
0080A2481440A2481420130E131FA4130E90C7FC00401440A26C1480A26CEB01006C1302
6C5B000313183800C060EB3F801B1C7E9720>12 D<B612E07EC9FCA7B612E0A2C9FCA700
7FB512E0B6FC1B147E9320>17 D<1306A25B131C13185B017FB512F090B612F8D80380C8
FC48C9FC123C12F0123C120E12036C7E6CB612F86D14F00130C8FC7F7FA27FA225187E95
2A>40 D<1460A214C0A2EB0180A3EB0300A21306A25BA25BA35BA25BA25BA2485AA248C7
FCA31206A25AA25AA25AA35AA25A124013287A9D00>54 D<13101338A2136CA313C6A2EA
0183A238030180A2380600C0A3481360A2481330A2481318A348130CA24813061402171A
7E981C>94 D<00C0130214060060130CA26C1318A36C1330A26C1360A26C13C0A3380301
80A238018300A2EA00C6A2136CA31338A21310171A7E981C>I<133C13E0EA01C0138012
03AD13005A121C12F0121C12077E1380AD120113C0EA00E0133C0E297D9E15>102
D<12F0121C12077E1380AD120113C0EA00E0133C13E0EA01C013801203AD13005A121C12
F00E297D9E15>I<134013C0EA0180A3EA0300A21206A35AA25AA35AA25AA35AA21260A3
7EA27EA37EA27EA37EA2EA0180A3EA00C013400A2A7D9E10>I<12C0A21260A37EA27EA3
7EA27EA37EA2EA0180A3EA00C0A2EA0180A3EA0300A21206A35AA25AA35AA25AA35AA20A
2A7E9E10>I E /Ff 5 88 df<38C00180AEB5FCA211107E8916>32
D<EA7FF8EAFFFE6C7EEA1C0FEB07801303A313071400EA1FFF5BA2EA1C1FEB038014C013
01A41303EB0780EA7FFFB51200EA7FFC12197F9816>66 D<3801F180EA07FBEA0FFFEA1F
0FEA3C07EA38031270A200F0C7FC5AA77E38700380A21238383C0700EA1F0FEA0FFE6C5A
EA01F011197E9816>I<387FFFC0B5FC7EEA1C01A490C7FCA2131CA2EA1FFCA3EA1C1CA2
90C7FC14E0A5EA7FFFB5FC7E13197F9816>69 D<38FC07E0EAFE0FEAFC07387001C0A300
301380EA3803A313E3EA39F3A213B300191300A61313EA1B1BEA0F1EA2EA0E0E13197F98
16>87 D E /Fg 35 118 df<126012F0A2126004047D830A>46 D<EA0F80EA30E0EA4070
EA8030EAC03812E0124012001370A2136013C0EA0180EA03001206EA0C081208EA1018EA
3FF0127F12FF0D157E9412>50 D<EA0FE0EA3030EA6018EA701CA21200131813381360EA
07E0EA00301318130C130EA212E0A2EAC00CEA4018EA3030EA0FE00F157F9412>I<1330
A2137013F012011370120212041208121812101220124012C0EAFFFEEA0070A5EA03FE0F
157F9412>I<EA2030EA3FE013C0EA24001220A4EA2F80EA30E0EA2070EA00301338A212
4012E0A2EA8030EA4060EA20C0EA1F000D157E9412>I<EA01F0EA0608EA080CEA181C12
30EA7000126012E0EAE3E0EAEC30EAF018130CEAE00EA31260A2EA300C1318EA1830EA07
C00F157F9412>I<1240EA7FFE13FC13F8EAC008EA80101320EA00401380A2EA0100A25A
12021206A2120EA512040F167E9512>I<13101338A3135CA3138EA3EA0107A200031380
EA0203A23807FFC0EA0401A2380800E0A21218003813F038FE03FE17177F961A>65
D<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A21300141814
10A2143014F0B5FC15177F9618>69 D<EB7E0838038198380600584813384813185A0070
1308A25A1400A4EB03FEEB00381270A212307E7E7E380380D838007F0817177E961C>71
D<38FF83FE381C0070AA381FFFF0381C0070AA38FF83FE17177F961A>I<EAFFE0EA0E00
B3A3EAFFE00B177F960D>I<38FF80FE381C0078146014401480EB0100130613085B1338
1378139CEA1D0E121EEA1C07EB0380EB01C0A2EB00E014701478147C38FF80FF18177F96
1B>75 D<EAFFC0001CC7FCAD1420A31460A2144014C01303B5FC13177F9616>I<00FEEB
03F8001E14C000171305A338138009A23811C011A33810E021A2EB7041A3EB3881A2EB1D
01A2130EA2123839FE040FF81D177F9620>I<00FC13FE001E1338001F13101217EA1380
EA11C0A2EA10E013701338A2131C130E130F1307EB0390EB01D0A2EB00F0147014301238
00FE131017177F961A>I<13FCEA0303380E01C0381C00E0481370003013300070133800
60131800E0131CA700701338A200301330003813706C13E0380E01C038030300EA00FC16
177E961B>I<EAFFFE381C0380EB00C014601470A4146014C0EB0380381FFE00001CC7FC
AAB47E14177F9618>I<EAFFFC381C0380EB00C014E01470A414E014C0EB0380381FFE00
381C0780EB01C0EB00E0A514E1A2147238FF803C18177F961A>82
D<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C
130E13061280A3EAC004EAE008EAD810EA87E00F177E9614>I<387FFFF8386038180040
1308A200801304A300001300AF3807FFC016177F9619>I<38FF80FE381C00381410B06C
132012066C13403801818038007E0017177F961A>I<3AFF07FC3F803A3C01E00E00D81C
001304A2EB0170000E5CA2EB023800075CA2EB041CD803845BA2EB880ED801C85BA2EBD8
0F3900F00780A3D96003C7FCA321177F9624>87 D<EA1FC0EA38601330EA10381200EA03
F8EA1E3812301270EAE039A21379EA70FFEA1F1E100E7F8D12>97
D<EA07F0EA18381230EA7010EA600012E0A41260EA70081230EA1830EA07C00D0E7F8D10
>99 D<137E130EA8EA07CEEA1C3EEA300E1270126012E0A412601270EA301EEA182E3807
CFC012177F9614>I<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000A31260EA7008
EA3010EA1830EA07C00D0E7F8D10>I<12FC121CA8137CEA1D8EEA1E07121CAA38FF9FE0
1317809614>104 D<1218123CA212181200A5127C121CAC12FF081780960A>I<12FC121C
B3A3EAFF80091780960A>108 D<EAFC7CEA1D8EEA1E07121CAA38FF9FE0130E808D14>
110 D<EA07C0EA1830EA3018EA600CA2EAE00EA5EA701CEA3018EA1830EA07C00F0E7F8D
12>I<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA01E0EA8060A212C0EAE0C0
EA9F000B0E7F8D0E>115 D<1208A31218A21238EAFF80EA3800A71340A4EA1C80EA0F00
0A147F930E>I<EAFC3FEA1C07AA5BEA0E173803E7E0130E808D14>I
E /Fh 38 122 df<EB3FC03801F0303803C0380007137CEA0F80A2143891C7FCA4B512FC
A2380F807CAE397FE1FF80A2191D809C1B>12 D<903801C070A349485AA490380701C0A4
90380E0380B71280A27E26001C07C7FCEB380EA5495A007FB61280B7FCA22600E038C7FC
48485AA448485AA4380701C0A321257D9C28>35 D<127812FCA4127806067D850D>46
D<1360EA01E0120F12FF12F31203B3A2387FFF80A2111B7D9A18>49
D<EA07F8EA1FFE38383F8038780FC0EAFC0714E01303A21278EA000714C0A2EB0F80EB1F
00131E13385B5B38018060EA03001206000813E0381FFFC05A5AB5FCA2131B7E9A18>I<
EA03F8EA1FFEEA3C1FEB0F80387C07C0127E127C123838000F80A2EB1E005BEA03F8EA00
1EEB0F80EB07C0A214E01230127812FCA214C038780F80EB1F00EA1FFEEA07F8131B7E9A
18>I<EB018013031307130F131F133F136F13CF138F1201EA030F1206120C1218123012
6012C0B512F8A238000F80A63801FFF8A2151B7F9A18>I<38180180381FFF005B5B5B13
C00018C7FCA4EA19F8EA1E0E38180F80EA1007000013C014E0A3127812F8A214C012F038
600F8038381F00EA1FFEEA07F0131B7E9A18>I<137EEA03FF38078180380F03C0EA1E07
123CEB038048C7FCA212F813F8EAFB0E38FA0780EAFC0314C000F813E0A41278A214C012
3CEB0780381E0F00EA07FEEA03F8131B7E9A18>I<1260387FFFE0A214C01480A238E003
00EAC0065B5BC65AA25B13E0A212015B1203A41207A66C5A131C7D9B18>I<EA03F8EA0F
FE381E0F80EA3807EB03C01278A2127E387F8380EBC700EA3FFE6C5A6C7E3807FF80121D
38387FC038781FE0EAF00713031301A3007813C0EB0380EA3E07381FFE00EA03F8131B7E
9A18>I<90381FE0209038FFF8E03803F80F3807C003380F800148C7FC123E1560127E12
7C00FC1400A8007C1460127E123E15C07E390F8001803907C003003803F80E3800FFFCEB
1FE01B1C7D9B22>67 D<B6FCA2380FC01F1407801580A2EBC181A3EC800013C313FFA213
C313C1A21560A29038C000E015C0A21401A21403EC0F80B6FCA21B1C7E9B1F>69
D<B6FCA2380FC01F1407801580A21401EBC181A2EC8000A213C313FFA213C313C1A401C0
C7FCA6B5FCA2191C7E9B1E>I<B5FCA2EA07E0B3A6B5FCA2101C7F9B12>73
D<B5FCA2EA0FC0AF1403A31407A21406140E141E147EB512FEA2181C7E9B1D>76
D<EA0FF8EA1C1E383E0F80130714C0121C1200137FEA07E7EA1F07123C127C12F8A3EA78
0B383E13F8EA0FE115127F9117>97 D<B4FCA2121FA9EB3F80EBE1E0EB8070EB0078143C
A2143EA6143CA21478EB8070381EC1E0381C3F00171D7F9C1B>I<EA03FCEA0E0EEA1C1F
123C1278130E00F8C7FCA61278EB0180123C381C0300EA0E0EEA03F811127E9115>I<EB
0FF0A21301A9EA01F9EA0F07EA1C03EA3C011278A212F8A61278A2123CEA1C03380F0FFE
EA03F9171D7E9C1B>I<EA01FCEA0F07381C0380383C01C0127814E012F8A2B5FC00F8C7
FCA31278007C1360123C6C13C0380F03803801FC0013127F9116>I<137F3801E3803803
C7C0EA0787120FEB8380EB8000A5EAFFF8A2EA0F80AEEA7FF8A2121D809C0F>I<3803F8
F0380E0F38121E381C0730003C1380A4001C1300EA1E0FEA0E0EEA1BF80010C7FC1218A2
EA1FFF14C06C13E04813F0387801F838F00078A300701370007813F0381E03C03807FF00
151B7F9118>I<B4FCA2121FA9EB0FC0EB31E0EB40F0EB80F8A21300AB38FFE7FFA2181D
7F9C1B>I<121E123FA4121EC7FCA6B4FCA2121FAEEAFFE0A20B1E7F9D0E>I<B4FCA2121F
B3A7EAFFE0A20B1D7F9C0E>108 D<39FF0FC07E903831E18F3A1F40F20780D980FC13C0
A2EB00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E0381F40F0EB80F8A21300
AB38FFE7FFA218127F911B>I<EA01FC380F0780381C01C0003C13E0387800F0A200F813
F8A6007813F0A2383C01E0381E03C0380F07803801FC0015127F9118>I<38FF3F80EBE1
E0381F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1E0EB3F0090C7FCA6EAFF
E0A2171A7F911B>I<EAFE3E1347381E8F80A3381F070090C7FCAAEAFFF0A211127F9114>
114 D<EA1FD8EA3078EA601812E0A2EAF000EAFF80EA7FE013F0EA1FF8EA07FCEA007CEA
C01CA212E01318EAF830EACFC00E127E9113>I<1203A45AA25AA2EA3FFC12FFEA1F00A9
130CA4EA0F08EA0798EA03F00E1A7F9913>I<38FF07F8A2EA1F00AC1301120F380786FF
EA01F818127F911B>I<38FFC1FCA2381F0060EB80E0000F13C013C03807C180A23803E3
00A2EA01F6A213FE6C5AA21378A2133016127F9119>I<39FF8FF8FEA2391F03E030A201
831370000FEBF0601386D807C613C0EBCEF8EBEC790003EB7D80EBF83D0001EB3F00A249
7E0000131EEBE00EA21F127F9122>I<38FFC7FCA2381F8180EA0F833807C700EA03EEEA
01FC5B1200137C13FEEA01DFEA039F38070F80380607C0380C03E038FF07FCA216127F91
19>I<38FFC1FCA2381F0060EB80E0000F13C013C03807C180A23803E300A2EA01F713F6
EA00FE5BA21378A21330A21370EA706012F85BEAF9800073C7FC123E161A7F9119>I
E /Fi 42 121 df<EAE038EAF078A7EAE038A2EA60300D0B7C9816>34
D<38380180EA7C03A238EE0700A2130EA35B127C5B1238C65AA35BA2485AA3485AEB8380
380707C0A2380E0EE0A3121CA2383807C0A23818038013207F9C16>37
D<12301278127C123C121CA41238127812F012E01240060D789816>39
D<1238127C127EA2123E120E121E121C127812F01260070B798416>44
D<127012F8A312700505788416>46 D<12E0B51280A338E00F00131EEA001C5B13781370
5BA2485AA3485AA448C7FCA7111A7E9916>55 D<EA03E0EA0FF8487EEA3C1EEA700E7F12
E014801303A213071270EA780FEA3FFFEA1FFBEA0FE338000700A21230EA780E5BEA7078
EA3FF06C5AEA0F8011197E9816>57 D<127012F8A312701200A8127012F8A31270051278
9116>I<EB01801307131FEB3E0013F8485AEA07C0485A003EC7FC12FC12F012FC123EEA
0F806C7EEA01F06C7E133EEB1F801307130111157E9616>60 D<12C012F012FC123EEA0F
806C7EEA01F06C7E133EEB1F801307131FEB3E0013F8485AEA07C0485A003EC7FC12FC12
F012C011157E9616>62 D<EA7FF8EAFFFE6C7EEA1C0FEB07801303A313071400EA1FFF5B
A2EA1C1FEB038014C01301A41303EB0780EA7FFFB51200EA7FFC12197F9816>66
D<3801F180EA07FBEA0FFFEA1F0FEA3C07EA38031270A200F0C7FC5AA77E38700380A212
38383C0700EA1F0FEA0FFE6C5AEA01F011197E9816>I<387FFFC0B5FC7EEA1C01A490C7
FCA2131CA2EA1FFCA3EA1C1CA290C7FC14E0A5EA7FFFB5FC7E13197F9816>69
D<B512E0A3EA1C00A41400A2131CA2EA1FFCA3EA1C1CA290C7FCA6B47E7F5B13197F9816
>I<EA03E348B4FC5AEA1E1F487EEA38071270A200F0C7FC5AA4EB3F80EB7FC0EB3F8038
F007001270A26C5A123C6C5A6CB4FCEA07F7EA03E712197E9816>I<387E1FC038FF3FE0
387F1FC0381D07001387A313C7A2121CA213E7A31367A21377A21337A31317EA7F1FEAFF
9FEA7F0F13197F9816>78 D<EA1FFC487E487EEA780F38F00780EAE003AEEAF007A23878
0F00EA7FFF6C5A6C5A11197E9816>I<EA07E3EA1FFF5AEA781FEAF00712E0A290C7FC7E
1278EA3F80EA1FF0EA07FCC67E130F7FEB0380A2126012E0EB0700EAF80FEAFFFE5BEAC7
F011197E9816>83 D<387FFFE0B5FCA2EAE0E0A400001300AFEA07FC487E6C5A13197F98
16>I<38FC07E0EAFE0FEAFC07387001C0A300301380EA3803A313E3EA39F3A213B30019
1300A61313EA1B1BEA0F1EA2EA0E0E13197F9816>87 D<12C07EA21270A27EA27EA27EA2
7EA26C7EA26C7EA26C7EA21370A27FA27FA27FA27FA2EB0380A2130111207E9C16>92
D<EA1FE0487E487EEA783CEA300E1200A2EA03FE121FEA3E0E127012E0A3EA783E387FFF
E0EA3FE7EA0F8313127E9116>97 D<127E12FE127E120EA4133E13FF000F1380EB83C0EB
00E0120E1470A614E0EA0F01EB83C0EBFF80000E1300EA063C1419809816>I<EA03F8EA
0FFCEA1FFEEA3C1EEA780CEA70005AA57EEA70071278EA3E0EEA1FFCEA0FF8EA03F01012
7D9116>I<133F5B7F1307A4EA03C7EA0FF748B4FCEA3C1F487EEA700712E0A6EA700FA2
EA3C1F381FFFE0380FE7F03807C7E014197F9816>I<EA03E0EA0FF8EA1FFCEA3C1EEA78
0EEA700712E0B5FCA3EAE000A2EA70071278EA3C0FEA1FFEEA0FFCEA03F010127D9116>
I<131FEB7F8013FFEA01E7EBC30013C0A2EA7FFFB5FCA2EA01C0ACEA3FFE487E6C5A1119
7F9816>I<3803E3C03807F7E0EA0FFF381C1CC038380E00A56C5AEA0FF8485AEA1BE000
38C7FC1218EA1FFC13FF481380387803C038E000E0A4387001C0EA7C07383FFF80380FFE
00EA03F8131C7F9116>I<127E12FE127E120EA4133C13FEEA0FFFEB87801303120EAA38
7FC7F038FFE7F8387FC7F01519809816>I<EA0180EA03C0A2EA0180C7FCA4EA7FC0A312
01ACEA7FFFB5FC7E101A7D9916>I<EAFFC0A31201B3B51280A311197E9816>108
D<38F9C38038FFEFC0EBFFE0EA3C78A2EA3870AA38FE7CF8A2EB3C781512809116>I<EA
7E3CEAFEFEEA7FFF380F87801303120EAA387FC7F038FFE7F8387FC7F01512809116>I<
EA03E0EA0FF8487EEA3C1E487EEA700738E00380A5EAF00700701300EA780FEA3C1EEA1F
FC6C5AEA03E011127E9116>I<EA7E3EEAFEFF007F1380380F83C0EB00E0120E1470A614
E0EA0F01EB83C0EBFF80000E1300133C90C7FCA6EA7FC0487E6C5A141B809116>I<38FF
0FC0EB3FE0137F3807F040EBC0005BA290C7FCA8EAFFFCA313127F9116>114
D<EA0FECEA3FFC127FEAF03CEAE01CA2EA7000EA7F80EA1FF0EA07F8EA003CEA600E12E0
12F0EAF81EEAFFFC13F8EAC7E00F127D9116>I<12035AA4EA7FFFB5FCA20007C7FCA75B
EB0380A3EB8700EA03FE6C5A6C5A11177F9616>I<387E1F80EAFE3FEA7E1FEA0E03AB13
0F380FFFF03807FBF83803E3F01512809116>I<387F1FC000FF13E0007F13C0381C0700
EA1E0FEA0E0EA36C5AA4EA03B8A3EA01F0A26C5A13127F9116>I<38FF1FE013BF131F38
380380A413E33819F300A213B3EA1DB7A4EA0F1EA313127F9116>I<387F1FC0133F131F
380F1C00EA073CEA03B813F012016C5A12017FEA03B8EA073C131CEA0E0E387F1FC038FF
3FE0387F1FC013127F9116>I E /Fj 59 123 df<EB7E1F3901C1B180390303E3C00007
13C3000EEBC180903801C000A6B512FC380E01C0B0387F87FC1A1D809C18>11
D<137E3801C180EA0301380703C0120EEB018090C7FCA5B512C0EA0E01B0387F87F8151D
809C17>I<EA6060EAF0F0EAF8F8EA6868EA0808A3EA1010A2EA2020EA4040EA80800D0C
7F9C15>34 D<13E0EA0310EA0608A2120EA45BA25B6C5AEC3FE09038800F80EC06000003
130412073809C00800115BEA30E03820F020EA607038E03840EB3C80131C90380F00207F
0070EB8040383009C0391830E180390FC03F001B1F7E9D20>38 D<1380EA010012021206
5AA25AA25AA35AA412E0AC1260A47EA37EA27EA27E12027EEA0080092A7C9E10>40
D<7E12407E12307EA27EA27EA37EA41380AC1300A41206A35AA25AA25A12205A5A092A7E
9E10>I<1306ADB612E0A2D80006C7FCAD1B1C7E9720>43 D<126012F0A212701210A412
20A212401280040C7C830C>I<126012F0A2126004047C830C>46
D<EA03C0EA0C30EA1818EA300CA2EA700EEA6006A2EAE007ADEA6006A2EA700EEA300CA2
EA1818EA0C30EA07E0101D7E9B15>48 D<5A1207123F12C71207B3A5EAFFF80D1C7C9B15
>I<EA07C0EA1830EA201CEA400C130EEAF00F12F81307A21270EA000F130EA2131CA213
381370136013C0EA0180EA0300EA0601120C1218EA1002EA3FFE127F12FF101C7E9B15>
I<EA07E0EA1830EA201CA2EA781E130E131E1238EA001CA2131813301360EA07C0EA0030
131CA2130E130FA2127012F8A3EAF00EEA401C1220EA1830EA07C0101D7E9B15>I<130C
A2131C133CA2135C13DC139CEA011C120312021204120C1208121012301220124012C0B5
12C038001C00A73801FFC0121C7F9B15>I<EA300CEA3FF813F013C0EA2000A6EA23E0EA
2C30EA3018131CEA200E1200130FA3126012F0A3EA800EEA401E131CEA2038EA1870EA07
C0101D7E9B15>I<13F0EA030CEA0404EA0C0EEA181E1230130CEA7000A21260EAE3E0EA
E430EAE818EAF00C130EEAE0061307A51260A2EA7006EA300E130CEA1818EA0C30EA03E0
101D7E9B15>I<1240387FFF801400A2EA4002485AA25B485AA25B1360134013C0A21201
5BA21203A41207A66CC7FC111D7E9B15>I<EA03E0EA0C30EA1008EA200C13061260A212
70A2EA7C0CEA3E18EA3FB0EA1FE0EA07F013F8EA18FCEA307EEA601E130FEAC0071303A4
EA60021304EA300CEA1C10EA07E0101D7E9B15>I<126012F0A212601200AA126012F0A2
126004127C910C>58 D<126012F0A212601200AA126012F0A212701210A41220A2124012
80041A7C910C>I<007FB512C0B612E0C9FCA8B612E06C14C01B0C7E8F20>61
D<EA0FE0EA3038EA401CEAE00E12F0A3EA000C131C1330136013C0138012011300A6C7FC
A51203EA0780A2EA03000F1D7E9C14>63 D<B512F8380F007814181408A2140C1404A213
011400A35B13FF13037FA490C7FCA8EAFFF8161C7E9B1B>70 D<EAFFF0EA0F00B3A8EAFF
F00C1C7F9B0F>73 D<EAFFF8EA0F8090C7FCB01408A31418A2141014301470EB01F0B5FC
151C7E9B1A>76 D<EB3F80EBE0E03803803848487E000E7F487F003C1480003813030078
14C0A20070130100F014E0A8007014C000781303A200381480003C1307001C14006C130E
6C5B6C6C5A3800E0E0EB3F801B1E7E9C20>79 D<B5FC380F01E0EB007880141C141EA414
1C143C5CEB01E001FFC7FCEB01E0EB0070147880A61510A2141CA239FFF00E20C7EA03C0
1C1D7E9B1F>82 D<3807E080EA1C19EA30051303EA600112E01300A36C13007E127CEA7F
C0EA3FF8EA1FFEEA07FFC61380130FEB07C0130313011280A300C01380A238E00300EAD0
02EACC0CEA83F8121E7E9C17>I<007FB512C038700F010060130000401440A200C01420
1280A300001400B1497E3803FFFC1B1C7F9B1E>I<3AFFE1FFC0FF3A1F003E003C001E01
3C13186C6D1310A32607801F1320A33A03C0278040A33A01E043C080A33A00F081E100A3
9038F900F3017913F2A2017E137E013E137CA2013C133C011C1338A20118131801081310
281D7F9B2B>87 D<12FEA212C0B3B312FEA207297C9E0C>91 D<EA0808EA1010EA2020EA
4040A2EA8080A3EAB0B0EAF8F8EA7878EA30300D0C7A9C15>I<12FEA21206B3B312FEA2
0729809E0C>I<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E0180
381C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<EA
03F8EA0C0CEA181E1230EA700CEA600012E0A61260EA70021230EA1804EA0C18EA03E00F
127F9112>I<EB1F801303AAEA03F3EA0E0BEA1807EA30031270126012E0A61260127012
30EA1807EA0E1B3803E3F0141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA6006
12E0EAFFFEEAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>I<13F8EA01
8CEA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>I<EB03803807C4C0
EA1C783838388038301800EA701CA4EA3018EA38386C5AEA27C00020C7FCA21230EA3FF8
6CB4FC1480EA2003386001C0EAC000A33860018038300300EA1C0EEA07F8121C7F9215>
I<12FC121CAA137C1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123CA2
1218C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA00C01300A7EA07E012
00B3A21260EAF0C012F1EA6180EA3E000B25839C0D>I<12FC121CAAEB0FE0EB0780EB06
005B13105B5B13E0121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16
>I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001EEBE0
1C001C13C0AD3AFF8FF8FF8021127F9124>I<EAFC7CEA1C87EA1D03001E1380121CAD38
FF9FF014127F9117>I<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A6006013
80EA700300301300EA1806EA0E1CEA03F012127F9115>I<EAFC7CEA1D87381E0180001C
13C0EB00E0A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F91
17>I<3803E080EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1BEA03
E3EA0003A7EB1FF0141A7F9116>I<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D12
7F9110>I<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA
8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<1204A4120CA2121C123CEAFFE0
EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E
1B3803E3F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2
EA0388A213C8EA01D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB
01801500130B000E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB8030
000013201B127F911E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012
007F12011338EA021C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E038
3C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A2
5BA212F000F1C7FC12F312661238131A7F9116>I<EA7FFCEA70381260EA407013F013E0
EA41C012031380EA0700EA0F04120E121CEA3C0CEA380812701338EAFFF80E127F9112>
I E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%PaperSize: a4
%%BeginPaperSize: a4
a4
%%EndPaperSize

%%EndSetup
%%Page: 6 1
6 0 bop 0 42 a Fj(6)70 b Fg(WHA)m(T)14 b(A)e Ff(CWEB)f
Fg(PR)o(OGRAM)h(LOOKS)h(LIKE)893 b Fi(CWEBx)13 b Fg(MANUAL)0
132 y Fh(1.)48 b(Compar)q(in)o(g)12 b(t)o(ext)g(\014le)q(s.)47
b Fj(Thi)q(s)11 b(i)q(s)g(an)h(en)o(t)o(irely)f(tr)q(ivial)f(program,)g
(t)n(h)o(a)o(t)i(t)o(e)q(st)o(s)i(wh)o(et)n(h)o(er)f(t)o(w)o(o)e(t)o
(ext)h(\014le)q(s)h(are)f(equal,)0 181 y(an)o(d)i(if)f(not)g(so,)h(p)q
(oin)o(t)o(s)g(ou)o(t)g(t)n(h)o(e)h(\014rst)g(p)q(oin)o(t)e(of)g
(di\013erence.)0 244 y Fh(#includ)o(e)41 b Fi(<stdio.h>)0
294 y Fh(#includ)o(e)g Fi(<stdlib.h>)42 357 y Fh(t)o(yp)q(e)q(d)o(ef)18
b(c)o(h)o(ar)d(b)q(o)q(o)o(l)r Fj(;)0 457 y Fh(2.)48
b Fj(Th)o(e)15 b(ou)o(t)n(lin)o(e)f(of)g(t)n(h)o(e)h(program)e(i)q(s)h
(s)q(imple.)j(W)m(e)d(read)h(c)o(h)o(aract)o(ers)i(f)q(rom)12
b(b)q(ot)n(h)j(inpu)o(t)f(\014le)q(s)h(in)o(t)o(o)f Fd(c)1634
463 y Fc(1)1667 457 y Fj(an)o(d)h Fd(c)1766 463 y Fc(2)1799
457 y Fj(u)o(n)o(t)o(il)e(t)n(h)o(e)0 506 y(compar)q(i)q(son)f(i)q(s)h
(complet)o(e.)k(Lin)o(e)c(an)o(d)h(colu)o(mn)e(cou)o(n)o(t)o(s)k(are)e
(m)o(ain)o(t)o(ain)o(e)q(d)d(in)j Fb(line)19 b Fj(an)o(d)13
b Fb(c)n(ol)6 b Fj(.)0 569 y Fh(#d)o(e\014n)o(e)42 b
Fb(left)p 268 569 13 2 v 18 w(mar)n(gin)26 b Fj(1)83
b Fd(=)p Fe(\003)20 b Fj(left)o(most)13 b(colu)o(mn)f(n)n(u)o(m)n(b)q
(er;)h(c)o(h)o(an)o(ge)i(t)o(o)f(0)g(if)f(y)o(ou)g(prefer)22
b Fe(\003)p Fd(=)42 632 y Fe(h)7 b Fj(F)m(u)o(nct)o(ions)18
b Fg(5)6 b Fe(i)42 694 y Fh(in)o(t)14 b Fb(main)26 b
Fj(\()p Fh(in)o(t)14 b Fd(n;)20 b Fh(c)o(h)o(ar)c Fe(\003)o(\003)p
Fb(ar)n(g)6 b Fj(\))42 744 y Fe(f)20 b Fh(FILE)c Fe(\003)p
Fd(f)248 750 y Fc(1)267 744 y Fd(;)k Fe(\003)p Fd(f)340
750 y Fc(2)359 744 y Fj(;)83 b Fd(=)p Fe(\003)20 b Fj(t)n(h)o(e)15
b(t)o(w)o(o)e(inpu)o(t)h(\014le)q(s)21 b Fe(\003)p Fd(=)83
794 y Fh(in)o(t)14 b Fd(c)174 800 y Fc(1)193 794 y Fd(;)20
b(c)243 800 y Fc(2)262 794 y Fd(;)g Fb(c)n(ol)e Fe(\()11
b Fb(left)p 477 794 V 18 w(mar)n(gin)5 b Fj(;)83 844
y Fh(lon)o(g)16 b Fb(line)g Fe(\()11 b Fj(1;)83 907 y
Fe(h)c Fj(Op)q(en)15 b(t)n(h)o(e)f(\014le)q(s)h Fd(f)391
913 y Fc(1)424 907 y Fj(an)o(d)f Fd(f)524 913 y Fc(2)543
907 y Fj(,)f(t)o(akin)o(g)h(t)n(h)o(e)q(ir)g(n)o(am)o(e)q(s)g(f)q(rom)e
(t)n(h)o(e)i(comm)o(an)o(d)e(lin)o(e)h(or)h(f)q(rom)e(t)n(h)o(e)j(t)o
(ermin)o(al;)d(in)h(cas)q(e)i(of)166 957 y(an)f(error)h(for)e(whic)o(h)
h(no)f(reco)o(v)o(ery)j(i)q(s)d(p)q(oss)q(ible,)h(call)f
Fb(exit)6 b Fj(\(1\))17 b Fg(6)7 b Fe(i)83 1007 y(h)g
Fj(Searc)o(h)15 b(for)f(\014rst)h(di\013erence,)g(lea)o(vin)o(g)f
Fd(c)745 1013 y Fc(1)775 1007 y Fe(6)p Fj(=)e Fd(c)837
1013 y Fc(2)869 1007 y Fj(if)h(an)o(d)h(only)f(if)g(a)g(di\013erence)j
(w)o(as)e(fou)o(n)o(d)k Fg(3)6 b Fe(i)83 1057 y(h)h Fj(Rep)q(ort)14
b(t)n(h)o(e)h(ou)o(t)o(com)o(e)e(of)g(t)n(h)o(e)i(compar)q(i)q(son)g
Fg(4)7 b Fe(i)83 1107 y Fh(ret)o(ur)q(n)13 b Fj(0;)83
b Fd(=)p Fe(\003)20 b Fj(su)o(cce)q(ssful)c(complet)o(ion)j
Fe(\003)p Fd(=)42 1157 y Fe(g)0 1257 y Fh(3.)48 b Fj(Th)o(e)12
b(h)o(eart)h(of)f(t)n(h)o(e)h(program)d(i)q(s)i(t)n(hi)q(s)g(s)q(imple)
d(lo)q(o)o(p.)17 b(Wh)o(en)12 b(w)o(e)g(reac)o(h)i(t)n(h)o(e)f(en)o(d)f
(of)g(on)o(e)g(of)f(t)n(h)o(e)i(\014le)q(s,)g(t)n(h)o(e)f(\014le)q(s)h
(m)o(a)o(t)o(c)o(h)e(if)0 1307 y(an)o(d)i(only)g(if)g(t)n(h)o(e)h(ot)n
(h)o(er)h(\014le)f(h)o(as)f(also)g(reac)o(h)o(e)q(d)j(it)o(s)e(en)o(d.)
k(F)m(or)c(t)n(hi)q(s)f(reason)i(t)n(h)o(e)f(t)o(e)q(st)h
Fd(c)1357 1313 y Fc(1)1387 1307 y Fj(=)d Fd(c)1449 1313
y Fc(2)1468 1307 y Fj(,)h(whic)o(h)g(require)q(s)i(c)o(h)o(aract)o(ers)
0 1357 y(t)o(o)h(b)q(e)g(read)g(f)q(rom)e(b)q(ot)n(h)i(\014le)q(s,)g(m)
n(ust)f(prece)q(d)o(e)k(t)n(h)o(e)d(t)o(e)q(st)h(for)e(\014le)h(en)o
(d;)g(wh)o(en)h(only)d(on)o(e)i(\014le)g(en)o(ds,)g(it)g(i)q(s)f(t)n(h)
o(e)h(form)o(er)f(t)o(e)q(st)0 1406 y(whic)o(h)f(breaks)h(t)n(h)o(e)f
(lo)q(o)o(p.)0 1469 y Fe(h)7 b Fj(Searc)o(h)15 b(for)f(\014rst)h
(di\013erence,)g(lea)o(vin)o(g)f Fd(c)662 1475 y Fc(1)692
1469 y Fe(6)p Fj(=)e Fd(c)754 1475 y Fc(2)786 1469 y
Fj(if)h(an)o(d)h(only)f(if)g(a)g(di\013erence)j(w)o(as)e(fou)o(n)o(d)k
Fg(3)6 b Fe(i)12 b(\021)42 1519 y Fh(while)i Fj(\(\()p
Fd(c)217 1525 y Fc(1)248 1519 y Fe(\()d Fb(getc)t Fj(\()p
Fd(f)412 1525 y Fc(1)431 1519 y Fj(\)\))h(=)g(\()p Fd(c)553
1525 y Fc(2)583 1519 y Fe(\()f Fb(getc)5 b Fj(\()p Fd(f)748
1525 y Fc(2)767 1519 y Fj(\)\))k Fe(^)g Fd(c)863 1525
y Fc(1)893 1519 y Fe(6)p Fj(=)j Fi(EOF)r Fj(\))83 1569
y Fh(if)20 b Fj(\()p Fd(c)166 1575 y Fc(1)196 1569 y
Fj(=)12 b Fi('\\n')r Fj(\))20 b Fe(f)410 1565 y Fc(+)l(+)458
1569 y Fb(line)5 b Fj(;)21 b Fb(c)n(ol)c Fe(\()12 b Fb(left)p
745 1569 V 18 w(mar)n(gin)5 b Fj(;)20 b Fe(g)h Fh(els)q(e)1064
1565 y Fc(+)l(+)1113 1569 y Fb(c)n(ol)6 b Fj(;)0 1623
y Fg(This)12 b(co)q(d)o(e)f(is)h(us)q(e)q(d)e(in)h(s)q(ect)o(ion)f(2.)0
1723 y Fh(4.)48 b Fj(Wh)o(en)14 b(t)n(h)o(e)h(\014rst)g(di\013erence)h
(o)q(ccurs)f(a)o(t)f(t)n(h)o(e)h(en)o(d)f(of)f(on)o(e)h(of)g(t)n(h)o(e)
h(\014le)q(s,)f(or)g(a)o(t)f(t)n(h)o(e)i(en)o(d)f(of)g(a)g(lin)o(e,)e
(w)o(e)j(giv)o(e)e(a)h(m)o(e)q(ssage)0 1773 y(in)o(dica)o(t)o(in)o(g)f
(t)n(hi)q(s)g(f)q(act.)0 1836 y Fe(h)7 b Fj(Rep)q(ort)14
b(t)n(h)o(e)h(ou)o(t)o(com)o(e)e(of)g(t)n(h)o(e)i(compar)q(i)q(son)g
Fg(4)7 b Fe(i)12 b(\021)42 1886 y Fh(if)19 b Fj(\()p
Fd(c)124 1892 y Fc(1)154 1886 y Fj(=)12 b Fd(c)216 1892
y Fc(2)235 1886 y Fj(\))21 b Fb(printf)10 b Fj(\()p Fi("Files)p
Ff( )p Fi(match.\\n")r Fj(\);)42 1936 y Fh(els)q(e)42
1986 y Fe(f)20 b Fb(printf)10 b Fj(\()p Fi("Files)p Ff( )p
Fi(differ.\\n")r Fj(\);)83 2036 y Fh(if)20 b Fj(\()p
Fd(c)166 2042 y Fc(1)196 2036 y Fj(=)12 b Fi(EOF)e Fe(_)f
Fd(c)371 2042 y Fc(2)401 2036 y Fj(=)j Fi(EOF)r Fj(\))125
2086 y Fe(f)20 b Fb(the)p 226 2086 V 19 w(\014le)5 b
Fj(\()p Fd(c)331 2092 y Fc(1)361 2086 y Fj(=)12 b Fi(EOF)r
Fj(\);)20 b Fb(printf)10 b Fj(\()p Fi("is)p Ff( )p Fi(contained)p
Ff( )p Fi(in)p Ff( )p Fi(th)o(e)p Ff( )p Fi(oth)o(er)p
Ff( )p Fi(a)o(s)p Ff( )p Fi(ini)o(tial)p Ff( )o Fi(segme)o(nt.\\n)o(")r
Fj(\);)18 b Fe(g)83 2136 y Fh(els)q(e)d(if)20 b Fj(\()p
Fd(c)259 2142 y Fc(1)289 2136 y Fj(=)12 b Fi('\\n')e
Fe(_)f Fd(c)486 2142 y Fc(2)516 2136 y Fj(=)j Fi('\\n')r
Fj(\))125 2186 y Fe(f)20 b Fb(the)p 226 2186 V 19 w(\014le)5
b Fj(\()p Fd(c)331 2192 y Fc(1)361 2186 y Fj(=)12 b Fi('\\n')r
Fj(\);)20 b Fb(printf)10 b Fj(\()p Fi("has)p Ff( )p Fi(a)p
Ff( )p Fi(shorter)p Ff( )p Fi(lin)o(e)p Ff( )p Fi(num)o(ber)p
Ff( )o Fi(\045ld)p Ff( )p Fi(t)o(han)p Ff( )p Fi(t)o(he)p
Ff( )p Fi(ot)o(her.\\)o(n")r Fd(;)d Fb(l)o(ine)s Fj(\);)20
b Fe(g)83 2236 y Fh(els)q(e)i Fb(printf)10 b Fj(\()p
Fi("First)p Ff( )p Fi(difference)p Ff( )p Fi(a)o(t)p
Ff( )p Fi(lin)o(e)p Ff( )p Fi(\045ld)o(,)p Ff( )p Fi(co)o(lumn)p
Ff( )o Fi(\045d.\\n)o(")r Fd(;)d Fb(l)o(ine)s Fd(;)g
Fb(c)n(ol)f Fj(\);)42 2286 y Fe(g)0 2341 y Fg(This)12
b(co)q(d)o(e)f(is)h(us)q(e)q(d)e(in)h(s)q(ect)o(ion)f(2.)0
2440 y Fh(5.)48 b Fj(Th)o(e)13 b(fu)o(nct)o(ion)g Fb(the)p
385 2440 V 15 w(\014le)18 b Fj(st)o(art)o(s)c(a)f(s)q(en)o(t)o(ence)h
(a)o(b)q(ou)o(t)f(t)n(h)o(e)h(\014rst)g(or)f(s)q(econ)o(d)g(\014le,)g
(d)o(ep)q(en)o(din)o(g)g(on)g(it)o(s)g(b)q(o)q(olean)f(argu)o(m)o(en)o
(t.)0 2503 y Fe(h)7 b Fj(F)m(u)o(nct)o(ions)18 b Fg(5)7
b Fe(i)k(\021)42 2553 y Fh(v)o(oid)j Fb(the)p 205 2553
V 19 w(\014le)26 b Fj(\()p Fh(b)q(o)q(o)o(l)16 b Fb(is)p
455 2553 V 18 w(\014rst)6 b Fj(\))21 b Fe(f)f Fb(printf)10
b Fj(\()p Fi("The)p Ff( )p Fi(\045s)p Ff( )p Fi(file)p
Ff( )p Fi(")r Fd(;)d Fb(is)p 1116 2553 V 16 w(\014rst)17
b Fj(?)11 b Fi("first")h Fj(:)f Fi("second")r Fj(\);)19
b Fe(g)0 2607 y Fg(See)11 b(also)f(s)q(ect)o(ion)g(7.)0
2662 y(This)i(co)q(d)o(e)f(is)h(us)q(e)q(d)e(in)h(s)q(ect)o(ion)f(2.)p
eop
%%Page: 7 2
7 1 bop 0 42 a Fi(CWEBx)13 b Fg(MANUAL)895 b(WHA)m(T)13
b(A)f Ff(CWEB)f Fg(PR)o(OGRAM)i(LOOKS)g(LIKE)70 b Fj(7)0
132 y Fh(6.)48 b Fj(Th)o(ere)16 b(can)f(b)q(e)g(b)q(e)h(zero,)f(on)o(e)
h(or)f(t)o(w)o(o)f(comm)o(an)o(d)e(lin)o(e)j(argu)o(m)o(en)o(t)o(s.)21
b(If)15 b(t)n(h)o(ere)h(are)g(non)o(e,)f(t)n(h)o(e)h(us)q(er)g(i)q(s)e
(prompt)o(e)q(d)h(t)o(o)0 181 y(sup)o(ply)h(t)n(h)o(em,)f(an)o(d)h(if)f
(t)n(h)o(ere)j(are)f(t)o(w)o(o)f(t)n(h)o(e)q(s)q(e)h(are)g(t)o(ak)o(en)
f(as)g(t)n(h)o(e)h(\014le)g(n)o(am)o(e)q(s,)e(prompt)o(in)o(g)g(t)n(h)o
(e)i(us)q(er)g(only)e(in)h(cas)q(e)h(a)f(\014le)0 231
y(could)d(not)g(b)q(e)h(o)o(p)q(en)o(e)q(d.)k(In)13 b(cas)q(e)h(just)g
(on)o(e)f(argu)o(m)o(en)o(t)f(i)q(s)h(pre)q(s)q(en)o(t,)h(t)n(h)o(e)g
(\014rst)h(\014le)e(i)q(s)g(assu)o(m)o(e)q(d)g(t)o(o)h(b)q(e)f(t)n(h)o
(e)h(st)o(an)o(d)o(ard)g(inpu)o(t,)0 281 y(whic)o(h)h(do)q(e)q(s)h(not)
f(h)o(a)o(v)o(e)g(t)o(o)h(b)q(e)g(o)o(p)q(en)o(e)q(d;)f(in)g(t)n(hi)q
(s)h(cas)q(e)g(h)o(o)o(w)o(ev)o(er)g(w)o(e)g(will)e(not)h(read)h(a)g
(\014le)f(n)o(am)o(e)f(f)q(rom)f(t)o(ermin)o(al)h(in)h(cas)q(e)0
331 y(t)n(h)o(e)g(s)q(econ)o(d)f(\014le)g(cannot)g(b)q(e)g(o)o(p)q(en)o
(e)q(d.)0 393 y Fh(#d)o(e\014n)o(e)42 b Fb(r)n(e)n(ad)p
287 393 13 2 v 19 w(mo)n(de)27 b Fi("r")0 455 y Fe(h)7
b Fj(Op)q(en)15 b(t)n(h)o(e)g(\014le)q(s)f Fd(f)308 461
y Fc(1)341 455 y Fj(an)o(d)g Fd(f)441 461 y Fc(2)460
455 y Fj(,)g(t)o(akin)o(g)g(t)n(h)o(e)q(ir)g(n)o(am)o(e)q(s)g(f)q(rom)e
(t)n(h)o(e)j(comm)o(an)o(d)c(lin)o(e)j(or)g(f)q(rom)e(t)n(h)o(e)j(t)o
(ermin)o(al;)d(in)i(cas)q(e)h(of)e(an)125 505 y(error)i(for)e(whic)o(h)
h(no)f(reco)o(v)o(ery)i(i)q(s)f(p)q(oss)q(ible,)f(call)h
Fb(exit)5 b Fj(\(1\))18 b Fg(6)7 b Fe(i)k(\021)44 551
y Fa(\000)l(\000)93 555 y Fd(n)p Fj(;)153 551 y Fc(+)l(+)202
555 y Fb(ar)n(g)5 b Fj(;)83 b Fd(=)p Fe(\003)20 b Fj(ignore)14
b(\\argu)o(m)o(en)o(t")e(0,)h(whic)o(h)h(i)q(s)f(t)n(h)o(e)i(program)d
(n)o(am)o(e)19 b Fe(\003)p Fd(=)42 605 y Fh(if)g Fj(\()p
Fd(n)12 b Fj(=)g(0\))83 655 y Fe(f)21 b Fb(op)n(en)p
213 655 V 19 w(\014le)5 b Fj(\(&)p Fd(f)352 661 y Fc(1)371
655 y Fd(;)i Fi("First)p Ff( )p Fi(file)p Ff( )p Fi(to)p
Ff( )p Fi(co)o(mpar)o(e")r Fd(;)g Fe(\014)p Fj(\);)17
b Fb(op)n(en)p 1080 655 V 20 w(\014le)5 b Fj(\(&)p Fd(f)1220
661 y Fc(2)1239 655 y Fd(;)i Fi("Second)p Ff( )p Fi(file)p
Ff( )p Fi(to)p Ff( )o Fi(compa)o(re")r Fd(;)f Fe(\014)p
Fj(\);)18 b Fe(g)42 704 y Fh(els)q(e)d(if)k Fj(\()p Fd(n)12
b Fj(=)g(1\))42 754 y Fe(f)20 b Fd(f)103 760 y Fc(1)133
754 y Fe(\()12 b Fb(stdin)5 b Fj(;)83 804 y Fh(if)20
b Fj(\(\()p Fd(f)184 810 y Fc(2)214 804 y Fe(\()11 b
Fb(fop)n(en)6 b Fj(\()p Fe(\003)p Fb(ar)n(g)g Fd(;)h
Fb(r)n(e)n(ad)p 568 804 V 18 w(mo)n(de)f Fj(\)\))12 b(=)g
Fe(\014)p Fj(\))21 b Fe(f)f Fb(printf)11 b Fj(\()p Fi("Could)p
Ff( )p Fi(not)p Ff( )p Fi(open)p Ff( )o Fi(file)p Ff( )o
Fi(\045s.\\n)o(")r Fd(;)c Fe(\003)l Fb(ar)n(g)f Fj(\);)20
b Fb(exit)6 b Fj(\(1\);)21 b Fe(g)42 854 y(g)42 904 y
Fh(els)q(e)15 b(if)k Fj(\()p Fd(n)12 b Fj(=)g(2\))42
953 y Fe(f)20 b Fb(op)n(en)p 171 953 V 19 w(\014le)6
b Fj(\(&)p Fd(f)311 959 y Fc(1)330 953 y Fd(;)h Fi("Give)p
Ff( )p Fi(another)p Ff( )o Fi(first)o Ff( )p Fi(file)o(")r
Fd(;)g Fe(\003)m Fb(ar)n(g)998 949 y Fc(+)l(+)1047 953
y Fj(\);)83 1003 y Fb(op)n(en)p 171 1003 V 19 w(\014le)f
Fj(\(&)p Fd(f)311 1009 y Fc(2)330 1003 y Fd(;)h Fi("Give)p
Ff( )p Fi(another)p Ff( )o Fi(secon)o(d)p Ff( )p Fi(fil)o(e")r
Fd(;)g Fe(\003)l Fb(ar)n(g)f Fj(\);)42 1053 y Fe(g)42
1103 y Fh(els)q(e)21 b Fe(f)g Fb(printf)10 b Fj(\()p
Fi("No)p Ff( )p Fi(more)p Ff( )p Fi(than)p Ff( )p Fi(two)p
Ff( )p Fi(c)o(omman)o(d)p Ff( )p Fi(lin)o(e)p Ff( )p
Fi(ar)o(gumen)o(ts)p Ff( )p Fi(ar)o(e)p Ff( )p Fi(all)o(owed.)o(\\n")r
Fj(\);)17 b Fb(exit)6 b Fj(\(1\);)21 b Fe(g)0 1157 y
Fg(This)12 b(co)q(d)o(e)f(is)h(us)q(e)q(d)e(in)h(s)q(ect)o(ion)f(2.)0
1256 y Fh(7.)48 b Fj(Th)o(e)18 b(fu)o(nct)o(ion)g Fb(op)n(en)p
423 1256 V 16 w(\014le)23 b Fj(will)17 b(try)h(t)o(o)g(o)o(p)q(en)g(t)n
(h)o(e)g(\014le)g Fb(name)24 b Fj(for)18 b(readin)o(g,)h(an)o(d)e(if)g
(t)n(hi)q(s)h(f)q(ails)f(it)g(will)g(prompt)f(for)0 1306
y(anot)n(h)o(er)h(\014le)g(n)o(am)o(e)f(u)o(n)o(t)o(il)g(it)g(h)o(as)h
(su)o(cce)q(ss.)30 b(If)16 b(calle)q(d)h(wit)n(h)f Fb(name)22
b Fj(=)17 b Fe(\014)p Fj(,)g(t)n(h)o(e)h(fu)o(nct)o(ion)f(st)o(art)o(s)
h(wit)n(h)e(prompt)o(in)o(g)g(r)q(igh)o(t)0 1356 y(aw)o(ay)m(.)0
1418 y Fe(h)7 b Fj(F)m(u)o(nct)o(ions)18 b Fg(5)7 b Fe(i)k
Fj(+)p Fe(\021)42 1468 y Fh(v)o(oid)j Fb(op)n(en)p 233
1468 V 19 w(\014le)26 b Fj(\()p Fh(FILE)17 b Fe(\003\003)p
Fd(f)r(;)j Fh(c)o(h)o(ar)c Fe(\003)o Fb(pr)n(ompt)6 b
Fd(;)20 b Fh(c)o(h)o(ar)c Fe(\003)o Fb(name)6 b Fj(\))42
1518 y Fe(f)20 b Fh(c)o(h)o(ar)15 b Fb(buf)c Fj([80)o(];)83
1580 y Fh(if)20 b Fj(\()p Fb(name)d Fj(=)12 b Fe(\014)d(_)g
Fj(\()p Fe(\003)p Fd(f)17 b Fe(\()11 b Fb(fop)n(en)5
b Fj(\()p Fb(name)h Fd(;)h Fb(r)n(e)n(ad)p 831 1580 V
19 w(mo)n(de)f Fj(\)\))12 b(=)f Fe(\014)p Fj(\))125 1630
y Fh(do)22 b Fe(f)f Fb(printf)10 b Fj(\()p Fi("\045s:)p
Ff( )p Fi(")r Fd(;)d Fb(pr)n(ompt)t Fj(\);)21 b Fb(\017ush)5
b Fj(\()p Fb(stdout)i Fj(\);)20 b Fb(sc)n(anf)12 b Fj(\()p
Fi("\04579s")r Fd(;)7 b Fb(buf)i Fj(\);)21 b Fe(g)125
1680 y Fh(while)14 b Fj(\(\()p Fe(\003)p Fd(f)j Fe(\()11
b Fb(fop)n(en)5 b Fj(\()p Fb(buf)12 b Fd(;)7 b Fb(r)n(e)n(ad)p
676 1680 V 18 w(mo)n(de)f Fj(\)\))12 b(=)g Fe(\014)p
Fj(\);)42 1730 y Fe(g)0 1829 y Fh(8.)48 b(In)o(d)o(ex.)0
1896 y Fb(ar)n(g)5 b Fj(:)42 b(2)p 115 1903 21 2 v -1
w(,)23 b(6.)0 1946 y Fh(b)q(o)q(o)o(l)r Fj(:)41 b(1)p
145 1953 V(,)22 b(5.)0 1996 y Fb(buf)11 b Fj(:)41 b(7)p
118 2003 V(.)0 2047 y Fb(c)n(ol)6 b Fj(:)41 b(2)p 108
2054 V(,)22 b(3,)g(4.)0 2097 y Fd(c)18 2103 y Fc(1)37
2097 y Fj(:)41 b(2)p 90 2104 V -1 w(,)23 b(3,)f(4.)0
2147 y Fd(c)18 2153 y Fc(2)37 2147 y Fj(:)41 b(2)p 90
2154 V -1 w(,)23 b(3,)f(4.)0 2197 y Fi(EOF)r Fj(:)41
b(3,)22 b(4.)0 2248 y Fb(exit)6 b Fj(:)41 b(6.)0 2298
y Fd(f)t Fj(:)h(7)p 78 2305 V(.)0 2348 y Fb(\017ush)6
b Fj(:)41 b(7.)0 2398 y Fb(fop)n(en)6 b Fj(:)41 b(6,)22
b(7.)0 2449 y Fd(f)20 2455 y Fc(1)39 2449 y Fj(:)41 b(2)p
92 2456 V(,)22 b(3,)g(6.)0 2499 y Fd(f)20 2505 y Fc(2)39
2499 y Fj(:)41 b(2)p 92 2506 V(,)22 b(3,)g(6.)0 2549
y Fb(getc)5 b Fj(:)41 b(3.)0 2599 y Fb(is)p 33 2599 13
2 v 15 w(\014rst)6 b Fj(:)41 b(5)p 176 2606 21 2 v -1
w(.)0 2650 y Fb(left)p 60 2650 13 2 v 14 w(mar)n(gin)6
b Fj(:)41 b(2)p 256 2657 21 2 v -1 w(,)21 b(3.)0 2700
y Fb(line)5 b Fj(:)41 b(2)p 124 2707 V(,)22 b(3,)g(4.)1017
1896 y Fb(main)5 b Fj(:)41 b(2)p 1166 1903 V(.)1017 1946
y Fd(n)p Fj(:)f(2)p 1094 1953 V(.)1017 1995 y Fb(name)5
b Fj(:)41 b(7)p 1172 2002 V(.)1017 2045 y Fb(op)n(en)p
1102 2045 13 2 v 16 w(\014le)5 b Fj(:)41 b(6,)21 b(7)p
1280 2052 21 2 v(.)1017 2095 y Fb(printf)10 b Fj(:)41
b(4,)20 b(5,)h(6,)g(7.)1017 2145 y Fb(pr)n(ompt)5 b Fj(:)41
b(7)p 1202 2152 V(.)1017 2195 y Fb(r)n(e)n(ad)p 1095
2195 13 2 v 15 w(mo)n(de)5 b Fj(:)41 b(6)p 1258 2202
21 2 v(,)21 b(7.)1017 2244 y Fb(sc)n(anf)11 b Fj(:)41
b(7.)1017 2294 y Fb(stdin)5 b Fj(:)41 b(6.)1017 2344
y Fb(stdout)6 b Fj(:)41 b(7.)1017 2394 y Fb(the)p 1074
2394 13 2 v 15 w(\014le)5 b Fj(:)41 b(4,)22 b(5)p 1252
2401 21 2 v(.)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF