summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/skak/informator.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/skak/informator.ps')
-rw-r--r--Master/texmf-dist/doc/latex/skak/informator.ps5639
1 files changed, 0 insertions, 5639 deletions
diff --git a/Master/texmf-dist/doc/latex/skak/informator.ps b/Master/texmf-dist/doc/latex/skak/informator.ps
deleted file mode 100644
index cf693fb86db..00000000000
--- a/Master/texmf-dist/doc/latex/skak/informator.ps
+++ /dev/null
@@ -1,5639 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software
-%%Title: informator.dvi
-%%CreationDate: Thu Jul 18 23:26:38 2013
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%DocumentFonts: CMR17 CMTT12 CMR12 CMR10 CMSY10 CMSSBX10
-%%+ SkakNew-Figurine CMSS10
-%%DocumentPaperSizes: a4
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -o informator.ps informator.dvi
-%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2013.07.18:2326
-%%BeginProcSet: tex.pro 0 0
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}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{A A 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/IEn 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 IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
-/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
-setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
-restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
-mul exch 0 get A 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/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
-def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
-rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
-N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
-false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
-length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
-forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
-BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
-{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
-round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
-rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/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
-%%BeginProcSet: pstricks.pro 0 0
-% $Id: pstricks.pro 647 2012-02-12 15:03:40Z herbert $
-%
-%% PostScript prologue for pstricks.tex.
-%% Version 1.12, 2012/02/12
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%
-%
-% Define the follwing gs-functions if not known, eg when using distiller
-%
-systemdict /.setopacityalpha known not {/.setopacityalpha { pop } def } if
-systemdict /.setblendmode known not {/.setblendmode { pop } def } if
-systemdict /.setshapealpha known not {/.setshapealpha { pop } def } if
-%
-/tx@Dict 200 dict def % the main PSTricks dictionary
-tx@Dict begin
-/ADict 25 dict def % The arrow dictionaray
-/CM { matrix currentmatrix } bind def
-/SLW /setlinewidth load def
-/CLW /currentlinewidth load def
-/CP /currentpoint load def
-/ED { exch def } bind def
-/L /lineto load def
-/T /translate load def
-/TMatrix { } def
-/RAngle { 0 } def
-/Sqrt { dup 0 lt { pop 0 } { sqrt } ifelse } def % return 0 for negative arguments
-/Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known
-/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter)
-/Div { dup 0 eq { pop } { div } ifelse } def % control the division
-/tan { dup cos abs 1.e-10 lt
- { pop 1.e10 } % return 1.e10 as infinit
- { dup sin exch cos div } ifelse % default sin/cos
-} def
-/Tan { dup sin exch cos Div } def % sin(x)/cos(x) x in degrees
-/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root
- pop pop 0 }{ sqrt exch atan} ifelse } def
-/NET { neg exch neg exch T } def % change coordinate system to the negative one
-/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter
-/Pyth2 { % Pythagoras, xA yA xB yB
- 3 -1 roll % xA xB yB yA
- sub % xA xB yB-yA
- 3 1 roll % yB-yA xA xB
- sub % yB-yA xA-xB
- Pyth } def
-/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian
-/Rand { rand 4294967295 div } def % a real random number
-%----------------- hv added 20050516 ---------------
-/PiDiv2 1.57079632680 def
-/Pi 3.14159265359 def
-/TwoPi 6.28318530718 def
-/Euler 2.71828182846 def
-%/e Euler bind def
-%
-/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees
-/DegtoRad { Pi mul 180 div } bind def % viceversa
-%----------------- hv end---------------------------
-/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def
-%
-/PathLength {
- flattenpath /z 0 def
- { /y1 ED /x1 ED /y2 y1 def /x2 x1 def }
- { /y ED /x ED PathLength@ }
- {}
- { /y y2 def /x x2 def PathLength@ }
- /pathforall load stopped { pop pop pop pop } if
- z
-} def
-%
-/STP { .996264 dup scale } def % BP/PT scaling
-/STV { SDict begin normalscale end STP } def %
-%
-/DashLine {
- dup 0 gt
- { /a .5 def PathLength exch div }
- { pop /a 1 def PathLength } ifelse
- /b ED % pattern should fit evenly in b
- dup /X ED % pattern array
- 0 get /y ED % length of first black segment
- /z 0 X {add} forall def % length of the full pattern
- %% Computation of the scaling factor as described by van Zandt:
- b a .5 sub 2 mul y mul sub z Div round
- z mul a .5 sub 2 mul y mul add b exch Div
- %%%% scaling factor on stack.
- /z ED %% now, z is the scaling factor
- false % for the length test below
- X { z mul } forall X astore %% modification TN 04-08-07
- %%% Checking whether at least one dash in X has positive length:
- {0 gt or} forall
- { X 1 a sub y mul }
- { [ 1 0 ] 0 }
- ifelse
- setdash stroke
-} def
-%
-/DotLine {
- /b PathLength def
- /a ED /z ED /y CLW def
- /z y z add def
- a 0 gt {
- /b b a div def
- }{
- a 0 eq {
- /b b y sub def
- }{ a -3 eq {
- /b b y add def } if
- } ifelse
- } ifelse
- [ 0 b b z Div round Div dup 0 le { pop 1 } if ]
- a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse
- setdash 1 setlinecap stroke
-} def
-%
-/SymbolLine { % on stack [ x y x y ...
- counttomark % number of elements
- 2 div cvi /n ED % n pairs
- /YA ED /XA ED % the start point
- n 1 sub {
- /YB ED /XB ED
- /XLength XB XA sub def
- /YLength YB YA sub def
- /PAngle YLength XLength Atan def
- /XYLength XLength YLength Pyth def
-
- %% for negative SymStep we calculate the distance
- SymStep 0 lt
- { %XYLength SymStep div abs cvi
- /nSym SymStep abs cvi def }
- { /nSym XYLength SymStep div cvi def }
- ifelse
- 0.5 setflat
- /Shift Symbol stringwidth pop 2 div def
- /deltaX XLength nSym div def
- /deltaY YLength nSym div def
- curveticks
- { XA YA moveto }
- { XA Shift sub YA Shift sub moveto }
- ifelse
- nSym {
- gsave
- curveticks
- { PAngle 180 sub CorrAngle sub tickAngle add /rotAngle ED
- currentpoint translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore
- deltaX deltaY rmoveto
- } repeat
- /YA YB def /XA XB def
- } repeat
- curveticks
- { XA YA moveto }
- { XA Shift sub YA Shift sub moveto }
- ifelse
- gsave
- curveticks
- { PAngle 180 sub CorrAngle sub tickAngle add /rotAngle ED
- XA YA translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore
- pop % delete the mark symbol
-} def
-%
-/LineFill { % hv ------------ patch 7 -------------
- gsave
- abs /hatchWidthInc ED
- abs /hatchSepInc ED
- abs CLW add /a ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- 2 setlinecap
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- x2 x1 sub 1 add {
- x1 a mul y1 moveto 0 y2 rlineto stroke
- /x1 x1 1 add
- hatchWidthInc 0 gt { CLW add } if
- def
- hatchSepInc 0 gt hatchWidthInc 0 gt or {
- /a a hatchSepInc add def
- CLW hatchWidthInc add SLW
- } if
- } repeat
- grestore
- pop pop } def
-%
-/DotFill {% on stack: dot radius
- /dotRadius ED
- abs CLW add /a ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform
- pathbbox % llx lly urx ury of smallest bounding box
- /y2 ED /x2 ED /y1 ED /x1 ED
- y2 y1 sub a div 2 add cvi /Ny ED
- x2 x1 sub a div 2 add cvi /Nx ED
- clip
- newpath
- /yA y1 dotRadius add CLW add def
- /xA0 x1 dotRadius add CLW add def
- Ny {
- /xA xA0 def
- Nx {
- newpath
- xA yA dotRadius 0 360 arc
- SolidDot { gsave fill grestore } if
- stroke
- xA a add /xA ED
- } repeat
- yA a add /yA ED
- } repeat
- grestore
-} def
-%
-/PenroseFill {% on stack: scaling factor
- dup dup scale
- 1 exch div round /penroseFactor ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- /I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul}
- { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall
- [0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto
- i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25
- mul j l + S rmoveto}F i L j L stroke }F}F}F}F
- grestore
- pop pop
-} def
-%
-/TruchetFill { % on stack: scaling factor
- 10 dict begin
- dup dup scale
- 1 exch div round /penroseFactor ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- /ma a neg def
- /ha a 2 div def
- /mha ha neg def
- /tile {
- rand dup 2 idiv 2 mul eq { 90 rotate } if
- mha mha moveto ha mha lineto
- ha ha lineto mha ha lineto
-% closepath .1 setlinewidth stroke
- contents
- } def
- /contents{
- 0 ha moveto ha 0 lineto
- 0 mha moveto mha 0 lineto
-% 1 setlinewidth stroke
- } def
- /dotiling {
- f ma mul a f a mul {
- /i exch def
- f ma mul a f a mul {
- /j exch def
- gsave i j translate
- tile stroke grestore
- } for
- } for
- } def
-%
- /f 3 def
- 5 srand dotiling
- end % local user dict
-} def
-%
-/BeginArrow {
- ADict begin % hold it local, for end see EndArrow
- /@mtrx CM def
- gsave
- 2 copy T
- 2 index sub neg exch
- 3 index sub exch Atan
- rotate newpath
-} def
-%
-/EndArrow { @mtrx setmatrix CP grestore end } def % end the ADict
-%
-/Arrow {
- CLW mul add dup
- 2 div /w ED
- mul dup /h ED
- mul /a ED
- { 0 h T 1 -1 scale } if
- w neg h moveto
- 0 0 L w h L w neg a neg rlineto
- gsave fill grestore
-} def
-%
-/ArrowD { % the sides are drawn as curves (hv 20071211)
- CLW mul add dup
- 2 div /w ED
- mul dup /h ED
- mul /Inset ED
- { 0 h T 1 -1 scale } if % changes the direction
-% we use y=w/h^2 * x^2 as equation for the control points
-% for the coordinates the arrow is seen from top to bottom
-% the bottom (tip) is (0;0)
- w neg h moveto % lower left of >
- w 9 div 4 mul neg h 3 div 2 mul
- w 9 div neg h 3 div
- 0 0 curveto % tip of >
- w 9 div h 3 div
- w 9 div 4 mul h 3 div 2 mul
- w h curveto % upper left of >
- w neg Inset neg rlineto % move to x=0 and inset
- gsave fill grestore
-} def
-%
-/Tbar {
- CLW mul add /z ED
- z -2 div CLW 2 div moveto
- z 0 rlineto stroke
- 0 CLW moveto
-} def
-%
-/Bracket {
- CLW mul add dup CLW sub 2 div
- /x ED mul CLW add /y ED /z CLW 2 div def
- x neg y moveto
- x neg CLW 2 div L x CLW 2 div L x y L stroke
- 0 CLW moveto
-} def
-%
-/RoundBracket {
- CLW mul add dup 2 div
- /x ED mul /y ED /mtrx CM def
- 0 CLW 2 div T x y mul 0 ne { x y scale } if
- 1 1 moveto
- .85 .5 .35 0 0 0 curveto
- -.35 0 -.85 .5 -1 1 curveto
- mtrx setmatrix stroke 0 CLW moveto
-} def
-%
-/SD { 0 360 arc fill } def
-%
-/EndDot { % DS is the dot size
- { /z DS def } { /z 0 def } ifelse % outer or inner dimen
- /b ED % the color definition
- 0 z DS SD
- b { 0 z DS CLW sub SD } if
- 0 DS z add CLW 4 div sub
- moveto
-} def
-%
-/Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
- /closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
- load } if ] cvx newpath 3 1 roll T exec } def
-%
-/NArray { % holds the coordinates and on top of stack the showpoints boolean
- /showpoints ED
- counttomark 2 div dup cvi /n ED % n 2 div on stack
- n eq not { exch pop } if % even numbers of points? delete one
- ] aload /Points ED
- showpoints not { Points aload pop } if
-% { ] aload /Points ED }
-% { n 2 mul 1 add -1 roll pop } ifelse % delete the mark symbol
-} def
-%
-/Line {
- NArray n 0 eq not
- { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def
- n { Lineto } repeat
- CP 4 2 roll ArrowB L pop pop
- } if
-} def
-%
-/LineToYAxis {
- /Ox ED % Save the x origin value
- NArray % all x-y pairs on stack
- n { 2 copy moveto % go to current point
- Ox exch Lineto % line to y-axis
- pop % delete old x-value
- } repeat
-} def
-%
-/LineToXAxis{
- /Oy ED % Save the y origin value
- NArray % all x-y pairs on stack
- n 0 eq not
- { n 1 eq { 0 0 /n 2 def } if
- ArrowA
- /n n 2 sub def
- CP 2 copy moveto pop Oy Lineto
- n { 2 copy moveto pop Oy Lineto } repeat
- CP
- 4 2 roll
- ArrowB
- 2 copy moveto pop Oy
- L
- pop pop } if
-} def
-%
-/Arcto {
- /a [ 6 -2 roll ] cvx def
- a r
- /arcto load stopped { 5 } { 4 } ifelse { pop } repeat
- a
-} def
-%
-/CheckClosed {
- dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
- and { pop pop /n n 1 sub def } if
-} def
-%
-/Polygon {
- NArray n 2 eq { 0 0 /n 3 def } if
- n 3 lt
- { n { pop pop } repeat }
- { n 3 gt { CheckClosed } if
- n 2 mul -2 roll
- /y0 ED /x0 ED /y1 ED /x1 ED
- x1 y1
- /x1 x0 x1 add 2 div def
- /y1 y0 y1 add 2 div def
- x1 y1 moveto
- /n n 2 sub def
- n { Lineto } repeat
- x1 y1 x0 y0 6 4 roll Lineto
- Lineto pop pop closepath } ifelse
-} def
-%
-/SymbolPolygon { % on stack [ x y x y ...
- counttomark % number of elements
- 2 add /m ED
- 2 copy m 2 roll % copy last two
- m 2 div cvi /n ED % n pairs
- /YA ED /XA ED % the start point
- n 1 sub {
- /YB ED /XB ED
- /XLength XB XA sub def
- /YLength YB YA sub def
- /PAngle YLength XLength Atan def
- /XYLength XLength YLength Pyth def
- /nSym XYLength SymStep Div cvi def
- /Shift Symbol stringwidth pop 2 Div def
- /deltaX XLength nSym Div def
- /deltaY YLength nSym Div def
- XA Shift sub YA Shift sub moveto
- nSym {
- gsave rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if
- Symbol show
- grestore
- deltaX deltaY rmoveto
- } repeat
-% XB Shift sub YB Shift sub moveto Symbol show
- /YA YB def /XA XB def
- } repeat
- pop % delete the mark symbol
-} def
-%
-/Diamond {
- /mtrx CM def
- T rotate
- /h ED
- /w ED
- dup 0 eq { pop } { CLW mul neg
- /d ED
- /a w h Atan def
- /h d a sin Div h add def
- /w d a cos Div w add def } ifelse
- mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div
- /ArrowA { moveto } def
- /ArrowB { } def
- false Line
- closepath mtrx setmatrix } def
-%
-/Triangle {
- /mtrx CM def
- translate
- rotate /h ED 2 div /w ED
- dup CLW mul /d ED
- /h h d w h Atan sin Div sub def
- /w w d h w Atan 2 div dup cos exch sin Div mul sub def
- mark
- 0 d w neg d 0 h w d 0 d
- /ArrowA { moveto } def
- /ArrowB { } def
- false
- Line
- closepath
- mtrx
-% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
-% setmatrix } def
- setmatrix pop
-} def
-% DG/SR modification end
-%
-/CCA {
- /y ED /x ED
- 2 copy y sub /dy1 ED
- x sub /dx1 ED
- /l1 dx1 dy1 Pyth def
-} def
-%
-/CC {
- /l0 l1 def
- /x1 x dx sub def
- /y1 y dy sub def
- /dx0 dx1 def
- /dy0 dy1 def
- CCA
- /dx dx0 l1 c exp mul dx1 l0 c exp mul add def
- /dy dy0 l1 c exp mul dy1 l0 c exp mul add def
- /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div 2 div def
- /x2 x l0 dx mul m mul sub def
- /y2 y l0 dy mul m mul sub def
- /dx l1 dx mul m mul neg def
- /dy l1 dy mul m mul neg def
-} def
-%
-/IC {
- /c c 1 add def
- c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } ifelse
- /a a 2 mul 3 div 45 cos b exp div def
- CCA
- /dx 0 def
- /dy 0 def
-} def
-%
-/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
-/NC { CC x1 y1 x2 y2 x y curveto } def
-/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
-/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
-/NAC { x2 y2 x y curveto CC x1 y1 } def
-/EAC { x2 y2 x y ArrowB curveto pop pop } def
-%
-/OpenCurve {
- NArray n 3 lt
- { n { pop pop } repeat }
- { BOC /n n 3 sub def n { NC } repeat EOC } ifelse
-} def
-%
-/CurvePath {
- %% for negative SymStep we calculate the distance
- SymStep 0 lt { gsave PathLength SymStep div abs /SymStep ED grestore } if
- 0.5 setflat
- flattenpath /z 0 def /z0 0 def
- { /y1 ED /x1 ED /y2 y1 def /x2 x1 def
- x1 Shift sub y1 Shift sub moveto
- gsave
- curveticks
- { x1 y1 translate startAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- { startAngle rotate Symbol show }
- ifelse
- grestore /z0 z def }
- { /y ED /x ED PathLength@ z z0 sub SymStep ge {
- x Shift sub y Shift sub moveto
- gsave
- curveticks
- { y yOld sub x xOld sub Atan 180 sub CorrAngle sub /rotAngle ED
- x y translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- rotateSymbol { y yOld sub x xOld sub Atan 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore /z0 z def } if
- /yOld y def /xOld x def }
- {} %% the lineto part
- { /y y2 def /x x2 def PathLength@
- x Shift sub y Shift sub moveto
- gsave
- curveticks
- { y yOld sub x xOld sub Atan 180 sub /rotAngle ED
- x y translate rotAngle rotate
- 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
- SymbolLinewidth setlinewidth stroke
- }
- {
- x Shift sub y Shift sub moveto
- rotateSymbol { y yOld sub x xOld sub Atan 180 sub CorrAngle sub rotate } if
- Symbol show
- }
- ifelse
- grestore
- }
- pathforall
-% curveticks
-% { gsave
-% x y translate rotAngle rotate
-% 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto
-% SymbolLinewidth setlinewidth stroke grestore
-% } if
- z
-} def
-%
-/OpenSymbolCurve {
- OpenCurve
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/AltCurve {
- { false NArray n 2 mul 2 roll
- [ n 2 mul 3 sub 1 roll ] aload
- /Points ED
- n 2 mul -2 roll }
- { false NArray } ifelse
- n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse
-} def
-%
-/AltOpenSymbolCurve {
- AltCurve
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/ClosedCurve {
- NArray n 3 lt
- { n { pop pop } repeat }
- { n 3 gt { CheckClosed } if
- 6 copy n 2 mul 6 add 6 roll
- IC CC x y moveto n { NC } repeat
- closepath pop pop
- } ifelse
-} def
-%
-/ClosedSymbolCurve {
- ClosedCurve
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
-/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
-/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } def
-%
-/FontDot {
- DS 2 mul dup
- matrix scale matrix concatmatrix exch matrix
- rotate matrix concatmatrix exch
- findfont exch makefont setfont
-} def
-%
-/Rect {
- x1 y1 y2 add 2 div moveto
- x1 y2 lineto
- x2 y2 lineto
- x2 y1 lineto
- x1 y1 lineto
- closepath
-} def
-%
-/OvalFrame {
- x1 x2 eq y1 y2 eq or
- { pop pop x1 y1 moveto x2 y2 L }
- { y1 y2 sub abs x1 x2 sub abs 2 copy gt
- { exch pop } { pop } ifelse
- 2 div exch { dup 3 1 roll mul exch } if
- 2 copy lt { pop } { exch pop } ifelse
- /b ED
- x1 y1 y2 add 2 div moveto
- x1 y2 x2 y2 b arcto
- x2 y2 x2 y1 b arcto
- x2 y1 x1 y1 b arcto
- x1 y1 x1 y2 b arcto
- 16 { pop } repeat
- closepath
- } ifelse
-} def
-%
-/Frame {
- CLW mul /a ED
- 3 -1 roll
- 2 copy gt { exch } if
- a sub /y2 ED
- a add /y1 ED
- 2 copy gt { exch } if
- a sub /x2 ED
- a add /x1 ED
- 1 index 0 eq { pop pop Rect } { OvalFrame } ifelse
-} def
-%
-/BezierNArray {
- /f ED
- counttomark 2 div dup cvi /n ED
- n eq not { exch pop } if
- n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat
- f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
-} def
-%
-/OpenBezier {
- BezierNArray
- n 1 eq
- { pop pop }
- { ArrowA n 4 sub 3 idiv
- { 6 2 roll 4 2 roll curveto } repeat
- 6 2 roll 4 2 roll ArrowB curveto } ifelse
-} def
-%
-/OpenSymbolBezier {
- OpenBezier
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
-} def
-%
-/ClosedBezier {
- BezierNArray
- n 1 eq
- { pop pop }
- { moveto n 1 sub 3 idiv
- { 6 2 roll 4 2 roll curveto } repeat
- closepath } ifelse
-} def
-%
-/ClosedSymbolBezier {
- /f ED % save showpoints value
- 2 copy /yEnd ED /xEnd ED
- counttomark -2 roll 2 copy /yStart ED /xStart ED
- counttomark 2 roll
- f
- ClosedBezier
- 0.1 setflat
- /Shift Symbol stringwidth pop 2 div def
- CurvePath
- [ xEnd yEnd xStart yStart SymbolLine
-} def
-%
-/BezierShowPoints {
- gsave
- Points aload length 2 div cvi /n ED
- moveto
- n 1 sub { lineto } repeat
- CLW 2 div SLW [ 4 4 ] 0 setdash stroke
- grestore
-} def
-%
-/Parab {
- /y0 ED /x0 ED /y1 ED /x1 ED
- /dx x0 x1 sub 3 div def
- /dy y0 y1 sub 3 div def
- x0 dx sub y0 dy add x1 y1 ArrowA
- x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
- curveto
- /Points [ x1 y1 x0 y0 x0 2 mul x1 sub y1 ] def
-} def
-%
-/Parab1 { % 1 end | 0 SP
- /ySP ED /xSP ED /y1 ED /x1 ED
- /dx xSP x1 sub 3 div def
- /dy ySP y1 sub 3 div def
- newpath x1 y1 moveto xSP y1 lineto xSP ySP lineto
- x1 ySP lineto closepath clip
- currentpoint
- newpath moveto
- xSP dx sub ySP dy add x1 y1 ArrowA
- xSP dx add ySP dy add xSP 2 mul x1 sub y1 ArrowB
- curveto
- /Points [ x1 y1 xSP ySP xSP 2 mul x1 sub y1 ] def
-} def
-%
-/Grid {
- newpath
- /a 4 string def
- /b ED % psk@gridlabels in pt
- /c ED % { \pst@usecolor\psgridlabelcolor }
- /n ED % psk@griddots
- cvi dup 1 lt { pop 1 } if
- /s ED % \psk@subgriddiv
- s div dup 0 eq { pop 1 } if
- /dy ED s div dup 0 eq { pop 1 } if % \pst@number\psyunit abs
- /dx ED dy div round dy mul % \pst@number\psxunit abs
- /y0 ED dx div round dx mul
- /x0 ED dy div round cvi
- /y2 ED dx div round cvi
- /x2 ED dy div round cvi
- /y1 ED dx div round cvi
- /x1 ED
- /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def
- /w x2 x1 sub 0 gt { 1 } { -1 } ifelse def
- b 0 gt {
- /z1 b 4 div CLW 2 div add def
-% /Helvetica findfont b scalefont setfont
- /b b .95 mul CLW 2 div add def } if
- systemdict /setstrokeadjust known
- { true setstrokeadjust /t { } def }
- { /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
- exch itransform } bind def } ifelse
- gsave n 0 gt { 1 setlinecap [ 0 dy n div ] dy n div 2 div setdash } { 2 setlinecap } ifelse
- /i x1 def
- /f y1 dy mul n 0 gt { dy n div 2 div h mul sub } if def
- /g y2 dy mul n 0 gt { dy n div 2 div h mul add } if def
- x2 x1 sub w mul 1 add dup 1000 gt { pop 1000 } if
- { i dx mul dup y0 moveto
- b 0 gt
- { gsave c i a cvs dup stringwidth pop
- /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse
- h 0 gt {b neg}{z1} ifelse
- rmoveto show grestore } if
- dup t f moveto
- g t L stroke
- /i i w add def
- } repeat
- grestore
- gsave
- n 0 gt
- % DG/SR modification begin - Nov. 7, 1997 - Patch 1
- %{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash }
- { 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash }
- % DG/SR modification end
- { 2 setlinecap } ifelse
- /i y1 def
- /f x1 dx mul n 0 gt { dx n div 2 div w mul sub } if def
- /g x2 dx mul n 0 gt { dx n div 2 div w mul add } if def
- y2 y1 sub h mul 1 add dup 1000 gt { pop 1000 } if
- { newpath i dy mul dup x0 exch moveto
- b 0 gt { gsave c i a cvs dup stringwidth pop
- /z2 ED
- w 0 gt {z1 z2 add neg} {z1} ifelse
- h 0 gt {z1} {b neg} ifelse
- rmoveto show grestore } if
- dup f exch t moveto
- g exch t L stroke
- /i i h add def
- } repeat
- grestore
-} def
-%
-/ArcArrow {
- /d ED /b ED /a ED
- gsave
- newpath 0 -1000 moveto clip
- newpath
- 0 1 0 0 b
- grestore
- c mul
- /e ED
- pop pop pop r a e d PtoC y add exch x add
- exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
- mul neg d
-} def
-%
-/Ellipse {
- /rotAngle ED
- /mtrx CM def
- T
- rotAngle rotate
- scale 0 0 1 5 3 roll arc
- mtrx setmatrix
-} def
-%
-/ArcAdjust { %%%% Vincent Guirardel
-% given a target length (targetLength) and an initial angle (angle0) [in the stack],
-% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0).
-% This computes an angle t such that (x0,y0) is at distance
-% targetLength from the point M(t)=(rx*cos(t),ry*sin(t)).
-% NOTE: this an absolute angle, it does not have to be added or substracted to angle0
-% contrary to TvZ's code.
-% To achieve, this, one iterates the following process: start with some angle t,
-% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)].
-% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned.
-%
-% Another difference with TvZ's code is that we need d (=add/sub) to be defined.
-% the value of d = add/sub is used to know on which side we have to move.
-% It is only used in the initialisation of the angle before the iteration.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Input stack: 1: target length 2: initial angle
-% variables used : rx, ry, d (=add/sub)
-%
- /targetLength ED /angle0 ED
- /x0 rx angle0 cos mul def
- /y0 ry angle0 sin mul def
-% we are looking for an angle t such that (x0,y0) is at distance targetLength
-% from the point M(t)=(rx*cos(t),ry*sin(t)))
-%initialisation of angle (using 1st order approx = TvZ's code)
- targetLength 57.2958 mul
- angle0 sin rx mul dup mul
- angle0 cos ry mul dup mul
- add sqrt div
-% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees
-% (if the ellipse is very curved at the point where we draw the arrow, %
-% the value can be much more than 360 degrees !)
-% this should avoid going on the wrong side (more than 180 degrees) or go near
-% a bad attractive point (at 180 degrees)
- dup 90 ge { pop 90 } if
- angle0 exch d % add or sub
-% maximum number of times to iterate the iterative procedure:
-% iterative procedure: takes an angle t on top of stack, computes a
-% better angle (and put it on top of stack)
- 30 { dup
-% compute distance D between (x0,y0) and M(t)
- dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt
-% if D almost equals targetLength, we stop
- dup targetLength sub abs 1e-5 le { pop exit } if
-% stack now contains D t
-% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]:
-% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 )
- exch dup cos rx mul x0 sub exch sin ry mul y0 sub
-% stack contains: y(t)-y0, x(t)-x0, d
- 2 index Div targetLength mul y0 add ry Div exch
- 2 index Div targetLength mul x0 add rx Div
-% stack contains x(t')/rx , y(t')/ry , d
-% now compute t', and remove D from stack
- atan exch pop
- } repeat
-% we don't look at what happened... in particular, if targetLength is greater
-% than the diameter of the ellipse...
-% the final angle will be around /angle0 + 180. maybe we should treat this pathological case...
-% after iteration, stack contains an angle t such that M(t) is the tail of the arrow
-% to give back the result as a an angle relative to angle0 we could add the following line:
-% angle0 sub 0 exch d
-%
-% begin bug fix 2006-01-11
-% we want to adjust the new angle t' by a multiple of 360 so that | t'-angle0 | <= 180
-%(we don't want to make the ellipse turn more or less than it should)...
-dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifelse
-% end bug fix
-} def
-%
-/EllipticArcArrow {
- /d ED % is add or sub
- /b ED % arrow procedure
- /a1 ED % angle
- gsave
- newpath
- 0 -1000 moveto
- clip % Set clippath far from arrow.
- newpath
- 0 1 0 0 b % Draw arrow to determine length.
- grestore
-% Length of arrow is on top of stack. Next 3 numbers are junk.
-%
- a1 exch ArcAdjust % Angular position of base of arrow.
- /a2 ED
- pop pop pop
- a2 cos rx mul xOrig add % hv 2007-08-29 x->xOrig
- a2 sin ry mul yOrig add % hv 2007-08-29 y->yOrig
- a1 cos rx mul xOrig add %
- a1 sin ry mul yOrig add %
-% Now arrow tip coor and base coor are on stack.
- b pop pop pop pop % Draw arrow, and discard coordinates.
- a2 CLW 8 div
-% change value of d (test it by looking if `` 1 1 d '' gives 2 or not )
- 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse
- ArcAdjust
-% resets original value of d
- 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap.
-} def
-%%------------------ tvz/DG/hv (2004-05-10) end -------------------%%
-%
-/Rot { CP CP translate 3 -1 roll neg rotate NET } def
-%
-/RotBegin {
- tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } def } if
- /TMatrix [ TMatrix CM ] cvx def
- /a ED
- a Rot /RAngle [ RAngle dup a add ] cvx def
-} def
-%
-/RotEnd {
- /TMatrix [ TMatrix setmatrix ] cvx def
- /RAngle [ RAngle pop ] cvx def
-} def
-%
-/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
-/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
-/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
-%
-/Uput {
- /a ED
- add 2 div /h ED 2
- div /w ED
- /s a sin def
- /c a cos def
- /b s abs c abs 2 copy gt dup
- /q ED
- { pop } { exch pop } ifelse def
- /w1 c b div w mul def
- /h1 s b div h mul def
- q { w1 abs w sub dup c mul abs }{ h1 abs h sub dup s mul abs } ifelse
-} def
-%
-/UUput {
- /z ED
- abs /y ED
- /x ED
- q { x s div c mul abs y gt }{ x c div s mul abs y gt } ifelse
- { x x mul y y mul sub z z mul add sqrt z add }
- { q { x s div } { x c div } ifelse abs
- } ifelse
- a PtoC
- h1 add exch
- w1 add exch
-} def
-%
-/BeginOL {
- dup (all) eq exch TheOL eq or
- { IfVisible not { Visible /IfVisible true def } if }
- { IfVisible { Invisible /IfVisible false def } if } ifelse
-} def
-%
-/InitOL {
- /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
- /Visible { CP OLUnit idtransform T moveto } def
- /Invisible { CP OLUnit neg exch neg exch idtransform T moveto } def
- /BOL { BeginOL } def
- /IfVisible true def
-} def
-%
-%%%%%%%%%%%%%%%%% tools %%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%% ### bubblesort ###
-%% syntax : array bubblesort --> array2 trie par ordre croissant
-%% code de Bill Casselman
-%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/
-/bubblesort {
-4 dict begin
- /a exch def
- /n a length 1 sub def
- n 0 gt {
- % at this point only the n+1 items in the bottom of a remain to
- % the sorted largest item in that blocks is to be moved up into
- % position n
- n {
- 0 1 n 1 sub {
- /i exch def
- a i get a i 1 add get gt {
- % if a[i] > a[i+1] swap a[i] and a[i+1]
- a i 1 add
- a i get
- a i a i 1 add get
- % set new a[i] = old a[i+1]
- put
- % set new a[i+1] = old a[i]
- put
- } if
- } for
- /n n 1 sub def
- } repeat
- } if
- a
-end
-} def
-%
-%
-/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422
- 0 1 index { length add } forall
- string
- 0 3 2 roll
- { 3 copy putinterval length add }forall
- pop
-} bind def
-%
-/dot2comma {% on stack a string (...)
- 2 dict begin
- /Output exch def
- 0 1 Output length 1 sub {
- /Index exch def
- Output Index get 46 eq { Output Index 44 put } if
- } for
- Output
- end
-} def
-%
-end
-%-----------------------------------------------------------------------------%
-%
-% END pstricks.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-algparser.pro 0 0
-% $Id: pst-algparser.pro 594 2011-10-31 18:13:18Z herbert $
-%%
-%% PostScript prologue for PSTricks algorithm parser
-%% Version 0.04, 2011/10/21
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%%
-%%-----------------------------------------------------------------------------%
-%
-/AlgParser { tx@AlgToPs begin AlgToPs end } def % Dominique Rodriguez
-%
-/tx@CoreAnalyzerDict 100 dict def tx@CoreAnalyzerDict begin
-%
-% PS ANALYZER FOR ALGEBRAIC EXPRESSION V1.13
-%
-% 09/2011 DR factorial with ! added
-%
-% E->T|E+T
-% T->FS|T*FS
-% FS -> F | +FS | -FS
-% F->P|F^SF|P!
-% P->(E)|literal
-% literal->number|var|var[E]|func(params)
-% params->E|E,param
-% number->TOBEFINISHED
-%
-%% E expression, T term, SF signed factor, F factor, P power
-%
-%% parser
-%
-%% str
-%
-%% C->E<condition_operators>E
-%% STR index -> STR index+lenExpr
-/AnalyzeCond { AnalyzeExpr ReadCondOp AnalyzeExpr EvalCondOp } def
-%
-%% analyze Expression List (separator , or | )
-%% STR index -> STR index+lenExpr
-%% /AnalyzeListOfE {
-%% { NextNonBlankChar pop AnalyzeExpr%%dup Strlen eq { exit } if NextNonBlankChar
-%% NextNonBlankChar dup 0 eq { pop exit } if
-%% dup 44 ne 1 index 124 ne and { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse } if
-%% pop NextNonBlankChar dup 0 eq { exit } if 124 ne { PROBLEMCONTACTBILLOU } if 1 add NextNonBlankChar 0 eq {toto} if } loop
-%% AnalyzeListOfEPostHook
-%% } def
-/AnalyzeListOfE {
- /NotFirst false def
- { NextNonBlankChar pop AnalyzeExpr
- NotFirst { EvalListOfExpr } { /NotFirst true def } ifelse
- dup Strlen eq { exit } if NextNonBlankChar
- dup 44 ne 1 index 124 ne and
- { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse }
- if pop 1 add } loop
- AnalyzeListOfEPostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% E->T|E+T
-%% STR index -> STR index+lenExpr
-/AnalyzeExpr {
- AnalyzePreHook AnalyzeTerm IsEndingExpr
- { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
- { { RollOp 1 add NextNonBlankChar pop AnalyzeTerm PreEvalHook EvalAddSub IsEndingExpr { pop exit } if } loop }
- ifelse
- AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% T->FS|T*FS
-%% STR index
-/AnalyzeTerm {
- AnalyzePreHook AnalyzeSignedFactor IsEndingTerm
- { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
- { { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor PreEvalHook EvalMulDiv IsEndingTerm { pop exit } if} loop }
- ifelse
- AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% FS -> F | +FS | -FS
-%% STR index
-/AnalyzeSignedFactor {
- AnalyzePreHook 2 copy get dup IsUnaryOp
- { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor EvalUnaryOp }
- { pop AnalyzeFactor }
- ifelse AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% F->P|F^P|P!
-%% STR index
-/AnalyzeFactor {
- AnalyzePreHook AnalyzePower IsEndingFactor
- { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
- { { dup 33 eq%% is there a ! DR 09/2011
- { pop 1 add NextNonBlankChar pop EvalFactorial }
- { RollOp 1 add NextNonBlankChar pop AnalyzePower PreEvalHook EvalPower }
- ifelse
- IsEndingFactor { pop exit } if } loop }
- ifelse AnalyzePostHook
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% P->(E)|literal
-%% STR index
-/AnalyzePower {
- %% depending of first char either a number, or a literal
- 2 copy get dup 40 eq%%an open par
- { pop 1 add NextNonBlankChar pop AnalyzeExpr 1 add NextNonBlankChar pop }
- { AnalyzeLiteral }
- ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index STR[index] -> STR index
-%/AnalyzeLiteral { IsNumber { EvalNumber } { EvalLiteral } ifelse } def
-/AnalyzeLiteral { dup IsUnaryOp exch IsNumber or { EvalNumber } { EvalLiteral } ifelse } def%%dr 09102006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% recognize + or -
-%% chr -> T/F
-/IsUnaryOp { dup 43 eq exch 45 eq or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a number can contain only : 0123456789.
-%% chr -> T/F
-/IsNumber { dup 48 ge exch dup 57 le 3 -1 roll and exch 46 eq or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index -> STR index number
-%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
-%% STR index -> STR index' number
-/ReadNumber {
- exch dup 3 -1 roll dup 3 1 roll
- %%read mantissa
- { 1 add 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsNumber not { exit } if pop } loop
- dup 101 eq exch 69 eq or
- %%% there is a "e" or "E" -> read exponant
- { 1 add 2 copy get dup IsUnaryOp
- { pop 1 add 2 copy get } if
- { IsNumber not { exit } if 1 add 2 copy get } loop }
- if
- dup 4 1 roll
- 3 -1 roll exch 1 index sub getinterval
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a number can contain only : 0123456789.
-%% chr -> T/F
-/IsCondOp { dup 30 eq exch dup 60 ge exch 62 le and or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index -> STR index number
-%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
-%% STR index -> STR index' number
-/ReadCondOp {
- NextNonBlankChar 1 index 4 1 roll
- { IsCondOp not { exit } if 1 add 2 copy get } loop
- 2 copy 5 -1 roll
- exch 1 index sub getinterval 3 1 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a literal can contain only : 0123456789.
-%% chr -> T/F
-/IsLiteral {%
- dup 48 ge exch dup 57 le 3 -1 roll and exch
- dup 65 ge exch dup 90 le 3 -1 roll and 3 -1 roll or exch
- dup 97 ge exch 122 le and or } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a literal can be of the form [a-zA-Z][a-zA-Z0-9]*\(\((Expression)\)|\(\[Expression\]\)\)?
-%% STR index -> literal STR index' nextchr
-/ReadLiteral {
- exch dup 3 -1 roll dup 3 1 roll
- %%read literal core
- { 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsLiteral not { exit } if pop 1 add } loop
- 4 1 roll dup 5 1 roll 3 -1 roll exch 1 index sub getinterval 4 1 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or a clpar
-%% STR index -> STR index STR[index] T/F
-/IsEndingExpr {%
- 2 copy dup Strlen eq
- %% if end of str is reached -> end !
- { pop pop 0 true }
- %% ending chr -> clpar, comma, |, <, >, =, !,
- {get dup dup 41 eq
- exch dup 124 eq
- exch dup 93 eq
- exch dup 44 eq
- exch dup 30 eq
- exch dup 60 ge exch 62 le and or or or or or}
- ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or a +-
-%% STR index -> STR index STR[index] T/F
-/IsEndingTerm { IsEndingExpr { true } { dup dup 43 eq exch 45 eq or } ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or */
-%% STR index -> STR index STR[index] T/F
-/IsEndingFactor { IsEndingTerm { true } { dup dup 42 eq exch 47 eq or } ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% expr is ended by end of str or ^
-%% STR index -> STR index STR[index] T/F
-/IsEndingPower { IsEndingFactor { true } { dup 94 eq } ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% STR index -> STR index STR[index]
-/NextNonBlankChar { { dup Strlen eq { 0 exit } if 2 copy get dup neBlkChar { exit } if pop 1 add } loop } bind def
-/neBlkChar { dup 32 ne exch dup 10 ne exch 9 ne and and } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%
-%% DEBUG
-/BRK {false} def
-/BRKtrue {/BRK true def} def
-/BRKStop {BRK {BRKtoto} if } def
-/BRKEvalStop {BRK exch if } def
-/BRKBRK2true {BRK {BRK2true} if } def
-/BRK2 {false} def
-/BRK2true {/BRK2 true def} def
-/BRK2Stop {BRK2 {BRK2toto} if } def/BRK {false} def
-end
-%
-%-------------------------------------------------------------------------------%
-%
-/tx@AlgToPs 12 dict def tx@AlgToPs begin
-%
-%% algExpr -> PSVector
-/AlgToPs { tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE pop pop EndingSequence end } def
-/EndingSequence { ExpressionVector aload length /end cvx exch 1 add array astore } def
-/InitParser { /ExpressionVector [ /tx@AddMathFunc cvx /begin cvx ] def dup length /Strlen exch def 0 } def
-/Strlen 0 def
-/EvalListOfExpr {} def%
-/EvalNumber {%
- ReadNumber cvr /ExpressionVector ExpressionVector aload length dup 3 add -1 roll cvx
- exch 1 add array astore def NextNonBlankChar pop } def
-/EvalAddSub {%
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
- 43 eq { /add } { /sub } ifelse cvx exch 1 add array astore def
-} def
-/EvalMulDiv {%
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
- 42 eq { /mul } { /div } ifelse cvx exch 1 add array astore def
-} def
-/EvalPower {%
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
- pop /exp cvx exch 1 add array astore def
-} def
-/EvalFactorial {% DR 09/2011
- /ExpressionVector ExpressionVector aload length
- /fact cvx exch 1 add array astore def
-} def
-/EvalLiteral {%
- ReadLiteral
- dup 40 eq%%% there is an open par -> function call
- { pop 2 index
- dup (Sum) eq { EvalSum }
- { dup (IfTE) eq { EvalCond }
- { dup (Derive) eq { pop EvalDerive }
- { pop 1 add NextNonBlankChar pop AnalyzeListOfE 2 index TrigoFunc
- /ExpressionVector ExpressionVector aload length dup 5 add -1 roll cvn cvx
- exch 1 add array astore def 1 add NextNonBlankChar pop } ifelse } ifelse} ifelse }
- { /ExpressionVector ExpressionVector aload length dup 6 add -1 roll cvn cvx exch 1 add array astore def
- dup 91 eq%%% there is an open bracket -> vector element
- { pop 1 add NextNonBlankChar pop AnalyzeExpr
- /ExpressionVector ExpressionVector aload length /cvi cvx exch /get cvx exch 2 add array astore def 1 add }
- { pop NextNonBlankChar pop }
- ifelse}
- ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% the derive function : Derive(n,f(x))
-%% firstparindex lastparindex ->
-/EvalDerive {
- %% manage the function descripiton
- 1 add ReadNumber 3 1 roll NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- 1 add NextNonBlankChar pop
- 3 -1 roll cvi
- dup 0 eq
- { pop AnalyzeExpr 3 -1 roll pop 1 add }
- { 1 sub 3 1 roll (x) exch tx@Derive begin DeriveIndexed end 4 -1 roll
- { (x) tx@Derive begin Derive end } repeat
- ExpressionVector exch /ExpressionVector [] def
- AlgToPs aload length
- /ExpressionVector 1 index 3 add -1 roll aload length dup 3 add -1 roll /l2 exch def /l1 exch def
- l1 l2 add 1 add l2 neg roll l1 l2 add array astore def 3 -1 roll pop 1 add
- 1 index length /Strlen exch def } ifelse
-} def
-/EvalSum {%
- pop 1 add NextNonBlankChar pop
- %% read the variable name
- ReadLiteral pop NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
- %% read the initial value
- 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- %% read the increment value
- 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- %% read the limit value
- 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- /ExpressionVector ExpressionVector aload length dup 7 add -3 roll 0 4 1 roll
- 5 -1 roll 4 add array astore def
- %% keep ExpressionVector for later and create a new one for internal Sum computation
- ExpressionVector 3 1 roll /ExpressionVector [ 6 -1 roll cvn /exch cvx /def cvx ] def
- 1 add NextNonBlankChar pop AnalyzeExpr
- %% add each term
- /ExpressionVector ExpressionVector aload length 1 add /add cvx exch array astore def
- /ExpressionVector 4 -1 roll aload length ExpressionVector cvx /for cvx 3 -1 roll 2 add
- array astore def 3 -1 roll pop 1 add
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Convert to radians if trigo function call
-%% (name) ->
-/TrigoFunc {
- dup (cos) eq 1 index (sin) eq or exch (tan) eq or
- { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
- array astore def
- } if
-} def
-/EvalCond {%
- pop 1 add AnalyzeCond NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
- ExpressionVector 3 1 roll /ExpressionVector [] def
- 1 add AnalyzeExpr ExpressionVector 3 1 roll /ExpressionVector [] def
- NextNonBlankChar 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
- 1 add AnalyzeExpr
- NextNonBlankChar 41 ne { ANALYZER_ERROR_missing_ending parenthesis_in_IfTE } if
- ExpressionVector
- /ExpressionVector 6 -1 roll aload length dup
- 6 add -1 roll cvx exch dup 4 add -1 roll cvx /ifelse cvx 3 -1 roll 3 add array astore def
- 1 add 3 -1 roll pop
-} def
-%% CondOp STR index
-/EvalCondOp {%
- 3 -1 roll
- dup (=) eq { /eq } {%
- dup (<) eq { /lt } {%
- dup (>) eq { /gt } {%
- dup (>=) eq { /ge } {%
- dup (<=) eq { /ge } {%
- dup (!=) eq { /ne } { ERROR_non_valid_conditional_operator }
- ifelse } ifelse } ifelse } ifelse } ifelse } ifelse
- cvx exch pop
- /ExpressionVector ExpressionVector aload length dup 3 add -1 roll exch 1 add array astore def } def
-/EvalUnaryOp {
- 3 -1 roll 45 eq { /ExpressionVector ExpressionVector aload length /neg cvx exch 1 add array astore def } if
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% H O O K S
-/AnalyzePreHook {} bind def
-/PreEvalHook {} bind def
-/AnalyzeListOfEPostHook {} bind def
-/AnalyzePostHook {} def
-/RollOp { 3 1 roll } bind def
-end %tx@CoreAnalyzerDict
-%
-%--------------------------------------------------------------------%
-%
-/tx@Derive 41 dict def tx@Derive begin
-%%increase ^^ for each function added
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% algExpr variable -> PSVector
-/Derive {%
- 10240 string 3 1 roll 0 3 1 roll
- /Variable exch def
- tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE end
-} def
-/Strlen 0 def
-/InitParser { dup length /Strlen exch def 0 } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% algExpr variable index -> PSVector
-/DeriveIndexed {%
- 3 1 roll 10240 string 3 1 roll 0 3 1 roll
- /Variable exch def
- tx@CoreAnalyzerDict begin InitParser pop 4 -1 roll AnalyzeExpr 4 -2 roll pop pop 4 -2 roll exch pop end
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u,v)'=-(u',v')
-/EvalListOfExpr {%
- 4 2 roll 2 copy 9 -1 roll dup length 4 1 roll putinterval add AddPipe
- 2 copy 7 -1 roll dup length 4 1 roll putinterval add
- 6 -2 roll pop pop
- 2 copy pop 0 6 2 roll GetIntervalNewStr 5 1 roll 2 copy 0 exch getinterval 6 1 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (-u)'=-(u')
-/EvalUnaryOp {
- 4 -2 roll 4 index (0) eq
- { (0) StrConcat 7 -1 roll pop }
- { 7 -1 roll 45 eq
- { AddSub AddOpPar true } { false } ifelse
- 3 1 roll 5 index StrConcat 3 -1 roll { AddClPar } if } ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- 7 -2 roll pop pop 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (number)'=0
-/EvalNumber { ReadNumber (0) 6 2 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u+v)'=u'+v'
-/EvalAddSub {%
- 7 index dup (0) eq
- { pop true }%% du=0 nothing added
- { dup length exch 5 index 5 index 3 -1 roll putinterval 4 -1 roll add 3 1 roll false }
- ifelse
- 5 index dup (0) eq
- { pop { (0) } { 4 -2 roll 2 copy pop 0 6 2 roll GetIntervalNewStr } ifelse }%%dv=0
- { exch
- { 5 -2 roll 7 index 45 eq { AddSub } if false } %%nothing yet added
- { 5 -2 roll 7 index 43 eq%%something yet added
- { AddAdd false } { AddSub AddOpPar true } ifelse }
- ifelse 11 1 roll
- 3 -1 roll StrConcat 10 -1 roll { AddClPar } if
- 2 copy pop 0 6 2 roll GetIntervalNewStr }
- ifelse
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u*v)' or (u/v)'
-/EvalMulDiv { 6 index 42 eq {EvalMul} {EvalDiv} ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u*v)'=u'*v+u*v'
-/EvalMul {%
- 4 -2 roll 7 index dup (0) eq
- { pop false }%%du=0
- { (1) eq%%du=1
- { false }
- { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
- 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if
- true }%%du!=0
- ifelse
- 5 1 roll 5 index (0) eq
- { 5 -1 roll not { (0) StrConcat } if }%%dv=0
- { 5 -1 roll { AddAdd } if
- 4 index (1) eq
- { 8 index StrConcat }
- { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
- ifelse
- }%%dv!=0
- ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u/v)'=(u'*v-u*v')/v^2
-/EvalDiv {%
- 4 -2 roll
- 4 index (0) eq%%dv=0 -> u'/v
- { 7 index (0) eq { (0) StrConcat } { AddOpPar 7 index StrConcat AddClPar AddDiv 5 index StrConcat } ifelse }
- { 7 index dup (0) eq
- { pop }%%du=0
- { (1) eq%%du=1
- { false }
- { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
- 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if}%%du!=0
- ifelse
- AddSub
- 4 index (1) eq
- { 8 index StrConcat }
- { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
- ifelse
- %}%%dv!=0
- 2 copy GetIntervalNewStr 3 1 roll pop 0 AddOpPar 3 -1 roll StrConcat AddClPar
- AddDiv AddOpPar 5 index StrConcat AddClPar 2 copy (^2) putinterval 2 add }
- ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% str1 index str2 -> str1 index
-/StrConcat { dup length 4 2 roll 2 copy 6 -1 roll putinterval 3 -1 roll add } bind def
-/GetIntervalNewStr { 0 exch getinterval dup length string copy } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (u^v)'=(u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
-/EvalPower {%
- 4 -2 roll 7 index (0) eq
- {%%if du=0 then (u^v)'=v'ln(u)u^v
- 4 index (0) eq
- { (0) StrConcat }%%if dv=0 then (u^v)'=0
- { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if
- 8 index (e) ne { (ln\() StrConcat 8 index StrConcat (\)*) StrConcat } if
- AddOpPar 8 index StrConcat (\)^\() StrConcat 5 index StrConcat AddClPar } ifelse
- }
- {%%du!=0
- 4 index (0) eq
- {%%if dv=0 then (u^v)'=vu'u^(v-1)
- 5 index dup IsStrNumber
- { dup (0) eq
- { StrConcat }
- { dup dup (1) eq exch (1.0) eq or
- { StrConcat }
- { StrConcat
- 7 index dup (1) ne exch (1.0) ne and%%%dr 09102006 insert du if <> 1
- { (*\() StrConcat 7 index StrConcat (\)) StrConcat } if%%%dr 09102006
- (*\() StrConcat 8 index StrConcat (\)) StrConcat
- 5 index dup dup (2) eq exch (2.0) eq or
- { pop } { cvr 1 sub 20 string cvs 3 1 roll (^) StrConcat 3 -1 roll StrConcat } ifelse } ifelse } ifelse }
- { pop AddOpPar 5 index StrConcat (\)*\() StrConcat 8 index StrConcat (\)^\() StrConcat
- 5 index StrConcat (-1\)) StrConcat } ifelse
- }
- {%%if dv!=0 and du!=0 then (u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
- 7 index (1) ne { AddOpPar 7 index StrConcat (\)*) StrConcat } if
- AddOpPar 5 index StrConcat (\)*\() StrConcat
- 8 index StrConcat (\)^\() StrConcat
- 5 index StrConcat (-1\)+\() StrConcat
- 4 index (1) ne { 4 index StrConcat (\)*\() StrConcat } if
- 8 index StrConcat (\)^\() StrConcat
- 5 index StrConcat (\)*ln\() StrConcat
- 8 index StrConcat AddClPar
- } ifelse
- } ifelse
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% No derivative for factorial ! only cst => null derivative
-/EvalFactorial {% DR 09/2011
- 4 index (0) eq
- { (0) mark 8 -2 roll cleartomark 2 index 7 index dup 4 index exch sub getinterval exch 6 2 roll }
- { DERIVATIVE_ENGINE_ERROR_no_variable_in_factorial } ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% str -> true/false
-/IsStrNumber {%
- true exch
- { dup 48 lt exch dup 57 gt 3 -1 roll or
- exch dup 46 ne%%.
- exch dup 43 ne%%+
- exch 45 ne%%-
- and and and { pop false } if } forall
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% literal switch -> func call, vector, variables
-/EvalLiteral {%
- ReadLiteral dup 40 eq%%% there is an open par -> function call
- { pop (EvalFunc_ ) 9 4 index StrConcat 0 exch getinterval cvn cvx exec }
- { dup 91 eq%%% there is an open bracket -> vector element
- { DERIVATIVE_ENGINE_ERROR_vector_not_yet_implemented }
- { pop EvalVariable }
- ifelse }
- ifelse
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% first last parpos Expr[first:parpos-1] ->
-/EvalVariable { 2 index Variable eq { (1) } { (0) } ifelse 4 -1 roll exch 6 2 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% (f(u))'=u'f'(u)
-/EvalFunc {
- 4 2 roll 4 index (1) ne
- { AddOpPar 4 index StrConcat (\)*) StrConcat } if
- (Eval ) 4 8 index StrConcat 0 exch getinterval cvn cvx exec
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Func derivative -> Eval<func>
-/EvalFunc_sin {%
- PreCommonFunc
- { (cos\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_cos {%
- PreCommonFunc
- { (\(-sin\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_tan {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/cos\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_asin {%
- PreCommonFunc
- { (1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_acos {%
- PreCommonFunc
- { (-1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_atg {%
- PreCommonFunc
- { (1/\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_ln {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_exp {%
- PreCommonFunc
- { (exp\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_EXP {%
- PreCommonFunc
- { (EXP\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_sqrt {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\(2*sqrt\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Fact {%
- PreCommonFunc { DERIVATIVE_ENGINE_ERROR_no_variable_expression_in_Fact } if
- PostCommonFunc } def
-/EvalFunc_sh {%
- PreCommonFunc
- { (ch\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_ch {%
- PreCommonFunc
- { (sh\() StrConcat 5 index StrConcat AddClPar } if
- PostCommonFunc } def
-/EvalFunc_th {%
- PreCommonFunc
- { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/ch\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Argsh {%
- PreCommonFunc
- { (1/sqrt\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Argch {%
- PreCommonFunc
- { (1/sqrt\(\() StrConcat 5 index StrConcat (\)^2-1\)\)) StrConcat } if
- PostCommonFunc } def
-/EvalFunc_Argth {%
- PreCommonFunc
- { (1/\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
- PostCommonFunc } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-/PreCommonFunc {
- 1 add NextNonBlankChar pop 3 -1 roll 5 1 roll AnalyzeExpr 1 add NextNonBlankChar pop
- 4 2 roll 4 index (0) eq
- { (0) StrConcat false }
- { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if true } ifelse
-} def
-/PostCommonFunc {
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-/EvalFunc_Derive {%
- 1 add ReadNumber cvi 1 add dup cvr log 1 add cvi string cvs
- 4 -1 roll pop 5 1 roll 1 add NextNonBlankChar pop AnalyzeExpr 1 add
- 4 -2 roll (Derive\() StrConcat 7 -1 roll StrConcat (,) StrConcat 6 -1 roll StrConcat AddClPar
- 2 copy pop 0 6 2 roll GetIntervalNewStr 6 -1 roll pop 2 index 6 index dup 4 index exch sub getinterval
- exch 6 2 roll } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% literal switch -> func call, vector, variables
-/EvalFunc_Sum {%
- 1 add NextNonBlankChar pop
- %% read the variable name
- ReadLiteral pop 3 -1 roll pop NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
- %% read the initial value
- 1 add NextNonBlankChar pop ReadNumber pop
- 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
- %% read the increment value
- 1 add NextNonBlankChar pop ReadNumber pop
- 2 copy get 44 ne { ANALYZER_ERROR_missing_third_comma_in_Sum } if
- %% read the limit value
- 1 add NextNonBlankChar pop ReadNumber pop
- 2 copy get 44 ne { ANALYZER_ERROR_missing_fourth_comma_in_Sum } if
- 1 add NextNonBlankChar pop dup 6 1 roll 3 -1 roll pop AnalyzeExpr 1 add NextNonBlankChar pop
- 4 -2 roll 3 index 8 index dup 9 index exch sub getinterval StrConcat
- 4 index StrConcat AddClPar
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% literal switch -> func call, vector, variables
-/EvalFunc_IfTE {%
- 3 -1 roll pop 1 add NextNonBlankChar pop SkipCond
- NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
- 1 add NextNonBlankChar pop dup 5 1 roll
- AnalyzeExpr NextNonBlankChar
- 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
- 1 add NextNonBlankChar pop
- AnalyzeExpr 1 add NextNonBlankChar pop
- 4 -2 roll 3 index 10 index dup 11 index exch sub getinterval StrConcat
- 6 index StrConcat (,) StrConcat 4 index StrConcat AddClPar
- 2 copy pop 0 6 2 roll GetIntervalNewStr
- mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% advance in str until a comma is found (no error detection!)
-%% str index -> str index'
-/SkipCond { { 1 add 2 copy get 44 eq {exit } if } loop } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Convert to radians if trigo function call
-%% (name) ->
-/TrigoFunc {
- dup (cos) eq 1 index (sin) eq or exch (tan) eq or
- { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
- array astore def
- } if
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% No derivative for condition....
-/EvalCondOp { 3 -1 roll pop } bind def
-/PutIntervalOneAdd {putinterval 1 add} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add open parenthesis in string at the given index
-%% str index -> str index+1
-/AddOpPar {2 copy (\() PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add close parenthesis in string at the given index
-%% str index -> str index+1
-/AddClPar {2 copy (\)) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add 0 in string at the given index
-%% str index -> str index+1
-/AddZero {2 copy (0) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add open parenthesis in string at the given index
-%% str index -> str index+1
-/AddMul {2 copy (*) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add open parenthesis in string at the given index
-%% str index -> str index+1
-/AddDiv {2 copy (/) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add a plus sign in string at the given index
-%% str index -> str index+1
-/AddAdd {2 copy (+) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add a minus sign in string at the given index
-%% str index -> str index+1
-/AddSub {2 copy (-) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Add a pipe sign in string at the given index
-%% str index -> str index+1
-/AddPipe {2 copy (|) PutIntervalOneAdd} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% H O O K S
-/AnalyzePreHook { dup 5 1 roll } bind def
-/PreEvalHook {} def
-/AnalyzePostHook { 7 -1 roll pop } bind def
-/AnalyzeListOfEPostHook { 6 -1 roll mark 6 1 roll cleartomark } bind def
-/RollOp { 5 1 roll } bind def
-end%%%tx@CoreAnalyzerDict
-/tx@AddMathFunc 12 dict def tx@AddMathFunc begin
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% NEW FUNC
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% function arcsine in radians asin(x)=atan(x/sqrt(1-x^2))
-%% x -> theta
-/asin {%
- dup abs 1 gt { EQDFasinrangeerror } if
- dup dup dup mul 1 exch sub sqrt atan exch 0 lt { 360 sub } if DegtoRad
-} def
-%% function arccosine in radians acos(x)=atan(sqrt(1-x^2)/x)
-%% x -> theta
-/acos {%
- dup abs 1 gt { EQDFacosrangeerror } if
- dup dup mul 1 exch sub sqrt exch atan DegtoRad
-} def
-%% function arctangent in radians
-%% x -> theta
-/atg { 1 atan dup 90 gt { 360 sub } if DegtoRad } bind def
-%% HYPERBOLIC FUNCTIONS
-/sh { dup Ex exch neg Ex sub 2 div } def
-/ch { dup Ex exch neg Ex add 2 div } def
-/th { dup sh exch ch div } def
-/Argsh { dup dup mul 1 add sqrt add ln } def
-/Argch { dup dup mul 1 sub sqrt add ln } def
-/Argth { dup 1 add exch 1 exch sub div ln 2 div } def
-%% modified exponential funtion for 0
-%% x n -> x^n
-/Exp { dup 0 eq { pop pop 1 } { exp } ifelse } bind def
-%% modified exponential funtion for 0
-%% x -> e^x
-/Ex { Euler exch exp } bind def
-%%
-%% factorial function
-%% n -> n!
-/Fact { 1 exch 2 exch 1 exch { mul } for } bind def
-/fact { Fact } bind def
-/! { Fact } bind def
-end
-%
-% END pst-algparser.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-tools.pro 0 0
-% $Id: pst-tools.pro 622 2012-01-01 15:36:14Z herbert $
-%
-%% PostScript tools prologue for pstricks.tex.
-%% Version 0.02, 2012/01/01
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%
-%
-/Pi2 1.57079632679489661925640 def
-/factorial { % n on stack, returns n!
- dup 0 eq { 1 }{
- dup 1 gt { dup 1 sub factorial mul } if }
- ifelse } def
-%
-/MoverN { % m n on stack, returns the binomial coefficient m over n
- 2 dict begin
- /n exch def /m exch def
- n 0 eq { 1 }{
- m n eq { 1 }{
- m factorial n factorial m n sub factorial mul div } ifelse } ifelse
- end
-} def
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% subroutines for complex numbers, given as an array [a b]
-% which is a+bi = Real+i Imag
-%
-/cxadd { % [a1 b1] [a2 b2] = [a1+a2 b1+b2]
- dup 0 get % [a1 b1] [a2 b2] a2
- 3 -1 roll % [a2 b2] a2 [a1 b1]
- dup 0 get % [a2 b2] a2 [a1 b1] a1
- 3 -1 roll % [a2 b2] [a1 b1] a1 a2
- add % [a2 b2] [a1 b1] a1+a2
- 3 1 roll % a1+a2 [a2 b2] [a1 b1]
- 1 get % a1+a2 [a2 b2] b1
- exch 1 get % a1+a2 b1 b2
- add 2 array astore
-} def
-%
-/cxneg { % [a b]
- dup 1 get % [a b] b
- exch 0 get % b a
- neg exch neg % -a -b
- 2 array astore
-} def
-%
-/cxsub { cxneg cxadd } def % same as negative addition
-%
-% [a1 b1][a2 b2] = [a1a2-b1b2 a1b2+b1a2] = [a3 b3]
-/cxmul { % [a1 b1] [a2 b2]
- dup 0 get % [a1 b1] [a2 b2] a2
- exch 1 get % [a1 b1] a2 b2
- 3 -1 roll % a2 b2 [a1 b1]
- dup 0 get % a2 b2 [a1 b1] a1
- exch 1 get % a2 b2 a1 b1
- dup % a2 b2 a1 b1 b1
- 5 -1 roll dup % b2 a1 b1 b1 a2 a2
- 3 1 roll mul % b2 a1 b1 a2 b1a2
- 5 -2 roll dup % b1 a2 b1a2 b2 a1 a1
- 3 -1 roll dup % b1 a2 b1a2 a1 a1 b2 b2
- 3 1 roll mul % b1 a2 b1a2 a1 b2 a1b2
- 4 -1 roll add % b1 a2 a1 b2 b3
- 4 2 roll mul % b1 b2 b3 a1a2
- 4 2 roll mul sub % b3 a3
- exch 2 array astore
-} def
-%
-% [a b]^2 = [a^2-b^2 2ab] = [a2 b2]
-/cxsqr { % [a b] square root
- dup 0 get exch 1 get % a b
- dup dup mul % a b b^2
- 3 -1 roll % b b^2 a
- dup dup mul % b b^2 a a^2
- 3 -1 roll sub % b a a2
- 3 1 roll mul 2 mul % a2 b2
- 2 array astore
-} def
-%
-/cxsqrt { % [a b]
-% dup cxnorm sqrt /r exch def
-% cxarg 2 div RadtoDeg dup cos r mul exch sin r mul cxmake2
- cxlog % log[a b]
- 2 cxrdiv % log[a b]/2
- aload pop exch % b a
- 2.781 exch exp % b exp(a)
- exch cxconv exch % [Re +iIm] exp(a)
- cxrmul %
-} def
-%
-/cxarg { % [a b]
- aload pop % a b
- exch atan % arctan b/a
- DegtoRad % arg(z)=atan(b/a)
-} def
-%
-% log[a b] = [a^2-b^2 2ab] = [a2 b2]
-/cxlog { % [a b]
- dup % [a b][a b]
- cxnorm % [a b] |z|
- log % [a b] log|z|
- exch % log|z|[a b]
- cxarg % log|z| Theta
- cxmake2 % [log|z| Theta]
-} def
-%
-% square of magnitude of complex number
-/cxnorm2 { % [a b]
- dup 0 get exch 1 get % a b
- dup mul % a b^2
- exch dup mul add % a^2+b^2
-} def
-%
-/cxnorm { % [a b]
- cxnorm2 sqrt
-} def
-%
-/cxconj { % conjugent complex
- dup 0 get exch 1 get % a b
- neg 2 array astore % [a -b]
-} def
-%
-/cxre { 0 get } def % real value
-/cxim { 1 get } def % imag value
-%
-% 1/[a b] = ([a -b]/(a^2+b^2)
-/cxrecip { % [a b]
- dup cxnorm2 exch % n2 [a b]
- dup 0 get exch 1 get % n2 a b
- 3 -1 roll % a b n2
- dup % a b n2 n2
- 4 -1 roll exch div % b n2 a/n2
- 3 1 roll div % a/n2 b/n2
- neg 2 array astore
-} def
-%
-/cxmake1 { 0 2 array astore } def % make a complex number, real given
-/cxmake2 { 2 array astore } def % dito, both given
-%
-/cxdiv { cxrecip cxmul } def
-%
-% multiplikation by a real number
-/cxrmul { % [a b] r
- exch aload pop % r a b
- 3 -1 roll dup % a b r r
- 3 1 roll mul % a r b*r
- 3 1 roll mul % b*r a*r
- exch 2 array astore % [a*r b*r]
-} def
-%
-% division by a real number
-/cxrdiv { % [a b] r
- 1 exch div % [a b] 1/r
- cxrmul
-} def
-%
-% exp(i theta) = cos(theta)+i sin(theta) polar<->cartesian
-/cxconv { % theta
- RadtoDeg dup sin exch cos cxmake2
-} def
-
-%%%%% ### bubblesort ###
-%% syntax : array bubblesort --> array2 trie par ordre croissant
-%% code de Bill Casselman
-%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/
-/bubblesort { % on stack must be an array [ ... ]
-4 dict begin
- /a exch def
- /n a length 1 sub def
- n 0 gt {
- % at this point only the n+1 items in the bottom of a remain to
- % the sorted largest item in that blocks is to be moved up into
- % position n
- n {
- 0 1 n 1 sub {
- /i exch def
- a i get a i 1 add get gt {
- % if a[i] > a[i+1] swap a[i] and a[i+1]
- a i 1 add
- a i get
- a i a i 1 add get
- % set new a[i] = old a[i+1]
- put
- % set new a[i+1] = old a[i]
- put
- } if
- } for
- /n n 1 sub def
- } repeat
- } if
- a % return the sorted array
-end
-} def
-%
-/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422
- 0 1 index { length add } forall
- string
- 0 3 2 roll
- { 3 copy putinterval length add }forall
- pop
-} bind def
-%
-/dot2comma {% on stack a string (...)
- 2 dict begin
- /Output exch def
- 0 1 Output length 1 sub {
- /Index exch def
- Output Index get 46 eq { Output Index 44 put } if
- } for
- Output
- end
-} def
-%
-%-----------------------------------------------------------------------------%
-% END pst-tools.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-dots.pro 0 0
-% $Id: pst-dots.pro 130 2009-08-27 08:55:03Z herbert $
-%
-%% PostScript prologue for pstricks.tex.
-%% Version 2.02, 2009/06/16
-%%
-%% For distribution, see pstricks.tex.
-%%
-%% Timothy Van Zandt <tvz@Princeton.EDU>
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%%
-%% Modified by Etienne Riga - Dec. 16, 1999
-%% Modified by Etienne Riga - 2005/01/01 (er)
-%% to add /Diamond, /SolidDiamond and /BoldDiamond
-%% Modified by Herbert Voss (hv) - 2008/04/17
-%
-10 dict dup begin % hold local
- /FontType 3 def
- /FontMatrix [.001 0 0 .001 0 0] def
-% /FontBBox [-571.5 -742.5 571.5 742.5] def % changed to next line 20060616 hv
- /FontBBox [-1000 -1000 1000 1000] def % See end of file in /BuildGlyph
- /Encoding 256 array def
- 0 1 255 {Encoding exch /.notdef put} for % fill the array with /.notdef
- Encoding % replace with given dot names
- dup (b) 0 get /Bullet put % get the numerical position of b in ASCII
-% % and save /Bullet at this place in Encoding
- dup (c) 0 get /Circle put
- dup (C) 0 get /BoldCircle put % 67
- dup (u) 0 get /SolidTriangle put
- dup (t) 0 get /Triangle put
- dup (T) 0 get /BoldTriangle put
- dup (r) 0 get /SolidSquare put
- dup (s) 0 get /Square put
- dup (S) 0 get /BoldSquare put
- dup (q) 0 get /SolidPentagon put
- dup (p) 0 get /Pentagon put
- dup (P) 0 get /BoldPentagon put
-%%%
- dup (k) 0 get /Asterisk put
- dup (K) 0 get /BoldAsterisk put
- dup (J) 0 get /SolidAsterisk put
- dup (h) 0 get /Hexagon put
- dup (H) 0 get /BoldHexagon put
- dup (G) 0 get /SolidHexagon put
- dup (f) 0 get /Octogon put % 2008-04-18 hv
- dup (F) 0 get /BoldOctogon put % 2008-04-18 hv
- dup (g) 0 get /SolidOctogon put % 2008-04-18 hv
- dup (a) 0 get /Add put
- dup (A) 0 get /BoldAdd put % 65
- dup (x) 0 get /Mul put
- dup (X) 0 get /BoldMul put
- dup (m) 0 get /Oplus put
- dup (M) 0 get /BOplus put
- dup (e) 0 get /SolidOplus put
- dup (n) 0 get /Otimes put
- dup (N) 0 get /BOtimes put
- dup (E) 0 get /SolidOtimes put
- dup (i) 0 get /Bar put
- dup (I) 0 get /BoldBar put
- dup (l) 0 get /SolidDiamond put
- dup (d) 0 get /Diamond put
- (D) 0 get /BoldDiamond put
-%%%
-/CharProcs 47 dict def
-CharProcs begin
- /CirclePath {0 0 500 0 360 arc closepath} def
- /Bullet {CirclePath fill} def
- /Circle {CirclePath .9 .9 scale CirclePath eofill} def
- /BoldCircle {CirclePath .8 .8 scale CirclePath eofill} def
- /TrianglePath {0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath} def
- /SolidTriangle {TrianglePath fill} def
- /Triangle {TrianglePath .85 .85 scale TrianglePath eofill} def
- /BoldTriangle {TrianglePath .7 .7 scale TrianglePath eofill} def
- /SquarePath {-450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto closepath} def
- /SolidSquare {SquarePath fill} def
- /Square {SquarePath .89 .89 scale SquarePath eofill} def
- /BoldSquare {SquarePath .78 .78 scale SquarePath eofill} def
- /PentagonPath {
- -337.8 -465 moveto 337.8 -465 lineto 546.6 177.6 lineto
- 0 574.7 lineto -546.6 177.6 lineto closepath
- } def
- /SolidPentagon {PentagonPath fill} def
- /Pentagon {PentagonPath .89 .89 scale PentagonPath eofill} def
- /BoldPentagon {PentagonPath .78 .78 scale PentagonPath eofill} def
-%-------------- hv begin 2004/07/25 from: er 2003/03/24
- /HexagonPath {
- 0 550 moveto -476 275 lineto -476 -275 lineto
- 0 -550 lineto 476 -275 lineto 476 275 lineto closepath
- } def
- /SolidHexagon {HexagonPath fill} def
- /Hexagon {HexagonPath .89 .89 scale HexagonPath eofill} def
- /BoldHexagon {HexagonPath .79 .79 scale HexagonPath eofill} def
-% 2008-04-18 hv
- /OctogonPath {
- 550 dup 22.5 tan mul dup neg dup add /xMove exch def
- exch moveto 7 { xMove 0 rlineto 45 rotate } repeat closepath } def
- /SolidOctogon { OctogonPath fill } def
- /Octogon { OctogonPath .89 .89 scale OctogonPath eofill } def
- /BoldOctogon { OctogonPath .79 .79 scale OctogonPath eofill } def
-%
- /AsteriskPath {
- 20 0 moveto 10 250 180 500 0 500 curveto
- -180 500 -10 250 -20 0 curveto closepath
- } def
- /Asterisk {
- AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath
- 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath fill
- } def
-%
- /Basterp {50 250 220 500 0 500 curveto -220 500 -50 250 -50 30 cos 100 mul curveto} def
- /BoldAsteriskPath {
- 50 30 cos 100 mul moveto Basterp
- 60 rotate Basterp 60 rotate Basterp
- 60 rotate Basterp 60 rotate Basterp
- 60 rotate Basterp closepath
- } def
- /BoldAsterisk {BoldAsteriskPath fill} def
- /SolidAsterisk {CirclePath .9 .9 scale BoldAsteriskPath eofill} def
- /CrossPath {
- 40 550 moveto -40 550 lineto -40 40 lineto -550 40 lineto
- -550 -40 lineto -40 -40 lineto -40 -550 lineto 40 -550 lineto
- 40 -40 lineto 550 -40 lineto 550 40 lineto 40 40 lineto closepath
- } def
- /BoldCrossPath {80 550 moveto -80 550 lineto -80 80 lineto -550 80 lineto
- -550 -80 lineto -80 -80 lineto -80 -550 lineto 80 -550 lineto
- 80 -80 lineto 550 -80 lineto 550 80 lineto 80 80 lineto closepath
- } def
- /Add {CrossPath fill} def
- /Mul {45 rotate CrossPath fill} def
- /BoldAdd {BoldCrossPath fill} def
- /BoldMul {45 rotate BoldCrossPath fill} def
- /Oplus {CirclePath .9 .9 scale CirclePath eofill .775 .775 scale CrossPath fill } def
- /SolidOplus {CirclePath .775 .775 scale BoldCrossPath eofill} def
- /BOplus {CirclePath .8 .8 scale CirclePath eofill .775 .775 scale BoldCrossPath fill} def
- /Otimes {CirclePath .9 .9 scale CirclePath eofill 45 rotate .775 .775 scale CrossPath fill} def
- /BOtimes {CirclePath .8 .8 scale CirclePath eofill 45 rotate .775 .775 scale BoldCrossPath fill } def
- /SolidOtimes {CirclePath 45 rotate .775 .775 scale BoldCrossPath eofill} def
- /BarPath {40 660 moveto -40 660 lineto -40 -660 lineto 40 -660 lineto closepath} def
- /Bar {BarPath fill} def
- /BoldBarPath {80 660 moveto -80 660 lineto -80 -660 lineto 80 -660 lineto closepath} def
- /BoldBar {BoldBarPath fill} def
- /DiamondPath {0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto 428.5 0 lineto closepath} def
- /SolidDiamond {DiamondPath fill} def
- /Diamond {DiamondPath .865 .865 scale DiamondPath eofill} def
- /BoldDiamond {DiamondPath .73 .73 scale DiamondPath eofill} def
-%%%
- /.notdef { } def
-end
-%
-/BuildGlyph {
- exch
- begin
-% Metrics 1 index get exec 0
- 0 0
-% BBoxes 3 index get exec
- -1000 -1000 1000 1000
-% -571.5 -742.5 571.5 742.5
- setcachedevice
- CharProcs begin load exec end
- end
-} def
-%
-/BuildChar {
- 1 index /Encoding get exch get
- 1 index /BuildGlyph get exec
-} bind def
-%
-end
-/PSTricksDotFont exch definefont pop
-%
-%% end
-
-%%EndProcSet
-%%BeginProcSet: pst-node.pro 0 0
-% $Id: pst-node.pro 645 2012-02-12 09:09:51Z herbert $
-%%
-%% PostScript prologue for pst-node.tex.
-%% Version 1.13, 2011/11/21.
-%%
-%% This program can be redistributed and/or modified under the terms
-%% of the LaTeX Project Public License Distributed from CTAN archives
-%% in directory macros/latex/base/lppl.txt.
-%
-/tx@NodeDict 400 dict def tx@NodeDict begin
-tx@Dict begin % from main pstricks dict
- /T /translate load def
- /CP /currentpoint load def
-end
-/NewNode { % on stack: { x y } boolean N@name type InitXnode
- gsave
- NodeScale % a bugfix for xelatex, it's empty for dvips
- /next exch def % { x y } boolean N@name type
- dict dup % { x y } boolean N@name dict dict
- 3 1 roll def % { x y } boolean dict N@name dict def
- exch { dup 3 1 roll def } if % { x y } dict boolean
- begin % { x y } dict begin
- tx@Dict begin
- STV CP T exec % set scaling
- end
- /NodeMtrx CM def % save CM
- next % InitXNode
- end
- grestore
-} def
-%
-/InitPnode {
- /Y ED /X ED
- /NodePos { NodeSep Cos mul NodeSep Sin mul } def
-} def
-%
-/InitCnode {
- /r ED /Y ED /X ED
- /NodePos { NodeSep r add dup Cos mul exch Sin mul } def
-} def
-%
-/GetRnodePos {
- Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def } ifelse
- Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } ifelse
- dx Sin mul abs dy
- Cos mul abs gt { dy Cos mul Sin div dy } { dx dup Sin mul Cos Div } ifelse
-} def
-%
-/InitRnode {
- /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub /u ED
- /NodePos { GetRnodePos } def
-} def
-%
-/DiaNodePos {
- w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup
- Cos mul exch Sin mul
-} def
-%
-/TriNodePos {
- Sin s lt
- { d NodeSep sub dup Cos mul Sin Div exch }
- { w h mul w Sin mul h Cos abs mul add Div
- NodeSep add dup Cos mul exch Sin mul
- } ifelse
-} def
-%
-/InitTriNode {
- sub 2 div exch
- 2 div exch
- 2 copy T
- 2 copy 4 index index /d ED
- pop pop pop pop
- -90 mul rotate
- /NodeMtrx CM def
- /X 0 def /Y 0 def
- d sub abs neg /d ED
- d add /h ED
- 2 div h mul h d sub Div /w ED
- /s d w Atan sin def
- /NodePos { TriNodePos } def
-} def
-%
-/OvalNodePos {
- /ww w NodeSep add def
- /hh h NodeSep add def
- Sin ww mul Cos hh mul Atan dup cos ww mul exch sin hh mul
-} def
-%
-/GetCenter { begin X Y NodeMtrx transform CM itransform end } def
-%
-/XYPos {
- dup sin exch cos Do
- /Cos ED /Sin ED /Dist ED
- Cos 0 gt
- { Dist Dist Sin mul Cos div }
- { Cos 0 lt
- { Dist neg Dist Sin mul Cos div neg }
- { 0 Dist Sin mul } ifelse
- } ifelse
- Do
-} def
-%
-/GetEdge {
- dup 0 eq
- { pop begin 1 0 NodeMtrx dtransform
- CM idtransform
- exch atan sub
- dup
- sin /Sin ED
- cos /Cos ED
- /NodeSep ED
- NodePos NodeMtrx dtransform CM idtransform end }
- { 1 eq {{exch}} {{}} ifelse /Do ED pop XYPos } ifelse
-} def
-%
-/AddOffset {
- 1 index 0 eq
- { pop pop }
- { 2 copy 5 2 roll cos mul add 4 1 roll sin mul sub exch } ifelse
-} def
-%
-/GetEdgeA {
- NodeSepA AngleA NodeA NodeSepTypeA GetEdge
- OffsetA AngleA AddOffset
- yA add /yA1 ED
- xA add /xA1 ED
-} def
-%
-/GetEdgeB {
- NodeSepB AngleB NodeB NodeSepTypeB GetEdge
- OffsetB AngleB AddOffset
- yB add /yB1 ED
- xB add /xB1 ED
-} def
-%
-/GetArmA {
- ArmTypeA 0 eq
- { /xA2 ArmA AngleA cos mul xA1 add def
- /yA2 ArmA AngleA sin mul yA1 add def }
- { ArmTypeA 1 eq {{exch}} {{}} ifelse
- /Do ED
- ArmA AngleA XYPos OffsetA AngleA AddOffset
- yA add /yA2 ED
- xA add /xA2 ED } ifelse
-} def
-%
-/GetArmB {
- ArmTypeB 0 eq
- { /xB2 ArmB AngleB cos mul xB1 add def
- /yB2 ArmB AngleB sin mul yB1 add def }
- { ArmTypeB 1 eq {{exch}} {{}} ifelse
- /Do ED
- ArmB AngleB XYPos OffsetB AngleB AddOffset
- yB add /yB2 ED
- xB add /xB2 ED } ifelse
-} def
-%
-/InitNC {
- /b ED /a ED % second and first node
- /NodeSepTypeB ED /NodeSepTypeA ED
- /NodeSepB ED /NodeSepA ED
- /OffsetB ED /OffsetA ED
- tx@NodeDict a known tx@NodeDict b known and dup {
- /NodeA a load def
- /NodeB b load def
- NodeA GetCenter /yA ED /xA ED
- NodeB GetCenter /yB ED /xB ED } if
-} def
-%
-/LPutLine {
- 4 copy
- 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED
- 1 t sub mul
- 3 1 roll 1 t sub mul
- 4 1 roll t mul add /Y ED
- t mul add /X ED
-} def
-%
-/LPutLines {
- mark LPutVar counttomark 2 div 1 sub /n ED
-% t floor dup n gt
- t floor dup n ge % to allow npos<= hv 2008-08-14
- { pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse
- cvi 2 mul { pop } repeat
- LPutLine
- cleartomark
-} def
-%
-/BezierMidpoint {
- /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED /t ED
- /cx x1 x0 sub 3 mul def
- /cy y1 y0 sub 3 mul def
- /bx x2 x1 sub 3 mul cx sub def
- /by y2 y1 sub 3 mul cy sub def
- /ax x3 x0 sub cx sub bx sub def
- /ay y3 y0 sub cy sub by sub def
- ax t 3 exp mul bx t t mul mul add
- cx t mul add x0 add ay t 3 exp mul
- by t t mul mul add cy t mul add
- y0 add 3 ay t t mul mul mul 2
- by t mul mul add cy add 3 ax t t mul mul mul
- 2 bx t mul mul add cx add atan /NAngle ED
- /Y ED /X ED
-} def
-%
-/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def
-} def
-/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def
-/NAngle yyB yyA sub xxB xxA sub Atan def } def
-/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def
-/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def
-} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit
-} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd
-} def
-/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def
-} def
-/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def
-/NAngle yyB yyA sub xxB xxA sub Atan def } def
-/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def
-/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def
-} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check {
-exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark
-VPosEnd } def
-/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2
-roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx
-def grestore exec /LPutVar /SaveLPutVar load def } def
-/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def
-GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos {
-LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos {
-LPutVar VPutLine } def LPutVar } def
-%
-/NCLine {
- NCCoor
- tx@Dict begin
- ArrowA CP 4 2 roll
- ArrowB
- lineto pop pop
- end
-} def
-%
-/NCLines {
- false NArray
- n 0 eq
- { NCLine }
- { 2 copy yA sub exch xA sub Atan /AngleA ED
- n 2 mul dup index exch index yB sub exch xB sub
- Atan /AngleB ED
- GetEdgeA GetEdgeB
- /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 yA1 ] cvx def
- mark LPutVar
- tx@Dict begin false Line end
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
- } ifelse
-} def
-%
-/NCCurve {
- GetEdgeA
- GetEdgeB
- xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1
-roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA
-GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict
-begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ]
-cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines
-} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def
-%
-/NCAngles {
- GetEdgeA GetEdgeB GetArmA GetArmB
- /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx transform pop
- xB2 yB2 mtrx transform exch pop
- mtrx itransform
- /y0 ED /x0 ED
- mark ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 x0 y0 xA2 yA2
- ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def } def
-%
-/NCAngle {
- GetEdgeA GetEdgeB GetArmB
- /mtrx AngleA matrix rotate def
- xB2 yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
- /y0 ED /x0 ED
- mark
- ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 x0 y0 xA1 yA1
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-} def
-%
-/NCBar {
- GetEdgeA GetEdgeB GetArmA GetArmB
- /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx itransform pop
- xB2 yB2 mtrx itransform pop
- sub dup 0 mtrx transform
- 3 -1 roll 0 gt
- { /yB2 exch yB2 add def /xB2 exch xB2 add def }
- { /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse
- mark
- ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-} def
-%
-/NCDiag {
- /lineAngle ED
- GetEdgeA GetEdgeB GetArmA GetArmB mark
- lineAngle abs 0 gt {
- /xTemp xA2 10 add def
- /yTemp yA2 lineAngle dup sin exch cos div 10 mul add def
- /dY1 yTemp yA2 sub def
- /dX1 xTemp xA2 sub def
- /dY2 yB2 yB1 sub def
- /dX2 xB2 xB1 sub def
- dX1 abs 0.01 lt {
- /m2 dY2 dX2 div def
- /xB2 xA2 def
- /yB2 xA2 xB1 sub m2 mul yB1 add def
- }{
- dX2 abs 0.01 lt {
- /m1 dY1 dX1 div def
- /xB2 xB1 def
- /yB2 xB1 xA2 sub m1 mul yA2 add def
- }{%
- /m1 dY1 dX1 div def
- /m2 dY2 dX2 div def
- /xB2 m1 xA2 mul m2 xB1 mul sub yA2 sub yB1 add m1 m2 sub div def
- /yB2 xB2 xA2 sub m1 mul yA2 add def
- } ifelse
- } ifelse
- } if
- ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xA2 yA2
- ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-%
-% GetEdgeA GetEdgeB GetArmA GetArmB mark
-% ArmB 0 ne { xB1 yB1 } if
-% xB2 yB2 xA2 yA2
-% ArmA 0 ne { xA1 yA1 } if
-% tx@Dict begin false Line end
-% /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
-% /LPutPos { LPutLines } def
-% /HPutPos { HPutLines } def
-% /VPutPos { VPutLines } def
-} def
-%
-/NCDiagg {
- /lineAngle ED
- GetEdgeA GetArmA
- lineAngle abs 0 gt
- { lineAngle }
- { yB yA2 sub xB xA2 sub Atan 180 add } ifelse
- /AngleB ED
- GetEdgeB mark
- lineAngle abs 0 gt {
- /dY2 yA2 yA1 sub def
- /dX2 xA2 xA1 sub def
- lineAngle abs 90 eq {
- /m2 dY2 dX2 div def
- /yA2 xB xA2 sub m2 mul yA2 add def
- /xA2 xB def
- }{
- /m1 lineAngle dup sin exch cos div def % tan alpha
- dX2 abs 0.01 lt {
- /yA2 xA1 xB sub m1 mul yB add def
- /xA2 xA1 def
- }{%
- /m2 dY2 dX2 div def
- /xA2 m1 xB mul m2 xA2 mul sub yA2 add yB sub m1 m2 sub div def
- /yA2 xA2 xB sub m1 mul yB add def
- } ifelse
- } ifelse
- } if
- xB1 yB1 xA2 yA2
- ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-%
-% GetEdgeA GetArmA
-% yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
-% GetEdgeB
-% mark
-% xB1 yB1 xA2 yA2
-% ArmA 0 ne { xA1 yA1 } if
-% tx@Dict begin false Line end
-% /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def
-% /LPutPos { LPutLines } def
-% /HPutPos { HPutLines } def
-% /VPutPos { VPutLines } def
-} def
-%
-/NCLoop {
- GetEdgeA GetEdgeB GetArmA GetArmB
- /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED
- /xB3 xB2 yB2 mtrx transform pop def
- xB3 yA3 mtrx itransform /yB3 ED /xB3 ED
- xA3 yA3 mtrx itransform /yA3 ED /xA3 ED
- mark ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if
- tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def
- /VPutPos { VPutLines } def
-} def
-%
-% DG/SR modification begin - May 9, 1997 - Patch 1
-%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r
-%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
-%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
-%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
-%
-/NCCircle {
- NodeSepA 0 NodeA 0 GetEdge pop
- 2 div dup 2 exp r r mul sub abs sqrt
- atan 2 mul /a ED
- r AngleA 90 add PtoC yA add exch xA add
- exch 2 copy
- /LPutVar [ 4 2 roll r AngleA ] cvx def
- /LPutPos {
- LPutVar t 360 mul add dup 5 1 roll 90 sub PtoC
- 3 -1 roll add
- /Y ED add /X ED /NAngle ED
-% DG/SR modification end
- } def
- /HPutPos { LPutPos } def
- /VPutPos { LPutPos } def
- r AngleA 90 sub a add AngleA 270 add a sub
- tx@Dict begin
- /angleB ED /angleA ED /r ED
- /c 57.2957 r Div def
- /y ED /x ED
-} def
-%
-/NCBox {
- /d ED /h ED
- /AngleB yB yA sub xB xA sub Atan def
- /AngleA AngleB 180 add def
- GetEdgeA GetEdgeB
- /dx d AngleB sin mul def
- /dy d AngleB cos mul neg def
- /hx h AngleB sin mul neg def
- /hy h AngleB cos mul def
- /LPutVar [
- xA1 hx add yA1 hy add xB1 hx add yB1 hy add
- xB1 dx add yB1 dy add xA1 dx add yA1 dy add ] cvx def
- /LPutPos { LPutLines } def
- /HPutPos { xB yB xA yA LPutLine } def
- /VPutPos { HPutPos } def
- mark
- LPutVar tx@Dict begin false Polygon end
-} def
-%
-/NCArcBox {
- /l ED neg /d ED /h ED /a ED
- /AngleA yB yA sub xB xA sub Atan def
- /AngleB AngleA 180 add def
- /tA AngleA a sub 90 add def
- /tB tA a 2 mul add def
- /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def
- /x0 xA r tA cos mul add def
- /y0 yA r tA sin mul add def
- /c 57.2958 r div def
- /AngleA AngleA a sub 180 add def
- /AngleB AngleB a add 180 add def
- GetEdgeA GetEdgeB
- /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul sub def
- /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def
- l 0 eq {
- x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn
- }{
- x0 y0 translate
- /tA AngleA l c mul add def
- /tB AngleB l c mul sub def
- 0 0 r h add tA tB arc r h add
- AngleB PtoC r d add
- AngleB PtoC 2 copy
- 6 2 roll l arcto 4 { pop } repeat
- r d add tB PtoC l arcto 4 { pop } repeat
- 0 0 r d add tB tA arcn r d add
- AngleA PtoC r h add
- AngleA PtoC 2 copy 6 2 roll
- l arcto 4 { pop } repeat
- r h add tA PtoC l arcto 4 { pop } repeat
- } ifelse
- closepath
- /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def
- /LPutPos {
- LPutVar /d ED /h ED
- /AngleB ED /AngleA ED
- /r ED /y0 ED /x0 ED
- t 1 le {
- r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC
- }{t 2 lt {
- /NAngle AngleB 180 add def r 2 t sub
- h mul t 1 sub d mul add add AngleB PtoC
- }{
- t 3 lt {
- r d add AngleB 3 t sub mul AngleA 2 t sub
- mul add dup 90 sub /NAngle ED PtoC
- }{
- /NAngle AngleA 180 add def
- r 4 t sub d mul t 3 sub h mul add add AngleA PtoC
- } ifelse
- } ifelse
- } ifelse
- y0 add /Y ED x0 add /X ED
- } def
- /HPutPos { LPutPos } def
- /VPutPos { LPutPos } def
-} def
-%
-/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB
-sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1
-ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB
-w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos
-{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop }
-{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine }
-def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin
-/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def
-%
-/LPutCoor {
- NAngle
- tx@Dict begin /NAngle ED end
- gsave
- CM STV
- CP Y sub neg exch X sub neg exch moveto
- setmatrix CP
- grestore
-} def
-%
-/LPut {
- tx@NodeDict /LPutPos known
- { LPutPos } { CP /Y ED /X ED /NAngle 0 def } ifelse
- LPutCoor
-} def
-%
-/HPutAdjust {
- Sin Cos mul 0 eq
- { 0 }
- { d Cos mul Sin div flag not { neg } if
- h Cos mul Sin div flag { neg } if
- 2 copy gt { pop } { exch pop } ifelse
- } ifelse
- s add flag { r add neg }{ l add } ifelse
- X add /X ED
-} def
-%
-/VPutAdjust {
- Sin Cos mul
- 0 eq
- { 0 }
- { l Sin mul Cos div flag { neg } if
- r Sin mul Cos div flag not { neg } if
- 2 copy gt { pop } { exch pop } ifelse
- } ifelse
- s add flag { d add } { h add neg } ifelse
- Y add /Y ED
-} def
-%
-%
-end
-%
-% END pst-node.pro
-
-%%EndProcSet
-%%BeginProcSet: texps.pro 0 0
-%!
-TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
-index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
-exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
-ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
-pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
-div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
-/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
-definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
-sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
-mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
-exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
-forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
-end
-
-%%EndProcSet
-%%BeginProcSet: special.pro 0 0
-%!
-TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
-/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
-/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
-/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
-/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
-X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
-/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
-/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
-{userdict/md get type/dicttype eq{userdict begin md length 10 add md
-maxlength ge{/md md dup length 20 add dict copy def}if end md begin
-/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
-atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
-itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
-transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
-curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
-pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
-if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
--1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
-get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
-yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
-neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
-noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
-90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
-neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
-1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
-2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
--1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
-TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
-Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
-}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
-save N userdict maxlength dict begin/magscale true def normalscale
-currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
-/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
-psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
-psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
-TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
-@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
-newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
-closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
-/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
-currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
-N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
-neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
-rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
-scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
-lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
-ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
-/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
-pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
-restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
-/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
-setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
-moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
-matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
-savematrix setmatrix}N end
-
-%%EndProcSet
-%%BeginProcSet: color.pro 0 0
-%!
-TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
-setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
-}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
-/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
-setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
-/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
-known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
-/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
-/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
-setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
-setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
-0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
-/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
-setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
-0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
-0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
-0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
-/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
-setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
-setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
-0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
-/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
-setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
-0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
-0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
-0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
-/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
-setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
-/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
-0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
-0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
-0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
-setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
-0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
-/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
-setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
-0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
-1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
-/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
-setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
-0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
-DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
-setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
-setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
-setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
-
-%%EndProcSet
-%%BeginFont: CMSS10
-%!PS-AdobeFont-1.0: CMSS10 003.002
-%%Title: CMSS10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSS10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSS10 known{/CMSS10 findfont dup/UniqueID known{dup
-/UniqueID get 5000803 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSS10 def
-/FontBBox {-61 -250 999 759 }readonly def
-/UniqueID 5000803 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSS10.) readonly def
-/FullName (CMSS10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 78 /N put
-dup 82 /R put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
-7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
-DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
-511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
-1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
-028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
-1319147A4A219ECB92D0D9F6228B51A97C295470093CA270C4488BB4EB864B48
-63941B9739638D2E6F3CC778582B46AEB4E466D89D1C211225274356A4BC90F3
-274C6AA56E200249B7D0949A3FD4185DCB3E5286910EFD7CA72D5D8E8052C96F
-388D12094B87D3705CE64459558CF024667C0FE96CBB32B0BC9E51037D7BD62B
-E4B05FF99384E71D78441A79B0B1DBA1CAE02434A9FAE46596FB86B873B1670D
-AE0BAF516445A0DDC127F8FF3ADA0B10EC30A9CC1F7E9248828B5E8AB46C3FE4
-154B80A54128A08777F5F9B8C519C7E3B632B3476F007FA156E9F39FBE57638B
-4214CD2BA79BA9DDA0F4C073AED814ABCCC2F7906C57A872C00E67FF03AC1200
-29DAB92376422FA21C67CA98BCEB8C431CA2D3EDDC16972F84BF6DB2F705BAB5
-CAB39C82D139FB1304B9E7BF1F6FF447596081D5690B1519E468D6BE49C329C5
-C9C809023EDEB9DCE4A6D52A8049E0CC134E8B41BFC6558CFCAD3D9D2773EA16
-131567AE6231B3235869767A1E7C1FA6C8D6FC1B276CBB1CAD14D376188C9682
-302836A9290E587D4225EB8BB1DBA2C4580A81FACFDA197174FE948CE757C575
-F23070FD84DE121955D7D9307BF986C5E739FFFB6CB76822C341FBD9FC2E3378
-AC9332B40C07D5B8745D74E30F1D719EAFAEDBF5FBC40D0546F69A66072D8A49
-28D2CC2E76B9B1EFD191E0BC7510C2C8761BD92EFCFDAC263342A01398A56D18
-121A591FF5CD4AD8B25699A7897E60BA940336BC17B9EC9F97C2464D031F958A
-A3548D0C97C50C580B6EEFD0FE8330EE2BB0D2E7FD1DAE33448953544A4B1C5D
-8EB57798D0ED4B22909FEA78ECDBC4D8A124DA05B9999242D68681017285A0C7
-69041C1F79442279FBE328733EA0A6694D68BA89739FDB9297BE0CF1808C07F7
-BBF6F1538DFE084EC8C0EC24D883F6CC08A51DFEA23EE920F44BA55FFF58E960
-C7BEE551FCD2D5814DE7E3F835608073C2CB80EC57100CFD484C837881674E92
-B217F4D11165427DACCC29C129005874C05CDE5FBB2D912368EA2B98C45AEDD8
-8A0D2493F60EF36809C8C6EBBC7856F6656E8D398BCB29DAACD4F7D4300A0B01
-161CEF51195D2C58DDFBCAFC1C03F49304ADF02789889826F1E20BCC14827565
-F2A45CA57DCC61B52E33638A0C6C5A59B145E82B82571DF1806EC40FC0E8634E
-A34A791B1325571E19F3AC2EF6FE68A14B0ABEF7EBE0EDA3942E85E5AE967A14
-0C5AEBFF2A36DCA8866700CB7082D2ABE470864C44AEE1F6D180D511304C8674
-D02FAB12A7079ABF96E1CA3CDF9D75532123E87663B1D524265AEF63EB5C2169
-B67A651A101E1C7EDB008D3DB06DB1FC1A81B41B291D6C4A58FB57989FFCA434
-DA84B3914D1D80B17AA3A55A70BBC06C49DD5F7DDD03FEB0055088558FA192A5
-261477899857CF598DB740E82D035E84CF17B33048CFED2DCBEBC2B75CCAEBEA
-B6C5AA1C6978FBB36ED98D9047028360ED430A0AA69AC85A8F83825EA649E1B2
-64B260197B06A24A1DD969CEEEE136FB046D713D0630B246BD41CA285F076038
-F7F8431913BB9A3E70311844D4C22AA446E3CA217A9DFD75A898997130269B29
-AD4AB7D9662856E677FB2DAED7078639CF31C6E6637C74DE2B5D0ACB88BD61F3
-CE3C5D56D3D4B3EC1ACB33EACBE05E53A133EBFE93CE6A0CBC8F24BDC5B31BBF
-5B3E55D6B40B1CED389076014667E28BBBD60145A06BDECEE8011A2C6F06D091
-73767A8045CEF2A110B614149FEE783A2351FB2938A9F73CA406538EAD82ACC5
-A3DFD3DE00221E1B4EA977AF8C89661357FF7D2F1FCEAD6CFC9D6AD81F95100D
-EA1F328249AD84AE849220E6593D45015B4D7C9527F3063E9F6DB6E572092A1F
-1F460696227D5F0FA5A5484B1F0D8B4A35066451663BE448D924DBBFD388B6D6
-D7CFC87C9E75B7CF79A4C9207E29E0BAAAD7FDF529B860F7731EA978E335334C
-13CB2F0A4250F5957B44CAA0674AE8356F586A24FD137103973B9A1FC31090C7
-C84DC5D380404BCDF3FE20C6F74FFDD8BD1DE845E99DC6FE09931F003834ECC8
-08C5D962070B6C44F901A787CCEF048A2C584A2285506B4D4E82B1BF130E2220
-B6C8B3240A4CBBCE16AD3676B23A50B75F82CD88D1B8F21D30A12716426112B3
-23DFDE5A348DC9DCCCE5BB5DB5433A5AC125DE1229FFAAE0D8319B2929986EEA
-56A93BA1FBDBE617F30852A3DC8C712DF674169C6D656F75E252187A085B2788
-2467CC4DB08D48EE6A98C61BC55E6EFB1938FAA718802B7587B94C8F1477E9BB
-DCF6E02B5E67FE3AD9D87C321CD9BC0CCD36B9C4BC601E6BD552EAB8E1C940CE
-3A22F3C2501C3C939CB4F17CE97566F0A04602D2A22A05CECDF4A49CAFD6332D
-5870E1F31AAA5F86867F71610CDB83E473B9D20BA00D8986D7148E0EED03865D
-9622864B52B09D12E0C5FCDD023D29D5AB1CACFA92B6FC14FC84E95F407861D5
-2BEE3301AF399FD7ED04DFDE6679A345A282E7FC08D47E3FC8969D3B00ACD7B7
-F8769647D6D4F4106340EF739583374D023C2702C48FAC1B643B5897D2D7DBCB
-73257712A0FDEEEB98A021D218CDDEBBA34687E23C4828D7F96D1ADDFAED7EA5
-B279322E6D55FB486AD8F3A8E7B2C67915564FE56F0C9277A06B29C47FB7D007
-11AFDDB3FC1B173B4E449CC6B198041CCA0624D81B4840FE5B63BE72157AC6E7
-03E5E95D2E2CE2E40BCE8044A8F2AA45F855484A891B9F0F8F70188AC66A8DEE
-F4D656CBE216E6D9AC33BA8DD0685D480833E1226784469A221D9FA3CA600AC7
-5574B5226649A9C48CCB43339942FC9010F86BAA2D181AEB487A92A96BF2EDF1
-60F3B93FDFF4137A25A8AEC5ADF8613019CDB103DC4367EF3D8AEB4FED0E6BF7
-622AE0CD3CAA0321D26CA4280CFB60D08D9560AB8AA5698231171B881BE9A27F
-BDCF3162134126212C523738D221AA05E31CEE73D9D40F73C450B6AE2C1E70D5
-C37162BDF55943069923A290A6C720042566E55A21CD81C460818883AB016C16
-8FCCD1255A66977DC1C110261D7642199D466DD3D2493A2D47694F842241C474
-1752B00DA03E69CD16A8A14BEB8A431A315D19A39BA978E46EB1189089FEF647
-F9DBB58AAE6B3FBD475E4DCAD241A051DD100ABE81D40ADF18A4C50F53BF749F
-D6F7C8E02A5665B4AD18DDAE79096DD447F8BD32C68F9F97F05E0071D9E9AFEE
-257B96D48ABD9920418E17C8F027E9E975E4A08DFB1988E7104CBBC1CAF356EA
-7750AA7110BE116AF1BA69A94776E4356573B38472A8A1292C63701543B0F315
-611A0E0595B30424A1137478BA6F990AC7C3AB4DB69E75C222B617F373C521D4
-246E954E9857AF59D1E6C36412B643733CF5E1C90389EF0E5E0DA55D3AD12E97
-E7630C315F72A03CAF22E0ACE3AAAFC1D496CF4E5ABC49C2DD5E264BE7EB2698
-AFF36089B5DD2C53DB1C1FCFBE1E89D41A95DDD278CEB29DC85FD1DB8B83CAB1
-EB37C531E9BB8466ED6B8B60258D3C355626CDA43A32834DC89DFB11E5FC6D68
-0F78CFA871113DB81A1690250A6F842ADA15734CB6DF7C6ACED6D8D586BC4E1A
-94EF3052FB0F8B9454390B882CBB6E135AF1F9C777AC362C2A758C3A98117120
-73C6E2FAFB580716D4B2889A4331CC658AAE996245685B973D9C184541385680
-AEC2956107DAB00230FB39BE98D3CA898D917E5F2088F26CBA4F8B5B115B6443
-8753331233B10852702FC26D9DD4C990C13CE4D0DCEA23D62A826A4B4FD16070
-5F3638C0A50A3373A33FCAA6F3644975AFD0560EE5F2D1CDF08820373468E4FE
-6679A229D6955CFDF7ACAA92A87E6D8571AD18CF59F84F88A674B2946FF20A28
-B9798EAA22442415EB46B9498DDC0F4BA6ADD347AB43E9293CAABEAE80127378
-129D5DC69F6DFFBDAFA5D65580239E8EDF6833D0DE6DF75F0FD090A83CE0974B
-AC947BABBD1B1C7194DDAEA37B0CAB477ABF9433FCE0243C8D308409427D1DCB
-8EE4FC36C7E5CEE104904B520B3F6E677A5B92F694BDBC2C799991667E0EC14C
-B95EAE7DE1854BF4542F05B4AF401CF67FC3E46EA5A0DC362F3CF177B1796DA6
-753AA803E724D1721DDD1BCB0C12CE0859E172D2A370C3697286F80D9E138AFD
-A0EE016805F847BD30D11D8B891E54C77AB51A7CABF76BB14B06153C7F811FE4
-93FC4B7CF161051A458EDF767DF94F487DB939A2740B4242BFEE234F75084DDE
-207E84533004B933D43C712F0C71DA4A00FFD6D721EBC93AFDC4200E3B8DE433
-3ED3E1DB799BAA27548ADC853AFF5D9D6BD92D644E3CF394789C99D9DC054A26
-7770AF5DC5BD6563929AE11BE341F036584DD573D3F43D9D975201EF77BEEF80
-D1EEDD1D4AD5D4D4DAF6D5B9D4C1736CB111D6FC74C236779C0ADA430323A825
-09EA8D0CB1772220AF28B93098BDB36913159208D1B2D7ED45808BF7B686419C
-5C0E3DAB5BC9830FDF3B494D624EE8068BF6F5212BD69EF466B9A213047BD105
-B848F056DC544A8CE66C546B1A4DCB4BA29CF0EB4DCD9C2452F22172AFF33B29
-E97E12D8F0D312B03BD9E5377BF0C81D884F1E79DB66E8144F106DFD2579AD26
-C693C5B68F3AC46BF0D6281032D4D4BAEB2243151AB1AC0BDA2ACDDD4D590C90
-F29B335DF8F57DC593DCC081FB56924028E3161AC4865B49D1B0F63F5EE866D9
-7A71171C09B09A44B0E32F03494D9EA63F3C89F5E772BE25A6557F119299E989
-99BA041694ED805AA4F3BBDF00D88171C9D43A9085A287A36A1F0F9386F2A98A
-96815CA51F06E1CDF20B757983C5FDF4003F5438232159F325C6335B734FD982
-1423BA77D0EFD044381AFBD0704E3DE95D23A70E2428E9AA355A9A8A25C6C74B
-48488C14DEC93A766E112D74C83576ED355F17A809E8D3F9C65C4E3E14EF484F
-4658DFB57597E2A4461D8044E95844391C1275D63F282B37888C842A5151937A
-45007547263D70195ACC018A373D498B88C5A028BC66ED96A343EEE74D61EEB3
-D9472B6A549CEB8699F4B35154A0E2ED22867E4F9E4A76311EB2C9F9078FBA81
-838EA49C2966BA64C165434DA3093206B70186BE80600B891D9979F730FDC794
-5DD6D8B2090CC67A634B719F441092A10C447A86ADB78DAE45823ECED5FCEADA
-ECA52E363D913D9EFC0ED98A5A1F823DDA3350EE27F09C14E4C7298CC0FB6200
-DEBC640C68C82D70AFB7A7BA668F1D7948686206884736CD03D9F6E6CF9702BF
-E3C932CEF3CE07FBBFCEC0476EA6E8D5D4C5C6450C8FB236B89BB82D51886240
-5BA7462F50A88F69228DCBDF26B7250E90B3DF8E94ACA1CADD9EFB5C73EF9DD5
-46052314D445CC92512BA231F79A09A2F0D91976B160B8C9BA055DA4AAC1300D
-491193EC66A6DE12BE01EEEDBC3A2291DA1F27AB76596A236B75E19FC5F1FB6A
-DA1AD835CA08B6CD03B97B4CA1BFCBDD2500BB09F1A1B0438E4A759370EFA318
-F062BA9F3D352572CE232E6FBADDAA5363807D0DC5320B807FE5485C8CB09B6B
-0BED9F5B1300FF370252DEBAC9DB25CE2EC494E8EEA45FC6604B3C104E81B287
-EDD49F3D7430EC9176A16B4FCEC5DF68DCC11ADF90BD5337E2E4B59BEFAC8298
-E5ED2C7FC5928635420FB1955251932713236DCE28012C86F63D12AF1DB634D0
-0B8CB8992B8723548177BD6822A808FF221A9E38B0DCCBC1F3430A9BAEDA89CD
-ACEBBDD8CCA5E17F1CC37E35A01E058BAAAB6BE7124314DA19962BADB74EE73D
-8FB13FF6AFB6FFF97926CA045B62B98BAA753AB0FC78B881D3FAFF9EE2FE918C
-8EDBEF87637F1530E3E13AC090FF81F4136E08D5F3734327E643CDF621278741
-A17AEBC56E21217888A6C8B5ED4269731910E7E25693CFBDD4EB4A32698F2447
-4C45D73E810B627D8719E4E34D8FF378F9B68BFB149AC67B3B1E55F20D097FC1
-AF74D46F5A3923C63DFEBFCA210F6B257F5FF3F2AC34CE41C15C9977634E473C
-2235295C05C3DF6B3009C7854BF11CC87471CBE085793AF9C5D05C5479B9E780
-14A5A6F3F6DDE5A18243DA15732CCF26ADE40C566DBC3C62B71D46DE87A12C6A
-647CAC923254E2E74AF882DBD5C9E108A9160393C5CD12566AF7C824EFEAC56E
-6F05B92C73A76824C5ED1735BCBAC61B98D509250C854CF1500C212F574D18D6
-4426B8510FE9785B814A70E75C9234D42483E736D0689D3561E8EE5650F33A36
-D50127589401D267BA6442E8616E2CDB1F6691D3FC4A2A377E5E154972E890DD
-60CB463E9EA9A6EA61087DF452FA5646F69BE879337EAA0F5DA4438FF0365627
-4E3B16851C2F08E976FDA27AF451CCEFED00376FC3D6E0C160F0BC19544DE289
-BECEEF9A067FD71D54DA3A4F73F06E2F522BA07551296214DDA47B1BBB1212E0
-1100ACB5F65FD30C655A3402C83058F8ECFE48FA60B6A3DC86C4996414130194
-6676EC7F37454023AB53E9D9EE60249ABF6953E76DCE3123DD268BBD492412BE
-65D7C3E5A5E483C381182A8F19B506F0AF6DCD55532B89852D1D96021B22E9DF
-D9D072BD7DD4450577E658B433A84F92752B260AFA2EC4A118747CBFE36AB7D7
-6D5DD96A119AA1BDD0FDCBC3AFDAE5FF72713EB46759A06CD09B5CFABCDAB0E9
-85599506AC07AA525978AB157496163AAB387F079EC9FA1F9E91B9C2FBCDC9EC
-7027D77016760539AC03F1C1DB242D28D6EE946C42DD2262D82ED48C3A839853
-BA977046F0EF373AFF884AC3112D2FB319421C3165DFA5710BFB9AB9595A10F4
-9D05704B9E22137CF27F4B2DA9CEF6D8801D5F792969B2E58FB539B8038DF440
-6DE20C0313A7BCD16F279290AD6859B0E657CC3041C7928CAE35B9D3A681F2A3
-2D40F8EDAF1127E754276556C95E1282514B6EB6E43FF4F0FAFF28C715E3F39A
-374415B62C1F5F8E31E006D6ABC736057910A3729AC60360CEE1B2C8D9F77336
-39CAC45329A372205FD551B9E9EA5082411207473D9D90E76136AA70180172E6
-AF6EF3EF6B38B1906B904BE9BD5251EF067738840C28877659B649C6C4CA328F
-1BEF8A9CEC2CB062702F58CC0B8D2D097FBC278F9FD894E10ACE1DEC4530CBF8
-E4E467B6DB9C596DF0C3D43E6AD70F30B733EEE692C2EBD68756D0C16E1F00B6
-AD011B5DA073A769B53C2DA2E7C9B7ADC6F551BF4DF4C39C66443692C3DC62CD
-B1E094013F364D04BE2FBFCD1C7B2836180E9022E0434421FFA4317A50096684
-CF0B8740EF680F27F4A84AAF2AA92C64883BAF57BDC60C6467A8D4E09E6316FF
-9BE73053045E5F3586DA3BD1298DC15D751913FB1E72EF80047F6B33591B97D3
-DFAD34EB224D64EF60F5B4ACC6EB42E1BE0CB2812FF2F3C264AD2E44F5EBA441
-670CA0A60E73176ACDC4E42E74F8F489C73481EB5D46A61FDA1C0FF9F8844DBD
-99CECAFE2A72833E4522981FA13713AAFAF8F121E60FAA6F379B2C8874CFF23B
-8FECE70654E5855E525A403700A96CF7F8111BF2B58386E29640D82F1DD86900
-E0E203F3ED554209CBDA2A61A5641D4B39D98C5C43D4575648D06BB82B6C4D4A
-F043EC61B17C208CE8B4F43A7BCBBE588A3D13A183D79A47404223037FCFA4F1
-DD237344E589F161BB9BBF3FAD2E28749350DB9A74C09E894BBCA85B82E704E2
-99788B24642A7D0F0FD96601CF1AE4819EBECAB89824A0DC1C03BA4B546ED36E
-DABC8D49CFAA53D2A9A5DD6B3431E364C99ED0323513476CDCEE49BC413E50BF
-51EB93563DC03B62F84C5F96ED713F288D109C79179AEC41424822772032035A
-40E84014F5BF40948F05E8562C9CA9DDD71F89021BE238E74781A92D64E5F9E5
-AD6C0D954C6686C714BF189E78EE47F1530CDB8376E52631A1A26E3021FAB977
-DBF01167266AD68A779C0180E034A90CB77B86747395BE885E484BE4028B4093
-8BE191D58D0BF85308C72E6384292A2E1CD06130A091F8AF9DC6C3E12B1E4BA2
-BB2C37AB4AAFC0CCC7964C06B9EC1C7E3BDCB6BA265288D9C8625EBA35BD2A49
-BC50472D7AE262237FF1EA8D9DEA3C0DBCF7C3B2DF5AFB1F31E46B48E0A8932C
-AC31A981655ADE717715290110A24F18A9C280B8A1319EDE24430F8B6EE297A6
-F0ED9FA62CCCE8D04508EA835C94EAAC87A6B0CB478EAA834FCC96919A168737
-09F5AD160CBB4A83185BD3D2FB6C5106F2305408003BB76353291395C141525C
-C35B34DC64CB57C382F7D293B863AE11DDD537DFB356CD79C3F39958DBDFAF05
-C2018325DBCDBFD6799A213DC41DB996D0ED640669724C3B991A648934351F8F
-C0AFEF6CFFF64A2DC8573FAE4D27F42F684FA9DE66B983C75EE125EF4285686B
-C079E717409F7C7976421105699CEE6AC950BFB20E66BEFD4E06AF99E0593AE4
-5DB4DC8C8832529631FABA0B611F89BA8AB7C42C115A93761D1FFA9B70177543
-F76492919E80F0F379EF684F34BAC59C5D2E69B392
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: SkakNew-Figurine
-%!PS-AdobeFont-1.0: SkakNew-Figurine 001.003
-%%CreationDate: Mon Feb 02 15:14:46 2009
-%%VMusage: 120000 150000
-11 dict begin
-/FontInfo 15 dict dup begin
-/version (001.003) readonly def
-/Notice (Copyright (c) Ulrich Dirr 2003, former designs by Piet Tutelaers, Torben Hoffmann, Dirk Bächle. All rights reserved.) readonly def
-/FullName (SkakNew-Figurine) readonly def
-/FamilyName (SkakNew-Figurine) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Weight (Regular) readonly def
-end readonly def
-/FontName /SkakNew-Figurine def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 65 /A put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 70 /F put
-dup 71 /G put
-dup 72 /H put
-dup 73 /I put
-dup 74 /J put
-dup 76 /L put
-dup 77 /M put
-dup 79 /O put
-dup 80 /P put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 86 /V put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 106 /j put
-dup 107 /k put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-dup 121 /y put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [ 0.001 0 0 0.001 0 0 ] readonly def
-/FontBBox {0 -114 1241 842} readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
-1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
-204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
-429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
-FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
-C19258EFAFDC276CB1ADE9208A941A36D18F9FB1C33DEF76AA315DDB04A81691
-6676E5A648D7DE382599A7743325F8403952F71AC144CB079B79EA0F6CC70FE9
-5F3188F983A1F1EC77ACFC7CCF01778F00CCFB385AFDEB4E5A9CE7CC620FF716
-C61C9DE01E055E0CAFD45A716C0BE3FCBE9055D993851DE60E1E573FA960A4E0
-DA00D6FC534C4CF679C935A5D4A5B19672767A386D945B17D996CF36231F8E98
-218CA1C3BBB7D39931D4D50B1D1EF947277C4A9C9E84D419D55550E2A5FF0549
-1FA0277DC7AD9334BF50CC5492D5EAA01A2BD4770AD8B320B546FDD69F0FE7B8
-7DCE3B013AFA239B624C50424184F8B2E6C035CD8D09C0AEEA727DA23EBB0563
-F296F801C2D059FAA56DDC675D141E980EE19E8693DD546BB1EFAF23B25EE18F
-401F89336BBB74A63088F8D1EEBE74494B265B6B737BBE29B09C257B26F2DC39
-B3CC5E66AB9A1696EE887C7638A4455C101BA7567859E0E604629B5D3FF0C3BD
-9415B98896048B159A2B809B92737580090FE1E59963263B10DCFDBFEFE15B88
-68ADC79BDC0DF2CA41AEBB4338C85C6CC6C21EA274FF5724D26BC8563E63DACC
-067651091F0E4F77C75213298BCD391606C39E1C1F37DD9C2C4515172E0DB0AB
-3E93275D2FCA7CBFA53CB4D8123F6F54D0986482FE3E98ECF421B3A21437BD9E
-E1556833796B0E3BDAAB179595F761991103B3CF06E89E5DDA1F6D91AE06E510
-6896FF0B71F0D2911767CB1DFEEF3500F070270EADED32C917A92CEE4B70D0AA
-AEC0F959827BFFAB9A4BCDD270540B157307FC76AA894CE6094B0A399768CC90
-A73760A81C686C373ED4475EEF76A3EB467F2EC721D2AB87B492444996764D66
-11C2906AAB13B76373E8E10B6C92AD072356BB7172E941756E1B14A5C16D083A
-82D271A5844B36522008EC033C9FA37EE6B8E5603A75500223C98D80CB40CEFF
-CADA7CA565351C3844C7E2958DBE1DDE280A937A108D9D67257E51CFFF296304
-3F3E4ECFC71A72240C5C1E3E022AE56DDA20C9BFB9FF931ECEEE556BCC9C4374
-EA6B2CCD3D37CD025624C7B916A98BFD34E7811526561FE9C51114475E9EE497
-2E9524DC3EB093A2793D553A3B4C13236CBCC78A8F93CC75F90C9189297BEEEC
-A16244F6181C5C535EC9B0C8DDE504E621B5887FEAAD0F667C7848497110589F
-AD4265A06A63E61EBF1D02A87587DC7D4030E320C514539B504A31AF3D78D39B
-A3E59AD1CC7763901191CACF97B56367EF01CDF17E2E5049D46E0C470750BFCA
-57392DE2D0CA52013ED065C5F3A6A112882F7F37638E5B2B3893392706CE2027
-29FD3E48D7EC7516E263C79D6A97268DA46DF57696DCE0AABC09D1B6E2F91C96
-8D4028D2F1E7C5BE558D301C8B082EB07115A8316F68504339A38BC05ECB819E
-A3FD4EC2887F1635AACF2780AF4067FF1E1EA8D90D4CEEA08E56C7958159C8E9
-5855ABD89B67C61781656DD25A7835DD6D0227E8E5197151EFCAAB5DD7E30FF7
-1051D6D4967092FDA2997852C9A27A96351DC61E31ABD4A6EA8173FB9DBC2F61
-D36C2E4278A20DF0EDC8A8322F6919079AC88C84E75904A2D372030CBE54BDD3
-95DBC876109AC6AF2D5DA531182F93B84AB3B31C5908ACF05947F6414AFB850F
-043E1D02CD57C8961D1E0EA51C02097026083440BDEC45721D0F6D8C3A1D8CDB
-3A7574A94AA0157967D94B4FE04C20B90DA96AB9391B620CE60C015AC73A71E6
-84907BBF57AA08BDC107B0B2DC30D3EC4DCA2FB7C7EBBE81AD2A05A0C30B7128
-2595FAB8122EC5A75FD78BFD3CE46263505F4BD03527FC4CEC45236399A2BF9C
-4A75DB0DBC50D9659B1E1BDD615BBBD2E338012BFED914E88F37F9EBC7171264
-E30D7D87E849FECFD4BEEE78024777C8E1E84FA3B14E0B3ABB8A254A1519B911
-DBA0A83D0F86446329C71E645D92D02FFFD3B21DFE7CBA87A3B456F5F7063116
-C8125C64E8D6ADD54958DF8F45025A36326245B88D01F9C198A4CE29518BE6B0
-29A667AFDFA1350FC6EA47AA1D0503F3ACB450EBEC9CEDCC102FCE62F55BF5E1
-CAB60218501E2F429EBD905DD8D404E806EF9CB2841F89A3FA1131105F04465F
-3C7A2B47C13DEB6707DC7F01AA43592CE1C81B76B5A6E8D9AEDCD79E7F52AC52
-19F863695C77C3BD4EEE3493075513CD6EABF0CB9F34F66D6AB84E2B903873AA
-286B6431912785DA63C574BB4F80DD6F7A1B493739E58351A85D1EFC7CF4B1DA
-EB16AEC6E26F10AC985DAEDA799DE2C09C99906E849A107045862E92C0A1B172
-7DDE110ADAA6203C01D69D00071EE1E864B33CD3492BC695E3DEF8B9D83DBBE3
-FB6A76B628EBD106B163EDF4C6F485BF8E72FF25A3F08E88648F0877AA3C5A7B
-8EE6553554CFCB0B613B43E51B3EF00243D4F5302BC5307FA44BD179D6CC2DF6
-F1D9C92C198AB47BFB0BFB2250C48A279E3FF00DA2B09FB23038E781924FCD28
-5E09D3201E13708B4DC6BE3D81282CEC04A10C21183A73505F7F430FFDFB7BEC
-7D0D22743F6AC58394ADB5D8AEF8DF2675AA70E630D7C4477ED33C1F00073852
-A5EC09AC1F212DA9E477CCBC8E6C1716E52E196B929FDB397551C60A2DFE9134
-F6728BFD04584AD5F748F136D780A0038D253AF86C005E29DECC5DAFF403F153
-0BB5E9B2BD15F6748821A9E687A20D232F530144C800F5E130558BFCF480FBB7
-79AB12EBA4FA0C5A5719F3835C3F1641805392CF4F189350D9AAF9F2135D0D24
-921F112695D50730EACD5D6BA5028C6D183864FD74E6A7194683A2E542231D14
-55CC2E7504334B615CFEA5848F643E8C761E78A9A452B4553EBA264C89076644
-8B4BCAFA8A4F12421F14A61544CFCEDE9081C08D4B9AD85C6049625BEBBEE60D
-4CD2E0D6BFEDAABE6DBA1C5560D573F1CA77FE7746198B5AF514564BBC7E9033
-C5356E7A7A8F62B96A0CDBF27E2C2916C93744A3C377EAF002CB86BBC433E39B
-354C24AEB7BB943B425F133B57662B87C4476488D31572EB049CAF8014E433FB
-D4C18175FEE5C84C38A3994F5FB26EC9083C33F1FBBF1991E2A1E9AA0D9B05CF
-807C9314BC4888E895BA400402574E4697271DCA742DE26BB025A76966570464
-65C3919ECEA9779CBFFBBF640D228A1F5D5EE26D30A945888D3469281CADA471
-23D8D3260E1DE2E47A18526DBD971C6E8CE40021549FDB096336531FAB5B0136
-B4DCBF4B10B6E56E0492AEBF75CFD32981455521B2E01EA9D83E56E5DA6CFF86
-1352B688FA2B790285E7BBB1AE7EABCC786E0EB75F87276BC9B541B07234E7B6
-BE219112646CF3EEDBB82A365B137F0C9DFBA0BD9E22BDBCA7C979B94005785E
-3FD5715C89C3518CFFC50BD61869C4A56248D078F6D51E3901ECC4ABCAFC7AB2
-C71FB50E2936C272C805FD1CFFEE5E22246D1506DA4F3115C9B58CFFCB8F4B87
-0A6A9089BC7728FBD8CEDB4A9828B07ADAC517DDBA442309B6B8BF59E3563E6B
-A2367FA24A141967456DF674F419459A4242708CB4301DFAC108CC8692C89BEF
-1D148558F78A9132B26C7C9FA12233D3FB2EC34EEBA0DD7D2BD61029B48039CB
-042945A97D0E651FC0D41C42CCB8B66190785C1BC413CD14C32DBC3632DF73B8
-2EF140AA01CBC7A4BC5C6ABFD7B17C81BF507191DBCC45C7CDC0B098D7AAAA09
-DCED8AD9FBF1A9457BE7193206259EC22C75339488BC5043BC6C2CB070E0EE14
-8540CD52542CD19DD6B0396EECBB4F6AFC20FA231F0D7E17BD080C5DEAF24CB0
-60AAE5C79D99C0A3C03071E0577DB271842306296AE5BC588C02A3D19DC0F620
-AA624139D349E16C0856BC50894855588ED2BFE2BE2740B76B6FF62B3E59EDDD
-104E3BF213680CF14E3337C48B6CA8E2E23476F95152C2B7A2F8AAC39D27BC77
-6E4FE1F996ECAC2DDF9125199F7CD3AC1F2D3298EB89AC9BC95EB53798FCF67D
-2CB01D6FC54423DF2E17F0CF5A9BDCB8CC4C1FBE312D1A3C886E10066F323302
-07B273E55CB6350D2942A5C502C7C1D22FA4E883A0E9BC8A75C3D4C23935DBA3
-1C4551552C1C3A3F08B7EA4DCF6DB75371235977FED298991765108DAD5D4BD7
-074A6411940A3C907511CD71FA45648F78406E164988EB26019CB16819AF47C3
-81E52DE64C0A31A242A272C9F2C8EE6C17795CFC5DFF3E680A7A6A9FCA796000
-CD734EAB37D86218452A80A189E4D391502FCAEF9D028ACB9BED3E09441FB7CE
-6793A4E49E362E506DC6BF5F8201D53D809A02343F19C21499046DBF408FCCAF
-53C56B932842843157F3D16CA4EB54F4CD044DA560F9A4BD783E76D80B743344
-0DF77397DA7EE6C415BA33B76D6714F7451FBDBDA7941967CC2AC0F89FC6F193
-FD58106FF85144D50392B456D16F27C29B16628D12DE23A184A3AAE658CA3E9A
-3AE8CEFC800C1AE6F2AD5E359E9B6B6A1DD8DE7EFA161BCFBCC8045423622B20
-1C7D14C27693368D56E1C7E6732222B249420E086D66FEC913F6D88AB8C269BF
-A36F210851A12FF7DE8FB0957428176477D81B345C69BA368057661601791CCF
-7BD7D69A7D6D9F3CE13058805D0D25494868FFF19B2FAC8131D00196950CC3A4
-276652B08ED8D6546CAD15D591AE8546A71600613D2B425B9FC7F2367CDC2873
-81573201614D241D104F6AF3C8B64E9940490108B626629AD01A4D6A7AC6B70F
-0D5E32F0241809B66D0D486DD7032B97F4D2D7D0DF4F0AE6CED7E9C695F47B21
-C3D9C263BEBAA7A97F9CDA7455C8302CE3D6D89236F7EAA4878C380A9C23AA08
-5EE2658FAD7ABC5EF1ADA32BA39E354D0EA4FA9B9E1F8816E340864F1CB46606
-6B50A9F99CDF7A70AC0C2BC8958257DED45C453196C030ECF6E89A5F3F741151
-96FA7635AE0748141B6CECDE677133C8083A86B10C134D80D07CC3D5C7669FE5
-90DE0133EC61893BF4A7F9CAA915EF3AE61EACA5D851EE1048CD6E898DBD5795
-3473E2785450012CC8C5409B9A97FDD10D39DAECB64AD7BED77213FDC724DBD1
-AC0535ABC8EB9FE0198E15C50E9657FEE8AB00BCABAAC16F6C1560681A7336BD
-177FD31EA4840721BF22335AAD835687CADCA97E568F5F36C96D048C3E6C1F52
-2C51CEDE2E3B72CE85CF00AB15C85EDE516399992658BC16249FCDA61AD9BFB7
-6A48CEB195A36F3B164B9A36EBC3382950671C29AD8854FAEB9F2A372B78155A
-9AB70623E9EB7E22117FB9F75897AB9A64C147B713813C902078A8A023F162B0
-7B4243FEFDD612762B8516F97A2E8B6F46B55E2C179018E1CF7ABD4A6B5AF9AE
-CAC2DC12C61D1EEF349C9797CFA9D657C6E8ABD5F6EA7AD4DA037917201125CF
-94D32FAB37A89FDBD06D23D3868A6BB62A97A94A45581A5B17012390EC83668B
-3655005298BB8FE43A8880DD63E8C8DC37515580E56FF1BB6689CF92C4CC2E2B
-61291B3AD25ABE0937C06E8CD548771FE0AD0A0328F49D818D8B96019E73B4DB
-DDFE56689DCE604A7945F90E74A2F350CD4B76DA2EDAD87EB104DD90AE6CEF31
-15A81D31B56A89DBCAA25144D0F225C0640BA06AF3060523DF5C4F45F0534B8E
-7A4D80072DA798F8DE379A1330CDEDA5AFD0C337CF041B5D1D4DE7EB013842AB
-7F7707355BFBC756DE91EFA187C20C48B3FAB22D770329CFC52169D0769B2D84
-BB6CD63D416CA52BC4F502AF72E82FD4AF14569F957253FFA5A1EEC88A92AD1D
-CD2436B39051A9B7C8AABD16E06003EA07279A17028727087F332C0BCD20BAD3
-D13498F3FCD80D0AD210CA291D42B8184776DA936E2736EA5E3DD3FEF1DA02C5
-1DAD1C437AA0277075A39A264AA60A18F249036955116918F68B3066C20D56DF
-9D04F756430FEFFA73C5C9BEBD609615E3B5EE10BE0CA948722333AEE411421D
-A06803D8831DF9BB5F6C18CD67F2FF3A59D2382228BE611F62339251111EDDF3
-6E7D2DF531FEBC5B36E3AAE726DC7AEDC50D8CD452A2B4DBB0D0D44282F217DB
-E6FA7EA15975A51E71012FA0226EB22712762546A652A5D6A7BB0BF135F2CBC1
-A45449CD6668044181A009EB9DAECE0F6408616ABCD4865D7C3236DFD24F39B5
-A29D229495CA4589EEEDB11E5B9322BFD6137A2D35D3AC5B18DABEF24F6126A2
-7F53930DA8F839C8D4F6FA20BB2894FA593FF6AF77F4100ECAFBCC2F93662248
-7B3C5E1063BD766C9E87722E36F6CFA6CCDF23C41BAD2BDF5E2FF3909CEDEFBF
-163F48790D1F3163D67774AB77C24C952E7220C54D7604EA627E90895DA3D059
-693D5B4926F09462D6A04AF78B6A28F1B727060BA2BEA51B5DEF0DD4F422FF56
-F4AE0CF07CD42A5290AC4C8CFB52030E9664966098E4A7F039CA62FD73A2CCC8
-FCBFFD89F74EA9E93981AC75798A20920A01100D01A626ED1AFBBAA7BE93D2A0
-B3AE42DA31340398FDBD91CECC02BA6BB4A80DF76BFA27E063C822A33D1B310D
-3A48E60F7F1B5755AA9A96332843711A29A78F6C6578495A691C2F9C64F7AF92
-B4FD65BA513ECDA3CCCF42A707BDCF13C8A0102A61392450A3B3CD8B94A383AF
-35E59FF6FBB28253542C2EA49CC4C2CAE8987BD26718792253B10FD1C78B08DB
-F58BEE5BB4767E6455F4B7E01DE3DC96D0043865017196131029E1AA3216738F
-50CE57D39BF7BC2E92A8635AB8A1E78D963008C30F05D450999AD22469325334
-4EFEB187443E6FA78AA0B8019B50C69E4BD1E450DFF172B5E569BE18F516BEC8
-ACDE5A5C1BA20577327E90EEEF2796EF9483B79A0D957A79711124C58FFE8E15
-307FEB7F219E38A4E44959570B0B184A39D7147E6034E76596395A6A25BD8A13
-1B0EAEB44B77A33FDEE7FCB39B9CC5726C984C110EEA36C3BA33798440D48E87
-DFEF88CEFF7EABCECD3724451932AFDBCB66E4D9FFC2584730C6C89395719FBF
-E0A372C5BE40B78A2B4B633D7439A6A50E0526FE708212EA92242FCABE82CEC1
-C94A23B335B4A4F4DE82385D348FD1DB4C8C2CB5CA6724385DAD0415699C59C3
-545282C9DC4E3FA784087BBF5A2CB3DA59A34FA2ED6913FF2C4A17FACEC83C03
-2D5A8B22D52151B2F4FB728831EB48453DCEAC01626F1043FF9722B0E81C2288
-E1F349021880AE7AC24CE16224ACB084F9C34FEB01D3D89C33FBE9E9FB36C60B
-FD05FC107DE6F399FC8728F9B1DA964C65D6E3AEE1F3AE6766E31AC76426CBAC
-BA4E21901EC9198BF1404B6682A3EBB2E58EE92DD3F00453283FF90303684FBD
-31C495ABC38E5E338E52E8BD8FE9F937F4A6CE0914E87AB607FC41BE4B9D4480
-8210F84226701AF41CF23AEEA49E8E65A6D8A5BBAA55EAFF5C9BB311382A1AF0
-A278AA337144D278BAA730E1E5B72BFE46C3284789E8F386714856C8885B9B90
-A8ADAF3E6A7B242A5764A49040A48CC1608A55356A8B6C26B9FB85339372CA19
-994B01C756E9D77ABBCC18A4CB7F172139B481FD1848AE5CDB1D9405BD7146BE
-A36E39CC2313FF2630EDD4290663178D3746FB4452090914D44AC76E768D72FA
-4264BF8A621B92836653B215D58CA5B042E4E7D2A2AF264DD684375BBB42AAD8
-36297B940671A33A746BDADBC074E5AD4F3C37291DAB60136B45010657D8247D
-9779B371E630E21326DF56689F85C6CC27DA3E28A216F0BED58171CF6287CB9D
-B1D57BC7F8BA0FC520F5DE0645F619C4AD5CA6499C033124BD7493DF1C6F6801
-4B29902FB859CD4C1E75E0A6D5B02EABE3AC973D6A0508C6B23F5DB7539E394C
-2745E0194B7B080673E265AE425B203D54EEFD55C9C1A915935686568C435619
-3A95F967FCFDA0C967CE5F3533BF453DB99D51AEFEEDC80DDA2B08CC90B2E904
-5E3D248F55AFFE8A936E2FA3532F295A40ABB0E8F88088A7628AA67ACF15F9AE
-ED7F95FA27680858E88085B2F751FC65DD79421E1C521BE3BC6204E396FD76DB
-E0221A90353E93EE6E40A98BC3D98CADC0951915AA6C39B89D1BB424E73C74D8
-9AA6E7EA7DC31D2979943D4B9658097BD3FF124D64C05220B092471C947E179F
-59660E8B992A5B1FDD6A509BB5A736DAACE1CFFCAB512A6651138C2CC0872B6C
-1B1BAC588A47053F016571A3AAD2BD86069D7CC02568FB215E659352F41D4E73
-ECBEAF452441E47716DD4E8A5338945CDFD0497B5A60B1996E262DBCAA504B5D
-CE77C79B714783A99D3445F6FA914B4A5E08CD59CF943E00F2749711BBD1FB49
-D40F017953CE6739665A616D4A78FFF7E210F7D7CA870C73647C293C92D7DC7F
-F6AAFD3F38FC5DD10B78350D088A606D0E2CF6C30C0D90B59F923850C3E43223
-2EB034531F995971C48A28DB302D729394FD87DE8F242F10A5CA01756A683C57
-25BAA1D4F3625A93E72C86A0DCD6F010F6340C6BA20281D6964C98186A614EB5
-E3632BA1790E4E1B607F5F2B6262FE8928362865819AD32F11472F8A07D16757
-24155869E8470B4B5443820F753CC0BF767E4ACE3295666DFDD93D480057C389
-1609885D25EAB328A0794C9DA9374329ED1C33ED556E845F8358856A18009911
-8BDB06D215AFEB4EDDCFA86ECDDEDB57694BFC89857D2673ADD3091E187464FB
-870A70D06F53BDF98C58D95119EB29F564DE0AFF274E17564E598E6E41A4B161
-0713FAF3DE0A9853CDBFFEDE22D38E22B3B0BF20BF98DF2B685ABB1BDE1C17BE
-0C0500C03CF4E995A87FB4ED9F5762FC95C342E2F10233FAD2DFF7B288EEEA99
-2402DE511630A757D679A476C78CBF478D958DE5CE74517F7214874E274ED715
-CBFF84EEA41179B451F28F7829C43503B60E332C870CD7E48AD5ECBFBE928D64
-7009799178405317118B209B49854B9EA68415AF3BEA92EF7BACA505A67908F4
-F5158B0079709D215CDA2884D2D26112D27569062622DA7F2D9D0786C4F0F43E
-E07DA5BD2652D2D9F55AA65914723A48A9E1DB36C59715F87C6CE89A1FF11033
-77A6C42767837D9934CAA7B994B601A562818E52C47D79777C97B31F008D532C
-81D3AE83BB01E1EC6956546352A6BFC6A76C6184FA3A462BABE64ABA445FF969
-5758F2E6407742C2F7D9E08B28F16EA657532A1C3859B470860D504F5E9E668B
-51CD14B65BB96ACCC5A46AA63CDC4D983D6AE6F27C80EC0C284D4479602C6093
-9C6F7D31E8FB8CDBEF0C3CC6BD6EDF9AE142C538E4034F0DCF773BCDB183B667
-46277B91656D9ACC8372A295EA7F507070CED85623FA27E9D050A0F375379E20
-05343486FA2EE2443494FB948DA30C764D0B0141A04906D80926E2513E172283
-772665DB6C1A57DA6430E98AF01B026D21AC584712AF57B25509678E0BE0BDBE
-E1CEFD7240B321BA8ACD9F3DE002FDC4BFB81F7E8684AFE55AA6D7040FC1768C
-F3B4E9EA9C8A871AABCC4CB88A188B9E662E5054C7258E3A33C88480F0FBADC2
-3B0CB6910A7116865D9B5302E023E0D1F2A7D25641CC61CFDCEA42813C36357F
-D78931B144585CB2BEA1C97839C91A78043E7FD50539FEB408A7B590C6F3F99E
-56AED19C64F5F48D95C2009C1AC9C379B70230F24D38CE89FC74B8B2522B5EBD
-C9FAC472AE9A0F6539B8441DAAEF55158658F79F99659CF1770D09CEA2AEC321
-1FD28F443D26A81CAA619EEEEC107A74C572A3AC430B6590B6D5CC124F0ADD48
-F3E610F21C8E99FE2E3055F1FC9453CC35502C97192EBF65E809591C3361CE3D
-E539627A5FFF6AF8071E52608F8B2948D59F747E3A622BE215FFFB7A7A4C2E47
-1C776B99FB1944D834CF01D613F6560612F75767ACA95BB808A530765D0F29DA
-A7705E35D1B9754E4B20E862981F6944EF8A5DA99453AAF7BC5048E72D11F8F3
-95E1B1B8137F44FB10FD2C0A5A943107EDCE2B7088C6B0C04A4835B414C5382F
-134BB4848816E7C2D1F3313ECF12809FCD7A488225E1D1185C897A0DE86BE71C
-672BDA7921406CE3735928FDCB9D30A6BFEBE864A71F7E20BC9A26EDA40FB41F
-8986FF3A48169370248520C2D0583BA30C016DF0F5F13AFEF02AF3E3A4450838
-0BF0577F9A5F2E681F0224579BBB77365CEA03126D8588A9BC812897FD2A7B77
-413969F32935AE40E0C9B05D7624179DCE0F89A85BF2ECE644277739C1667553
-1548A18DF73EC7351B78884FF7B63C01E861BEFB445430A30270D0066E3C0389
-953EB8B3353306E782CE55570D84EC9E6856D322E6B6394399C9F0BC846DD58C
-EEA93C18B1287C9BD7B8A23F9675F89625B71DD175C46BF3256F88A39ABB44EE
-970F6A21F8CE551CBC9A08F97E6D9B8A60CA82846E7F3D4781E20BB2E9A5DF02
-EFCB366EFF106FA066B9C0999CD011CA34CE5474E52C1A6F12FD55FF2E952E64
-7708C35845D403E283C3DC16A68D43DA7870615DF63C30BC2DCEA8321030E565
-6BFE9583E2C4CE3D17F3C8005DC077FA7B27293A8590DAB4FD509BA7CE11CD9B
-4CEA2060925E204BEFFCD2AA934E2385A09C260C1FD89CE173BAE32D54190BCB
-91D7E42CC166CA67325642EC31062FFDB06BDF7E8A410EAD0B6663CCA00B5335
-8DFE6443A3E5F1B71790ACEB1CCBE0273510692BCBC9C064A3587AF58C001FA7
-3D930F9C34A0329DEB8B0F7A18B79605F13C3C2D6A24C0
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMSSBX10
-%!PS-AdobeFont-1.0: CMSSBX10 003.002
-%%Title: CMSSBX10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSSBX10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSSBX10 known{/CMSSBX10 findfont dup/UniqueID known{dup
-/UniqueID get 5000806 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSSBX10 def
-/FontBBox {-71 -250 1099 780 }readonly def
-/UniqueID 5000806 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSSBX10.) readonly def
-/FullName (CMSSBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 121 /y put
-dup 122 /z put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
-45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
-7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
-72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
-BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
-974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
-11453BC81C443407AF41AF8A831A85A700CFC65E2919BE7F4437ED75BF2F7BA7
-02F85142A4EADC8C9C7F11ABE2AE2A9DEA79CBF9577DD8627E31D25A7E4DED9E
-FBB1C413696C88A07E5C937451D40A9211B29E24C9424635CD4FD6B16FA7D76F
-5BA1DF0EC26097EEADD70EAA577531177A26B5017A32675C68052E90E68538DD
-E779AB23150FCD1653460CDDCC713599EFA381C3322175809A73447720F6911C
-6BFBDC0458C477D2CE69BBAFD05B5C2DA1D2E3E8378A2112066B045243D3D080
-DAB211DCC25430973C18E7FC5574A814E3EB79F34FF5197453873C8AC66E47AB
-5EA57CB3C8365D5235E7746C8584734F002E9A28C38B0C25E3753D85A1D2F3CA
-B8DECFE14A7AFBFB76CF3E91A1E0203FBC8052C2DF967693C9BA0ABE86B5D264
-BC345D7954C9523B3E70C4AEBBB0F2D56BAD6D76E095F9390FBE2CD607F3060D
-F713ABF47F0FCA5D5C27CBCD4140C668F733F769FF5326917C0AC5D4C72F99BC
-5AF4540DB169622644D320872947BCF1D30DA4EA150AA22D6D53777345858DFA
-3286EB68314E30EC650C8BCC572D72879E431FB4297AAD6533C8F4802E0B9902
-8360C57504D4176C1DE7F57382FF2E2C0A3D5285A061CE91D3149E3096B91076
-1E914125CCA8D1C9230B72427990ED4468CE79C11E8F0CB89A3213C535B040E4
-0C5784E6D53C96696EE45C87B5E0DAA80D3A06E5759D0676ACF99020DCFC3E8B
-50002675B01959500133BC30223C75A54948DD28FA83F399924D4ACBE33F1F2E
-D85095A76AF6DD92EAD139A8D5673A35B3633D25EF3B10A40A7E28F329D6E7AD
-DBF1DAD1E666931611FB107D1FD3576F11A22B50943C536DC2BA477EBAA52BDB
-B65A98268602F26DCA5EC761526CB7F33CB5B345110B7A90E1D078A21E332F78
-33A0CF88EBB2CE852384DE3435F7B3564A0AFBB2024F79A633BA5B6EB7CC5389
-C43621C82972D60F7DAC71FD9DD38CAAB865D7DE4ABC39D71879BF31549DE649
-4B9CD8C149880504E5B34C2153E963B3FEEDA0D59F70E0ADCD24EDBBB8EA961A
-90E5AE4ABB26E1AB1757E25572622D5A2541CFFACAB673665C7693855473D78B
-847FAD590B657CC0B8289034AFEC3C54FE97B010535F70AF67ECC88E21B077D3
-A9C2C52D25CE9714EE430735DB57991AEC946C96B6988B2C85D17C8BC80EA844
-3A076618A686040ABCAC347F1B1C14676B05E13C239E99C3A2B63D0388CB50F2
-BC119D6F74F70DD96BB5343D5458950070576BD6E319AAF5792EBB9DA5778CA2
-58DE0976AEB766DA6A865F09FD6753FB4E7E0E9A06AA1A06C2636AFACF787460
-9E73BAFC4A56A99277DCB14F52555EBF6DC5E5785EF7745521FA061227B725B0
-7A5BA223D5EE9239A7A1694D4F9EC1132FA23DA44ED0FB0AFD8987A01F9FAE15
-ABD485BE098CA7B1AC780A9A02AC58DCF0425D4D110226DC7B5982FE31BB78A1
-C0AAF9B712E8D478FC4F85400B5E6D71AA653F9BB2E967A76D02B04887CEB9F0
-0EF50A956AF7F790400EBBC07467D9A8BF8BFE8200F8F7EEB5DF3E62A9A332B4
-513120FD9F8A93ED683CC47551C629B5313E4E20A207845CC37491ECC3945EE2
-71A0C5633B353B03B1A7727D5D9A0478D20D67A981F6E5CD8737548ED4348A91
-82F2CE805724A028E346E6B7C542FC69CFC7935E6CF3320ED9701C6127FBDFD3
-B20F0DC2D1F92DC69E4FEE57B457E82D5721D932B140CD6DB9BC86B961E7E6A7
-5816F42AF937D97C3149DC2AB0054564592448D0CF52427B766FD38E3B040B81
-59AA9030CE06A9A9E3A0572A11BDA85531060B75DF8791176CDEC0A9BBF472EE
-BD433BCDAB926689B8806CC8044D0925814C1784A41CEA48ABB9AC039485BFA3
-026FD30CCE84AC57DF09B1581ED01B3A840AC5E9208465BC160238EECC7A6753
-D5B65B159FB08E0DFE4C9F2EF5986352C0E0C4DCA0EE62EE5C19BB6C486FCADE
-99D3519723B70B20FACE685ED8D364905EA64A15981B00A6DC06D7B0E3D38FC0
-9DDF04221696F7A8F3CC7FDBC25A61D9AAF9F65D3A64BCAC4084CF13BBED7195
-6BA4C2445676804C333DA6569E4AB7E6999505DD1988C3E62495DF61B722A6E3
-00ECC4EC698E33F7B8225FF591B746E449D2D178880741074D0C3CA740312D21
-1F8B0B1A855FCA081AF1E69D14C9131B1769943EA6D5D6210E10BBD9E404B445
-FC3E2ADF8C9AB6AC07BC2FC0482515625523C04303F7884283D5CC35A4A6ADAF
-59738F3DDDFB51E7134327AC4CA577BAB076F3B588FA3828971FE9D561F46358
-24BEC4C7F84D8FFEEAC94E2C632AFA5AED635E867AD362E373CEA718C750B4B6
-954A7CB6E4CB2614A4E1C707412B7B09F8969EBD5B6510B66818A2F5AE4EFEE5
-9DD7690A3520C477DECB7D61FBE5F84D1C655971FAD7CDA78E695C18908016CA
-48B468BB6B43EBE1DDBC49F43B7CD667B4131D7B0C9BB048178A31D0CB70A76F
-527DD352F7A9F0F35226117FF305A9DF4AEDF474FCD5C7F31FB06D4B2CC40629
-1BE1F40B6347201F84BF35CB5155BC4D2E1DF2A5C7613C27A0EE77BE55A744B6
-DF7DA5741AB55F133D518660751B0A91E6BE43B527E9C97E2F06FBEB58DD0215
-BF4105DAE1B2A29DB05FA204D0EA6E574C7344C3B3F44092F7F997654D61EA9D
-4C811CE6087BA1615A31F8D107DC64F1CFF707234135B728EAA0ABB475E678D8
-9200950F24A8A61AE6AA18F34A067849825FB3925A8E01D64E849546FF7F4418
-19C0FFC2EEEEBDC7805612F7849BBA7BBD954BFDAF2E6FFE3CA520B79070F8E6
-B1509EE0040714C9F5023816250F40FD1C6867F77FC8ADD3A16A3A6275CD6F5A
-21BC03274B350EEFA6EE929AE91DEB8D8B309E3B3524807B4562C7758794A8C8
-4E3C6EE0C0859AC9B799428EAC242BC4AD9564F2444E3C79F11D4C1D5672DCF3
-2E191E25165C77EEA2DB51753ADE07F5E7E748704000265649A2E1DF68909F38
-68F0D5F415330C9537A065728D2104C34CE05458AC1B2A53946890DFDD67563A
-E044E7AEDA111FCBF431546D410D67602985F6E13988999E46C80A983C7F12A9
-FB56C6735454F1E194F63A1B6B21683A281AC6164B3229AE25B1189366C9DDB4
-09D1BBC8429AC3D64F8BBFEF1265611E7C2FE1D3A2FE24FBF3ED96A5CBA6FCA7
-847F5E3AD4D14C0C77C225588FBD0DA2E960FA3901DA1B46B796121DC804FE82
-C382F75AA0495312A80EF9350CE0F80CE0D18316E5D02B7BD78667C2DAABD879
-E17D5EB8F274DD2B1BFBC04EA2F72EE5376D01DAA129FE257162BD19D19B13CB
-C13181E6DBC12826AFFD87AB152A59D67D0FBBE5D9CADDB1CAA8C27689355AA8
-FDC556015E4A9708995E51E46D6D1ED7B68A61625561FB594B9BEF87A1720222
-64E4F8A47637705CA32B1B4CA5B8473F1D67FCB7E4041502B7ADA9FA4B16CC6D
-282FB636979D3DE7C76F3000ECA08AD6E116B1558FADCA251D67FDEB4607CD3A
-84BCA7DF488C97FAA4FC195661D7977A08EF04A7D9A2D619EFC7AE291D7DA633
-C6DBCA7DA01EF336E378764F6B4E4D6C517BE05F10BD1FCDB20E5ABA7F65A8FF
-17D93CDF1E60787712C40775A5C3808AD05A2F276C94B05E10C6042604F592C8
-AF1F25B98A0C78AA7BE1DE9ACF2273965F0795B0D79ED6CE2753FD0FD7B41A18
-FB490B06B5467561DFE5161C27F58E48EA5F38A5477C9CD0C2FA13683271E55D
-8B08DA0C96BDE97C653B0B18096EE7C0E6BC3894057F14E83A902FAAA4C2AC7A
-566A9EB8F9D622476DD4E722F55F28230124F67501866FFE952AE93DF5BBE2D9
-4B9CB9955320A9E256E611EA3838ACD9073107936226140ABEE92A096659764C
-4ED2485B33E75BEA57CCF19AB9409B684EB14103ABF6811E7A8C0AE0C0C11BBD
-87801F3F0260D04A8921FB9EBDA2A2048F4B5C47DF63051A0BA6DDBBD895E0B5
-F9F0F3CE62CB118B86AF595F4F34359DABD9EA354798E8561599CB32345A43B5
-93B217C43E316BD10BCE1C66A10C9A8041A14570ED7FFDD95AAA76E92EF52042
-69F0B8FBE21CA4E37647DDC890D13AF489606195900063DB0CB8D71968C1311A
-D56155D2B2382119E603AA85E9ACF1785E4C0ECA137E7E4F5EE7915E8A080509
-02FFCD2494DA2D3B2AD27DE5F11684BFFA2366B6C834AE309D8E07F98B7B556C
-DF3E0B42559610F1B78C79254AEBD7B0F5B3D7F420BA725AAA91EA20D014334E
-8FE221BB02BE7B59FC3D03D8ECBAE21F5E37E4A0352C475F9F29C5D2FCE8CB9F
-2A059AC06AD9E6F13C39F2781D7D4B3FC34291D165E5C66C5D01B5AAA2AE8F72
-9B3C634FB38FCF35283792048BACA9F7EE6789621D9243B917234405BF194BF5
-A4F137680ED10F216076AA2767C1D220AE71EA7393C7E252209B6ABD94213AE9
-F61FD2CB3160F41C4328DB8563483E13EEBA83A7935E4AC11A97DB7988585184
-6BD3DBB8241EFA1F1DC5CA9C2E16EC1EE12CAF4471FA83605DA85672B34B1F9F
-8CDBAB6907D6CAB6DD7E00A7D636EA20961BAC97D1AAF32C8096003E096855B0
-EF4845013B9243A29BD509436CA78C6F8DF4F90DDED960A0D12BFDBFCEA539AD
-BD4BF883E09542C9D75DCB8A4AE82DB495B0B918D330979F347A76D73B19995F
-4039557D337FB55B8C5922F35B354F6C8E4D861A0B66B3D803C9862C9C507404
-5EE039245AEDB521E90F83F15E44F42F0802F8DAD6A9BF6176C364286601FC80
-E14926FA518CC035337904132AEAB9785361709CA01AB0F352317294B34B2B20
-FF88CFBCC8E89863BFA2D3ABB2A596C9D9DEB261CFE48E403F88652150EEDF05
-3390F002B2E4B53446FB39C488E3D0D4EF4AE2AD19019710FDE56FE29B58B00F
-0A6D5B26B814BF64F13C35EE903FA2190F460F9438924E1D7158704F305E326D
-66CB529B3A4836DB0FE383EF989C975A2F603332FFE0748E0D695327CC8D9AB6
-E036E0E6409261C30B80977BCC3CFF8FF8A9BCBB889ABE47B0CE3450783E1EC7
-1C030CC18E074E01605908C3FB61B78CF4FDCC8E8CB13EB77CE6FF2BFF91D658
-51FB05DEDBB20B0E4C5604AE3CE6D41A4C8D71A1F90120B1F90C83989B892253
-31D06ABB335DE237CD0CDC91256A54797CBA5E284B6CEA6FAE01F7BEFD905E5E
-139D57E163137B5751A765B46A3AE6F653FF2551988CE792011E0548CFAA6ADC
-E32B876763AF6F6FD6864E7B55E341C97FFA711913F8A7FBCC1FDCB4CF2F4D3F
-17358EBCED45C975F2EFF3FB9F77A22EEE4C9DDE63360DCB2DA2C1AA4BE44BA9
-3F9CE6F27631809DBC45643DF7BEFE247E79AA7937C409986500EC1026ABFDB2
-6C30E0A4852A6976A73AD7483C36F1717460327BBC05DE729E23D370B78630D1
-7E87C99A5C3A3C0FFE204EA81A8A33D7DE80DF3C0EAB557F4E86DDF8E03AD072
-61B1D8E1BA05452A6FCA404D9BB8FE9831A367B0AB31041B474DA9536035E7B5
-EC83DEF0AE17DCE958DA19869DD51F53D4A4BFCF7CFA635D6F9F882E6F0215A7
-0494E76F258D44FF72EB5A1104E8F73AD2F6F2ED337D854B81DF4083E6A2D679
-6B5613D76DA2347118CF009E8A88924C2A42B154DF1CEFC93C89DE0ED8DB26CD
-8C2EDE2670F494DC591E79DA26CF8B5FB76613296FB1F39AF2001BBDAAB12CF4
-3906B4C304CCF1D066524DCF92FF484CC682C2B197CD797056555F318279C3A3
-7AD8EA9CB19724AF57EFC6706157A5E2F51F104F6232F252594510E0E4BC872D
-D610F4C99BC3ECB668139331216DF1AA8F6358EB90CE1F0B8267B878B19BA7E6
-77A53A674E0B029E9142865CB92A1596D5AB97FA12FD05A04369AA00BDCBC2DD
-1AECE1A4AD55A93885C626004B41FD277AAE6DF68161F7443EFA7D9C913AF909
-970F4C6292A694AF033B953CE37116A2AF2439E482867EE9EE2BFE1093A738DE
-24D3C408DD105CE6D7B8967994F7C5CE49FBF61AF135F8F7799E2FEF29A168CD
-B2F16F795FB475204FBC41AB78AF87E4E80F992FDCB770A3DC0501AE1D786ED0
-449956A1BDC93876934331C24CFE4392AA860A1ACCA39978BA8AB90A2174F5F4
-97539772660D3920E1B57E9E0674CD34C9EDA83B6AF1B06B26207FE5D67E75DB
-B170F1D01D512CF6D586DABFCA32404253F0A9985A29D46641A81D5A810469C2
-8081D7774B3188423822003AEB638F21661E0BA7AAC765CF8321F9677C85A562
-88AB1320B3256EA9FE0C67E5B69A5127DC1B13E4062CD0C9ED10AB36CD370105
-8FA04F89E3F836B01393F1E9365077A30D8E46B67400DDE8EB0AF8C815729699
-469773FC3F0ABCEF752A5768C9DAA1931421214E69053775A238553AB6620E9C
-E875223681E60B7F7B25BEFBECDD4FF799ADF34BFB397AA114515E2133304A57
-B422E97EB3FC5314F64BAADDFEF9C0EC719A78915B26E7E3F381435563F650EB
-7587F11CA3B14875F6B1D817C1EFA0B89C85B888E8391C74D77CBCC6A990C36B
-1062D049E20876B40CB030367818A3CD3E2CC354CDCC9A0FBB8DFCF7135FB2E6
-A0BB0C3A441CEB8D5FE849AC7299431DEE27CE28B33AB7E836D6958104D1777F
-8010546687CCA23DB48E53376A446136F449A92C07102315D4D0A897521313ED
-1A3A8456A70C16EAA50A3E67336DC89FEC56AB54A579EF264377A103939D5EE0
-0A90B4F20AE1F2511469C34B5984A04D5AB8A162F18DBE4D613BA1C1C85E994F
-80AFE3C18A045148018045C63376CDEEFAC53A55DA67D5980E3A99CC1C981FC5
-5C25CD0A685E3AA6F8C0B8FAAE157DB91AAA50A2B5F7D8860624F29B8DD87606
-C30F84C33D802DD5B95E090BD7AA4400E090DC1913BBC392D7E5E87717AB14C8
-A031737560F3D132BAAC0D6DD88C586322804BC2D8C505973F015F7662571FD1
-C89CA0281CD48AD84B9ED8D70D240A4EFC2715DBE98E545B987AB64FA259D81F
-3F768326717675A3A2E22F4EEEA22A5201797C6D5EC644318CDA28A2C3CCD123
-B0159205FD52E1F9A60A69AF7B40C4F7189FDED20EAC3869E5F53F4955CDA0C3
-2B06D72EA2B8CA5F0B557E9A36B8E9BE7EEEF96B5EDCA6F79F53F83234B2BD45
-6B3D631B1C9CBF7D283F377177C60B3D65ADD945D31458164043A17B8DAC8409
-B4261A4A0EB36E18BD104A8E66F45C3AECC07F4E8FA9F3D2A27334F95AB79BF8
-06C18D57EA745116DE0B36C12B6F5411A9805218B5A31731CA0A35D9AB6BF5AD
-928726A6EA61E0B69FF0F4FDAB2CF5B222FBF9BDF4F89EE47373AA3944678328
-1EB230EACCEFF4243D6B4F8797482DAB78C1A053F2800144A4C76BB839E536EA
-2D4DCEB625DC0F754EED8BE3FA53A7AC3ED17C92757CCCCDCBE21A9D733291E3
-61235172F117D4B8305B45D7728DBB2D71411954EE599B0EE786D7603D61CABA
-AB241062BE3776FA150680F9CB8784FC7A94790FBD2922772EE886254B59D0C7
-4A4DF7A2C1C4ADA1DBC51CE27D3FFF7F96BC5FF7382864369536BEB2EBA6DE2C
-1C427990F6BC84E92CF718BC6D4CE9EC1F2DDEB8637AB1FD673C5BCE1A090146
-171717B39B9A83F2DE0B79CB1B836390828B3EB6DC397AADE45B21F55D1A3583
-C3A5BA93A4ACC08CCA4DB80B78AEA6002D80C5513A705E7232938D8423FFC72E
-1B96313ADB255D43E2676DD2B00B51D116A328164BDA8475741EC234EE6581DE
-06162F006405D6D823DC47DDD14536BB530D132975C0C436F08F9243F1A9AD16
-898823B8E2739B4428E62CE0E41C291157F1886BF937B3D3B9B6DF0D0EAA38C7
-D7F17D962490AF81157E76074422D746EBA97ECE803A205B482B03FB06D080D8
-05CFE4868E62494AE445824BC127FB7367DD9F70B2168F2B8CA0CF190BB838C0
-67563169C8454E5D0DA086467F1536F5E8A1E4D3E727B1688F745FFB4F9E56CE
-4DF06341FC891C28C943B570A7A38C595E07707E41935285DFDCA777CE731DE6
-B46EE9D1C3D61DB6EB8434F17B15274840BEB842587F3B9AED05B97988E74B69
-BC472F5575B136CCEA4A28C49A9A078338F4C164BBBCE925297E4B79CA800124
-B3B8DF95BF211547456696F548E9F545DEB165B896B7DA038438114E661B32DB
-EC043A557A5E26A988B25EE30ACCAA8E8C904246701E97A57C400F062761658C
-DD33BE34ED09BB1BEF9525DBECFE5A994968FB0F993836E4771AF3DA8C13E121
-4FC5EABA8C74A928C6472A0912BBF8F1741B4F0C3F41F58EFD3A549E5B76D332
-D5E338A16E83EC574C45A49C1C3C21AB31A08E96B0C430BCA2CDBA81C80BD5A0
-43B8A5762CEE68CB35C76EF23FCFFD85A5845E335A3E0F3980CEA0DAD5F78225
-D947923E1054E8C2FBD30AA8F5B2BE8C21D79675F359A576DFB382A25584B512
-5F8F75A913785D877D4F44FEC237704E08CA03EB9C203B92C664F0279287E1F2
-5B533CDDA58898CB55B222701DAD14489AF0FEA3B78CD90225A691CBD75C0727
-239A26BDECEE46F3C14350F041E7342DA954A27BEC04753B00C3FDB19044CE69
-0AE6501EEA1DCF0BEAA9648BB409FB8FE84069DB8A657FFDED9EB87DAA7F403A
-6B8A845FC371159F0D61B7E16B02958BA83061A3318B84A38893E07AB1EE50F7
-9D02F521B1F32B05125A0E6A1874EF1C298CFA89E4E9ACC493F6F7F2A9B14AFF
-68665DC4185E866AF3AF0402546E11BAEE84F00259B404E6108AA053BBE771EC
-60687CA432364AF973497A17AC24BCAC33A18D0D2620352851D32B891D1C458A
-A6BF008D90E499E7A9C28C898743A8C4A711E46774020E8291191F138D2D847D
-057ECAE805053934F62A3578158CA819DA043E21AACB8E006F933B062CDD61C4
-8546AE2C9AF14A9345EDE13A9A87BEA32E03F5D4EA114A54732B9AC01A0876BD
-90FA43417BE7BF44A7BA61076B20D2BCD8218B41EB6D5A5CF88394D40F9B200B
-F9BED4DA94442FAB21B33EBBA13D3AC4EF13147DB53F27AE47866566B32CB8CD
-BA21F5D47CDA6BF2CEE32749C91435CBBD8C11ED7D5E51454BA91F4BEBEB1FA9
-873F0804B6FAE30226AB9456A444619303EDCAC59B87CCB1E32A1E4F90C185A9
-C776772BCCD30F158F572CAB63D6B5BA0274B467F52943EBFE30419AE757BE83
-B12E45D5BB98F5BE982DADF7A9E73E43535F93423357142EFA130800802FE741
-EF7B33A186FBB64726981104AA3809FFDB177930FEE85467FBF0CD0870270F0F
-4054CAE7432E3AB21374A702BF415C92AE3F02805774524932AF1F57CFCC1F10
-FF4E99574DE91D69D930DF50D8D566E60C29830A8220E1BEACD02035B0AF538B
-16D86BCBAA9A1C6F4B898BE1CDA222A1E64F14BCE6065F68653EFF251CC20BED
-840727F2CCC9FE6E6AE075C22E0ACB7B9B7D969F5DB094FFE231AAE05CB26627
-D017264F5022E1B00CE037E54B6E1F589D5884D1525A3010F3453AC83F953EC8
-65CBD7AA642BFD158CFB5794F199F021CD0BA552C5C77FA2625F89B714963380
-56DD5F9A53A440E9677C57331BE3961FF4F8D0B3372CBC39007A2E6BF307FBF5
-F2008ABE101AC4DD5D7ABCC9C914D112EF8B55DB17C23BB842D4C6E59AA14C69
-045D2F848824792268C3611F8743FBB66B83A0FB413F528D5160C7E9F6F96730
-6CBA193CD0A44EAFAC1098C6B3B663C60C8FCB4CFD79F70CF8A887606742CC71
-666E028599059F5A86414E0649446250DA3ADD52B73FD02630CAD8F44895A9E1
-571A16E331CAC213EF69EC4DD48701EB3B456E72303AAE727CB5E8A87BD6D85D
-EBBA1ACA570E083284C80928F04EB1FE18592115FD1AE307CDB81A67DA8DBD23
-24FE7A55D7AA015D742F982E6A8140DB2C438B3B08EFB88EDB3F1D471C452767
-DFC4A93054DCA315660B75D73F03EC309AF1F996590FEA9096BDB2130AB78F05
-685C4493203EB6249B37296E2A52FE14E2E2D79651288356FACAE99EBE00A272
-471DFC87BCD5D3DF6023872A30578AC224DBE2DA01CD4307DB36449D0F950912
-8DCC07E78011AE57EB79AFA7317F3C6EB7AD57E985020DDEE979F723E5A9DA15
-96E3E38CD2D4648608FDCE3BC63BB0267321F5D777E5B9F5308A9CDDF298CC40
-59C6FA2E88169F97DE5D1024B06A39C80CE6B06F6441F091C4770E77BBF617FB
-F1572802B380B3E2EB7EAF4D2614398C04A3CF831CE98AA3C6C4AA46E9017521
-82CE678B0DC236840E6C4A68143B4A73A5739079126DFB21E4562C904865D34A
-C735AC6C743407A28F9EA44980A1E8F6E275D79D561F7A01D972BAEC53974123
-29A0AE1E6F12220AEE98270C2CE772C29D810099986958EB4EC88C67AD417D79
-C9339BCBB4C543C6037BB3127EBE69F67127354FEF2414F313FE467595D35D76
-EC0E8DF1347D183BDBF7162FC129D3CDD544BA5781C1BF739E012E3B9D69C08D
-4A8D0ECBC8C1E293FDBCC87B6215B4234A9BE59009268B8A0FCCC3F1A53833DE
-EA437D980F2FAB56992BB63E65F8AA4934E24F21FE1932E50AE836315EE4D018
-7C80A30308C32393B8EA6857A00A341B6AA40ABC940E40351DDC927BC47A239D
-FD8824F52E7F9D2242F2C9A5BF7CA2379BDB3E4EE84691F7EC843855D541FD9A
-D444295F2858933FC37F8317E74CE4390E3EFA1EA9529C40A59DBF09978C869F
-38713613F2A96F36E1975EE2FDAD38E9D11E3493953E412BCE315886C30A8423
-45F07DAC4978CA55B1CCB2840EAD2EFFE33FC1A131525CA597AE1760A996ADBB
-905CD27390F03B055FCA67D0086E8237AEE970E6D536CF4F9C47798D7FFCE062
-0E0243A53583712368C4C2C7CBC3EE90A3ED791DFB6E17D5DA27D093AC69D5C5
-998CC1742BBAD810D8767FC53445A8213C56664A25091BBC59F2F5319D50D71D
-D127DED73ED729D0EBDB30757211B5709EC713F40FC51D556F955CBF087055C9
-BDEBC46FC88BB52D4D638A79F484447D5B69CB603C0DD99F7924C163E19DF472
-70F6B6256ED78C81F67AEABE586D9CD47DE5A269EDB573E853C5F1D3C8A11234
-2F87C45FAD901C2C0F1B085FF3AC49CA1867B4B61475E02F8402CD8EF346C930
-0E0ECE54A79FCE872B2A87BD61C7022898FDBAF2595C7A93C5A75E2ADFEBF3C9
-05DC814982B1676EB6EC2183002BD230F7C5E99350CA686D75563EAB3B7F2C05
-6E0ABEBCCFA3BB0DB2AB91AD0807E9E070470B20AA602D7E7679AFA5CD630668
-86E27BA2DA58321D818248F8CE0BB4688EC0771FFB308D49E43C9A102D9F805A
-3E62F2DC9175DC0DD158F7D4F25B2B5D3086187DB478488FCA508920ADD5E754
-79DEAC39AE797BA437BE6354C526D89B6B4629EBC1A4B8FDB4A51A7F64C531DB
-9E127212E785AEE8414763DF731A2F71A9A56533A6C341B0D00CA5D4A2E3208A
-F820F6241F106725582702034652AABE47A7A12F4C0581E5877B6443634648CC
-DB056D91D64CA82EF87BA5810E24A8AB39E463C25C86AE0B890EA2DA6DC75246
-25ED1C8B4EA60347AE8518D147CE9D306AEA3BD12CD4BCB4EB720F6312BD51E1
-2300D272F89BD7216F34C2BD0AF45B298AFDEFF2E818ED594B672B8249BC117C
-17AA4B1DE98B24F2892D80B7836E9DE029A15B399104223E95474BB850F56112
-FB110D4499C0F8F9235F5AE9391121E828F8AC4CDA9DF927ADD8CABC4C764501
-2E6AA28DCBF3BAE8662158853846D35F0E9098D9022CBC59755D937F65986E92
-E49832570394FDF9B09D147458BBCE719F5DC1C664B2E8814A28BF423B09E969
-B9740AE9CD56D40BA076C804B0A19B0D0DE2D5FEE1B225CB8C7BA29C8E23F544
-F4289C611D644096A57029C1140F83669643DD9A15C4092AFD52640446B7F987
-EA7A053C5E16055A1CC87FEB711099DDAC66669048586040AFC1A5FCDC08E746
-40A7D7A18AB3356FEB917B899BB181BC0BDB600ADBDB083BBC3651A7CF2F1A70
-5818124E11ABFAF291979900C1294C322318C8E7D5910328150C771FBA9C163B
-24B9D3569865A96F90F53817F0D51C2A78F4907FDC024947478F25966206CF1D
-3D5B4E33B0E3335B2F0BC6B00006CA3E29A14F6EADECA0DA653DE1BB0024495A
-6E8BAF009AA479931A5774D3DCAB86F57DCDA1EFEDECD3DC06A2148CA2AFF333
-2168B0D95456B540A5EDD1AD8D4E2F4760FB89D5A9EEAC9EA2F065BED3470AD5
-6018003BD210C5B7A4F776CE21BA674AE85DE8DB08D6CFAB2C7AD425BA568CC0
-5F5A4B9A779B59D89BFBBE7AC9829C1A95235293082C4C337444BCA8B5243E0E
-9892B502AEEF51E4FB3B04BA2DB3829185737C5EB6F81EE3DC0F38A6C811CD49
-222167DF4DB18E5891D03B7CA0CCC158FA60930185275F34FA9D7C475EA55ED1
-C8CD3ED102FD8CDADC37A7A4A29D5BF5A4CBF76358E0C9A242A932262AE4F981
-914981E4627673373EA4D50165020AD431E6F20FA2F5EBAA7E7BFD39154C990D
-26295C7E297FD9CA462E6026F687CF98635F88DBBC73AD3CDFB58B79575B7358
-30EFC98156AB8460710C105223AAB95D2A2746B17E12C3C17035AA14E199D26E
-63A4C61A330FA751203A7D6B54B1BA0FF9F3BA72DC2BF371F223FA759887D85F
-B602287B10DB45CEB4A0109BA5DD23859EF63195813B41C0BD957957A5C03A51
-599B937E9011729E54C077FB04E2012E2980B305B5223DF499B992F07E990AFE
-35D2B1EA666803C2665154910F1FCC96FA32F3F0BE6B7198ABA63A893B752D3E
-45E00A19E9B1FBFE9575B041E36D776F11889D8DB2DD33027E53FCE9024813C4
-778966C483590FDF429D64E7103CF30D0D85DA99517AF890302B94C2E26083ED
-811F292C265DD3B3971A8AEB844A38EA4E4E3D8FAD2F119FB569E46CEC7C609E
-A33B50FC711C9D8052BD5ABE5304727E8F6A01FED166364013EBF3EB610C314A
-619621FD38D20F5930092392C3D019A467425BCD0A55DC4DB309601CE0BBA1FA
-8097BC3004E4A14EE5BE6AAD6AC03CC7F0EB3D53384D84BC721DDBFABE451DD6
-0B6A4056EA45B9777D566BAC2B8D0760CB217DD3188258235BC301BE2DDC2CA1
-B35610E0830103B9D527662A2C498CF57A8940D824A62D6FC7445C724F4C3581
-4B233D7F665A6678154CFA02B6D08ADDE6432BFC8920C91BC7113F0D76F58FD9
-3A73778DCE0378C7E9EC5300496FDDD6A725DB863CA660C989CCC89F55012E15
-2EEC3F66E77DCFE1C5692A596F01AF15AC0C5B01A3F6EAEF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMSY10
-%!PS-AdobeFont-1.0: CMSY10 003.002
-%%Title: CMSY10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
-/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSY10 def
-/FontBBox {-29 -960 1116 775 }readonly def
-/UniqueID 5096651 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
-/FullName (CMSY10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 110 /backslash put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
-7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
-DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
-511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
-1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
-028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
-1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4
-3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021
-91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2
-E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A
-11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97
-C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857
-D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20
-B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3
-93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F
-10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D
-7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF
-B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B
-491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB
-F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6
-019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6
-915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36
-356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0
-5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D
-9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64
-3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1
-FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252
-720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5
-D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726
-BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5
-7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377
-DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56
-AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7
-A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E
-0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743
-AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18
-CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023
-0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD
-5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B
-5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F
-E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB
-54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809
-E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F
-A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906
-4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378
-4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4
-038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4
-B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308
-5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC
-B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837
-A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD
-2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D
-CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246
-455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE
-FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03
-16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C
-16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F
-483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352
-67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2
-3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472
-1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770
-93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA
-051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B
-8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4
-8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436
-6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0
-06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7
-84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0
-D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6
-DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB
-0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD
-8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC
-C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34
-754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406
-1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05
-CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523
-1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F
-153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02
-905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718
-617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2
-8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A
-98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278
-53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B
-888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D
-052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A
-CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501
-A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F
-07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56
-B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672
-10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2
-CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D
-3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12
-D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F
-849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16
-648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE
-84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA
-2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD
-2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204
-9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0
-B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B
-D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7
-135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE
-EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939
-C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782
-7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0
-4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2
-9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171
-050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486
-3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271
-C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8
-843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342
-CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B
-B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50
-3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175
-19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946
-FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0
-17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6
-8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B
-CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003
-F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194
-1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E
-4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194
-2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929
-9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593
-E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB
-8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB
-BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027
-04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5
-C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404
-ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C
-4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909
-84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6
-C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6
-09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777
-D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503
-56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF
-035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB
-FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333
-CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663
-B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A
-F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD
-CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B
-0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C
-B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9
-33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6
-4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D
-F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E
-2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A
-CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5
-88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37
-17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0
-55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A
-A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50
-2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3
-406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8
-AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B
-60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388
-C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6
-5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50
-822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E
-94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02
-D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA
-343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE
-894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5
-DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327
-DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F
-8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324
-A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA
-DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270
-E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947
-DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC
-4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653
-5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1
-02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8
-88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70EB02A
-60651FC2E263002D3986B7B20CC2AA08330B9FC2E26765CD52266969A86EE30E
-71E0B41B6C1C6DA423D3A7E1553D2FAF26EF40DC183099322D362E4965695C52
-9FC3E5BD7ABD743CDCB717DB10372A722A39CE53FABB454EADE2179C4CBFC016
-A8E893C28EF549CA1692C8D8ADFC471DCCDE266FB4E97A1F3035801F3F034D44
-AE6ADA0192657E8078A1D27420093FEBA111333314658021B90DA4E7A8D4B829
-F1795501020D5FF0AD25584C1D4669353E1273F51A39C279F1F8EAF073497C25
-E79996A530100DD40A73BD980338303E192978236F8EC6BABBC8E4395F99C2EA
-8DBA2BDD01AB2030BBB19C9AA104BB96A1A8BF9C25E29269E77E5D6805555B2F
-05FAF95D67C87108293EF4BB90A5C2575E484537FB203249A03F54D324D3C4F6
-62104C8286DB7C0FBEF9AB2A75D8A17CA5464B417FF0DC1501E40B6D9A226919
-145F74A039B54E80023BFBB07B71967C420B23004C4CDF51A94DE0A2708C7957
-
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMR10
-%!PS-AdobeFont-1.0: CMR10 003.002
-%%Title: CMR10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
-/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMR10 def
-/FontBBox {-40 -250 1009 750 }readonly def
-/UniqueID 5000793 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
-/FullName (CMR10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 45 /hyphen put
-dup 46 /period put
-dup 49 /one put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 73 /I put
-dup 79 /O put
-dup 84 /T put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 119 /w put
-dup 121 /y put
-dup 127 /dieresis put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
-569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
-24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
-2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
-8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
-3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
-D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
-D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
-03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
-767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
-8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
-DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
-94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
-22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
-72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
-8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
-344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
-64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
-07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
-1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
-78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
-CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
-7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
-BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
-4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
-5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
-EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
-EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
-4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
-0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
-C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
-314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
-DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
-EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
-DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
-DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
-7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
-1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
-69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
-EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
-7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
-CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
-38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
-22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
-0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
-BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
-4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
-3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
-B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
-15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
-849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
-FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
-4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
-1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
-84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
-7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
-CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
-4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
-3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
-F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
-F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
-DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
-D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
-56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
-8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
-59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
-49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
-87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
-8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
-C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
-D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
-D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
-F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
-0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
-5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
-229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
-17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
-01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
-F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
-3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
-689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
-4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
-A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
-DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
-364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
-7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
-26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
-43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
-8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
-C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
-94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
-C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
-B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
-4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
-7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
-204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
-B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
-7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
-279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
-E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
-CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
-65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
-BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
-6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
-B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
-63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
-4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
-A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
-67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
-DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
-5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
-C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
-9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
-B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
-963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
-D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
-B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
-72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
-B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
-8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
-3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
-668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
-ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
-69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
-C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
-3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
-407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
-11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
-2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
-4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
-2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
-9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
-CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
-DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
-0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
-5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
-9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
-EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
-09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
-2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
-AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
-324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
-486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
-EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
-52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
-9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
-4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
-B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
-BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
-6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
-B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
-16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
-E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
-546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
-6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
-559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
-C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
-ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
-04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
-7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
-8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
-A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
-94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
-C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
-41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
-7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
-18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
-9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
-E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947
-5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F
-4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F
-E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF
-9F9EC2518C77806A19730C97F54BEAD10B4729E5749A10EDBE644886443D1249
-2C8517DF8D8AE98E2882439FA81903941B363A7D885F93C6DF9E1FD89F2F8CEE
-B870C409ED13E78B4C914813B0A01DF8F876EDCC4F384055FD37C575726AD69F
-F23D50EC5BEE2FB95A44F2B2E2DD94C933D90BED2C97B53738B4B2ED56EBE617
-BEF17B9DF4F314A37F10FDE34C570D7BE76A496A58242F51E7321380CB042424
-855F4B53071DF5A0DA5A31B8AAF9FB4F4C491625FF8FD008BD4402918043BEDF
-77B840B2BE0DAAB4EF904FFEF935954AFB9BD2041241B1BC8519EB642C89E288
-479664226DBB6F1171F9EEBC7E1273D0CABCF6B1BF7F26AF21C21D9B1B916F4F
-603DDB68D3614B86566FC91D67AC3F4A4A96E256FA1A3BD35F4465AE4EC64D82
-34BEB4BBDDCEEBD9A89D932E55F14CA2776F927C4FD3E0920790A57DAEA08C5B
-169A3E2309DA6BA8684A5D1DEE81415796E13DCF906FCDADB092047831B16841
-B250CD148557D72DD7E683BF122B38E2C4F614E59B395D1D9823D7D5F126D932
-14B50A37FCA7120F8F3A8E42134F1B6B0C248D56F247AA68FB941839F600F61C
-14247EFF780BBA3E5198D37CED44DEEC3455048FC451BCDB48DC414AE5293A60
-5A59877D6DFD21EAD729CDB7B378CEDD34262B37A194EDD0BDB24AA42649375B
-491DC08F6B03DFEB517B2FC125DA9373AFAA94F4E4BC09510A73E079F4ABDD8F
-93529E898B13ABCDE7322323B3A2A02A0BF388E89B4F529A66FA22D38E3EE342
-54475A1989BFB7A119CF95750D5A18BB4FA9CDA30DB6F1AEF8AE8448BBC999C9
-FD0D74DE9A17A3153617F07CACE92977B68FB5A1CFB29FD42494D5D2B9C1ED81
-2F3CCEEC1BC079E837DDBB57C7E351F9925FB96349F8D9786D8E6FF03E9C4C1E
-67DB235577B68003BA14073E2702296B284F803259283005D97035874D2B9AFD
-4D3F29B4B1E6EDE30DDB9C68348CC174A091791FA74520C8614D4FB1125CBD6F
-B9367559D715ED057FDF6DAAC180C7FA5CCEFD0C5878A91B20D4919792C03CA9
-3AFC986C34C08358A3E85F241E3F8F815FCE7C8E07C2A4258E17D65823264049
-3803D47C96A2745580EDC957AC4291730A840A2BADA50A28342A2B7093A3F731
-4F4F656E974389E133C53F89D5DD6407BB98B211697941A927BC72A0956FA78E
-2DC624B2C253F76778698BD1510D509244AB0462BA8E80769A51F6D020E146C1
-7EB6D7207653B80610F8896EBFA6A606EFA54791E78139918C010A404BAD4B0F
-F3779D39D31D665C528290D1D4096CF7E65F18936508848DF4DBF77A197944E1
-DE53CF98DD5008E84A4BEE48C971DB9586980FF90D4AA43C5277C1676D4A6896
-BF3168664C7F31059AEF729BB5BF404B88965F7094345DA4F8535C60FC1FC946
-4285EAAF493594567AFB161F8F98CC3027FB5FDF901190949B4B6A3297C8DAC7
-3355C84532F7A083D5DDD9A52A0E8E38C858441CC99C4FD0FDB0357BB5233F3D
-0F6212F013072DBFAB7C061D56CE72CB67E59EAE0D87FE8400FACF1F3919565F
-1D434F1B0B6E1EE0AD2510D6B21D5E44574A1142688054ED5805F3788325FAB9
-397B4F558005B5C6CF1EE514D77041F132E00B13A76A105AB3EB6E4FCDBCF1F6
-60E8262CD10AA45C67562303483314B5B0B2E7C4F285F9BD614A00DE68255721
-89A19315AD384AA2957AF8F20D293F17F5521D3311F85DC40CDD29AA85AE61C5
-F3A6A112882F7FB92F190B2F10903EC9AA11B02A8239798483CB105A78F53D62
-AF3EDFE03A794C0AB1BBDC245B04E8BAD801177B0EFA57A1BEFECF8CD29EED55
-75A3EA75909A28E41A42AA4CCBAA4F94086AB50569D9728470C768F2CAC7140F
-6E4E141EEB1D14F796AA6D036117EFA78CBFF7D25EBF1E4DEF5F9EA103CD8FD9
-A3278AD3177806EA98CAFC7491019DDCFD1C34E6D4DAD24892A71B82D94243E5
-66DDFC314CAE502517B50069F984BEA9E7BB776B37107C5E9BF929823F9743B9
-EA2417E3750F18E1F491C658037300F1E113F01439C816B4FD088BD3BE37C6AB
-6CA38386B188DCCEDE505281359373DC0A0E0019488FA5E8BDA6B7781682CA84
-F36DE8F89E9E4518AFFA65334E2C3A5C2E1325D4FA189E4CA00F948D6CE6FF54
-9C179EE04E483F5189130541860067A3119C3639A44BD7A7188498CCCEF4F408
-A3CC51FB47D0B21212E708A32245D8E2BE741D163595A84381EFE64A06F69632
-0EBEE4C7AFA2141D6F120889E3ECABC3DE478C3ED3C150C391CC4105490C9078
-B127D142CCB6C1B3C85976113EFDBE4F7F321B9AC5E0FB1EF3B021BAF474A9CF
-A2EC28FEC13422167D2F49D7601A570857F590C7B904D64166FF0A87986CC9B6
-EA75BEE378B8328ACB3A5021D490B3C7065CE781C378C1F01DCD70EDDDB83F48
-A61231C7BE4C83A0765242FD2E9ADABAFBD771DC29AFB98C6CB1BC8C83ABCD97
-10B607C6C05D7A56A704DAAF9AD3AE67DA3476CCE84832BDA1B6BB5244DF4DCD
-65AB1C0EE6C6B0EA56507C3D9DB10BA62284CC1676852D451DF2CDA7FFE09897
-138C27F7C6BDD27B3520C31D398026730C5AC6998DD218B92FD4C8C69FC7C0EC
-74993155CB94633C9CA2925980C37740F766993C8EF1043A56F6453B862F196E
-BD7415B50090D1A97A1E290D9E1774A095DF0B82D0D20D0E8EA09BA0D93D9F8E
-DAE5DF1E8080485344206AD6A9B214C02A57BB9900646AE4EB85A905D3F9D12F
-0BFD63D823161186FD0CCE3AC40A86D14B2ABBBC5EC181E3F95AAA636BFFFAA8
-ED2789F734A9E258AC19F8D91DCE22B7229605912110D3C88C27E32FC0C1E0FB
-E4E6253B00E17AFB3A56E80E487B1447B00CFA3C6C8A500C6E34DE1AB52E24B4
-29285A06EBEA61BB134055B25332C4F2AFC4CD63E51AC2C563B89563D0254194
-DE000681912B191666E7CB012428ECD18DDA85972F4E252C25D22B83076B723D
-FC464F67B2BC065A56AB23C6A248F309DBA2E131A6EF79586E58C22B28FFAF47
-5B59BAFB5D54BCDE67B2D52CF54D722A8DD65A69B6CAB613145652A976CE4D39
-64D60C0859891F96E2FFC98EC71CB8627476F971C108F5616E20B6B12B517C95
-400FD210006D7C81518A744CC70DE55F76AB2428202F64636BF1B4050C143424
-1EDB33B6F1555CFD821DAC359ADFC8241D77E2E639514CB1CF6E169312544A65
-D68CFF6687283DA001ADD5140FF92C2A4583000060FF3717E66736B72EB97C4D
-B5A6B6E1AF4FB0AB0CE7F517E28F67D1FC76296917E1B91F2C07AA0A48FA9399
-B88722B1A4A755CA4825EA272C1D104A426AAA391D9125ADBB46CF1015357611
-A75D9D098A27F61719BC50DFACBBC89A3ADD031C747FA6722534BA34991AF3F1
-BF309AD264166AE4DABEAB56BC495DDF63F51F7F49DF8FCB5BB79C8D01A8A9D8
-C19AF84132DE8F5BEC0E4660654B502F46D4B36A0E52ABC788644066DE41DB8E
-BC5039741F62FBC7E022695E2616AD42CA90D225A8B0B85582D26424B74C146E
-164A78957817BF9B0F2BE120B0C0F663659BBD109420C6849592A3376F58135B
-CFA5DE0696385BB0FFB6345B70A720C655CBBFB8E3BFE02486371A0ED1ACB555
-52C3342A01A2C825D685A50DF65F2F9D27604F3F841AE34448CAEC9C5620F73B
-A0E13D41CAD8B041D7B68FA7946BF6545DD7B4C68A3F79464C1D64E30219493B
-2267C4CE8D70C1DB3A6B32B70C9C0A69EFAB858FF9D52DF1EE64CA7541750A5B
-0C8A64DBD11D7A52FDFFE8A2AB92BED886B0533C7A29452DBA1FE16FE252C76C
-2147179049E4CC03E5301AC7B4A3EACD5C0C215C3A9C0762A997502B0A338A19
-94D371C31198073BDEBC7CB5C9DD3EC0C33B5AB9DC0E63EA214DC576A11D1E1B
-9627FB3B5E091A7C7480AB572D86B3483BF28CE1E4B2F74315016D0E2D277A75
-7DADBB5CFE83D44CCF99699BF548A45F42602F075F9965585106AFC9DEC1F5E4
-2E8E625AA80C1A23EED1027787E23EA1E2B6674FBDC70D0869D9A1D2956BC4F2
-DF997A23D396EEB029C38CF7C0C775C25AFF4F50761090ADB3C570B631575B0C
-99E46BDCAA4B6250238E5D9B07CAEA824B4106BE1E86015E6509D45EA4B7FA9B
-BAF2F6E2212876DE010F4F42EFE163E4BB5C2EA8BB7DFCC55C2ED9F1FCDEC32C
-8FA5C996E011DD4061E9E4E543141EEE7BAC2E59E2A70FAF1D325B4C3CDD7550
-1AB42F0A7A5283248B42F9C6E8B777698FF688E55246127F4D63B4DC5DF2D690
-76FE80C695AB9982C18D48E647518EC2B76EB697066953C3652626890FAE9E2C
-E05BB5D8FF563F6431A56CA3B3BB06FB222134A4F3273316F4D813AB4798649D
-D6D76640E5267654244891ADCE677A7A599D22835082A072C3772C95424FA45D
-F7A2553E5CDDD74FA70CF540AA72053645573A5BC1D076CA56CC148066671B08
-623163ED2DB63672DC00C6B2F3A90103D44035E6C62762F9D570EC180A074BA7
-5FFBADCD2898CB92192D631588C208C30573A8F7583EB55AF909494F65408672
-CF9B4A2C471DE1BFACCF8292D4EE0CFC3DAFCC75CA917207D7FF60FA738D4CBF
-DC5A9D10C374BE5D3D04129C5377CE1DF8D68F276989559C2583C6196AEB4557
-1CBFA629E30DFF518EA89D48B607797221D94774689E26FF5F85C498D1AF5FDF
-B24415B519C99E67F653CC52B83A5E6AC4CB8529822733E26DB40148B6D244F6
-4B5A75F275288D9F8065FA60FBA29F8B19E467C418CA57A6FE618126F3ABB59C
-6D76CB7D7A8EFA3C0DD4AA65E4D49F8FE9F3E71E95ED6677BDEB1D2223DCCC48
-9A83E589D293050C20847A3F53178A895AA780BE8D374A8D48A10B8B0B3D066E
-BF6E6D9E8908EC21DA73E6EAA222400A7C729E04FA077550FB80F5C19CFA1A1B
-6A9B58AD9C2F087A730EDF4EC2415991D7572619DC7341ADCD7839C05E1F4251
-3DD514ECEBD22658FC136B3F6DDDD5CBCED5DDA4C5191E76FE427015B2863065
-768A4FEFF46C68EC7F68978C1D2C23C53EEA6C845DE21A5DE77DC935D2A4514C
-8A3E9BE93CBB5E16460FDACCAC0E425D93E6D617443716C6721F2F119AF44640
-83CD0B9D7E26AC928A0195F0196BDA8F68DF53B5D7592B4655202BEF769BE4F7
-9FEA39FA1AF47223B09FBF61601636E76BCA286EE0BCF5B1923AEB3F9FD0ACDD
-3BB2526A8619175D1430440DBE02AEC0C24FE51276C4BE36AE93A54D8378D3A3
-227061E257DF285EAD467904A0700AD002E718CABA338D2CC52F2483FB1035D1
-D065C64DC509EF9B4747EAA3AF3A02CB64EB6E55D3F3C19B8735BABE26852C6B
-EBB2E4D8FF77A040D1D5959E701565ADEE7E413340F9451C55B0575E3B18090A
-2C28B3DFA6B043BD1EC2A5DC48402479F24D630D743EBE9569A4A63CF6DD9670
-E335A22ACD4E09900E11BBA673EF677A021AF4A4A5A1CC56532245117DF5BF0C
-4FDB0AE21F56E04C0BA9188348611C0F67032F13B6D6E404C8B3D473496646AC
-0D414E18885768F0D65AB506BE36667F54725E5553D664A5C2E9601026989EB4
-7AED1F81FE710FA3FF3056729069590C030E702B9179D0081BBCA6398EE8C01E
-E01766D5C9CB702C4960FE23C4A282DEA36D96C7E906E0060643D50C0C1A5169
-CE7FEDFF384D793DD14D9735C04059058CD3226579DAD72467CE95CB76E9092A
-42DF6FFB6D567AEF67B1BE359A6BC569830B4EE65BC7832CCA23979CFC48EE25
-F1F477B8D723C0FACA8B24C48D1A7320D6DFAB3997F58A4ABA7439F7AE6C73B2
-CC29E7A7B8AD6827647577E4A677A0B41DCD206F45D6777A55A864D1FAF919B0
-4BB0BBC5CF40264610732E00DEC68CD355F0027C683B5109110297EDEE6927D9
-0CE70C98D22920074B1DFB834413F6EF3FF1C9E1A758A6F71D69BAD93F473672
-BFFE79BB6D990B1899CE3ADE0BBEEE40A78BC517710DA66EF190477B360AF75E
-8DECF1BEBB8D623169CCDD278F86B41595925FFBF10B4B2F8D7E210B185EDC9C
-5E14D78F42FC0BC3A3BC8A6171751C35BF5DED43219DD48407BFA8AF992E97C9
-8E622F68EBDFB1A9358375C8CCEE0034E692A3A2A74441FF6949A8AE17F5682A
-F09410E8BBEDDAE83E0D579C6A572DF98723B91C04A2D93DFD09254A4EF1EFFD
-230721A13C655F2A0A7FABF796DD3752EEE89C4E066A06CA74AD7C3D8977AF6A
-577DF17CDE2EF71C47799B026CE94B611441229AF08692A9EEB18F3E2E1988DD
-75834FBD9F9A692DE870A5D43A77D677A3D0DF4D0558FE8B1C6EA0A8FC77F948
-4317379E4C140CB28B5BACB7F29AD176CBCEF1FF96A492130ECBCF5BD9FE5AD0
-C24595D9EAE4A4BE1F8AF27295F140207CD1D4BFF05BEC897A511F0273EB7958
-18AC6909CBD5737063B9D30C9BEA261FE5413A4537187ACAAE0A18C0EC6D073D
-0CAC6AA417E1846F12DB12529F983AF7F805F790CA533797E9EAF7C2E8979AF9
-933CE692EE74EAA1CC4657FCB2552C97BFBD1C6CA771AE7362888840F011C136
-13B261332ED0F291B6CCEF9C5F3F766C8F66BB7BB57493124727F254D9F0CC1B
-550CEF604C5B2B374B2CE757ABE19925372EC679AC3B78EB66C0B1AEF5C6AC3E
-633D475BD3411CE0F5B84A54FD9290EAB4399FBCC2FABE659D0E0D342B80DB6B
-AC35ABE3BB6B80FF87DFD311436EF6F268CC3823181136558B6F48B8A7322D77
-658A9C2FF41DA157521FD02E22F079E32BD23E408766FA14A9CE1C65F9E73D86
-723864E3AA0FF74B367A46A2306300C928AB8E37AFDAF788FAE595A7D53A9FB2
-CE8BDE68A11BB6F0BBF48B722BCB32CEFC18756B74FDB79F06639FFD8DCB909A
-D5FF15C0EEE2D97EBF64F22534E4F80BC7B319673B591D649980BEABE6572CCC
-50DA0708ED65E7493B006DD95A48DFA4CA2142C20AE83276F1DCBD37B6EEE61A
-8FF20C3D45372FA7EACAE98C038BE4B911E31A261ED29FECC5439A70E74C4CB6
-F08AADA08C128DF35990FB2E30359049494C6ECDDFF663176654657A2945B2AA
-77D17031F2007ACB9861CBC04F14896499D2303842C303C712175B1EAF4A2448
-F29CE39D0AAC14FAEEAD220C23C990D1E9911C8DEEA7C2226977BD5EF4261116
-74F54B064D25222733DE1EC50E6BB19ECB89B9DA9A937C9DD8A4C537C73B63D6
-670DFD03BAE4168EEC2475962CCF7048CDE547E8FFE9C2B251B0FA169FC08467
-53E619D91BC4342A7AB2381AF0945CE121A947C0BC2B266024F8C50FC61AA4FA
-A90E9764268F79DA2A058FA47C9627607809DBB6377F97E754D39A2390EC41AE
-E15A8128362D9A08F624DFC8DBAFC4DFE8BFE5C7D0F916DA2C0704D651CA2871
-1CF116750B65F38F86431FBF1AB5BEB944D266D5F353B384F0567BDF016BC7A0
-C3B36EFF6E690C355F309B449956401E90D94FA19CA25442333081AA87703549
-12304787789C4D914DF58A1255D84119BBB3A05A810D772A3C4D91EA904996EB
-442D094B052223890340355062218149BE73FC31BBB33878DF4DCA0C407613AC
-AEA55D731368F373A67893592BC795DE88CA748857D3BBCE909EC26CA14160F8
-CC1B6D993D358FC9FDB4E3A5BE8F0D4536D88995F7A2B4F7A8F699ED497E150F
-D42E71B27697F18AF7B74F310FAAA432CF5C296137A73D39E54D2B9C55425F61
-4BAD5264C4D687BB9D3445564FDC1BC7D9D4BC48CC05727B715833629BF11F0C
-CB9CF12497FB056B0D8C182DD9A22D714A163C9FB2DA05B9F50970A55C9E714A
-209AE43ED2EB788736A65A4FC3491455E1971103E89A0F7DE43CCB80C2D082D3
-1653BA483F993AF8BEF36ABF3FAE136A4232F93948C8B32F8A2519F45655E204
-AEBCDBF1877B261DD983F9FED8301E3B57DF34EF84B91A9927915D64F979B392
-A5FD1D2493933E57DD346FF2F9527EE44DC83CCD632A65407A5287AF794DCF6C
-ECDB895A5978262BF5A7371EC55CABE222A81F580668A193120D921B2CB7761B
-6E92869F97AA77326F4F458C6346B97BBFC1446B854DE5D7756A9A0F5DA6A45C
-2A5EEA3DFDD8C57B1C79F65CF17AEE04F9036C1206B3538FADC1CAD903C7688A
-7991C53917ED97366571FF0E6C77426C768D4E57171FB4D464644727B8F998E1
-54D269AAAB71EC012A3317EA1244CFF897600CDBBACC1D53612DBBC5FFE09ACD
-BA2493DD2557D48657DF7C4512CF63D6CBA9616A190BBE6D1E4048275B5A9BC3
-9BA504E26069E9806BC6A845B14557E7038AB37FDF212CE86C636D6239DBA113
-DB150CB5678B2701F1C90F361654A0CDA76B40AF409D442CAA20BAC3BAFA5B9B
-3B17EA86675FCB22B9187B0ED28F824353217ADA0E0B9F61E79179CC5FF25BF1
-BF2FB24A490EAF99081494D29CDA270C893F40404BDFC68FB9DA63A231D3379B
-9F9A3873365CDF9B6A32D842D26659CAF48765654F05D707042586DA605BE893
-863B987F05E5F0A29D32C13134F2337EBA7EFC269BA7B2F041FF542D36F24D39
-F71F3DAD9DF9E74B91033BA8B1FF01A3F3A19686B5A5B4D05DB17C137BC52AA1
-6F4AF7BBF819488DEBB5571775A7758727931366900E52AA38652FA92D97690F
-49DEF882D78B073FE10BE9D053F69949A848A8EDAC11DC0093B331E87BA94897
-7491A5337712718E46A0933A3E2677C646569CA16BEC31E5CC317BF49E3C7203
-D06A30719B097B45CCD66DB02F041C946C8EE77B62702F4E7E5AFD05BF611E9F
-F64D6C9A5E948C5F4B4F5679D14032F3F4FD9D4829EB63E3FB8B4D4165FA3919
-ECA69EED712DB0FF3A74EB6F5389499979C3184C28FA6BC25577C1D427AF629C
-E597D92FAAA099DF37BF335898BD472391D2EA707CD0C32DC8B6A505D4A7740C
-F3466D4BCEC6361673853B40538D9F3E28C5CCB3DD481183EA39C3A3952C26D8
-04DE8422C10E5695CBDEBD3BD748A93C7DD772B5597BDDA47A7515832770D0A1
-E20E3520FEB8B60A8A727905B90DBEAC81F8E0D9FD98421BD18917E469C32498
-B7A1D8F18400C2F6A81A119717245BC7D5BE7FF27274771A1C51AC83CD2D9616
-1EB49CFB56A486FCCF47B7BD42245E82282ADA3CA2D6CFFA1834DEF4AD51FDC4
-7065B4C4C56944521E76433C70447C7107EDC136BDBE624D88023D8754DFB982
-53E5BD12B30E7294004929956902E661F71EDF9CAA53AC43D49401ACD313A93E
-1141CA49EF4361FF6DA3A6A368F0577776C32FDFA3ECF53475312691EDF12966
-BF5D3C69B2B09A062DF959625C841727AB9AB4353CEB13E1A06C7AB416133FC9
-8ED0904D3ADEB8F05F9BCB66C6F04BCBFBCCFE25BE89087C85C615F9F84F4602
-9C72EEFA154A2BE435FCF5D3DEABDE64B793961C9F06EEA3A8902B444167A342
-539A76A69B4D5F6A73B7124871AC35FB846576394A02BBE80A38FB388E310DA3
-63EFDA00086DD59FC21875C34708217055EA38968F29D6CC98B3D959240E4853
-25EAA1A6AF9588B78A0A6AC574873B6C3191282D4F3C100955052CC8A04E8FDB
-3843F31781E71838593BE39BF9F177F9BD9C7300D3C2260F36308007E6BCFF2D
-74245E0F81A692E3D37CAE4FA2CEE3EC5487903B23773823D50FFF3C079B9F90
-CD01BDC9F4FCA357233D3F059F7D29C2F95D5F0FF4DEF948F5FD5B8E04D7EF34
-198161813932E4FC9B7FA50E9AA356DE7602F908AD71EE21391B3CE512C9CEE0
-C1C60206A5C6D9CDB4EAA65FB654B23B417DD407BE99773A43545F01F05BF0D8
-9EB1327A7F0A00A7519D03F8872F4D2280E243656774911D679FC88D10D253F6
-C8C1E034CDED477724FE4B13A27ED520DB3BBEC21C049211BD949537D9FFA189
-3B0270924ECA20F20EB9FEF641F9251BB140CB1CB36CFAA76479B6850510D52F
-A1E533845A1C7BB9B3BA5A0BD04FA76C03ADEF6AE8B005FF03101806AEC7066D
-03EDAAED0352C5A3F9470946453DE958E11CCCFE17FEA412059C614A815F5D78
-D3D379783374A055EF0B0C7C4A2136CDEBB2FA7AFF2D095CDE3996C1534BF247
-E764737B814E6C39C89831A76F0EE853F1FA86C3D2000D1AAE76A47E98DD6377
-8E442068FE0C2AF3004C2DB654F9BDFF412A5B8415BC85CCB19DC9263B2EB900
-1DC907541BCA2AA6A4879A016A99EF4E1179660F9ADF49D7EF3FE7D9FAE42BD9
-B134DE6E22BD65BA2FC0904B349F192FF105F46E8B849BE08D78326A200CD548
-06C792F185F77C8C01EFD7791BEA93D7E1868E936B66E77B11EB71C7ADBDFD47
-30C1B10F097298960077CE4EF8B43498FBABB364BDF1CC74069BC1232664A778
-05FEDDB57A536DD97ADB6893C484FBF638F0535AAD005B9040F8F4C5A8985ACD
-596365FC9A066E96B3096F2A709E4BA2B5191733FAA31D11B4AD30BE9BD06A46
-03DBA293FE94CF06ADA2C661A9E8EF65103980125119447003AF4976EDAA2AD6
-79C79EAF57F0819F9649FF6E829D8B403F705DB3B271F788451A5F4DB47E0837
-940E766CA6EF0799EE5560BD521390737355D4BBBBB5DB6EC9E12FD3AC9B735D
-1C1A7EE65285A7293E7EC30F60462283728E2E1ED4CFBBDCBDAB4EE0BB73FB7B
-9382EB082242E48E822D5BCA5C88042A7407D814D945284C4CD9DA223CD41FDA
-F640E3E64B86E7A9505EF421B0588BB2746F03D4C370B13C69F7451B98B233F7
-B979D63C1C86F9BBD9D3EA06EDCED6B84C0408A7D5E8576C43A0C0CF69D7CB0E
-02126074E9B3D0A580B2427F9F6C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMR12
-%!PS-AdobeFont-1.0: CMR12 003.002
-%%Title: CMR12
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR12.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup
-/UniqueID get 5000794 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMR12 def
-/FontBBox {-34 -251 988 750 }readonly def
-/UniqueID 5000794 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR12.) readonly def
-/FullName (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 11 /ff put
-dup 44 /comma put
-dup 48 /zero put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 56 /eight put
-dup 72 /H put
-dup 74 /J put
-dup 84 /T put
-dup 97 /a put
-dup 98 /b put
-dup 101 /e put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 117 /u put
-dup 121 /y put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9C535A5E57376651
-F6823308463DC4E0339C78699AC82C769542FD3B410E236AF8AF68CF124D9224
-FD6EE92A38075CAAF82447C7AF41EF96F3ADF62F76FB425BEDE4C4124E7B1E0B
-8BF254D91912D3A99557F5427907A56514C5A3EB961B94112077FE9417B70DA0
-B2E1C1FA3E1D6F01D11F640CF848E45BE3E205258E64FE36AFBD4DF4E93F6B1A
-966C8E7FBE2CC8FF43C1F67BF6C361678B5E90F4BA524FE8A4CAD6AB28183E6E
-CA6C9636E884845105595A2E40CDBE8D4807A81AF4DB77B31873FEB221BCADD4
-2C4669459704CB58A7BC230FC59F867EEADE660E49AEEDEEB042BA9A7DD8193E
-56C3A36A1F639F7EA512EE4BC6992F52C2FC82A890EFDA730105B0AF7B819295
-EE00B48F64C2B5BCB275B1DD62F289CDAD4AD9B7EF057684642FA6FA6322C277
-E779CAC36D78F7779CB6DE12638B3C65B70C6B5F8A8C6421A379719B8DD44973
-5F52856A4A29B2ED37F2B1FBE6EF4B79B7C0CD6395C756A00FACD763C235914F
-847D1D99831023CE1FD89EFEC83AA7E313131C0C197248605EF5BA773D0A4000
-72F607551A8EA6F0FF19441ACA179177D1FF7B423FEBDF58B0C19CAE3C10EEF6
-3538D8FC4762B77C5AA023A8186C40D0365A4487DC3564265B3DF908572DEAA2
-57E29EC669DD72974F806EFF5ECAFA9ADF1F9D2A63087FB7BBD100F0F81C6FFB
-B1EA1C9DD46548AEDD147EE64B1B4894972DAE1DC3E8569D6A3CEF9F9E46DEB7
-547E10BB2959D374A33E47C58F1B20419920AB485F166062FCCC08EB5CC9AC88
-F388F0C0155027B727729488E44CCABB7064A1432E179189C4627453C5231535
-47D1F2B8BA43069696830CBB6E5F9A135CF22D3D1FE490A3A63C088EA32FF444
-24A2427BBA63033DFE2E06DF8CE67949B6AB02F26335A376B57376814D2A7DE7
-64A4347577EBE9A6E33DD2FC214A09C6D889C8FFBF1D567032548851B8F97204
-49E215CC7D222F593E1EF1439ED60AD922D41E0E9EFB5CA48F2FEFF75AC5FEE7
-FB6676D8B8D4DB6885FBE8B61B586313E4DAFB09D94CEDC0507E93000104F3DD
-F83865A2C6F6A7DA8562BF86F5DB233CC9B53391273A1462E40876A8AC2B098A
-DBADD5A160DEAC061F86A5FCCAB495EF8A9D121AF07928EAFD56F618E4EAEA97
-CF89A3AFD406FC9DE1E9769C1E1EB83BB883786BC075EB5DA2692CD59C4DD7C1
-7FD2FF9B18AC740A390C1DB38670DEB18C67721A1DCD502FE7368F47DB4281D5
-459B3F020595FA3B10544AAE9EF786A0645FB7C9BB29D091E1432CD878A05918
-1665643005BFD9A4B0FFD347ADC84CE22D6F9AD4EDC05E8C7179DCB360AB57D1
-6ABCD200A4B4AD56825DC345984D9A3DE11CDA5E9EC1E5006EE4181E4EFE0846
-67D8C27BEE8F84A1E01947E945BBE988702DEB2240C4BED952E433E5305484E5
-71965D3DE95C4115FF78CE9EC18E323C599727C8B93CDFBCD1CCA780DB8C81ED
-C4B5E596E1603624308972FFAE9A57B0EDB51FDDB6E23EDE2946F61BEB241345
-2A192D8CAD53E823D687F9C64A70A4B4B703291FA6317C051DC6A44BCCE0288E
-3839D726A8F2E39BFF429865E95C726E808E02CD06F36C1CC9AC77999F8E28BF
-CE9D74B699CA982479E9D0DD98EAB24D29C981EF0349721D6819549A39413801
-F80182D567EE316E2F0AB208068E15693E4C399A381BF9BBA625E597E6E109B8
-16F3A84C8EC92F2ADE288821092A421A8D3B907048FE947230810F0777EE2542
-29A3485223FEA079B359034F70464DAD2F0E420271A4E0CCF57A0ABBC20AB327
-0CA71B292126D395E0D083B19BEC6B48A9DE2BF470C3D01A8C3F52075BD4BE02
-A0C518355814478202FD4762EC542F8E7B9B1F7824F0554660CEB83E35635E1E
-DF0D03C94C903ECB36B4948ED98B6324E0094EB1DF70863142D4ED3A932D7346
-39D69F8F044B6084482D7748C27328AFD24A3A70B99D1F7D32CB984488672254
-28B6A9E9DCA2C9FF6A1B311D72413404B3CE5428BDB7FF3C36357D7975184F56
-FA6B32AD54C37D0AF7576663AB1397B80D4E998F0B4C4F6D90B483029EF2EDA9
-D4C4204C1546EFF3100629453EAE01918D09FE104E626ABA38646F17B6A94CE8
-116BC7A8D9C319434CA5B830859B4164DFADF1D7C3ECA5C78D8DEA930EA4AC3F
-59DBBF3148C91A2E807FB934E3439D4F67C6DBBA9972854E6E3688E1E0A34B74
-482217CFE031CD7B5DFEF727C3EF8DAEEEDA08F4C90289E62FB2AF2357EB2E45
-4BC547980FD479101FFEEE477AAC6268DD659E8DD9E244676FD3C6909713B71A
-323B211E571BE711D103FA23B5B9AF077D84E2D20FEE805E81D20C03501F0F17
-C3B081946CD0FD577F00E50B76CC37CFA97A61B89C25DD43911B28857284BEBB
-5BEC61FFE3A14C64BC5425A7A82326617F6F1FA4FEAE56071C9F559F91568179
-46369B394A5CE96FB7420FF8AB7C61CB83492FA5AE4A4B0799578594C9EA67E1
-E54498AA5CD6ABA34AD3417F04F5D8D664A7EB39D41E2D17643CAEBBCCD9C38C
-C5C9541641A09335EFBCE0D276A54253EFD68141807A66F1DFEB4BEA5889FFA3
-4D20BD52012206A9F8D3E0F6AFC03FDBBDF3E51506EC6336E249CEFB571AB84C
-BDF8E471E3795C04E38A5306BA6D450D72E50910D1AC385BB06CCD4B8E433A32
-5A4B7FACC976BB31FCAA1E62DB2C4FE06DDDE7367930E336B49F47DAD91C8735
-9A35D80CA2E117E86B52E41E9278046ED923454989E48610ACB3B1663F197117
-52659A9D7BFA561C7ACE0771794FC778675F83C5EDCB132AF124C7E6540A140B
-E0A268836C73A3C746DC964E482E63C56C0D396515283970FBFF182F9F684FE2
-655FD8F5D057D22246DDC3FD11B77552DB4D90ADBAB77BBB1FB1592129DE0AEC
-F822D7D36E52BCDABBD560B403A5C56C5E1BE789C3AC049318C7FAC5E5861E42
-FD66C3C0F46361078D7E036281682BCE9BBF77983C93ECBBEBA9B359769CA442
-87FCA1B98F4EEC4935CC93B08AAADDF355C99816453587310F08C50B9BA3D107
-5388A1F3AED2AE32BEFADF0285DA90436D1D7EA85D7B9B6DF2AC4B778CFADFF6
-6EEE54D1A1C5DEE3CCA7EFF57A7C2931933CEED90CA26DAAB45E4388EC4DC366
-B9E88518D6CF094861D2A59282044CC06E63EFB390A6DF4BA5EAC7CE39E1EE03
-3D84099F5BE96612789AF3EDED07266EF10A0FC23EA1EA97040B6BAA63138B1A
-A9CB8F5DED781260962D7618EDB200C3ED976033E8967A8CC676E9C11F74BE34
-343A7ECE7EE97E8F76F7E95517A6D6163527406EF5A669535CB2BF4031F29046
-BB2D0FFFB47A576F5EAB1D00A582965C56F28C00B3BB7BE2CC8D8391F789070D
-775EB775437F0CD53DA840BB3575104B63E4B0BF14E3F14B320EDEF65FD4CAF5
-8596DA491BBCF3153DED3B718F833D106432DF8DB8B8E6B34D5308C9010A5DD0
-7E0E53260BB84BAB3EA748E8D72F75901604F80F4416920D69B4B983DCDB72C5
-E9928F01A4A85954FD74578AE336C782CDF81D1EB7EBCEBFBAE7ED8AB4862584
-397928F502D65139CCD582CF0723C5262EE54B9D2B8C39614652A8A90E1C3B65
-7D26B99DA298FE4B9A7E98848F619C9BB4FF9FD215B72F99506F06355B332689
-37D80AFD9F9ACD8172CDC51FCD3A759ACA0F7D4EBB07840840EE42C2D5B8B257
-2C6DB3A7657B75F2F0B9730A20112745703E2D0FE709436CA6A5F36F59E64D9E
-37C0A23D6D289E1AC1DA273872F5FC5C3DA2B127F078A4D7AB3FD7E124455817
-DDC796D54EF26A1FBFD539D3A21B86DD4477DA49213259ABB3FF241424F2BE5F
-89151E02FF87E0BEE26E85C0E518D8BE7CC9214B8E9A9EA1DBB49C6C212CCF08
-90C0F23E9858947EE344062EBD9C574979087439975EAD4E85CD7BFAD3C91CF1
-EFF577843AF1427D06CB2F3BB519ED1591974218C43F0D2038665F9E2E3960B7
-FE68CD3CB2DB6B36C7997C6B21EC11CF1DE049541001FFF26D14C255E3AE862C
-5A5701292FD2FB3D04523D6E2F3547923BB117718DFB6E6520F0D0B5450C695B
-8C9242CC8671B7284CB2E1E9EB097A3DB1B4D5E8EEB93B4DC7E38C0A10474665
-54DDCBAF079B92EA494F6FA75A84C5AAFE280284D0823D7C22249A21044BB0E6
-4062074ECD17B62E03EDF4945A294BFEFB51F5FD870D9D7230FC91B83C1D85A8
-86CDDF326FC90E04362145D6E8630C50594484FB829DA18F5C078F2EE67D2F2B
-08DFF39AE2E8C9741FA989AE494C7166F122D2C5F71B97C973B7CE8500E9F87E
-D59C30F2E99CC4D34713DAB680598F41955FBDC26A14CF1E73D6BD6B9AAC8D3B
-B998F2D0D647356CD236DEAD6561389ED3A6746221B0CF15D6648412B35A6B54
-6A0EF5BBB34AA376D9BAF025BFC650C1B74333CE85413D0EBB2F4D082A26A5BC
-3C0A25D2B12CB159F140E00E262F1CFECCB2C802FF94CD34DA0CE9B4B3830FB1
-DA85B9B670D5169928990A2E9CC869891CA2FFAD9774E6B92549644DAA5FE00C
-A5BE4F5FF91A0B6D2FD8F96121D766391EC4ED3E73DADD476B7DAE1A50AFCD98
-DB7E27E44D30416088D9BC07D4661D9ECEC0806830ABF14CE55AA3CA2DF66E8E
-748B8ED46466F1EEB072AC0674FE6FED231E0DDA59ED7C42BC05EF00E176050A
-C4834D893DE42474EA20DB1E25059E84BD137EF65A02CC295B0FFDE4CDE95879
-0FE88BDF2519ABAE7F8CC3E6386ED35E04A14F1E3861922645E3A3F43B48A5AA
-1999A5EFE192515FCC625C829FF5A7B337AA422F5E920545F9BB269C869A821D
-6C4C26DD2AE746EF0F0B4C1E7E9871ADB5270E1CA9BE28225F7A0370D4C52422
-E25263EE101C4EC1C7811B05AD42F364844A56BB91EE72FC8ED53CC6954D2BD6
-F945D739BE4C61E36143CE890FC0CBF2F610018D678ECF7CEAB18FF5A0E48F76
-FDE2463D40A99380D679B3B76D39C664F4992D23E5988B0D1AF33DFB04894016
-E852EFD1EFFE586153C0F31ADBDBDE3F73FB49C5EE64D0D02E1504248FAFAC3D
-903FD44679BB09C30288139B41B1E90A10139CA3172677250B16535A1F3E5E4B
-6F4264DE58896E66051FC677030A121C5A285C47B6129CB5A3998830CE070D21
-2F093FC1B44089F603A21F45F60960F134A47226874C737EF6C085634B0A4A66
-139420501351F737A73F39D960EC38420BE46E5B09D298E7C16B8E32F01507D4
-0141FC52DA1DE718D634AD9C8B00E46EEEF84356759324D2B9A3473C5DA38DE9
-E30182B87F91B6A7F7BACF29A93B44C879CCDEDB063F9D2E51E0F1FC9F018FE1
-2433D85AF24B55DE3A61C4D0A2DA4FDE933F5F6FDF17E9FA9932BFC46E2D71F6
-585EEF5B2E4E89E797A24B799D7F064DD1A817A53677FC9EB8CC3E7F93FE50E8
-D50E3191052943FD6C98B573BDD1F6D70349E1F8011599E3F8FDF1D6E80A710E
-51E434E85801617C6FD8ACCF1B77B4BFCCDD35CB4C0367F4EB4D8D9DE8284D5E
-B4F43E2F8320C2C5A9AE90ECBA7E65D377E91DB69FEF27069235366AD3E126C3
-A73CE97F4C90BA00D206FA012C327FD69EE59AF4470A315B1799CDC0539BF90E
-512C8FC3BEFE4D1B01D969EA9E3FEF976CD6E0FA4C9ECEC955B265CFD58AB8E5
-F7371E479279EE14B689269205C5B506940606CF3E24A1E7EFF3CA96ED30AD6D
-E243DE57690C3D69A401AB3315FA49E4BF4ACD4DD1CA39272533E82EFDD508E5
-1C2CD286CCC5DE1202C7C7F654521750632EB637F918667E2233A43DF75239EB
-F28F3129EB5DEE2FC5BFC331FF709B0FE9B327CBBCE98BCA2C861C6547E50407
-1218CEBE6EB5F9BABA4F2E11BCC6FB553A544A567B459E06375102C69F8018DF
-BA6A227CFB13E2D74E6A521E01B74F2963E9A0A1C9FD87A88EE6356E3BFABF55
-BABC751D2BF85E6712E8EF57914920775906662E4BA68FFA21AD422D34E15578
-43CA0568B431101A1194F8AB1EF25E886BFCDFC10F4A5EBD9530816548BC298E
-AE4A0B6B52B8B59C644C409B4191B6F4203F52314F2675F02AEB65A72C66E92A
-2AC703E15D8D381522C0AC30C165B822A9B8D18CAECC094EDE020756018DCF51
-D0701B507519C4270B70D8CE94B436F640C15872F9B5B77892AA3D110E4D6A65
-8F0815C61A5127BA25815378683F46E69E54A391A8675977E7DF9C2D4E6FA991
-9F029E50CC2F266B31EE9F9F24452D5838905F330CB7E416B8AF836C5AC26AB8
-BE2ECC6EA4BDAA08C30995709E225C21D35DB6369167602CBFA8DB2697635925
-969002CD1BEE745DA2E56C17EF3F0C05E3847147F86963C37A221C8827195A8A
-3D38993E4939AC915BFD9A212F5FF3F826F742B952018986F9FBDDB69C3AC65A
-845F7F33C55D4BE60A1817EBBCA7E1538E8087E1BD5C083A320D52953BE65F31
-E8339C612A510B59CE48D2EF7061560C4AD258E7DC59694493E3AC878246F37D
-6DE89253EBC8830C6B209E818213C4AC4CF1F391AD91D57BE76FB0E2924A1407
-E4A949C905E44F54EAED6419F13D59942C8079336A172D4758BEB5D3E786FB93
-3CBE4FD2EB53E4E1DAC34E821EB30FD44BC6CB4298242C38F848FC23AEDC9733
-52BE6F32E31E25F18301370F8936810B0566B664B042C7AE0D78ACF0A87E5BF6
-F9B66E358168B2CEA30DCD940074F3ADB793CDB136161FE2522905E87B8E463F
-95D4DAB7E14A3DF7BCCE8141C5A08FCFA2BCE9F2D1B05A7642E75877EB840149
-AAB007CD239AE47AD115929427717F219B0A8907F0EC79ADE1B901DAEE87A2F8
-39361DAB43DFFF69650F601B24061A9353CFD619FF9626F63275FD09A5B13BB4
-8B3379EC4D147C41197E8387FC04DA7BE409524CEF74EA91DC066808A7FD0EF3
-957A44E2503EDA67B1C61827479486134E922E560A673BF314D601C66003CD07
-55569085AFC8428389A140EB976CCFB8F29E27587E46C413ABE2EFB51AF5913F
-53EEB74063162E0BA1E24CEDCA320377D3E11BD374F0B44E132A5C35835B6E2C
-D32948EF9DC7931D104C1385709DA882DED6458319F21C2329938396BC074106
-CB9CFB9E0A915F8DBC8435F386917AC87A2BA45D857EC30ECA66FB4044F5439E
-CDD556B82A0E43418D179AD883C85AC276E1190CEC242E3E1D86E725ADC39E46
-BB6C47FE9E17E29F8EA81E870302A00D91434F3B7A05F243176E6EF1082541A1
-B9052191EE5C2B8E94A2E02DB65FC769653CA8D1C07A13CB853544AEC7FC35C5
-218DE3128AA31952DCE19C55C23FD69BCEA2C661F57B11B8F9E86BFA718D1521
-3346E78C701A5E51923D6D937E62FDE3669B214D240538F069A100A542720A86
-31DE88116DE775F7ACC2A49EA6C02A24408271A846990669F2AF60AFAB4C16F9
-7F4E88E917F0FFDCE68F22998AC0AF2A60A73258C3A4BBC42A2F918123128195
-196D0E150D79AC3CF4628503D1F3FC528265ED8324E56849A47B3B07C29940B9
-1BC270071E221D355EA51E9942D3BD7F99816304FFFC8F5B036C953B38759341
-ED5D7B9C8E6B70C409DD8362FD291201CC385E4A98D73E8518A4C0E544152563
-82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651
-E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D
-F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A
-BFCF3BD739E32E7FE909AEE068D50FAC33605FFF98C7D0115FB860178FD03DB9
-7985B78E0AC21F2EA065FA841F5928FB85163B2E2D8F850DC7EE313912C45C28
-2783F6762C67882EFEDDC7E7567F91C16B16FD8D5A1ABF35B5586307701B91AD
-54984598F2AD46FEE3D68A2731BEAA754C8E730FE0E84952EF77930E4118F8D7
-2F3AD7552C48C6D71102367AF3DD19DD76FA71928B63D7918C3DEB88840FEB80
-D288565525B144453F03FD08340E2DD4777484B552E241EB0180BF47E9A19BCD
-086D89AC4DC263E273CB0F1D2E2082E023038DA303AB252AA63564D26ED8721F
-8EA7AB22FEE60F04C671961BD11F2080F30456DFBBC89894FF05BC9517EB869B
-40A4E58290546539BFDB4BDBB450AA7A70D019BC5A39236EFEA6F93A9FBCB8C9
-7EC6DC89C5F27EF258F0D533FE882202FB786D0CE1A9D7D0CD18CEC7826291BF
-1D3DF573690386F2ADABAEEA8E83960631A33AA07BB7B4970477C46E92D30D75
-6E9F27887A8D1CE84F20F88DB678A0D65A53FCC7638BC932CBB2715639B5786C
-3E4C88CCFE8F7D758EB497C82FB73635E828F165B2BA010AF65D973D0FF3CBD4
-71CCEC76F7E415FE5C72FDF6E2D511B5105874E9B69AD641302FD432DAFC4D80
-6B6CD4D1D5B658D4A984B34A2666ED8A74B8A070D33AD7A0E411C644BBD42FFE
-AA7FE68F9E5EEA0521867422FD6BE49B18BF8AC265E40049F851DBEA997C34DF
-3CA77697F5D48FE22C64C303D089E0B928AC2712EDD68A0EDC595FAF83B5D4E0
-28EFCAFA72269A4FB0CCAEBFECEDCE66AC7D1FEB9DBA1FC28C33DB8B89D5CF97
-932939B64B63070D7C293EF846EB7DE76B5F06FF4DB59278DA0F1111FF97FD5D
-25291C63D01506FB143DD9677CB27DD0364FB1D756AADB0D6DF4816B0B1118F6
-340C38E4FBCC4C393F928D47585ECEEF5A7F8A15FBBE393029B12DE7E9E4D781
-71AC2DFC33FD7D59FD80DC1A634C5D99A068803C674B94D56D1520BD4B21FFEF
-E020A7B28948FC4534240839D1C825B4E6C4C0844F057A38EE984B7E5B9AD8BA
-533B9492E64A43E7A04EEE064DA56DA3E08747D5705F44F7156AD5C65653164A
-82150DE6717C614AE1F722D571745119BCDF5B8F40EBE4B73D8CA0A567EC9991
-9DEE71B60A72734E0E19C41457BC2CBF08FBA1B4E045DB90FC51E874B64D3ED7
-FB7487F36D12E8D3D95FE7D078976AD534AB074FFE6BC8279006DAB8CA55DBC7
-89A13800F9DAC874BC74E1C6A6E3A0318AC1656DA73FCC4F5A8727DC1A0F9595
-5EC9B02BC987B9C37CDCB45F921306EA22788C3930E3BD2C5E91C9FA8FCB2F52
-30BE9FDA1E9F58620F5D95AF91C389A6ACA28BDEE8BEFEB80DF279D17269CCD0
-279CD36DB612D1D0DB9F3B398C04A1D39591F3660486759C2C2B9EB9393BA61A
-81B2DD33CEEF70E02173165D6C15FD36D3F40B5D7244F29D3C57415F60F19698
-4BB27B6B6DA60E7BDA42F2E66AAA8E40FBF06465B80B4AE49CF3607C79472706
-C29322ACCD0D0151F3D279ADD31AD7FFE9D694169DAA60CE6A67642202BCDCDA
-6E29C8BD1D9705034FC1680ED7D7F44621EB918EB0F3233C0AF28372ECBBA672
-059017C88511FBF0EA1F3B7DD84411D019D17A915EE05E68D79DFC4F03DB59A5
-ECB39748A437A5882EBFC1574027684145EE9264D62757CF038C0AC868A13319
-EE14856DEE3979D82F249869C7A505A4B7AAD1BD0599CF398A32AFF95D3B88AA
-12974DFA24CEF4D673E9BC4B9FB36398CA44F2B9FF23AA192D56E35056C2177A
-ED4A6B1660520A05C01651D10A37748E1483DBB6FE13FD3EEBC1FAA34349AD82
-06111CAE95F2013F111D8FE902B996C77A1BE211C2B6F9BC4DF73FB024B4D2E1
-CDE9A94BFA9727D95619B30F332C018B528A8F292A142BD5CFB53AF214E36C08
-E986347EFFCC3C3C885857D04A85E2514063067F3141BD86B3452A1A2B495372
-EAE088FC784DBCA46CC744D9947BC5A8BF354F2C630BECA351DE6A2D47B30F80
-DDA9ADA37E50B1816F739DB303627C79CE5DFAC2E94A9CF79957C0CA9B8566BD
-892431AE4F23AF6056C7D8F184818C9D4A9E57FB1CEA8D74CCCBD38E5D7E1BC2
-4551ECC268BDCDA07E675C206B2DCC7E5C7DAE865A4363D4122848B46F198507
-7E166303E4F30C50F0061F6EF316AC7EC5FF61662F088696E1795D75591E6CB7
-0ED973CED00B0D058E9622043AF118ABE8C2B757BA3A1A4D5CE2E6C06A2EB582
-B99ECB6C765811568EC35E38B81523CCBFF8327E2CEDBE765C18A70B9E054453
-1EA6E3E33B9975A49873F3E1CD0438BB53F056254E7051938D08A8173AB22AB0
-9B42C13A84F330DB43CAB3AB877A66C3F2A0295E9D8B6292EAB9546F02FABD59
-13A88D7CA669122B532C906C4081988C0BF556AF1991E1E4C9B2D6B3BC798B49
-A8A6943A242A0CDFC03B498F8F495661C0B32ADAA6C3CEA8C1CCD1E84BC3D174
-425A71F8A84A1F806489E2C926CF032CF157A1CFF0498121BB3A6DE04DC400EC
-3D98FC20A2A20C110DB95B335C4E1682515292A12C8415E323EBFA11551F2B7E
-ADBB7682960FA594CBE077E1EB10AA0158273659E8444562093B5A4C28A39E11
-362611D6907C0B34DC4C958DEF21D232E2D01DE7F9C649C45ED941A8108AE2D9
-775DDD587DDC8CA72A97C3E2E713DDECB09C09F67026284E674A5EF85DE699E5
-7258BF1AA40FE374FF2363847DD0953A20259C7C8191E0FE0A391FFD06DF9051
-3FA61907BA4F984D7089F1329579927E64A8076B5DC08BE067E449948BF1EC70
-03AED3DFBBE20C2B23CB113E3F4973DB01433A72E68335BCEDA94CFC7239E7CA
-55939B5EC58B380871397F1F13D7A640D8FC6924AD183ADAFC447CDB9A6CB63E
-BCCFE5C11E884CABA6261D5605CDA3EDE239737490593E4E4CBDADA0182C8362
-F27FDE36EFC56AC691376AEC6F3204D96AEE953AD141629A31132296FF60ED96
-0D54E153FFB5117845FCB6EA3B1D71FF4328CFA0972B2E3AD0B1430E33F6AF44
-5C12F58959EC611A449923604D95883E378D2DFDA4D2B2D43BC9B4F6D1538350
-D9FB3E6B5445C696D916E93A1FFEBF2C59973A523F8972BD8FD20E160AFEF38B
-E355E2FBDC98F0971A4D04298C47C6781201EA4F16964E6C441331193383C6BF
-B3109040BFEBFD7217655899FFBC57FFAC3778729924CF9C9504A25823CFEB22
-DE375E4AB029F99B91B037A1F956F4CB14E973D5847A3D1F15F400E54730E0AE
-C9C15DD4322AF9DDA0CE77074EBE320435B9D82BD73040E5150DF87AE690115C
-AEF26E5EB2612FD51F7761BD894DC139E79C7952BC319E364BC09825CADF4EDF
-129D8F7B6D819BE5BCD1C223DBCA46785DB5A2DBF04FB42D451691B25F647B1F
-3595EC997C631B70AE41317E8F80394B768C58E64CFC5F97417F88C9DDB98CAD
-9F53DEAF7B225CC6DA84B79B21C1C4810D90C1871EE2B20E0D0B4783F20EE925
-0E91C1C8671B97FA9E248E8F03B15EDE15F4BA072879E90AA8CAED46886DE114
-D19E0A1BE52572FDA487FC97405B4571CD2A48B6135D6EF8C22420AE5C7C9B89
-84D96A38FE9067CB6CBC1826C490675DCA6EBC3AFE89FFEDCBB7C83F92D03A32
-30C76AFAA57B6F0854E3F4327BF892F0C4985DBDF87E476DB2DD76A5A235A7E4
-E750171DB3F4C945A6ED52112B1FB818CC513DF536B7DE1C16685B03589B3D03
-DC7056DD140F39C2D21DF867BC23237F697B6CFC080D59239AB465FE688461F2
-EA9F0350D62450EF80C454227DB6D60CC4A1156A2C3983503EC4C020B8072F7D
-7D471D3D288CA1A1497EEFB7C826FA93CE0A31B1AE583E75E9A97E84CF0F39F5
-27694E23AD868C04440B4B3B674246712D89752365E32A6FD7DD024B6B2E9E09
-420420996C797C228DBBA33529D256565B4C479C9A4826943B79494816FE9AB1
-7A7CF2E0C3110142D10076589753AB96EB827399232E10EFCF1303500DAD9F9A
-050FF4D2A7BE882CEC519E57C44AB791605BBD1CF9EB46F588AE695026ADD366
-ABA1988D0F692BD8ADA131CD77A6A1E3B44536DC67A00E6FAD10A2807F3B4A76
-7AE8F7C5CE76A10958CE05FEE5A6B9DF29540306704239A72166F38FB34ABD12
-189B5395FAC0CFBB0B9B743486E0A3E36103A60DA0CC52D78D3A6E646F04BB5D
-533B1371C2C7BFEDB46DCDA8E7CF7A00FC29C1BA4F0554FCD1701E0FB3614C8C
-E63A351C080E03B7779FF122014A34B32EE0D4557F0C3AB0EDB23EB6ED0179DE
-34B1440C36BA2B40CB06D26DEDE8C2EF827E10BAFDB6800B60963FC5509333D4
-C6AEA8BDD3102EF19E1DCACE8402DB0E98343CBDDD6BCE24D2D9303BA4AD16B8
-EE56A24D80F464EB153987368F7E899F51FB67923DE8EE2F20D6D235E28D94B9
-8456BDEF0959A3B015462E79AB7B84ECF0299444CE4DEB3C8EE7E2BD23CA59BE
-49E6E2C27C0E787376FB5F9524441F803ED572ED7A1321E3C775D8890EFB4A6F
-A2AAD2B92BAAF651D09E1C7B3059AAB87EA01E1EA8CD7206186202B9115B13E6
-7995708F70E72A38BB9FBC9BAF38077D3AAB047A7B469BDC8CBC1D2DF9AA8492
-74D52FF2AF461CF685C751EC27E643EE8206CFAA38B9EE236E051C1847D58D33
-E2801A3F1DA3205E8F383832356366C6D83A22ED1051FB93AA1944A220FA05D1
-4D5FB1A3D14781160712140F698CB99C7EC5E4EA8F3C8DA526A7F92BACC1C67D
-E04F1A5B080D43B0B8589FE343656B8B84E676ABDC34FD93E24F6D1A0EE4685F
-DE701BFE614C49EE893F9E2D7DA3F6E3110C55324A3858E9406D1F098D53D65C
-C5CFD7A5B8FAD2EEA008188F3CDCB6A3029FCE3E1FB6B7363E610DE04FF30604
-6262C8B4EF036C5BCC2FA76C09DC2106411E40E8382671BEAD16EC56C6EB5A5B
-FF2650A38302C5E0A9E5B0456659225818878FD550DEA6D1C8704C6020D2A9A2
-9728DAC36B72ACF23991C122E9EA0E52DBBD639431A0C4375225D16C7D1C226A
-B09C2CD2A6FE67209668B9B876D777B86F68C3AE872EFECD1730456F168E48D7
-23E7A26B783AFA95962E94AEDB1B158DC3DC3A6DA5C17BEA6F42C7D4D5A33206
-32A767AC088B9BE230BF67353507449272A35F18937656529A7D701C5D6ED11A
-30391309A4FCCD5E7530BFDB769C2F3FBA44C27FF56FFC8BE6BCB316DBBD1B69
-85A75C6726A9C0A63AAC84036265EB952556A0610C2832FD04636488B89E2C02
-528754DA559FBF275565644798D4F11E33892AFA540C1F9573DB2DEC7B2832A0
-A538E9903EC4A97AE8ECE9F42B72EEC9B4B5560D1BA7248993C46DA23A3929C0
-EB18C32E4ADB24350F10F1B703A93BAE3B82D7CB66E0FE460DFE1C97FA5FB799
-74E827C03981CB1175E54682465C5946442B9C2ED1E5AE3430D7E95680D69315
-0603E5B2994FA3666DDB44CD35E5C8116CF2F5DDA46C61BD309353D3D89BF459
-7DEDC647A51267BFF24F029F7C34F4B82B9AA619B1B23A678E90003B710D801D
-FD60E1ED36
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMTT12
-%!PS-AdobeFont-1.0: CMTT12 003.002
-%%Title: CMTT12
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT12.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMTT12 known{/CMTT12 findfont dup/UniqueID known{dup
-/UniqueID get 5000833 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMTT12 def
-/FontBBox {-1 -234 524 695 }readonly def
-/UniqueID 5000833 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT12.) readonly def
-/FullName (CMTT12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch true def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 97 /a put
-dup 107 /k put
-dup 115 /s put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
-5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
-8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
-EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
-02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
-46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
-4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D05DA0555DF933BB0
-7B42D264831116C06C79335D519461E7B0E870A6715E3D74A08D1BCF86E3BCC3
-A43FC6BAD1C68BD9D4AFCC06D845FD1F1E70D7A47F0BBCAECE8396E04591E5E3
-4797F646AFEEB7DB548183F0B74C9BB6BA2AA04E7F5950EC8AE97C741D4B2C5C
-A8E7A8DF5A36A30B5A7592D95E1DBC63EF33C92FE459792CED29E2B8B6919251
-75EF62089BD7D44A6E1F9B62EC802FBE62B821DA1C3B2DDED45D27964AD29ED0
-9FB7868F3A8FEADA87A8E42D52C1EB7229D7C79B60BDA263F2BDB025AE14A507
-098FA274206BACFB4A0A7257D5998EE8F0FDCA79CB61DD1FC59DADD11E16BF02
-ECDFD706CDA1E72054D4EB55AF7BA9F19955886BC0BD6E0E3FE3769C94AF3581
-DFB2BCD67FE2892AF07E858A01280194D8DD7332B3D0A585C87FAB056C2EAA9B
-5AD48D1C9F00CEF8EF0D1408DBE1C03D04B231D7B8D5D998FE0CD7EE19828EF2
-F988EBF6DDBFEE00F04A4A1F4E1A55DED7EF3AACEAB5005F1962C724A017C914
-2936E2E0DF26A55ACD7DD836C6035CBF07981C1BCE3615064F0540A1034C69B4
-E3908E76EF8925D486DF0B4A8E1F02D8AA99585A7C31847AB9382F83880C1C21
-C496AB2DF8E7BD4643B28B704B5F6B53429D3EE940A79135F5BF0396E5B46F23
-42AF406C26D12BEA7A41F332AEB75DF43C15334CF4651A99F602036946B1B91D
-4BB0D2E51C20216D892C8173241AC8FD15A37C3CDD8AB4FB67D8565AFA61C068
-95E3D6E46D7C09BBD09428207D506AD43C693F3C3D787F6A5C39084AE45E81C9
-830900DB50DAD10A17E118FB5E9680B5194716A788FF7514A1167DD1A305FE62
-C7DBA30E569DD3565AC9C80B112E221E3878624A015F6224597D02C9A07B368C
-F9FDC817988D12CB00ABFAB288C20A59AE40E7A75C235938C47F77261BED14BB
-6574F633BC4DE9E8AEABC46E0965AD69748C315B6DB5F264D5E7635BE37E23FB
-873E2488086BA27275142C774A4A241F92E8ACFF0F25E81E2565642D88F77DE7
-03BCCBC437BB1C9EDA969E92CF3423203EEDE585A9371A00BC54DD695BA12EC2
-461AD673A27B24AD38903C82D020A8B235845E40A00CEE82BF1B187AE84E847D
-37D5098039C3B116C213771F69B63DC822F4B45806D038047C030721213051F4
-BD1EF230F86B915B67CC9624DB534F55A1B8739165AB9AB9D76473752C628AA5
-4FE057ABDE42A685535EDF4C814CF00F53E7B520B470A6CAC4480488D82E80AF
-DA5B7A5FC15095787538038AA94AF56018AD0AA7573CFB6DA444E30A99713E4B
-07B1CCBC5DF5779110370C81EC980C9555DEDEDE7B655475DE867CF94E57598F
-5C70B80B05C94C00A2E8B33EEF429E909AA1BB0DD1EDC8E27E735B41BE8D7708
-F9E444DD44F344736EFB0DE4323B4626237B53275CEE1DBE65396BDA86047C81
-25AC606422F5D16179F6EBD2E6B39F838A5171DAC344BFAF5A31A3EC688D5BE9
-FEAFCC0CC06D38DABCB1982B30CC7CF3A0197D82D7CE414156525C452B5A6A0C
-29A5287C47E4ECD1DAEC9237FBE4DAE723F7256D3BC1BC8FC9281A716C93831D
-BB09ED556A845A038BF82B25CF4B2769836EDC4D3BB01B2ED52065564912A8AB
-0B1FE169ECEEEF8D6BE91FFDF1DD67E6E969EC3B6C9EB47BEC81A34CB840F348
-D49AFB71BD8D9CEF11019F6CFEA9C6E179634796515B45211F19EE2917F1CCB5
-FF91F8329B6F04A62C0A430B8794C27D87CF0BFFEA9F5A96CB9D447D6B4FBB42
-1BD54CA909D19569F563701215AAF75F8C1B61F072C3DB38D9666F6D635F8FFB
-4C6BB723EF2094DF5F6D9C2E1933F72DDA6DA9A6E14AF2D956D5135537EF0AFA
-5085D6B9C6CB7B67FA4247FE3D193BE96B85A35ED1313B2255576490F2E0F5CC
-3CAC51FB07EBC0C72FE58C577017429AC0D8B80A21DB1ADB042866C59D1D2947
-146808980B0BF886D3CBD5D883690698
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMR17
-%!PS-AdobeFont-1.0: CMR17 003.002
-%%Title: CMR17
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR17.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMR17 known{/CMR17 findfont dup/UniqueID known{dup
-/UniqueID get 5000795 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMR17 def
-/FontBBox {-33 -250 945 749 }readonly def
-/UniqueID 5000795 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR17.) readonly def
-/FullName (CMR17) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 65 /A put
-dup 73 /I put
-dup 80 /P put
-dup 83 /S put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 118 /v put
-dup 121 /y put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9D6295729076BD8E
-CBC0F4C1BE246922D2482233846A96D867B66D9CF25A1DB661141D36B8506E61
-A022F9EF8BC1F2F674EDF1533E67A78CA29A612AA9268E113C5EB84DA56CEDFC
-D7A111403E6E2A8682DB04368889747E003A124395ECF0C7FC81218552EE7C6F
-60BCFB4120893528670D0E8A4117EA5676915E3591AE5652D003EEF67818A41A
-8882E102AEEEBECBD15DCF632ED246A6A58B6A7780DB6F1F9AE3FDAC8344585D
-E104F2BA2DF06D68945889A2A3B6C262FB53FC670BC5EB7C56887FBFB7AA7026
-84115872CFB0652C6BB330447AFF8F0F665EFD6A41D6DB6877B08052F402448F
-CB21C26BDC900636C99CA347B79AA73AFCDE9762A992CA3DDF7279E5C50F453F
-52098529850AFB1F501A442D6A02E0A2896F81C8AC735AF1E7EE47208B4CC944
-649DF6802EEE813F1456205C6126D7D0B1821AB62DD65468F3A30575E491623E
-0054E2E680E4402E1C8C538DA389B81603BE88D6DC287A076F92B224CD58A0AC
-44B8D490197341808DEF243660971F444A560C747BC6F52707ED42A99736ECCF
-EBCB694A561C3A70A319D204CD40D402FBF937A00BBCBE85DD26C9E3F91B7D10
-D85B9D314BC3AAD5A58B107F5F341BE2C53490924142566417D6BE03BB4977FA
-6635EA58DEB9508E40B9FFAC75FF44C683680CF242FE210519C9BF92483B0A54
-83F48341318BE16D2F8C988FE3DB2E7914581F579D5E323148A31E4ED03BC24B
-C990372DF5F3B0C5FA32EB2CA4FA0EA33316569133C87697BAA2292E685C26CC
-F8CD40A2366E60B47D47CC9D0FA29D2836011376A07F78BA7664DE96E775CF45
-9BC91559A063073A4C2FAAD0893C517C5C46A1425D07EDCC2B57162E3A45103E
-FF26A2D2F98B194256A4B052AAFCC08965A50EECD7B9E8F35AFDF7B6568B3983
-8030655E7C2BEC961A2F20539D617626E8454E3FE9EBD3EFCEF7F63498441DAE
-16CB509BF239FBBE25EFEF07A3E16C9C71EB8D9DCB8403916FB40FD7F4E1A52F
-72F2DFF94FD14D7D49FE775390C17C37C1BA0CAF35CF75D682B7833A83224158
-D54CE962CFBAFB1B2CA50B60CBEB1F8F58DDB2F5470C355ED9632342D9382AE4
-5D33BCA3A0A25EE9E5B39BE5370E7F20684C664EDB48E7973FEDAD9676F9EE8F
-701CD4D8CC9B9EBC06E8C86EB88AD56E15CEBB8E1930E8F711CB6E01D5D14967
-D7E6C1BDDDE2C4D00384EF4CB02877DECC27AD53FC981338977BA0CC0257CF7D
-B42E9BC91AF45D9722461EC3CD9DEAA8011FB855FE14B74BE0A102008EACA2B6
-0E287BB4F466FBFDD6E65A5262B9322F95E20DAB875A10A84572D982E6FC7ACA
-23C0C37E5EB47B8E69C07507B53CDD98CD1B6445E1699CF35B3DA3E0DC56BB76
-F997C40E2ECE47DBDDB707EB527055960113F2DABC87FD9EC7D0AB36B400CE33
-0D54D4F197B2830B43DF0AA802DFB2BF747A4C44B31FB708B2C8BBE1955A6A28
-379C91AA4CC065A50098AEC0B837E180B76801865A43C74859DF18FE1DA1483B
-C17843BF1C7E1B11A8C6D8BB8CDB1D552FE6A1FD0A696A8F7405F2320F8621EA
-17C1A32056C45A9ED35D2BD12D02D8B26489CAAEBF4EF33B66FF4BD9B46E4823
-6395831A8F3366EEA0D0EA88D612DEBF63DA7FAA24DA979ACC1A52544BCAA007
-6C39946BEA6076ACF45722B2B8E4D0823EA2D12B14A98367BB0433A21FBD9F94
-18DF298C56F67ABC9DB1868D431A854DBEDF8E1F49E359A545C75A7AA1FA4D5A
-50F1EE6B45FC68ABF65FFF257964E4E50D8B0C1FAF498DFC554073697C2F219D
-4A68DA9E873B270B9C56F0DDBC9927ADAF9203FD684DE615F68C24ACFFB44690
-89C0D5322049FA69E7FD00EFC9C9B2BD177B5B339907F81C31496662847BEC1E
-56B5DCDF4FE618970F4268F475B2EF7E0F28CC986DDF098E59DDAD818649CC35
-4080C0867A884B8177A6880F06F1E5CC130AB4243EF8DD8032FCF390765BAB1C
-1F0C9728EEE261A09F8C1D7ABC7A6B1550551BE2A7D19D45B656650DB00B3A5E
-B3E1186043E173BB4DD5EFFB379654F88146382AE3F7196F099BDCD6D245FB6B
-AA2FA9B6CFBC9F0CD52798DDF2F13874BDE5B124DFFE0DD93E24C9DAEAE4C3BB
-71A9A13AE2860F620B4EC789F95221015D9C510CB4AC775EF69DB9E32E59C896
-1AF82C9F0DCDB4812A37761859A3D3BA0CA57F244489C78065346FFA78F5F7C8
-0B2E8CBA9EE62FF5C27369D0BCD52857D40F1FB8F8A1441B83565A4150AB1945
-0B54D6E49F66389E43096269EF5CDD39526A288C0CB81E324E75D326EC9A182F
-2CD966368CE300B41873B08E17C3E6BB51804460D2562AF5A12339966F44CD09
-114C6809AF246B5BA6937631842CB9417781A58944B6BA4FCF961465C208957C
-81A662D560D0F81BD3CB53C06B6D979F04F6121CCFD5D52702CBF6C70C01EDBF
-2040AAB9CB144321E68C4010E0E98CCA2603EB55DD62E881DB621C37EA4108D1
-528ECC7A0121B57C6BB1E26F8AE7161ABA7E88256D2D6A8B7CDE2E730D137493
-3FF628EF6030DD2330D747FABBA03B44CF600418C245C388F33EC5559E7313BC
-4B530C4FC12530D38B27D6408548F25FC084DD0523B27D29D6518D3115AE7755
-37162CFD4CF528214466FE525B13782F9C3CD78F3D6C7423E63A134C0A371F15
-10F4ECE1D482C647B563D3D15586F80BD9DF7381BD53927825D5AEAF762E1CDC
-3BD184F345029A95B3AD4D1B66E79AB4F0809418C0CFD4D503457A190D02F134
-3F57FC04FF655AEEB783D6791E4EC300755861837D3D50649F6B7F60766211B3
-8148F8E575E28D6C2DE75B15E722ABFC6DAADAE53D89FD295352781DCC2CFF6D
-982F6DB778D6FCBF1B7BDCB53F3A23AE6EB499BBFA96E8BE04C3C8E5B660EF24
-01EB842DAEBE979F2C2DB72AAB4D21627063B1D3C6CD40944E4CB81655698FBA
-A343766CB22E392E5DAE01DB33A00918D6DAA07F2F38B336A3C5DF3708865E75
-0DE04D3AFBCA27A249E97377D5785B4E28EE0E93F7D353619C200DB967372ED2
-153BF8BE945474266EB2FD30F80042A11B7E3586DE4AB1FBD4A741D36DE583E9
-1CA25DA345520AA60634EC819E7EB493CDB128BBADEC3890F055455F060A1100
-D5A41D7B180027E08AD6EE7E393DB9F83799544404FE397F557773BE6A130541
-157C0EB37E036C94825B5090EF85F8B4E3DB72895D86687758C20EDEBD6D1079
-196E9949DC6ED0113571C70B150B37E446E319EC54D44CC0CF6A14760953DF4A
-D0E1F33A54D240E236AB63B35BA8E071D77776BE5B9312245F2C6E4FDB4312A0
-0D9CF723E7D9A3D8546C4739C00C301A89ABA60A02757AB1A0AC40B24CE6CF12
-5850485B11E16646D7150795EABAEB08364A53161111F46A7BC3423A0D3BEB69
-BF15726C1F8363914945DEEB29CB8766328318AF3B344FD6D77BBB92BD7FD161
-93356493D4D8252AD125708D47C124E44232FB2BF7DD75F87889496DCDB75D03
-F58A57D4122CFC194B75A9E9C4789C9A33C0435FB4ADA16AD4A6191928D1663D
-05FB8152C0AA176FBA4755205F8A66713404787070757D3721ED6E6D55A59DF0
-C92BA8F05EC7BE05D0A2E66DE85E75373483EA3BBEE0F0DFC7E2FA5FBAFAB118
-058D095AA71FDFC8AF37E5A98406B64E58BF476C6926725D7EF3C2346CE3F662
-1E5A4A18D966479A37070859014719456EA2C7F23E68E1AB2F25ED3A0C00A18C
-DD403506923BC983F89CCA125780DC76A411472E38173BC0DD4CDA7B43E13419
-B5AB0B9A35E77C58BBA12AA4F5C7EBF8A29996B059E4FAE6809565570442AEE5
-D56CBF4407E1CD9A4398B1F3ADFF023F64B230E3D29F526B62D964F5C8DF801F
-E94295AD85BD9E1C18E6327977260A871E921C0745CA06A263E335E344686E7D
-D6FE3ADB4EE0A7E462F3C00873C3E95D183CCEC71C0E5DC1D2FB310B28FC3611
-67C23DE336C374F72368F4973052B48E39969305791C986E6EE35D0350571860
-3A8ED849712CF21AEF444BA390644E8646CCA16559BA4642A5800827A0DDC453
-7CA0818BC47DF6348A5209A2F0A10CA39840CE6346E89CA0E842BE8692DEF25C
-4623A5A0E0B98708B9492E9F564324BB3872D6B953CA59E9F393C477E2AB85EC
-C557D333E88C111CF995FB79D9432DC94C2BDB3BFEE13C0D7D1BB920DAFA6158
-8548447AFC65CD5515D5021E0ED7D213B0C08C35BB424AA91885CA023D7AF767
-B83E619B15DFEF5588D2F0564296E14B5A6ACE03751E1016105C51BE76EA5ADB
-4167BAED2A8899031FD7BA05C410ADA25ADD94A787EED1A7AE133B0568B1DBA5
-44B41BE013782CFCA3D81E8E8210DD506ADFCE7DC7E792EFEF438221164A7D1B
-5E7089F476240C5F94988F081943F24DBF7CC3D1E58CB89E1C0C1624682CC3D8
-C95815ECC9183A4B3E353C7F920B7E64086E01672DAA7C8A81319BAA03C1FBB7
-8E5E84CC5BAE0E107754794C755B7AF00953504094E1A9DF357D51B578259613
-8D26F0BA26AAC459BBEEB90BCC98B865EDD26AA4DF533D6624EDAC762C446B6F
-CF9F86DD2D8989D4655775E662B93BF51805EE3CBA0AE2293D95F166E80973CC
-82C53042D0249C598B0821E9E7F218BA6114EEC86C158F277934F2651490B723
-7F0D0288560DA5BEBAFDDF243048E590871AD18B3B220EC56549004DF122AA03
-BAAD6971D790BC644369FDBEE74A324083CFA9496C2A333774F06E35299242BC
-F4B26578907CC5AD1893613F2B8622CFBB7B55810162EEBFAAEAB2A6D69CB72B
-D7859C73843E665125FF450631F32E64F13A6207F368103C7A7318DBAF2560D0
-F1CDD83C3E48CB30C62AF1E0896E1962C655D9ED98E1BB38477C1C60ECDB6B95
-067D3A638AD43EE886338F7AD2D2A574CE6FD2E21F6FCB4220EFEC85ABF8272A
-82081CE70E4390A74EC717F1DDD168F4A4A080A79EE2ECE0F98A96871DA4B52F
-78441601AF47763C2219F5A167604C32F478D498835EF3A6167936994F7C7139
-3019FF43C97E7978D3CDA641C1E391FEA572D308E759F28DDE2B40B5BC207A4B
-C5EB6A93EEE26782016F8B6534420BE4D790A2E1A65B6CDBE9468152230384FD
-14E9AE84418A44F94E6825DD7D77D0BB5486DE26A692B3DA96C81FA4440C5D44
-8E7F3CAA9B8DF38F87E09C4D78841F629F78F4E7CC8580CC44E59E5D9AE8B2DE
-C0682F793AE7AEC12A8AE688636197E8A08FEB70EFDB6203681A60223B9B0D39
-2DA656E5E99B82130D4BE38D7AFE18568DD30B0CC3C73C1E2914ACE11A65334D
-A9F18135E7B86157122CD221C33C62012FFB16D2D2F3473A53BE3E7B9FD4303F
-66ADF0B07155C7B9B002EA68C6AC7247EB3CE7D2670A60138049DAA964F86A05
-22983EDA7242E6BEEB90DF61C937399B2CE1061DF1E551CEED4A80D86C2D4649
-C9FF9A1F93E96773CD392478D5B70D5336A03A274E0A6EF44BE8CB2274324142
-706BC2E340DC944339D647961FD7BF29944503B4AFCDC69A706AA6B0F6AB2CB5
-D220A96ACC1EE5E7826F6F75F044224E5260D581AE761AD0C752A06AA03FD935
-FAD65C9EDD4E5505396E331D45DE88F0D1A4303D766ABE0702C17E2A7F53C0EA
-96A4DEC5A6B6186F5DBAAB05DD78E38AFE630465BEF0EC66ABA9C1C9232214A9
-795D105C33CF069F6BE20B179F4CC9F484AB63ED25C1212C457DF62CA0D56E20
-608572216F2D4C09010B03A8AA6D287C8F514BEEDC1C912552CC2489858BF4D3
-084882CE4F4B6FB9EE27C0168671E6DA154018ABEAD013C88E1D3EC918371251
-63D95BA0FE20212C20AD3F4DB614EE36B488A3F55D94C1EDFCA8E68E54A1EED4
-7DD168DCCF07C3DDB5E2B499DB5635C5C5056A7438120DB4839427D07F96AB8E
-F842E285243E40259F6DF029E27779CCF3D3BD7206B2C341045A5A4AABACC2A5
-91C6830FE05ACDCFDE99046F16F2AC183426ACA4A89FE5F09B7EB2F811BB5FB5
-AF073BDA2886070B2327D582DCBA66B47E8948C3BE05E837BE4B81402A583403
-74FF9E938F0E9DC3B1CB81B93DFD4070F9EBAED40BA570DE8F9A5C2C0A097311
-22A6065139A6580E332473E9410D9F4C734794F79E41D0D437CEC7381919DF6F
-A24B170E2BC97A6396A4E3AC3D844AD6E2B8FCE1C6AE97DFC5319F49130C3D6F
-AF2541EB2384D5D4CCBEB976846EF8C2165DBF706112BDDDEC9A57D157F5996D
-95229FD5C71B885D16B177BAB06B9DF5740A45C2A005778EE879193290419C0A
-A4A339029E37E685B8A05B111DDF94AC19B1D85C8E6026E57E3D3B373C08557A
-F96E6FE3916695ADFC1F0BF5D558565F42A71C61ACFEFC9026424397F0646642
-7EDAA05794BCCD164A645860B57EAD53CB6899B18C6E9496EA4DAB0A0C272639
-DEBC4FCBA94B3BF123F7771F602E7667C8F56E12429669F2219C7D8E294BE07B
-71E88EA62F5616CAAB7C0198E6FF12A348E36B306FE2684A401399431B6A84CF
-B46EE4BAA0F4099E65E9AF3B70274EDD6B6524F4FA38C23F9CD5273EEDC8C6C3
-E7312B6E0497C05AD3F3C246638F01387CC11DBCBD287ACF54D8E24759F51415
-35ED64132EF4158F54AB9F4D567482B3057880490F805822F71E7E2C52F7BC38
-8B1F803AC3731064B90E5E97AA3351D17E73DC2FE526CD6C91158636E395867D
-C1150FD3BD12493FFFB813AF0D08C8ED0B7418A2CF90BD5B783364358605D075
-5DEA95A9299C0654EFB28E2FE8A41358A0DD124D0314A27558E42ED5F2D74BB7
-056DE04D2CF13B9B804A3CBBA29BC155A3F18B8B48283194C33CE8291677E1EF
-0721138F8E0409D49BB99F217607586D2DF00C29A25536E21924B4CF6702CF85
-C02DFBFD2AA4DE3DBED1D2C02E21052A8D10F96629D0D18154923638FE0C48BD
-E2DEAF11663E20717EA77A5453686AAA39D6FF7919AF09B1AD956FDBF734F49E
-262F3076F62E77BD45122B55A5913902D9F91C4246FC235BA9C0FA4A96994291
-830638949BED423387DA2D455A3C9122484EFF27F5367D1D3DD27D207D973815
-965E1CFF36F43C653ED406F65348671D9FFAF55BA3FC266D438AF473181B7801
-164EA3F04FEC870743195B3F467DE36B3719BAD9BF15A18637A314C887D46673
-445BA3C212749B0A33136FEE9FE2C9A13D62E7ACC96378D257FBE0EB06AD4D4E
-D41976AB92AC720DFD33B0677062C32E6F5C992A0324FD26E984B5341A58C190
-D20EC3F1144697D514D9157340A6C9F82E62AD8CFDEE59F6FF86C6250CE33D6B
-BB82DDB4F65BEFC6F6D0E4044F7BF307CC346E2FFD191846E3CA288C6F91CB71
-5FDE855FEC5E38816CC635C470BF15263A10A409F0BC4877F7E6D4C223E3564E
-E7BB5B320AAA5AAF4F32528F7413BFB97C70FF5E6843E1FE501472129BC9758D
-7531BE576C75840CBC4CD3E6D9E5FF52559B68DE6E7827128BB2ED1BAD43F36E
-A0CB68C1A147A7093EB02062AC5492DB7EEE08B1BDB187E15339A66269E459BC
-67495937B4317AF66A498923322B087ECF47B601C26E253D223A784DB2D204FD
-0668BD403A73723848018B7C86B627B9AE0BD9038F567CD5F670CAFC5C4D86FC
-ECA211B713ACF8C1370191161CBB6C2592E8B9DBF3471133F2D9A60F15D72F9C
-5E5539D59A6A7E124D9A38A6FF6EB7C71990716F88E1888295584F17D49144B2
-B57252D7D87CFB7BE009E0E1AF68C57E2041CB837A1F9DA290FC07240D616876
-CBA29ED23952F977F27ED97503F6C6CB48DA6611E0ED9D90FA865D099740C6CE
-8A5DDBB1D6550B208321C365A5104F9ABD66A9238B8A2106AA74CAC58D1163F1
-DC4A62013C0F6DD8A3E8E1A6CC6E553746D570A744863FD8EA705890890AC5BC
-2F0A068C740572F045B32289A2AE66CC44A1C13FB8BBD4E1834995731D19B47E
-7C2FE360AE79DACB95856B01EE39EB3C7C9EAEB3D47348C47D928BC883B8E760
-6724D80DABC4D736411942BBA8CF08157F21D63C18924282193C5C8E44E09048
-FDCB8DB2E01C8A496FEE2CFC19A3A0EACA508237C8BD988ED6D33D01EB548B14
-61A546886AACDAFB7C8CA69056B1F428D72541D3F17007CBAB23C8ACC305A655
-BE646A9303F9D2FFA3E7060B7D0226EDD997605E246BFE131463B8614464591E
-425278958D87871AA4DC5D3640060B9A435BE23AB2DE953A5365623BAC1A90B0
-8268AB3A27695A5AA2F8DAEAAFE88324267FCF88909155E959F90FC2656C6B17
-7B1CD6735451BED9CC0CB038F90AC4B632A9AFF99D1B4E85661C85F7DA8C5C3B
-44322FA1D86EE66E4CF4FB3176B72AB7C9E33B530B4B36E2C05190EE3A6CC64E
-8EC29CC693DBBC748C529600BE05904A48F62C4AE175FB7707E9A28D72C4350B
-EFF065D7D52105471AC6949CF4E9D2E19BEED19913DD3996589C03E5471B1883
-B5ADD0E76316966869433D4D3C2D68897AD54BC0C1056A85F539FB568DD657EA
-3AF8B955FD3EBD10BDC86B94651A10010EAA2D7B4CDAA9D04754A2BBEEB42462
-7801380BE02FE9C387FE93CE0B2E1D0F65BEF41725130FBAEE89B44B26490D27
-DBE1D0D49D3B70ADAC4B2A46991E436070239AD0154644FC4A2773AD68558ADC
-A1AA62ABB46BB0FCE130DA7FC6755116118FF381764FBD03D1BD10AB0B8F4379
-2FE1C35AD8CFAD84738E5A5304387E958037567D2564B00219AFA30EAF2ED876
-BA2829A4D55D828E507C9C049796504220AC52CB108DBAEEF70149F452D85BA5
-F394C52C09A4A6C9434C40DAC48F9C126F06A5FE34240A16F69BBA11FCA9AC76
-CA1E62961CCA4591C6B96A84E7AE4964CEC00E7A8B003B5D8354CD1200489304
-0FA8BE1493A2408C494EEEBF30EF1BFF488852ADDCE5D087652063AAE0BB53EA
-ECF423B32495E2FC461F2F2A18B639FD6CEC09EB7CE1BDD115B5DE66A1B3FB1F
-77DF9779C16B981546E71198BBCA746E0F0ADCB09EA0F6F92608D30B9E77A082
-0BEE151189F51CDF0B7AA8AFF778DFEF01C988224506370FBE7DFED69D73FF45
-371961A0888F0DF215E909EDB9E08E56F50FFA9CDB0EBB16BED3956A75648DAA
-E0035E589C65C12BBE6904794F8C19C23A830002C6E28217731DE5A0CA604EC0
-ECC0B451822F81C725F5330B1C77A5FC085E2A11667AF816D79EE262B99597B0
-750F27E862B2D7D9FEB5DEEABD05CAEAB50C5DD1F8E89AB2A6A76B6FD4F0AD21
-81E48E86AA9C52E272C0761D3264F78024C493058A5250DCCAF943CCF4A65FEA
-3106D5359A584EF79D65DAEE9EF284524D0A40C6A6DC5033C49D740811673194
-CC1177FF10B3414334765C2BF89CA1C7D17C9EBE9486479B475A4513B3ED8AB6
-D1527B1146DA7325A9915A9E84520C043CD5806531B13773EB76B45F9E96B800
-A8C0A25FA1DC2EDB35E91AC6ED1300FFC9EB6D646155DC9FF8D12A4A676D506E
-7F15BB5355FB7F84B2F8AE9C975BE738EB0E855CBB513B391B21A4F5366921C1
-6A0A2795C5ABD2E24A70B0BDB4BEF07DE92B18E47096E2C33731DDDBFA0A0B01
-3410CF285FAEAA7BD1179CC76799C366033FC51E50569E1528D7C978C45EB936
-AF222E13C08ECC2A9EAC3B482DEDEE702BCFE3D3A58E19E74018AC6805251FFD
-BC6656DBE1B4C00F76DF3BEA8BBDCA1721ED61BD99AE4A61C0ECC9F295CC4B81
-FA6F1F8008BD5011DAE4CA73C55CCD441A5134813EC0202D634CAB14C4FDB927
-6FE8FA7C6A8DFEF29413A124EB0C6FD7217F93997C5613F02D5436BA7776A913
-B6E940D4FF0580CC1B34DACB0736ACF3A534955C9355B4B1E00EBBB6D5CD76C0
-49A1386A5552EEE2EE9A1F0C73DF8C00BD31CC14095385F0CD4FE90F8DC42E07
-588B28174D701A873121F1C71958AFB10610D90D436B1C23D8E3C4662E08646B
-E73DF766E2BB4A1DCA606F70A6DD00499A3C842D826A6DC72EC3441F71FB00B7
-AD814CB8716A8955B9B61CDCD11AB857BF04E211868E4B1B158B4BB2E60DB2FB
-25EDFB42586CE6C361A180F736354037A8E31D86231892E301CABF90DCE147DE
-B44CB65C1E5F046C5B8087201B36A634CDCACE4846118BAA464D6990FB281D13
-A9B75142A4F86E274FD7F8487CC56EE38EDBB8E688337D8EA76273B98BB4F694
-BF1F5D3C7BEE18519C72E397D87F57AA7FFE59BB49BB70184E3EEB54B81B9A15
-3FE205274C24EFD4B8388562B500D672CD32D96A0F822507C352C2BBA12450FB
-72956B639F3B56F43F77036B3A607687CA35EE92C6E1E0168709CC2454865997
-D89D968D384548DF558E27F1A213E09E5CF339523FB31BEFA5E45A9A874A00DC
-C2843351AA96704783D4620EF95475925587F37C889BE748B33BF5D3C8D99C5A
-95BB2B55B1AE23879901AE64B434F3E01C8B4493FB282F561393C972BA7BAD2A
-503E18D111ED3C1BA70AE497D01C31E6D295C5B57871020771D6A96D22B33D14
-AC4EE6F9E4698D6BC4AE0A872705BDC1E0546697B5DB2A64CE4A1F400E643ED1
-5372ECB4F2B1B0747317DA34648E590BE041C1062B23F92013A6651BD853CD0F
-2F49419C82435299A985075647C2B8F505F1182D24A3390A0718F3C255025BD1
-6919DEFD68FDDAF4C35FB75996FC3D0B793F888D1FF6B09797D8A528524677E5
-4A04F14D4EC256FFBE3846089ED716DD3567519F5F0EC8BAB700ABE6B1EC1080
-801653126A22D50D8F1964C77A371217ACD50C6D8989B3E8CF29A0FD20A5F896
-A1AF938DD27979543EEA1BA46D6EFCC1D101EE74AA0D5D110F8D1404DA4DBCE9
-4C4AE92FF9E4D7AAC3FB79BFC30B566DD1831B1D68BD0E067D963A725550D57B
-0F652A65A2AAC98FD9CD979DCB81EF7A2A18A06661FF72E5CD5D593078D4A145
-7DB25ED6480383F1E3E30085EAE0F5230FCF4BB397866E5D465F7CE1FD84FFD1
-39FCC779F3072103DA48DF38BE65355781BC259C1DB6A4ED0BF805F51BFECA21
-AB0AEF7ABD154098EC0F3DD76B136833BCFD9222F331C8AC1456BA95080F9C3E
-7B05A0CED7C26E24B03C7DC4245F1E3B8FD7BA40578CE7D61AD1E4A708C013F9
-8141F6834DB125035CEFF6A72B147027D49068B1BDB77DE7563F12994F933960
-68A87C4F50272C91B859CB83CC6488843529EF6F55977812E5F766DE23AF77B2
-DA859379045E0BDE87860BDAB3D0D37C033C05CDA9680B652FB1E2913B766CA2
-BA62CEF6BE7D6B266672D994BCFD263C32DC29674B45460E38BCB2BFCA4844D1
-1DD4BE395315946DB693E20B21031EB41C20A82495AB0E49D2DCB51D52B893DF
-48A16E3180F04C9AE15FB60FBEF9BE5A80D33C51C9FB97B89FD9891109E25F05
-00253805C693E8FC4D58DB6F730D1D80C7F4E5ABC64F88F22D2E51D1A353C307
-5D8E6FF6A1D17347BDE026E6D1D00A2195BCAD9A4A375275EA6509FC3044C5CA
-219840C08C3335CD820377534847A16EEA2EEA228D9A5EDFFE34454012E9AF65
-FB638246ECA0772825C3D72B32CF913DBA6921B35473721E263C209A7DC6414F
-C066328E084F3E3D23D8DF87B70E31EC2E9479938162B353A15DCB1320DAFA11
-6BF06231AEBAC8364AAE499EB21E4C2C5238B3CF10F2F02B39AE0B29B9BE6C7F
-86C90B6209B774317B5422BDB058AADCB888E9BDBB1CC80505089BF8A7281D3D
-69F98EFCFB87BEC440009950D0ADB1EF1FC32F4265ECE9E7AD363EBC604389F6
-82CAE39E3FE7F3C17A92FADD0DA81EF29D4BFEF9EB143C9828BBE3FF15EE999A
-A7F1D8F45647708B6AE7820AF8B82E8BDC890F2D535E3A58A94E16EA4B055FBD
-9F4F24AF32BA7395D030E6D8D3FF0F5117CD5E8CB108CC1071EE9BBF59E8E90F
-17FDC474037759BB28B9AF3DDD7E4D50F02AA3D2A161ADFEC0EB24566EE286EB
-50D0DBC27A38CE66F1F78C44C3BA373EB0C5CBD11EBCDEE495A5BBE44E9CE999
-18E50F7B65E4EF21BB51BEF70CBD9932D182E67063BAACD5DB4FC516D03F8951
-D12D92887B9E726E064E1E1F0EC4CC09EC8A90F36A358012E5B5D7749B11095C
-F8027A8C4F8D58C67EF58105AE39BB0276B7870FD90B45D73260D54D9977DD0F
-F17EF66C257ACB65636E2FB1EA6EB9B66A77310A65C9F328CB212B612F1D86D1
-02AFCB6EDCB931CDFC0DFB5D8C145096878DDD85D0A621BEE643FB3991F6EABC
-5C7DBE8FC841A401D00B7EC7C3867D0A51C1264B659A0F0D54B3733BEBA8037C
-772057BE4EBAAA8B01E4140DCE5DB31943121F1734F4B5FD0E3F8C71FD0DAE50
-8A47BD2C7F464D787CAA1ECF68689A16D650BA5890AB06689B5F57ED69DDAADF
-8D7EC1B634B294F523BC185FA525C6ADBAB0E0FD033128395B9F39D50722B2A8
-7CF8D529CBD2891F59876BCF302CCC06E9A301663B1D29F5F9B5B047EDB9F9F0
-96406FE1CEF3788ED72D1FD1733239875470A74633545ACC6E1BAD7A32FBFFA0
-9D3AAA7FB6DD0DF858D316D753B1AA5B38AB6F19A1606C68E5DE529E05F95BF3
-9FF1A51B4A8C0FAF6DDC0F2B7714A5AE4D16A1724730901236C637873129C435
-384A6D16BE80A7B5831F0495060AE8D3320018FDD68E5B3AD55E7D82D5E49933
-EFFFD35E73B26D813DF674AB7BDACEFDD5141036F433394BB5EDE175FC7E48BF
-C9BE85ADB290549290BB464AAC93F4C3D52F5A9136F8C9B00063B49ACB25CFB5
-E5F9FF277172FEAD8A36B3AB87A2D82B65C78C59A470C94570AC8D0FB3BB6919
-4853AC866CD8890A73CFE28705B379B09C4D25DC3AEB0ACA921B98225C27FD47
-52A7F9071ACA940E605890F35FAD92C4D1330773302591720A70C9192E5FAA75
-700AF91056CD02A1D54129A3C573BCF54FB3ADE21A23212556673BEDD0F96F42
-CDDD606045D5EB18E12488162DB826FF09D0EF4C2B9DE91B6D1A4AB273CB63DC
-F22ABFB8615FEAF4EEB614F3D7B3AD83B35FDA4DF8DDFE65599BB5EA87B72CC9
-3DB1C3D31CF99E2B9A8BB322885EAB2978E688CE00BDFF62AA653F72AA79FC5A
-A53FCD50205C0ACCAA5B2B46FA5A4D2FDDF27494C1F02C347941CB2EF1082D98
-D7B0407ED524D4D0D24FA5C007D8E9E13B3581086FFD40E1B317152805DA6A8D
-339B2F0CA3BFEBCA120414A5EDBA787DC0DF416DB643ED48C5AE3E1F7A91B4F7
-4898E267DF257D517700409FC72C74E267C19378D7B74201E6B2BE6FDB23138C
-ED4A081628F6130640E6837BAEADA2FB35BEB16CD781386E951CE793A6F1689B
-DEA3D1B479C33B43788DC9B61FCFC5CE75187EDA9E08C342CFB7DC624B03223B
-F83C762189575E839A54F1AAE01462670E5D30E37D72AA9EB4F846083BDE9010
-232A026C3369B88A64992EB292A41FFE5B5FEF348429C26BA53F936D18613DDE
-F50DE424D32D197B6482586BFF7659EC47723E3C8AB729B8050A7095CB757842
-DA63EA526AC4083DF375FA41CD04B1DCCEDA0C85EE4407CE858E2FAB980FE0A4
-31B02C13E6FFDD3F94E3DAC133B4DF54D2058E747F29F42782C5DBB6F5AFEC6E
-10E1C0E143BA081061948BDCCFE0ED68FB0CB360CFD80344459D2DD754FED744
-0721973DE17B998B5EE7B2510524D93ADCEF1102BA70A0F24ACDCD364409708D
-2C0CBAEB725003635E2D045711E6A84AF6F73BED391EC03BA777C9A62DEDF821
-697D6CF90BD4FD840A567A3191BE37677C6C6309CDF2670FEB739F94944BD82D
-C908C9BF333C6D2213C8F5EDD12742708009DC4B63ABA99FC3C84565466FD369
-7DC0FA50A64DD755A62E78DC9625C7424BA4CAC2F8AAB5C2BFE2375648759AA6
-52D842E15FE76EB4273E91617ACF2F3BC395A4F7A7DAAD9B18B9ED21B247A927
-ACC803C8C3ED6720BF7399F4FDD3F84241820A323C96BB95F8037C618DC820EE
-1692DF92CA48E08F4686888F155ECDB3DA21BD4A4F6EC2D498775D1163921B44
-21F3B4C6F2C8523ADA57D15B1C2BB6C5A9D25E32DD3A19CD6D6CE4E1B5691240
-F90489EEFC20F0C0A3E8FE36D61287067CE94CC364320F94A95CB244DC23C7A4
-8B4C2C5EA46AEC0D4D4B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (informator.dvi)
-@start /Fa 173[54 3[59 78[{}2 83.022 /CMSS10 rf /Fb 134[71
-71 75 75 83 75 75 50 108 1[75 58 75 1[58 58 108 108 58
-58 58 46 58 100 75 10[66 75 75 62 2[33 58 1[58 75 1[75
-75 82 75 75 75 75 33 1[66 65[{}40 83.022 /SkakNew-Figurine
-rf /Fc 133[40 42 1[62 42 47 34 35 31 47 47 46 47 72 21
-44 1[21 47 46 1[42 47 41 47 44 84[49 12[{}24 83.022 /CMSSBX10
-rf /Fd 145[42 110[{}1 83.022 /CMSY10 rf /Fe 128[42 5[44
-1[60 1[46 32 33 33 1[46 42 46 69 23 44 1[23 46 1[25 37
-46 37 46 42 12[60 4[65 5[30 4[63 60 59 16[42 2[23 28
-45[{}30 83.022 /CMR10 rf /Ff 134[51 3[54 2[38 2[49 54
-81 27 6[43 2[54 49 12[70 9[50 1[73 15[49 4[49 49 49 49
-3[27 32[57 11[{}20 99.6264 /CMR12 rf /Fg 140[74 7[74
-9[74 97[{}3 143.462 /CMTT12 rf /Fh 134[70 2[70 1[51 52
-51 2[66 73 111 36 70 1[36 73 66 40 58 1[58 73 66 13[73
-2[90 6[47 7[99 65[{}22 143.462 /CMR17 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%BeginPaperSize: a4
-/setpagedevice where
-{ pop << /PageSize [595 842] >> setpagedevice }
-{ /a4 where { pop a4 } if }
-ifelse
-%%EndPaperSize
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 0 TeXcolorgray Black 0 TeXcolorgray
-0 TeXcolorgray 0 TeXcolorgray 407 797 a Fh(Informator)42
-b(Sym)l(b)t(ols)g(Av)-7 b(ailable)43 b(in)g(the)h Fg(skak)f
-Fh(P)l(ac)l(k)-7 b(age)1500 1038 y Ff(T)f(orb)s(en)33
-b(Ho\013mann)1592 1233 y(July)h(18,)e(2013)p Black 0
-1460 a
-tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end
- 0 1460 a 0 1460 a
-tx@Dict begin gsave STV CP T /ps@refangle 0. def grestore end
- 0 1460 a 0 TeXcolorgray 0 1460
-a
-tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end
- 0 1460 a 83 1543 a Fe(Dirk)23 b(B\177)-42 b(ac)n(hle)22
-b(has)h(b)r(een)h(so)e(kind)h(as)g(to)g(create)f(a)h(n)n(um-)0
-1643 y(b)r(er)34 b(of)g(the)h(sym)n(b)r(ols)e(used)i(in)f(the)h
-(Informator.)55 b(They)0 1742 y(are)27 b(no)n(w)g(a)g(part)g(of)g(the)h
-(sk)-5 b(ak)27 b(fon)n(t.)p 83 2878 1031 7 v 133 2971
-a(Command)289 b(Output)p 83 3019 1031 5 v 133 3112 a
-Fd(n)p Fc(wb)s(etter)431 b Fb(f)133 3212 y Fd(n)p Fc(bb)s(etter)446
-b Fb(g)133 3312 y Fd(n)p Fc(wupp)s(erhand)262 b Fb(c)133
-3411 y Fd(n)p Fc(bupp)s(erhand)277 b Fb(e)133 3511 y
-Fd(n)p Fc(wdecisive)348 b Fb(h)133 3610 y Fd(n)p Fc(b)s(decisive)360
-b Fb(i)133 3710 y Fd(n)p Fc(equal)525 b Fb(j)133 3810
-y Fd(n)p Fc(unclea)m(r)456 b Fb(k)133 3909 y Fd(n)p Fc(comp)s(ensation)
-201 b Fb(n)133 4009 y Fd(n)p Fc(devadvantage)196 b Fb(t)133
-4109 y Fd(n)p Fc(mo)m(rero)s(om)331 b Fb(U)133 4208 y
-Fd(n)p Fc(withattack)316 b Fb(A)133 4308 y Fd(n)p Fc(withinit)451
-b Fb(C)133 4407 y Fd(n)p Fc(counterpla)m(y)282 b Fb(V)133
-4507 y Fd(n)p Fc(zugzw)m(ang)348 b Fb(D)133 4607 y Fd(n)p
-Fc(mate)525 b Fb(m)133 4706 y Fd(n)p Fc(withidea)399
-b Fb(E)133 4806 y Fd(n)p Fc(onlymove)359 b Fb(F)133 4906
-y Fd(n)p Fc(b)s(etteris)416 b Fb(b)133 5005 y Fd(n)p
-Fc(\014le)602 b Fb(H)133 5105 y Fd(n)p Fc(diagonal)401
-b Fb(G)133 5204 y Fd(n)p Fc(centre)480 b Fb(I)133 5304
-y Fd(n)p Fc(kside)537 b Fb(O)133 5404 y Fd(n)p Fc(qside)d
-Fb(M)p 83 5455 1031 7 v 0 TeXcolorgray 0 TeXcolorgray
-2001 1467 1007 7 v 2051 1560 a Fe(Command)265 b(Output)p
-2001 1608 1007 5 v 2051 1701 a Fd(n)p Fc(w)m(eakpt)424
-b Fb(J)2051 1801 y Fd(n)p Fc(ending)444 b Fb(L)2051 1900
-y Fd(n)p Fc(bishoppair)308 b Fb(a)2051 2000 y Fd(n)p
-Fc(opp)s(osbishops)192 b Fb(o)2051 2100 y Fd(n)p Fc(samebishops)223
-b Fb(s)2051 2199 y Fd(n)p Fc(unitedpa)m(wns)d Fb(u)2051
-2299 y Fd(n)p Fc(seppa)m(wns)321 b Fb(q)2051 2398 y Fd(n)p
-Fc(doublepa)m(wns)226 b Fb(d)2051 2498 y Fd(n)p Fc(passedpa)m(wn)259
-b Fb(r)2051 2598 y Fd(n)p Fc(mo)m(repa)m(wns)280 b Fb(S)2051
-2697 y Fd(n)p Fc(timelimit)356 b Fb(T)2051 2797 y Fd(n)p
-Fc(novelt)m(y)431 b Fa(N)2051 2897 y Fd(n)p Fc(comment)324
-b Fa(RR)2051 2996 y Fd(n)p Fc(va)m(rious)441 b Fa(R)2051
-3096 y Fd(n)p Fc(without)403 b Fb(w)2051 3195 y Fd(n)p
-Fc(with)530 b Fb(v)2051 3295 y Fd(n)p Fc(etc)598 b Fb(P)2051
-3395 y Fd(n)p Fc(see)559 b Fe(see)2051 3494 y Fd(n)p
-Fc(ma)m(rk)m(era)394 b Fb(x)2051 3594 y Fd(n)p Fc(ma)m(rk)m(erb)d
-Fb(y)p 2001 3645 1007 7 v 0 TeXcolorgray 1856 5662 a
-Fe(1)p 0 TeXcolorgray eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF