%!PS-Adobe-2.0 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software %%Title: graphcode.dvi %%Pages: 12 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: CMR17 CMR12 CMBX12 CMR10 CMTI10 CMSY10 CMTT10 CMBX10 %%+ CMSSI10 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips graphcode %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2007.03.13:0434 %%BeginProcSet: texc.pro %! /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/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/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]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/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 /p{show}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 %! % PostScript prologue for pstricks.tex. % Version 97 patch 3, 98/06/01 % For distribution, see pstricks.tex. % /tx@Dict 200 dict def tx@Dict begin /ADict 25 dict def /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 /Atan { /atan load stopped { pop pop 0 } if } def /Div { dup 0 eq { pop } { div } ifelse } def /NET { neg exch neg exch T } def /Pyth { dup mul exch dup mul add sqrt } def /PtoC { 2 copy cos mul 3 1 roll sin mul } def /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 /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 /x ED /y ED /z y x add def 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 dup y mul /y ED x mul /x ED x 0 gt y 0 gt and { [ y 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 /LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch 2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 % DG/SR modification begin - Dec. 12, 1997 - Patch 2 %itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a % DG/SR modification end 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 % DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) % a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore } % def a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore pop pop } def % DG/SR modification end /BeginArrow { ADict begin /@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 /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 /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 { { /z DS def } { /z 0 def } ifelse /b ED 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 { aload length 2 div dup dup cvi eq not { exch pop } if /n exch cvi def } def /NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } 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 /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 /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 % DG modification begin - Jan. 15, 1997 %/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq { %pop } { 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 } ifelse mark 0 d w neg d 0 h w d 0 %d /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 /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 /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 /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 /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 /ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv { 6 2 roll 4 2 roll curveto } repeat closepath } ifelse } 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 exch def /x0 exch def /y1 exch def /x1 exch def /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 /Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 } if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if /dx ED dy div round dy mul /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 { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def /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 end % END pstricks.pro %%EndProcSet %%BeginProcSet: pst-dots.pro %!PS-Adobe-2.0 %%Title: Dot Font for PSTricks %%Creator: Timothy Van Zandt %%Creation Date: May 7, 1993 %% Version 97 patch 1, 99/12/16 %% Modified by Etienne Riga - Dec. 16, 1999 %% to add /Diamond, /SolidDiamond and /BoldDiamond 10 dict dup begin /FontType 3 def /FontMatrix [ .001 0 0 .001 0 0 ] def /FontBBox [ 0 0 0 0 ] def /Encoding 256 array def 0 1 255 { Encoding exch /.notdef put } for Encoding dup (b) 0 get /Bullet put dup (c) 0 get /Circle put dup (C) 0 get /BoldCircle put 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 % DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga dup (l) 0 get /SolidDiamond put dup (d) 0 get /Diamond put (D) 0 get /BoldDiamond put % DG/SR modification end /Metrics 13 dict def Metrics begin /Bullet 1000 def /Circle 1000 def /BoldCircle 1000 def /SolidTriangle 1344 def /Triangle 1344 def /BoldTriangle 1344 def /SolidSquare 886 def /Square 886 def /BoldSquare 886 def /SolidPentagon 1093.2 def /Pentagon 1093.2 def /BoldPentagon 1093.2 def % DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga /SolidDiamond 1008 def /Diamond 1008 def /BoldDiamond 1008 def % DG/SR modification end /.notdef 0 def end /BBoxes 13 dict def BBoxes begin /Circle { -550 -550 550 550 } def /BoldCircle /Circle load def /Bullet /Circle load def /Triangle { -571.5 -330 571.5 660 } def /BoldTriangle /Triangle load def /SolidTriangle /Triangle load def /Square { -450 -450 450 450 } def /BoldSquare /Square load def /SolidSquare /Square load def /Pentagon { -546.6 -465 546.6 574.7 } def /BoldPentagon /Pentagon load def /SolidPentagon /Pentagon load def % DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga /Diamond { -428.5 -742.5 428.5 742.5 } def /BoldDiamond /Diamond load def /SolidDiamond /Diamond load def % DG/SR modification end /.notdef { 0 0 0 0 } def end /CharProcs 20 dict def CharProcs begin /Adjust { 2 copy dtransform floor .5 add exch floor .5 add exch idtransform 3 -1 roll div 3 1 roll exch div exch scale } def /CirclePath { 0 0 500 0 360 arc closepath } def /Bullet { 500 500 Adjust CirclePath fill } def /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath eofill } def /BoldCircle { 500 500 Adjust CirclePath .8 .8 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 % DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga /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 .85 .85 scale DiamondPath eofill } def /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def % DG/SR modification end /.notdef { } def end /BuildGlyph { exch begin Metrics 1 index get exec 0 BBoxes 3 index get exec 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 pst-dots.pro %%EndProcSet %%BeginProcSet: pst-node.pro %! % PostScript prologue for pst-node.tex. % Version 97 patch 1, 97/05/09. % For distribution, see pstricks.tex. % /tx@NodeDict 400 dict def tx@NodeDict begin tx@Dict begin /T /translate load def end /NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def } if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next 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 /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 { 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 { 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 { 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: f7b6d320.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10 % cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8 % cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10 % cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10 % /TeXf7b6d320Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: 74afc74c.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10 % /TeX74afc74cEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /sterling /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: bbad153f.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 % /TeXbbad153fEncoding [ /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /.notdef /.notdef /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: 09fbbfac.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9 /TeX09fbbfacEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: texps.pro %! 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 %! 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 %%BeginFont: CMSSI10 %!PS-AdobeFont-1.1: CMSSI10 1.0 %%CreationDate: 1991 Aug 20 17:34:37 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSSI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -12 def /isFixedPitch false def end readonly def /FontName /CMSSI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-97 -250 1077 759}readonly def /UniqueID 5000810 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0931DC68A9127B5D4E0A53C980F1 25B546006F90C14DDFBE6457E1FF62EDBC3E6E4C3EED9145D4C5B39CF986A3D4 D0C1CAC35082AAFC77DCC962B778E051237529367886A80679538B245FB49480 77B66D0597CF92890360923FF918968FEE737E79C5D46B9EEBEF1BBE460BB176 93965EC82506D2BDFE8D9616A8A29CCD77C1E9F46B531EDDF69E2F97BDF7944D 73F55F531755FA645D37AF1A508F565FC0B43379209C1E992F3AC34A479B2012 B70958FA12CAC36A27BB5A2C1CBBE416FC572DB8D2DBBC80BDBAF524F1507A25 29F1944A592F59983089BD5C221F2050EF0A5844E8F0D33DA8D59CFABAD16CED 27CCBC6820BD354F0F435E0BAEB73F7EE863A8FF0DE038C244A3DA9EA2533DD5 78784CACDC89701CEA9BEEEFE78A0DDE239B65448339F16B9E2B5E8177B2BDCD C36A9C52CC3DE95CD45BDA676794180065F7DA12A87F93C337251B7F7509371C 76A2429CEFF53722452A8D36636C685ADF1BF6C27E7839464BB3882661246875 67F547E1E16B4EB0C4C6BCC80661C929098102CA370391EE80F029E566BE0952 7516AA0AA335BB76E4AE49E46E74A1A97BC55D556A9BBAAB7B91C0F897B6640E 1A06111856ADB1A4DA7326FB2F64771DC6BE8BE44D7B24A6C8BAE2551A367339 77D9C3F4206D5C6AD232C5560B70EDA4597AD76B28362B06FF30562C51D32143 5DCDB73DA37B18363AB00182F6E117CF6418E49B54BBC545A3BFD486091BEA9D 6A443A5CC1D29A74CA224B8BA0DE3BFBD22C1F2C9F06BAB31B7C647AC295EACA 3E7E957C81459ED399B1D9EE777D164FC5E70E20F8DD369946509C7FEC758D7D 926845341680C0A4EA94ABD3AA46627DAC7AECD08BCA579C435244F338BF5435 6CF5AE772E7558D0337E0B9B2F628057CF64D068D2EB417DB89C57761ECD0502 FA1E5484FCEE0F7103771061787FD6F2AFFE8C263904D6EAE30824614B49BD1A 23241FD246A4247861B956604EB75CE1955D08271FBBF0E612F66C15CA386C03 6F97E8403631A61A896EE7278BEFAABDA14D3BEAE2E5B0D9339037491BC77024 22B3EDF1A9C7982C7916C41F5F1169189F049B4F23E9860768A5A85E0BA86330 EBBFFD799C709D685FADBC6EDFEA9E147F2342C0EF130216D69DA323B197F959 C62626EAAA490EE5E2D88929CB56D27086BE84A1313485E7C88FD720FFAF1648 E8C6D5482E4343B927A96E5B20498D6DB28984309A519C91A2557F9E81CEA78F 91A5A93B27DFC1E507B9C6272A3AE174636C5ED791AE86651975E79A26F46110 D708EE011D54091723A7AE36460D7CFA70CE6B180A0E4523469F42FD23A88723 FD17FAE998BAD395DBC8354BCA074E21397BABCC8A94A745909D576FACB0FE87 C5471C34BF71943648A43AC0BEBA0BF958A8AF3BE0600CEB3164DFF5BC6476D7 1DD70C67D8D62D85EBFE01D7866DC421ED05DE96F0CC1DB5C54297D1681AAA87 2B887625DAE595E84858D7855C99468FC97E00E7F913DFC770781736270D5396 56A0D63525C3FF8078D4E7FF027846401D6196BBC4F347061BFFB0EA73D43B81 8AA0F11EBCB0036353BCD99236DFB07343DCBA26620510EA05881E6BC104D3EA 91141AA592C63B6025D06AAA51EB14C6730BE889750735D59096D1A6F6DF4E21 75BC42A21D77C073ABC66CD8572A0AC81D50733E5B24FCAF6C06BB4D7609ABDC 2379FDA73895C6A6F4FFD054916E1399B374B50659F5F599F8E2B59D4DD75C08 C389244DFD8894FB85699E8D2FFF5DE3A8E962F25564A77F05F1AF5B241959E9 CEB2BC42E7BEF24D37AB519604CEBBF5C6481640AD09B61C920C5078CC71C47D FCA6C61BD011B737032BBD9D163D1230A1413DCED28AD7C63AC1A1D4365B913B B3C77CD48D0A7684F30E384296803D2DFC9B62C6845CB4B49C02F4AFCCD30D7A 8CD89EF25E245C98DFD272C24613C5C5B8D08AAE153F796E8C44B4485EF8BBF1 C258DB26 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX12 %!PS-AdobeFont-1.1: CMBX12 1.0 %%CreationDate: 1991 Aug 20 16:34:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-53 -251 1139 750}readonly def /UniqueID 5000769 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF 20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D 68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E 26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 32696950409CA08F623B079769D877EC7F8D3FFB5CC967C669F51B3F92D46076 4EE7F4AD6BA970A3A2E5C7A1C8EB0F5273C44174CDAD77BB997C1EE08376EA85 9E1B37CD65A5FA547EB1536431DE3F5BA02D63FDF02386377B216627BCD02A25 F345CE92BD753F7513AD21165C5388D8DC67A3EA3EF946556C34493D914EE57E 5E3851333D74B754070A5A7D816E4D66277DF612CA8A70E8E840A44E6F8361A0 DC6ED63013E0C08FE2A807AD987FBFF07690D0BD2AED2DB131E38C956B54CCA8 FDBA6A37960E6C6D0B02334A879B02E04DE85F10DAB5A35D067918C3800ABF11 48241851FE78E6911507AC4EEDC6BBF1532B55417CD2F66BEFD3616A6F4DA5B2 8F23E6D1485930E00DF09B4D7ED0ABBEB6DA7273B510525303F641B046137057 9B1ACA951C4F4D68498CC61382217E075819694457F563F50484795944EEC7A1 22919E38C75813EACF8078555187E3544BBD87D498E83404AA62ACE160C4FDB7 4CEAA52EB41D8C7263DBEBF56DE36DF646C9AC37C1521BBEF8122D060DE1062A 86A67DBE07A6079B490096D1E75AD9735BAEF809AAA60DA1B51308A5B5BDF63E FACDE96C8BB9150B74AD0F1C2534474A3B6BB12E1EBA0A4EEDFCFD9E739DB6B0 82FC5CC79F4A489935333473AE63189C0606189EA74DD27F4A85C4F986AB3046 6844CEE3E37D312BFD7AC33D92CA0F4F520DAF6E6391178B623006DC5F28AE9B F0E6459C59EC0E5C0D3594E3CC28D96A0281F28C65021CD64FB9314A7439511C 7904E0EF68A47BBBCC74A98D310453AE5801C76DC8A748D193BF480A514D91EB 0C2A5550093601C72F1E93739972F7700391443748138D1922CDB2083DFEF73F 8234D73E298C081A158C2DFC7875AB109DE670A36B289B9287FA25FBAD0B321C 0A7751D109FD6829236182FB25FABD31DB5BC8AE9E919B651EB0A7658FF7691B 7B56608FEAB1DDFFE7B74C9D3D3D642A1876633C6BD87917E5DD5EAFDA0063FD 0D7C077BB6AD7E608E84F93588738E4787619E7789A40ECC103616B672A63034 4624C14B44090C22F11F361E184AC1EECA7BB22A0C7233A92BF3F4C198C9E2AE F9A04A51D634AB63EB90D4F6AD51D4252F6F8892A01F323469229EDE9B1B54FC CCF68733906B17B763DD9A4A63197F26844BE054D6171FABB84E387AE17F7087 24447A850208E8E9C7667265B0785EC787429699DF76A5E4208930B6A7B85D64 0BF466C268DD93C6730189179C4C77C7F197BCFDECD31BB76E7B10F79BB6E954 B190EE5EFA8CCC731080912D464F1C416EE621365AA7E5A1D2EE15D71088D737 34C2B2BC1AEC6BD2BFB38B094A8CD9B226586B91B855BA4EBD5ED24705A589D1 AA2A91A5468468A4E7906584EFC82819F92C7D73876A802C379F8DE11E2EE6EA 29B847702C98460D4F03D4489CC4DE2FBF7BF2E177D5593C7380AB48F0D941EE 36356A39A272172606441FEB36424D0C982FBDFCCE72BBD75F6DC2B2E9A74E41 319A0D7618E9F1B177C31C6B3ED8262A2A85379B027EC443B8079AEA9D67068D 754EAC4448522A309D223C75A69A4BDBFA60BD3B17F232E7C4A63FA63FECA6D3 D5675212982BBF67D68894FD35A7EEC83D983B9456262EB074322FC9AA05CCF9 B13B85147B7C0BAAEC922CA6F8F3E7EF4D216436EEF0BD5572AAF5C3484E2D39 AF8C3E9EA314F0875D986997F724F7435E7370A86573F3B1B796F23336EA72AB E42A6E3C562A0C1EE2F6896662C64CD4DB7ED4802C5638CA40EAB6387785D4AC BA8FE55B862C51D4326975DA4489E07FE5B42547CB235EBD916D97EE404C808F 708DD8DDA9F22AF87E3B99F98D021B1A167A3752558AE4A6D51B596E0AACEFA9 9CD5BED9D2B62571F014F63E3921875B29AAFD47280E1466438DFA07DBE12D91 3898C0B128059111A947016375601CD785D10125D9AA288CAD0E72EBE5D27686 E8848D483B18E2B3B76AE9164E20C990692F4F8C6BDBF7655D8DC13C01C6BFC8 A8A47FFEF63182E8068A052AD907B4C075873DA8F6B391973CD353FC4852007A E26A790D4DA5DADFEC38E65FA7A7E03A4361F58DAD52D2471262A6CF8B25D738 1D00A151A0F0DF48172FBCB07901E1261A3E06FCC7A2CA76EC8C7AD07676A4F3 C2FFEA6CC6DA609180207A59B35AF213111B9258161D21A39BACD9CE8E0DB256 9A0C2DA27CBD23C6E332E44A588555EBA319526A9AD8C3CB2CA3C26F64CD4B86 4B846A1883F12CFDEEE17A2CE05B804E6C1C4536106CBFA2BFE8F2AB675DBB62 7D1D7C5A5AE7A18369B8B47047788EAB83B04EC52B527BB9612F992E259FAB64 90583DC52F78BD23E6A44FA4B48C612A006B17C5FCA5E5C7B63F6ACBA1E7DF7D 08757950EFF16A6BF8DD1EDA9C464BDD8FCD9CE8E8FA990CA9C30BAC0A71D39F 9403E158CD1CEE5C5F2E2339E2255D48D906F7A3C74D0DF4CC7887D41BD9C55B 7E7B8DE32F96DCEBB1F78F188EA832B8E9AF65F94A833B6E2F64751BB55EFE52 8AB7B9EE68C066A46792CEB167A4186727E41214AEEC21DCF5F45EB744DC6087 D93E94D91DF2C19BB13B129AAE9AEA22822BE93443BA4DFC81741D3210955817 2DFD90D414872A08A1E04424C75F7F47C703455FDBA7F83BF16745E3A15EFDB1 8D2D75D015AB8778EB22CB9F82D7BE12739A8B401CA2BA039C7FEAE2E05571C1 F9E4BFD68EE70983081BC4EE3F2C271E9ACB389FAAC4CE3C3A5E785946302DC7 BC9903D49A92FB10ACBCA77B586136AF2146D370A612958DA2DEF2735B6853A6 B79EAF5845C9D044601B03E0B1FAEF6B4FF9404C365B8E5C7FFDCACF3D77E10E 5EE241B901C9D4F618DB53E9EDB7E60734CDFD370BFCAE152B0A048550BBE8A5 E7D797420B6EEB2D8CB0D89D2A680EDFC4E93A84E3024E82AE490747A5DD16D5 BD3ACE35CEB514110705E76C6668443281E933FE05BB43DB26A4176C1B621A58 80A5AB0113064F17430C8159D46D334C152F06DC113C9530701168ADFDD42FAD AC855C739764EDCE7A7BEB6EC6932276816E891524B4E7866E525C0AF84E4BC8 DFA8806DE2CC87EA18AC6C3FD7EA903A8B3710ED1A5950E5C98DFD6C6E1E8D33 5FA2A9E18F1B06DCA568DCD6DC4C3527388823BD4BF8439BF3B9A2AC2C6E2A9D CFEF42B0466520CC467A827311BC444FF3029CACC17EB668D0DF34585B084381 21BC898BBC9611ADFAA77C16D48B3CF504C06C625EA9995B0CE22D83891DBBCA FA7D9722D0024B6F2D1A2EE23CBC5A94E39C45624C8C8297396C0DC6A4717045 51E48B44ED89EA8023F4996F3D6AABD1EBD808D774F01BFD88C357E9A6616E4F 5288DB7EEC914B69296573FCF62A65DC94921741D01C71E1120D5896036B452B 412427770B5FF3D0B683C1BDAECAA6FE2573A434E0B12F682C8675A7CD5F6528 4892B0AF5B7F55E1C68A9807E1ACA95EA74E0C44FB39A910C0F111B83DEB5CF6 811B1CB7F5891BF0F2A9F87BBEA3D8550596632EE561054241A65CFE6E425C70 E0523535CE299F1990A0DB7C0EE5007B85157634102B54D60C35CA881DBCCA45 7584F88434E30ED5DC945ADC931A18468E393CFB64A12D4C20F0AF1AFAE794B7 BABA4FDEF350743BFDF6719D347A8C8DF5604B0DD86E92AC1E8B95A955C61402 C116D6C6521E9E3E01CCF29C346F4CDD1D034DDBD41FEEFA863E18F3E147514C A3410CA4090625381AF5B94326BF39F0E166C983CFA46FD2D7E950C6F3F1C293 9D225539E029F03E80A908F51DBCB2A937BE3DED8A422E64EB80B605CD075394 A1318D6C519E2342010FF75959381942E1185D58232B6E83B9112414FE135556 A8EE8DCDD84F3EB58A0FD5550F51146C3E8245EEEE55BB3EC03B7ECC3F762D2A 13A63333593AC1601F5FCF3499148D3B1F884AE8AC9CF1F00D964F975A340E98 B832B8BFB621A836D68BD508A2B4125906DE1934D51F5B32E23BA327B552A26B 66E987F453FFDF9A0F569FD5249C410F2028AB5210A67BF2C2E5E149314900E6 7D17364D6E155A3F5473D79F9181F448512CE6FC68164E2412866FE5E379B135 7C8E2D7E0311B369151D4BF7770C273760C455CC7E8568073105D9A6CFF4E67D 899B7DFCDA9B9880355D44F315B28635F05C42395AD6341F76DFB2F114E11A62 1B57F7037042A5F25EF63231C9F2F5F12656665B853C43E1F3DF35C9B67C3818 B09BEE6E3B60FDB5AFFAFB951E217A8D0EC537C413F161FF44117A408F9193C3 FA676D0C34B791F5F23ADB7158B8003E0F9D779D8F876C0A5F9534B1A66F4978 DEFBF453ACF457C43E78E348469F3C3F073CD00BAADBA74FA3847C018729D1BE 85EE24DE368FED4351EE3549874F1CCCFCC9D2427209CB010D0ABF3558638292 BFEA91D57F9444D59F57D6FAACCE66141E5CC10D8CA0004EB2B609752D6BDA8A FDF6BFBE4E60B3D1A9E8C28E599637605FC9151C937D2B81056E7206104E5FE6 7DFC0699766DB82196BFB8581EB7BBDDAFB2B619D11D0902A40CEB0F6A84809A 440EAE7A91F05D3D34AB98C85AAD753B476FB030D6DD5EC189C4D851F88C8A2F D4919D38F22EB6ECE7807D2DA050731D5B016F066FFC7C7030C56ADE76C73EC7 E2AE7A53CB7DAA86724386DCC7F132DECD4F0AB7CFE94FF67751D33369354415 36286B576D537AA03AD95FB15A85C64D42BCCDE58D68D3449CA9C88BC8817B7E A7FE13FD23C345C64EA98582C56D866BFFA52861BE33A789B41438A35DE73299 D9E6D92FDDF7D3D2FBDA71D50E01E322E8CF5EDC6EB5A46240B204F827987FD8 74EFF4000330E27372A72AFED599EAB1FC816610248517E3A393B6D09C9D96B9 6E062CD41BF539605018F7EA6D717B73084BB418C77FAC8BE2C9B8E522F7A459 EBB0E84D5E0CF6FF28AB407BA094DDCF12B3B3D4E910219C57E3EC22A6E85B9E B620CA67168C2511F3AF87803C4121CDCB2B2B0054240729C3A02B3DB6DDCD13 C80CD164CC0054534B2B3499DF382AE92CD6BF98500251D43475510362531BC4 AE3CBE688FEF3E66D73FF2E4A8908CE4E8E38A2159E69372C0A2F49238D478B8 6D8783687C8320B05831FF31006B30DE6B23C193F9171808EC02635639354AF9 07DE912C1EAC8734389A450D32590B7B86C933EB5D42BCE98498459F01D70854 56E108593BD68EDD1A30B8CE49C948E0305203647C65D085E886215C6F5C29BE 0F3E08E860859ABC5F306589B7F4A2F05E3C616AEB7A89AA267FFB8F6A3DFBC5 B106B2EF08BC384256422881A21B17895D6774007D865AA3E1379D82DF78A707 D97A6296FF1D27F21B3B559F1CC6AEFE726FBE6AA110D5FF85D068D7CCFB1182 CFE50CD3D2DC80A8D3A6EC6DDA7E6EC1E9342342BA3F8AADAC33C363A6D9A23B 20DD7EECBD7CBE813C145DB3B6253A79D3C29123FCE788618A1B72406A0154B8 A0090AB7D26507922E2631E8EB0E5FDB5A375D0EA48CCAA2727126086F095045 CC780584F5D01783F4C0FAD22A840AFBB80E204FBA61D541D342CDB4FF487337 4F8389A15F0A82799FE5A90558866F1B2456C369DB7F556E83AB1E8BFE80185F EB4DC441BE2CF6EFC0DE19E9B9E0A57EF3D4736199CAD74C9AF1922EFD2427DD 4C8B70B73AD1B7D72D35E269DB8F6D7D83F130BF7115BE6C1EC562C2673A3141 D08218D4989D68FACD9430EF832DA5132A88867D8D2B2E0946F9409E906F5583 012477CC23BF79D04F0E37DF371768F787CB2B8A2DB975FDC7C4C928601A5C67 F15802B5D5A349FE9435AD7C54E686093ECD9D3B5EBF7C14B8D77588F9F395DA 37B398FCC7FEBC861C985413BB8B7E0FDB46A81CD5DB7DEBE933B309FA1CA1E4 CC04AFBD1D60499218CD33DD62395492AA3D5474A43CF392C86EF8E3B853E748 19C1B5996D067D36CD8D8E58B0CD4F2272E6513BE25DD0C0BC3FA20528A4EE95 F60702B93A0CE125ED681E2D83076F710E83A58951EDF877FDAF979F0737C695 DCA0E0FBB95EBF957C95257695D740D176C24D4C2BF03548E58470F98569211C C56CB94407E5FE44C303B0B05A56E89818D90B2F60BFCE66141484AF8A5A919D EB54B6259B5757C47D4FCFB2F89726EE9FFC79C75A622D3748C33907B289DA90 7B2A1935551686A65C8C4574D4123410159084F235AC051AAB39DCC7D7F5D2DF EAB770CF2B40C79ABB11D83A8BAB548F2D3F6B7966862A3C5B8888086B2932E4 7DDA172257C4EA3CEB587B50A7C4DBF9A9A58E997F9A0A8A11ED6DA1E4AE2FFB BA39F57FFB4D5AD305F428BAFDDCC3AF1E35D3D8A0C668C340E7E361D38E62CC 461A9E9FAA6012C7D130F5BAB2B342B3793F5EB262BAE48B944331ECB5F02DC3 3FF1577FF9200A233B4BADCD49CCAC9440D336342A42B14D8251C8BCEAF80F02 A336FE96D924D55704B24BF055CC84C8C6DBE8445409C3323B343D22B97F9BEC 8FA6FF1E762A28EE83794A6CABCECE0D2BF157048EBA150DE0AC3E9ADFA9B99F 72971101424D705482BC6287E1E9EFDBC9202323FFCF371B58FCEC34308493BC 74FCACE8F0F767F3938978D743891621E277981E9264ABA8C3849298CEC67D15 B07644ABECB36053BA831B3AF8B1CE1438DF253E4F6D993996E1B9A600D9DC79 87EE752090748913601BB53332BD627923241931B87362229EE95F292B5A2BF7 9958BB58CC90A08E4CFA738E6B81D4AAFF72D913FCD4FB905B63AA2ADBF739B0 A70F6CD5D66F2DC94A4A9667A8883554E64D896223FDE78B4931D17769EDE493 7D2197DF475614B90140B310DFEE5CF0DCAFD8A47022CBB99584C74539E8A422 4DDD8A36A2E89750E71B1A4D5C43C9E963EF247445D904F9D08EDCAC36F82D44 15BA5440344CE830FE6F396EFBE4917EC11ED3505E80A4E2BA6F48661F62F709 7A200B9FB6E7E16329E842E478612FEEDDA60EBD72100F71B82485D5509C91F7 5F1A3063ED32ED296428A381902405B2CBD8F2C40ACD91A6F69813E42BAB6B0B 18C7B20BDCA40089207E2A91AC759ACD79BD07C17FAAB7DBF324EFEDD5516FAD E30418F4AB7FB1E43738E5573904BD02ACE56A61DF7FB955682A5A3ADA58459D 53F5EEA9AE7D934067415FDEFDA8E5E47D69BFA444DBC74F3CA0C2ED26E9BC11 B60F2558BA47572DD887F5DC52D36B37ADD36C53CDBC40DBAF497606368BCF88 92166154C92F11AF3264BD2944C3D64FDB16A5575BE4104E212EF4A413A11C59 A214BB2366F03172D167A9BE27C987C64ED6E48E0D9575F67DF87D41AF059D82 4334E09BDA80478023527AE8496FBEF8C14A3A2577E41BF92F22B954A6855F02 7ABE9F418CC99FF133245878D872A73AB878E10B6DBF692E01DE2E03D4643BA7 61F678E114A11D235883D36A8E763EAAC5C12B000C15252F0276DADAE795160C 7FC20B85BC128B995C441720B884FCC2D227230432F5AD8FE78D445EE7201370 57810077CE9F3C684A7F572AD5459F7E3A044542D4DDAD6289E8CBC4B22F6666 1577756AAEB068751C25D383F132CFD614E6BDDD0DE5020B182631EF69D7B98E 3CAD6CA0751260B7BD3F0EC2C235A64444E40604D88733FD9FA95DC91A9C6130 C0B090D2A05C41C65FD36F44A53D62BC4C0A5787829755F4FE76D67FF90EA99D 0EE466946D875608C9B535C0B2BAC7188D4974A77C2262CBCB5ACF0A05626F96 62623603664E55D78FDE17F4E956986A676BEAA7D28A32AD9AE9E2F76D73DFF0 015438A66CB2622BDF390FE24CA8FD72738580058343F96EFEFA57C7F0B8CF2C 655D8B17226F65BD34D97185E15093AC70115722E2160013BDB0B0B039B56CC1 03BA208035614AA2AE7A97CB9C2E1F78DBD7B97B6BE2E37EF9525E859C9AA3C3 6AD2F14DC396C23AE947FBC5E76402A94FF097D2F74BA19014AB2C944A12663C 0E0D4762360E3FCE02FE2F866AF81A85D183F0F6647929C8AE9B65B5578465EF 47C209484B9AFABEC8EC3341E487956D099E5DE2C461B947DD147493840B2706 B97CFDD6137DE4A0C8899F712531777A1B273A7A59291D69B7B21B76F2FDBF8F 86891C66013DB07D3D4C592D21679C729036E732A2A88841E721E6D3F2797D64 480D1B8281EBB071F04487FF1DD83F518B480463422081212FC3D2E8CE7E9ACD 614A853AD7A3840C15FC10E6597F0A485C21A3AE72D3649FCF2B05C2D36DA18F D621AD1C7506F67D2753B097B9380EF71D5CA4FE2B19A91DA567FECB55E58C8A 9F4BD7D9212B7C36F26470E852CC3032AF56C764B5EFAE5F32456052D7AEC7CC D22CFED715F77F45976F26C2C04DFCF6AFE30E9520AA5F111B5FDEDB0E73CAC0 8F8E97BD81CB44C48DCF003A4110E3D5E4173011CF908CFB7DF84B0B28C5D8D1 CEEEDB8C20D5A0CC24FB484EFA99E3E2B3E87E6DED504C93A64B0617FC535356 8E647A2172FAA5340B53ABE7C14C6027476EECEF9F76F10455F0D9CEEAA80F16 6E4E3A69F4133B1FD9F05A9AA9B3119701FF18C8CE76CB7DB9173599FA496CDF 12D2F740F9766425ADD64C50722E4A60C78A8E2E0C8AFB470592642AECAFD340 0F850F8D1B71F1800593D94015CE08E7D7BA3EE5124483E0DD23EAE244723432 08F8631480EEC163BEB3C10F95E2B0F3D62A6D2BAEF820654EEE274F766084A8 1A7269949EFEDEB1F6E01242BF875A167FE84E8C19D8C1F7E52218584C3D758F 2C7362A0D65DF9E1F68B557227E90B715289692378A141B3ED34F44FD760E644 0543031620D0134C6242C6ADD68C94897D3B874D60974F6780801527D477D1DE 21994A99AF66C26A075AD756DFAD5AA9D1DD84D8CE66AE034565A14146E7F125 C5D654905065BDC9AF7EF6891F18A45E9E22CE23A358EDD47AB9151E7CC1432F 3E58AACE900C5DE0FF387A9EF1F391A603DA72797A4D3697FA43B1294DD41412 4B0934947DC4E3275BC753BE1CB1B26A9235A52BE53CE585A0E4E5FC36DCC8B6 65869F731466288FE33AD1EB9CFB17222441470991E6483F9D483FE6166123FF 5A6C8728280DB533093221AFD08AF64F4A45EF38116C0B106FB2125CDDD8A06D 7914F4F55AC5381368AF31CC13A9F12756782A33960465CB28C87E613D1537B1 EF3D10400F22FD79EBA0D03FF5163628D9F22E8B3A139ED2DFF2FF81FF7CD4F8 521A51D0160C973E805A84E1C4D1E02DF10FB2CE526D2ABCA16A33C11F44DDC9 B3640EE3673769FD10826D1A2ADDA6388D19F53AB1ABD34D51336D4C31F0E6F8 64BD8D3129A18B46491B8724064889472E91FAFF101D347F95EE75CF3547DC03 334FF7600EB06DD56E73ED78268E77A487EC7BA18D4154024EF23D383C2C1DAC 10DD7813FF32C9F8314ED0060EEE37DF679B572D51B98AFB9AA1A27209789B14 5AA68BE33EACF05DEACEEF51F6DC90C1D49C09F0BCD3F939201BC71679FE517F FE2FE5BB10086B277F7356D04D44B8A202DE21743DC94F202F4A0F19358265F6 3818B8F979454131F2A817B7D9EAAF74319DFBFA342AEA4F86F5C8D7A1604112 F5ECD1F527FED3299A8ECD06279EA54E055281BEEDF65F0A442F90927CFE464A 5F17B3037CDDFDD6D98C5AE517BCB2A256AA1858F24552915F61E377F1EAEED5 6C5C0BC1A8C39D25B9704F782E3F4611AE077D23FE67581B69AA1A578FCF3E9C 5F8EC7BA552D3F7989FD0F8FC4476F433FE0443B6C1DAE1970ABC2A89AB462C8 197B1142163A3166EA6D696FE1C35A1B6A7C807ADEA2ABD7FD1BF199AE59C3E4 A5E43E096BD69A00EA483FC5EA5DD4C4598355FAC06B0F3F2BE64FD2ADBDCCCC 84DCE0718B35E79E6F48A7092DB6E352E6E448006679C0A64C22F13892028155 F5F6AC5D99DEC2439855A90C9AF0415CC87665955BD2E4C20F109E8CB1D5A896 E6414DB2FE5962D5273ED4831F60C164EBA34AA273EF66E0BE18B3BC29C745BC ECDD751584784F974945FF7C5D504870560062ADCAB1088DA0B8AF200B7BACF6 7437B2A46FDB189A03567B0ECCF2D0ACEA67B7FD6D81A1F7FB941A6C79EBFFC5 87927F623228140CE70908EE3567DB7E53F8A3F9F09D0C90A2765EDE9C136A45 8E40D07A8A1527BC594BEFC713FD1BE1D42289D1711176B4602463DA96AA45FD 50628A1F6EC292C8584062F4EED313E07FE363F62C08D2C82E05E43F6586F16B 9A6445EBE0908F1109C95B698765F6AE41EA0FB2D3CA5D74F6CFDC3996124007 3B28EB206D20C5B721E6152BCEA9B839528BDC5FC335B6919A1D3E7DFBAB91B1 5553F41B9698F7FFD072D7D336 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX10 %!PS-AdobeFont-1.1: CMBX10 1.00B %%CreationDate: 1992 Feb 19 19:54:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-301 -250 1164 946}readonly def /UniqueID 5000768 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91 FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68 7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4 9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176 CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D 6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6 E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E 8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E 3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99 EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4 0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9 4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF 1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910 757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E 0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665 6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636 6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663 12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C 46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08 F6DD0BC6A79A2DB1FF539454E8F5D1A42D40CCFBC093AFD3E57973A009095CEA B91FAFD236C47F453B38DB0067907A28EB5E9ADE87A2181F1D6DE4E183631716 C21F0F952E0666AC74371F8B5C888DC44FBA5607435A619684F502CF625663C7 94B0DAA79BE8E129E7F5C5AD1B7495C1BC9B1C759867467F55148C7FF2F914D8 95218C4C3C2D2DB3482C21EA050F23D6A7A056B172EB210276CDB3B1DCA47A9E 8B03B9BADC72F42D28ACE31D0633A0A1B22254F37EBF0433F0EF1CFEBC1CC653 E3EE6D197AAF36E7F871AE76A67986E81B67FDA59F9B0CF210C7ED7D696AC130 748A803C64D211C6FC54BFA3A7FD94B0B54968E027E480CD0643275FC723BF56 75B0EBA2E2731351BF689F46408D57BCCBD9566501256B58E653AA0B7567E024 80AEC7EDE0CBCF1AC4B2432B5FC671FC5A672F5C8AEA2FD0180C19791CE438FE CB85E0395DE41AB8EC02BDCE1317002C4C7DD67C5C9B6697F55CC3BD66B83DF4 A9F6E7B7DB21E9175DAE4CCB9FB3B94E1D8D4E06BF84B9DDD8FF6B699CC91E3F CB86768D0C654D71C412B21B7B59ECB9ED22CF0C77C17B11B63CE95A8E562A36 6E2DB39A98043419DFF8A491F62A09D70000B015DF1E5ABE97CB683322012B59 53AC5E6701FCE5BD60E66E5D1755C55ACFA1F121A5252638E44CE1AA375C75C8 265048A72DF02E8A8B57D0510677D6CA2B94B8B6EABB558A5B1C00E4D881A425 B2A6759C9457FD9DC49598419AFFF7DF1EE97532828442276589B12915260A25 725286BE035D66208DADBEF44EDFF90FBCA98AE123258E053ED30DBCE53D6CC3 83D4B7DC6B0FC4A27F241CBC3BA9EA5E2159DF11778D9DE0A25DA412A732F468 A182C893474DC998404B65B0B47D3B33BCEB57ACB0F255660D4860A68D8DF87C D5567644A4FC26000F352EE7FCB385E722B3445F20AE69B1828B2373BC8E4A79 1EB854607D62C59BD0DA9C906406FDBED5085BB937E831C53BE98FB851E7B7EB 4C8AF605889D328B2941E1DA83B646D37F5DA1FEDEE12C1C81416DB33CA49733 6BC1D5F36D5D43C24938848A28D38E4526242E7A3D0A4360D829E3905EFB8443 C8058FBA8085FFA623E6D3B4CFF4CD3FCB4800F203ABBA8FBE932F530C9EDB76 CD7B94ACAF8D5A8AAA0CAA6DC0DD6819283363FABB71AEB4A785507AE7855141 0ADEFFD6415F953A6734036C68834B218555A93F2078BC053A65AE1FF0AE707D 24BB3166DF52FB9F7EE434E276132C9AF2228B7B5B8E0AF893656ED8E4AE58DF 63EFA3E37492730CEB7CB13AB0068BC99A9E6F72C412237D9D8A4431397720AF 3D45710A06139DEEDD7163DD98BB7CF36D355C82A6F825D586BC35489C96B79A B99671EA33B5EF52F4A1DB73D10CDCC1DF43732E735419589AD353CC52DF684D F3E7369CADC5B1B24A940576383B1C69A8C98DBC98850D0C3E142062F15F037A BF7F0AC27B28AF1460AF0C8186745E145EE1CDED2E7732C5B67D1DA9E692AD60 DB9BCE628C90F22D3B4BA882927442F94641D053D05EA73ECA46E46F94B714C3 2E17E955631DC2B7BE3C5063B716159B5FA7DC2AF7512B4984D37CEC6A1600FB 217DC1210304E6BC472D10C2E46BDEF41E9973107A0B278D1A1FB37CFB386B00 FAD7B11DC4AFAC6854D365539AF3B8B909FBB741651B67EDD803A3CA595D84F4 69B0D2040D14529F2B3D0EB52F7B95120DBE387B30BB1317A77CBCF6D2474F99 41D5CC7DA0E9EFFBFB526B064A2C6B1F419BC75556919193012CCB9254E6DC15 2CF197F522E1AE6466310731A9A50989C4C9E0FBA457DDDD67273A92F24F0D37 CE23A4D84BCF845365E9D662D53A8DE91E41EB501AB83BC4CF497C74AD80D59F E06BE9CE6A375D3BBDB24A54AE8A227CAB456A004DC94FCDE4597A94CDDF2748 51ED8486BCEEE987F2EA34D1B0FE3707226FF9555CD2EC3E409B65F015F63273 1FB4C18751EFC75116E07F1D81EA47EF910170EFF05F243C23DCA6FF03DEEB50 43C011D2716D3DCE2AA58B6C5A12D343585A4736DCAD2736E6A8E6AF92DAB5F0 36E9A10E57AB2FC4188E561D671CF8D46AE3D704B77E04B071FD24979CB9FC2D 6ED94D3F032D4457CEEC7CE2D062371F21B2EBF5D8E25FE775C96A4DB6629BE7 BDA114BE028C60139B3485DE953A2026E8091D7E38AE0073A3205DF4A5ED459B FF4D78489A43DA1454077A2FED6AA0CE0AC2928BABC3F669E41F9B1F0C3AA58A 42591C32CCAC803528D292DB1612F936D578D0BDD399D3FB4DE13FAD53280E6D CBE305970F4C1DAE3AC30B74BACE6FAD99CC6D176CF9DF8CF9EF2DB5D7B89D1B F961B8809AECD58CBB62E35E200AA1876C5FDF44D95EBAB18E37D7810611C5F7 7CAB3726EE176E450B37E0C81485E809C2ED409B2B98106A9DDD8C6B155CA5DC 7626E5FD3E3B1D35B3EBAB21BB8F3FA31C077E0F057BE9DE2B320FBCB67C781E 68D0B193F9895860F5767911E093904A728238DF3CA9782F308A7B8B2AC92985 C4663030408D4F4FC6DAD74AC393B79C0241D4C0B4F815953DE9F4F95969E8C4 8AB217328D49D7EE637FFDD1E00CBE465DA37631449EEFBB1C2BF69920DCADD1 631AB77DC92BA0C618FBC824076B15E5C22B64A51B001196B75222816C409586 C95B5CAB488B8750F80099EBEB96907804E3B76DB1CBF27175A4DD480C004CB0 997029D814E65D7D76A77F447B66456E6B407F7FCF6B7F5A244EFDF420EFBB91 050733A49583A00753ED103E88F2B3C7D6F7CAAF18ADDF677EB37F72962B4616 EF56C929A812CB2A9BB68A212A33DA768ABD673D45707C05122F6390BBA8A404 38678999514D61975B564D8ED50774B6758CB0B554010F9C8A674269A34968A5 22CD4DB7ADE9DDB9D4ED0BFF3C6DCF0518A3CEC4906543D17ABD329CDFDF791B 106ABE04BC399D609680316029F1842A19E71E9D7923EB3C138375B946037BAD D381A1A93D278019FAB3E7A4ECD7ECBB6678E9085E9B635F3A728840A0E11C27 9D866B546E1EACEC14025B92084D5AEBC87FEDEF883827D88296F901BF05F0B0 FCB3AC9B2DE12892491571A66F5FFEA1DD886FA3C7BE0F0774397FD50A8A588E C02EA9FC38E32CD4C9A8A6C10649A2DB3B671986E50A4D26D27F780FEED31DA6 6E95E2176BBA86F3420DE2D11EBC08A28A2FE427C54AC27C9E5F074FB409E4EA 918360C3D735D7DEA8B4C2D1A7C9851D2F68A283DA196D36891AEACDFB286999 881C6A742C1EC89692FE189D5735A70C050CA3A8B4412B1B7F569D9DA6DA72A0 BB246FA0259E8F0672EA53C6798204901E82E6AED2E49E0BE9C2AB6DF3FC65A3 5964DD6C5AEAFD0CEAE017F204FDC968EDADDA327193145D9618B13A159CDB73 F64B1B529A7FB097F1ED6837B1AE0F6BDA8F0043C673CAB3C4FF08EC0ED8D416 ACCBD8E294A5F2B8BEF0370EB29C2CA6E67870184457FC33C0486FB0A82F3312 305994D694A5EA68D2BF595DC207CF140DA27CDF3AFA3792EC367099E3202452 196E0F80360026A571D52E2A1D62414321187FD4BE7F3846985405CAF6B3AE53 DD335FA5B8AF28B265E0A4CBA2C971BB95353749E9B973E84C3FFC5939CB865A 2662127BE1CEFBFBDAD89080C95CAD034F0D1E336DBBBFF54DBA099598744D8B E4458D16CC4F46167935FAFCAEA4B64CE485DACD7AFBC48FAA6040500D2EEE03 29EEBC2CB1C6F94E357123868BBBED45173A2E9D859F552DFF2DCA1A0372C530 98C00A53466460BB046DEFA1243DE6BBE42CBA15E463358D1E57AE4876EDF76A 295523D55A92B95795DBE11457DE8EF861B3AB8629A0DED51BBE369AA06DD0DC 16A0C0D72C29BB51DD14D75CB1306D9ED6A914E0BF6568A28A9E654A3BF040D7 E9E86FA4ABE508351F4450327D8C7C1EF34A685A71973DE9AA76E96141AECA20 8F1D2CAF5ED46F7777F94603EBB90BC7E5098324854762209CA3C94C469514DD 7223B69462535E4CD83F62EE73A25DEF797C42C31D554E11477CB9805D66761D E0F97FCE3BD467A7D7D442628A92BBC339C5AAB573D4107E829D57C2BA75A2EF F4507683C8CE69212DCAC8708C70DD9246DF161CAC26A6D5D851B7CF6C7606C7 B23E92D2C834044573A297B79CC3C211414763B9EF4747108DA58446F734F859 653984B5A5996FB60115011B261680E56DBC87B0DB40266530E126ECD26F80D7 6D58C70673EC33701A608B966B260C4CFC663B9DF3A8E326BB842601CAF04E39 29DD5D3D983D6B19A9E0CD144F2EA6DB10806D3F82B080ABF04BD23312360039 2277FFC5CF2D83EE50CD44F9087AAC4B37ACBA513999F15F9F3A61CA03BC1EDF 6EE48790A2BBA410160775AD57BD6B1DD777FAA7EE1479E9E982ADAE7079A94B DE3E1C77D38A8693E5B6E3C3D67B2020CB03259B8B573CD5EA6E149BD1FAF079 5152422A5F7F39D67A642765B43B3A35FF601DB30DA107C398D396953D0AF10B B0A73DF589461D5BA706CE7311F4E34C723D5E9956EEDCAACA70D2C6836D6FAF CF07E4D8CD3259F0FEF84B97963F769F22E136BE0B465A2A103115CDE3CEFEE6 E00B1DA60243166800EC394FC957EBE4056DDF9C314B4AF10333978C34AC899F 1263CCBDC005561A31FDA0A037F0B51E9D7A22586313DC74B04C53FF95B74B7B E1050A2771D4967920EFE7CB3C726F75175B121FFC570D6BED4C7A51ACA739DB 906238E0BBEB41D0F84CBC1E3B12CADAA95B411889DD35E6E3EABDD1B2CFE086 4461602D2F984BB7465B021DF30B8FFD8731684EC4ABE441366D751E6D65D587 C89BC1535642A4076BCCF34DC12B8117249367AD417AE29ECBA4382541FC54C0 3B38278305FF9103F45457DDEABB1B6E79ADD30AF3F10C39DA6D94F22C1B0311 B0C3B4B402C5D61C2AE156370343FA0BFB7B7153A36630BF961905AFDFD819AB 01C7FB3AEB4B5D69BF8BB7EA69387AD7CD2F5EF5C728EB26F3E2FFDD4DF1A495 CB45CD7F32C9A1B06E99E433D273E5CD3ECFB32D52DEA86F97E92501C74EA70B 3E61765CCC258D43B5692844D27884CCB12159A9A598729A1582B56C93AFAA78 600C462D4BC68C351FF95534B1DCE618760618A670C7BC9C4FEF4B3FA2E287CA 7B690D0BD8E2355D8C1B9E2CF221D628609730DB1A7F8F801F8F59C5E6EB4A1A 8DA67128273C0AA7983676C65DCDBC63EB6A47CC0434323C84BA6FC422062771 0BF74582B63433EB6E9F20CB61968FA5E3BB7E6AD63B30A1833015061C16E979 1C48D7152875C851E16886EC24A776627F6540775F26A2D3119DA992A44648AA AA8559D8DB939017D25CF34E426EA658D51684AC6F9BDB816BA74074DFA5E3A8 288E48D3C8A4567D132740335F08623D84A3CF71A4CDBD4A9775C1F9AFBB71FA F5FB721EFD3D136CDDD98793D733409BF6D17AB2F87565CA01CD8B5F813CFCCF 79F0EA66262DD329045AE3D5667DCE2431499CCF63BE8E6D3F8173684F4C20D7 4C20375ACA15C30CAF14B0AC595FC319B91FC61D903C77AB5FDCA755E617F4B5 B344620571A883FE029D1FEC3FE81C981B0D52234A314C3CB318101083804077 538C73830F93E6AC8D352EC7475FD06D5F064EE0CC5793958CA2512AF5B4489A 9780949547BBE10C336CFCF0D9DBA3732B6B63495E2A625E767F90730F751282 C6475D15A79534E71B66F1E2603A8447FA92E985C7B9F253223DF6C41F23FBCC 413190D254355000C196A2508DD4363C2114A8D5586E48C5E9C15CE348DA9CC8 6C28C7F3EF2EA3CEF18CAF914051263FEF376AC9DAA299207918534F960326E7 815971B0BD55315BFF3A6457874AFB073B7C32A166A8380AC7419813FE0F0F29 A46A1927A6507821C13F519094BB5812D66E348C782D5CD8EDEDAE330C2EF795 2F57315FC4CAB679CB9729FA44A84E30BCB22E6AC8DC7C0AE0D30887D9660D79 E40BB34D80EF95ED993374A2D5FB694EA5531C62BBDB75D670398230E42B64F1 FE367BBA0FE5D0E9226F4AA3871B904827B92144DB88ACB266134F178195AA74 F436C2ADC92263EA81D8F2D2DABA5849C9A8D2F3ECE856F00FEBBA08F7F06E85 671594259DA1930CC9292C7847D442F64C21993EC509519283A0E8FE8860B51B F167C0E99895EFC51160387F2DDED281BC2F2162DFC1FE4BB0CF508759F85DAA 36716B4B80C5C6F5A0ADCA0F7FA178952771C0B088AB6D8D9BF9987350A25094 C8EA690011C2E1038447636CF8813EC2DAB8A7FCCA763243DE87386EEB917F53 E52B057EEC2C2BA731041A00DF61131E6DAA2B2F753A522979082CD2406CD1AE CF6509684293D5D1CE9CA0C746CEB1B51DA58472EE8CF6C2D2B6CC1AB6145447 3C409CDA9FBE74DCD526B766171817C4ADACAB3269C885755BEBBF88BA97E46A 1AC32DA2FCA8856AF2330879760E2BF3D9A710F79123DE905BCBCB855BAB5946 74579E7B1433F1CB74D3B5D7956748C27388D2142E79497F752CBB21E6E3C13E 9726236DCB1AA11BB872B72BB4E1EF1FDCD701010FE07A0D75E1E177B795A813 C825EFC676202F9F190F44A7BA930ACEAAE646E56E0C26CF5693C4A6F41381ED A2B24A45E569581F44292F926B83BCBD4DB6B7C7CDDF0D3B6A0740EEA89C309C B4F2B411C3FA607622C6448143D3764898559B0C62B110FC860806131BC6A421 656D8BD5C9FC27F128792BC1A1F0E206A63D94AC22485F29EDA397E033FB2721 C03785DF0C1F2289BC036CC0E377518563A42938C24A0402322A237A231545C3 4F90F7FDB53E2E1217695CDC0757CBFB12CFA11092C13B3F68659E52A783911C 8D052D0DF8899A9ECB4815977037E78F0396B3A5802CC12ECE5EE36C17CFBAEF 7F3B017CC3E30F505BE64A3ADD056B501C4DD4C49C8930CE2CD9A2C930A4998E 218A25881125EF2732B55DF179D42C5407D3839D73B775D5DD55D9F4F3F31FBB 959C703B9669FFCF806BEF6766A98D2003258B457E8217331BF2776E55BA2352 62CD1ED6056EF81283B87AF17B1442DDC7A287A8BD01CE9BEDCA0FF7E5D3FDEC 532B0D15A7AD6E4FCB2FA5BA83E4E754544540AFC01C07D12A545A8281320368 62B377D57ECA997E9779B321B4D71BF026DAB04C78362175DB10445338074B88 A6BC42971C6A4C1F04D3AE62C1748F237BD98BA376ED52CD5D5240E014B40381 5A7D5F665DD9AD1605BE9066148F799B8AB70BF10D017AD91B1DBA235073E9C8 1B463356E71F21BF7E97D6CCD63E05955D7DC42350A3CA1AC621B67AD9FBAA20 9CC0C695FF14034D2B322D0B55C22C34BBC8103225A6D4E3E013F4228B986481 C9E607AE1EA3D6AB82B9F9A0303D0E3EAA9BD5C3A97E8B18F48077635DDD3937 036FE529A4979048EDCCE2481B2E2751BB8917225576051C7C3D73C53E8BC444 AD352D2DD96B6CD402473149E923D5631CF480A5B79556EA34B9B232B782C4B8 3F05547ED4D205682759631691A4DCB03C824EC511CA7C3AB78265D4974A37D0 73A22733139BAEB6A9147466F3F5D012DAB80ECE4AE03315F64A325019372A5C 9464632253CB86DAC6E03AD89B9B930FEAF084191FECF70C2486748DE92F9C8A 4F88220410CE60D56F6D2C69433F70969EE38B6BF7829A9747862B6D493DD685 D8BAF1589AE9CEEF1B4542FC4724595F8D603251B286B2DE6B1B9E9FE526A129 1891A2FCE2D7726A177F5C74F1E73F911CD30DEC928285AB01F1AD2FB065B507 4D83CEE127734A4F38484FE5B8DA87378E4A756C5FEAE6FD50F1EEA95EA66E19 8EE5CB187BF9B022D88404E5230E92251CE83B000C7F7B2E9D165D939BD50AEE 7397F70971C34EA03FD5BFA653D3879BC51732304BA32E857EA46FAA7299AA93 61484A3084906A3179CC69E9A3F76617725BD5ADD8899EDC901AA6806AD0CA27 806977AF5EFEFAACE101628A42FA26B62D41752A5EB681DCFE82849E6A41DB12 302A998B0628C73C4CA245ECDBED10B769564BE315155EC5116785BA336D0E63 A3F7BD7A0E1DC5C294A7C08E65213855997418B055A1015C9D5AD884C7C19964 3821D6CFFD5D3D66E746FBB7D5FE8327EBE4E597D90C785D4E74ABCA07A6ABE3 59A88E7792ED7C78FF71DD59CC798C5C5B836C83F233DB93FF4AB486234191E1 42E81C32F60AEE9173DCA1F40EEB0635162F2DB6557C6342DDC1C91C4DF98979 698E359E0199E6022FFCE22AD5C1FBFB7FF86A1F4A381EC040C9B0530BDAC802 202267297D1952CCE68628BBF18C100E43C767894F2EA2A0E49692756F39CFC8 BFC05CEE4A3C97342AA59079F8ABCED471C968E786DDA87F12B354F4F1355646 00C04DF38AD2BBE72D7290135A2636120E796CFB9B0EDFFF8D5FA0EE53E7EBE6 EA8DDC3B3382B9ABC1F82C3F0E0BB15056CE531CFB1FDA2B2A01AC84FF4A4482 D0157DD99FC4D20DE7486B493FC59B553625F9D28DFBF2FC6A57EFA356A79E0D 2F1E6DAB39C1DBBF7C441DCC5A276AB28A5E21B4BF72FCCF55B0747B7DD57398 C4E82FF7AC37D2DB1121A52B114DCFA193E0648242D880A8E62FC7771A51B8D5 D07F5723C1617ACB8A4B6697F38F0037A68CC542266E35FE408EA2B4E557FC6C 176FB3578D5C86F1122602F911F8540B1A3A635E2857E98C7349200D7B18CCC9 6363F39900682B8778D75E7EA4DCFD95FA982BB18E14F67CDAC8CD28B120FBBD 9EA88D376919FA75F56BEB0A497B8E0D2364D3D1061CE52DD418D426302862BE 3E36470550D3430E64227C1CCABD00BF403258D7EC83E10F5A49132FD869065B B0D0EB7EC9A83E8D622AD61CD007AEF372AA3DC1353DC09D6D0CEAF844D62A9E 3433845695A6B084F4BF3B20D40FAB6B9C0BCAD1C1E5CB3A5750190329454C54 AB971EAAEE9E2E33E46B6794E0784EF7FC4A546FCE1FF0F9D539BFCBBA0FF185 D3EC031DF478D902E7E50C740C3C8B777D2EC35A7986682585F7BA0427B4C427 8610F600739F75A5CBC9281CCEA5AC761E7C0B8C4EB5A2782A758FE325078AE3 DB5D9880AE2AF01942EBF72AF18FD327997E4315F90C9A68C20FD2002085AC1A 9710988C5441F69D0C918985853453130D8A1183CB4A080E975DB98E50EEA74A B024FE87BAEC3699497A87DCC13214334298D7A08D6C55814E48B7B2B515E854 1451BC4B1BF3216E9354F8099691AC336CB6D74CD15467B0FC5394AA003C43E1 5402DF3D9C16BBFBECDA4C5AAA9F8F59B05427AC3F6C275B7365E7B7D5868EFE C897D01D55623E67DA0BA5E85BE80A73F35DC08024A96532DD7998789DDD4E8E 3D48E420977C7638426C4AD4A799B531657B8EDBFE7958F66DA120ED3D0BA278 B1293717ED4353BCCB9C70F93E6F361D569164BB34C9D928FCE0A7CA54B9082C 8A62BD0132B8CED438AD0C76ABAAE0B443A6F97CD5C8AECC7990D48CB532FA8C 3FDACC1B27FC203A18615DB93A053D095E938FD45B008A79F8AEEAF6C5F324D9 97297590E7C9FDC7008BD271005CC3A15AC10DB7643FD730F00C9B2749B3E9D8 2654E3FD164B8F0CF01CEE2AEADAAC385AE78D 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-4 -235 731 800}readonly def /UniqueID 5000832 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA 6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F 1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF 8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902 194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA65C90FF5 931DADF03DA48AFB8561FC2E710087251BFC42B80B297A3DB0DA138A7622A931 DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FD93446770 C3DD7431F955A5F3734F6931BD790F0A45B8D17CB74BDAA4BFF6DAB5380CBF61 72F37CB67A9754276CB5C7C0BCEE91551CDC52B2E7CAF512A3A6C468EC5DC4D5 A0DF9D8BF16F759D3D702A85311C74EAE786024061DF4EC9C84B80CD1D9D1C3F 028ACE30F0D46DB072D106063F20886699D14A9D9617F983A58538CE73F20735 11F8238074672345F134E5DA4AB2A5ACD0F4CA3683F1D156AC73C494C1BBBE24 2BED6F0024FD13EDC9D0400097A0E417D4BAC4B9138AC8BA22A97655F56FBD74 42D393B3431CD9D501F52897CA65D19664BDEAF1BA03344D4955BF9A6FEBD5FA 496A03B1232C0001579068F1BEB92277EEA0038AF361B9FACDC11A1E97362D5C 94FCE5BE2AA34BB1B9B17B3A7270501BB2121A750312941F8F497770680BF1DE D6DD270C9AC7511E8A0359D4239C4CA0773470A45D6E057D0189FB7EC32DA1C8 84FA0A2A98C9BF287F9E8BCE515BE85E39E23E97597F6788F23966A15A64157F E69DBE274DBD62E359A545DAE30A93A2CFEB9E33EF05494036F10E875E350182 F16A8DD4020F61E7539C75647CDB2BA248A366D5E12B22CF9AB1B4B788CAF1AD DF506DE6C282934FAD8F02659AD0BDEC078337A5FC593587DB2DF74F80B4D2D4 D0CAA470171DB3067B2A6658A41CCA68B55A8C7F0DA3DDFE3F14ED7BA85AA033 B19D6BCEBC904083FEBC0D57B13DC9FF8C4E65EDBD9AA5587A71135B857EB040 6E89FF25FEB234CCD4799DC717F721A1AF5D286650DFC6DBE1FE6EC2BF50D655 9715C091CAF8D0B982221DCD422542A74A65270C8E95A8FBF978E48D13654243 B9761BB3BD85269B02B10BCD497773B97DBB90419E88A7FE0BDD5FFC3FFF031F 2E1A772397C8BEF78FE640DE46110BD661FB637F9C236554E033D4E868C00474 BD1B0EF95C78797A576803331992BADF0B6DCB28B3B4D981738291924718B123 7540C27032850F8BE1804020809B85174D68205631CA4DD8716E97FBA28C7B41 C4B13F79D4482C0BB6AEA76DD4849340F58023CB94014CE374F630206F13B201 D0FB469EC3F65814E61D47D3EBE50A9F9B7BA0CF9DFBC7E9467F5BB259752242 335C5FCEECD5E3B90C4B7A5ABE15167EB464A02B2FF375B35035858120849509 0CFA1EFB5FC099B2804B4558D5E7D82D6D536DF64D34AE9801D0603C1822D003 87534825A517B5C3F972DC7482D29CEE279D890FDC610F1E23F74E2B498EA9C5 D9AEF612F8A9B2336EDCED2F7D7DB6F442CC1C54B8AE79E883BD68F7BDF30263 95EE560F677E89BCC398593AA6B601129D02AC6A7873FDC4C2910FBF83B1428C E2EBB7F235088AF0A89C2F7A6CCF5C9595FAABDAD08C516B607284090B6C55D7 3A2EADEBD7D0E63EDEF23CB5932D29A07A62CBDCC698D1E4AD8CB7399338ACE9 2811AF399199E966A89B10DCDCC8A12DAA1D99DDBBA4DCB249CBC39307CAF62D D4EA9F781D45AD3DCE1BF3E787D610F6678E882B69EE8E79B16393E824C8B129 9C34E282E32D0DADFC4E9273258F4314C77733DF55EB6A2EF8308B51CBC8A0B2 D64A27F7A4522B4E8AC54B0EC3837ACF65A486B5DA96A014BD352A0A5CBD5269 7E0C0CA16D475485DF9D76D286912E14AD8EA7E6E6014D70A91E7F8EE9BEB40B 7919D89E27159061EB5FE3BF2CB50EFE6270D1C597AA4A5612934F09D6F5AEA1 2BAFD3A5FA929101513A850D9111813487563DF7EC68FFE9343F20C0CDD0531E 9CB912A7B93F01F24F0FF292031BC1BCE49C13788FEB0DFCFD157F1F304F1218 A8601BFBF84269B005A36202E99303907CCECB0F1D6CA6F727BE9D5E086B07B3 71ED2EAA1338CAFCDD504233813264D58B2EC32C6E3C2B163E55A2A6B2FA5C9C AD86A627061A45B81AD548B4294AC453387C5F14FC9032B849E3FA961FEDFB9F 48779CEC469B22D7EA33C2F4CA5B0AEFA6D8CF2ED13A8F4B0AFBB081A51E0F92 1BB126B95A13073419B7FB86F0B12AD7E8FA35DBF8B68644908BDAF42F461203 174AD5D04402F6C9A5A48504B67CF886B683AE251842FDDD3C323C62DB409DB4 C1B4C8AD75904E00F05ACD0B46E82F371C03D4CC11C571141F623ADE55ECCFB7 7A0FD7D28C8FCA3774CCEC81998F248A960F393ABF1287F958C31B1410C51C1F 3AE306B51E6E819FE6850D1985BDD29A847269629AF56D794CF5AC4786271A95 D26682DBEF81AE1766841E912E19C651E6D945AA7E93B765B5C219CC074685EF A00DCEB34AF6ADC8F6352E23F0B7CF20C8826994B0D6C28D89BB9B990FDB6651 B7D717849906A3500487A17B4924E8F13167415F41DE86C68A7A76C12F8C9891 70AC9B5286705C235D0F182103D0C1C8943028DCC891582DFB89E760C805EF90 13FA84E91E391CEF45AFA9791E211D0B6F19133F580CA72766C889768FC49575 48B30765FEB1CC1C400905A7439EB331B3756B7B3AC23F5BB37E48C20CFE54F5 21FC8D4A60345F4A289E6EBAA69E7B5DEBA8F585718F0B3549C1B81956FF6B2B D5B0CF4080DCCE2775648018CC2F4DD14820355B9918C9F6A01D54400F07A9C3 9495E0250139E7C7B0436C890E93B75857E2F7306A5082A2F0AC4A528098B61E B8504EBBB03935731E0A1E1113D9E1B48A20F032ED19E115AB9A4C3D8E150174 FA42CECDDC862179EEFAB5C5F3451ED786811129A9C129F4E602A82FDD8D434E 462CBAFF7057480729FFD9CA45C95FC8589B74A9BBD8B34AAED5FAF1F0F2EB26 365A971D2ABBD9E58E2CD8541D2F0A149C4B0922354EA303F968C98F98236C4A 08A0C1F6DB3C0FEC75ED26B5FA2F407C9C3EBD7A5674554C4E3E9785664EE4D3 B3A326309070D06CE8ED97DB5D8755B1BD6C218BF8EF572733B152DEA41B4E3F 6B3A08DCC168B92E0B83EA93774A8E38E6EF8B51904BDDBE99029D92DAC0EFCF D95B1B9959205C9C917EF40667E16BB11A0ABBAA3A46697C2E7285DC027DA8C3 B27BD0C66F4FBC7DABDC6FAF4ECA25E67BB451BB88072D96830E45941B873B83 05E3FCA6A1640933C14978149EE8489B91B6A151A42F2C7ACF4882D4A25DA168 DBD9D6B6288968762D01E178D173F6AB2DEBB09DC946B997DB6190B69659FAD8 CB3CCA755262D89F9CA1A9252C44791B74617004498062F7243A75D4414B8F8B 9C1F1927628ECC12F5A1180DB6197386BDEBFDD1C2D31748160B7443BCCD1BE6 2114EF33FD22294670ACA15E03BC81646B8EF015124F6FC50AE36BA9E1C266D5 541B4E7098E681DA2C9EC686BF722B2101B15EFC4112117A3818733F51510FD9 2F03CCEA8FEB8166DBC35614A816BBF836635888C2D576CF25E37EBD7B178095 1BA528842E2575DDEB1E17483B37F4BDE6245C0C78ECE83359942D29189E7D65 4551A60CBE09DCFC80451D713F48B78FEC2DA31A0D167217468737AE3A6A7793 3ED7B1C1AE3CF12762578887D1A1A5BC01C35DF73DB9E5BD3663567BB329D8D9 A9F7D0EBDC50D4B1453BC4E6BB25B6CC3190BF4140E58C234FE1B18A3EDE011C 937273169D80B563272EBAEB4A945E909B99C2684ABED323727B9737785F8994 8D77DF9CDAD44AF01ADCE4C4D33611A03EF60F9F66DEB510F59A4259E5005EF5 0D2C44E1A549680C46658EC175425C90CDB24BBE34DD5C0C6477AC8CE7136FE1 26AE9FB7AC47D5A50A81DE66B2A1F6E9855AF7E312335E061FBD828580DA452A AB17965E801FAB9E8705854743D6D8B4E5F5E0C4A801E058509A898369EEB9D5 FA33594E21D6A39C8F360B5DBA7D3C25B210536FAE19ACC7EC789C69D2210A2D 446A63499F029D0AA628B95C71F1D122D4EE9EBB59290C57D13008DBC8F092C2 3A68B717C794055EADD808A7288D70BDFB9184C0119D1B0CF519C9A70B1FD63C E09FFA940158EB74D5E22F4744A1901ECD9EB67DE511FFE0B510DDF9FA5FEA12 2E79A641EF667272BFB46D72316C3F01976E813D924C01F18927C00B7748C971 9A5D9812D1A3D44F26888A8A1EB52CBB7F777D4F35D2ED9410CBD7F995AA46C7 1DC60F98B03822B846BF1392605901CBC5EEBAA29353AA210367C596066D71BF 9FC79FBE4F94AEB2B5ABC58232393350C44A5F07B37D0409452013F4D3A5170C 3DB302B4A1B105EFEC83FABE9A4BD5542F384FE2C34B1136BE357995A254A56D 33B052526352EAC6A44F0EE179F739D5118CE0D0859EB0B2B029AE01536B613C 42145D0E7BC4CFF683D480EE56540051AAA10820EA29065D8D2C948E0FC29110 3B6C54C532BE6E6EEAC3CAD6FA2E2501F0AE446B219F14D93766DA59CC852EEA BCDFBE7F96BE125436144A2EA159055013EFBF05825130B1F330742D6BAAFD5E B2C6AFCA3B43B9C2AF268A5B8FED5293BC4E4F7D92A69539E44681A36C6BA008 1EA7635DC9660F5D1163C0FC0AF1D4187E329049C36CEE19546E96A5678091A3 E2ECCF516CD4443E57682B7001812A9025C6AEFCBF85E92A69EE9649E5FFA09C 3B0B819DDDE80D3FA7164229A29C592CA2DE22D84397854C04B3A9B9EB5BFAF5 29EF131B07A200AA549C766C9E0FCDCF982DB17EC42DCC73A7124789C2823CB3 FC15AC52D462607FDB1055B542D08F32AC114ECC07B959D7E058C98B75658C67 757FEB4B702D048B4C5D2FF6878229520CB6815C134D66D2DD0D28DED2382047 B74459BDAB60334675E0E042003E50E796203DDAF417E662735B8F338CEFB6A0 32F3F6566CF0A171FAC27BA044E6B255D2D1FC045D44F7386F7B458585654D07 4897A3500FFFFDB4B1AC5296DB45E64C5647BCDE46E7B49A3245010D8D7A4B71 62DA7ADE7D48D13FABFEAD6B0A4C42241AD0FBBF51124D605BE5ADEBE2CB94B1 2645C05885EFB19A5BA0E96FF3F0E7A9B06FB30D31C9EA7766B689CD1989032D CF2D56FFC3747290CD3375D04BC5638FA34985300D1D2527D20EBFEEF351C6D3 069F3669FF3929903AF8002513CBF387D475D1FD3DB2672B629CEE098EE40A1C FFBAA3496DDA1BF2894902A3427210FE7F98EEC81F6780DD483473701C37D3BF D1C5A60A2E5D0515F9828C3ECBB97643E7CDEE23FD8FC146FA5B68AAB23355DB 616F3AC91F1D58B51B27006D7015E355FE2DCB5823F6B96C91DA40E536A5B49C 5B038E660968FB1111F5FD6CF2D28EAFEB942A541C73EEE1D64DB443DEE527A1 F3D10A5D9E4404105C8DAE110BB67B0B35A9BED3167207432DD5F2E62DC5A8EC E34193DB64717E98F35358D049733DDF35FEADB7DE96BD835BC0E9A587939992 CCE1A59EAD65C585E516678F4568BF551D3360A2449BB267BE93052A2FBC90CF 977374D4EC6B18074E1B761D4C7EB88889C5D02D73D784B257F681379B7E3104 9BD0B4BA641D3F37A0C8CB04582F3AE4AA770AD917CB3D3ED7E882BF96C61694 612340CB49F73C10E43C2AB428F8E15637668CCF0007D3E5BD4D04EBC1B69964 E6DA4CEEDC6C476AAE10A761147CA4E2DEC3C1B361C8C791847BCE0625FA3457 9D0E94F5CC13AFC46167BAC5575AEF95FCB6357781945C0D419BC79B24CCFBA3 5F8426FB5C810E94626CB26A2B902D12A37C0366FEC6756B0C04ABE14B7B37B4 D05001A88582CF860625E83EA10D8958DBC968A9C4F44B96831F1E0B8859CA26 9EC1740860CA779E12BEB631A270DF3B56089D1C9913E69D16280DFB5FBF44D1 129BEF87FD0AA0FC495E5A557ABF7A0102B31B8BA750073695595902E0F957D6 4A0CEC4311C099C81E03AAAF023A43F30069C947DCFE96EAA30C5EF6A4FF9B88 B1B1A4383EDD232A3E391D9E7F00096FBD3C377272B9907E6CF69A74754532AB FDDD0FFAFAD0F5DC6C24276E48521E0E10B5CDF0F7077A11A2788BFCFBEBC586 9CE629DBFB14ECC0E9069781D14221ED526DF058B13D5B8E63E5F339EEB241C3 D7892CB2F8CFD1F4F103FA1E12CFD9A358D166E98F8F1DD8230CE8D8CFBD9B5E F04214406E30A6834557F8CC031FC8782006D5E6DC08B61454C80868E827FBDC 26D989ED45E9F0B1EBCC89B4E4809C5856ABB284788B8605BB0E887EB1A53CE4 5C16313C713D79811108178099DC0849AF69601C3B2256D62F174D61088D2DF8 14B22AD1EA40C408B8D4AB31F36FF111AE889FAE1A1DA7C17C0873BA1ADC61DE 5FA06E805556BDD985EB52F153968C4AF0850FDEE8D77BEB9E18A21710CA1590 7DFB82A1ECFD1D4F31DDEECFEC6BDD0607F46FBC5ACC932E9DD51BB07186C99E D00AC3E15A990F47FA1E5F6C99BB4217FF1F81DFC2CB0453E42562D3EC7B1346 F36B0175897D2935D9CB1AE53B7842C57C18FC8B7DED5D6EBFDB7D140B5767C5 3647A623957368CC4A4124E619CC14E26BF967615656251C5348362C04958B63 43C8B9EC6D9EA7409554ADD2E95DD8BB232B3974A9796D8EDDDB46BC3DE2526A 830C4D7ED2804BFDE38FC1501C83871119A6A8E2803C45AEFEB8B8168E8E0C27 732B6078C4827DB09B96DBE7F04ADD3B2F8A27ADD835E4FE978302A3428A5DB8 ADFDB4C8D56C88ADCC24C443B0F57ED4277276B757E08D6CC952488DF9EF8115 8A2F13F801357C6A9288AB0FE48E9FE434837B9F8F95B43E6C27D1FB64B549E9 8F7CBE87D0CDAF89C684172E1FEBC23B2E11A1982ABAF655566677343381492C 862635B1141DD4F464A8016930AC5E6B428940A9A2040F3AEC54AD0B71F8B01A C588E1A9E315AA0E370FEBCDBAD408CBFE56E7D51E86E81296F00C2ED5F9BC28 D07A5811CDCC5D523D72C727634E2E4E32BCC09693C3B2E8AD1641A0FBC77396 045DEF44D056B600364C1F35D2F1E77BF641093A7EF7936226FA39E8761FC1B7 335765A56AF75FBE1B8501DC518340638013FBCAEDE41B0267754791E062AD3E A6B517926ADF19E356EE06DD9E4A1812563572C0A4B7E37678E887CD3FE5F114 F6973C664DEEDDA2ACDDD3A1B7EFBF6460325BCA31DCB49A2461D2D2D55FD0AF 689F31A000178FC11D3C325D56FD59242760112A04797627FE878DD4C5F66DFE 82276D9E996DF98D24B4AB796A58C1AB170CF6B10D23A418AA0989DAFB2987A1 30041215E3F1A9A3DBC37BDFA39D4B317E694E5EC6456E9320C9899CC8F83A2B EF657A7478A239788944ED79ADDE1B8F530907A38AF9589EF2AF72C82102523F F84DC4671D00A7241157108D05622EC25070C6BFF165060AC66565983FDED5C5 497981C5C398EA5915E7164C86D016A93795DC0B6CEF787C2BE82824C269F65E 3661ACF80BBAE2567C8E38EFC2A441652155F53766AA41CDFF02BDEFC98100DB 7841D4A5E3E2D5DF4B295BE36C5CB1674A99C7BCA5109BBC44C21DBB78A3940C 1CE6036288E51B09D2C29BA73040DE3A3495864D7B633D4123B139FCF8C576E3 4200E23C0341EDE0C81003ED170129F468C1BE74CBB1F061506F566C08E5F05B 3D374851B20B41EEF74CE1A2FD564C83BE7A0F816EC7AD47CA527DC3D26A0A2D 2D375585C5A8B9411F1119C5CD0C6940EE5EE776BF1BB914F27A5FDEEAAA6536 6CD70308BF3F6F5096326BD79850882D0EF15C2F2E66981E1D8D3CB3E3658C90 9940FE6C0ED85BBDDCE92C5641FB2FA45C185BEC3A804B6554B306305CBBD415 4D9988FDE2FC78CA3FF0375F7720E705D8B29C5A49AA379356697FF3B8516AA2 3B0F9E827F0B7B0C0130565945E01D7F0C870390871DF73EEE20120436D52E1B 1F87BE862F4966ACA044249F3B0B9698C6AB82969138254E83B94236B136A846 245E68D65622EBBE2E26B54F746294B5EB43BFD8A315AA13FAB1AC84A649F950 2233F1C55F3E6EF55CF5D74989EA315FBB92D3BDC53A5371D95F7CA4844D0945 0AFEC079F12343C15C88CA89D435070F6C532D541D36084F81D3068085CE0019 AF9713378867ED53D83490ABD1B2F94E03A0B0257C290D94082C86D84D615972 7B6E6E01724E6FA95D8C8FA1B264631CBC922896D5D3B94A12DD183F7E740204 15C35E577694B4C00930714DFDE6415A68F112B6AA93E2F56C04DDE07C461905 AB27B3ED9B679A51D72317BD18A1BB32144825741416E20DE78E3F3FA9233EE7 DE8B09011CDA9ABE9E494BE3BD604F309CF2E72942E738C1E8A2B8C54850F97F B3CCA1E4C4C76C3FBCF2C1DFCBEB741AA7FBFC8E1910F610E94D9E3D257F1083 C3CE3439DC5B99C0769B1E20E2FB7DCF3D607207907CE8DDBF8C44CA4888B558 FCE7EA9992C8E8A12BBB44CBA3774A9ACEE5633C00B3BD71F1DB9D07B29D5175 53B63DF2D4F7F5B6EE32A466CD57AD4092C8B8CD2DE6F94EC44E6609CBC0F993 08B3232DE1F1E3469D2E32DF2BDFDFCA458674753FE45EAC4CC8ABF13A4A0E65 517B91EDFC42FF481136467B5DC9CF937A34EBCCBFF6AC21CBC1F40E3FF3D81A 349E1AEE9EDD3F23CC3E0F4236FEB080B2D5208E666577729F6D42803550C344 6878B83EC2368794DC1FC60A0BE2EBCC59799581447A180952C36CB88F941DD9 6E7191CA6D433E2647CECD81001B0E4E822D9EE210FEEF98DDE52C07475E85C4 AA35E3B1DD7948A468FE1C5448F6AD988A3778B5A36CAE25B952E63B8E4590F7 4C3B42F0A23981A7EEFAA5D75446F5055D3572FCA38E40C7125AE9F642381A7A B951D94619559565D416A6F34C862366A131BE214689C4D7F3AA61434CA204D5 3DF2749BF88B506032C42650D63C1C69A4E7A43A967D1FEB0D6114693251A34B F9840B9394C7A67EEDD069684FA2D28F1524CE8D772DAF23EB043DF5D7D25C56 73674C9A195DB6F16CC7E222AA49DACF37D772C67165094B88D680F1A739A9D6 46D51116C3B34C499FBDE1A7ACB99071C088ED8E473B94AED6C4B8C38F00BC3B 60D0E5EB773BE569503F01CDDF88F4E3B624065532A0EB1C771FCA21B6C3732D 5AEE8FB51556608D140ABF15B4D55D219ED6307C6294A647623DD107F73C2A82 AE12047656DC21C89A9329801D828740F374D3243C210A79D32D6DA856973EF7 7F2F8A5D98D49EC46EDFD941D7B173ED3AB99D3A2DEFD45BEAB0A38D9A02F071 3A849E018F2513243FB503596D09111840E4C5221F106E2682DC426F7964B1F8 619A0F7509066A26A9DC02F46E0120579C19CC50C858C8D5B8208E776E68A903 F202E94B79F063E19753C4D12BD6653B17C42A88BD03CC3A69144CC0B5EAA37E 049B9623435FDBE44E2289B218060C7FB2E88E24AD436087D35BB40544B1C24D 55B47DE952D7E473D15B20EE67C1C68CA793332A657442BEDCB3A4B39CE65D30 C349F6DC51D44EC0EE79A90021D795DBC2D99169879541EB8A1D22554BE39A2E 23A58BB6913099DC5B976EA0622B2648C68E8056E5D17036901BB144ACD38508 77456867D8CB8103F04B212A9CAD2D4392AB4C1833D501E89F9656FFE3947EBE 5326E985E41893C5F8904A2E8CA5144140C10E97FF6E565B9265A2BB966589AF A4CE19E967156C81A0DBD7747B4A68684A692481ECC8037B8CAE1ACF9322C3ED D37472AFBF335A8C9A04FA85CAB614D709AD6CF5F94A337DAAC5BC3A3D53EFA3 6C8D283C414BB9B9BE99905F3963DFD05808EE8D8450ED4E3A731A52839B2B9E EC13187F0DE9C385583FDB55D4EA516B6CD6A5B0090868AFD6A7C5E702C3EF19 EA9AC0DBD472839BFF0AA5E8850860FAB27E58ED540B04955D1F97D9332C491A 4781AC046599D1BA0E9ED087E0D526DCF017DBD59CEA4F48165F526D64C5EB8C F7C9EEAAAC6169E6ACE9FFDCD7D5B2B2A707A522005ABF84564655F75277A823 A3373F9329D6BF97FC41B26F556FE48043602E3244B744003BBF343BD601B686 78B753FA41E23A59054055BB25038111F5F08BF451AADD914E6965500E86B87C 29F42A13D7F661210F09957B4697E52B9B14BE67CDBF24C594BF065A511B937D CD67565A876F8F5657686381685E443B431CE085A1E72A2813E50F7227C6DBC1 05634FC10F80DDF548854BB74D82ACD47DCB38F29712E812832F7F33DBF60C23 B1144B9657F6914CD682C832960730E584DCF9EF953B537F1E5C05551BD6B312 D8C26239B2FAF5ACB3D6E9899A242C210AC10EA02BEE79A7451CC2ED05B0EAA1 722695CB1104EC6821933953D8BA98FA000A8E176047AFB50C4F152FF8A0FC33 B0CFEC710DFF6C585655DCAE25C7098759459D01AE4CA8FF8FD96F36A26F2278 3B66577B8C89AAC9A0CC44C28161586A0884C0F54577C3642009AED005D80CED 9BEF61FE4E225B9F50609B0F873E1C423FA3FF794C0BE093AB361D7E40CF1842 F2EF9C061B48A0A3DC181246BAE714AE2918A7A6D12A7F64C7B7DE336C1693E4 089E113A7BB17455B937B98EFCC18D0E2998FF793BA22F12ED78ED3669D4D272 ED5198CF0C234551B21EB39A19B0381BDDD33CDF2F591823EAB28C49932384F2 A13B72BE250BC21ACCF8A87A41F697C34A51D0497C0BF387B615094F55BB093A B4A867F8C9CE4093E295A9FD354B4CFA99C262B549B6C7FC26A0ADD86911AE59 E2D24C6BF90EAE6762A139903F3CBA08DFDD3E7E9E2CDB6F03CBEC06FCB2773C 70C470B2BDEFD9AA5FBE3B4FBA32F2F47926B8F12F0876A076306F93BE6BF9C0 9EB0C08AF8A17F0A810EC3B832ED4BB12241B7D8B2945A3771D7685786170620 69E4F0F9EC49CBABF6E20631F7F236B354FEA68F8EC0D5A9BB8D3405FC53F022 CB0245D13AFD8401459A47800F3C20C41B2B6FE8D815DE8D4EB96DA438A50021 82C9761FA810275AF2934C7678587038A7A8EF266C23D0B23E06583B6F0DC6B2 269086FD1031477CE6A644C7B6EEBF4B516D63308EEC31F1CAFB1F41BE933836 F1CDEA9061201C9BADA974C75596EF0D0584354E3856942A781CD1E87761F783 F0DDB6A14DA51B0D844491251EF1C74B56B364F45A48F0D93854690AA7CFF38A CF09F2F45A3121C3404BE46D86B23E42070676545C559E6C50C7DA27C524F12B 5382EB436DC452DF986A315D240F03C7BCC7E9B955E151921335122E40C2C493 6470D7D3F9E2EB475B5F2837AA81A2E8B804E09453C40194631E0B6985CD47B0 83E97ECAFFDFDFAF9C6C081F9E92B94E59A813A1C30C0A1B2C39D997E67BBF27 8913783167EC272FAD3BAC7D2A36E4398BAE22240EB5FE7FF6BBC57FFA65257E 1478AB579C2FFA03FD5957E025D634DDC5AC847586B530EB9FF504013447B510 222C7C1748DD0662AFA27B166490851F81B1076224F7858F0360069250C15ACB 81601E86379FFB65E0BF596F1B2360F4596854D29E64FC06606B7AA9F261325A 8DBC0FFF28927E69D42126E04A9F14435908A90E7EBFF984FC78A28D237A2F5E 5005882FA2433D713FE8D6C9490AC7F0E8013467562ECAD54042111C50BE7975 591876017B1A73550AABD57C8E847F1E1C799EF82DC94DF4B5BB9C9A0AB693DE E1898B71C93B87FD3FB0BE37ED712062D4A2AB4D12D60B02BCD1AC9DF8EDADEB 570E60B38DA218F1EE7C63AFE8F7A626170BCC42F94A461FEE485D02E2B9EFB9 E390465E0060A277565DBB8E5B8024E81F3FE1785D76D3B4064931E4698CA825 BF7B3F1D4A81F9427AA478185F6965143E1DDF7566622E3EB6FE1CAC363238FA 3AEC15F47DEDD38F124E08271393C3FE80AF28D24D0D763EA776B1FE2D565104 301A7349689DCAAC44AE167401ED0ED503CFE7EDA145B806E9A4C6D4487A7B7F 539190F1B2FBACE6056ABE963D069F5E28D0EDB908C3011F05E912EE6F761071 A5A701A2D595990259A81368770EB1B3EB4643A23EB1F83F0E8524A748AD17E1 321637610AE8266900CE49296623117733CB6CD4D20D8A775F1C51A46E0D0466 9331E7B630D6F84C44ED2A472A687B27E3C5712AFBFB169640F26A9C8A22A4A2 A30B8D8C8EE3F1F51541205E34AF43FC3C9BB886B5B0011957565CAF9BD7D72D 29E78EFB69CBC9F35888266D84DC60F9E7511EC781288EC2E9DDB61757F17C69 F6CF2A63EA557ECF203BCB0F227948BC8E3D9D3467607ABA19CE9C4BADCB5948 7FFAB4358A479D81B12213625AEBC0D24A23E1A545EDEA173B678210279B8657 45F2245107DBDD27CDD456EE1843E00B539709FA02325BF9C2B30151EC8BEA06 5E0CCD06B209CAC8A119D6C72C3CFBAD44116FF605235EA287632366E230E135 DE0D02BE2BBC42DB91C3425611E277BA671CD66832BF14288673365794379CCD 4446C4B6FFB337EB677F3BD37B59E951302581FD22CB41307157AE058A6DCB94 C3DF3AE485C9B13BDE34F7808DBADB14425F8BC474694AA91FDD21AB067EC8EE 33EF2DB6594F39CF072C47B3F5058D3A2C4253BF2E41EE3A4A4ACB692138795A 66374F03709963CAEA1ECD92D6B9065F9DDABF391918FCD2E2F26F3445E107BD F847C3BCB58BE07A6845B2B07ABBCE6F39891942FD81B9F6CB3A85D9749032A0 5B156FD430BF8CB029B99CDCF7D74E8411DCE09DAA02392B6F59A5672FEAEDDB 3F172B2EAF0CE9E6BC6F375857A4D246706D0B99D5B76918DC6E4E72EB2693A3 E87DB1F6711C45D268CAF73FB474A2816F701A15B9401D4BAB3255126F90E531 75976EFB57C46B602AB21AF0C4BDFDBB9CDB903F55DBA7DE972960BB4CAD97BE 96D549A0E0C3037F818C38B69E2025EB63524479450326D8A21D7A58356A70E6 2A798FD26CD715CABE2902035125A36E26D09A87676D6821B05DC9AEF7BD5F62 E5740FD7EA914CF8FFA3FC429EAACCBAC75B5986982D7AC3BCCC4C231CF1E6E4 EB393AF2738C4E2FA9EFC63771DBD35F2339A1BA7FA1F756AF274854B55F8742 7E56146B0D31BA53E8187E292F4EC7D4901F8EEDD52E636BBFAEEDE4E18F142A C31A8B5C31695BFCC47FF6729355DA1383DD8240E285FED33AC45D11BB377686 5349C56B875C33BCC5296AA4BA5B35B106AA686A4B8ED6096D42D60CB4A20570 738E3EE614FF0B6FB8AE28270923C488C5BCBBDE1D331993BF27614ABD4CEA2E 97BA3C7D4A07B0D1049E15C25B6DC1717FE09786039EDD1F73792D4C4DB786B6 D9445977F4E833846FCE5E29602262D9E182D452AB02A7CEA43269DC4A8E604A BC17CC0A6B46A64A27A1A0FF8A1A7FD2BEA665043D1B9D18E6624D261661FE2A E8DF81775069BD8A06395367F8E72348E8F88D43BCCEEB9F5C70C76ED164968A 0467DBE87E539419994B29C1BAD25A0B6F15B327DBD40D3E9BF3D8AF268E13AB DCBE9076EC6C59B3CA7940F97199FF07FD5A94D6E9ECBACA5BD2C311A9D24EEC 17549934B4E7CF39996D1ADF0503E8E0F8B1B3C0D6A5D6B9D63B4DEBB900FBE8 56F8CCB86E8354F71DFCB2C9F43BE38AD8ADCC717471F231AE2F2DFBBBD39396 755D2B0778396F3FF24458BBD0271EC2444973238BA61C4F72F16B4617F56E55 BDA1061E67754EBB0B10A81B984B09E521F1772C9CFF321BA225B7B5F22AD1F4 05582983FA0A2BDE6953563677464E990FC7529E6D63F9CFFB7E8755266CD783 D28FF40102780A39609D0E74E797B75631AC918EE5C784CB4BEDC8DB34E60FCF 60498BE532A8A37414663EE20857AFF10FDD6B906063835A94E781E5933E6453 5E1A24A9DDD5E871371B04D3CC094176FC0DE8D8FEEF80ACA6B1C304818E5A98 5CCDAB9B8180F9BF809119C2FF69B8733CA8187F9AADE4895E547C40B9C8B65F 1FEB89C317383AB5D46F8408860ADA231DC9FD08B497A5377AB77EDBA7E30F45 D38777B157C63EB4842FDF79BF3200F8F3866DAF103650F5663AECBEA293EBB3 FE4B584BD5471DAE1063C43CD8A40257FCA018E99DCE7C87B69B572D50CAA1BB D69273C6061C2156ECB440608AAE7E60EE20E5EA21997AD683B326F4944FDBC1 EC34BC0FFA3660CEB0ED313591B3BFA3383D81C9B6F41004DFBF845005D21DB8 5EE193392739EFF8FBE429959300721FBB1A4E7E902560166AE949E614130564 5E4EC5E25201648649292CC82F43659625FACFFF018404E252B1DF8F408DD2F7 3830FF3D42498EE92CF0BE0DDAF5F054982CE6D9E41E27E58E21DEE5A47845EA 93EDDA407B714C8CA742167E484060EB1A80E04DF2BE3C535B44C2DC8698930C 99E4D9C8AD6D911EB9BBFA63D172A78703C03FDA5AA2A5CA6F1374D7404736A3 6F5D94DA93C3FA6691F08B0C2733B7C5B6ADA2020E7B6A968EF91DDAF5A7E69C 18A3D755C79255E286D7F68C39769C566ADD77630AAB6FC20C90820BCC055629 14EE8F787A7755E3B3DD52B900015BC77FF92060ADD6853CCAB23D95E61D318E ACF5F52EFBC795766C67B30DFED439839A1BE6BAB3AFD2058D3DC0E140674348 A673DD22609C28B13A492A5AAC1035D7766BF5E2BA738C1DE82BCB395CB4344D 6F452463521D7A6D8D979625E6900AC2B993DE3D6A15CF4473176BE41862E61B 3F9E109D500405E6F01936BD4CD77CA687B490DF2A2E501E141FBECC708286F8 5FA428A8121AF362EF3BEE57AF 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609 C627A8AFC5E08A1E14767016798E06DECC81997881B5778DB9CD2DB96422B34E CDE98B18F399EEA8C79237E5F37E285660A893F339C06CC7478A4DCCB5D5B949 BFC8A5419D34CFF02B381C047C05DA1C0CFF68B97AD6D5BCCD78C47B8D2ADABE 1D226A45CD88DA6C46471D6E8A11E7320CFFAFA3D9F0B575F04A8AB7FD04D92F ED2654D254FEF72CC871811B39FF2FF1E9EEC2C569B1A6730F9026D35DD427AA 7A3BB43552BF109E84691FDCDDF4BBE327F6DEE5C5D3D2DAE43F24B252752C6B 665A1801CE4FF0FF83B9E5C4E477D9EB0FFA578540786FB8A4C8FE3F64CB1D46 B79741C4DF75BE85D192128F26578C218DB31E0485D2C9A50F1C5EF081E9FF7A 80EA7DA42995C96AA60260D16CC6B49355FC829CFB0263D86988D1B7C72FB6AA 5ECB4E5B8F304BF46C267898CB99F5519455A688DB0448AA1380AE2E67CB5878 C45FB04B58E65579F28FC95ADFA60C0E367219 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-163 -250 1146 969}readonly def /UniqueID 5000828 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F 21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF 55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A 7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B 19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F 244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D 993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363 2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3 309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513 F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75 3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472ADBF11 05A77651F118824F6CD00209EFB60C1D32D46A78E8C8DCB8B0E742828E3B7D17 DF5200D68189C91FB8489CDEE8BC223C4281DDCA5F7DA80BD5C2D66A13AB49D2 3BBBA5D38653AAC7B813F29F450710ABE135CA3AE2ED2112731C8152ECE13039 132650336D906EC4B1E471C17C132E7A1B8DAA02A55E2DC4124D4CA3E8AADCBC 503A8F4128BA843B76369E74B27D3BB0C616F02E1C5FE045F43D743F7D2668AC 317CC09C7CA089C7669521A41C1BFD70422121398D389C01B39055195CC3045D 09BD1C52CE7AA4061944C3498CBC696CBFC36EA9E017CCE703DA9B47C192BB4D 888F93177FB95F1A18D5C2714449DE78CEDE9D85F7F00DE1FB7F79E804591317 05981D779036B25E13A40FBD444EDEC7E48CF4AC93C864841050E18C154F3A14 8025893AAE09C7550289138AD5E1DA6F1C9C9C5C3D0E2BB00446E06B1D3D94E6 2C4DFFBE4A468E3895EED46EA2B820B659088AD4A52F6DA12C5196AD90C118DF FFBBA8DD150E6EC134BAA9E773E57A4631A5B073DACA3E1E180B25869EB1CA1F F84325FFDE39915B5B1DEE05636F7D63A448FFADA25E9744A1905634CE273E3D E5AE8377D591E700EF4F775E9889C50A24B65DF16019BD62A6AB6DE1EDA8CEA8 2149658081138622C7B2DFA87201EC125AEE12265C003556FD9CD8724B0458C2 63FA85B0993ECD328B429941B0CC6DA43D2B22C9C2165CD936447BB338B0B5AC 5FCD4A8439B4BAF9E0A2AADBAB44570635321B2905C61BAD52D234EEA02396D0 98E1E7FAC22DC6D0BC68D87A3E8CC3A2D6256F3A53262E0448D7E8E6FF10BEF3 7C200085498A8AB0577B72DC978EF779D35D844F5450404537EDF24672A5F5BB B41C4CAB1A41C24E3A632E8F7290FC6FBA6D1BAA37E7E651C1F596207E4F3866 751AA17825961E2FD49C9F1FD33CD0953D4AAAD5E9B74BA614D84A79801F921D D9D3CD8C3444D2C3BBBD05BD0AB4BC82C743A90BCDFFE8B41E1A5EFA8A87F902 7DB0AB569E129FB847C53B9DD44AA8A1B15F096A41DE2E41724A30CBEC56EC11 BD9EF1DFD1711994283EFAFE5452899B31D7DB8F38C3CCCF5B38F23917CAFC1A BFDF3EC49D689C3903191005CE2FC5B8D38F9EE41EBBA25EFDE9D9228F766261 D7D1BF3FD225D81036485C6A4948F058E284FD452C95FF653CF598CA45DA84C8 CE9774148DFD55887D56B2D21C662B55F410F90AF26013E943CFFB89EE1A8AF3 B7D3C689C3C83F85308FBB244EB43AB5B74D4C348401948A573E91A26FFB45C2 C51DCF28D53E34E065C5468D1B923452ED45DDD48D437107A3138D6AA39FB88F BBEC5B559CE98EF35E3BCACFD600B617B2952519EA42C79766BD207A1DE05764 6F79EE0D147A7C62B9D8307E6E4096CDE0A26B93E8E55AAFFDDEEAD4DE0044C3 CCE089EAA17602296260594CE967CB5162DFD3610EAB87595B76CBC6E02532A8 2608E846B23F8179C6EDAD34548A1FDFF39E404EDA713D661B407FE3EC948906 71E2AA0819FE96EBCC57FD05850B6F19E00881C86C5E1904300344E2C1B4C906 D6EA467BD7ACA05AF9CD9AC701E518231E9AC558AC57CEC9F08F2A23AF1D9A14 997B91B0D50BC4769283D5AF4E3FFD138BD7F210B252ABAEEF11BDFFBC67A063 68B79F94B18C8FE0B7E2CD1405F62C561966961AE31E40E7BA45C34D5D8C03E5 47DC8C412409B20B762A853C1DA3048F6A20B35D2CDA387DA07C3932A9977F7D 89055C4B26280BFD1A38953660D39A9D7BDF4F835056270A534016EE93DEB2AD 2D9CCECE5E5B97D7C168DC9B263661D4A7100518676AC8975910208ABD85ABD0 C38C4004F53430E44BFA773D7E0DB17993532C05CD52E6EB4D6806D884F8B5AD 8BFF8320C04DAD20013F4B568E3F685BB7F7A6B7881111ACC5815521D53C3B71 33A09A0F7465AA8FAC24022E108FCFBDDBCD8A0B3127B4C2D1A7EDC94E220AF9 19752C7E617E79B595D95B48E173B9E0810384BDEDA1938C5E77A0DB5F4F5CB5 5BCB84EF13348DF8C9F747ECDBB26D5B086DC29FEB0F2389A2E8299915EAD444 524A5F33492BD3EB5F035F98CE8744AA045C6EEF28816AB6C2E22BE792B82DB8 F6603926DB311276C455C7836A0F389B749ED0FFBB2A91173FC1C1C9C8057068 99C1AE8FD93F2EE6025D09824DFFAA2D7CCFD1CCA22CED756F9EEFAC9B0E72A2 8606580AFAFC969A7189610D9A9FE976C349C454686EFBAB87CEB526D9606147 B791B8839649477611E79785D0F96A817873FDC8520A5E1B147111E613AD36EE DA11542289A2877371F728FDB5FA6005851B96BA1DC3675E4093F23AF6486764 C372B16833652E4BB8899E6CBBF5C9D768EA7A957AA0054CC519DD55B69EE2D9 922F8C3EA4E630F3F9FA1E8C96A1843DC8E0939A2A5AD51A4AE8004C6B9E6E98 D99B79B9E484A178AE6C8725C80AD18CB44C7CE504940E7900FA5FCEE33FC15E 0D6C91F8A230E1A5C8B9548B8FF23535B688B7C9ACC8734ABF28FF573D8B4C70 08A5310E2BBC267F471AD15F1A0C79DB5375B222592707E6C8DF9CB1FE19C217 59F2836BC77D12792422118F33EA0E4A007BD4B920027E3C8CEFC491A0FE877D 4CF521A31B7328D12D76575498935DC7B9DDEEF4B5EB7CF8282BA3D43F7BF618 0F107592A939D45C743AD474AB381A1F0A46A00C9424B72DCBCCE9FD469C6A13 4DB9D2E031FF7A0965B967205F7676C931C4C45BD3C8F6D8DEDE099FCAA8D6D3 F20EC21FB2749E1C892B954B14C666DB6B49B6B701F762758F382A21EFDB340C F7BD98D42CF91ACEDD5AF148898F3FA15A7469B853BC41210AA7A44E80612AB8 48B1909A84B0D01E1A2D8C2B8715EC587863BBA55ACC1380305122DDFBAC93C5 4676EBBE1FE550AF7A31D9E3B8A188EFE77E8315037589A6AE177094546114F2 F758D21127A20A18D5F77B05DC1CFEEEFBB94744D258D6108D0FB5E73C95A7BA B0288A98898F55D4141851A9519A79A267B8E858221EE27BB8238105D6132525 3B27CE97E1FDD234D8DEC8B1C7AF63BA982093FF4F38336DEE9F480DA04A348F AE7F8294D09C82F8EB0DDCCE1E23D8F8B44B2F800BBABBE1255823471446EF66 BBC04F2B542C282321C225A6BCB9E7C8C0FE7A367DBE1AD28E3B81E2925E518D 759ABD6AD1D4850572413C8C207300F86ADD78C5FA91435BFBBDE79305A8AE9D 9871DB3DF59D7BBDF483E320A7FDA4762CDBD4BC70BBA349AE32D3BF6CEABF81 4253272F3CBA88D93A881954AC096EF881C347882C0B288E6476C1E11DE630ED F826E4866AB86B1A44EF78CB16E05A124C94A23FBD16C21F804754FE624970D4 A80D7419F63CB7FA6C9B39360BCBE62F74F08BC09FB99C5CE4726DD590A2DB48 AB908CA6ACBA09F51387E0FECBE6DEAF783A6E59BD9762AA47DE171F7F316391 D91EC40AA073E9FEFA85C4E83D40E76742BA37193E599F5CBFA06D56D6230BF9 76741C4187229029CE47D1EBB6E5C6600E9D07FDBAC1CB7812D5A39231D21690 AFD5A8DB6A904C0A6963762A73B0F911A8FF7690372B8148ECD728B9AF746D22 28395D175B09E305C8E082A12A1C4450987470DA7F6AB2B67756624E0597B755 9A2DC92E0A110B211E0A83E9A7280932E592DD9D32CF2108DF29BCC93D798664 23ECC352065796172C1399EF641F7B1453D20DB2B8EA84116511AABD368B1518 35BDCB3EA48EBBC8DD3B6BF8E78EE9A3D90AA8689B218A11CAAB726320EC4D47 C11D6DB236BF185D378DAB9EF70B669E8C8427A74B4A527761361FAA7B8FEA19 6C6B6E7E1C2E39652B5A5F07332CE68C485E76783CCD696E26A0373123A9EAB7 ED36905C861C9FAB290FE9D29F9960043E04D8A0B51EF5A48D1DAE128B2A1E0A F9C152F4ED66F92C09C7998A68BFDCC4D287B21FF6D9EC9931634356E9153F0D 4AA0526717A1CCDF6AF9A12AD755E4865BD9B4CB7D535F48C08AA3F860FFF7A0 0C290CA986B5F87A94FC6467DEBB27D0AD1592534512B2767F06B30CEEF09CC5 DD581AFCB75605AA59667A289915B45628A0FC45D55AF085445CE69DD90BB4D3 4358DF26964556EC80A6CCED629EBE280F23F74BBEB28DE3740DB317929B6584 3D13C6EB281299F7D1F655F9DC7579EC8A9D5FD8E5CC870AE6A445150F28745B 507D39205EDFA3CF46548DD50EB703D82A951AD2AE84D516A14313936BE66B0B 63E57248D41D93C714603BC9817AF3BAD3D224E8A264EAE14C12D304D1BA3928 F60793CE58F315CACE77F7AADF4C9C08FA372112B407494EA02E0F0E52F8A3F4 2A370A523A493089DC665D3921CCF90FCD9DCABF2F263EDC24D3F53E0C9C23B5 C9191B2BA003E9A17B00CE0A824FE895BFDC58ECEDF6BFED73F9871469703275 D0F2D4D47629FAD99BFB5839AFF49F7BA90662552E26348B4724F8A0BF502C52 F70088985E0F89217EB6B7857D45BC2FF80BD9059372E33A6D663858CF8A0E3F 27B9E3637A04152CD69A8153044D6910F677DD7F6ABFD4BC956CDBB2E1AB7656 A32A08C0DEE1EAB4B6A7026B020D04A67C1F18DE9F276473BA79B0193CADFE6C 90818A068546CAAC8F390BE55C2211F79D3516F2D9EADE9EF6F5AC1CA00A2C1A 31CF9E59B6F2DAB341FECBBCD3F4021B4368302249E452E2153DA48AF96C94EA C18FB72392C29F21AB53953D0B212AF315569DEDCFDB79863F655441D20C4E99 403FB3710C07262AB354C4E61C77FAB5AAE3B349B2CBB9221AAF8E6E6851C7BD 4632450F899A12BACE6634A23DD4C135243D4275EFF269C822E8CBF7FA4C0644 B5BA75F7A229016D6C37FB0C73EB0F3BAFC3DAC9CE650ABB13769F2758F24B5D 192BEDC9FBA2DED297530639150343B149A8918FDEA03FE8F65E13E64CC4FE8B 353C48C6D5B4BCDFCEDAA617A67F706E30BC553B9D7F709B1300AEAC547EECE4 2C2C8FA8ED78AA6AA7EBE73085EAF4D170ACFEA904EEDBA4E3CFA19FFD1424DD 6AE701FEEBC9D28D96BDEFFC37E0E5F5A839EA4C6A28152586C1BD24186D265F 19AB5C905882215361D1D06CC4B5D41342CF77D9E5609708424122A4DC2AE9A9 54BB4C1AD5EC5D83084DBD74DA891603015B4AF7176BDD9F315561A32C9943F4 838E6140C155EAE810A0CA952F04D43B07804A99214B37B61E54675CD087849E B9288B72407BE1406921AC4BC10F1DDA9BF9DE08336D43967DBF9EFEC9F5CF0C E0A8BBE17C042DDF8B3542FF52167FCD097FE0E73BA7FB3FDC705DEF5A67B1CC FC91D775631FB785A40BB1E891B8E4C2AA51454AAB662D05AAB952D1BEA5D3E3 8399A9C371A4E24734FE6B7D937D9F647893C76EE1CECD38DB5CF7697DCB037F E6BB74A79F1FBE4BB9E4AA221FE574598AA60A531D71E3359E8F7E6D139C4AA2 23B2B6CBB6A80D390F128E2086DA32AB5309CDDB82E85A36572240E36465AB2A F01A52935582F491345AE5E89CE9D6FE1F3EEAA8C3CCF523A176127489E6E03B A75534964F533C741B475F045A04B7422E28F4C30D6B802BE44EFF0C2F58193B C59EED4F62771F4AA760F4EA1119A48C09F6C84A7A507B0B2EFFB60B9CE95D02 31BB13BEBAE89E67F9A8D43972FEB84FC1C021D8D05C87C87524EB940FCC137B C8C56C9F663E54CBE806A0170C8EF8FDB5266C043AD2720B4350DCA843C46269 1268E65C5DCE1AEA0ACBF911CBD924DBE853AC119153C3254BC4FC04D88E804E 07C5A11C3701CAF1B27C34EA05CAA6DA16CB398D2492EB13052CBFFA1AB865AC F65AD016D9C6E25BA94392F86A16624A6153AF5C4C0024A541E249C7B928FA11 A9A2440D43FC27C0C907014A06F0B2050416AF00BC93F4619BFB621626B324B6 6B4D4F44FA303BA92C139AA6BB27EB9CC5C78D5505C9B3A0899B3A1FDD2C7A0F 8C39F3AEE8D8DD1E93817C2FC2E653B93A7C4367584DB0BC646B8C2071C24227 D007B1419F319543D6D4B35B140EC88AFCE9AB98F33D980397A24BEFDA8AF0C1 EAD18B90C29146E45EEC0D14E43C4015FB6695EF4FD3705C9CA402FEFC674786 E91EA48809EDC44290850F440FAD29C47B3EE13DFD4E93AB70766FE507260BED E920611BB23C56935DBC7ABFECEC4D63FC4E9D66DBE7CA030A0F12B09CA3063D 2478282C567084895FAFC32D75FE4DEBACEE3BEE39629BBA7754500193EE5AF2 4FBBA081FB3D2526A7ADFF37C14987399DEB069A38C11488B974F2B6A81CE7A7 91CE555D437D22F19B14D96E175AB409287B94B7C44B8A95609E35873FE908E9 8E54BEABE728D36AACCDC80896BD72A2AD3B6747893212FF0649ACB738242F81 2546A1074F5EFA65F625F12971274C01E4596FAB85381673C710770C955E92CD 6CC9600FF8B1FE3B6E4162B5102C137ED0CAD9FA47CA5E848506E8E71EB5920B 2628F9CBFE6AE56A90B4B30A1AC6CEAE1DC541FDDF5109C4EB5918F267385310 F2BC77DF6DB93D1F1A4B2A86A926301B6A1C3F806E252AAD0CED1D5CFA877678 C1F9125679BAE024BC3C6EBA5439E0B196C08323A25FB70A53EF4A77ABFE3CFD 798A4D6DB468E1150336187A5C722B7F53BED4CC3B1AD81C806A6A8DDB22B11C 3F41A24A40CB277E5F7C488C135DCD78B0D6A4BE77A164CE5443CDBAF71FE12D 7FE852917691F8F6ED32E74C05F4A986124CD073B0B23F90A75E7B7C3FF70C29 AB8B2896C116A1F6B89FD9C7CB7B5445C962527FEE09D1480BE37BF270A52D8A F4DA1B135555814CD58EE8596EF541973DCA25006B7C3411F1938657B9EB7A72 F2976DB4967D74CEE6A366082F03D352D7C7665DC9F2BDE6D0F3E3445159FFE4 B10C1E1FA1F20A41DFB20CA8F91CAF1AAA44BB37E59A217DF1388E0B619F39A5 7CED5924D3356F597E2766C81B896ADACC21C9BFC4F6DAA4CF477357A3424F1B 1DBA7BAA8E89407560AF1C1FA4E3C96F64995E3E11E1CD45D111D746C5BBC9D9 5935C82284B3BFC6B7777429D02DA48D34D0789E1E24A624D34327C2E2E6320B FDF46CB0B21C40892B9A8E4DB2384459192CFA9B8E2F86ED87C8D5DEACDB199C C960F4D0FC7FF2205CEDC41D5CC2FB8A408EA4960234F2608416D03ACE74A399 7782D1E39A9C7D5C596C99933BE34D46C222313989775C0D788445E76256A4E2 65D236FF0B2FEE175510E036D8C3480CCCF106A850FB3F1ED7D0689B3787D2CE 8762C417E73EEB6BCEC0230A7F0FD18E1F3162D64E974356808B50D67BD2150C 15FF5381A87B9DE57AE3B226FA96C88A0CD3EA06A608064609F5AEABE62DEF42 FA08691B93887440E88DBF3E8C07EB5AB59C1B5203E92890D62B74C75BBCAD31 DEBB4C0C4720D2AABB14DD7144C5131F043BB5EA5C3D5263F2B554082CF4E6AE 5D12CF67149EC0D27D373501D588274BA5A9DB2A714674F0E1B3547AF6EDB0ED C21E3622C011D21FEFFC9CF47BF98765FDA468F8EAC7F49A9E8E8B7AFDCD4FDD 45648598A4A98286BA4A178AE60FE71EFDDE4C8DAA5DB1225DE9AA8024E2FA32 582D75BA9614B1325FF5DD042C51C1C843AD169D23D43E388E989E9F6E89F590 6B425FBD7208C833C9BD77AF1E23E5E5C4EA2998AFD1EB4688054DD20E1CC4C3 516787F69C3D42BF5D26C627CC493CBDD0B5F8E263464CBEE544342ADB2C7D02 F9C883B51F1AAF741D7B6C2834ED29E1B0538816BAA058B6A33FF3EED6A5295F F5C63C16C6CC5689D149D4D34373E3177A635ABCDF0495560F259D079CD4D0B5 989354A65D310B365D385F2A18E836F19B4B3B31895E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C 295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C 4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF 2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E 0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B 43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC 96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A 45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625 0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078 3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9 3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64 293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5 9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139 6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639 3FB39C1F05FF8F31D2DEF37BB9B883334F51EA1243332FE1E3FC91864C8AEA79 16A726F924AFD84F2F4215FB795FC41DCFFC835C90B9E31D291E47AA4BB8C05C 620F69DF31E91A0FBA8E217CDBFAD7C4D480EBC1EB396029CDE615C227A367AD 72834BA95539D39A38EA0CA3CF7F1123F70792CF315BAAA38BBCB6DFA80B4493 5025F33C3696DAD6A0ADF584C71BCB1D29E523EA4B81FFCE15F3204022BBBEA0 A9483EE8EAC07D581162672A0D66199174821ABD097561A263C0C0F24066FBE6 0951F31FBBF2675141F3FB4457CC2A94A40191EA0AB2A606CF540BBB8887B6DE 715EDB1041EBB9D05D0F4A4672F534397B9529EF8743BE88BBA10C81E0A46259 2F2AA7B638E20C9C8A3A827977AB58ABF7525BE15DB66CE8E9B81457552073B5 85DF3FA70B5231C447C5724E14730B90FA35ED1B5723036F1658CA8E19EF5A6D D333B78E91E4D7032EFBFD40A5A2269B0DFD9F7C3438DB58F94B507EB93032F9 99E5F15D9F5D8CB031BBBFBCA8A15A617ACEDDE70DD9C2D9EE21179FB17AD913 B4BF577A9046994689D1BC6A6985FF5F5A67D699C2FD288FD9E5BCAD5453EEC5 68287BD7B8872726C28CD288B4DED2246B843577173450B6E5760852CF2E1727 01FDB0FFFBE12CA13ACF6434AEF4B59EFF3E0DB1E87D35075B1D55AC12633167 5A83A39056C077EAE6F2F7D1DDED300BA43830B8034F0A6AEC562D3023270601 6C594D0359DF6F230F7B80B54EBAE4880AF338956B813E3B8DB8BC778BE0F612 7D84939C2878B43EAA45BF10E257F22C28C2C148FF48843D2B52626148E3CAA7 4527B9F246C17BDE21C6E7EAB4906BB6D9E84906CD1832C4BD9E405AFFE33AA2 AE086C25EA26BC23D68986639366B99C87359915EBB76D7162AA667ADE4954D0 B1E18027FAC2468CB2FEA2568E23DBC201E9B6A1151FBF21129A088D89E3E728 28B2785C1A8B2637F368A93EAB459F80506435BE23A85396969E2AC4E0D6E4B0 8B12EACD150049EF8942C108B96843159D4408424394B33603F565D1622FCB77 50DBB834BF507425DA3D223F457D7247451448961F2C37E56FF3F53D9DD77A05 59F3401C60D818DC11F3E841312DF62A9537AEF8E2222777A3A6885E7D4E8ADF A293883E6202E55E929B25D46EA2AE7B0E099C985A2E3B043A01E400BBBBDBD2 B45514D0A9163B7B6199B6D7527A5F74E3D3501D68B26DF7B8853C5575659AE9 9AE228BBEB4BB96EB2DA7502A13186BE72953F3450DF977E80B3D6A3463F6F49 C31F8A0DDD6265DCC4DD12EC94BC6DE9ACC3AFB91BEC74E20D12977B82C408CF 0904DED7FD07E53165DEEE2E2F1D1463EB3A333EBD3FDEF542AB0C06944AC754 54BB508225316EB88CE97E24C3D6B23B6849CF1F64CC5BFC50C6D8EDC27496BE 55BDC22DC6E00F9A3973E6364EEFC01C812B639A022B55716FB27540D4373499 DB54B6C96A035927903960E7FC8821164FB35E20B5E584A8FAD06A602A5B2498 406D77D2E040F8DB26848ABFEE50D8A84B1327451B9CC3803D3CB8F94264B496 1729E6D994EE1269F7D5022DD23D4E05A0D21BEEC64EC12F2FD0148BA1FFF964 F28C4DADF12D02E0EFCCC18A1CC4F597DA0A057453F88CDA936DC18F2311A551 30641B57B31719805E39E8CD5530C439FC16000713235B4D5752D2E7E56DB559 8EE022FA0247FD0A6CC344CC39F14BD0437BC92818B77E7FD46BFB4566EEB08E F5ADB3E377EC846E95661C7BE5702D32465042C7778B3342AE5215F6974329CE 4C305D0B5FC82E146BC78C02D28AC8E6CA100F94909D92E7E0D8DAE9AC1A2CC9 E932B248384342C91BC4C1F886BA2879678857EC838D657751E9B068D3F8A711 17F2813372C7AFB62B92F8234A080CCBBAB3E2BD47F2D9F2C7FD6F65CBC3DDB3 48829F051B23DD2AEB1301068C2CB078A78171821104B4D510BE0E5D803E0A0E 5CAC0E0683B9CD9E770E0A77752745BA2559D3DCE87A5F1C7E5E40E0612418C2 9AC06DEC3B601F6CBF6E5842472B79C21CC8AC21493470721D1FF3A57EC10786 BF8DBD10F6310D87FAADA8E7505BA0392A0BE8263ED3F80B3E9736E2549D8C12 1F631C92C1D61048799AD47EAA77D7E64C93E6635AEA8889E908827C173071FA 9780CA00FA65C2155138B9B40C3968834873675B19818C3A428922FB144F60C9 F3E0E97A23E842A0C7D052E9316F0FABF4BAF5682A9851615C8188CF23FF211D E8E38C9A520F66B4774CF3A89B8F307E66BCA76EA5BFB6F73485931DA9CA9FB4 311CADAF4570FD981C1D8912A68087D9A9F9897A77EA27D64BBA588EDD010C16 5C949DDDED2F6485C416ACE9BFFA044D0F2FCA97439292EE451CFBBFD4DF8F4C C740C925EDE8A8093B5FD98211C94F9EB92A970418095073770E131071D7AEA5 200ACFDF3D544BC1EDC45E81B71A67A3BCDBCD3A476B27A88967DFF4BF812C82 2031050CB99E04229DEFF74B6FD88570CD4A9803DDB83F30CE431CC640C43877 34417F41A18839BC89E76312F09EE62DBD3A15EA2824D298F0781B8F83925BCD 907DECA2D003FAE9F2DE4A10975AA1029D73A70054131980BC43D366A0AB5610 060EB7E8F3FA2AD60053F927334D7CC108DE127B307984BD0F3CAA3D787048FA 5FCC4EDAAC6936C00CFDD372C8073911E80DC0E4B3C67E843D49E6C17825F957 B3ADE728878A52FD5B58DF4FFDA0F20C91C26D107110E05BD9F3776E7B44610A 92F079E87668833B52148DAAA92592C6D658FEF8976FB41A1BC4B45E6407EE5C 45B560B057BC69D12ABB2CC322E8B3A7DC22A2803BEDD78583275C6D2B89FA3D 7BE48BEFAEF30B19D946FD04FDA44A0FD7463C909FB64C1904DD6E1E7918420C 987D12E3CF1A79E1B17CC1E4746F85207A5A2D93292A82113921DD875CE6F52D 11712A8C462341775C1E470DCB1EFA2DDCC9586578E995D644E3D3A9F5763340 8465B8D8C4D6017BFFC4AAA955D8FEFF2EB006EA4868AF33E27555092EBAC3E3 7332046CD977465EB07978C27F5B7986E6F4AA489B4BC1A928256D65289FE2F5 D15510EE4A62D870A33558DA3A98DC0D561D844E6D050731EF3B09DB715D6F8E ED116E9CD425B15536D8E1CABF90EC18252884279F1AEC6689EE33DD35091BD7 C4D2EABCF84F59B07A939E42FAB245FA5B9A3D6C6BBFAA34E7850F531D027E42 F0CAD173C7326839CD2498177671FCAB6BB8912B907622A50495F94F59B8EF49 1E9B315963C70F3D3962AD9E85EEBC87672E4A3F660F918193C083F27B743133 9EA7274257802EFF154CEDB41FFBFF4BAD52F38E921D85625D3A3D4DCB21C674 75B2326923D93A4EF993E40924564F7E044D85EA75F8A1480B448352C734A95D 1E6CECD2390A46ECF7E24CDFBDD0880819EA13D7897BE2D22C763B3D1A522727 26A98660D7F9EE9EA5E0EC7FFE5380316F7F63E0A5608513E6BEB1282080BAD1 7B355E1D97FD9A9CDC59A7223290C6A488575F5B5E5EE8C401FF4129F1F4DDEB 45FC0948A9AC66521B83E846DD97901DD0EDCE8941994EC0773801233F729E4E 1A2B31F7D7CA8E02A633997BDAC588F3CCC745DC89BD545065E8E0993856196C B87CB9682CE661B399E96833A83B5280A2DD36D951222D91C2EBC86B05F53093 04761BC42CE444241D42D55CB8973F539189772B3689EF874CCB4E0C08AD38B9 5223A6500D03D730AD90334D6CCB4677931A513C8E1D4E8AE5EC96CABB845C3B 5AB10C05A554F5AC9620D21980D42E6EAE5F91522661279DA86DD6F38E88FDF3 B7544DB8D05C61E4D58159BC080B79689EF7FA8C43DA5D416AA76A3B3E1657EC AE4E8A02BD3295BCE108406F8F3754312197474B7A51614202832439D0F3625D EA9FD61B560EFF4F88FC8FC40C9D9C4DE1B6BBDC7AA106017BD38465664CF4D0 ED7B2C5FBD689E3A9EBFD49E481EDACE5D2FBF8A7B36D51EE35505C5949591DA 0FC805F4F53780E13FB47F31D371F2C4D1F18C25FE890AC62CF0034BA596B332 7C8A5221FD144132251A9FAD6BF120910C975469789316B3AADDCF936CB457E2 B419918E6CB00F4A794F435F09FDFE9409C312EFFBA4779953848F50AB26A4A2 B7E5A435E4B01B9C98CB8731DA3FECD03EB9D18A26E43A11E517740EE44F95E9 09EB54F2BA76AF5D5CAB0C8C9246C78982BB59E832F31881593BE69FE8C18F43 0FCD543B037A8DD1F7541970CA5A5069423DE352FCBFD9F4FE3E81FCDF5406F5 B80D54EC0118E496FA6ECF1455EF55EAD280A47A3372800FA7DD8BFA6C71CBEB 0F84519911775CF179D8895C3C7B008D4E85BEC393CB7A81E4077A8A4D969E57 2C291E1E34A245C305BF69B2E86FAB46E68B274F0392CEB9D0CB8475AEE70EA2 5A71C3641FF4E03B5FB7A554605D92429B42F94DB133A67AF421048A496D07AE DB12EF4558EF5ECA980A9CBF7409A1953F9D7034B628644F855E8EE731B6188C D58C08BB2E1F00F65911922DF415D1A64320DE025A50C45E5CAE066547D7240A D71DE15A839186302E3969CE4E5B03F5FC209E9AD134BC8076ADBB84A204A4E4 974CC7882C845F0826C93FE8929FB2E57CE7EA0E3B5A0309131D8B04B145E20A 0A20B281FCDF0E67FA739100ADB402D16DB99364CCF6C7DDE65B6F8B8BA95E53 3C06BFF1F477255A02B476A10EC5E112144C503EC150231D119CE4B91E389929 5A405CD873B61B09DFF3D89142E1F8C0A93B17867B911B55E47F5455CF149886 439FD2024F2B59235347EDD6C41BF963BFEA09B48060007848891E91D454D478 8E267D0CCB6380588EBD4B547571024B123023D7BAAFA81B1320FB2427C3DAD0 1ECCFB7153CBD0A3C27D2E5F3AC14CA9A9F83F006B986BF995F8B7C64189E3F0 584CD333C7344D8F7E9FAA20B96FCF50C475DF00C57069519D51C29E2E0A1403 C4752928E6BAB66C613FB6C77ECE1C42940EDC77594EC8A8F609A452E315FC96 07E6E00C2AF8FBD2CCBB4D9A6A202A7E7B4BEECA8B8B5F85BBD7B4B5E0AF351D 884315DB193AC13BF5CFE6E3BF891ACC3388EDA8761CAB2844ACD0F8E934CD8D F55A1CF71C832BA0B619E4CB510B36305647EB573F5CA95FED799255C9452A51 2FCF0CA363AFF6A2ABF961C62E34CD3B17BE25630ADC82204B8E258D615F8F82 461246E8C20AA9439428B1085DE8E99AD17C6E853B593614E987159DF88FD4B1 F351C40BC09EF46C1898711E4F42E2E22AC584E60FAC9E90F5A391DC92F7567A AFFCDC796775B43153FD106BD80226B385FA5C300CFD425B80E4CA77AA3B20F8 B27C925664BB630407FAB043841486DB4AB3488700208CB704FA2BBE17BF8A10 42E9356851332CF3AB57E3C0EC6AD9C187FD708174E6E8E3E8462F9B820BE3B8 12AA96C4E04E36C6E18CC765F678E2C569623A05D4F7A1AFE262020CC20C9D1B 42D7752B7BB2528DD6CC045FB38146A54C0DD578276A9F63E765DD614C0E8DB1 11C275DE19C390AEF300570FD390CCC5394A0485A8F9A12D3FC1DBF65DDAF6C6 72DF668E9CF3D2F06E9095EF224AF63F5CFE2EFB1E2477FA1CB584D1EC270F41 9B8FFB62FC18DA796AB440E6D55D2AEF27C0011EC741BE8B7A42AF959B31B50B 83550ADA4F9FA5E09133484FEDA1FD0603CCE5F31846182D1DA3F65F1E351E33 D5075A1CB73AF909DB5C353B4415E98F355C180CDC0267EC57DCDBCF0A18F2D0 7792DE167F7D32ABF65A407C45CF22145359F77945786890890E9F22CB63138B E9A11D3C1648D2B1105996F466CE6C2088DCD124DA5C228B4D747A8F051023A4 BD1B8FFA51C6AE59160EB4E6317CB2A4FC493DE6340056E9704BBFAFC8BAF149 A3F092BFC6D62E1B995C5B939595F9DFA299C85F03C2B455B0E75F462B599A77 0322D80E43818269F7D05F4E5D80774513EB900F006390C789644D588443AF17 4F7DE432AF6ADEFD360E9AC79A4AA323B90316D50FC3284FF4D7FB977BAE9748 01250B15888DB3BD206CC7870831A1DF3EE53C5A21BE5A4C537445BA6609BB46 8B69CE84191C9125BEF4365B14FEA1E2EEE722861BFB0CB1E107DEDE4F1CE761 9995004696AC7331E350A64491259875681C67279925BB90339E0F50CC272302 E820457FE47BF0EF51D8B45DB356CF730C505F7376BD1EB23749FF69AEFDA36A 12D5825014FA752C33272B410F3F183BD560000F8246789D213A871CA706B8E8 FF4C30D3062962CE30DCA8C44F4C05A283482A4BCCF1F7C82843BA04E2604971 3E19F4AD1EB0455498F96DE247B4765E41B1F914D608C5ADA614D49DB0DB8C45 7F09852ECD347039494117D0910FC5DCD9057CCFBB46BA75E5212CCA1313ECA9 DFE007FD5455B3ADB1DE3A16A5DAD172B5B4698F36ECF25DCFBEAD3DBC74EF82 140475AB39AD82CE2530026CD861F492A31F995DE4BAFBD6E5A95F4F9C32E7BD 616238CE937E8F46E065DDA9C6EF3D5AA03F85AC0C8A497CC4066BE9DCA5B036 56BC1B8A99E9025CE50143A2389A1B84CBA66BC4FDCD11C3E77175662676ADD1 9D49575CD279A0FFF82C7CBD9B42D93A41BED5253B88EC59D6C977552A2719BB 7269D335BFE755BE508489A0D8FF5E84537B248DBCCD5B96057965756ACB583E D82DD782D499E494A39CA3E3E8AEF7FEE3C3FD236E1546F1397372F2225E148B 28DC1EE86D0B7426AA29DF4DAB83129D7FEA07442D5D612B0F436AA54E66E034 C0CA27A0E34ADA0603CCDB06D4DB79AD1A20604D999C235857F3587E582A02FB 2BAC89DD1617BA6E839B83085D5758D3C7FE3FD5AEDB3419FBB05AFE17B796EF 3C376B74777FAEC27B0A052AFCE3183B4555E998A137BD5EE41814287EF1A8E5 B66E8EBCD75D48529DF6051B08390237CC13278DDBA7BD4E9B064F7025BFE7B4 7F838AC6333FFCD75617551206F8A5B2D641A395F0260D136BB3375E85283D48 96683EB455F7EAC39113A65FC39EE6CE92836C2661B97736FEFDFDD4CE035B73 E6A200F67D7A91744182A1C25EB20064F3BF35F3236A37B8E6C78CA759EDAC57 56F5DFC27DC13BAE141089718CA26E6CE666888E0E2FDF4271B70015ADC37F7F A8F6360D3172A17045822C8DF4967E464D00CFCB34B8539C8DB2B28A60580268 ECD22DD40C82687281885551BA26200B6AF5284C746F81F3F0BF35951894E02B A1FEB240E80B59F50F45C5A0A5B4DFF24A88CF2116C39842DD1CD6CE56F2CDA9 787BA2B17886627A4338F6C171927893BE52D983125CAE72348449AEC62996A9 B0991DB01543F5D2FD973D5551EF79A20C46907AA99B3E0276AE818C95FEE9F1 1A15945564B5A779AF1C7D00EC5C06B76DF0B5DA5CC1424AC179AE7BE3846912 6C23A10BB06A6A2EAE973B55AFB09C40EC77A99875333EF5351339D04D840BF5 7E0CBF47BCD5DD388EF1AC6903186604E1727A115C78DA29B3F62C812ED8CE9F D968587D6B0C63A7A33B10FE8A5794ECFFA48802293F793D671EE07F3EDFD4B3 FDE65CA7AF43E152CEFF3A00BD27D6E8AA6621DAD5DF405242CAD728F346DCD1 E31D40D17F73C5BEE2C9209C1E213EE66D888296F5DE3AB2F782B60C002C5913 4081DC0A15224C94594FD192E151EAC59432564D4D5387E784A44EE86283BD8D 5CE4B37D15375DEE218DCC438D07681B67D02A3CB1467539DF2B791EDA6FCE65 41D9C594CE81AF58BA68A5FD64435BD5CF70FD5B8238756952CF3EC4360587D8 55A9F4564F9A1BBFE76401DFA0CC5FBAEEF21AF7B5DDC37ABC46AFA8B2A418A4 1DDF5FBE60831EAA4D7D6EFCF0109FDF2D232FF0F9F501D539D1E2B143442B95 AEE21F85C2FFADFE72D777CC0732E919301CAEFF32BE80F6AF7A8DD142099B79 CFB751A96A403492CB7BF50AE0BCA24497C8D5743317E7A3F018878AFBA36A04 9223E58E8A1A0ACD5EBAF29D82C7757E7530BDEAD53693A4699A8AE3EBA290E3 63201953A5C70225B976F28B7FC53775F84007EA5A93214C05DA47143BA0AC0D 6C750E2C5E1A056B779394108F51909F9D35E359701C968BCB27FF0F4718D0D4 74DF80575F5348B29720F6F3F8316F7688E6B73F39102D17250DBA9F3BDBC08A B8866C3190F13E5D569F1F53889CCF957D6A3FBE0E480B0984B584CDE2B64255 FF0105ABEA1916AFC18FE00FC7D04C64556EAF754124E5169F89105776B75EB1 329DF90665DDC749DFA1A26AF224432C4E44554B4F77F4A1F5EBD20ABA7BCA99 970457693CA708234B0307169BA74712EB71C9E7C2819F0F68EFA91E85E5484E 9F22A0E5BBF4FB1988E93E59E3A18838E9A71A4E40364259C67F8FFFCCD478BE 93258317CE922F301B895404D8FBAF674F46E1E5D34C83FDE37786304E95F556 80796ECB2D7B00A03DB689C36C2C52DB8ACCDD054E8603EF86B517C9702FD80E C257E43654D453E36E792E671AFEA493BCDE0592ED39D8EB77D70BCA5D5CA401 C0BBE0436BFFC6F7B1A4D36CDB04354F6D1C82603AE747388471542A25BB25E5 0E5EC58771D0FEEC21794772DA5860AB0D2C66D6DDB34B15DAF7ED822819EAC5 DA138C29E4F61A80E9FB9CFDB09EAB36E5E157058E10E6B8459F133D052DC089 5E597DB31A41097FA8B789817805397EF99852077E34EE8787EFA901BF2FA1B1 C0C3C0FABC35C1D4FD099B62A03095970BA86DA4202E3A549353B3120360156C 0572D8A024FCB02003C59AB2B69BD9CE920824D1E9F42261A554286616148CFD 1AD501B9CD6BEC61D7F7812D70FBE9E7A69035B6A984CA3849E89E1EC7914699 86CB0F2D08DA25F4D24ED350832995F02A2683E5BE4FDF88BD94A6394AE95C0C 8F3B078B3BF2B646603C68CD2D8D25092F2AF2F0F3F91471D3FDA49A372E4560 98114D07459C18BBE69312C03BA9FD21034AE5EF8558E88093B4705B48F6A453 314ED0FD01086E57CA75229CF0A0328A2E39A0C9AB2DC85F51CBC7D4662185E4 269165A79A5CEEA156466AF3610A20C81EDA4A6B0F7F4B3278ABBD5CEF35E082 0C6F05AE744EB584E95B99A5DB21A851754A34A9F464F81D1A58934B95628E7D DE207CDE5E6A9D7FD88700A518A088C1721E7EF1FA30606A56C3F21DF27420F9 E89A60C86891CED655BE42D31D4A96E12ED3EAAF32F4ABFF79C1610679C18A5F 4466DB3FFDA5356AE45F9FEFA2E8CA4B97B8098A759CF2DB4F12396A29D35A50 9FAFE7D95EAE32EB103657C686F0124A3000D9F44271B38A5F193CCCBB0751DB 1C9D7573DB32EFD0D607A174AB63542A2735778628BB497DE4F5199A54D35012 BB2EACD29D15B9FC3D630D8671000066DD5A83E5EA52D78ED349EF6C23308B35 D453F7DD23DB368F2A33FB50DF7737738E54B594D51D21A93A747CBA765905FE 50922832217C934938731A22B781D87EED46D1232CB697931F8D9781A4F42292 FEFBFE0F8BDA4DD72A3ABEABB0A0ABBE7526AD6A8EB9DDD310BAC58CC5649A4B B690F7425DEE29E04F3DD1B99834DCDBCA5C95D0ADA69BD8A474EFC576A4C3E0 1FE3EC68DF81E08A585153416B68088BCEF06687FF6CC96BA0D448BCEAD59A35 CE1BDF7E935CAC4A3D341887461830F6D7F3418B94F66FD4123DED1A351A6C2C 14B974255CE8A6BD1416A16A26B7FD3DBAC031AFDD6195D77A000FA0139501DF 01BE516BB0FF69E828FFEAA9DF60ACD8C117D146A52387E59CE19CB7D13CD289 1D5C83C3479B8863F6106EC2DC851B49D9E55F816BD7272AF245BDFA7D9BCB69 29133B87F45783033D5BEE2DB8AC6B6A041D3C135C1F6C1DB209C865A5852F92 77B7F7730E01973642B10CE6590C05F3A1865F293D47AF1F577B13FBC6A10A10 4372EA91E71491D075337FD64EF5A74E122922C6B0617F4E0EA511992E584913 4CE9448CDDB8BCA3AE6F5948D13CF21EA494728E0D8DB3D17C7E19EC1B4A84D1 7FD4BD125742CCADAAC45BDA04384CCF670AD238832F295269F343BB6F5AE01B 9E0B2022F087333C70188AD906D8665BFB1E1C47AED395292FE6F37C5C6A2E4F 4DBD70A8A555A0157CFB67AC97FDC1FDB17B2B032AD2D9B958618DDD71FE9597 6C62270E6206F41831EEDB1A90A67426B31C637E8120C07B3E6083A951FFD4BB B1683CB4B9D5C1A7121C31889C947C84DABC7267E1114881A089D332A60774FA B0A4F7B6D369891F24CC7C93DCC83AF8B7B2B38E4DEB1FAFED6E25A15F1138EE DE40D168C4A80F918A56684548840BDF34F6E039EA1D7E26253FB7911F503209 C782B72F8C46F84046DF36772CD89EBCA12E570E84D8DE0D5CF4C9EC8A84A7C4 6AC493E06B43A1777C8BAAAB6D2A18762F7C10E02CA7BC7DFEC7807B5232B142 52521633E3C794CBE7AD8B16426EF7D12B21512CEF69B0A355A53347A4E16E41 3DB14F7B529CCE5465093A1B57014B131F4F8C0837D13B21F47A123113D4D851 F15497ED2DB56D1A5199CC786FCE22944F356BEEDB55AAD24684B8286263022D CDA4884C0427107B0708816751A765EFB81442F9ADF7E052D480696CCA739A7B F2295426038A073B6887EF986343BAB604DAB855A2513C565EAF73B2E305185A 9049C96EF6DF2A3A4DDA7A4D62876E6810C8B66E073B63F5B92F99CAC6EC2510 3A3ABBE3A60CA390B1D9BF8479DF8F6908BFBCE3CC6A75912196A908A7BC1CAA F6F7FE6764EC8FC305642BCD9D8EA895AEA267EDEF4C7E3E362BFD4BF48BD095 CEED63888CA2799799AB1E9CFAC3D8CF3D7F1D3EB2EA200200AF07C0119CE0D5 071DE80A165019C710F678EF4E4C2DF6D108737ECD5B8E7D8FA31BA2E9884789 7AC08BDB9C9A595025C78A0254CCD6FEBAF1AB24A9243DC69610ED2D42DE5262 CB3CCDE82F0ED60CF4D0A71A1B43D692F83BADB44C87BAE555DE93A80D2B6CC0 3A0E9383439996B484FE176B03F672B2454EA880FDE0333657D9772E6ABD262C 8BF05C0557C81A13544C92C5B974ADFE40C3C3926FCE967F2E68B1C585E7B3B0 EC90AE242BB95418E223858FFBFABFBA62444CF040304873B19E71856CDA5C0E 80A0CDF98D9380E58BB62E13182AE6C8ADFCE6781E72EC7E3C15AF7134D4EE7D C27B268171C1250E88FF6ADE8D5D21BE78B897885CF0FC6E53A2BE2F9C6466BE 12B99B383708845C2E07739D7EC683DC37D8E2ECFF42C188517D912DFCC062F6 1EFD91409BA0B80B9BD0C44664519E05536ED5BA0DA738380BB27728F160AC41 B26D87382061E4A35C0292F95263B661973C28B5978A3E4EA45BCF2B13FCFB5C BEA3003E29F76CA0DE39AE0371BF605C50E96EACF607DF4B991AB4EC15BC261D 6C8CE7599231B5DA78B838E5042BC11EF0B1174B0D6740B216F6FA3E877FC324 7919F0217099DFD2F827941C7B87A2FFA160BDA01BDEF45A073CB0B7A5204C60 AA0AA254526FF39B8C5422D8DBC843DAD075B3DC22A87A6BCF400C126CEDC82F BCA0E13A40610A265A8CD4C52C101EB9F0237A574B05DC9CBF6EE9C640983748 C15C1F54EC541B0A30E6117E583D231D1B106483B5FD92D79C3404026F9F6C95 87D9B1C60CF36D905A5C50ABDAF5014D8FC54A3CD7D0E376B665D1D49B7F0EEA 8F792055A929AFB62BDAA91AA494A97FAF5D89F000236962D03AA18A155165CC 5B360737198AE42CBDF4B92BC6E164094C3FA72DD252C1E371B1FC25F571B53E 2AECD31906CC1EC99ECD426ECA18D11D3AD6632689165B5A64395B4D7E1A69DA 787C4B82BDD4C4CD3285659D240CECA89709A9B4D87C7536BE0CCC7D5A0BCB4D 193121910C43A83A8FA0C273FEB523336C813C6E3C3B3879E36F97A0FF4BB2A0 B90BF89D8624C77A2CCABB3536492611B730B34E4FEAA3EF2F28DC0F8002BF1D 7446395854BDD523DA5E6518BD235D7B0BA2DE6A5ACBF12FB34F8B331BECEC9B 05AA87841AF6AC0CC8309950DE5DF77FE6DAA105E4CD83C233627066ADE08613 7120C25B332842ECA1A7FF987FB6571CA11F1E330CB840041BA8FE9DA3781E10 B58D815E0D4F6321790682C283A0382EFBB54DF2DDCB8F480065F38812E40112 0895EB526D5A79BFAA81337C776A0E551E1A734200C5DFE380FF28C158B61238 6BE7BAC90133B6118A3DD73BF1254822D27C9DFEA5CCB4192334C0074326279F 53F597AD77FFA60661EA4D2870A9C270544584D2064A878B36BBBA9A9EEFA766 713A0B284EFC5F1DEEE76316445C5040F71141017F89BBA44ED4CF26690185A0 84F42DCC2D12090530EC6FA6A9935F72E38414727233C991C192B03CE6FD3E4C C9D408E05F63D51F0705E9E4515DA136FDF47B09813EAF2790451E2F6614B50B E9F05D3805F7A6E613DC6ACE0E2F5C12C4A503BB33CEE3C78A0BD96010AEA2F5 87C18FE0B79112A4C98B9FFAC6AD7D6781FDAB80BB1F228D72A1A6DE957A9AF4 FD5CA92E37BB5D6F994284F63E7C750EE5A97692A7A8C447854E86515CBB4461 277B527173F25B370E952B16C5801CF161997E6EB5CD3FB6CB878D2C92B6EA5F 563BE349A0DAD3C4152074EEB75B11D979C3ECE184CC36F296FF55256F4A0D99 84DBB032606379B6E9A4136B33A49B7D9784AEA0C2BC8DDAE53453E4AF603C8E 85D1336F77252B27AA24E42D9644525E2A3AD06205E431100E3E684AD2317E71 C2768228BD2B2741A5240F49E7F6B2C4918A7875FEF60F23494CED907501B1E5 2595902E7BFECD09A59D492138A626055E7D9BA7E3E5669DC628096C8F91FD30 63ED658BE8D4CA2FB85AD5BB266520E60EF17B95B8E65B45DCB9E8418CC5CDC6 D797FC25DCF694DE091E540695D7C8A6160AFB5E5C2F6AAB53530DBBDB16A41A CD2C8C63EE008A17B39A7C75C8D7B5C3CD8FB37157511A2C922624F6D6FCE5E8 B0C1777D823E1047A3D9DD26CEB182D07E5DD7718F9524E37938B3A6B9B86F07 2F30E9B5769092B72B3D9B40A942C382DA74EC352713D769DB6FBBF33002105F 31E7B2422E8D6D23FFFD4E31D8A667D3F69A3F10D56DE6F1D0FB295465632B88 FA8F87C9C740DAB3FBCBC83C08C706E38F0D253CD90CBC9FA3630B7C2892A5E2 A4120462409F314060F5CD8514FCC345B8B71035CC6164D0317280F50E2DCF45 8715ADF24C3E7B5D2E2069E4FBD915429B11897779A528EDC01FE15C1C7E0BFA F589B02817E893DF570FF959468DF0190E8470121ADF218E3B72B9CE6664A5AA E46481F42864C03E12E2912F546E41678FD5FF9ACF82249240A54FBD1CA2A815 BBA9F424C2A4E8AC2A674A08E8D7D444E9B60D332B08C7358C001FB9181E9288 CC09E946CA5933CCF8972AB4C55A73CE3B5CED92D03204CA4F6ED7C9C2FE76DE B9A3D07ADEE47FA861119ABB33EF0CC991FF4E9107F9F45BB208AD9C7CC7E45B 449805BECF0563117EAA37DD0FC516F4F79CC6DEBB9D555C0BA0791CF7D31DF0 CFF4B90BBDDF29326154331D3DA31C84792074E90A35300732575F3A6A13CB8D 0DF4DFC85FF271472A057D29C8B3C7EA4634E120F6CAA0C840056D92E887B6DE 7538EEEE4862B260CBBDC5B254A5C0A063702EC0C4B5770CB48D6C807B7B9764 F1273920780F8096EE7476C1FB8B92C20AD796845E2B9109967830F9A91630AB 17D790B599C7618F39BA1E2C465FC78E6C7238CA902286233858BA30C2ACE08A 6C195E4077A178C24A1F181BACC68C293DC637B3DA862C84FF1BB88EC794A120 F4E1CDC225D8E76CE7C6329D245504E851AAA97D93D5DE20BFCB9DAD3DAD57E5 B7D3B6B83AE25667B7B6DB238999846BB8F5157106C398099929D0760D402937 359D3F9AC06B4D64DCEC413143B58FAF9E732835450C204F3D15C6D8C0A26361 C7833F9F137BE1D7EE3E3B1028CCCB54817AB553627A9B236423E74CF0FF93F2 CE74F425C705BC363C0118572265B8EE340874B5CEA33A54F57E8AE50A516E86 F125CC43C31904FDE7C064BCA1EFF4E69E6452EB2744480910E994085A4DD3DA 81EA65E2FA2C0F864C362E1A4A903A25B2A4A717AAB6B26062A05E43540212ED 421EAF56F7C7DA0685CC2EC04FC6384792212F431E02FB37D0C652EE4D8A6C25 E7F5275488D0F389A7A9369BCF579F83481EDECA47C118B2FC7966DCEC6E1095 16D1FAF03F7BF1CF5BE99A245D628296CC2EC302058F9B5280C42D82D81FE60E 412F25BB2CCD4905B02035B6DB6CDD3BAF3D5B97211199200C50CD6D45FBD376 E7CC05E8B90E21C6E411460A01D71661BE11722D9EF1AE5B1E49B2766FDDBCDD 244187EE019CF67782CA72439AFDCD9DE7442683EB300A88E2C65027AB9FD4BF BC6AC0D6930DF19394402BC7F73DCF12426F700CECF05DBACE63F0334A70C2CD 43A599B501856D9BF2CEA6A33A351717B19167652800C6EA6E34AD0A7459A04E 69D0B08B562C3D6BAEA0688C7F5649F36BEFBF5C4603EA11FF874B16B905E5B9 60B3418763824289471B70E134686B5EBB891B6BA23125C6827946784FAA3292 5EFF3567D56DF6378A76575F51E2E12165C7798879119C8297901D0F585E42BA 1970B7987AAF0BF698F16A39F83070D4B2FD724ACE7D2445DDF5FD9A364019DD EDF7DD0F23229C0059078DA097F7D8EBC10DB236AE72B7F9330B1A30292120FE 694D094D47EE74C0A2A955943DD711F5A51D3955F65135612A2AA12F9DB89D32 5E4E45EEB35B1039356DF48E89258758011F9C0AC871D81DEE2A9F1C9C0028FA DEF2394AE09C607FF735CFB6B4394CD46FDCD22A02B41C75FE4D309478C7FB06 A189E232650D688B908FB2453FD9E5A275B276EE6AF359C3F4697C3D4A896163 2DCC3891D4C0CD8EA345ADC046F0A45E893E9CE0A9E342F910491A537F21CB85 9859B577FA7369B74D562171846EF047B68AF7AC54AD6BCC7F88D508338975D5 34F651CCEE4181FEF44AAEA5A325B7C2AEB5147135EF8BDF250173B3786D711A 6F5C7F7E67001D07B8CBBD341B275E18DC7B69BC90A2F6DA489FCC6C2B5120B9 2DD623DFB2D2CC5E673857ED2BC3306631B0E011AF7F750D2C4573E6BAC65926 4C844DD4A10C7012B6F4F6143B2483C8DD184E6341CC748815E4C5C1D4AD25E5 2A0B4AF713CEFFC1C2512982E60783C7B766450D65DEEC9C95D758716E31A68D C2218087FE0423F7475AA5E96DFF57C23A67D8DE3148218397DD99CCBC883A04 0EA951095CD56C09DB580C185984A12FB0112FD7FE3D121AE49DD2A4EC94C034 66BBFF3948F63F6C34FC91D07D77E913F2B185B27B51D90B8A58648CE4CC55FC 7F0CD1A4387350E90776C9F1228117C6459A800BEEDA238A5292903CDCE25ABA 01D237449B994029DB3DDB7623B62A394BA3F28B663A2E4333CC1A67BA76BC24 7FF9C6387E8B4A4B6D8BAB13783EE4FC8A8159016155760BD2AAD518BA3D4A36 21D336A92EA870DDF020DDC62F86AA589A6A88E6CBABCEF83FE42E617046A6D9 3A18956B8B23BB40E759D1377D1CF3401503A3B051B79287E48DCF6D5DFEE021 A14A0A8161988B406352F580C0B6D925B1D345E377E9A89E9023809F416A4E2A DAC403DACE5AEB8114DC2A6F26384D36D78FE271862C33CE6E2790E08C252CD5 6D29465F637C0632BB4DA290CBE5B53187AE95D01AFB86FDB3AE9F90A9B9DE0B 4CF0DB2499A6EE9830BFAF28F3D5A5FBD29291CEAAB36A1F3C6A45127E6F99DE EF0835C8969E378AC8E0E10A81DFA7B261D651CF98DD467DE7793B59A3544435 F29F18BDBB5FF19ED68DFA3691092360FCF750DCAEA54DDEF86E3F14DB2DF156 9941F077C0F6B236666BB7229357C42EADBA83BEA6ADB6911938D12CE31192EA CB167F0816BB61B3F6CD39ACB5C43A275022C6DC19ECD5A4920ABFC1B63CBC64 F04E835FA4FA565E0BA48E73CD546CF28181F720B0949B9C206A99CB9CC06EC5 57BB9B80311B6348E6335E4BB524F500CE9948B9274BAF35CD855304A8C0B6BA 0D9B1C46B30C28ECCF2B5F2EB36736E076DE53FADF725B7DB076A3DD2323D77D 38E3747F3AA9D78C18B5585FA42691E66F2B6A3CBB0D496B7BBE3659CF520F4A C3961733FECFB6448A1FB3126BDCD80753408EFE13E4635DDD2E76A51BCD7BED B35A11992C6044A7E67DEB20EA952402691A808703F520442894C6771FC15862 0FD5E82186B5AF3155631DB6F4F45217FF7148E439BC2D2ED760CFE7074189FE 1C355D0F9912BEFCCE462CB5EE9EFC6623B7F152315C5B6E97181FCB08516969 C1FD001F6FFA5FF959A3C59B70D141D9885BF125F9599F06B0EAFC3F0CE4F9F4 ED29A43009ED84D9C19B30DD1F0A43E4452CDF6B1253BA768D3FFB546916CB9B EB4761F42F4F58A14616F016A171B4C92C0ED10F305F19C14BD977B9094B944B 3CE52A1451918F6562F867CA92AC5F0D130360013375626B4748D7C877E2B4F9 B59B8B32F9096D68C6410E01CA981A3642E8674FDBA5CBD3F7634298851718C0 4C4020BA34928D2FC97A778EF652DA43A5727A920AD45270648A3B2DF23505E6 C46A536455CD6BF5B3D6BF8A6E0C9283A103248688FCFFFF49896A3C6AF5BE15 B6FED45FF61163EE38C5894B80806A3C24BBE028CBBCA2F525B2870D86EA514B 0C24F3E373047E03A78574C9D769C2BDF7D41B347D39B22B48C43C2C27E5296D 6FD1E929C97FAEFCD74EFC33706A8F3FCF651E170C64E0D01921AC1E0DD9A517 F93720EDE54F05F31A571D9C71B02B8C61E36223BAE5A0E3F0D26CCA3282CC0F 64B3F632D94BC4EA504E2A23800C3F882822F7726D0C039772DFA735C59DF5C4 63F3CCC2E204B3CD44000C63085D8E42A678E70F91C8DEE9B537DC395FDAB5E8 92E9D3CD75B7AC9A1A70DC1CAD214A7CCA6717204D21DA0560459352EAB8889E 1F48434CBB8E241375065CAEC1C2CCE5508B327BC87F43B7E06091778A687458 C49983E4D0C71202771C169DD9A471EC005BC53077E56B2C6DA7391821FE768C D2DB8E8773DEE67897607193D64D707DA249006FD6F3B3A509C1471ABC5F92DE 9F1041F4FBBD9EEC162F728692993F1F441BA8F839874818C9A56E2CD4865F9F 20E38C8A27E7F063F18BE833FA9DF1F594106F5E694999438883E6D7A9CD25F9 3517CA7D7C91C6053D8661F0096AC582E80F6D6E92530B7D7E0CF997D07A2EA6 4982771FF7A9909BDEE754C67F7A87040E405CBEE403DC89F079991551F894FE 3481FDB7B3DA9E12DF147D782A9234972DB47E4E7425482428367B81EED049D7 0BBBF38A8B75FDCE0B5659DE5F27BD623FBD1ACAF820CB5E412F213FA42B4389 9CCFAC2BE68349CCBC32D76BDDC2C68102BFD08AA05E66773DC3176671903641 4DE8F37E94250586C83C0A68436BC2B81A534E115EBA8005EBC548FB8CCA97FB 562C26B772C1354526917367E92A8C6C2F611808D86BA2551B5150D4F65D0932 9FB1002C15595954FC0F724A411757E935865476190B99CF5178DE9FFD994366 DA44FCF6D11FA3CE2870E7C1A26DABF87BE5EA928C1F0AA844662150C6857DB7 486AEC349621B08211035E8FE62A1A0CBD384BC849264FDA106B352C036F5467 113BCC83FA1640E44F999DF67B87815582B96E57657930605912F0F207F18418 A0760D5C6BB0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-34 -251 988 750}readonly def /UniqueID 5000794 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E 59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28 51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23 DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F 45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31 821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE 96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D 9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379 26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4 140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213 1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498 1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB 377D3061A20B1EB98796B8607EECBC699445EAA866C38E03ED7D4F3EDBCA1926 2AF6A41F67AFCFBF3630C943FA111E4CCD988A7363F7C2B75EAF5830B049460E 0D2B337988F150B9182E989E7750C51BA83DF37685483F86D1F47478883F3F6A 4B7F768DA5AA89E8F163029ADD4A9209DE8A4F285766C06EA859639B92CCCDCA F59B1C2BB8D588CA754D1257BFF76B53984DF4937093AAEF79009D32A29A4C16 FB610C7D6713482C48D7F9E8410C0F00AD6E67021056B6035534E79F05D14EF2 4E87E8D654A72A92017CC7BC55BE3A2A80A1AE334D2EE6D884774CEB2A0F5EF9 3DE708EA6A3AF2E71AC3ABD94D3E61DEFF66AB853D4C17E53B3E22E4615BD20B 2D1424CBE18388F585484A4E3691AAD568E8A4BEF88E67168CED5A287283D4F9 29039195E2579EF93DA895E9E66EF09A4475872F6745F7B15D213665E4CFB0C7 73BE7CAE466C8EB48D83E3C54F7310BCF3476F41B3CF44F45118964AD17E1736 804BEC8140A3EFC31888DD704A81FF366A9E282AB2AD3F9FE417AB4951149693 C6BFAC82B77E300E3F34587939FF96D0F6ED6616A741DE99A8C0A167780DC978 E81040B5BB043137DABF1D7B35B2E7010A5998519E9897C87E6CDDB9603A2FE2 CDF1A21610014BF61553DE2121F596F97D161FEC23A2EFF74D5EB752BC420F9A 601E30ACDEC12BCEA700F90FC5498097AFD134E76685756A6A2B5B9D65DA246C B8F7DE6D4247DAA54E0408238E1A1C6E85134F7903621CBB105E93C82BE1DEF6 C0A4C62402224388F1457362E094FEA217D1522EF6CB63A3DF54E253AAE0788A E470F65B49A76AC02C4E1BB2D4A615EF35A67BC40F8503D898BE4AEBF4134CF3 CA2E6FFC5638031F1AE4D2B020F56C254ED5F486340830A0DC78E1273AD45610 E80C650EA6910BD656856A67166A36056BDF9C7D9FB312043C839B7F03EDE66E 17BEBA3926F0645D65627229EB27333588525BFF148979C764B1D3EF673C8A9E F9E3E8AC2A53591AEC52ABA91A52C3E3FD6CA7723C181E1E6166A951135C1F03 550E824EE6701774ADB766AFF4571D3841781A9B25FDB8F2B039BDAA9F782641 7DFB576C52FEBDA9DC9A3ED02C11C2F91EB93E6AC393F0C3CB757BF48258691D 1BDFED9A60B6C03942D914A9ABCC81B07CCF1EF57A7E75F68371D3C4F4B03266 2BCCB61D477FED28689C87020C2F67B11A2239EB3106A17CB8E84000201DD872 6779F90FC5B7F7F787145739395786674F9E9EC42ECC9D0037301A2FA52943BF F42CAF3F7C9842E2CF4296D13FA6E65AEA6E23D5E0C87C9FDF058A85A53C0C91 01185F471BEF5223425B752B66DAE3CCE4DE8941873B8C03FA2E66530DACDE9D E2EE3040F0BA5721C5AE85A1C1F790A5333A67020C0828010FB39A8CB866E4E6 C3D65597A2CA48DC820C59ED52EC6AF856B0A472BB05A5E84E3F0B70EC916E6B 553A660C459BC785BBB718F701A892528ACD923F105B125F8E0AEBE689443958 384A075184A94B8080A628A0339BE4C7F5F7718F24FECFC447A9FA55D86CE205 99FC9B31DDB9B07974B88118F0726EF2F26AA3D1D189DA21C176F7323C6B5FD8 8E3B1581A1FB95812DD43B2ADCF81CDDE477290F66EA66659C31F499640462AD DBC368582DD858CED97F351C458FD10E6AF63C83FDE797C93A7262A3F9D685E5 A4C953B79354E548D40761A4858B3CD768759A728A18E40061A12A67255DFE3B 9FF8E39048079492ECFAF5451F655AA6E6FA4E7A100A23793CB38A07EC9ADFA0 0B427E61D0BE30E36A21F4A71877812FF27E84A1CFE12A39CD60CC4069350ED7 879B67C4476AEB1EEA1B9694A2CE422B8684020CE0334ECD78461470A47657DC C5BA11D6506C00E2AD9A87BD351DA7F91A32225550ECF5BD1EF6EE2DE9FEC16A 9C8EB57CB3C91F57FF09BF4DE31E0CC81936F12D2CFEFCA604BEF6834092A93A B83D65500CB5B8C9C20C1936C7018F642FD4D362E4DC196D5D5CC41D20F12BAB 0278608F5799B3422004E239E7FDF6191F5A0B03D99859D466C86BC17F68C89C 2C749C8C9585BF7BE2C2E194414D27DAB7C593DEAD9EB9F715F9A958EB891CC6 CFE6F471799BA2A2308DA04D7360433219172F142326E582871162458523D3E9 B142597651818F411F44F24BAEC15EB5A7D7E01C40933B09C3C01FC6ACF725D6 5B3DC1CBE3DF86299AC96E6094CBBA80214ACCBF1CC2C1DCD711C4360412B2A6 64E835D555DAB150A0F037ACC81B41663D86D017CBD49FF014FD7997F04F062A ECFECD2BE1FB18BE4804DAD3C768FBAC2816D97604B7FDF42ADE1694BE1C7D0F 022414C26A87ABB1BDDA9FFDEB047FE75E316FC14849537A7FD49C985F48E3B1 98F899E220DBA4183DF41E7BD0921D9C646BC165A35C35D67E1B940016CE4140 2D36F473F7955132E122787B233CA7E88EFE9F0E92072A954191ED9F89A1F40A 7C19A95A68062062A56F65A1F0E4D8E4CE10E59522F5C9BCAB10363F4CEAA937 AD21D7BC8DD1EC1032EDB10D373B20B76B1BDB67DF50AFA9398F86E8E6153F18 117ADFD645BEC10F755F890AC20880FA31C9EB766710AD8D14E5F7701FC6A643 AB38F74005628E8A1FC84D8949253F419EFCFF13F7AFD48E9517787551681B6A FEED14BC3E9EDF489A7AEDB56E19F9FEA459BE624E0079E05E422815890819F2 825597D992387CD6E3B8230F4897186BCDD947ADA34A0597DE09D89AA062206A 0FCCAE389ECD6D199912DB5D71DEE13130DAAE2224F0C801CE5BED3BC942E27B 21E15783C05DC145DA2BE2F84086625B32CAA6D2832F1D609DA828AF987B2913 563C00F5557D5A76E9B9ED37F9227CF77F929899B6888BFA57152FB31FD82192 04A73699D52229101832A38E6BAA363459928A6586BB27204CF9B404FDE2E784 B86132ADA1F541D70F3D41426C468649F77573C1A0ADBFD396C09D161935BF35 EEC5F0934D7BB220DF3D74117F7038BF3C21930549FFB55B02824A50AAB0E52E D07D1B69D5F06BFC6E7F3B2BE3666AB898DF82AFE2CD35E664DA0F7926BF0453 40DBBE9A15FE9068967EEAB119BD39FB3022A727A6D10E432C40D55C1A6049DC BC46499D61ED2AD3F90A9712EE1EE49DABFDDB25B50E599A05068F653224A8B1 4D66D24E8A538203B96BC76AC65734FB281B057493D02D294B65A30485FEA60C 83206ED5077EAB806B67B9BAF943431329DB4063A5B54DFCFC2EFD6A9518D8C2 E46CD65E717F25B05CCA68221B177AC3D33BCA1845EC54DD49992129BBF93613 CBEFE93F164F98E1F8A41E6420BDAD3DE6C9BDF069E42990CE1ACED008BF9BC1 11F53229F850F56411F42309AD335AB5156CD247490E7F9E80F18240A7AA90E1 6C79009B097C0A021F507CEDE09D6D23EE8F8DA499D9E746447001FEA1CCCED6 FCECE756CFA349F926E37165F1F13B2BEB0DD7641C9A772A7A5D48663E63CF47 51FEC93233A971990C355B3D9F6101844C8392E13DF583D9EBC8798C90D5C42B 3E78D93BD443CC984201C878C8645900C198C9DAEA453E952EE541E89F956501 A996501ADD36872554CFE3D3D2C9BD9E8706096B1DE6ED899AEC7CA3103442E1 AD83BA7407184ABB35AEE21F0632BB4EEB672D0FECB734445A804CCD79928403 8181DC009D49A01B42F136D4C22E60FADB8337720B81B2155AFC7077999232E3 80D04D28AC9FBBF9175A802B6F76394DCF56F55D768A06A8C054D2C8DED226A4 0CB974E2ADCEAAB960340F67BF16D9E2E2DD2F873DC945F357970C3380E2C92E 104A9CBC24A056564EDE62304CA416443F6CF39A3016FC523C7006C8A68525D0 FC6125DADB1FE553AF0BDCF32BC56830C29D74CAA042971FFD92B4E160414F5E 07AA46B0EC9F1E063D562C9F7A25DF895501D3CCF396F214D17DC6A8C7AF9FBD F928299105C557D6B8DE9414E9C55B2D8498386F379E3537CBA958C9C0C3D846 697BCC9C948FE4DB3DD320C5BEB5918BCF9133C8713D0C39704519D79D963EF1 3CCEA6000DEADF819485064269C2528D4AB717A14BA33D62895BA97BAA2E2F4E 7317DBDF9E7B61D75D030A51F7C525A1CFF7FE8080729E30B4A092E3900309BF 384208D894954208274F3E74FFD2CD18902A7AB288A131BEA13A619F6792A150 A302314531465139C35F1C9ECD20BBB28E665632CFD598B54B9E86E7B3219E52 7B1A01A272C8741E884B48E9BAF31F921A39B4969F8093BF8F3C0731614556C9 2EE80AF3F46F1E60AC1C2DBB83766BFC5417E764D5DFA309933E8A713B313870 A88BBB39C566EAC238D8263448A209502F86728093F16CBE3BD5DEC539383599 EDD6536E501335944A0DCC616A8C10D7D591D04D2AC647084EAEB4B41DB6E113 147A1B3D6910F1C59CEBB9C9B439E63F5B7F55466E6FB1874F64E2E372C09993 458A7AED1E1CFAF0C0157FEFF6B842AB7BF928AC3CC713A85940C8ABC52D00EB C593B86A70E7805269577DC78A5A32F3AD219C19CE40391482C3B153B0C3B28B 0B0AEF4A98A20CFCACE9A1E370E52E797516869590C9DE7F3DCFA5FDF7BE42DD F921848073356F96D21F31E4BB1D650B1D9A5B5D032FB9BFD0205A9B38CE88A4 BFAD0A23ED488AA52333A76359D5F081502D971077BF84B08C6D42A34B2E37A6 B2D3C9C58AA29EEDCE897FE1B94815D39DBE7E300BEB8494DEC9BF94AF8EA612 5FE7B9CE6A7E7A062CBA27AC21C849934BF6BFE03647A6C7D7DCA7848E785C0C 8C5FE098152A4FE1C62E8BDA1E516BBF6E5E172C7ED138BC1439593608C988E3 C5DCFD168896B97C290AC4BB01FAAF851E92D5E0F67F65D0B61D542606673126 561E03A65F4A5C2E65C4D8417280908478F6D9D478EFA7CE1E9C4D6808ACD298 80CBA47562E9830C15952AA2A8A45E9A79BD4E9ED7657E0FD2BDCA02D5F0B808 7E4EADCFD132608ECCC21FA070607DBB303AC1AE4CCC561A8C704AA5B1458924 2EF30DA086943B38F31089A98EC2A248104EED19B8C0C46176FE2140CC11FC25 7F6DFD647E5804046ABCC799ECD67DD2D74AB332200A77D1700B2658BDC7613F FAEAAD2C457E105B7995A5C586B9C55CF1CD5E72DA9B4294F342446852D4E59A 8B091BDAC5305002285206B6CF92E3A1E4EE2BA9C5E3C3D53E317866C33DDF33 CBB9B9AFF31D03D78C81CE4A59F9E13698AA1EA21B27ACCD7F2C13928F28B0B7 12537AAC4AC1DF2A9B18ABEE19C3B777D8C44F000334F4E9DCAF3E6C474B3FD4 C6A4FE25723BA9048E9006CD9759DA0002A830FCDB8D111260C6C8E946BFC5FB F46BE6310BB1F1CD3C8BDEEF52768A6A01665211C5F913A8CE201A97B4CAE4E6 3F540CCECAFA548A74991C5345962DA0B274B66D61262C30B60F677DD7AD2F81 B472364A874544292A938798D91E0FC6E69F0529DDB9D0419229CCB2C0CBC6C9 48A30D7E09472E7F2402D5E2320A8B543BA4BED451E710865B5C7CAAAE80F5BE 916B2BFDEC5FFC359FC88B411EA2A40C1587962A68D5F5D945F3C592A058420C 25B76DC28C7770A0AA0B333375DE9D80D5368DB34A289D70CAC59A1D90628A9A 0FFCDB467DA53FC6A2BF3B1B80F2DA8482C95DC51CD81A9DE3CFC6BAC93161CC 0D05A94191183887F20E4534F300485D6C2B345039ECCC739CD084B0577953C3 C57187985B6622F00FBD932FFCC01E194B92FF0A987FBAAE9971FFED24FE24D0 2843D47D341D079C99DEFF 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR17 %!PS-AdobeFont-1.1: CMR17 1.0 %%CreationDate: 1991 Aug 20 16:38:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR17) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR17 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-33 -250 945 749}readonly def /UniqueID 5000795 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95 A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801 BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96 96D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC 9322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7 E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A 497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46 4A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD 3841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8 C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216 9B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F 83EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25 A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B 246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A 7736A960F72AC01F733A11023832CD68FB6288A5977743F781214D8FA9C0C3F7 80001321D4397771F728FD9EE57CFE7D9192B887EC883EB1505068261DC40089 7B7D2820F06515CD74513521F6397FEAB3AD3572D9A8269430E407E357422461 1785FC2782047F4C0339D79B16862D939F3A37F78E4E2174E4FBF132539CB760 207999FF86F6A3EBE48EB0A1CA635450FDEEF79EB16D853F3BF4B41B05588453 D4417AEA07EB3348CA1A966A79E4DA4D4E6EB5D9F6C12A599895DB3A8597CE14 6B405B47F029075442F052711D715CEBE4064DC306B3787177ACB5429EF3A8FF 6057E795C839F35B99F4DA3CD3C3373C0C6FC41DDE9E12948B4FA2376AB88192 7474D4F7ADC2DD737A5320C8512B375F5A6975A0F0296BD2B99BD3B7D82E705C 7B99F5223FEF7EA014760B7D4F2793C18DD182BA7058FF4E65EE2D493E3088E5 FA04BF60FA5E93BE5C4EB82A1AA84E98C6C93283FA93F21AB21F062C4CF72A45 BCC52EBE7CB3CB0252244E34AE564D782A9FEEC075B39428F11FBCAD842A9986 5E33E20A3E9CB0EFE8A4DFEABEBFA69B2D9F55C8D9696955671C3400EC897495 29E69227E8D6CF6EC0ACD28F35D65E73952C7427715F7FF5CD94560FCB536F44 33E01677D9E1A855873DC0D57C8283F8E2F6CF084297E0DBEB2C764C0EA16F06 DF74FB7DF014CEC4AEA9AEA23C160934D316ED13ADCDDF39BB1D04D07DB776FD F737ABC14DB8AF87422BC196FFC2CA185C4CB0D95BA268A8910E31666D1D6D75 C20F051BDBBDBCA5955F9E1F0EF03172929989FBE6069DA9C95C24B78140009D C33EF8C8751DCFE7FE45750246DDD7B123A03574FB8BD83647E49FFD15A889A2 57012EE019484DA9281B859735E9E98ED7CE999CE205A04FC9AB565EF6EA98C7 25428EF8B321021ABEF5D56146AAD202D2DDCDFA1C9656EDB42CD1FC8C917A35 FCBC14F0A0EC4ECADA34CD7BDF23A7D617F8675D19C93E498E66521A4235B839 CB40327C813C8F4F9A278AB5A71086BD61D1CAB36C3D7713F46D0977199EC99C 2B9C34FD01FFF137A1F6F3AFE64A9260A2107C777D94FEC845A7C7FDBE0086C8 0B272C82AF3F61642FE6D96C82F1235AD667EEFC2C555941EB94394CBA4E89B3 82D8909B507B4633F750155C75F66BB68DC9869B0C069E9200C283DAB3BE8F8E 71D988BC2DA39FF9FF5CDAF56A2014A44B1ECAB6A0C9C2657536901A679FE0C6 2F0BB49619DF62E35999BDE31F2C4B7BA4C6C8A32221FE63469824635ACD55DE A1A12C080B2A019E960F8DF1CC5FBC92A14F9E6A94F8E8CB5D05BA837812FCF9 4F47B9E5B201A5AD7373FC39D1D2532E147987B9CA22769163D2BD9CA019D680 9BFEA1A8BCA9220ACCFD31534B15B4FB1F77DFB74B011B02A53CD2420E059397 B9540089C24A1FF7904DAE2CF4D5F23FBF7C8C7F75A9AA2B4E0C7C24234C25F5 6604EED06F043AB013569A17AE1F4A2A843BF3C9DD5D833F8BE70C3894153B09 5C6809B4E74325CC1A0974FD43472B7042D7B4927F82E86AB22E68B6DEE79368 CDA0ADFCB3C9E65ED1B033E117B7FFAFA0F554EFC59FCD23A6BE85805E72C107 6AEE5A1D863DD203075D7F4D9277DA484FFD812F5559C44B620B7EE226FA5E0C D782B2B1081770BC8D3724D1DF9B2B4E8A97A9B924795F69EAEA2A907ADF6B7D 4800096FAC10B420608D7384EBD7117130153F5AE47FAA7A1DB9E128D948569F 86E100D836AB6AF0815D37B5835C6B2BB28AA57D5328170FB5BE47679AEE384B 9B59FB96B65ECE0E40D0D42A7D2FB2EFD49EB32F477843566962DCABA2CA3AEE D32C01E1B6735763A4FA3A3C52E6B7FC76BE6802C4BC87478EE2C2D0949D304D 2EB647290684C5B5F046172F05CE27E1712A8D1804B9A62CBA6A8EE73C38AB46 B8B982D50A805C9076914406929FF21FBA05A1995F0442D97047C03807C97C35 54EA3FBBC29800BC4ADBB7A447BC53E688667FE5AA68459C7477B5A183707CA1 DC36D7C2E883C06A6034AE692FD052AE6D00774F8A0FE669596D9358469E206E 4447390F3582CC7F924376F829B9450B58A584F0B68B0B88109D26DF4BBA8971 5251DBB01E60777BEC2F17F34E9FC3D3252F2114BE9BBF07E759B273B601843A F74F7BBBE47A98D64B52FC744728A0812A6D7381127503ADFD9A439D9C6223FD 6CE18D39AF9C3DDF71FE02377022CE8C9C3B1A95F71140AE90A3D52C171BFBCE CA906F8AD28B5ACC8E11DD795824F70FD474E3219F47FCD8724F780BDBEDFFE6 DC3D33C8989356050D318A3E6CF714C5987D2686263655BBB8D3E0016F0EC859 4F7C0480C85D7444A71088858B4A574E87E0157397D11501C839AE3E4C6CF127 9F8AB7D464A7A8CC326C31AAE16373F82788EF1CBDD84CE9EFBBF7A53F222057 D3F52F18159A1D7BC9C9102B46A470742CEA0312F45E0A82C40F51A4833C6A0C 140448B7B410149622C731BCDECE31C146C59C3C6E51C3D335D2BE120583DD55 FF77CD5253A011100771B93CA2DE97334D1C961B997171F7D76B2B07D79C0F59 CFE8F79A0EAD4BBF54E8646245B3474B3B2ECE9ABC9DC2DB5E45107BB9B1BE2F 5FD6F1080D09B17DCC04C789635A823241333E85E02A0B2690238C88C86EF1BB C19D963AF22926424E0BECE6A5159A444913990F81C2EC625999E59166C2311D 9F5A25BD6581211462DE8D9A5FAEC55EF0B30765F16B1F6CB6D200FF87D5B687 66F9E3D0B0C7019303FB6B39FAA51D68CC8FC7CAA0513952FE886C40D4DFD80B E871C352B541D644D0F2E7544861F364D72CD04CD1B6A72AB634D10E12C3E905 1356E973FEFE45C96A52B2EFE38F88EC99E99A07D9909F62AD2A71429D7C3941 259010C8770FF7549E3596B7B4BCEBE19F90EF434C7C4DF128C0B768A3090980 13BB3CB99189CACB403BA7F6456C51F70F451AABF04C7DC3C9D9FEE2A63AD5D2 83EBD680C5C56BF264FE8F515FD58196B61DEA1D2167896ABD61B5F001E06739 20946D23B7CC4C020F2A7E9AA1A1C3774D5FD3FEACEEB78D7C4A69F854565A8F 35C3729829852F937C66721568FD875F4B336E2371BD54D80F64A47D0CFD43CA 5FE92F2CEA59BF138F8061C23D54328CDBDE396B247037B8247C18F190292381 0C6889D908C48CF5D96BF0FA9DE56D02519FFADD05353367840231F296B1F72B 2176365E0ABCC8A68294D31345985EB95C30C924B3F66EADFD3667F4FDB757AA E94E027570B9305F863542C3E0587DC952424E30E7DBB91772326182E8F1D7C3 3B341BDD6B177F729AF86AECE21F324B646F9CD2404F6367DFB459E74A7517F7 1DE9359CA51A542D34EBDCCB06794F49E71911D56A09411F7F0BACBEEDFF39C2 BC5F9AD77018966E35D110A191FAE05C054C7A8E6753DC22301CF9C453DDAEA2 B1BB5021A5A37F426F79B9E91FC5FAD5FB200A1DC00CF1BC5CB5BE308FB0BEDF 22AE15F8406C1E311153662FD32A871D0F4933B44773018D3037EF0263AAAE39 2621D15564CA603A233D0473E078001BC7DA68C590613591B45C76C663B791F5 1F1469EAF552AFB615FCD0595172EE6BD326CD7C48095DB9A047F026FAA3EBF7 7A75AD056AC88189831DF203F5FBB85987CF34944D23B1686AB0D4 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 40258431 52099146 1000 600 600 (graphcode.dvi) @start /Fa 144[42 11[37 43 40 20[45 6[50 69[{ TeXf7b6d320Encoding ReEncodeFont }6 83.022 /CMSSI10 rf /Fb 134[59 1[81 1[62 44 44 46 1[62 56 62 93 31 59 1[31 62 56 34 51 62 50 1[54 10[85 1[78 62 84 3[88 4[42 1[88 1[74 1[81 80 11[56 56 56 56 56 56 2[31 33[62 12[{ TeXf7b6d320Encoding ReEncodeFont }38 99.6264 /CMBX12 rf /Fc 134[50 3[53 37 38 39 1[53 48 53 1[27 1[29 27 53 48 29 44 53 42 53 46 8[72 2[73 2[72 1[65 72 75 91 3[36 1[75 60 63 73 1[68 72 3[74 11[48 7[37 37 40[{ TeXf7b6d320Encoding ReEncodeFont }37 83.022 /CMBX10 rf /Fd 129[44 44 1[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 1[44 1[44 1[44 5[44 44 44 44 1[44 44 44 44 44 2[44 44 44 1[44 44 44 1[44 2[44 44 44 44 44 8[44 44 44 44 44 44 44 44 44 44 1[44 2[44 44 44 33[{ TeX09fbbfacEncoding ReEncodeFont }67 83.022 /CMTT10 rf /Fe 135[37 120[{ TeXbbad153fEncoding ReEncodeFont }1 83.022 /CMSY10 rf /Ff 134[40 1[55 38 45 28 34 35 1[42 42 47 68 21 1[25 25 42 1[25 38 42 38 38 42 12[59 10[32 1[64 24[25 33[47 12[{ TeX74afc74cEncoding ReEncodeFont }26 83.022 /CMTI10 rf /Fg 131[83 42 37 44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 4[42 2[62 1[85 1[62 60 46 61 1[57 65 62 76 52 2[30 62 65 54 57 63 60 59 62 6[23 42 42 42 42 42 42 42 42 42 42 1[23 28 23 65 1[32 32 23 4[42 19[69 46 46 48 11[{ TeXf7b6d320Encoding ReEncodeFont }72 83.022 /CMR10 rf /Fh 135[71 2[75 52 53 55 1[75 67 75 112 37 1[41 37 75 67 41 61 75 60 75 65 11[103 4[92 101 5[50 1[106 1[88 2[96 9[67 67 67 67 67 67 67 67 49[{ TeXf7b6d320Encoding ReEncodeFont } 35 119.552 /CMBX12 rf /Fi 138[54 38 38 38 3[54 1[27 2[27 54 2[43 54 43 1[49 13[54 72 4[89 1[76 6[75 12[49 3[49 49 49 49 1[27 1[27 44[{ TeXf7b6d320Encoding ReEncodeFont }24 99.6264 /CMR12 rf /Fj 138[73 51 1[51 1[73 66 73 111 3[36 73 2[58 73 58 1[66 25[104 2[101 68[{ TeXf7b6d320Encoding ReEncodeFont } 15 143.462 /CMR17 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 1178 963 a Fj(Graphco)t(de)45 b(Do)t(cumen)l (tation)1099 1204 y Fi(Russell)34 b(K.)f(Standish)h(and)e(Duraid)g (Madina)1627 1399 y(Marc)m(h)i(13,)e(2007)523 1757 y Fh(1)135 b(Graph)523 1939 y Fg(A)23 b Ff(Gr)l(aph)h Fg(is)e(a)g(con)n (tainer)g(of)g(references)f(to)i Ff(obje)l(cts)g Fg(\()p Fe(x)p Fg(2\))g(\(called)f Ff(objr)l(efs)i Fg(\()p Fe(x)p Fg(3\)\))f(that)g(ma)n(y)523 2038 y(b)r(e)k(link)n(ed)f(to)g(an)f (arbitrary)f(n)n(um)n(b)r(er)i(of)g(other)g(ob)5 b(jects.)36 b(The)26 b(ob)5 b(jects)26 b(themselv)n(es)f(ma)n(y)523 2138 y(b)r(e)32 b(lo)r(cated)f(on)g(other)g(pro)r(cessors,)f(ie)h(the)h (Graph)f(ma)n(y)f(b)r(e)i(distributed.)48 b(Ob)5 b(jects)31 b(are)523 2237 y(p)r(olymorphic)g(|)g(the)h(only)f(prop)r(erties)g (Graph)g(needs)g(to)h(kno)n(w)e(is)i(ho)n(w)f(create,)g(cop)n(y)-7 b(,)523 2337 y(and)27 b(serialise)g(them,)h(as)f(w)n(ell)g(as)g(what)h (other)f(ob)5 b(jects)27 b(they)h(are)e(link)n(ed)i(to.)648 2437 y(Because)k(the)i(ob)5 b(jects)33 b(are)f(p)r(olymorphic,)i(it)g (is)f(p)r(ossible)g(to)h(create)e(h)n(yp)r(ergraphs.)523 2536 y(Simply)k(ha)n(v)n(e)f(t)n(w)n(o)g(t)n(yp)r(es)g(of)h(ob)5 b(ject)35 b(in)h(the)g(graph)f(|)h Ff(pins)g Fg(and)g Ff(wir)l(es)p Fg(,)i(sa)n(y)-7 b(.)60 b(A)36 b(pin)523 2636 y(ma)n(y)30 b(b)r(e)g(connected)h(to)f(m)n(ultiple)h(wire)f(ob)5 b(jects,)30 b(just)h(as)f(wires)g(ma)n(y)f(b)r(e)i(connected)f(to)523 2736 y(m)n(ultiple)e(pins.)648 2835 y(The)h(ob)5 b(jrefs)29 b(themselv)n(es)h(are)e(stored)h(in)h(a)g(maplik)n(e)f(ob)5 b(ject)29 b(called)h(an)f Ff(omap)i Fg(\()p Fe(x)p Fg(5\),)523 2935 y(whic)n(h)d(is)f(replicated)g(across)f(all)h(pro)r(cessors.)648 3035 y(A)h(short)e(synopsis)h(of)g(Graph)h(is)f(as)g(follo)n(ws:)523 3201 y Fd(class)42 b(Graph:)f(public)g(Ptrlist)523 3300 y({)523 3400 y(public:)610 3499 y(omap)h(objects;)610 3699 y(Graph&)f(operator=\(const)d(Graph&\);)610 3798 y(Graph\(Graph&\);)610 3898 y(Graph\(\);)610 4097 y(/*)43 b(object)e(management)f(*/)610 4197 y(objref&)h(AddObject\(object)o(*)c (o,)43 b(GraphID_t)d(id,)i(bool)g(managed=false\);)610 4296 y(template)e()610 4396 y(objref&)f(AddObject\(GraphI)o (D_)o(t)d(id\);)610 4496 y(template)i()610 4595 y(objref&)f(AddObject\(const)c(T&)43 b(master_copy,)c(GraphID_t)h (id\);)610 4795 y(/*)j(these)e(methods)g(must)h(be)h(called)e(on)i(all) f(processors)e(simultaneously)d(*/)610 4894 y(void)42 b(Prepare_Neighbour)o(s\()o(bo)o(ol)37 b(cache_requests=fa)o(ls)o(e\);) 1934 5147 y Fg(1)p eop end %%Page: 2 2 TeXDict begin 2 1 bop 610 614 a Fd(void)42 b(Partition_Objects)o(\(\))o (;)610 714 y(void)g(Distribute_Object)o(s\()o(\);)610 814 y(void)g(gather\(\);)610 1013 y(void)g(rebuild_local_lis)o(t\()o (\);)610 1112 y(void)g(clear_non_local\(\))610 1212 y(void)g (print\(int)e(proc\))523 1312 y(};)523 1594 y Fc(Ptrlist)h Fg(\(see)24 b Fe(x)p Fg(4\))g(is)g(a)g(list)g(of)g(references)f(to)h Ff(objr)l(efs)i Fg(\()p Fe(x)p Fg(3\)\),)f(p)r(oin)n(ting)f(to)h(ob)5 b(jects)23 b(stored)731 1694 y(lo)r(cally)j(on)i(the)g(curren)n(t)f (pro)r(cessor.)523 1860 y Fc(AddOb)5 b(ject)42 b Fg(In)28 b(the)g(\014rst)g(form,)f(add)g(an)h(already)e(created)h(ob)5 b(ject)27 b(to)h(the)g(Graph.)36 b(In)731 1959 y(the)22 b(second)g(form)g(create)g(a)g(new)g(ob)5 b(ject)23 b(of)f(t)n(yp)r(e)h Ff(T)p Fg(,)g(and)f(add)g(it)h(to)f(the)h(Graph.)35 b Ff(T)731 2059 y Fg(m)n(ust)25 b(b)r(e)g(deriv)n(ed)g(from)g(the)g (abstract)f(base)h(class)f Fd(object)p Fg(.)34 b(Y)-7 b(ou)25 b(m)n(ust)g(explicitly)731 2159 y(supply)i(the)h(t)n(yp)r(e)g (of)g(the)g(ob)5 b(ject)27 b(to)g(b)r(e)h(created)f(as)g(a)g(template)h (argumen)n(t:)905 2358 y Fd(g.AddObject)o(\(i)o(d\);)731 2657 y Fg(In)36 b(the)h(third)g(form,)h(create)e(a)g(new)h(ob)5 b(ject,)38 b(and)f(initialise)f(its)h(data)f(with)h(the)731 2756 y(con)n(ten)n(ts)27 b(of)g(argumen)n(t)g Fd(master_copy)p Fg(.)523 2922 y Fc(Prepare)p 859 2922 29 4 v 35 w(Neigh)m(b)s(ours\(\)) 41 b Fg(F)-7 b(or)35 b(eac)n(h)g(ob)5 b(ject)35 b(on)h(the)g(lo)r(cal)f (pro)r(cessor,)h(ensure)f(that)731 3022 y(all)24 b(ob)5 b(jects)24 b(connected)h(to)g(it)g(are)f(brough)n(t)g(up)h(to)f(date,)i (b)n(y)e(obtaining)g(data)h(from)731 3122 y(remote)k(pro)r(cessors)e (if)k(necessary)-7 b(.)42 b(If)30 b(the)g(net)n(w)n(ork)f(structure)g (has)h(not)f(c)n(hanged)731 3221 y(since)i(the)h(last)f(call)g(to)g (this)g(metho)r(d,)i(set)f(the)f(\015ag)g Fd(cache_requests)26 b Fg(to)31 b Fd(true)p Fg(,)731 3321 y(whic)n(h)e(substan)n(tially)f (reduces)g(the)i(amoun)n(t)f(of)g(in)n(terpro)r(cessor)d(comm)n (unication)731 3421 y(required.)523 3587 y Fc(P)m(artition)p 905 3587 V 35 w(Ob)5 b(jects\(\))42 b Fg(Call)21 b(the)h(P)n(arMETIS)e (partitioner)h(to)g(redistribute)g(the)i(graph)731 3686 y(in)c(an)h(optimal)f(w)n(a)n(y)f(o)n(v)n(er)g(the)i(pro)r(cessors.)32 b(P)n(arMETIS)17 b(executes)j(in)f(parallel,)i(and)731 3786 y(requires)d(that)i(the)g(ob)5 b(jects)20 b(b)r(e)g(distributed)g (b)r(efore)g(this)g(call.)34 b(One)19 b(w)n(a)n(y)g(of)h(ac)n(hiev-)731 3885 y(ing)i(this)g(is)g(to)g(mak)n(e)g(a)g(simple)g(assignmen)n(t)f (of)h(ob)5 b(jects)22 b(to)g(pro)r(cessors)e(\(b)n(y)i(setting)731 3985 y(the)28 b Fd(proc)e Fg(mem)n(b)r(er)h(of)h(eac)n(h)e(ob)5 b(jref)h(\),)28 b(then)g(call)g Fd(Distribute_Obje)o(cts)o(\(\))o Fg(.)523 4151 y Fc(Distribute)p 957 4151 V 34 w(Ob)5 b(jects\(\))42 b Fg(Broadcast)25 b(graph)i(data)g(from)g(pro)r(cessor)f (0,)h(and)g(call)731 4251 y Fd(rebuild_local_l)o(ist)o(\(\))21 b Fg(on)27 b(eac)n(h)g(pro)r(cessor.)523 4417 y Fc(gather\(\))42 b Fg(Bring)f(the)i(en)n(tire)e(graph)g(on)h(pro)r(cessor)e(0)h(up)i(to) f(date,)j(cop)n(ying)c(infor-)731 4516 y(mation)c(from)g(remote)g(pro)r (cessors)f(as)h(necessary)-7 b(.)65 b(A)38 b Fd(gather\(\))p Fg(,)f(follo)n(w)n(ed)g(b)n(y)731 4616 y Fd(Distribute_Pins)o(\(\))15 b Fg(brings)20 b(all)h(pro)r(cessors')e(graphs)g(up-to-date.)34 b(This)21 b(is,)i(nat-)731 4716 y(urally)-7 b(,)31 b(an)f(exp)r(ensiv)n (e)h(op)r(eration,)g(and)g(should)f(b)r(e)i(done)e(for)h(startup)g(or)f (c)n(hec)n(k-)731 4815 y(p)r(oin)n(ting)d(purp)r(oses.)1934 5147 y(2)p eop end %%Page: 3 3 TeXDict begin 3 2 bop 523 614 a Fc(rebuild)p 825 614 29 4 v 34 w(lo)s(cal)p 1052 614 V 33 w(list\(\))41 b Fg(Reconstruct)23 b(the)h(list)h(of)e(ob)5 b(jrefs)23 b(lo)r(cal)h(to)f(the)i(curren)n(t)e(pro)r(ces-)731 714 y(sor,)j(according)g(to)h(the)h Fd(proc)e Fg(mem)n(b)r(er)i(of)f(the)h (ob)5 b(jrefs.)523 879 y Fc(clear)p 727 879 V 35 w(non)p 916 879 V 34 w(lo)s(cal\(\))41 b Fg(Nullify)19 b(all)g(ob)5 b(jrefs)18 b(that)g(don't)h(b)r(elong)f(to)h(the)g(curren)n(t)e(pro)r (cessor.)731 978 y(This)27 b(can)g(b)r(e)h(used)g(to)f(sa)n(v)n(e)f (memory)h(usage.)523 1210 y Fb(1.1)112 b(Basic)38 b(usage)h(of)e(Graph) 523 1363 y Ff(Gr)l(aph)e Fg(is)e(designed)g(to)g(b)r(e)h(used)f(in)h(a) f(SPMD)g(parallel)g(en)n(vironmen)n(t,)g(using)g(MPI)h(to)523 1463 y(handle)25 b(messages)f(b)r(et)n(w)n(een)h(pro)r(cessors.)34 b(A)26 b(cop)n(y)e(of)i(the)f(Graph)g(ob)5 b(ject)25 b(is)h(main)n(tained)523 1562 y(on)f(eac)n(h)f(pro)r(cess.)35 b(Eac)n(h)24 b(pro)r(cess)g(has)g(a)h(cop)n(y)f(of)h(the)h(ob)5 b(jref)24 b(database)g(\(of)h(t)n(yp)r(e)h Fd(omap)p Fg(\),)523 1662 y(called)19 b Fd(GRAPHCODE_NS::obj)o(ec)o(tMa)o(p)p Fg(.)28 b(The)20 b Fd(Graph::objects)13 b Fg(reference)19 b(refers)g(to)g(this)523 1762 y(database.)51 b(Ho)n(w)n(ev)n(er)31 b(the)i(pa)n(yload)e(p)r(oin)n(ter)i(of)g(eac)n(h)f(ob)5 b(jref)32 b(will)h(tend)g(to)g(only)f(p)r(oin)n(t)523 1861 y(to)26 b(an)g(ob)5 b(ject)26 b(if)h(the)g(ob)5 b(ject)26 b(is)h(lo)r(cated)f(in)g(the)h(curren)n(t)e(pro)r(cesses)g (address)g(space,)h(or)g(a)523 1961 y(cac)n(hed)i(cop)n(y)g(of)h(the)h (remote)e(ob)5 b(ject)29 b(is)f(needed)i(for)e(some)g(reason.)40 b(Otherwise)28 b(it)h(ma)n(y)523 2061 y(b)r(e)f(set)g(to)f(NULL)h(to)g (sa)n(v)n(e)e(space.)648 2160 y(T)-7 b(o)23 b(call)h(a)f(metho)r(d)i Fd(foo\(\))d Fg(on)i(all)f(ob)5 b(jects)24 b(of)g(a)f(Graph)h Fd(g)g Fg(\(in)g(parallel\),)g(execute)g(the)523 2260 y(follo)n(wing)j(co)r(de:)523 2423 y Fd(for)42 b(\(Graph::iterator)37 b(i=g.begin\(\);)i(i!=g.end\(\);)g(i++\))654 2522 y(\(*i\)->foo\(\);) 648 2685 y Fg(If)24 b(the)g(metho)r(d)g Fd(foo)f Fg(needs)g(to)h(kno)n (w)f(the)h(v)-5 b(alues)23 b(of)h(neigh)n(b)r(ouring)f(no)r(des,)h (then)g(y)n(ou)523 2785 y(ma)n(y)i(call)h Fd(Graph::Prepare_Ne)o(ig)o (hb)o(our)o(s\()o(\))p Fg(,)21 b(whic)n(h)27 b(ensures)g(that)g(a)g (cac)n(hed)f(cop)n(y)g(of)523 2885 y(an)n(y)i(remotely)g(lo)r(cated)g (no)r(de)g(link)n(ed)h(to)f(a)g(lo)r(cal)g(no)r(des)g(is)h(retriev)n (ed)e(from)h(the)h(remote)523 2984 y(no)r(de.)44 b(Th)n(us)29 b(arbitrary)f(comm)n(unication)h(patterns)g(can)h(b)r(e)g(expressed)f (simply)g(b)n(y)h(the)523 3084 y(form)d(of)h(the)g(net)n(w)n(ork)e (structure)h(of)h(the)g(Graph.)523 3358 y Fh(2)135 b(Ob)7 b(jects)523 3540 y Fd(object)34 b Fg(is)j(an)f(abstract)g(base)g (class,)i(from)e(whic)n(h)g(all)h(ob)5 b(jects)36 b(stored)g(in)h(the)g (graph)523 3639 y(m)n(ust)28 b(b)r(e)g(deriv)n(ed.)36 b(A)28 b(synopsis)e(of)i(the)g(ABC)g(is:)610 3802 y Fd(class)42 b(object:)e(public)i(Ptrlist)610 3902 y({)610 4002 y(public:)697 4101 y(/*)h(serialisation)38 b(methods)j(*/)697 4201 y(virtual)g(void)h(lpack\(pack_t)d(*buf\)=0;)697 4301 y(virtual)i(void)h(lunpack\(pack_t)c(*buf\)=0;)697 4400 y(/*)43 b(virtual)e("constructors")d(*/)697 4500 y(virtual)j(object*)g (lnew\(\))g(const=0;)697 4599 y(virtual)g(object*)g(lcopy\(\))f (const=0;)697 4699 y(virtual)h(~object\(\))f({})697 4799 y(virtual)h(int)h(type\(\))g(const=0;)214 b(/*)43 b(return)e(index)h (into)f(archetype)f(table)i(*/)697 4898 y(/*)h(partition)d(weightings)f (-)44 b(redefine)c(in)j(derived)d(type)i(if)h(needed)e(*/)1934 5147 y Fg(3)p eop end %%Page: 4 4 TeXDict begin 4 3 bop 697 614 a Fd(virtual)41 b(idxtype)g(weight\(\))f (const)i({return)e(1;})697 714 y(virtual)h(idxtype)g(edgeweight\(const) c(objref&)j(x\))j(const)f({return)e(1;})610 814 y(};)523 1046 y Fb(2.1)112 b(Serialisation)39 b(metho)s(ds)523 1199 y Fg(The)33 b(\014rst)g(t)n(w)n(o)f(virtual)h(metho)r(ds)g(allo)n (w)f(Graphco)r(de)h(to)g(access)f(Classdesc)g(generated)523 1299 y(serialisation)26 b(routines.)36 b(Assuming)27 b(y)n(ou)g(ha)n(v)n(e)g(declared)f(a)i(class)e(fo)r(o)i(as)f(follo)n (ws:)523 1482 y Fd(class)42 b(foo:)f(public)h(object)523 1581 y({)610 1681 y(...)610 1780 y(virtual)f(void)h(lpack\(pack_t)c (*buf\);)610 1880 y(virtual)j(void)h(lunpack\(pack_t)c(*buf\);)523 1980 y(})648 2162 y Fg(Then)27 b(y)n(ou)g(ma)n(y)g(de\014ne)h(the)g (virtual)f(functions)h(as)f(follo)n(ws:)523 2328 y Fd(inline)41 b(void)h(pack\(pack_t)d(*,eco_string,foo)o(&\);)523 2428 y(inline)i(void)h(unpack\(pack_t)c(*,eco_string,foo&)o(\);)523 2528 y(inline)j(void)h(foo::lpack\(pack_)o(t)c(*buf\))j ({pack\(buf,eco_str)o(in)o(g\()o(\),*)o(th)o(is\))o(;})523 2627 y(inline)g(void)h(foo::lunpack\(pac)o(k_t)37 b(*buf\))k ({unpack\(buf,eco_s)o(tr)o(ing)o(\(\))o(,*t)o(hi)o(s\))o(;})648 2793 y Fg(The)24 b(de\014nitions)g(for)f Fd(pack\(,,foo&\))d Fg(and)j Fd(unpack\(,,foo&\))c Fg(will)24 b(then)h(b)r(e)f(created)523 2893 y(in)k(the)g(usual)f(w)n(a)n(y)f(b)n(y)i(Classdesc.)648 2993 y(It)34 b(is)g(imp)r(ortan)n(t)g(that)h Fd(pack\(,,foo&\))30 b Fg(and)k Fd(unpack\(,,foo&\))28 b Fg(b)r(e)35 b(explicitly)g(de-)523 3092 y(clared)26 b(b)r(efore)h(use,)g(otherwise)f(a)h(default)g (template)h(function)f(will)h(b)r(e)f(link)n(ed)g(in)g(whic)n(h)523 3192 y(will)35 b(not)f(w)n(ork)f(as)h(exp)r(ected.)58 b(See)35 b(the)g(note)f(on)g(using)h(p)r(olymorphic)e(ob)5 b(jects)35 b(under)523 3291 y(Classdesc.)523 3524 y Fb(2.2)112 b(Virtual)38 b(Constructors)523 3677 y Fg(De\014ning)29 b(the)h(virtual)e(constructors)f(for)h(y)n(our)g(ob)5 b(jects)28 b(t)n(yp)r(e)h(is)g(also)f(a)h(simple)g(matter.)523 3777 y(Unlik)n(e)c(the)h(case)f(of)g(the)h(serialisation)e(routines,)h (they)h(can)f(ev)n(en)f(b)r(e)i(done)f(inline)h(in)g(the)523 3876 y(class)h(de\014nition:)523 4042 y Fd(class)42 b(foo:)f(public)h (object)523 4142 y({)567 4242 y(...)567 4341 y(virtual)e(object)h (*lnew\(\))g({return)g(vnew\(this\);})567 4441 y(virtual)f(object)h (*lcopy\(\))g({return)f(vcopy\(this\);})523 4540 y(};)1934 5147 y Fg(4)p eop end %%Page: 5 5 TeXDict begin 5 4 bop 523 614 a Fb(2.3)112 b(Run)38 b(Time)g(T)m(yp)s (e)g(Iden)m(ti\014cation)523 768 y Fg(T)-7 b(o)29 b(migrate)f(an)g(ob)5 b(ject)29 b(from)g(one)f(thread)h(to)g(another,)f(Graphco)r(de)h(needs) f(to)h(b)r(e)h(able)523 867 y(to)i(create)f(an)h(ob)5 b(ject)32 b(of)g(the)h(correct)d(t)n(yp)r(e)j(in)f(the)h(destination)f (address)f(space.)49 b(This)523 967 y(is)28 b(ac)n(hiev)n(ed)f(b)n(y)h (means)g(of)g(a)g Ff(run)i(time)g(typ)l(e)h(identi\014c)l(ation)e Fg(\(R)-7 b(TTI\))29 b(system.)39 b(Giv)n(en)28 b(a)523 1066 y(t)n(yp)r(e)g(tok)n(en)f Fd(t)p Fg(,)g(an)g(ob)5 b(ject)28 b(of)f(that)h(t)n(yp)r(e)g(can)f(b)r(e)h(created)f(b)n(y)g (the)h(call:)523 1233 y Fd(object)41 b(*o=archetype[t]->)o(ln)o(ew)o (\(\);)648 1399 y Fg(Instead)29 b(of)h(using)g(C++'s)e(built-in)j(R)-7 b(TTI)30 b(system,)g(where)f(tok)n(ens)h(are)e(comp)r(ound)523 1498 y(ob)5 b(jects)26 b(of)h(somewhat)f(indeterminate)g(size,)h (Graphco)r(de)e(implemen)n(ts)i(a)f(simple)h(R)-7 b(TTI)523 1598 y(system)23 b(using)f(template)h(programming,)f(in)h(whic)n(h)g(a) f(t)n(yp)r(e)h(tok)n(en)f(is)h(a)g(simple)g(unsigned)523 1697 y(in)n(teger.)44 b(This)30 b(implies)h(that)f(eac)n(h)g(t)n(yp)r (e)g(of)h(ob)5 b(ject)30 b(to)g(b)r(e)h(used)f(with)h(Graph)f(m)n(ust)g (b)r(e)523 1797 y(registered)e(\014rst,)j(b)r(efore)e(use.)44 b(This)30 b(is)g(tak)n(en)f(care)g(for)g(y)n(ou)g(automatically)g(if)h (y)n(ou)g(use)523 1897 y Fd(Graph::AddObject)o(\(\))21 b Fg(to)28 b(add)f(y)n(our)g(ob)5 b(ject)27 b(to)g(the)h(Graph.)648 1996 y(Adding)f(the)h(virtual)f(t)n(yp)r(e)h(metho)r(d)g(to)g(y)n(our)e (class)h(is)g(also)g(easy:)523 2179 y Fd(class)42 b(foo:)f(public)h (object)523 2279 y({)567 2378 y(...)567 2478 y(virtual)e(int)j (type\(\))e({return)f(vtype\(*this\);})523 2577 y(};)648 2760 y Fg(The)26 b(\014rst)h Fd(vtype)d Fg(is)j(called)f(on)g(an)h(ob)5 b(ject,)26 b(an)h(ob)5 b(ject)26 b(of)h(that)f(t)n(yp)r(e)h(is)g (created)f(\(via)523 2860 y(its)d Fd(lcopy)e Fg(metho)r(d\),)k(and)d (added)h(to)g(the)g(arc)n(het)n(yp)r(e)f(v)n(ector.)34 b(The)23 b(index)g(of)f(that)i(ob)5 b(ject)523 2959 y(within)28 b(the)g(arc)n(het)n(yp)r(e)e(v)n(ector)g(b)r(ecome)i(the)f(t)n(yp)r(e)h (tok)n(en.)36 b Ff(It)29 b(is)h(vital)t(ly)h(imp)l(ortant)f(that)523 3059 y(typ)l(es)c(ar)l(e)g(adde)l(d)i(to)e(the)g(ar)l(chetyp)l(e)h(ve)l (ctor)f(in)g(the)g(same)g(or)l(der)h(on)f(al)t(l)h(thr)l(e)l(ads.)36 b Fg(Clearly)523 3159 y(this)23 b(is)f(a)g(trivial)g(requiremen)n(t)f (if)i(only)f(one)g(t)n(yp)r(e)g(is)h(used,)g(but)g(sligh)n(tly)f(more)f (care)h(needs)523 3258 y(to)28 b(b)r(e)g(tak)n(en)f(in)g(the)h(case)f (of)h(m)n(ultiple)g(t)n(yp)r(es)f(of)h(ob)5 b(ject.)648 3358 y(If)32 b(y)n(ou)f(ha)n(v)n(e)g(m)n(ultiple)i(ob)5 b(ject)31 b(t)n(yp)r(es,)j(consider)d(using)g(the)i Fd(register_type)26 b Fg(tem-)523 3458 y(plate)d(to)g(ensure)f(a)g(consisten)n(t)h(t)n(yp)r (e)g(registration)e(across)f(the)k(di\013eren)n(t)f(address)e(spaces.) 523 3690 y Fb(2.4)112 b(No)s(de)38 b(and)g(edge)g(w)m(eigh)m(ts)523 3843 y Fg(By)33 b(default,)h(the)g(graph)d(partitioning)h(algorithm)g (used)h(in)g(Graphco)r(de)f(w)n(eigh)n(ts)g(eac)n(h)523 3943 y(no)r(de)37 b(and)g(link)g(equally)-7 b(.)65 b(Ho)n(w)n(ev)n(er,) 37 b(it)g(is)g(p)r(ossible)g(to)g(p)r(erform)f(load)h(balancing)f(b)n (y)523 4042 y(sp)r(ecifying)24 b(a)g(computational)f(w)n(eigh)n(t)g (function)i(on)f(eac)n(h)f(no)r(de,)i(and)f(a)f(comm)n(unication)523 4142 y(w)n(eigh)n(t)k(function)h(for)f(eac)n(h)g(edge.)36 b(F)-7 b(or)27 b(example:)523 4308 y Fd(class)42 b(foo:)f(public)h (object)523 4408 y({)610 4507 y(...)610 4607 y(virtual)f(idxtype)g (weight\(\))f({return)h(size\(\)*size\(\);})610 4707 y(vitural)g(idxtype)g(edgeweight\(cons)o(t)d(objref&)i(x\))j({return)e (\(*x\)->size\(\);})523 4806 y(};)1934 5147 y Fg(5)p eop end %%Page: 6 6 TeXDict begin 6 5 bop 523 614 a Fb(2.5)112 b(Edge)38 b(list)523 768 y Fg(An)29 b(ob)5 b(ject)29 b(is)g(deriv)n(ed)f(from)h (Ptrlist)f(\()p Fe(x)p Fg(4\),)h(whic)n(h)g(con)n(tains)f(a)h(list)g (of)g(ob)5 b(jrefs)28 b(that)h(the)523 867 y(curren)n(t)e(ob)5 b(ject)27 b(is)h(connected)f(to.)523 1100 y Fb(2.6)112 b(Self)38 b(linking)h(no)s(des)523 1253 y Fg(If)i(there)f(is)h(an)n(y)f (reason)f(for)h(y)n(our)f(no)r(de)i(to)f(access)g(its)h(ob)5 b(jref)40 b(\(eg)g(to)h(\014nd)g(out)f(its)523 1353 y(GraphID,)35 b(for)f(example\),)j(then)e(y)n(ou)f(can)g(add)h(the)g(ob)5 b(jref)34 b(to)h(its)g(edge)f(list)h(\(sa)n(y)f(the)523 1452 y(\014rst)k(item)g(on)g(the)h(edgelist)e(b)n(y)h(con)n(v)n(en)n (tion\).)67 b(Then)39 b(y)n(ou)e(can)g(refer)h(to)g(things)g(lik)n(e) 523 1552 y Fd(begin\(\)->ID)p Fg(,)23 b Fd(begin\(\)->proc)g Fg(etc.)648 1651 y(The)18 b Fd(Graph::Prepare_N)o(eig)o(hb)o(ou)o(rs\() o(\))12 b Fg(and)18 b Fd(Graph::Partition_)o(Obj)o(ec)o(ts\()o(\))12 b Fg(meth-)523 1751 y(o)r(ds)27 b(ignore)g(self-linking)g(edges.)523 2026 y Fh(3)135 b(ob)7 b(jref)523 2207 y Fg(F)-7 b(or)20 b(ev)n(ery)g(ob)5 b(ject)20 b(in)h(the)g(Graphco)r(de)f(system,)i (there)f(is)g(an)f Fd(objref)f Fg(on)h(ev)n(ery)g(pro)r(cessor)523 2307 y(referring)26 b(to)i(it.)648 2407 y(Synopsis:)610 2573 y Fd(class)42 b(objref)610 2672 y({)610 2772 y(public:)697 2872 y(GraphID_t)e(ID;)697 2971 y(unsigned)h(int)h(proc;)697 3170 y(objref\(GraphID_t)37 b(id=0,)42 b(int)g(proc=myid\(\),)d(object) i(*o=NULL\);)697 3270 y(objref\(GraphID_t)c(id,)43 b(int)f(proc,)g (object)f(&o\);)697 3370 y(objref\(const)e(objref&)i(x\);)697 3469 y(~objref\(\);)697 3669 y(objref&)g(operator=\(const)c(objref&)k (x\);)697 3768 y(object&)g(operator*\(\);)697 3868 y(object*)g (operator->\(\);)697 3967 y(const)h(object*)f(operator->\(\))d(const;) 697 4067 y(const)k(object*)f(operator->\(\))d(const;)697 4167 y(void)k(addref\(object*)c(o,)43 b(bool)f(mflag=false\);)697 4266 y(bool)g(nullref\(\))e(const;)697 4366 y(void)i(nullify\(\);)610 4466 y(};)523 4648 y Fc(ID)g Fg(A)28 b(unique)g(in)n(teger)e(v)-5 b(alue)28 b(that)g(iden)n(ti\014es)f(the)h(ob)5 b(ject)28 b(within)g(a)f(Graph)523 4814 y Fc(pro)s(c)42 b Fg(The)27 b(lo)r(cation)g(of)h(the)g(activ)n(e)f(cop)n(y)f(of)i(the)g(ob)5 b(ject)1934 5147 y(6)p eop end %%Page: 7 7 TeXDict begin 7 6 bop 523 614 a Fd(*,)43 b(->)d Fg(Dereferencing)26 b(an)h(ob)5 b(jref)26 b(allo)n(ws)f(one)h(to)h(access)e(the)i(ob)5 b(ject.)36 b(It)27 b(is)g(an)f(error)e(to)731 714 y(dereference)i(a)h (n)n(ulli\014ed)h(ob)5 b(jref.)523 880 y Fc(addref)42 b Fg(Add)19 b(an)f(ob)5 b(ject)19 b(to)f(this)h(reference.)32 b(The)19 b Fd(mflag)d Fg(parameter)h(indicates)h(whether)731 980 y(the)40 b(ob)5 b(ject)40 b(is)g(managed)g(\(created)f(b)n(y)h Fd(new)f Fg(or)h Fd(lnew\(\))p Fg(\),)h(and)f(can)g(b)r(e)h(safely)731 1079 y Fd(deleted)17 b Fg(when)j(n)n(ulli\014ed,)i(or)d(is)h(an)g (external)f(ob)5 b(ject)20 b(that)g(should)g(not)g(b)r(e)g(deleted.)731 1179 y(An)41 b(ob)5 b(jref)41 b(can)g(also)f(b)r(e)i(instan)n(tiated)f (already)f(p)r(oin)n(ting)h(to)g(an)g(unmanaged)731 1279 y(ob)5 b(ject)27 b(via)g(its)h(constructor.)523 1445 y Fc(n)m(ullref)41 b Fg(whether)28 b(this)g(ob)5 b(jref)27 b(p)r(oin)n(ts)h(to)g(an)f(ob)5 b(ject)28 b(or)f(not.)37 b(If)29 b(the)f(activ)n(e)f(cop)n(y)g(is)h(on)731 1544 y(this)23 b(pro)r(cessor,)f(then)h(n)n(ullref)g(should)g(b)r(e)g (false.)35 b(Otherwise,)23 b(it)h(ma)n(y)e(true)h(or)f(false)731 1644 y(dep)r(ending)28 b(on)f(whether)g(this)h(pro)r(cessor)e(has)h(a)g (cac)n(hed)g(cop)n(y)f(of)i(the)g(ob)5 b(ject.)523 1810 y Fc(n)m(ullify)41 b Fg(Remo)n(v)n(e)24 b(the)h(ob)5 b(ject)25 b(from)g(the)g(Graph)g(\(but)g(lea)n(ving)f(the)h(ob)5 b(jref)25 b(in)g(place\).)36 b(It)731 1910 y(is)c(an)h(error)d(to)j (remo)n(v)n(e)e(the)i(activ)n(e)f(cop)n(y)-7 b(,)33 b(without)g (replacing)f(it)h(with)g(another)731 2009 y(ob)5 b(ject.)523 2284 y Fh(4)135 b(Ptrlist)523 2466 y Fg(Ptrlists)37 b(w)n(ork)f(a)h (bit)g(lik)n(e)g Fd(std::vector)31 b Fg(|)37 b(ob)5 b(jrefs)37 b(can)g(b)r(e)h(added)f(with)523 2565 y Fd(Ptrlist::push_ba)o(ck\()o(\))p Fg(,)14 b(indexed)19 b(with)f(standard)g(arra)n(y)e(indexing)i Fd(Ptrlist::operato)o(r[])o Fg(,)523 2665 y(and)30 b(iterated)f(o)n(v)n(er)f(in)i(the)g(usual)f(w)n (a)n(y)g(with)h Fd(Ptrlist::iterato)o(r)p Fg(.)37 b(Ho)n(w)n(ev)n(er,) 29 b(unlik)n(e)523 2764 y Fd(std::vector)o Fg(,)k(only)j(p)r(oin)n(ters)f(to)h(the)h(ob)5 b(jref)36 b(is)g(stored)f(within)i Fd(Ptrlist)p Fg(,)523 2864 y(not)28 b(copies.)648 2964 y(Synopsis:)523 3146 y Fd(class)42 b(Ptrlist)610 3246 y({)610 3346 y(public:)697 3545 y(class)g(iterator) 697 3644 y({)697 3744 y(public:)785 3844 y(objref&)e(operator*\(\);)785 3943 y(objref*)g(operator->\(\);)785 4043 y(iterator)g(operator++\(\);) 785 4143 y(iterator)g(operator--\(\);)785 4242 y(iterator)g (operator++\(int\);)785 4342 y(iterator)g(operator--\(int\);)785 4441 y(bool)h(operator==\(const)c(iterator&)j(x\);)785 4541 y(bool)h(operator!=\(const)c(iterator&)j(x\);)697 4641 y(};)697 4740 y(iterator)h(begin\(\))f(const;)697 4840 y(iterator)h(end\(\))g(const;)1934 5147 y Fg(7)p eop end %%Page: 8 8 TeXDict begin 8 7 bop 697 614 a Fd(objref)41 b(&)174 b(front)42 b(\(\))697 714 y(objref)f(&)174 b(back)42 b(\(\))697 814 y(unsigned)f(size\(\))g(const;)697 913 y(objref&)g(operator[]\(unsig)o(ned)c(i\))43 b(const;)697 1013 y(void)f(push_back\(objref*)37 b(x\);)697 1112 y(void)42 b(push_back\(objref&)37 b(x\);)697 1212 y(void)42 b(erase\(GraphID_t)c (i\);)697 1312 y(void)k(clear\(\);)697 1411 y(Ptrlist&)f (operator=\(const)c(Ptrlist)k(&x\);)610 1511 y(};)648 1660 y Fg(Ptrlists)33 b(can)g(only)g(refer)g(to)h(ob)5 b(jects)33 b(stored)g(in)h(ob)5 b(jectMap.)55 b(Ptrlists)33 b(can)g(b)r(e)h(se-)523 1759 y(rialised)j(|)h(Ptrlists)g(m)n(ust)g(b)r (e)g(unpac)n(k)n(ed)g(within)g(the)h(con)n(text)e(of)h(an)g(omapthe)g (ob-)523 1859 y(jectMap.)648 1959 y(If)g(y)n(ou)f(need)h(to)f(use)h(a)f (bac)n(king)g(map,)j(y)n(ou)d(can)h(declare)f(another)f(omap)i(ob)5 b(ject)523 2058 y(and)28 b(assign)e(ob)5 b(jectMap)28 b(to)g(it.)38 b(This)28 b(will)g(create)f(copies)g(of)h(all)f(the)i(ob) 5 b(jects)27 b(con)n(tained)523 2158 y(within)h(ob)5 b(jectMap.)523 2427 y Fh(5)135 b(omap)523 2608 y Fg(An)28 b(omap)f(is)h(a)f(con)n(tainer)f(for)h(storing)g Ff(objr)l(efs)i Fe(x)p Fg(\(3\),)e(indexed)h(b)n(y)f(ID.)610 2757 y Fd(class)42 b(omap:)f(public)g(MAP)610 2857 y({)610 2956 y(public:)697 3056 y(objref&)g(operator[]\(Graph)o(ID_)o(t)c(i\);)697 3156 y(omap&)42 b(operator=\(omap&)37 b(x\);)610 3255 y(};)648 3404 y Fg(There)e(are)g(a)h(few)g(di\013eren)n(t)g(p)r (ossible)g(w)n(a)n(ys)e(of)i(implemen)n(ting)g(omaps,)i(with)e(dif-)523 3504 y(fering)f(p)r(erformance)f(c)n(haracteristics.)58 b(Graphco)r(de)35 b(pro)n(vides)e(t)n(w)n(o)i(di\013eren)n(t)g(mo)r (dels,)523 3603 y Ff(vmap)e Fg(and)f Ff(hmap)i Fg(that)e(ma)n(y)g(b)r (e)g(readily)g(deplo)n(y)n(ed)f(b)n(y)h(the)h(user,)f(ho)n(w)n(ev)n(er) e(users)i(can)523 3703 y(fairly)f(easily)g(pro)n(vide)g(their)g(o)n(wn) g(implemen)n(tation)h(if)g(desired.)49 b(Di\013eren)n(t)32 b(implemen-)523 3802 y(tations)42 b(can)g(b)r(e)h(selected)g(b)n(y)f (de\014ning)h(the)g Fd(MAP)e Fg(macro)h(to)g(b)r(e)h(the)g(desired)f (omap)523 3902 y(implemen)n(tation)e(b)r(efore)g(including)h Fd(graphcode.h)p Fg(.)70 b(This)41 b(will)f(declare)g(ev)n(erything)523 4002 y(in)32 b(the)h(namespace)e Fd(graphcode_vmap)26 b Fg(or)31 b Fd(graphcode_hmap)26 b Fg(as)31 b(appropriate.)49 b(Using)523 4101 y(this)33 b(sc)n(heme,)h(it)g(is)f(p)r(ossible)g(to)f (ha)n(v)n(e)g(t)n(w)n(o)h(di\013eren)n(t)g(omap)f(t)n(yp)r(es)h(in)h (the)f(one)g(ob)5 b(ject)523 4201 y(\014le,)31 b(b)n(y)g(including)f (graphco)r(de.h)g(t)n(wice.)45 b(Ho)n(w)n(ev)n(er,)29 b(if)i(y)n(ou)f(do)g(this,)i(y)n(ou)d(will)i(need)g(to)523 4301 y Fd(#undef)41 b(GRAPHCODE_H)23 b Fg(guard)k(v)-5 b(ariable)26 b(prior)h(to)g(subsequen)n(t)g(includes.)648 4400 y(vmap)c(is)h(in)n(tended)g(for)g(use)f(with)i(con)n(tiguous)d (GraphID)i(ranges.)34 b(If)24 b(there)g(are)f(holes)523 4500 y(in)30 b(the)g(iden)n(ti\014er)f(range,)f(then)i(the)g(iterator)e (will)i(return)f(in)n(v)-5 b(alid)29 b(references)f(for)h(these)523 4599 y(holes,)e(and)h(the)g(size\(\))f(metho)r(d)h(will)g(b)r(e)g (incorrect.)648 4699 y(If)k(y)n(ou)f(need)g(to)h(ha)n(v)n(e)e(non-con)n (tiguous)g(ID)i(ranges)e(\(p)r(erhaps)i(for)f(dynamic)h(graph)523 4799 y(managemen)n(t)24 b(|)g(note)h(this)g(is)f(not)h(curren)n(tly)e (supp)r(orted\),)j(then)f(please)f(use)g(the)h(hmap)523 4898 y(implemen)n(tation)j(instead)f(\(whic)n(h)h(will)g(ha)n(v)n(e)e (some)h(p)r(erformance)g(p)r(enalt)n(y\).)1934 5147 y(8)p eop end %%Page: 9 9 TeXDict begin 9 8 bop 648 614 a Fg(MAP)27 b(m)n(ust)h(pro)n(vide)e(the) i(follo)n(wing)f(mem)n(b)r(ers:)523 774 y Fd(class)42 b(MAP)523 873 y({)610 973 y(protected:)697 1073 y(objref&)f (at\(GraphID_t)e(i\);)610 1172 y(public:)697 1272 y(MAP\(\);)697 1372 y(MAP\(const)h(MAP&\))697 1471 y(class)i(iterator)741 1571 y({)828 1670 y(iterator\(\);)828 1770 y(iterator\(const)c (iterator&\);)828 1870 y(iterator&)i(operator=\(const)d(iterator&\);) 828 1969 y(iterator)j(operator++\(int\);)828 2069 y(iterator)g (operator++\(\);)828 2169 y(iterator)g(operator--\(int\);)828 2268 y(iterator)g(operator--\(\);)828 2368 y(bool)i(operator==\(const) 37 b(iterator&)j(x\))j(const;)828 2467 y(bool)f(operator!=\(const)37 b(iterator&)j(x\))j(const;)828 2567 y(objref&)e(operator*\(\);)828 2667 y(objref*)g(operator->\(\);)741 2766 y(};)697 2866 y(iterator)g(begin\(\);)697 2966 y(iterator)g(end\(\);)697 3065 y(unsigned)g(size\(\);)523 3165 y(})648 3324 y Fg(The)36 b Fd(at)g Fg(metho)r(d)h(is)f(essen)n(tially)g(a)g(replacemen)n(t)g (for)g Fd(operator[]\(\))p Fg(.)58 b(A)37 b(simple)523 3424 y(example)27 b(of)h(an)f(omap)g(implemen)n(tation)h(is)f(pro)n (vided)g(b)n(y)g Fd(vmap)p Fg(:)523 3583 y Fd(class)42 b(vmap:)f(public)g(std::vector)523 3683 y({)523 3782 y(protected:)610 3882 y(objref&)g(at\(GraphID_t)e(i\))610 3982 y({)697 4081 y(if)k(\(i>=size\(\)\))c(resize\(i+1\);)697 4181 y(return)i(std::vector:)o(:o)o(per)o(at)o(or)o([]\()o (i\))o(;)610 4281 y(})523 4380 y(};)648 4540 y Fg(hmap)e(is)g(a)f(hash) h(map)g(implemen)n(tation.)71 b(With)40 b(all)f(hash)g(maps,)i(p)r (erformance)523 4639 y(of)34 b(the)g(map)g(is)g(critically)f(dep)r (enden)n(t)i(up)r(on)f(the)g(c)n(hoice)f(of)h(hash)g(function,)i(whic)n (h)d(is)523 4739 y(application)27 b(dep)r(enden)n(t.)38 b(hmap)27 b(is)h(simply)f(de\014ned)h(as:)523 4898 y Fd(class)42 b(hmap:)f(public)g(hashmap)c({};)1934 5147 y Fg(9)p eop end %%Page: 10 10 TeXDict begin 10 9 bop 523 614 a Fg(Y)-7 b(ou)36 b(can)g(pro)n(vide)e (y)n(our)h(o)n(wn)g(omap)h(de\014nition)g(\(umap,)i(sa)n(y\),)g(with)e (y)n(our)f(o)n(wn)g(user)523 714 y(de\014ned)28 b(hash)f(function)h(in) g(the)g(follo)n(wing)f(w)n(a)n(y:)625 880 y(1.)41 b(Create)29 b(a)i(\014le)g(\\umap")e(somewhere)h(in)h(the)g(default)g(searc)n(h)e (path)i(with)h(the)f(fol-)731 980 y(lo)n(wing:)731 1179 y Fd(#include)40 b("hashmap.h")731 1279 y(struct)h(myhash)731 1378 y({)818 1478 y(unsigned)f(operator\(\)\(Graph)o(ID_)o(t)d(i\))43 b({...})731 1577 y(};)731 1677 y(class)e(umap:)h(public)f (hashmap)c({};)625 1876 y Fg(2.)k(Add)28 b(the)g(new)f(omap)g (de\014nitions)h(to)g(the)g(Graphco)r(de)e(library:)731 2076 y Fd(make)42 b(MAP=umap)625 2275 y Fg(3.)f(Include)25 b(the)g(declarations)e(of)h(the)i Fd(graphcode_umap)19 b Fg(namespace)k(in)i(y)n(our)f(appli-)731 2374 y(cation)j(source)f (\014le:)731 2574 y Fd(#define)40 b(MAP)j(umap)731 2673 y(#undef)e(GRAPHCODE_H)731 2773 y(#include)f()523 3005 y Fb(5.1)112 b(Note)37 b(on)h(using)g(macros)g(to)f(parametrise)i (omap)523 3159 y Fg(It)29 b(migh)n(t)f(seem)h(ob)n(vious)e(that)h(omap) g(could)h(b)r(e)f(made)h(a)f(templated)h(t)n(yp)r(e,)g(with)g(a)f(sin-) 523 3258 y(gle)g(template)h(parameter)e(b)r(eing)i(the)g(implemen)n (tation)g(of)f(the)h(omap.)39 b(Unfortunately)-7 b(,)523 3358 y(omaps)30 b(con)n(tain)h(ob)5 b(jects,)31 b(whic)n(h)g(in)h(turn) f(ha)n(v)n(e)f(Ptrlists)g(\(the)i(edge)f(list\),)h(whic)n(h)f(used)523 3457 y(to)g(main)n(tain)g(a)g(reference)g(to)g(an)g(omap.)48 b(So)31 b(ob)5 b(jects)31 b(and)g(ob)5 b(jrefs)31 b(m)n(ust)g(b)r(e)h (similarly)523 3557 y(parametrised)c(b)n(y)h(b)n(y)h(the)g(omap)f (implemen)n(tation)g(t)n(yp)r(e.)44 b(Ho)n(w)n(ev)n(er)27 b(the)j(omap)f(imple-)523 3657 y(men)n(tation)g(t)n(yp)r(e)g(will)h (also)e(need)h(to)g(reference)g(the)g(parametrised)f(ob)5 b(jrefs,)29 b(leading)f(to)523 3756 y(an)f(implemen)n(tation)h(t)n(yp)r (e)g(parametrised)e(b)n(y)h(itself,)h(an)g(unparsable)e(situation.)648 3856 y(The)g(w)n(a)n(y)f(out)h(of)g(this)h(dilemma)f(is)g(to)g(mak)n(e) g(omap)f(an)h(abstract)f(base)h(class,)f(whic)n(h)523 3956 y(can)h(b)r(e)g(made)h(in)n(to)e(a)h(concrete)g(implemen)n(tation) g(as)f(part)h(of)g(the)h(de\014nition)g(of)f(Graph.)523 4055 y(Ho)n(w)n(ev)n(er,)i(this)i(in)n(tro)r(duces)f(an)g(extra)f(lev)n (el)h(of)g(o)n(v)n(erhead)f(in)h(calling)g(virtual)g(functions)523 4155 y(when)f(p)r(erforming)f(ob)5 b(ject)27 b(lo)r(okup,)g(whic)n(h)h (is)f(not)h(insigni\014can)n(t.)36 b(It)28 b(also)f(dramatically)523 4254 y(increases)j(the)h(complexit)n(y)g(of)g(co)r(ding)f Fd(object::iterator)p Fg(,)c(whic)n(h)31 b(also)f(w)n(ould)g(need)523 4354 y(to)e(b)r(e)g(an)f(abstract)f(base)h(class.)648 4454 y(In)c(view)g(of)g(this,)h(the)g(macro)e(based)g(solution)h (\014nally)g(c)n(hosen,)g(seemed)g(the)h(cleanest,)523 4553 y(and)j(most)h(e\016cien)n(t)g(means)f(of)g(implemen)n(ting)h (di\013eren)n(t)g(omap)f(implemen)n(tations.)648 4653 y(Ob)n(viously)-7 b(,)42 b(this)e(reason)f(is)h(no)g(longer)f(relev)-5 b(an)n(t,)42 b(ho)n(w)n(ev)n(er)c(there)i(do)r(esn't)h(seem)523 4753 y(to)33 b(b)r(e)h(an)n(y)e(burning)h(reason)f(to)h(c)n(hange)f (the)h(macro)f(parametrisation)f(to)i(a)g(template)523 4852 y(argumen)n(t.)1914 5147 y(10)p eop end %%Page: 11 11 TeXDict begin 11 10 bop 523 614 a Fh(6)135 b(Building)45 b(Graphco)t(de)523 796 y Fg(In)39 b(building)g(graphco)r(de,)h(y)n(ou)e (con\014gure)g(the)h(options)f(y)n(ou)g(w)n(an)n(t)g(b)n(y)h(setting)f (Mak)n(e)523 896 y(v)-5 b(ariables)26 b(on)i(the)g(command)f(line:)523 1062 y Fc(MPI=1)42 b Fg(Build)27 b(the)h(MPI)g(v)n(ersion)e(of)h (Graphco)r(de)523 1228 y Fc(MAP=)42 b Fg(sp)r(ecify)21 b(whic)n(h)f(map)h(to)f(use)g(for)g(omap.)34 b(hmap)21 b(is)f(the)h(default.)35 b(Y)-7 b(ou)21 b(can)f(build)731 1328 y(a)33 b(library)f(supp)r(orting)i(m)n(ultiple)g(di\013eren)n(t)g (omap)f(t)n(yp)r(es)h(b)n(y)g(issuing)f(successiv)n(e)731 1427 y(mak)n(e)26 b(commands:)731 1626 y Fd(make)42 b(MAP=vmap)731 1726 y(make)g(MAP=hmap)523 1925 y Fc(DEBUGGING=1)g Fg(Used)37 b(to)g(enable)g(assertions,)h(as)f(w)n(ell)g(as)f(debugger)g(sym)n(b)r (ols.)731 2025 y(Optimisation)27 b(is)g(turned)h(o\013)523 2191 y Fc(PREFIX=)42 b Fg(sp)r(ecify)26 b(an)g(install)f(directory)g (when)h(building)g(the)g Fd(install)d Fg(target)i(\(de-)731 2291 y(fault)j Fd(~/usr)p Fg(\).)523 2565 y Fh(7)135 b(Using)45 b(graphco)t(de)g(in)g(parallel)523 2747 y Fg(T)-7 b(o)20 b(use)g(graphco)r(de)g(in)g(parallel,)h(y)n(ou)f(need)g (to)h(install)f(Classdesc,)h(P)n(arMETIS)d(and)j(MPI.)523 2847 y(De\014ne)31 b(the)f(prepro)r(cessor)e(sym)n(b)r(ol)i Fd(MPI_SUPPORT)25 b Fg(to)30 b(enable)g(the)h(parallel)e(pro)r(cessing) 523 2946 y(co)r(de.)48 b(An)32 b(example)f(Mak)n(e\014le)f(for)h(the)h Fd(poisson_demo)26 b Fg(example)31 b(illustrate)g(ho)n(w)g(this)523 3046 y(is)d(done.)648 3145 y(Y)-7 b(ou)35 b(will)i(need)f(to)f(arrange) f(the)i(class)f(de\014nitions)h(for)f(y)n(our)g(ob)5 b(jects,)37 b(as)e(w)n(ell)h(as)523 3245 y(the)31 b(graphco)r(de.h)f (\014le)h(to)g(b)r(e)g(pro)r(cessed)f(b)n(y)h(classdesc.)46 b(One)30 b(w)n(a)n(y)g(of)h(doing)f(this)i(is)f(to)523 3345 y Fd(#include)e Fg(.cd)j(\014les)g(in)n(to)f(one)h(of)g(the)g(C++) f(source)g(\014les,)i(and)e(ha)n(v)n(e)g(a)h Fd(.h.cd)e Fg(rule)h(in)523 3444 y(y)n(our)26 b(Mak)n(e\014le,)h(as)g(suggested)g (in)h(the)g(classdesc)e(do)r(cumen)n(tation.)523 3719 y Fh(8)135 b(Examples)523 3901 y Fg(Graphco)r(de)25 b(comes)g(with)i (an)e(example)h(of)g(solving)e(the)j(P)n(oisson)c(equation.)36 b(Graphco)r(de)523 4000 y(is)e(also)f(deplo)n(y)n(ed)g(for)g(implemen)n (ting)i(the)f(spatial)f(Ecolab)g(mo)r(del,)j(and)e(the)g(P)n(alauan)523 4100 y(jelly\014sh)20 b(mo)r(del)g(within)h(the)1445 4082 y Fa(Eco)1538 4100 y(L)n(ab)f Fg(pac)n(k)-5 b(age.)33 b(The)19 b(latter)h(mo)r(del)g(illustrates)f(a)h(dynamic)523 4200 y(load)27 b(balancing.)1914 5147 y(11)p eop end %%Page: 12 12 TeXDict begin 12 11 bop 523 739 a Fh(Index)523 905 y Fg(AddOb)5 b(ject,)28 b(2)523 1004 y(arc)n(het)n(yp)r(e,)f(5)523 1104 y(at,)h(9)523 1266 y(cac)n(he)p 725 1266 25 4 v 29 w(requests,)f(2)523 1366 y(Classdesc,)f(11)523 1466 y(clear)p 700 1466 V 29 w(non)p 863 1466 V 29 w(lo)r(cal\(\),)i(3)523 1628 y(Distribute)p 896 1628 V 30 w(Ob)5 b(jects,)28 b(2)523 1790 y(gather,)f(2)523 1890 y(Graph,)g(1)523 1989 y(graphco)r(de)p 901 1989 V 28 w(hmap,)h(8)523 2089 y(graphco)r(de)p 901 2089 V 28 w(vmap,)g(8)523 2251 y(hmap,)g(8)523 2414 y(lcop)n(y)-7 b(,)27 b(4)523 2513 y(lnew,)h(4,)f(5)523 2613 y(lpac)n(k,)g(4)523 2713 y(lunpac)n(k,)g(4)523 2875 y(MAP)-7 b(,)28 b(8)523 2975 y(Metis,)g(11)523 3074 y(MPI,)f(11)523 3174 y(MPI)p 691 3174 V 30 w(SUPPOR)-7 b(T,)26 b(11)523 3336 y(ob)5 b(ject,)27 b(1{3)523 3436 y(ob)5 b(jref,)27 b(1,)g(2,)h(6,)f(8)523 3535 y(omap,)g(8)523 3698 y(P)n(arMETIS,)f(11) 523 3797 y(P)n(artition)p 856 3797 V 28 w(Ob)5 b(jects,)28 b(2)523 3897 y(p)r(oisson)p 795 3897 V 29 w(demo,)g(11)523 3997 y(Prepare)p 813 3997 V 28 w(Neigh)n(b)r(ours,)f(2)523 4096 y(pro)r(c,)g(3)523 4196 y(Ptrlist,)g(2,)g(6,)h(7)523 4358 y(rebuild)p 782 4358 V 30 w(lo)r(cal)p 981 4358 V 29 w(list,)g(3)523 4458 y(R)-7 b(TTI,)28 b(5)523 4620 y(t)n(yp)r(e,)g(5)523 4783 y(vmap,)f(9)523 4882 y(vt)n(yp)r(e,)h(5)1914 5147 y(12)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF