-
Notifications
You must be signed in to change notification settings - Fork 0
/
vu-amp.ps
754 lines (717 loc) · 20.3 KB
/
vu-amp.ps
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
%!PS-Adobe-3.0
%%Creator: gEDA gschem 1.8.1-20121123-13-g875406c
%%CreationDate: Tue Jul 7 12:50:21 2015
%%Title: /home/kevin/development/analog/tsa-amp.sch
%%Author: (null)
%%BoundingBox: 0 0 612 792
%%Orientation: Landscape
%%Pages: 1
%%EndComments
%%BeginProlog
% Prolog for gEDA, define all the functions needed for rendering
% schematics on Postscript devices
% Draw a line from the second coordinate to the first
% x2 y2 x1 y1 width line -
/line {
setlinewidth
% pop off first element and moveto
moveto
% pop off remaining elements and draw a line segment
lineto
% draw it
stroke
} bind def
% Draw a dot
% x y r dot -
/dot {
0 360 arc fill
} bind def
% Draw a dot-dashed line, a bunch of lined segments,
% if the array element only has length two, draw a dot.
% [ [x2 y2 x1 y1] [x4 y4 x3 y3] [x5 y5] ... ] width dashed -
/width 0 def
/dashed {
dup 2.0 div /width exch def
setlinewidth
% pop off each line segment and draw it as a dot or as a line
{
aload length 2 gt
{ moveto lineto stroke}
{ width dot } ifelse
} forall
} bind def
% Draw an arc segment
% x y r ang1 ang2 width darc -
/darc {
setlinewidth
arc stroke
} bind def
% Draw a series of arc segment bits, if the array element only has a single
% element in it, draw a dot.
% [ [sa1 ea1] [sa2 ea2] ... ] x y r width dashedarc -
/x 0 def
/y 0 def
/dashedarc {
dup /width exch def
setlinewidth
/r exch def
/y exch def
/x exch def
{ aload length 1 gt
{
% this element had two angles in it
% extract start and stop angles
x y r % drop x y and r onto stack
% at this point we have: sa ea x y r
% we need x y r sa ea
% so..
5 -2 roll
% and add it to the current path, and draw it
arc stroke
} {
% this element only had one angle in it, place a
% filled dot at the appropriate place
% compute center point of the arc using the angle
% that is on the top of the stack
dup % angle angle
cos r mul x add % angle x
exch % x angle
sin r mul y add % x y
width % x y width/2
dot % draw the dot
} ifelse
} forall
% Now draw it
stroke
} bind def
% Draw a box
% width height x y linethickness box -
/box {
setlinewidth
moveto
exch dup 0 rlineto % w h, h w w 0 -- Draw bottom line
exch 0 exch rlineto % h w, w h 0, w 0 h -- Draw right line
neg 0 rlineto % w, -w 0 -- Draw Top line
closepath % finish and draw it
stroke
} bind def
% Draw a filled box
% width height x y fbox -
/fbox {
moveto
exch dup 0 rlineto
exch 0 exch rlineto
neg 0 rlineto
closepath
fill
} bind def
% Font reincoding utilities
% ISOLatin1Encoding, extended with remaining uncoded glyphs
/ISOLatin1Extended [
/.notdef /Lslash /lslash /OE /oe /Scaron /scaron /Zcaron /zcaron
/Ydieresis /trademark /bullet /dagger /daggerdbl /ellipsis /emdash
/endash /fi /fl /florin /fraction /guilsinglleft /guilsinglright
/perthousand /quotedblbase /quotedblleft /quotedblright
/quotesinglbase /quotesingle /.notdef /.notdef /.notdef /space
/exclam /quotedbl /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /minus
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /less /equal /greater /question /at /A /B /C
/D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z
/bracketleft /backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s
/t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla
/.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent
/sterling /currency /yen /brokenbar /section /dieresis /copyright
/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph
/periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute
/Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute
/Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth
/Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn
/germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave
/iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute
/ucircumflex /udieresis /yacute /thorn /ydieresis
] def
% `new-font-name' `encoding-vector' `old-font-name' RE -
/RE {
findfont
dup maxlength dict begin {
1 index /FID ne { def } { pop pop } ifelse
} forall
/Encoding exch def
dup /FontName exch def
currentdict end definefont pop
} bind def
% Text handling functions, select the font and scale it, then we need
% only to apply the appropriate transformations to get the text
% justified into the right spots. The bad thing here is that we don't
% do any kerning, so the output may look a bit strange.
% compute the height of one character and return lly and ury
% (char) charheight lly ury
/charheight {
gsave % push graphics state
newpath % clear current path
0 0 moveto % Set current point
false charpath % get path
flattenpath % flatten path
pathbbox % stack = llx lly urx ury
exch pop % stack = llx lly ury
3 -1 roll pop % stack = lly ury
grestore % pop graphics state
} bind def
% compute the height of a string, one character at a time
% (string) stringheight lly ury
/lly 0.0 def
/ury 0.0 def
/stringheight {
/lly 0.0 def % initial value of heightmin
/ury 0.0 def % initial value of heightmax
{ % work through string
( ) dup 0 4 -1 roll put % create one character string
charheight % measure it's height
dup ury gt { % if ury gt heightmax
/ury exch def % update with new value
} {
pop % else discard ury
} ifelse
dup lly lt { % if lly lt heightmin
/lly exch def % update with new value
} {
pop % else discard lly
} ifelse
} forall
lly ury % Return the results
} bind def
% calculate the string width taking into account the escapes.
/mystrx 0.0 def
/mystry 0.0 def
/mystresc false def
/mystringwidth {
/mystrx 0.0 def
/mystry 0.0 def
/mystresc false def
{ % work through string
% did we process the escape character last?
mystresc {
% last character was escape
% handle the escape
% is it an _ = 95?
dup 95 eq {
pop % we don't need the character anymore
% toggle drawing overbars
0.0 0.0 % make it like it never happened...
} {
% otherwise measure the character
(\\ ) dup 1 4 -1 roll put % count a \ and the character
stringwidth
} ifelse
% and reset the flag
/mystresc false def
} {
% last character was not escape
% is this escape
dup 92 eq {
% yes, escape character, set flag
/mystresc true def
pop % drop character
0.0 0.0 % make like this character has no width and height
} {
( ) dup 0 4 -1 roll put % create one character string
stringwidth % measure it's height/width
} ifelse
} ifelse
% accumulate x and y movements
mystry add /mystry exch def
mystrx add /mystrx exch def
} forall
mystrx mystry % drop results on stack
} bind def
% Render a string with overbars
%
/escaped false def
/drawoverbar false def
/fontsize 0.0 def
%string1 string2 append -
/append {
2 copy length exch length add % find new length
string dup % string1 string2 string string
4 2 roll % string string string1 string2
2 index 0 3 index
% string string string1 string2 string 0 string1
putinterval % string string string1 string2
exch length exch putinterval
} bind def
% If drawoverbar is set, draw a line of the same length as the given string
% string overbarshowline -
/overbarshowline {
% print overbar if necessary
stringwidth pop 0
drawoverbar {
rlineto
gsave stroke grestore
} {
rmoveto
} ifelse
} bind def
% Draws overbars for the given string, then shows the string itself
% string overbarshow
/overbarshow {
/overbarshowacc () def
/overbarshowtxt () def
gsave
fontsize 10.0 div setlinewidth
0 fontsize rmoveto % move to (0,overbarheight)
{ % work through string
escaped {
% the last character was the escape
% handle the escape
% is it an _ = 95?
dup 95 eq {
pop % we don't need the character anymore
overbarshowacc overbarshowline
% toggle drawing overbars
/drawoverbar drawoverbar not def
% Append the contents off the accumulator to the text
% string we're eventually going to show
/overbarshowtxt overbarshowtxt overbarshowacc append def
% clear accumulator
/overbarshowacc () def
} {
% add to accumulator
(\\ ) dup 1 4 -1 roll put
overbarshowacc exch append
/overbarshowacc exch def
} ifelse
% and reset the flag
/escaped false def
} {
% check for escape character \ = 92
dup 92 eq {
% yes, escape character, set flag
/escaped true def
pop % drop character
} {
% add to accumulator
( ) dup 0 4 -1 roll put
overbarshowacc exch append
/overbarshowacc exch def
} ifelse
} ifelse
} forall
% Catch any leftovers
overbarshowacc overbarshowline
overbarshowtxt overbarshowacc append
grestore
show
} bind def
%
% hcenter rjustify vcenter vjustify spacing [(line1) (line2) ... ] rot x y size text -
/stringw 0.0 def
/stringh 0.0 def
/spacing 0.0 def
/strings [ ] def
/stringtxt ( ) def
/stringcount 0 def
/rot 0.0 def
/text {
gsave % save state for later
/drawoverbar false def % start by not drawing overbars
dup /fontsize exch def % save font size for corrections later
% do font selection
/gEDAFont findfont
exch scalefont
setfont
% set up coordinates
translate % move origin to given point
rotate % rotate so that text is drawn
0 0 moveto
dup length /stringcount exch def % Get number of strings
/strings exch def % save strings
/spacing exch def
% do we have more than 1 string to render?
stringcount 1 eq {
/stringtxt strings aload pop def % get the string
/stringw stringtxt mystringwidth pop neg def % get the -width
/stringh stringtxt stringheight exch pop neg def% get the -height
% First do vertical calculations
% hcenter rjustify vcenter vjustify
% vertical justification
{ 0 stringh rmoveto } if
% vertical center
{ 0 stringh 0.3571425 mul rmoveto } if % not 0.5, so that
% it looks nicer
% Then do horizontal calculations
% right justify
{ stringw 0 rmoveto } if
% center
{ stringw 2.0 div 0 rmoveto } if
% Draw the text
stringtxt overbarshow
} {
% More than one line, compute bounding box for the text
% vertical height, don't use the actual hieght of the characters
% assume that the user wants to make the baselines line up with two
% text boxes placed side by side
/stringh stringcount spacing mul neg def
% Now figure out horizontal size, this amounts to keeping track
% of the longest string
/stringw 0.0 def
strings {
mystringwidth pop
dup stringw gt {
/stringw exch def
} {
pop
} ifelse
} forall
/stringw stringw neg def % get the -width
% First do vertical calculations
% hcenter rjustify vcenter vjustify
% vertical justification
{ 0 stringh fontsize add rmoveto } if
% vertical center
{ 0 stringh 0.5 mul rmoveto } if
% Then do horizontal calculations
% right justify
{ stringw 0 rmoveto } if
% center
{ stringw 2.0 div 0 rmoveto } if
% now move up to the first line and begin rendering
0 stringcount 1 sub spacing mul rmoveto
strings {
gsave % Save starting point
overbarshow % render the text
grestore
0 spacing neg rmoveto
} forall
} ifelse
grestore % Restore old state
} bind def
%%EndProlog
%%Page: 1 1
/gEDAFont ISOLatin1Extended /Helvetica RE
2 setlinecap
0.072000 0.072000 scale
7485 500 translate 90 rotate
0.588235 0.588235 scale
-40000 -40000 translate
gsave
40000 40000 57000 40000 10 line
57000 40000 57000 51000 10 line
57000 51000 40000 51000 10 line
40000 51000 40000 40000 10 line
52900 40600 52900 40000 10 line
gsave
false false false false 161.777776 [(FILE:) ] 0 49500 40400 144.444443 text
grestore
gsave
false false false false 161.777776 [(REVISION:) ] 0 53000 40400 144.444443 text
grestore
gsave
false false false false 161.777776 [(DRAWN BY: ) ] 0 53000 40100 144.444443 text
grestore
gsave
false false false false 161.777776 [(PAGE) ] 0 49500 40100 144.444443 text
grestore
gsave
false false false false 161.777776 [(OF) ] 0 51200 40100 144.444443 text
grestore
gsave
false false false false 161.777776 [(TITLE) ] 0 49500 40700 144.444443 text
grestore
49400 40000 57000 40000 10 line
57000 40000 57000 41400 10 line
57000 41400 49400 41400 10 line
49400 41400 49400 40000 10 line
49400 40600 57000 40600 10 line
grestore
gsave
46600 46700 46500 46500 10 line
46500 46500 46400 46700 10 line
46400 46700 46300 46500 10 line
46300 46500 46200 46700 10 line
46600 46700 46700 46500 10 line
46700 46500 46750 46600 10 line
46900 46600 46750 46600 10 line
46000 46600 46152 46600 10 line
46201 46700 46150 46600 10 line
grestore
gsave
false false false false 202.222224 [(R1) ] 0 46200 46800 180.555557 text
grestore
gsave
false false false false 202.222224 [(1k) ] 0 46500 46800 180.555557 text
grestore
gsave
47400 46000 47400 46800 10 line
47400 46000 48000 46400 10 line
48000 46400 47400 46800 10 line
47500 46150 47500 46250 10 line
47450 46200 47550 46200 10 line
47450 46600 47550 46600 10 line
47200 46200 47400 46200 10 line
gsave
false true false true 161.777776 [(1) ] 0 47350 46150 144.444443 text
grestore
47200 46600 47400 46600 10 line
gsave
false true false true 161.777776 [(2) ] 0 47350 46550 144.444443 text
grestore
48000 46400 48200 46400 10 line
gsave
false false false true 161.777776 [(5) ] 0 48000 46350 144.444443 text
grestore
47700 46200 47700 46000 10 line
gsave
false false false true 161.777776 [(3) ] 0 47750 46200 144.444443 text
grestore
47700 46600 47700 46800 10 line
gsave
false false false true 161.777776 [(4) ] 0 47750 46700 144.444443 text
grestore
newpath
47200 46600
25
0 360 arc
fill
grestore
gsave
false false false true 202.222224 [(U1) ] 0 48000 46800 180.555557 text
grestore
gsave
51100 46400 51300 46400 10 line
51300 46500 51300 46300 10 line
51300 46500 51800 46500 10 line
51800 46500 51900 46400 10 line
51900 46400 51800 46300 10 line
51800 46300 51300 46300 10 line
grestore
gsave
false false false false 202.222224 [(Output) ] 0 51300 46500 180.555557 text
grestore
gsave
47700 46800 47700 47000 10 line
47550 47000 47850 47000 10 line
grestore
gsave
true false false false 202.222224 [(Vs:12) ] 0 47700 47050 180.555557 text
grestore
gsave
46000 45700 46000 45900 10 line
45900 45700 46100 45700 10 line
45955 45650 46045 45650 10 line
45980 45610 46020 45610 10 line
grestore
46000 46600 46000 45900 10 line
46900 46600 47200 46600 10 line
47200 48100 47200 46600 10 line
48200 46400 51100 46400 10 line
gsave
46900 45700 46900 45400 10 line
gsave
true false false true 161.777776 [(+) ] 0 46900 45350 144.444443 text
grestore
46900 44500 46900 44800 10 line
gsave
true false false false 161.777776 [(-) ] 0 46900 44850 144.444443 text
grestore
46900 45100 300 0 360 10 darc
46830 45075 75 19 160 10 darc
46970 45125 75 199 340 10 darc
grestore
gsave
false false false false 202.222224 [(Vin) ] 0 47300 45050 180.555557 text
grestore
gsave
46900 44300 46900 44500 10 line
46800 44300 47000 44300 10 line
46855 44250 46945 44250 10 line
46880 44210 46920 44210 10 line
grestore
47200 46200 46900 46200 10 line
46900 46200 46900 45700 10 line
gsave
false false false false 242.666672 [(NOTE: U1 can be any device capable of -12 to +12V.) ( The values for R1 and R2 can be whatever as long) ( as you get a good signal out. ) ( Vin is from the computer or audio source.) ( Output is tied to the Arduino's ADC pin.) ] 0 46400 42600 216.666672 text
grestore
gsave
false false false false 283.111104 [(Arduino Time Spectrum Analyzer Amplifier) ] 0 50000 40900 252.777771 text
grestore
gsave
false false false false 202.222224 [(tsa-amp.sch) ] 0 49900 40400 180.555557 text
grestore
gsave
false false false false 202.222224 [(1) ] 0 50400 40100 180.555557 text
grestore
gsave
false false false false 202.222224 [(1) ] 0 52000 40100 180.555557 text
grestore
gsave
false false false false 202.222224 [(2.5.1) ] 0 53800 40400 180.555557 text
grestore
gsave
false false false false 202.222224 [(Kevin "The Nuclear" Bloom) ] 0 53900 40100 180.555557 text
grestore
gsave
42700 46800 42700 47000 10 line
42550 47000 42850 47000 10 line
grestore
gsave
true false false false 202.222224 [(Vs:12) ] 0 42700 47050 180.555557 text
grestore
gsave
42800 46200 42600 46300 10 line
42600 46300 42800 46400 10 line
42800 46400 42600 46500 10 line
42600 46500 42800 46600 10 line
42800 46200 42600 46100 10 line
42600 46100 42700 46050 10 line
42700 45900 42700 46050 10 line
42700 46800 42700 46648 10 line
42800 46599 42700 46650 10 line
newpath
42700 45900
25
0 360 arc
fill
grestore
gsave
false false false false 202.222224 [(R3) ] 0 42900 46500 180.555557 text
grestore
gsave
false false false false 202.222224 [(1k) ] 0 42900 46300 180.555557 text
grestore
gsave
42800 45300 42600 45400 10 line
42600 45400 42800 45500 10 line
42800 45500 42600 45600 10 line
42600 45600 42800 45700 10 line
42800 45300 42600 45200 10 line
42600 45200 42700 45150 10 line
42700 45000 42700 45150 10 line
42700 45900 42700 45748 10 line
42800 45699 42700 45750 10 line
newpath
42700 45900
25
0 360 arc
fill
grestore
gsave
false false false false 202.222224 [(R4) ] 0 42900 45500 180.555557 text
grestore
gsave
false false false false 202.222224 [(500) ] 0 42900 45300 180.555557 text
grestore
gsave
42700 44800 42700 45000 10 line
42600 44800 42800 44800 10 line
42655 44750 42745 44750 10 line
42680 44710 42720 44710 10 line
grestore
gsave
43400 45900 43600 45900 10 line
43600 46000 43600 45800 10 line
43600 46000 44100 46000 10 line
44100 46000 44200 45900 10 line
44200 45900 44100 45800 10 line
44100 45800 43600 45800 10 line
grestore
gsave
false false false false 202.222224 [(Vref) ] 0 43600 46000 180.555557 text
grestore
43400 45900 42700 45900 10 line
gsave
false false false false 242.666672 [(NOTE: This voltage divider is to acquire 8V for the reference ) ( voltage on the Arduino. The values of R3 and R4 can ) ( be whatever, as long as 8V is available at the Vref.) ( mark.) ] 0 40200 42800 216.666672 text
grestore
48800 47600 48800 46400 10 line
gsave
47700 46000 47700 45800 10 line
47850 45800 47550 45800 10 line
grestore
gsave
true false false true 202.222224 [(-Vs:-12) ] 0 47700 45750 180.555557 text
grestore
gsave
48800 47750 48800 47600 10 line
48800 48000 48852 47899 10 line
48799 47999 48747 47898 10 line
48700 48000 48800 48200 10 line
48800 48200 48900 48000 10 line
48900 48000 49000 48200 10 line
49000 48200 49100 48000 10 line
48700 48000 48600 48200 10 line
48600 48200 48550 48100 10 line
48400 48100 48550 48100 10 line
49300 48100 49148 48100 10 line
49099 48000 49150 48100 10 line
48800 48000 48800 47750 10 line
grestore
gsave
false true false true 202.222224 [(R2) ] 0 48600 48400 180.555557 text
grestore
gsave
false false false false 202.222224 [(25k) ] 0 48900 48300 180.555557 text
grestore
47200 48100 48400 48100 10 line
gsave
49300 47900 49300 48100 10 line
49200 47900 49400 47900 10 line
49255 47850 49345 47850 10 line
49280 47810 49320 47810 10 line
grestore
newpath
47200 46600
25
0 360 arc
fill
newpath
47200 46600
25
0 360 arc
fill
newpath
47200 46600
25
0 360 arc
fill
newpath
48800 46400
25
0 360 arc
fill
newpath
42700 45900
25
0 360 arc
fill
newpath
42700 45900
25
0 360 arc
fill
newpath
42700 45900
25
0 360 arc
fill
newpath
48800 46400
25
0 360 arc
fill
newpath
48800 46400
25
0 360 arc
fill
showpage
%%End