1
%!PS-Adobe-3.0 EPSF-3.0
2
%%Title: api-figure1.fig
3
%%Creator: fig2dev Version 3.2 Patchlevel 5d
4
%%CreationDate: Wed Oct 31 20:16:08 2012
5
%%BoundingBox: 0 0 399 227
9
/MyAppDict 100 dict dup begin def
10
/$F2psDict 200 dict def
12
$F2psDict /mtrx matrix put
13
/col-1 {0 setgray} bind def
14
/col0 {0.000 0.000 0.000 srgb} bind def
15
/col1 {0.000 0.000 1.000 srgb} bind def
16
/col2 {0.000 1.000 0.000 srgb} bind def
17
/col3 {0.000 1.000 1.000 srgb} bind def
18
/col4 {1.000 0.000 0.000 srgb} bind def
19
/col5 {1.000 0.000 1.000 srgb} bind def
20
/col6 {1.000 1.000 0.000 srgb} bind def
21
/col7 {1.000 1.000 1.000 srgb} bind def
22
/col8 {0.000 0.000 0.560 srgb} bind def
23
/col9 {0.000 0.000 0.690 srgb} bind def
24
/col10 {0.000 0.000 0.820 srgb} bind def
25
/col11 {0.530 0.810 1.000 srgb} bind def
26
/col12 {0.000 0.560 0.000 srgb} bind def
27
/col13 {0.000 0.690 0.000 srgb} bind def
28
/col14 {0.000 0.820 0.000 srgb} bind def
29
/col15 {0.000 0.560 0.560 srgb} bind def
30
/col16 {0.000 0.690 0.690 srgb} bind def
31
/col17 {0.000 0.820 0.820 srgb} bind def
32
/col18 {0.560 0.000 0.000 srgb} bind def
33
/col19 {0.690 0.000 0.000 srgb} bind def
34
/col20 {0.820 0.000 0.000 srgb} bind def
35
/col21 {0.560 0.000 0.560 srgb} bind def
36
/col22 {0.690 0.000 0.690 srgb} bind def
37
/col23 {0.820 0.000 0.820 srgb} bind def
38
/col24 {0.500 0.190 0.000 srgb} bind def
39
/col25 {0.630 0.250 0.000 srgb} bind def
40
/col26 {0.750 0.380 0.000 srgb} bind def
41
/col27 {1.000 0.500 0.500 srgb} bind def
42
/col28 {1.000 0.630 0.630 srgb} bind def
43
/col29 {1.000 0.750 0.750 srgb} bind def
44
/col30 {1.000 0.880 0.880 srgb} bind def
45
/col31 {1.000 0.840 0.000 srgb} bind def
49
% This junk string is used by the show operators
51
/PATawidthshow { % cx cy cchar rx ry string
52
% Loop over each character in the string
53
{ % cx cy cchar rx ry char
55
dup % cx cy cchar rx ry char char
56
PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
57
false charpath % cx cy cchar rx ry char
59
% Move past the character (charpath modified the
61
currentpoint % cx cy cchar rx ry char x y
63
moveto % cx cy cchar rx ry char
64
% Reposition by cx,cy if the character in the string is cchar
65
3 index eq { % cx cy cchar rx ry
66
4 index 4 index rmoveto
68
% Reposition all characters by rx ry
69
2 copy rmoveto % cx cy cchar rx ry
71
pop pop pop pop pop % -
78
/lw currentlinewidth def
79
/lc currentlinecap def
80
/lj currentlinejoin def
81
/ml currentmiterlimit def
82
/ds [ currentdash ] def
83
/cc [ currentrgbcolor ] def
84
/cm matrix currentmatrix def
87
% PATdraw - calculates the boundaries of the object and
88
% fills it with the current pattern
91
PATpcalc % proc nw nh px py
92
5 -1 roll exec % nw nh px py
97
% PATfill - performs the tiling for the shape
98
/PATfill { % nw nh px py PATfill -
99
PATDict /CurrentPattern get dup begin
101
% Set the coordinate system to Pattern Space
103
% Set the color for uncolored pattezns
104
PaintType 2 eq { PATDict /PColor get PATsc } if
105
% Create the string for showing
106
3 index string % nw nh px py str
107
% Loop for each of the pattern sources
108
0 1 Multi 1 sub { % nw nh px py str source
109
% Move to the starting location
110
3 index 3 index % nw nh px py str source px py
111
moveto % nw nh px py str source
112
% For multiple sources, set the appropriate color
113
Multi 1 ne { dup PC exch get PATsc } if
114
% Set the appropriate string for the source
115
0 1 7 index 1 sub { 2 index exch 2 index put } for pop
116
% Loop over the number of vertical cells
117
3 index % nw nh px py str nh
119
currentpoint % nw nh px py str cx cy
120
2 index oldshow % nw nh px py str cx cy
121
YStep add moveto % nw nh px py str
122
} repeat % nw nh px py str
128
% PATkshow - kshow with the current pattezn
129
/PATkshow { % proc string
130
exch bind % string proc
131
1 index 0 get % string proc char
132
% Loop over all but the last character in the string
133
0 1 4 index length 2 sub {
134
% string proc char idx
135
% Find the n+1th character in the string
136
3 index exch 1 add get % string proc char char+1
137
exch 2 copy % strinq proc char+1 char char+1 char
138
% Now show the nth character
139
PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
140
false charpath % string proc char+1 char char+1
142
% Move past the character (charpath modified the current point)
143
currentpoint newpath moveto
144
% Execute the user proc (should consume char and char+1)
145
mark 3 1 roll % string proc char+1 mark char char+1
146
4 index exec % string proc char+1 mark...
147
cleartomark % string proc char+1
149
% Now display the last character
150
PATsstr dup 0 4 -1 roll put % string proc (char+1)
151
false charpath % string proc
156
% PATmp - the makepattern equivalent
157
/PATmp { % patdict patmtx PATmp patinstance
158
exch dup length 7 add % We will add 6 new entries plus 1 FID
159
dict copy % Create a new dictionary
161
% Matrix to install when painting the pattern
163
/PatternGState PATcg def
164
PatternGState /cm 3 -1 roll put
165
% Check for multi pattern sources (Level 1 fast color patterns)
166
currentdict /Multi known not { /Multi 1 def } if
167
% Font dictionary definitions
169
% Create a dummy encoding vector
170
/Encoding 256 array def
172
Encoding exch dup 3 index cvs cvn put } for pop
173
/FontMatrix matrix def
176
mark 3 1 roll % mark dict char
178
Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
179
PaintType 2 eq Multi 1 ne or
180
{ XStep 0 FontBBox aload pop setcachedevice }
181
{ XStep 0 setcharwidth } ifelse
182
currentdict % mark [paintdata] dict
183
/PaintProc load % mark [paintdata] dict paintproc
186
false PATredef exec true PATredef
192
/foo exch % /foo newlict
195
% PATpcalc - calculates the starting point and width/height
196
% of the tile fill for the shape
197
/PATpcalc { % - PATpcalc nw nh px py
198
PATDict /CurrentPattern get begin
200
% Set up the coordinate system to Pattern Space
201
% and lock down pattern
202
PatternGState /cm get setmatrix
203
BBox aload pop pop pop translate
204
% Determine the bounding box of the shape
205
pathbbox % llx lly urx ury
207
% Determine (nw, nh) the # of cells to paint width and height
208
PatHeight div ceiling % llx lly urx qh
209
4 1 roll % qh llx lly urx
210
PatWidth div ceiling % qh llx lly qw
211
4 1 roll % qw qh llx lly
212
PatHeight div floor % qw qh llx ph
213
4 1 roll % ph qw qh llx
214
PatWidth div floor % ph qw qh pw
215
4 1 roll % pw ph qw qh
216
2 index sub cvi abs % pw ph qs qh-ph
217
exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
218
% Determine the starting point of the pattern fill
220
4 2 roll % nw nh pw ph
221
PatHeight mul % nw nh pw py
223
PatWidth mul exch % nw nh px py
227
% Save the original routines so that we can use them later on
228
/oldfill /fill load def
229
/oldeofill /eofill load def
230
/oldstroke /stroke load def
231
/oldshow /show load def
232
/oldashow /ashow load def
233
/oldwidthshow /widthshow load def
234
/oldawidthshow /awidthshow load def
235
/oldkshow /kshow load def
237
% These defs are necessary so that subsequent procs don't bind in
239
/fill { oldfill } bind def
240
/eofill { oldeofill } bind def
241
/stroke { oldstroke } bind def
242
/show { oldshow } bind def
243
/ashow { oldashow } bind def
244
/widthshow { oldwidthshow } bind def
245
/awidthshow { oldawidthshow } bind def
246
/kshow { oldkshow } bind def
250
/fill { /clip load PATdraw newpath } bind def
251
/eofill { /eoclip load PATdraw newpath } bind def
252
/stroke { PATstroke } bind def
253
/show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
254
/ashow { 0 0 null 6 3 roll PATawidthshow }
256
/widthshow { 0 0 3 -1 roll PATawidthshow }
258
/awidthshow { PATawidthshow } bind def
259
/kshow { PATkshow } bind def
261
/fill { oldfill } bind def
262
/eofill { oldeofill } bind def
263
/stroke { oldstroke } bind def
264
/show { oldshow } bind def
265
/ashow { oldashow } bind def
266
/widthshow { oldwidthshow } bind def
267
/awidthshow { oldawidthshow } bind def
268
/kshow { oldkshow } bind def
273
% Conditionally define setcmykcolor if not available
274
/setcmykcolor where { pop } {
278
3 index add neg dup 0 lt { pop 0 } if 3 1 roll
283
/PATsc { % colorarray
284
aload length % c1 ... cn length
285
dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
295
cc aload pop setrgbcolor
304
/CurrentPattern exch def
305
% If it's an uncolored pattern, save the color
306
CurrentPattern /PaintType get 2 eq {
309
/CColor [ currentrgbcolor ] def
312
% PATstroke - stroke with the current pattern
318
currentpoint strokepath moveto
319
PATpcalc % proc nw nh px py
322
(*** PATstroke Warning: Path is too complex, stroking
326
countdictstack exch sub dup 0 gt
327
{ { end } repeat } { pop } ifelse
328
gsave 0.5 setgray oldstroke grestore
329
} { pop restore pop } ifelse
332
/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
333
% Note: tiling types 2 and 3 are not supported
335
exch concat % tilingtype
336
matrix currentmatrix exch % cmtx tilingtype
337
% Tiling type 1 and 3: constant spacing
339
% Distort the pattern so that it occupies
340
% an integral number of device pixels
341
dup 4 get exch dup 5 get exch % tx ty cmtx
343
round exch round exch % tx ty cmtx dx.x dx.y
344
XStep div exch XStep div exch % tx ty cmtx a b
346
round exch round exch % tx ty cmtx a b dy.x dy.y
347
YStep div exch YStep div exch % tx ty cmtx a b c d
348
7 -3 roll astore % { a b c d tx ty }
372
{ 32 16 true [ 32 0 0 -16 0 16 ]
373
{<00030003000c000c0030003000c000c0030003000c000c00
374
30003000c000c00000030003000c000c0030003000c000c0
375
030003000c000c0030003000c000c000>}
386
/cp {closepath} bind def
387
/ef {eofill} bind def
388
/gr {grestore} bind def
391
/rs {restore} bind def
394
/rm {rmoveto} bind def
395
/n {newpath} bind def
398
/slc {setlinecap} bind def
399
/slj {setlinejoin} bind def
400
/slw {setlinewidth} bind def
401
/srgb {setrgbcolor} bind def
402
/rot {rotate} bind def
404
/sd {setdash} bind def
405
/ff {findfont} bind def
406
/sf {setfont} bind def
407
/scf {scalefont} bind def
408
/sw {stringwidth} bind def
409
/tr {translate} bind def
410
/tnt {dup dup currentrgbcolor
411
4 -2 roll dup 1 exch sub 3 -1 roll mul add
412
4 -2 roll dup 1 exch sub 3 -1 roll mul add
413
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
415
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
416
4 -2 roll mul srgb} bind def
417
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
418
/$F2psEnd {$F2psEnteredState restore end} def
422
newpath 0 227 moveto 0 0 lineto 399 0 lineto 399 227 lineto closepath clip newpath
423
-194.8 350.2 translate
440
% here starts figure with depth 50
445
3599 4000 m 3567 4148 l 3626 4161 l 3658 4013 l 3658 4013 l 3603 4124 l 3599 4000 l cp
447
n 5449.3 4471.5 1878.7 -70.5453 -169.8379 arcn
453
n 3599 4000 m 3603 4124 l 3658 4013 l 3599 4000 l cp gs 0.00 setgray ef gr col0 s
456
4422 4004 m 4425 4155 l 4485 4154 l 4482 4003 l 4482 4003 l 4455 4124 l 4422 4004 l cp
458
n 5539.0 4051.3 1087.6 -60.4713 175.3232 arcn
463
n 4422 4004 m 4455 4124 l 4482 4003 l 4422 4004 l cp gs 0.00 setgray ef gr col0 s
466
4986 4010 m 5012 4159 l 5072 4149 l 5046 4000 l 5046 4000 l 5037 4124 l 4986 4010 l cp
468
n 5628.8 3967.5 613.5 -36.7999 163.6698 arcn
473
n 4986 4010 m 5037 4124 l 5046 4000 l 4986 4010 l cp gs 0.00 setgray ef gr col0 s
477
7736 3835 m 7756 3984 l 7907 3964 l 7887 3814 l 7841 3821 l 7828 3944 l 7782 3829 l cp
479
n 6609.1 4056.9 1224.8 -93.9364 -4.5364 arc
485
n 7782 3829 m 7828 3944 l 7841 3821 l col0 s
487
n 3105 4140 m 6660 4140 l 6660 5085 l 3105 5085 l
490
n 6660 4140 m 8730 4140 l 8730 5085 l 6660 5085 l
491
cp gs col7 0.50 shd ef gr gs col0 s gr
493
n 5805 2610 m 6345 2610 l 6345 3690 l 5805 3690 l
496
n 5805 2835 m 6345 2835 l 6345 3015 l 5805 3015 l
499
n 5805 3195 m 6345 3195 l 6345 3375 l 5805 3375 l
502
n 5805 3510 m 6345 3510 l 6345 3690 l 5805 3690 l
505
n 3510 4140 m 3780 4140 l 3780 5085 l 3510 5085 l
506
cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
507
15.00 15.00 sc P2 [16 0 0 -8 234.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr
509
n 4365 4140 m 4635 4140 l 4635 5085 l 4365 5085 l
510
cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
511
15.00 15.00 sc P2 [16 0 0 -8 291.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr
513
n 4905 4140 m 5265 4140 l 5265 5085 l 4905 5085 l
514
cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
515
15.00 15.00 sc P2 [16 0 0 -8 327.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr
516
/Times-Roman ff 180.00 scf sf
518
gs 1 -1 sc (gawk Main Program Address Space) col0 sh gr
519
/Times-Roman ff 180.00 scf sf
521
gs 1 -1 sc (Extension) col0 sh gr
522
/Times-Roman ff 180.00 scf sf
524
gs 1 -1 sc (API) col0 sh gr
525
/Times-Roman ff 180.00 scf sf
527
gs 1 -1 sc (Struct) col0 sh gr
528
/Courier-Bold ff 180.00 scf sf
530
gs 1 -1 sc (dl_load\(api_p, id\);) col0 sh gr