Ebnf2ps 1.0.11 → 1.0.12
raw patch · 32 files changed
+9386/−4647 lines, 32 filesnew-uploaderbinary-added
Files
- Ebnf2ps.cabal +11/−7
- README.md +37/−0
- dist/build/ebnf2ps/ebnf2ps-tmp/Ebnf2psParser.hs +97/−59
- doc/Atom.eps +67/−66
- doc/Atom_unfold.eps +3/−3
- doc/Character.eps +47/−46
- doc/ExtAtom.eps +45/−44
- doc/Factor.eps +26/−25
- doc/File.eps +20/−19
- doc/Nonterminal.eps +54/−53
- doc/Production.eps +42/−41
- doc/Production_unfold.eps +3/−3
- doc/RAtom.eps +3/−3
- doc/RAtom_unfold.eps +3/−3
- doc/RExtAtom.eps +3/−3
- doc/RFactor.eps +3/−3
- doc/Regexp.eps +3/−3
- doc/String.eps +32/−31
- doc/Term.eps +29/−28
- doc/doc.pdf binary
- doc/doc.ps +8651/−3974
- doc/doc.tex +62/−79
- src/Ebnf2ps.hs +3/−2
- src/EbnfLayout.hs +8/−10
- src/Fonts.hs +0/−2
- src/GrammarTransform.hs +53/−54
- src/GrammarUnfold.hs +39/−42
- src/IOSupplement.hs +20/−21
- src/Lexer.hs +3/−4
- src/PathExpansion.hs +16/−17
- src/Version.hs +1/−1
- src/rgbpath.h +2/−1
Ebnf2ps.cabal view
@@ -1,15 +1,16 @@ Name: Ebnf2ps-Version: 1.0.11+Version: 1.0.12 Synopsis: Peter's Syntax Diagram Drawing Tool-Homepage: http://www.informatik.uni-freiburg.de/~thiemann/haskell/ebnf2ps/+Homepage: https://github.com/FranklinChen/Ebnf2ps+Bug-reports: https://github.com/FranklinChen/Ebnf2ps/issues License: BSD3 License-file: LICENSE Author: Peter Thiemann <thiemann@acm.org>-Maintainer: Peter Thiemann <thiemann@acm.org>+Maintainer: Franklin Chen <franklinchen@franklinchen.com>+Copyright: 1993-2014 Category: Language Build-type: Simple-Cabal-version: >=1.2-Tested-With: GHC == 6.10.4, GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.2+Cabal-version: >=1.6 Description: Ebnf2ps generates nice looking syntax diagrams in EPS and FIG format from EBNF specifications and from yacc, bison, and Happy input grammars. The diagrams can be@@ -17,14 +18,14 @@ texts created with other popular document preparation systems. -Extra-source-files:+Extra-source-files: README.md, examples/ebnf.BNF examples/gofer.BNF examples/regular.BNF, examples/examples.ps, doc/Atom.eps, doc/ExtAtom.eps, doc/Factor.eps, doc/File.eps, doc/Production_unfold.eps, doc/Nonterminal.eps, doc/Production.eps, doc/String.eps, doc/Term.eps, doc/Character.eps, doc/Atom_unfold.eps, doc/RAtom.eps, doc/RAtom_unfold.eps, doc/Export.eps, doc/RExtAtom.eps, doc/RFactor.eps, doc/Regexp.eps,- doc/doc.tex, doc/doc.ps, src/afmpath.h, src/rgbpath.h,+ doc/doc.tex, doc/doc.ps, doc/doc.pdf, src/afmpath.h, src/rgbpath.h, CHANGES Executable ebnf2ps@@ -57,3 +58,6 @@ PsOutput, StringMatch, Version+source-repository head+ type: git+ location: https://github.com/FranklinChen/Ebnf2ps
+ README.md view
@@ -0,0 +1,37 @@+# Ebnf2ps++[](https://travis-ci.org/FranklinChen/Ebnf2ps)++Ebnf2ps generates nice looking syntax diagrams in EPS and FIG format+from EBNF specifications and from yacc, bison, and Happy input+grammars. The diagrams can be immediatedly included in TeX/LaTeX+documents and in texts created with other popular document preparation+systems.++## Usage++The latest version of the manual is available in [`doc.pdf`](https://raw.githubusercontent.com/FranklinChen/Ebnf2ps/master/doc/doc.pdf).++Two environment variables may need to be set:++- Find out where your `TeX` installation stores+ `.afm`-files (Adobe font metric files). Then set the+ environment variable `AFMPATH` when running the program. The+ `.afm`-files are absolutely necessary. If you don't find them+ complain to your system administrator or get them yourself. One+ possible source is [here](https://github.com/weiss/original-bsd/tree/master/local/transcript/lib/).+- Set the environment variable `RGBPATH` to contain the directory+ where your X installation stores its color data base (usually+ `/usr/lib/X11`). There are fallback color definitions for the 8+ digital colors (black, white, blue, green, cyan, red,+ magenta, yellow), so nothing needs be done if that's enough for you.++ Note: for Mac OS X, the default `/opt/X11/share/X11` has been+ provided and will work automatically, if you have installed X using+ [XQuartz](http://xquartz.macosforge.org/).++## Notes++With Peter Thiemann's permission, I am now maintaining this package, starting with version 1.0.12.++I first used this software in 1995 (!), so it was a nostalgia trip finding it again in 2004 and reviving it. PostScript is no longer in fashion, but one can stil use this tool and then convert PostScript to PDF.
dist/build/ebnf2ps/ebnf2ps-tmp/Ebnf2psParser.hs view
@@ -7,8 +7,9 @@ import ParseAux import qualified Data.Array as Happy_Data_Array import qualified GHC.Exts as Happy_GHC_Exts+import Control.Applicative(Applicative(..)) --- parser produced by Happy Version 1.18.6+-- parser produced by Happy Version 1.19.4 newtype HappyAbsSyn = HappyAbsSyn HappyAny #if __GLASGOW_HASKELL__ >= 607@@ -1010,12 +1011,19 @@ _ -> happyError' (tk:tks) } -happyError_ tk tks = happyError' (tk:tks)+happyError_ 25# tk tks = happyError' tks+happyError_ _ tk tks = happyError' (tk:tks) newtype HappyIdentity a = HappyIdentity a happyIdentity = HappyIdentity happyRunIdentity (HappyIdentity a) = a +instance Functor HappyIdentity where+ fmap f (HappyIdentity a) = HappyIdentity (f a)++instance Applicative HappyIdentity where+ pure = return+ a <*> b = (fmap id a) <*> b instance Monad HappyIdentity where return = HappyIdentity (HappyIdentity p) >>= q = q p@@ -1042,25 +1050,51 @@ {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp -{-# LINE 30 "templates/GenericTemplate.hs" #-} +{-# LINE 13 "templates/GenericTemplate.hs" #-} +++++-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#if __GLASGOW_HASKELL__ > 706+#define LT(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.<# m)) :: Bool)+#define GTE(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.>=# m)) :: Bool)+#define EQ(n,m) ((Happy_GHC_Exts.tagToEnum# (n Happy_GHC_Exts.==# m)) :: Bool)+#else+#define LT(n,m) (n Happy_GHC_Exts.<# m)+#define GTE(n,m) (n Happy_GHC_Exts.>=# m)+#define EQ(n,m) (n Happy_GHC_Exts.==# m)+#endif++{-# LINE 46 "templates/GenericTemplate.hs" #-}++ data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList -{-# LINE 51 "templates/GenericTemplate.hs" #-} -{-# LINE 61 "templates/GenericTemplate.hs" #-}+{-# LINE 67 "templates/GenericTemplate.hs" #-} -{-# LINE 70 "templates/GenericTemplate.hs" #-} +{-# LINE 77 "templates/GenericTemplate.hs" #-}++++++++++ infixr 9 `HappyStk` data HappyStk a = HappyStk a (HappyStk a) @@ -1076,9 +1110,9 @@ -- parse (a %partial parser). We must ignore the saved token on the top of -- the stack in this case. happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =- happyReturn1 ans+ happyReturn1 ans happyAccept j tk st sts (HappyStk ans _) = - (happyTcHack j (happyTcHack st)) (happyReturn1 ans)+ (happyTcHack j (happyTcHack st)) (happyReturn1 ans) ----------------------------------------------------------------------------- -- Arrays only: do the next action@@ -1086,37 +1120,35 @@ happyDoAction i tk st- = {- nothing -}--- case action of- 0# -> {- nothing -}- happyFail i tk st- -1# -> {- nothing -}- happyAccept i tk st- n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}-- (happyReduceArr Happy_Data_Array.! rule) i tk st- where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))- n -> {- nothing -}+ = {- nothing -}+ + case action of+ 0# -> {- nothing -}+ happyFail i tk st+ -1# -> {- nothing -}+ happyAccept i tk st+ n | LT(n,(0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}+ + (happyReduceArr Happy_Data_Array.! rule) i tk st+ where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))+ n -> {- nothing -}+ - happyShift new_state i tk st- where (new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))- where (off) = indexShortOffAddr happyActOffsets st- (off_i) = (off Happy_GHC_Exts.+# i)- check = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))- then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==# i)- else False- (action)+ happyShift new_state i tk st+ where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))+ where off = indexShortOffAddr happyActOffsets st+ off_i = (off Happy_GHC_Exts.+# i)+ check = if GTE(off_i,(0# :: Happy_GHC_Exts.Int#))+ then EQ(indexShortOffAddr happyCheck off_i, i)+ else False+ action | check = indexShortOffAddr happyTable off_i | otherwise = indexShortOffAddr happyDefActions st -{-# LINE 130 "templates/GenericTemplate.hs" #-} - indexShortOffAddr (HappyA# arr) off =- Happy_GHC_Exts.narrow16Int# i+ Happy_GHC_Exts.narrow16Int# i where i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low) high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))@@ -1135,13 +1167,14 @@ ----------------------------------------------------------------------------- -- HappyState data type (not arrays) -{-# LINE 163 "templates/GenericTemplate.hs" #-} +{-# LINE 170 "templates/GenericTemplate.hs" #-}+ ----------------------------------------------------------------------------- -- Shifting a token happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =- let (i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in+ let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in -- trace "shifting the error token" $ happyDoAction i tk new_state (HappyCons (st) (sts)) (stk) @@ -1177,30 +1210,33 @@ = happyFail 0# tk st sts stk happyReduce k nt fn j tk st sts stk = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of- sts1@((HappyCons (st1@(action)) (_))) ->- let r = fn stk in -- it doesn't hurt to always seq here...- happyDoSeq r (happyGoto nt j tk st1 sts1 r)+ sts1@((HappyCons (st1@(action)) (_))) ->+ let r = fn stk in -- it doesn't hurt to always seq here...+ happyDoSeq r (happyGoto nt j tk st1 sts1 r) happyMonadReduce k nt fn 0# tk st sts stk = happyFail 0# tk st sts stk happyMonadReduce k nt fn j tk st sts stk =- happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))- where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))- drop_stk = happyDropStk k stk+ case happyDrop k (HappyCons (st) (sts)) of+ sts1@((HappyCons (st1@(action)) (_))) ->+ let drop_stk = happyDropStk k stk in+ happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk)) happyMonad2Reduce k nt fn 0# tk st sts stk = happyFail 0# tk st sts stk happyMonad2Reduce k nt fn j tk st sts stk =- happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))- where (sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))- drop_stk = happyDropStk k stk+ case happyDrop k (HappyCons (st) (sts)) of+ sts1@((HappyCons (st1@(action)) (_))) ->+ let drop_stk = happyDropStk k stk - (off) = indexShortOffAddr happyGotoOffsets st1- (off_i) = (off Happy_GHC_Exts.+# nt)- (new_state) = indexShortOffAddr happyTable off_i+ off = indexShortOffAddr happyGotoOffsets st1+ off_i = (off Happy_GHC_Exts.+# nt)+ new_state = indexShortOffAddr happyTable off_i + in+ happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk)) happyDrop 0# l = l happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t@@ -1215,9 +1251,9 @@ happyGoto nt j tk st = {- nothing -} happyDoAction j tk new_state- where (off) = indexShortOffAddr happyGotoOffsets st- (off_i) = (off Happy_GHC_Exts.+# nt)- (new_state) = indexShortOffAddr happyTable off_i+ where off = indexShortOffAddr happyGotoOffsets st+ off_i = (off Happy_GHC_Exts.+# nt)+ new_state = indexShortOffAddr happyTable off_i @@ -1226,9 +1262,10 @@ -- Error recovery (0# is the error token) -- parse error if we are in recovery and we fail again-happyFail 0# tk old_st _ stk =--- trace "failing" $ - happyError_ tk+happyFail 0# tk old_st _ stk@(x `HappyStk` _) =+ let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in+-- trace "failing" $ + happyError_ i tk {- We don't need state discarding for our restricted implementation of "error". In fact, it can cause some bogus parses, so I've disabled it@@ -1236,16 +1273,16 @@ -- discard a state happyFail 0# tk old_st (HappyCons ((action)) (sts)) - (saved_tok `HappyStk` _ `HappyStk` stk) =--- trace ("discarding state, depth " ++ show (length stk)) $- happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))+ (saved_tok `HappyStk` _ `HappyStk` stk) =+-- trace ("discarding state, depth " ++ show (length stk)) $+ happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk)) -} -- Enter error recovery: generate an error token, -- save the old token and carry on. happyFail i tk (action) sts stk = -- trace "entering error recovery" $- happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)+ happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk) -- Internal happy errors: @@ -1263,9 +1300,9 @@ ----------------------------------------------------------------------------- -- Seq-ing. If the --strict flag is given, then Happy emits --- happySeq = happyDoSeq+-- happySeq = happyDoSeq -- otherwise it emits--- happySeq = happyDontSeq+-- happySeq = happyDontSeq happyDoSeq, happyDontSeq :: a -> b -> b happyDoSeq a b = a `seq` b@@ -1295,3 +1332,4 @@ {-# NOINLINE happyFail #-} -- end of Happy Template.+
doc/Atom.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Atom-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 113 126+%%BoundingBox: 0 0 106 116 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,75 +78,76 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 20 88.50 62.55 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 26 94.17 m(Nonterminal) show- 20 66.50 36.45 17 1 255 255 255 Box- 26 72.17 m(String) show- 20 44.50 15.33 17 1 255 255 255 RBox- 26 50.17 m(\() show+ 0 0 0 scol 20 80.50 52.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 86.17 m(Nonterminal) show+ 20 60.50 31.56 15 1 255 255 255 Box+ 26 66.17 m(String) show+ 20 40.50 14.66 15 1 255 255 255 RBox+ 26 46.17 m(\() show 0.30 slw-n 35.33 53 m 5 0 rl s-n 38.33 55 m 2 -2 rl -2 -2 rl s- 40.33 44.50 33.66 17 1 255 255 255 Box- 46.33 50.17 m(Term) show+n 34.66 48 m 5 0 rl s+n 37.66 50 m 2 -2 rl -2 -2 rl s+ 39.66 40.50 29.32 15 1 255 255 255 Box+ 45.66 46.17 m(Term) show 0.30 slw-n 73.99 53 m 5 0 rl s-n 76.99 55 m 2 -2 rl -2 -2 rl s- 78.99 44.50 15.33 17 1 255 255 255 RBox- 84.99 50.17 m(\)) show- 20 22.50 15.33 17 1 255 255 255 RBox- 26 28.17 m([) show+n 68.98 48 m 5 0 rl s+n 71.98 50 m 2 -2 rl -2 -2 rl s+ 73.98 40.50 14.66 15 1 255 255 255 RBox+ 79.98 46.17 m(\)) show+ 20 20.50 14.66 15 1 255 255 255 RBox+ 26 26.17 m([) show 0.30 slw-n 35.33 31 m 5 0 rl s-n 38.33 33 m 2 -2 rl -2 -2 rl s- 40.33 22.50 33.66 17 1 255 255 255 Box- 46.33 28.17 m(Term) show+n 34.66 28 m 5 0 rl s+n 37.66 30 m 2 -2 rl -2 -2 rl s+ 39.66 20.50 29.32 15 1 255 255 255 Box+ 45.66 26.17 m(Term) show 0.30 slw-n 73.99 31 m 5 0 rl s-n 76.99 33 m 2 -2 rl -2 -2 rl s- 78.99 22.50 15.33 17 1 255 255 255 RBox- 84.99 28.17 m(]) show- 20 0.50 16.80 17 1 255 255 255 RBox+n 68.98 28 m 5 0 rl s+n 71.98 30 m 2 -2 rl -2 -2 rl s+ 73.98 20.50 14.66 15 1 255 255 255 RBox+ 79.98 26.17 m(]) show+ 20 0.50 15.84 15 1 255 255 255 RBox 26 6.17 m({) show 0.30 slw-n 36.80 9 m 5 0 rl s-n 39.80 11 m 2 -2 rl -2 -2 rl s- 41.80 0.50 33.66 17 1 255 255 255 Box- 47.80 6.17 m(Term) show+n 35.84 8 m 5 0 rl s+n 38.84 10 m 2 -2 rl -2 -2 rl s+ 40.84 0.50 29.32 15 1 255 255 255 Box+ 46.84 6.17 m(Term) show 0.30 slw-n 75.46 9 m 5 0 rl s-n 78.46 11 m 2 -2 rl -2 -2 rl s- 80.46 0.50 16.80 17 1 255 255 255 RBox- 86.46 6.17 m(}) show+n 70.16 8 m 5 0 rl s+n 73.16 10 m 2 -2 rl -2 -2 rl s+ 75.16 0.50 15.84 15 1 255 255 255 RBox+ 81.16 6.17 m(}) show 0.30 slw-n 10 53 m 5 0 rl s-n 102.26 53 m 5 0 rl s-n 15 92 m 15 97 20 97 5 apr- 20 97 l s-n 20 9 m 15 9 15 14 5 apr- 15 14 l s-n 15 14 m 0 78 rl s-n 102.26 92 m 102.26 97 97.26 97 5 apr- 97.26 97 l s-n 97.26 9 m 102.26 9 102.26 14 5 apr- 102.26 14 l s-n 102.26 14 m 0 78 rl s-n 15 75 m 5 0 rl s-n 15 53 m 5 0 rl s-n 15 31 m 5 0 rl s-n 97.26 75 m 5 0 rl s-n 97.26 53 m 5 0 rl s-n 97.26 31 m 5 0 rl s-n 82.55 97 m 14.71 0 rl s-n 56.45 75 m 40.81 0 rl s-n 94.32 53 m 2.94 0 rl s-n 94.32 31 m 2.94 0 rl s-n 97.26 9 m 0 0 rl s-n 107.26 53 m 5 0 rl s-n 110.26 55 m 2 -2 rl -2 -2 rl s- 0 117.67 m(Atom) show-n 0 53 m 10 0 rl s-n 8 55 m 2 -2 rl -2 -2 rl s+n 10 48 m 5 0 rl s+n 96 48 m 5 0 rl s+n 15 83 m 15 88 20 88 5 apr+ 20 88 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 70 rl s+n 96 83 m 96 88 91 88 5 apr+ 91 88 l s+n 91 8 m 96 8 96 13 5 apr+ 96 13 l s+n 96 13 m 0 70 rl s+n 15 68 m 5 0 rl s+n 15 48 m 5 0 rl s+n 15 28 m 5 0 rl s+n 91 68 m 5 0 rl s+n 91 48 m 5 0 rl s+n 91 28 m 5 0 rl s+n 72.44 88 m 18.56 0 rl s+n 51.56 68 m 39.44 0 rl s+n 88.64 48 m 2.36 0 rl s+n 88.64 28 m 2.36 0 rl s+n 91 8 m 0 0 rl s+n 101 48 m 5 0 rl s+n 104 50 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 107.67 m(Atom) show+n 0 48 m 10 0 rl s+n 8 50 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/Atom_unfold.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Atom-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 139 261 %%EndComments
doc/Character.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Character-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 148 74+%%BoundingBox: 0 0 138 69 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,49 +78,50 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 20 36 48.64 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 26 41.67 m(character) show- 35 14 14.78 17 1 255 255 255 RBox- 41 19.67 m(\\) show+ 0 0 0 scol 20 33 41.31 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 38.67 m(character) show+ 35 13 14.22 15 1 255 255 255 RBox+ 41 18.67 m(\\) show 0.30 slw-n 33 24.50 m 2 -2 rl -2 -2 rl s-n 20 9 m 44.78 0 rl s-n 20 9 m 25 9 25 14 5 apr- 25 14 l s-n 25 17.50 m 25 22.50 30 22.50 5 apr- 30 22.50 l s-n 30 22.50 m 5 0 rl s-n 64.78 9 m 59.78 9 59.78 14 5 apr- 59.78 14 l s-n 59.78 17.50 m 59.78 22.50 54.78 22.50 5 apr- 54.78 22.50 l s-n 49.78 22.50 m 5 0 rl s-n 25 14 m 0 3.50 rl s-n 59.78 14 m 0 3.50 rl s-n 64.78 9 m 5 0 rl s-n 67.78 11 m 2 -2 rl -2 -2 rl s- 69.78 0.50 63.08 17 1 255 255 255 Box- 75.78 6.17 m(anycharacter) show+n 33 22.50 m 2 -2 rl -2 -2 rl s+n 20 8 m 44.22 0 rl s+n 20 8 m 25 8 25 13 5 apr+ 25 13 l s+n 25 15.50 m 25 20.50 30 20.50 5 apr+ 30 20.50 l s+n 30 20.50 m 5 0 rl s+n 64.22 8 m 59.22 8 59.22 13 5 apr+ 59.22 13 l s+n 59.22 15.50 m 59.22 20.50 54.22 20.50 5 apr+ 54.22 20.50 l s+n 49.22 20.50 m 5 0 rl s+n 25 13 m 0 2.50 rl s+n 59.22 13 m 0 2.50 rl s+n 64.22 8 m 5 0 rl s+n 67.22 10 m 2 -2 rl -2 -2 rl s+ 69.22 0.50 52.86 15 1 255 255 255 Box+ 75.22 6.17 m(anycharacter) show 0.30 slw-n 10 26.75 m 5 0 rl s-n 137.86 26.75 m 5 0 rl s-n 15 39.50 m 15 44.50 20 44.50 5 apr- 20 44.50 l s-n 20 9 m 15 9 15 14 5 apr- 15 14 l s-n 15 14 m 0 25.50 rl s-n 137.86 39.50 m 137.86 44.50 132.86 44.50 5 apr- 132.86 44.50 l s-n 132.86 9 m 137.86 9 137.86 14 5 apr- 137.86 14 l s-n 137.86 14 m 0 25.50 rl s-n 68.64 44.50 m 64.22 0 rl s-n 132.86 9 m 0 0 rl s-n 142.86 26.75 m 5 0 rl s-n 145.86 28.75 m 2 -2 rl -2 -2 rl s- 0 65.17 m(Character) show-n 0 26.75 m 10 0 rl s-n 8 28.75 m 2 -2 rl -2 -2 rl s+n 10 24.25 m 5 0 rl s+n 127.08 24.25 m 5 0 rl s+n 15 35.50 m 15 40.50 20 40.50 5 apr+ 20 40.50 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 22.50 rl s+n 127.08 35.50 m 127.08 40.50 122.08 40.50 5 apr+ 122.08 40.50 l s+n 122.08 8 m 127.08 8 127.08 13 5 apr+ 127.08 13 l s+n 127.08 13 m 0 22.50 rl s+n 61.31 40.50 m 60.77 0 rl s+n 122.08 8 m 0 0 rl s+n 132.08 24.25 m 5 0 rl s+n 135.08 26.25 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 60.17 m(Character) show+n 0 24.25 m 10 0 rl s+n 8 26.25 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/ExtAtom.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: ExtAtom-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 130 82+%%BoundingBox: 0 0 120 76 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,50 +78,51 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 20 44.50 34.78 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 26 50.17 m(Atom) show- 20 22.50 34.78 17 1 255 255 255 Box- 26 28.17 m(Atom) show+ 0 0 0 scol 20 40.50 30.22 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 46.17 m(Atom) show+ 20 20.50 30.22 15 1 255 255 255 Box+ 26 26.17 m(Atom) show 0.30 slw-n 54.78 31 m 5 0 rl s-n 57.78 33 m 2 -2 rl -2 -2 rl s- 59.78 22.50 14.78 17 1 255 255 255 RBox- 65.78 28.17 m(/) show+n 50.22 28 m 5 0 rl s+n 53.22 30 m 2 -2 rl -2 -2 rl s+ 55.22 20.50 14.22 15 1 255 255 255 RBox+ 61.22 26.17 m(/) show 0.30 slw-n 74.56 31 m 5 0 rl s-n 77.56 33 m 2 -2 rl -2 -2 rl s- 79.56 22.50 34.78 17 1 255 255 255 Box- 85.56 28.17 m(Atom) show- 20 0.50 34.78 17 1 255 255 255 Box+n 69.44 28 m 5 0 rl s+n 72.44 30 m 2 -2 rl -2 -2 rl s+ 74.44 20.50 30.22 15 1 255 255 255 Box+ 80.44 26.17 m(Atom) show+ 20 0.50 30.22 15 1 255 255 255 Box 26 6.17 m(Atom) show 0.30 slw-n 54.78 9 m 5 0 rl s-n 57.78 11 m 2 -2 rl -2 -2 rl s- 59.78 0.50 17.64 17 1 255 255 255 RBox- 65.78 6.17 m(+) show+n 50.22 8 m 5 0 rl s+n 53.22 10 m 2 -2 rl -2 -2 rl s+ 55.22 0.50 16.51 15 1 255 255 255 RBox+ 61.22 6.17 m(+) show 0.30 slw-n 10 31 m 5 0 rl s-n 119.34 31 m 5 0 rl s-n 15 48 m 15 53 20 53 5 apr- 20 53 l s-n 20 9 m 15 9 15 14 5 apr- 15 14 l s-n 15 14 m 0 34 rl s-n 119.34 48 m 119.34 53 114.34 53 5 apr- 114.34 53 l s-n 114.34 9 m 119.34 9 119.34 14 5 apr- 119.34 14 l s-n 119.34 14 m 0 34 rl s-n 15 31 m 5 0 rl s-n 114.34 31 m 5 0 rl s-n 54.78 53 m 59.56 0 rl s-n 114.34 31 m 0 0 rl s-n 77.42 9 m 36.92 0 rl s-n 124.34 31 m 5 0 rl s-n 127.34 33 m 2 -2 rl -2 -2 rl s- 0 73.67 m(ExtAtom) show-n 0 31 m 10 0 rl s-n 8 33 m 2 -2 rl -2 -2 rl s+n 10 28 m 5 0 rl s+n 109.66 28 m 5 0 rl s+n 15 43 m 15 48 20 48 5 apr+ 20 48 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 30 rl s+n 109.66 43 m 109.66 48 104.66 48 5 apr+ 104.66 48 l s+n 104.66 8 m 109.66 8 109.66 13 5 apr+ 109.66 13 l s+n 109.66 13 m 0 30 rl s+n 15 28 m 5 0 rl s+n 104.66 28 m 5 0 rl s+n 50.22 48 m 54.44 0 rl s+n 104.66 28 m 0 0 rl s+n 71.73 8 m 32.93 0 rl s+n 114.66 28 m 5 0 rl s+n 117.66 30 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 67.67 m(ExtAtom) show+n 0 28 m 10 0 rl s+n 8 30 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/Factor.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Factor-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 84 43+%%BoundingBox: 0 0 77 41 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,28 +78,29 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 20 0.50 48.67 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 20 0.50 41.33 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont 26 6.17 m(ExtAtom) show 0.30 slw-n 10 9 m 10 0 rl s-n 68.67 9 m 10 0 rl s-n 20 9 m 15 9 15 14 5 apr- 15 14 l s-n 15 17.50 m 15 22.50 20 22.50 5 apr- 20 22.50 l s-n 68.67 9 m 73.67 9 73.67 14 5 apr- 73.67 14 l s-n 73.67 17.50 m 73.67 22.50 68.67 22.50 5 apr- 68.67 22.50 l s-n 15 14 m 0 3.50 rl s-n 73.67 14 m 0 3.50 rl s-n 20 22.50 m 48.67 0 rl s-n 46.33 24.50 m -2 -2 rl 2 -2 rl s-n 78.67 9 m 5 0 rl s-n 81.67 11 m 2 -2 rl -2 -2 rl s- 0 34.67 m(Factor) show-n 0 9 m 10 0 rl s-n 8 11 m 2 -2 rl -2 -2 rl s+n 10 8 m 10 0 rl s+n 61.33 8 m 10 0 rl s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 15.50 m 15 20.50 20 20.50 5 apr+ 20 20.50 l s+n 61.33 8 m 66.33 8 66.33 13 5 apr+ 66.33 13 l s+n 66.33 15.50 m 66.33 20.50 61.33 20.50 5 apr+ 61.33 20.50 l s+n 15 13 m 0 2.50 rl s+n 66.33 13 m 0 2.50 rl s+n 20 20.50 m 41.33 0 rl s+n 42.66 22.50 m -2 -2 rl 2 -2 rl s+n 71.33 8 m 5 0 rl s+n 74.33 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 32.67 m(Factor) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/File.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: File-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 91 43+%%BoundingBox: 0 0 83 41 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,25 +78,26 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 20 5.50 55.89 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 20 5.50 47.11 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont 26 11.17 m(Production) show 0.30 slw-n 77.89 16 m -2 -2 rl 2 -2 rl s-n 10 0.50 m 75.89 0 rl s+n 69.11 15 m -2 -2 rl 2 -2 rl s+n 10 0.50 m 67.11 0 rl s n 20 0.50 m 15 0.50 15 5.50 5 apr 15 5.50 l s-n 15 9 m 15 14 20 14 5 apr- 20 14 l s-n 75.89 0.50 m 80.89 0.50 80.89 5.50 5 apr- 80.89 5.50 l s-n 80.89 9 m 80.89 14 75.89 14 5 apr- 75.89 14 l s-n 15 5.50 m 0 3.50 rl s-n 80.89 5.50 m 0 3.50 rl s-n 85.89 0.50 m 5 0 rl s-n 88.89 2.50 m 2 -2 rl -2 -2 rl s- 0 34.67 m(File) show+n 15 8 m 15 13 20 13 5 apr+ 20 13 l s+n 67.11 0.50 m 72.11 0.50 72.11 5.50 5 apr+ 72.11 5.50 l s+n 72.11 8 m 72.11 13 67.11 13 5 apr+ 67.11 13 l s+n 15 5.50 m 0 2.50 rl s+n 72.11 5.50 m 0 2.50 rl s+n 77.11 0.50 m 5 0 rl s+n 80.11 2.50 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 32.67 m(File) show n 0 0.50 m 10 0 rl s n 8 2.50 m 2 -2 rl -2 -2 rl s
doc/Nonterminal.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Nonterminal-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 126 118+%%BoundingBox: 0 0 117 109 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,57 +78,58 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 10 0.50 32.55 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 10 0.50 28.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont 16 6.17 m(letter) show 0.30 slw-n 42.55 9 m 5 0 rl s-n 45.55 11 m 2 -2 rl -2 -2 rl s- 67.55 80 32.55 17 1 255 255 255 Box- 73.55 85.67 m(letter) show- 69.76 58 30.34 17 1 255 255 255 Box- 75.76 63.67 m(digit) show- 83.10 36 17 17 1 255 255 255 RBox- 89.10 41.67 m(_) show- 85.60 14 14.50 17 1 255 255 255 RBox- 91.60 19.67 m(.) show+n 38.44 8 m 5 0 rl s+n 41.44 10 m 2 -2 rl -2 -2 rl s+ 63.44 73 28.44 15 1 255 255 255 Box+ 69.44 78.67 m(letter) show+ 65.21 53 26.67 15 1 255 255 255 Box+ 71.21 58.67 m(digit) show+ 75.88 33 16 15 1 255 255 255 RBox+ 81.88 38.67 m(_) show+ 77.88 13 14 15 1 255 255 255 RBox+ 83.88 18.67 m(.) show 0.30 slw-n 57.55 55.50 m 5 0 rl s-n 105.10 55.50 m 5 0 rl s-n 62.55 83.50 m 62.55 88.50 67.55 88.50 5 apr- 67.55 88.50 l s-n 67.55 22.50 m 62.55 22.50 62.55 27.50 5 apr- 62.55 27.50 l s-n 62.55 27.50 m 0 56 rl s-n 105.10 83.50 m 105.10 88.50 100.10 88.50 5 apr- 100.10 88.50 l s-n 100.10 22.50 m 105.10 22.50 105.10 27.50 5 apr- 105.10 27.50 l s-n 105.10 27.50 m 0 56 rl s-n 62.55 66.50 m 5 0 rl s-n 62.55 44.50 m 5 0 rl s-n 100.10 66.50 m 5 0 rl s-n 100.10 44.50 m 5 0 rl s-n 67.55 88.50 m 0 0 rl s-n 67.55 66.50 m 2.21 0 rl s-n 67.55 44.50 m 15.55 0 rl s-n 67.55 22.50 m 18.05 0 rl s-n 112.10 57.50 m -2 -2 rl 2 -2 rl s-n 47.55 9 m 72.55 0 rl s-n 57.55 9 m 52.55 9 52.55 14 5 apr- 52.55 14 l s-n 52.55 50.50 m 52.55 55.50 57.55 55.50 5 apr- 57.55 55.50 l s-n 110.10 9 m 115.10 9 115.10 14 5 apr- 115.10 14 l s-n 115.10 50.50 m 115.10 55.50 110.10 55.50 5 apr- 110.10 55.50 l s-n 52.55 14 m 0 36.50 rl s-n 115.10 14 m 0 36.50 rl s-n 120.10 9 m 5 0 rl s-n 123.10 11 m 2 -2 rl -2 -2 rl s- 0 109.17 m(Nonterminal) show-n 0 9 m 10 0 rl s-n 8 11 m 2 -2 rl -2 -2 rl s+n 53.44 50.50 m 5 0 rl s+n 96.88 50.50 m 5 0 rl s+n 58.44 75.50 m 58.44 80.50 63.44 80.50 5 apr+ 63.44 80.50 l s+n 63.44 20.50 m 58.44 20.50 58.44 25.50 5 apr+ 58.44 25.50 l s+n 58.44 25.50 m 0 50 rl s+n 96.88 75.50 m 96.88 80.50 91.88 80.50 5 apr+ 91.88 80.50 l s+n 91.88 20.50 m 96.88 20.50 96.88 25.50 5 apr+ 96.88 25.50 l s+n 96.88 25.50 m 0 50 rl s+n 58.44 60.50 m 5 0 rl s+n 58.44 40.50 m 5 0 rl s+n 91.88 60.50 m 5 0 rl s+n 91.88 40.50 m 5 0 rl s+n 63.44 80.50 m 0 0 rl s+n 63.44 60.50 m 1.77 0 rl s+n 63.44 40.50 m 12.44 0 rl s+n 63.44 20.50 m 14.44 0 rl s+n 103.88 52.50 m -2 -2 rl 2 -2 rl s+n 43.44 8 m 68.44 0 rl s+n 53.44 8 m 48.44 8 48.44 13 5 apr+ 48.44 13 l s+n 48.44 45.50 m 48.44 50.50 53.44 50.50 5 apr+ 53.44 50.50 l s+n 101.88 8 m 106.88 8 106.88 13 5 apr+ 106.88 13 l s+n 106.88 45.50 m 106.88 50.50 101.88 50.50 5 apr+ 101.88 50.50 l s+n 48.44 13 m 0 32.50 rl s+n 106.88 13 m 0 32.50 rl s+n 111.88 8 m 5 0 rl s+n 114.88 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 100.17 m(Nonterminal) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/Production.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Production-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 231 52+%%BoundingBox: 0 0 210 49 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,48 +78,49 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 10 0.50 62.55 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 10 0.50 52.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont 16 6.17 m(Nonterminal) show 0.30 slw-n 72.55 9 m 5 0 rl s-n 75.55 11 m 2 -2 rl -2 -2 rl s- 92.55 14 36.45 17 1 255 255 255 Box- 98.55 19.67 m(String) show+n 62.44 8 m 5 0 rl s+n 65.44 10 m 2 -2 rl -2 -2 rl s+ 82.44 13 31.56 15 1 255 255 255 Box+ 88.44 18.67 m(String) show 0.30 slw-n 90.55 24.50 m 2 -2 rl -2 -2 rl s-n 77.55 9 m 66.45 0 rl s-n 77.55 9 m 82.55 9 82.55 14 5 apr- 82.55 14 l s-n 82.55 17.50 m 82.55 22.50 87.55 22.50 5 apr- 87.55 22.50 l s-n 87.55 22.50 m 5 0 rl s-n 144 9 m 139 9 139 14 5 apr- 139 14 l s-n 139 17.50 m 139 22.50 134 22.50 5 apr- 134 22.50 l s-n 129 22.50 m 5 0 rl s-n 82.55 14 m 0 3.50 rl s-n 139 14 m 0 3.50 rl s-n 144 9 m 5 0 rl s-n 147 11 m 2 -2 rl -2 -2 rl s- 149 0.50 17.64 17 1 255 255 255 RBox- 155 6.17 m(=) show+n 80.44 22.50 m 2 -2 rl -2 -2 rl s+n 67.44 8 m 61.56 0 rl s+n 67.44 8 m 72.44 8 72.44 13 5 apr+ 72.44 13 l s+n 72.44 15.50 m 72.44 20.50 77.44 20.50 5 apr+ 77.44 20.50 l s+n 77.44 20.50 m 5 0 rl s+n 129 8 m 124 8 124 13 5 apr+ 124 13 l s+n 124 15.50 m 124 20.50 119 20.50 5 apr+ 119 20.50 l s+n 114 20.50 m 5 0 rl s+n 72.44 13 m 0 2.50 rl s+n 124 13 m 0 2.50 rl s+n 129 8 m 5 0 rl s+n 132 10 m 2 -2 rl -2 -2 rl s+ 134 0.50 16.51 15 1 255 255 255 RBox+ 140 6.17 m(=) show 0.30 slw-n 166.64 9 m 5 0 rl s-n 169.64 11 m 2 -2 rl -2 -2 rl s- 171.64 0.50 33.66 17 1 255 255 255 Box- 177.64 6.17 m(Term) show+n 150.51 8 m 5 0 rl s+n 153.51 10 m 2 -2 rl -2 -2 rl s+ 155.51 0.50 29.32 15 1 255 255 255 Box+ 161.51 6.17 m(Term) show 0.30 slw-n 205.30 9 m 5 0 rl s-n 208.30 11 m 2 -2 rl -2 -2 rl s- 210.30 0.50 14.78 17 1 255 255 255 RBox- 216.30 6.17 m(;) show+n 184.83 8 m 5 0 rl s+n 187.83 10 m 2 -2 rl -2 -2 rl s+ 189.83 0.50 14.22 15 1 255 255 255 RBox+ 195.83 6.17 m(;) show 0.30 slw-n 225.08 9 m 5 0 rl s-n 228.08 11 m 2 -2 rl -2 -2 rl s- 0 43.17 m(Production) show-n 0 9 m 10 0 rl s-n 8 11 m 2 -2 rl -2 -2 rl s+n 204.05 8 m 5 0 rl s+n 207.05 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 40.17 m(Production) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/Production_unfold.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Production-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 354 109 %%EndComments
doc/RAtom.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: AvantGarde-Book Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman %%Title: RAtom-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 121 100 %%EndComments
doc/RAtom_unfold.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: RAtom-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 198 126 %%EndComments
doc/RExtAtom.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: AvantGarde-Book Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman %%Title: RExtAtom-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 128 92 %%EndComments
doc/RFactor.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: AvantGarde-Book Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman %%Title: RFactor-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 90 42 %%EndComments
doc/Regexp.eps view
@@ -1,7 +1,7 @@-%!PS-Adobe-1.0-%%DocumentFonts: AvantGarde-Book Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman %%Title: Regexp-%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter) %%Pages: 0 %%BoundingBox: 0 0 130 58 %%EndComments
doc/String.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: String-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 129 52+%%BoundingBox: 0 0 119 49 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,36 +78,37 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 10 0.50 16.08 17 1 255 255 255 RBox-/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 10 0.50 15.26 15 1 255 255 255 RBox+/Times-Roman findfont 8 scalefont setfont 16 6.17 m(") show 0.30 slw-n 26.08 9 m 5 0 rl s-n 29.08 11 m 2 -2 rl -2 -2 rl s- 41.08 14 50.87 17 1 255 255 255 Box- 47.08 19.67 m(Character) show+n 25.26 8 m 5 0 rl s+n 28.26 10 m 2 -2 rl -2 -2 rl s+ 40.26 13 43.09 15 1 255 255 255 Box+ 46.26 18.67 m(Character) show 0.30 slw-n 93.95 24.50 m -2 -2 rl 2 -2 rl s-n 31.08 9 m 70.87 0 rl s-n 41.08 9 m 36.08 9 36.08 14 5 apr- 36.08 14 l s-n 36.08 17.50 m 36.08 22.50 41.08 22.50 5 apr- 41.08 22.50 l s-n 91.95 9 m 96.95 9 96.95 14 5 apr- 96.95 14 l s-n 96.95 17.50 m 96.95 22.50 91.95 22.50 5 apr- 91.95 22.50 l s-n 36.08 14 m 0 3.50 rl s-n 96.95 14 m 0 3.50 rl s-n 101.95 9 m 5 0 rl s-n 104.95 11 m 2 -2 rl -2 -2 rl s- 106.95 0.50 16.08 17 1 255 255 255 RBox- 112.95 6.17 m(") show+n 85.35 22.50 m -2 -2 rl 2 -2 rl s+n 30.26 8 m 63.09 0 rl s+n 40.26 8 m 35.26 8 35.26 13 5 apr+ 35.26 13 l s+n 35.26 15.50 m 35.26 20.50 40.26 20.50 5 apr+ 40.26 20.50 l s+n 83.35 8 m 88.35 8 88.35 13 5 apr+ 88.35 13 l s+n 88.35 15.50 m 88.35 20.50 83.35 20.50 5 apr+ 83.35 20.50 l s+n 35.26 13 m 0 2.50 rl s+n 88.35 13 m 0 2.50 rl s+n 93.35 8 m 5 0 rl s+n 96.35 10 m 2 -2 rl -2 -2 rl s+ 98.35 0.50 15.26 15 1 255 255 255 RBox+ 104.35 6.17 m(") show 0.30 slw-n 123.03 9 m 5 0 rl s-n 126.03 11 m 2 -2 rl -2 -2 rl s- 0 43.17 m(String) show-n 0 9 m 10 0 rl s-n 8 11 m 2 -2 rl -2 -2 rl s+n 113.61 8 m 5 0 rl s+n 116.61 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 40.17 m(String) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
doc/Term.eps view
@@ -1,9 +1,9 @@-%!PS-Adobe-1.0-%%DocumentFonts: Times-Roman+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman %%Title: Term-%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter %%Pages: 0-%%BoundingBox: 0 0 73 60+%%BoundingBox: 0 0 68 56 %%EndComments /$Ebnf2psDict 100 dict def $Ebnf2psDict begin@@ -78,31 +78,32 @@ %%EndProlog $Ebnf2psBegin- 0 0 0 scol 20 0.50 37.55 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 20 0.50 32.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont 26 6.17 m(Factor) show- 31.77 22.50 14 17 1 255 255 255 RBox- 37.77 28.17 m(|) show+ 29.42 20.50 13.60 15 1 255 255 255 RBox+ 35.42 26.17 m(|) show 0.30 slw-n 47.77 33 m -2 -2 rl 2 -2 rl s-n 10 9 m 10 0 rl s-n 57.55 9 m 10 0 rl s-n 20 31 m 11.77 0 rl s-n 45.77 31 m 11.77 0 rl s-n 20 9 m 15 9 15 14 5 apr- 15 14 l s-n 15 26 m 15 31 20 31 5 apr- 20 31 l s-n 57.55 9 m 62.55 9 62.55 14 5 apr- 62.55 14 l s-n 62.55 26 m 62.55 31 57.55 31 5 apr- 57.55 31 l s-n 15 14 m 0 12 rl s-n 62.55 14 m 0 12 rl s-n 67.55 9 m 5 0 rl s-n 70.55 11 m 2 -2 rl -2 -2 rl s- 0 51.67 m(Term) show-n 0 9 m 10 0 rl s-n 8 11 m 2 -2 rl -2 -2 rl s+n 45.02 30 m -2 -2 rl 2 -2 rl s+n 10 8 m 10 0 rl s+n 52.44 8 m 10 0 rl s+n 20 28 m 9.42 0 rl s+n 43.02 28 m 9.42 0 rl s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 23 m 15 28 20 28 5 apr+ 20 28 l s+n 52.44 8 m 57.44 8 57.44 13 5 apr+ 57.44 13 l s+n 57.44 23 m 57.44 28 52.44 28 5 apr+ 52.44 28 l s+n 15 13 m 0 10 rl s+n 57.44 13 m 0 10 rl s+n 62.44 8 m 5 0 rl s+n 65.44 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 47.67 m(Term) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s $Ebnf2psEnd
+ doc/doc.pdf view
binary file changed (absent → 235307 bytes)
doc/doc.ps view
@@ -1,3977 +1,8654 @@ %!PS-Adobe-2.0-%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software-%%Title: doc.dvi-%%CreationDate: Wed May 29 23:00:09 1996-%%Pages: 8-%%PageOrder: Ascend-%%BoundingBox: 0 0 596 842-%%EndComments-%DVIPSCommandLine: dvips -Phpl4 -o doc.ps doc.dvi-%DVIPSParameters: dpi=600, compressed, comments removed-%DVIPSSource: TeX output 1996.05.29:2258-%%BeginProcSet: texc.pro-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict-/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p-a}B /bos{/SS save N}B /eos{SS restore}B end-%%EndProcSet-%%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 /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 /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-TeXDict begin 39158280 55380996 1000 600 600-(/afs/informatik.uni-tuebingen.de/home/pluemick/tmp/walterm/hiwi/1.01/Ebnf2ps/doc.dvi)-@start /Fa 12 117 df<93381FFFC093B512FC030314FF923A0FF8007F80DB1FE0EB0F-C04B48EB3FE04B48137F4BC7FC4A15FFA24B15C01403F07F80F01E004A4891C7FCA4140F-5DA3013FB712FE5BA26D5E903A001FF00007A2170F023F5D5DA2171F60A2147F4B133F60-A302FF147F4B5CA317FF495EF083E092C7FC5EF007C0A25B4AED0F80A2F01F00010780EF-7F3E4AEC3FFC715AEF07E0010F92C8FC5CA2120F383F8FF0EA7FDF00FF5BA25C139FEBBF-80013FCBFCEAFC7EEA7FFC6C5AEA07C03B4C81BA38>28 D<EC3F80903801FFE00107EBF9-E090391FE0FFF890383FC07F9038FF803F48EB001F485A495C1207485A153F001F5D5B12-3F157F007F5D5BA215FF00FF5D5BA25C93C7FC0180EC07C0A25C9238FE0F80A3007F0107-EB1F00140F003F011F133EEBC03F261FE0FC5B3A0FFFF87FF800039038E03FF03A007F00-0FC02A2777A531>97 D<EC0FF0ECFFFC010313FF90390FF81F8090393FE00FC090387FC0-1F9038FF803F48EB007F484813FF485A120F5B001F158049EB7F00003F141892C7FC127F-5BA312FF5BA45BA3ED0180ED03C0007FEC07E0150F6C6CEB1FC0ED7F803A1FE001FE0039-0FF80FFC0003B512F0C614C0D91FFCC7FC232777A52C>99 D<EC0FF0ECFFFE0103EBFF80-90390FF81FC090383FE00F90397F8007E0EBFF005A485A485A120F49130F001F15C04848-131FED7F80913801FF00007FEB3FFC90B512F015C002F0C7FCD8FFE0C8FC5BA45BA3ED01-80007FEC03C0ED07E06D130F003FEC1FC06C6CEB7F80913801FE003907F80FFC6CB512F0-C614C0D91FFCC7FC232777A52C>101 D<167E923803FFC04B13E092381FE3F092383FC7-F816CFED7F9F15FFA217F04A131F17E0EE078093C7FC5C5DA514075D011FB612804915C0-A26D15809026000FF8C7FCA5141F5DA4143F5DA5147F5DA414FF5DA45B92C8FCA45B5CA3-5C1307120F383F87F8EA7FC712FFEBCFF0A2EB8FE0EB9FC0EB1F80D8FC3FC9FCEA7FFEEA-1FF8EA07E02D4C81BA21>I<143C147F495A15805B1500A25C6D5AEB007091C7FCAB133F-EBFFC000037F3807C7F0380F87F8EA1F07A2EA3E0FA2127C131F5C12FCEAF83F00005B13-7F5CA213FF5CA25A91C7FC5A5BEC0F801207EBFC1F000F140013F85C143E143CEBF07C00-075BEBF1F06CB45AC65B013FC7FC193C79BA1E>105 D<EB07F8EA03FFA25A7E38001FF0-A2133FA214E0A2137FA214C0A213FFA21480A25AA21400A25AA25BA21207A25BA2120FA2-5BA2121FA25BA2123FA25BA2127FA2EBC3E0A212FF13C7EB87C0A3EB8F80A2387F9F0012-3FEA1FFE6C5AEA03F0153B78B919>108 D<01FCD90FF8EB0FF0D803FFD93FFEEB7FFC48-01C0B50081B5FC3E0F9FE3F03FC3F07F80271F0FE7C0D9EFC07F913BFF801FFF003F003E-02005B49484A80007E5B007C495C4A5C043F147FD8F83F4B5C5C1200047F14FF017F604A-5CA204FF5B01FF95C7FC4A1480604B5D48170702000200EC0F8019FC4B020F131F4806F8-1300495C1A3E030715F0000761495C62953807F1F0494A6DB45A494A6D1380D801E0D901-E0D9007EC7FC492779A54E>I<01FCEB0FF0D803FFEB7FFC4801C1B5FC3B0F9FE3F07F80-271F0FEFC07F9138FF003F003E5B494880127E007C5B5C167FD8F83F5D5C120016FF017F-5D5CA25D01FF92C7FC14805D5E4814070200EC0F8016FC030F131F4803F813005B173E16-F000075E5B5F923807F1F0496DB45A496D1380D801E0D9007EC7FC312779A536>I<EC0F-F891B5FC010314C090390FF81FF090393FE007F890397FC003FCD9FF8013FE48EB000148-4814FF485A120F5B121F5B123F5D127F5BA25D00FF15FE5BA2ED0FFCA25BED1FF816F015-3F16E0007FEC7FC016806C6CEBFF004A5A391FE007FC390FF81FF00003B512C0C691C7FC-EB1FF0282777A531>I<01FCEB7F803A03FF01FFF04801C713FC3A0F9FEFC0FE3A1F0FFF-003F4A13FF003E495A131F007E495A007C13F0A216FED8F83FEB01FC9138E000F0000015-00A2137F5CA313FF5CA35A91C8FCA35A5BA312075BA35B5BEA01E0282779A52A>114-D<14F0EB03F8130780495AA3131FA25CA2133FA25CA2137FA2B6128015C0A21580C6EB80-00A25AA291C7FCA25AA25BA21207A25BA2120FA25BA2121FA29038F007C0A2003F130F15-80EBE01F1500143E147E147C001F5B380FE3F06CB45A6C1380C648C7FC1A3778B520>-116 D E /Fb 1 14 df<923803FFC0033F13FC4AB67E020715E0913A1FFE007FF8DA7FE0-EB07FE4AC87ED903FCED3FC0D907F0ED0FE0D90FC0ED03F049486F7E49CA7E017E177E49-8349834848EF0F80000319C04917074848EF03E0000F19F049170148CC12F8A2001E1978-003E197CA2003C193C007C193EA20078191EA300F8191FA248190FAA6C191FA20078191E-A3007C193EA2003C193C003E197CA2001E1978001F19F8A26C6CEF01F06D1703000719E0-6C6CEF07C06D170F000119806C6CEF1F006D5F017E177E6D5F6D6C4B5A6D6C4B5AD907F0-ED0FE0D903FCED3FC0D900FF03FFC7FCDA7FE0EB07FEDA1FFEEB7FF80207B612E0020115-80DA003F01FCC8FC030313C0484E7BBB53>13 D E /Fc 46 123-df<913803FFC0027F13F00103B512FC010FEB00FED93FF8133FD97FE0EBFF8049485A5A-1480484A13C04A6C1380A36F1300167E93C7FCA592383FFFC0B8FCA4000390C7FCB3ABB5-D8FC3F13FFA4303A7EB935>28 D<ED0380B3ADBA12FEA3C8D80380C8FCB3AD3F417BB44A->43 D<B61280A819087F9620>45 D<ED03E04B7EA24B7EA34B7EA24B7EA34B7EA292B57E-A34A8015F302038015E1A202078015C0A24A487F167F021F80ED003FA24A80023E131F02-7E80027C7FA202FC814A7F0101824A7F91B7FC4982A2498202C0C7FCA2010F824A147F01-1F8291C8123FA24982013E151F017E82017C8113FEB500FC010FB61280A4413A7DB948>-65 D<B87E17F817FE717E28007FF000077F04017F707F717E173F84A2717EA74D5AA260-177F4D5A4C5B4C1380041F90C7FC91B612F883EFFF809126F0000113E0706C7EEF3FFC71-7E170F84711380A319C0A71980A25F19004D5A173FEFFFFC04035BB912E0604DC7FC17E0-3A397CB844>I<DB3FFCEB01C00203B5EAC003021FECF00791B6EAFC0F01039039FC00FF-3F4901C0EB1FFFD91FFEC77E49481403D97FF080494880485B48177F4849153F4890C9FC-181F485A180F123F5B1807127FA24993C7FC12FFAD127F7FF003C0123FA27F001F1707A2-6C6C1780180F6C6D16006C6D5D6C173E6C6D157ED97FF85D6D6C4A5A6DB44A5A010701C0-EB0FE06D01FCEBFF80010090B548C7FC021F14F8020314E09126003FFEC8FC3A3B7BB945->I<B8FC17F017FE717E28007FF8000F13E004007FEF3FFC717EEF07FF711380A27113C0-7113E0A2F07FF0A219F8183FA219FCA419FEAC19FCA419F8187FA219F018FF19E04D13C0-A24D13804D13004D5AEF3FFCEFFFF8040F13E0B912804DC7FC17F894C8FC3F397CB849>-I<B912C0A318E03A007FF80003EE007F171F170F1707170318F01701A21700A21678A218-78A3180016F8A21501150791B5FCA4ECF80715011500A21678181EA3183CA293C7FCA218-7CA2187818F8A21701A2EF03F01707171F177FEE03FFB9FC18E0A337397CB83F>I<B9FC-A318803A007FF8000F1601EE007F173F171F170FEF07C0A31703A316F0EF01E0A394C7FC-A21501A21503150F91B5FCA4ECF80F15031501A21500A693C8FCADB7FCA433397CB83C>-I<DB3FFCEB03800207B5EA8007023FECF00F91B6EAFC1F01039039F801FE7F010F9039C0-003FFF4948C77E49481407D9FFF0804849804A80485B48177F4890C9123FA2485A181F48-5AA2007F170FA34993C7FC12FFAB047FB6FCA2127F7FDC00071380A2123FA26C7EA26C7E-A26C7F6C7F7E806C6D5CEB3FFC6D6C5C90260FFFC05B01039039FC01FE7F010090B5EAFC-1F023FECF0070207ECC0019126003FFCC8FC403B7BB94B>I<B6D8FC0FB612C0A426007F-F8C70007EB8000B3A391B8FCA402F8C71207B3A6B6D8FC0FB612C0A442397CB84B>I<B6-12FCA439007FF800B3B3ADB612FCA41E397DB824>I<B7FCA426007FF8C8FCB3AC170FA4-171EA4173EA3177E17FCA2160116031607161F16FFB812F8A430397CB839>76-D<B500F8040FB512C06E5EA26E5ED8007FF18000A2D97BFF167BA201796D15F3A201786D-EC01E3A36E6CEC03C3A26E6CEC0783A26E6CEC0F03A36E6C141EA26E6C143CA26E6C1478-A36E6D13F0A26E9038C001E0A292397FE003C0A392393FF00780A292391FF80F00A29238-0FFC1EA36F6C5AA26F6C5AA26F5BA36F5BA2705AA201FC6E5AB500FC0307B612C0A2EE1F-00160E52397CB85B>I<B500F8020FB512C0808080C66C6D9039000FC000725A8181017B-7F01797F01787F147F6E7E816E7F6E7F806E7F826E7F6E7F6F7E153F6F7E17806F13C06F-13E0816F13F017F86F13FCEE7FFE163FEE1FFF18877013C77013E77013F7827013FFA283-838383A283838383187FA201FC163FB500FC151F180F1807A242397CB84B>I<B712FEEE-FFE017FC17FF28007FF8001F1380040313C07013E07013F0EF7FF8A2EF3FFCA218FEA818-FCA2EF7FF8A2EFFFF04C13E04C13C0041F138091B6EAFE0017F817C002F8C9FCB3A4B612-FCA437397CB841>80 D<B712F8EEFFC017F817FE3C007FF8001FFF8004037F707F707F71-7EA2717EA284A760A24D5A604D5A4C5B04075BDC3FFEC8FC91B612F817C083DAF8007FEE-3FFC707E707E82848284A584A51AC0F101E018F08219037001F813C0B600FC90387FFC07-94393FFE0F8071B5120005075BCBEA7FF8433A7CB848>82 D<D907FF130E013FEBE01E90-B5EAF83E0003ECFE7E3A07FC01FFFE390FF0001F4848130F48481303491301007F140090-C8FC167E5A163EA27F161E7F7F6D91C7FC13FC387FFFE014FEECFFF06C14FE6F7E6C15E0-6C816C816C81C681133F010F801301D9000F1480EC007F030F13C01503818100F0157FA3-163FA27E17807E167F6C16007E6D14FE01E0495A01F813039039FF801FF800FC90B512E0-D8F83F5CD8F00791C7FC39E0007FF02A3B7BB935>I<003FB91280A4D9F800EBF003D87F-C09238007FC049161F007EC7150FA2007C1707A200781703A400F818E0481701A4C892C7-FCB3AE011FB77EA43B387DB742>I<B600FC017FB5FCA426007FF8C8EA7F00183EB3B318-7E013F167C80A2011F5EA26D6C4A5A010715036D6C4A5A6D6DEB1FC06D01E0EB7F809127-7FFC03FFC7FC021FB55A6E14F8020114E09126001FFEC8FC403A7CB849>I<B6D8E03FB5-00FC90383FFFFCA4000101F0C7D83FFCC8EA7E006C71153C171F6E197C017F7015786E6E-16F8013F62856E6E1501011F4B6D5CA26E18036D4B6D5C6F17076D624D7F6F013C150F6D-037C6D91C7FC6FEB787F6D191E05F87F6FD9F03F143E6D71133C933801E01F03F8177C02-7F01036E137803FC497E023F600407158003FE496C1381021FEFC1E04C487E03FF16C36E-49EDE3C0049E6D13E76E6004BE15F704FC6D13FF6E95C8FC4C80A26E5F4C143F6E5FA24C-141F037F5E4C140F033F5EA24C1407031F5E93C812036F5E5E3A7EB863>87-D<007FB5D8FC07B512F8A426003FFEC7D80FF0C7FC6E15C06D151F6D6D5C6F49C8FC6D6D-137E7F6F5B6D6D485A6D1403DA7FFC5B6F485A6E6C485A6E131FEE9F806E01FFC9FC6E5B-A26E5B6E5B80826F7E153F826F7F5D4B7F92B57EA2DA01F97FDA03F17F03F07F913807E0-7FDA0FC07F021F6D7E4B7E4A486C7F027E8102FE7F4A6D7F49488149486D7F8249488149-486E7E011F153F4A6E7E017F83B60107B61280A441397DB848>I<B600F80103B512E0A4-C601FCC8380FF0006D6C16C0A26D6C4B5A6D6D4AC7FCA26D6D147E6D6D5CA26D6D495A6D-6D495AA26D6D495A6E6C130F606E6C495A6E13804DC8FC6EEBC07E6E13E05F6EEBF1F86E-13F9EEFBF06EEBFFE0816F5B5F816F90C9FCB3A2021FB67EA443397EB848>I<EB1FFE48-B512E0000714F8390FF80FFE001FEB03FF6D6C7F6E7FA282157F6C5A6C5AEA01C0C8FCA2-EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3FF85B485A12FF5BA415FF6D5A-127F263FF00713F83B1FF81FBFFFC0390FFFFE1F0003EBF80F39003FE0032A257DA42E>-97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF00013804AEB7F-C00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F06E133F6EEB-7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9C00390C7FC-2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF8013803803FE0048484813C0EA0F-F8121F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01E06C7E1503-6C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023257DA42A>-I<EE7F80ED7FFFA4150381AF903801FF81010F13F1013F13FD9038FFC07F0003EB001FD8-07FC1307000F8048487F5B123FA2485AA312FFAA127FA27F123FA26C6C5B000F5C6C6C5B-6C6C4913C02701FF80FD13FE39007FFFF9011F13E1010313012F3A7DB935>I<903803FF-80011F13F0017F13FC3901FF83FF3A03FE007F804848133F484814C0001FEC1FE05B003F-EC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F6C6C14F86D-14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025257DA42C>-I<EC1FF0903801FFFC010713FF90391FF87F8090383FE0FFD9FFC113C0A2481381A24813-016E1380A2ED3E0092C7FCA8B6FCA4000390C8FCB3ABB512FEA4223A7DB91D>I<163FD9-0FFEEBFF8090267FFFC313C048B6EACFE02607FC07130F3A0FF803FE1F3A1FF001FF0F00-3F158F496CEB87C0007FEDC000A8003F5D6D5A001F92C7FC6C6C485A6C6C485A48B512F0-6D13C0261E0FFEC8FC90CAFCA2123E123FA213C06CB512F8EDFF8016E06C15F86C816C81-5A001F81393F80000F48C8138048157F5A163FA36C157F6C16006D5C6C6C495AD81FF0EB-07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<13FFB5FCA41207-7EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A14C05CA25CA291-C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<EA01F8487E487E487EA25AA37EA26C5A6C5A-6C5AC8FCA913FF127FA412077EB3A9B512F8A4153B7DBA1B>I<13FFB5FCA412077EB3B3-ACB512FCA4163A7DB91B>108 D<01FED97FE0EB0FFC00FF902601FFFC90383FFF800207-01FF90B512E0DA1F81903983F03FF0DA3C00903887801F000749DACF007F00034914DE6D-48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA453>I<01-FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D4814-C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F8017F13-FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81A300FF-1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C-6CB5C7FC011F13FC010113C029257DA430>I<9039FF01FF80B5000F13F0023F13FC9138-FE07FFDAF00113800003496C13C00280EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17-FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8-020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F000FFEB0FFEEC3F-FF91387C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3-A2B512FEA422257EA427>114 D<90383FF0700003B512F0120F381FC01F383F0007007E-1303007C130112FC14007E7E6D130013F8EBFFE06C13FEECFF806C14C06C14F06C14F812-03C614FC131F9038007FFE140700F0130114007E157E7E157C6C14FC6C14F8EB80019038-F007F090B512C000F8140038E01FF81F257DA426>I<130FA55BA45BA25B5BA25A120700-1FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3E090383FFFC06D1380-903803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C-6E4813E06CD9C03E13FF90387FFFFC011F13F00103138030257DA435>I<B539F001FFF8-A4000390C7EA3F006E133E6C153CA26E137C6C15786E13F8017F5CECF001013F5CECF803-011F5C14FC010F495AA2ECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E5AA2-6E5AA26E5AA26E5AA22D257EA432>I<B500F1B538807FFFA43D07FE000FF80003E06C6C-010715C082028015076C6E6C148002C0150F6C02071500826E485C017FED801E6E48143E-013FD91E7F133C17C0DAF83E147C011F90393C3FE078DAFC7C14F8010FD9781F5B17F0DA-FEF813F101079039F00FF9E002FF14FB6DD9E0075B17FF6D5E4B7EA26D496C90C7FCA202-7F5C92C7FCA2023E147C021E147840257EA445>I<B539F01FFFF0A4000390398003F800-6C01C013E06C14076D6C485AD93FF05B6E48C7FC90381FFC3E010F5B6D6C5AEB03FF5D6D-5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E37FD907C17FEB0FC049486C7E4A6C7E-013E80496D7E49130F00016E7EB590383FFFF8A42D257EA432>I<B539F001FFF8A40003-90C7EA3F006E133E6C153CA26E137C6C15786E13F8017F5CECF001013F5CECF803011F5C-14FC010F495AA2ECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E5AA26E5AA2-6E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC07C147814F85CEBC1E0387F87-C0387D1F80D83FFFC9FC6C5AEA07F02D357EA432>I<003FB612C0A3D9F0031380EB8007-49481300003E5C003C495A007C133F5D0078495A14FF5D495B5BC6485B92C7FC495A131F-5C495A017FEB03C0EBFFF014E048EBC007481580148048130048140F5B4848131F003F14-3F4848137F9039F003FF00B7FCA322257DA42A>I E /Fd 32 122-df<160C161EB3B0007FBB1280BC12C0A26C1A80C9001ECAFCB3B0160C4A4A7ABD57>43-D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46-D<EC01E01403140F143FEB01FF131FB6FCA413E1EA0001B3B3AD007FB612FEA5274178C0-38>49 D<903801FFC0010F13F8017F13FF48B612C048812607F80713F8260FE0017F3A1F-80007FFE48C76C7E488001C06D138001F015C000FF807F17E081A46C5A6C5A6C5AC8FC17-C05DA217805D17004B5AA24B5A4B5A5EEDFFC04A5B4A90C7FC4A5A15F84A5A4A5A4A5A4A-C8FC02FEEB01E0495A495A49481303D90FC014C0495A49C7FC137E49140749140F48B7FC-4816805A5A5A5A5AB8FC1700A42B417AC038>I<ECFFF0010713FF011F14C0017F14F049-C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A6C4815806C-485BC81400A24B5A4B5A5E4B5A4B5A020713800103B5C7FC15F815FF16C090C713F0ED3F-FCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487EA2487EA217F0A2-5D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEB7FFE6CB612F800015D6C-6C14C0011F49C7FC010113E02D427BC038>I<163E167E16FE15011503A21507150F151F-153FA2157F15FF5C5C15EFEC07CFEC0F8FEC1F0FA2143E147C14F8EB01F0A2EB03E0EB07-C0EB0F80131F1400133E5B5B12015B485A485A485AA248C7FC123E5A5AB91280A5C8D81F-FEC7FCAC91B71280A531417DC038>I<00061506D807C0147E01FEEB0FFE90B6FC5E5E5E-5E5E93C7FC5D15F815C04AC8FC01C0C9FCAAEC7FE09038C3FFFC01CFEBFF8090B67E9138-C07FF09039FC003FF8496D7E01E06D7E496D7E5B1780C8FC6F13C0A317E0A4EA0F80EA3F-E0487E12FF7FA317C05B5D4915806C5A007EC7481300123E003F4A5A6C6C495AD80FE049-5A3A07FC03FFF06CB65A6C15806C6C49C7FC011F13F0010390C8FC2B427AC038>I<B9FC-18F818FE727E19E026001FFEC700077F05017F716C7E727E727EA2721380A37213C0A74E-1380A21A00604E5A4E5A4E5A4D5B05075B057F138091B748C7FC18F818FF19E04AC813F8-F03FFC72B4FC721380841AC07213E0A27213F0A21AF8A81AF0A2601AE0604E13C0604E13-8095B5120005035BBA12F86119C04EC7FC18E045447CC350>66 D<BA12F8A485D8001F90-C71201EF003F180F180318011800A2197E193EA3191EA21778A285A405F890C7FCA31601-1603161F92B5FCA5ED001F160316011600A2F101E01778A2F103C0A494C7FC1907A21A80-A2190FA2191FA2193FF17F0061601807181F4DB5FCBBFC61A443447DC34A>69-D<BA12C0A419E0D8001F90C7120F1700183F181F180F1807180319F01801A31800A3EE01-E01978A419001603A31607160F167F92B5FCA5ED007F160F16071603A31601A693C9FCAF-B712F8A53D447DC346>I<B66C4AB612808181A281D8001F6D91C7003CC7FC81011E7F81-806E7F6E7F6E7F6E7F6E7F82806E7F6F7E6F7F6F7F83816F7F6F7F6F7F6F7F707E848270-7F707F707F707F8482707F717E7113807113C07113E019F0837113F87113FC7113FEF07F-FF1ABC847213FC84848484A284197F193F191F190FA219071903B600C0150119001A7C1A-3CA251447DC358>78 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE0013FC90-2601FFF0EB1FFF01070180010313C04990C76C7FD91FFC6E6C7E49486F7E49486F7E01FF-8348496F7E48496F1380A248496F13C0A24890C96C13E0A24819F04982003F19F8A3007F-19FC49177FA400FF19FEAD007F19FC6D17FFA3003F19F8A26D5E6C19F0A26E5D6C19E0A2-6C6D4B13C06C19806E5D6C6D4B13006C6D4B5A6D6C4B5A6D6C4B5A6D6C4A5B6D01C00107-5B6D01F0011F5B010101FE90B5C7FC6D90B65A023F15F8020715C002004AC8FC030713C0-47467AC454>I<DAFFE0131C010701FE133C013F9038FF807C90B6EAE0FC4815F9489038-801FFF3907FC00014848EB007F4848143F4848140F491407007F15035B1601160012FF17-7CA27FA26D153C7FA201FC92C7FC6C7EEBFFE014FE6CEBFFF015FF6C15E016FC6C816C6F-7E6C826C826C6C81011F810107811301D9000F80140003077FED007F161F701380828212-F082A282A27EA218007EA26C5D6C5E6D14036D5D6D140701F84A5A01FFEC3FF002F8EBFF-E0486CB65AD8FC1F92C7FCD8F80714FC48C614F0480107138031467AC43E>83-D<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7E-A26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC0100-0313E0481380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEB-FFC03A1FFF81FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97-D<EB7FC0B5FCA512037EB1ED0FFC92B57E02C314E002CF14F89139DFC03FFC9139FF000F-FE02FCEB03FF4A6D13804A15C04A6D13E05CEF7FF0A218F8173FA318FCAC18F8A2177F18-F0A3EFFFE06E15C06E5B6E491380027C491300496C495A903AFC1FC07FFC496CB512F0D9-F00314C049C691C7FCC8EA1FF036467DC43E>I<EE03FEED07FFA5ED001F160FB1EC3FE0-903803FFFC010FEBFF8F013F14CF9039FFF80FFF48EBC00148903880007F4890C7123F48-48141F49140F121F485AA3127F5BA212FFAC127FA37F123FA26C6C141FA26C6C143F0007-157F6C6C91B5FC6CD9C00314FC6C9038F01FEF6DB5128F011FEBFE0F010713F89026007F-C0EBF80036467CC43E>100 D<EC3FF80103B57E010F14E0013F8090397FF83FF89039FF-C007FC48496C7E48496C7E48486D1380485A001FED7FC05B003FED3FE0A2127F5B17F016-1F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17F06C7E000F15016D15E06C6C14036C-6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE011FB55A010714F0010114C0902600-1FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F049B512F849EB8FFC90390FFE0FFE-90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0ED00C01600ABB612F8A5C601E0C7-FCB3B0007FEBFFF0A527467DC522>I<DAFFC013FE010F9038FC07FF013FD9FF1F138090-B812C048D9807F133F489038003FF04848EB1FF8484890390FFC1F80001F9238FE0F0049-010790C7FCA2003F81A8001F5DA26D130F000F5D6C6C495A6C6C495A6C6D485A4890B55A-4892C8FC018F13FC018013C0000F90CAFCA47F7F7F90B612C016FC6CEDFF8017E06C826C-16FC7E000382000F82D81FF0C77ED83FC014074848020113808248C9FC177FA46D15FF00-7F17006D5C6C6C4A5A6C6C4A5AD80FFEEC3FF83B07FFC001FFF0000190B612C06C6C92C7-FC010F14F8D9007F90C8FC32427DAC38>I<13FC48B4FC4813805A4813C0A214E0A314C0-A26C13807E6C1300EA00FC90C7FCAAEB7FC0B5FCA512037EB3AFB6FCA518467CC520>-105 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC420>108-D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E4880913D-87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C13-0F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC60>-I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F00039039-9F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>I<EC1F-FC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7EA3FE000-078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700A46C6C4A-5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7FC6DB5-5A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FFCB590B57E02C314-E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E0-5C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E49-13006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536-407DAC3E>I<90387F807FB53881FFE0028713F0028F13F8ED8FFC91389F1FFE000313BE-6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>-114 D<90381FFC0790B55A000314FF120F381FF007383FC000497F48C77E127E00FE80A2-817EA27F01E090C7FC13FC387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E01-0F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F80-01E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB01-E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7FC-B3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC0101-5B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85EA2-5EA25E6C5D6E1580017FD901F713FE9138F807E76DB512C7010F1407010313FE9026007F-F0EBFC00372E7CAC3E>I<B6903807FFFCA5000101E09038003E006C163C6E147C017F15-7880013F5D801601011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C06D141E15E0-163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA2-6E5AA26E5AA21578362C7EAB3B>I<B500FE90387FFFF0A5C601F0903803E0006D6C495A-6D6C495A011F4AC7FC6E133E6D6C137E6D6D5A6D6D5A6DEBC1F0EDE3E06DEBF7C06EB45A-806E90C8FC5D6E7E6E7F6E7FA24A7F4A7F8291381F3FFCEC3E1F027C7F4A6C7E01016D7F-49486C7F4A7ED907C08049486C7F49C76C7E013E6E7E017E141FB5D8E001B512FCA5362C-7EAB3B>120 D<B6903807FFFCA5000101E09038003E006C163C6E147C017F157880013F-5D801601011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C06D141E15E0163E6D14-3CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA26E5AA26E-5AA21578A215F85D14015D001F1303D83F805B387FC007D8FFE05B140F92C9FC5C143E49-5A007F5BEB07F06CB45A6C5B000790CAFCEA01FC36407EAB3B>I-E /Fe 60 125 df<387801E038FC03F0EAFE07A4EAFC03AB007C13E0A2383000C0141479-A923>34 D<000EEB01C0393F8003E0387FC007A238FFE00F00FB14C0141F00F11480A214-3F150000FB5B147E12FF387FC0FE5CEA3F80EA0E0100005B13035CA213075C130F5CA213-1F5C133F91C7FCA25B137E9038FE01C09038FC07F0EC0FF812019038F81FFC157C120390-38F01E3C120713E0A2000FEB1F7C13C0001F14FC9038800FF8A2000FEB07F039070001C0-1E347EAD23>37 D<120FEA3F8013C0A213E0A2120F1203A31207A213C0120F121FEA3F80-EA7F005A5A12F812700B1574A823>39 D<EB0380EB0FC0131FEB3F80EBFF005BEA01F812-03485A485A5B485AA248C7FCA2123E127EA2127CA212FCA25AA87EA2127CA2127EA2123E-123FA26C7EA26C7E7F6C7E6C7E1201EA00FE7FEB3F80EB1FC0130FEB0380123476AD23>-I<127012FC7E127FEA3FC0121FEA07E07F6C7E6C7E1200137EA27FA27F1480A2130FA214-C0A21307A8130FA21480A2131FA214005BA2137EA25B1201485A485A5BEA1FC0123F48C7-FC12FE5A127012347AAD23>I<131EA2131F131EA30070EB038000FCEB0FC000FE131F38-FF9E7F397FDEFF80391FFFFE00000713F8000113E038007F803801FFE0000713F8001F13-FE397FDEFF8039FF9E7FC038FE1E1F00FC130F0070EB0380000090C7FCA3131F131EA21A-1D7CA223>I<1307497EAB003FB512C0B612F0A439000F8000AC6DC7FC1C1E7DA223>I<12-1FEA3F80EA7FC013E0A4123F121F1207A2EA0FC0121FEA7F80EAFF005A5A12700B127488-23>I<387FFFF8B512FCA36C13F816057A9023>I<123E127FEAFF80A5EA7F00123E090973-8823>I<EC0380EC07C0A2140F1580141F1500A25C143E147E147C14FC5C13015CA21303-5C13075C130F5C131F91C7FC5B133EA2137E137C13FC5B12015B12035BA212075B120F5B-121F90C8FC5A123EA2127E127C12FC5AA212701A347CAD23>I<EB1F80EB7FE03801FFF8-487F487F13F0380FC03F391F801F80EB000F4814C0003E1307A248EB03E0A30078130100-F814F0AB007CEB03E0A3007E1307003E14C0A2003F130F391F801F80A2390FC03F003807-F0FE13FF6C5B6C5B38007FE0EB1F801C2B7DA923>I<1318133C137CA213FC1201120312-07127F12FFA2EAFE7C12FC1200B3A6387FFFFCB512FEA36C13FC172A7AA923>I<13FF00-0313E0000F7F4813FC487F387F83FF387E007F48EB3F80141F6CEB0FC0A21407A2127C12-38C7FC140FA21580141F143F1500147E14FE495A495A495A495A495A495A01FFC7FC485A-EA03F8485A390FE00380391FC007C0EA3F8048B5FCB6FCA36C14801A2A7CA923>I<383F-FFFE80A35C003EC8FCAAEB3F80383FFFE014F88080EBC0FF9038003F80003E131F123CC7-EA0FC0A21407A2123812FEA2140FA2EC1F8048133F007EEB7F00387F81FEEA3FFF6C13F8-6C5B000313C0C690C7FC1A2A7CA823>53 D<EB3FC03801FFF8487F487F487F391FE07F80-393F801FC0EB000F007EEB07E0007C1303A4007E1307003E14C06CEB0F80EBC03F3907FF-FE006C5BC613F0A2000313FC380FF0FF391F801F80393F000FC0007EEB07E0007C130300-FC14F0481301A56C1303007EEB07E0A2393F801FC0391FE07F8090B5FC6C1400000313FC-6C5B38003FC01C2B7DA923>56 D<123E127FEAFF80A5EA7F00123EC7FCAB123E127FEAFF-80A5EA7F00123E091D739C23>58 D<EB0FC0A2497EA4EB3CF0A5EB7CF8A3EB7878EBF87C-A548487EA548487EA290B5FCA2481480A3EBC00FA2000F14C0EB8007A2397FF03FF839FF-F87FFCA3397FF03FF81E2A7EA923>65 D<B512F014FE80158015C0390F800FE014071403-EC01F0A5140315E01407EC1FC090B5128015005C8015C09038800FE01407EC03F0140115-F81400A5140115F01403EC0FE0B6FC15C01580150014FC1D297EA823>I<90380FE0E090-383FF9F0EBFFFD4813FF5A3807FC3F380FF00F381FC007A2383F80031300481301127EA2-007CEB00E000FC1400A25AA97EA2127C007E14E0EC01F0127F7EEB8003EA1FC0EC07E038-0FF00F3907FC1FC06CB512806C14006C5BEB3FF8EB0FE01C2B7DA923>I<387FFFF0B512-FC80806C1480390F803FC0141FEC07E0A2EC03F0140115F81400A315FC157CAA15F8A314-0115F01403A2EC07E0EC0FC0143F007FB51280B612005C5C6C13F01E297FA823>I<007F-B512F8B612FCA37E3907C0007CA515381500A2141C143EA3EBFFFEA5EBC03EA3141C91C7-FCA3150E151FA6007FB6FCB7FCA36C14FE20297FA823>I<007FB512F8B612FCA37E3907-C0007CA515381500A31438147CA3EBFFFCA5EBC07CA3143891C7FCA9EA7FFEB5FCA36C5A-1E297EA823>I<90381F838090387FE7C048B5FC5A5A380FF87FEBE03F381FC01F138038-3F000FA2007E1307A2127CEC038000FC90C7FCA25AA6ECFFF04913F8A212FC6D13F0007C-EB07C0A2007E130FA27E141FEA1F80EBC03FEA0FE0EBF07F6CB5FC7E7E39007FE3809038-1F80001D2B7DA923>I<007FB5FCB61280A36C1400D8003EC7FCB3AD007FB5FCB61280A3-6C140019297BA823>73 D<EA7FFFB5FCA37EEA07C0B3A6157CA7007FB512FCB6FCA36C14-F81E297EA823>76 D<39FFC03FFCA213E0A213F0390F7003C0A213781338A2133CA2131C-131EA2130E130FA3EB0783A3EB03C3A3130114E3A2130014F3A21473A2147B143BA238FF-F03F141FA2140F15801E297EA823>78 D<387FFFFCB6FC158015C06C14E03907C00FF0EC-03F81401140015FC157CA515FC15F814011403EC0FF090B512E015C01580150014FC01C0-C7FCABEA7FFC487EA36C5A1E297FA823>80 D<B57E14F08014FEA2380F80FFEC3F80141F-EC0FC01407A5140FEC1F80143FECFF00EBFFFEA214F880801380147F8080A6150E151FA2-159FD8FFF813BFEC0FFF15FE1407EC03FCC7EA01F0202A7EA823>82-D<EBFF070003EBC780000F13FF5A5AEA7F81387E007F00FE133F48131F5AA2140FA26CEB-070091C7FC127E127FEA3FE013FE381FFFE000077F6C13FC38003FFEEB03FF9038007F80-141FA2EC0FC0A20070130712F8A36C130FA26CEB1F806C133F9038E07F0090B5FC5C5C00-F113F038703FC01A2B7CA923>I<007FB512F8B612FCA439F807C07CA500701438000014-00B3A7EBFFFE487FA36C5B1E297EA823>I<39FFC003FF6D5AA3497E003CC7123CA26C14-78A86C14F0EB07E0EB0FF0A5EB1E78A2000714E0EB9E79A2EB9C39A2EBBC3DA3000314C0-EBB81DA3EBF81FA2EBF00FA200011480EBE007202A7FA823>87 D<397FF0FFE06D13F0A3-4913E03907E03E001203EBF07E0001137CEBF8FC00005B13FDEB7DF0137F6D5AA26D5AA2-6D5AA2497EA280133F80137DEB7CF813F8147CEA01F0801203EBE03F00077F01C0138000-0F130F397FF03FF800FFEB7FFCA3007FEB3FF81E297EA823>I<387FFF80B512C0A31480-00F8C7FCB3B3A6B5128014C0A36C1380123472AD23>91 D<127012F8A27E127C127E123E-A2123F7E7F120F7F12077F1203A27F12017F12007F137C137E133EA2133F7F80130F8013-07801303801301A280130080147C147E143E143F80A21580140F15C01407A2EC03801A34-7CAD23>I<387FFF80B512C0A37EEA0007B3B3A6EA7FFFB5FCA36C138012347EAD23>I<EA-07FE381FFFC0487F4813F8A2EB03FCEB00FE003E137EC7123EA2EB03FE13FF1203120F12-3F387FE03EEAFF0012FCA25A147E7E6C13FEEA7F0390B512F86C14FC7E6C131F3903FC07-F81E1D7C9C23>97 D<EA7FC0487EA3127F1203A714FE9038E3FF8001EF13E090B512F015-F8EC07FCEBFC019038F800FE49137E153E49133FA2151FA5153F7F157E7F15FE9038FC01-FC9038FF07F814FF15F001EF13C001E713803901C1FC00202980A823>I<EB3FF0EBFFFC-000313FF5A5A381FE07FEA3F80387F003E007E90C7FCA25AA25AA57EA2007E1307007FEB-0F80141FEA3FC0391FF03F006CB5FC6C5B6C5BC613F0EB3FC0191D7B9C23>I<ECFF8049-13C0A37F1407A7EB7F873801FFE74813F7000F13FF5A13E0383F803F387F001F007E130F-A2481307A25AA56C130FA2127C007E131F007F133F383F807FEBE0FF6CB512FE6C14FF6C-13F7000113C739007F03FE20297EA823>I<EB3FC0EBFFF000037F4813FE487FEA1FE039-3F803F80387F001F007E130F15C05AB6FCA4158000F8C8FC7EA2007EEB0380007FEB07C0-383F800F13C0391FF83F806CB5FC6C14006C13FCC65BEB1FC01A1D7C9C23>I<147F9038-01FFC0010713E05B5BEB3FCF140F90383E07C091C7FCA4007FB51280B612C0A36C1480D8-003EC7FCB3007FB5FCA51B297EA823>I<EC01F090383F07FC9038FFDFFE000313FF5A48-147E381FE1FE9038807E18393F003F00A2003E7FA4003F5BA2381F807EEBE1FE6CB45A48-5B5C001E13C0013FC7FC90C8FC121F1340380FFFFCECFF804814C04814F0397F0007F800-7C130048147CA248143CA36C147C6C14FC007FEB03F8EBE01F6CB512F0000F14C06C1480-0001EBFE0038003FF01F2E7E9D23>I<EA7FC0487EA3127F1203A714FE9038E3FF8001EF-7F90B57EA2EC07F0EBFC03EBF80113F0A313E0AD3A7FFF0FFF80B5009F13C0A36C010F13-80222980A823>I<131C137FA5131C90C8FCA6EA3FFE487EA37EEA001FB3007FB51280B6-12C0A36C14801A2A7BA923>I<EA7F80487EA3127F1203A79038C1FFFC15FEA315FC9038-C03F00147E5CEBC1F8EBC3F0EBC7E0EBCFC013DFEBFFE08013FDEBF8F8497EEBE07EEBC0-3E801580140FEC07C0397FFE1FFEB5EA3FFFA3397FFE1FFE20297FA823>107-D<EA7FFEB5FCA37EEA001FB3AD007FB512C0B612E0A36C14C01B297CA823>I<397E1F01-F039FF7FC7FC9038FFEFFE14FF6C80390FE1FE1FEBC1FC01C07FEB80F8A2EB00F0AE3A7F-E1FE1FE03AFFF3FF3FF0A33A7FE1FE1FE0241D819C23>I<387FC0FE39FFE3FF8001EF7F-90B57E7E0003EB07F0EBFC03EBF80113F0A313E0AD3A7FFF0FFF80B5009F13C0A36C010F-1380221D809C23>I<133F3801FFE0487F487F487F381FC0FE383F807F383E001F007E14-80007C130F00FC14C0481307A66C130FA2007C1480007E131F6CEB3F006D5A381FE1FE6C-B45A6C5B6C5B6C5BD8003FC7FC1A1D7C9C23>I<387FC0FE39FFE3FF8001EF13E090B512-F06C14F80003EB07FCEBFC019038F800FE49137E153E49133FA2151FA5153F7F157E7F15-FE9038FC01FC9038FF07F814FF15F001EF13C001E713809038E1FC0001E0C7FCAAEA7FFF-B57EA36C90C7FC202C809C23>I<397FF01FE039FFF87FF8ECFFFC13FB6CB5FCC613F0EC-C078EC800091C7FC5BA25BA35BAA387FFFFCB57EA36C5B1E1D7E9C23>114-D<3801FF38000F13FC5A127FA2EAFF01EAFC0048137CA26C13386C1300EA7FF0383FFF80-000F13E06C13F838007FFCEB01FEEB007F0070133F00F8131F7E143F7E38FF80FFEBFFFE-14FC14F814F000701380181D7B9C23>I<137013F8A7007FB5FCB61280A36C1400D800F8-C7FCACEC01C0EC03E0A3EBFC07140F9038FE1FC0EB7FFF158090383FFE00EB0FFCEB07F0-1B257EA423>I<397FC03FE0486C487EA3007F133F00031301B014031407EBF01F90B612-806C15C0A238007FF9D91FE01380221D809C23>I<39FFF03FFCEBF87FA3EBF03F390780-0780A33903C00F00A33801E01EA3EBF03E0000133CA2EBF87CEB7878A2EB7CF8EB3CF0A2-133F6D5AA36D5A6D5A1E1D7E9C23>I<397FF81FFE39FFFC3FFFA3397FF81FFE000FC712-F0A639078001E0EB83E1EB87F1A3138F3903CF79C0A2147B13DFA213DE0001EB3B80EBFE-3FA3EBFC1F3900F80F00201D7F9C23>I<397FF87FF000FFEBFFF8A3007FEB7FF03903E0-3E003801F03C3800F87CEB78F8EB7CF0EB3FE0131F6D5A5C1307497E497E133DEB3CF0EB-7878EBF07C0001133C497E3803C01F397FF03FF839FFF87FFCA3397FF03FF81E1D7E9C23->I<39FFF03FFCEBF87FA3EBF03F390780078013C01203EC0F0013E01201141EEA00F0A2-143EEB783CA36D5AA2131CEB1E7014F0130EEB0FE0A213075C1303A2495AA349C7FCA2EA-3E1FEA7F1E133EEA7C7CEA7FFC5B6C5A6C5AEA0F801E2C7E9C23>I<127812FCB3B3AE12-78063472AD23>124 D E /Ff 32 122 df<123C127E12FFA4127E123C08087A8714>46-D<123C127E12FFA4127E123C1200AD123C127E12FFA4127E123C081D7A9C14>58-D<DA1FF013C09138FFFE01903903F00F8390390F8001E3013FC71277017C143F4848141F-4848140F48481407A248481403121F491401123F90C8FC481500A300FE1600AB127F17C0-A27E7F001F15016D1580120F6C6C1403EE07006C6C14066C6C140ED8007C5C013F147890-390F8001E0903903F00FC0902600FFFEC7FCEC1FF02A2F7CAD33>67-D<B712F8A23903F8000700011400167C163C161CA2160CA3160E16061560A21600A315E0-A2140390B5FCA2EBF8031400A21560A592C7FCAB487EB512F8A2272D7DAC2E>70-D<DA1FF013C09138FFFE01903903F00F8390390F8001E3013FC71277017C143F4848141F-4848140F48481407A248481403121F491401123F90C8FC481500A300FE1600A992381FFF-FEA2007F9138001FE0EE0FC0A27E7F121F7F120F6C7EA26C7E6C6C141FEA007C013F143F-D90F8013F3903903F007C10100B51200DA1FF813002F2F7CAD37>I<B539F03FFFFCA2D8-03FCC713006C48147EB290B612FEA201F8C7127EB3486C14FFB5D8F03F13FCA22E2D7DAC-35>I<B512F8A2D803FCC8FC6C5AB3A71618A41630A41670A216F015011503ED07E00003-143FB7FCA2252D7DAC2C>76 D<B612F815FF3A03F8001FC00001EC07E0ED01F016F8ED00-FC16FE167E167FA6167E16FE16FCED01F816F0ED07E0ED1FC090B6120015F801F8C8FCB2-487EB512F0A2282D7DAC30>80 D<B612C015FC3903F8007F0001EC0FC06F7E6F7E6F7E82-150082A55E15015E4B5A4B5A4B5A037FC7FC90B512FC15F09038F800FC153E6F7E150F82-6F7EA582A5170316F815031707486C903801FC0EB539F000FE1CEE3FF8C9EA07E0302E7D-AC34>82 D<007FB712E0A29039001F800F007C150300701500A200601660A200E01670A2-481630A5C71500B3A94A7E013FB512C0A22C2D7DAC33>84 D<B539F003FFFCA2D803FCC7-EA3FC06C48EC0F001606B3AB160E0000150C7F161C017C1418017E14386D5C6D14609039-0F8001E0903907E00380902601F80FC7FC9038007FFCEC0FF02E2E7DAC35>I<13FF0007-13C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801FE1FEA07F0-EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007FEBEF8C391F83C7FC390F-FF03F83901FC01E01F207D9E23>97 D<EA07C012FFA2120F1207AC14FE9038C7FF809038-CF03E09038DC01F89038F8007C49137E49133E497F1680A2150F16C0A9ED1F80A216005D-6D133E6D5B01B05B9038BC01F090380E07E0390607FF80260001FCC7FC222F7EAD27>I<-EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A003EEB0F00007E90C7FC-A2127C12FCA9127EA215C07E6C130101801380380FC0033907E007003801F01E38007FF8-EB1FE01A207E9E1F>I<15F8141FA214011400ACEB0FE0EB7FF83801F81E3803E0073807-C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E13017EEB8003000F1307-3907E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27>I<EB1F80EBFFF03801-E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C12FCA3B6FCA200FCC8-FCA4127C127EA2003E14C0123F6C1301390F80038001C013003803E00F3801F03C38007F-F8EB1FC01A207E9E1F>I<EB03F0EB0FFCEB3E1EEB7C3F13F8EA01F0A23803E00C1400AA-B512E0A23803E000B3A6487E387FFF80A2182F7FAE16>I<013F13F89038FFC3FE3903E1-FF1E3807807C000F140C391F003E00A2003E7FA76C133EA26C6C5A00071378380FE1F038-0CFFC0D81C3FC7FC90C8FCA3121E121F380FFFF814FF6C14C04814F0391E0007F8481300-48147C12F848143CA46C147C007C14F86CEB01F06CEB03E03907E01F803901FFFE003800-3FF01F2D7E9D23>I<EA07C012FFA2120F1207AC14FE9038C3FF809038C703E09038DE01-F013F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2222E7EAD27>I<1207EA1FC0A212-3FA2121FA2EA0700C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EAFFFEA20F2E7EAD14>-I<EA07C012FFA2120F1207B3B3A3EA0FE0EAFFFEA20F2E7EAD14>108-D<2607C07FEB07F03BFFC3FFC03FFC903AC783F0783F3C0FCE01F8E01F803B07DC00F9C0-0F01F8D9FF8013C04990387F000749137EA249137CB2486C01FEEB0FE03CFFFE0FFFE0FF-FEA2371E7E9D3C>I<3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8496C7EA25B-A25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>I<EB1FE0EB7FF83801F03E3803C00F39-07800780390F0003C04814E0003EEB01F0A248EB00F8A300FC14FCA9007C14F8A26CEB01-F0A26CEB03E0A2390F8007C03907C00F803901F03E0038007FF8EB1FE01E207E9E23>I<-3807C0FE39FFC7FF809038CF03E0390FDC01F83907F800FC49137E49133E49133FED1F80-A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038C7FF80-D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>I<380F81F038FF87FCEB9E7EEA0F-98EA07B813B0EBF03CEBE000A35BB1487EB5FCA2171E7E9D1B>114-D<3801FE183807FFB8381F01F8EA3C00481378481338A21418A27E7EB41300EA7FF06CB4-FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C133CA26C13-7838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A21207121FB5-12F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7FA81B>I<-D807C013F800FF131FA2000F130100071300B21401A314033803E007EC0EFC3A01F81CFF-C038007FF890391FE0F800221F7E9D27>I<3AFFFC01FFC0A23A0FE000FE000007147C15-38000314306D137000011460A26C6C5BA2EBFC01017C5BA26D48C7FCA2EB3F07EB1F06A2-EB0F8CA214DCEB07D8A2EB03F0A26D5AA36D5A221E7F9C25>I<3BFFFC3FFE0FFFA23B0F-E003F001F8D807C09038E000F0020114E001E07F0003010314C0A2D801F09038F80180EC-0678A2D800F890387C0300EC0C3CA290397C1C3E06EC181EA290393E381F0CEC300F168C-90391F600798A216F86D486C5AA36D486C5AA201035C91C7FC301E7F9C33>I<3AFFFC01-FFC0A23A0FF000FE006C48137C000314385D6C7E15606D13E000005CA290387C0180A2EB-7E03013E90C7FCA2EB1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5AA2495AA213-0391C8FC1278EAFC06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>121-D E /Fg 3 52 df<137013F0120312FF12FC1200B3A7487E387FFFE0A213217BA01E>49-D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013-FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600-185A5A383FFFF85AB512F0A216217CA01E>I<13FF000313C0380F03E0381C00F014F800-3E13FC147CA2121E000C13FCC712F8A2EB01F0EB03E0EB07C0EBFF00A2EB03E0EB00F014-78147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFFC000-01130018227DA01E>I E /Fh 11 117 df<EB01F8EB07FC90381F0E3890383E07FCEB7C-0313F8EA01F000036D5AEA07E0120FEBC003001F5C1380123F1407007F5C1300A2140F48-5C5AA2141F5D48EC81C0A2EC3F83ED0380A2147F1507007C01FF13005BD83C03130E393E-079F1E391F0E0F1C390FFC07F83901F001E0222677A42A>97 D<ED03F0EC01FFA3EC0007-16E0A2150FA216C0A2151FA21680A2153FA21600A25DA2903801F87EEB07FC90381F0EFE-EB3E07496C5A13F8EA01F000031301D807E05B120FEBC003121F01805B123F1407127F01-005BA2140F5A485CA2141FA248EC81C0A2EC3F8316801503147F1507007C01FF13005BD8-3C03130E393E079F1E391F0E0F1C390FFC07F83901F001E0243B77B92A>100-D<147F903803FFC090380FC1E090383F00F0017E13785B485A485A485A120F4913F8001F-14F0383F8001EC07E0EC1F80397F81FF00EBFFF8148090C8FC5A5AA55AA21530007C1438-1578007E14F0003EEB01E0EC03C06CEB0F806CEB3E003807C0F83803FFE0C66CC7FC1D26-77A426>I<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00FEB0F80011F13-07D93F0013E05B017E130F13FE4914C01201151F1203491480A2153F1207491400A25DA2-49137EA215FEA25D00031301140314076C6C485A0000131FEB787BEB3FF390380FC3F0EB-00031407A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F8387C07E0381FFF-80D803FEC8FC24367CA426>103 D<EB01C0EB07E014F0130F14E01307EB038090C7FCAB-EA01F0EA03FCEA0F1EEA0E1F121C123C12385B1270A25BEAF07E12E013FEC65AA212015B-1203A25B12075BA2000F13E013C013C1001F13C01381A2EB8380130313071400130EEA0F-1EEA07F8EA01F0143879B619>105 D<EB0FC0EA07FFA3EA001F1480A2133FA21400A25B-A2137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123F-A290C7FCA25AA2EA7E0EA212FE131EEAFC1CA35BA21378EA7C70EA3CF0EA1FE0EA078012-3B79B915>108 D<D801E001FEEB07E03C07F803FF803FF83C0E3C0F07C0F87E3C1E3E3C-03E1E03E261C3F789038F3C01F00389039F001F78002E0EBFF00007801C049148000705D-14804A4848EB3F00EAF07FD8E07E5CA2000002075C01FE167E495CA2030F14FE00015F49-5C1701031F5C120349DA8003131C18F0033F153C00070407133849020013E019784B1570-000F17C049017E15E018C103FE15C0001F933803C7804949903801FF000007C70038EB00-7C3E2679A444>I<903907800F8090391FE03FF0903938F070F8903978F9E07C903970FF-C03C49EB803E1500000149133F13C05C13C11203EB81F8A2D80003147FA25CA2010714FF-A24A13FEA2010F130116FC14C016F8011F130316F0EC800716E0013FEB0FC002C01380ED-1F00153E496C5AEC70F890387E3FE0EC1F8001FEC8FCA25BA21201A25BA21203A25B1207-B512C0A328357FA42A>112 D<3901E003F03907F80FFC390E3C3C0F381E3E783A1C3FF0-3F80003813E014C00078018013001270EC001C92C7FCEAF07FEAE07EA2120013FE5BA312-015BA312035BA312075BA3120F5BA3121F5B0007C9FC212679A423>114-D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F00001130313F0A2-15E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C01300143F141F14-0F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB45AD801FEC7FC-1C267AA422>I<EB0380EB07C0130FA4131F1480A3133F1400A35B137E007FB5FCA2B6FC-3800FC00A312015BA312035BA312075BA3120F5BA3121FEB801CA2143C003F1338EB0078-147014F014E0EB01C01303381F0780380F0F00EA07FCEA01F0183579B31C>I-E /Fi 3 52 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>-49 D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7-FC15005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA01803903-00030012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C00-7C0030137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E0EBFF8091C7FCEB-01E0EB00F8147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B380F-01F06CB45AC690C7FC19277DA521>I E /Fj 69 126 df<007FB712C0B812E0A36C16C0-2B0580982C>21 D<003C131E007F137F481480A66C1400A6007E7FA6003E133EA3003C13-1E001C131C191977B32C>34 D<0107131C90380F803EA8011F137EEC007CA4003FB612E0-B712F8A43A003E00F800A2EB7E01017C5BA8EBFC0301F85BA2B712F8A4003F15E03A01F0-07C000A30003130F01E05BA86C486CC7FC25337DB22C>I<EB01C0497EA6EB0FFC90387F-FF8048B512E00007804880391FFBEFFC393FC3E1FE903803E07F007E80127C00FC158012-F8157FA300FCEC3F00A2007E91C7FC127FEA3FC313F3EA1FFF6C13FC6C13FF000114C06C-6C7F011F13F801037F14E7ECE1FEECE07F81001880007E1580150F12FFA312FE151F1600-007E5C007F143ED83F8313FE9038C3E1FC391FFBEFF86CB55A6C5C6C5CC691C7FCEB1FF8-EB03E0A66D5A21417BB92C>I<EA0F80EA1FC0EA3FE013F0A213F8A2121F120F1200A412-0113F0A2120313E01207EA0FC0121FEA3F80EA7F0012FE5A5A12700D1B71B22C>39-D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F-5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F-12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438164272B92C>-I<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB07E0-A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714E0A2EB0FC0131F-1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270164279B92C>I<-EB01C0497EA600101404007C141F007E5CD8FF83EBFF80267FE3E31300EBF3E7001FB512-FC000714F06C5CC61480D93FFEC7FCA290B57E000314E04880001F14FC397FF3E7FFEBE3-E326FF83E01380D87E03EB3F00007C8000101404000091C7FCA66D5A21247BAA2C>I<14-7014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>I<007FB512F0B612F8-A36C14F01D0579942C>45 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B70-8A2C>I<1507ED0F80A2151F16005D153E157E157CA215FC5D14015D14035D14075D140F-5D141F92C7FC5C143EA2147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B13-3EA2137E137C13FC5B12015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC-5AA2127021417BB92C>I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803-F848486C7EEBE0004848137EA248487FA248C7EA1F80A2003E140F007E15C0A3007C1407-00FC15E0AC6C140F007E15C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0-016C6C485A3901FE0FF06CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497E-A2131F133FA2137F13FF5A1207127FB5FC13DF131F12FC1200B3AE007FB512E0B612F0A3-6C14E01C3477B32C>I<EB0FF890387FFF8048B512E00007804814FC391FF80FFE393FE0-01FF903880007F48C7EA3F80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA215-0F16C0151F1680153F16005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A49-5A495AEB3FE0EB7F8049C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C-15C023347CB32C>I<000FB512FE4880A35D0180C8FCADEB83FE90389FFFC090B57E15F8-819038FE03FE9038F000FF497F0180EB3F80151F6CC713C0C8120FA2ED07E0A4123C127E-B4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80FFC6CB55A6C5C-000114C06C6C90C7FCEB0FF823347CB22C>53 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA-3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>58-D<EA0F80EA1FC0EA3FE0EA7FF0A5EA3FE0EA1FC0EA0F80C7FCAEEA0F80EA1FE0EA3FF0EA-7FF8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012-FC12700E3071A32C>I<007FB612F0B712F8A36C15F0CAFCA8007FB612F0B712F8A36C15-F025127DA12C>61 D<EB3FFE0003B512C0000F14F04814FC4880397FE007FF90C7FC00FE-EC3F806C141FA3153F007EEC7F00003C5CC7EA03FEEC0FFC4A5AEC3FE04A5A4AC7FC495A-495A5C13075C130F5CA76D5A90C9FCA8EB0380EB0FE0A2497EA36D5AA2EB038021337BB2-2C>63 D<EC7F80903803FFE0010F7F013F7F497F9038FFC0FE3901FE007FD803F87F4848-EB1F809038E007CF390FC01FFF261F807F13C091B5FC485A393E01FC7F903903F01FE012-7E397C07E00FECC007A2EAFC0F00F8EB8003A900FCEBC007D87C0714C0A2ECE00F3A7E03-F01F80123E903901FC7F00393F00FFFE6C7E6E5A390FC01FF03907E007C09039F00007C0-6C6CEB0FE0D801FE131F3900FFC0FF6DB512C06D1480010FEBFE00010313F89038007FC0-23337CB22C>I<14FE497EA4497FA214EFA301077FA214C7A2010F7FA490381F83F0A590-383F01F8A4017F7FEB7E00A449137E90B512FEA34880A29038F8003FA30003158049131F-A3000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>I<007FB512E0-15F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0A21507ED0FE0-ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501ED00FCA216FE-167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CECFE0015F027337F-B22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE007F4848131FD8-07F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE5AAB7E127EA3-007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F6C6CEB3FC03A-00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<007FB612F0B712F8-A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C-167EA8007FB612FEB7FCA36C15FC27337EB22C>69 D<007FB612F8B712FCA37ED803F0C7-FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26-337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC0149-7E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8-913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F-6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB3-2C>I<D87FFEEBFFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA59038E0000FB3-D87FFEEBFFFCB54813FEA36C486C13FC27337EB22C>I<387FFFE0B57EA36C5BD803F0C8-FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025337DB22C>76 D<D87FE0EB0FFC486CEB-1FFEA26D133F007F15FC000F15E001BC137BA4019E13F3A3EB9F01A2018F13E3A21483A2-018713C314C7A201831383A214EFA201811303A214FFEB80FEA3147C14381400ACD87FF0-EB1FFC486CEB3FFEA36C48EB1FFC27337EB22C>I<3A7FF001FFF0486C4813F8A213FC00-7F6D13F000079038001F0013DEA313CFA3148013C7A214C0A213C314E0A213C114F0A213-C014F8A31478147CA2143C143EA2141E141FA2140FA2159F1407A3EC03DFA36EB4FCEA7F-FCEAFFFE80A26C48137E25337DB22C>I<007FB512C0B612F88115FF6C15802603F00013-C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90B61280-160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>80-D<387FFFFCB67E8115F06C803907E00FFCEC01FE1400157F8182151FA6153F93C7FC5D15-FE1401EC0FFC90B55A5D15C081819038E00FF8EC03FC14016E7E157EA8160FEE1F80A415-3FD87FFEEC3F00B514FF6F5A150F6C486D5AC8EA01F029347EB22C>82-D<90381FF00E9038FFFE1F48EBFF9F000714FF5A381FF01F383FC007EB800148C7FC127E-00FE805A81A46C141E007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14-F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A20078140712FCA5-6CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8-700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078153CC71400B3-AF90383FFFFCA2497F6D5BA227337EB22C>I<D87FF8EB0FFF00FF16806D5B497F007F16-00001FC8127CA36D14FC000F5DA76C6C495AA4143E147FA33A03E0FF83E0A214F7A301E1-13C3A200015D14E301F113C701F313E7A314C1A200005DA201F713F7A21480A201FF13FF-017F91C7FC4A7EA4013E133E29347FB22C>87 D<3A3FFF03FFE048018713F0A36C010313-E03A01F800FE006D5B0000130101FE5BEB7E03017F5B133F1487011F5B14CF010F5B14FF-6D5BA26D90C7FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83-EC03F8EB7F01017E7FEBFE00497F157E4848137F810003158049131FD87FFEEBFFFC6D5A-B514FE6C15FC497E27337EB22C>I<387FFFFCB512FEA314FC00FCC7FCB3B3B3B512FC14-FEA36C13FC17416FB92C>91 D<127012F8A27E127C127E123E123F7EA27F120F7F12077F-12037F12017F12007F137C137E133EA2133F7F80130F8013078013038013018013008014-7C147E143EA2143F8081140F81140781140381140181140081157CA2157E153E153F8116-80150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3387FFFFEB5FCA3-6C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95-D<3801FFF0000713FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8-127EA3ECFFFE131F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F-14FEEB8003383FE01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>-97 D<EA7FF0487EA3127F1201AAEC1FE0ECFFF801F913FE90B6FC16809138F07FC09138-C01FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13-036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F83900F03FC027-337FB22C>I<903803FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E-4848131890C9FC5A127EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F0039-07FE03FF6CB55A6C5C6C6C5B011F13E0010390C7FC21247AA32C>I<EC0FFE4A7EA380EC-003FAAEB07F8EB3FFE90B512BF4814FF5A3807FC0F380FF00348487E497E48487F90C7FC-007E80A212FE5AA87E007E5CA2007F5C6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CEC-BFFE6C143FEB3FFC90390FF01FFC27337DB22C>I<EB03FE90381FFFC0017F13F048B57E-48803907FE03FE390FF800FFD81FE0EB3F805B4848EB1FC090C7120F5A007E15E015075A-B7FCA416C000FCC9FC7E127EA2127F6CEC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001-FF13FF000190B512806C1500013F13FC010F13F00101138023247CA32C>I<EC0FF8EC3F-FE91B5FC4914805B903807FC7F14F090390FE03F0014C092C7FCA6007FB512FEB7FCA36C-5C26000FC0C7FCB3A8007FB512F8B67EA36C5C21337DB22C>I<ED03F8903907F80FFC90-391FFE3FFE017FB6FC48B7FC48ECFE7F9038FC0FF82607F003133E3A0FE001FC1CD9C000-1300001F8049137EA66D13FE000F5CEBE0016C6C485A3903FC0FF048B5FC5D481480D99F-FEC7FCEB87F80180C8FCA37F6C7E90B512F06C14FE48ECFF804815E04815F03A3FC0001F-F848C7EA03FC007E1400007C157C00FC157E48153EA46C157E007E15FCD87F801303D83F-E0EB0FF8D81FFCEB7FF06CB612E0000315806C1500D8003F13F8010713C028387EA42C>-I<EA7FF0487EA3127F1201AAEC1FE0EC7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC0-1F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029337FB22C>I<-1307EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFFC0B57EA37EEA0007B3A8007FB5-12FCB612FEA36C14FC1F3479B32C>I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A3-6E13F0913800FE004A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FC-A2EC9F80EC0FC001FE7FEBFC07496C7E496C7E811400157E811680151F3A7FFFC0FFFCB5-00E113FEA36C01C013FC27337EB22C>107 D<387FFFE0B57EA37EEA0003B3B3A5007FB6-1280B712C0A36C158022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87F-FF13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B33B-7FFC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397FF0-1FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B5B-A25BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C>I<EB07FCEB1FFF017F13-C048B512F048803907FC07FC390FF001FE48486C7E0180133F003F158090C7121F007EEC-0FC0A348EC07E0A76C140F007E15C0A2007F141F6C15806D133F6C6CEB7F006D5B6C6C48-5A3907FC07FC6CB55A6C5C6C6C13C0011F90C7FCEB07FC23247CA32C>I<397FF01FE039-FFF8FFF801F913FE90B6FC6C158000019038F07FC09138C01FE091380007F049EB03F85B-ED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE091-38E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367F-A32C>I<903903FC078090391FFF0FC0017F13CF48B512EF4814FF3807FE07380FF00148-487E49137F4848133F90C7FC48141F127E150F5AA87E007E141FA26C143F7F6C6C137F6D-13FF380FF0033807FC0F6CB6FC6C14EF6C148F013F130FEB07F890C7FCAD0203B5FC4A14-80A36E140029367DA32C>I<D87FFEEB7F80B53803FFE0020F13F04A13F86C5B39003F7F-C3ECFE039138FC01F09138F800E04A13005C5CA25CA391C8FCAF007FB512F0B6FC815D7E-25247DA32C>I<90387FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB-00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00-FE0078147F00FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8-148039701FFC0020247AA32C>I<130F497EA9007FB6FCB71280A36C150026001F80C7FC-B1ED03C0ED07E0A5ECC00F010FEB1FC0ECF03F6DB5128016006D5B010013F8EC3FE0232E-7EAD2C>I<3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900-FE03FF90B7FC6D15807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE-148314016C15FC3A03E0000F80A26C6CEB1F00A36C6C133EA3017C5BA3017E13FC013E5B-A2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A14-7C27247EA32C>I<D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A56D130300-035DA3143E147FA2D801F0495AECFF87A214F7A2D800F1EBC78001F913CF14E3A201FB13-EFA2017B91C7FC14C1017F13FFA21480A2013F5B90381F007C29247FA32C>I<3A3FFF83-FFF048018713F814C714876C018313F03A00FC007E005D90387E01F8013F5BEB1F839038-0F87E0ECCFC0903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807-CFC0EB0FC7EC83E090381F03F0496C7EEB7E00017C137C01FC137E48487F3A7FFF01FFFC-1483B514FE6C15FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113-FC3A03F0000F801201ED1F007F1200153E7F137C017E5B133EA2013F13FC6D5BA2EB0F81-5DA2EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA26EC7FCA3143EA2147E147CA2-14FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA03E0-27367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C49-5AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01-E04848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF0207138014-1F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C-7FC67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F14070200130021417BB9-2C>I<127812FCB3B3B3A9127806416DB92C>I<EA7FC0EAFFF813FE6D7E6C7FC67F131FEB-07F01303B380EB01FEECFFC06D13FF6E1380141F147F91B512004913C04AC7FCEB03F85C-B31307EB1FE013FF007F5BB55A49C8FC13F8EA7FC021417BB92C>I-E /Fk 19 120 df<151E153E15FE1403140F147FEB07FF0003B5FCB6FCA3EBF87FEAFC00-C7FCB3B3B3A6007FB712FCA52E4E76CD42>49 D<EC3FFC49B512C0010F14F8013F14FE90-B77E48D9007F7FD803F8010F13F048486D7FD80FC06D7F48486D7F48C87F82D87FE06E13-8013F86D6E13C012FF7F7013E0A56C5AA26C5A6C5AEA0380C914C05EA218805E18005E5F-4C5A5F4B5BA24B5B4B138094C7FC4B5A4B5A4B5AED7FE05E4B5A4A90C8FCEC03FC4A5A4A-5A4A48EB03E04A5A4A5A4AC7FC02FCEC07C0495A495A495A495A4948140F49C8FC017E15-1F90B8FC4817805A5AA25A5A5A5AB9FC1800A4334E79CD42>I<913807FFC0027F13FC01-03B67E010F15E090261FF80313F890267FC0007F01FEC7EA3FFE48488148486E138013FE-486C6C6D13C0804817E080A66C5B18C06C5B6C90C75AD80038168090C8FC4C1300A24C5A-5F4C5A4B5B4B13C0030F5BDB7FFEC7FC91387FFFF816C016FCEEFF80DA000313E0923800-7FF8EE3FFE707E7013807013C018E07013F018F8A218FC82A218FEA3EA03C0EA0FF0EA3F-FC487EA2B5FCA218FCA25E18F8A26C4816F0495C4916E0D83FE05C6C484A13C0D80FF04A-1380D807FE91387FFE003B03FFE003FFFCC690B65A6D15E0010F1580010102FCC7FCD900-1F1380374F7BCD42>I<B8D88007B712FCA5D8000701F0C9003FEB8000B3AE92BAFCA503-F0C9123FB3B1B8D88007B712FCA55E527CD167>72 D<EC3FFE0107B512E0011F14FC017F-14FF2701FFC00F13C02703FE00037F486C01007F6E6D7E486D80707EA2707EA3707F6C5B-6C90C7FC6C5AC9FCA60307B5FC0203B6FC147F0103B7FC011FEBF00F017F1300EBFFFC00-0313F04813C0485B4890C7FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C003F03F713-C36DD901E314E06CD9800714FF00079026F01F8114C06C90B5C61480C602FC6D1300011F-01F0EB3FFC01010180EB07F03C387CB642>97 D<EB3FF8B5FCA51203C6FCB3A4EEFFE003-0713FE033F6D7E92B612E09126F9FE0013F8DAFFF0EB3FFE03C0EB0FFF4B6D138092C76C-13C04A6E13E05C4A6E13F019F8187F19FCA319FE183FA319FFAD19FEA3187F19FCA219F8-18FF19F05F6E16E06E4A13C06E4A13806F491300DACFC0495ADA87F0EB7FFC913A03FC03-FFF049C6B65A49013F148049010F01FCC7FC90C7000113C040547CD249>I<913803FFE0-023F13FE91B67E010315E0010F9038803FF8903A3FFC0007FC4948497E4948131F484949-7E485B485BA24890C7FC5AA248486E5A705A705A007F92C8FC5BA312FFAD127F7FA3123F-7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D6C495A6DB4EB07F001-0F9038E01FE06D90B5128001014AC7FCD9003F13F80203138031387CB63A>I<EF07FF04-1FB5FCA5EE007F171FB3A4913803FF80023F13F049B512FE0107ECFF9F499038803FDF90-273FFE0007B5FCD97FF87F49481300484980484980485B488291C8FC5A5B123FA2127F5B-A312FFAD127FA37F123FA3121F7F6C5E6C7F5F6C6D91B5FC6C6D5B6C6D010714C0D97FFC-D91FDF13FFD91FFFEB7F9F01079038FFFE1F010114F86D6C13E002070100EBFC0040547C-D249>I<913807FF80027F13F849B512FE01076E7E011F010313E0903A3FFC007FF0D97F-F06D7E49486D7E4849130F48496D7E48824890C77E1880485A82003F17C0A3485A18E082-A212FFA290B8FCA401FCCAFCA6127FA37F123FA2EF03E06C7E17076C17C06C6D140F1880-6C6D141F6C6DEC3F006C6D147ED97FFC495AD91FFFEB07F86D9038E03FF0010390B512C0-01005D023F01FCC7FC020113E033387CB63C>I<DA3FFE14FE49B539C007FF80010FDAF8-3F13C0013FDAFE7F13E0903B7FF80FFFFE072701FFE003EBF07F48496C13E048496CEBF0-3F91C7007F14C048EEF81F489338FC070049023F90C7FCA2003F82A9001F5EA26D147F6C-5E6C5E6E13FF6C6D485B6C6D485B6CD9F80F90C8FC4890B55AD803CF14F801C114C02707-C03FFEC9FC49CBFC120FA27FA27FA27F13FC90B612FEEEFFF06C16FCEFFF806C8318F06C-836C837F48B87E1207D80FFCC700037FD83FF8EC003F49150F48486F138083485A83A56D-5D007F18006D5D003F5F6C6C4B5A01FE153FD807FFED7FF06C01C049485AC601FC011F13-80013FB648C7FC010F15F8010115C0D9000F01F8C8FC3B4F7CB542>103-D<EB3FF8B5FCA51203C6FCB3A4EE3FF84BB5FC030714C04B80DB3F817FDB7C007F4B6D7E-DAF9F0133FDAFBE0805DDAFF80131F92C77FA25CA25CA35CB3ADB6D8F81FB6FCA540537B-D249>I<133FEBFFC0487F487FA2487FA66C5BA26C5B6C5B013FC7FC90C8FCAEEB1FF8B5-FCA512017EB3B3A6B612F8A51D547CD324>I<EB3FF8B5FCA51203C6FCB3B3B3B1B612F8-A51D537CD224>108 D<D93FF0EB3FF8B549B5FC030714C04B80DB3F817FDB7C007F0003-4A6D7EC6D9F1F0133FDAF3E0805DDAF780131F92C77F14FF5CA25CA35CB3ADB6D8F81FB6-FCA540367BB549>110 D<913801FFC0023F13FE91B67E010315E0010F018013F8903A3F-FC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83-A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B-5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790-B512F0010115C0D9003F49C8FC020313E039387CB642>I<903903FFC00E011FEBFC1E90-B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F90C8127EA248-153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E06C816C15FC6C-81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F6C153FA2161F-7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486CB512F0D8F81F-14C0D8F00791C7FC39E0007FF02B387CB634>115 D<143EA6147EA414FEA21301A31303-1307A2130F131F133F13FF5A000F90B512FEB7FCA426003FFEC8FCB3A9EE0F80ABEE1F00-6D7EA26D143E15806D6D5A6DEBE0FC6DEBFFF86D6C13E0021F5BDA03FEC7FC294D7ECB33->I<D93FF8EC07FFB5021FB5FCA50003ED007FC6161FB3AE5FA35FA294B5FC137F5E6EEB-03DF013F020714C06D6CD90F9F13FF903A0FFF803F1F6DEBFFFE010114F86D6C13E00207-0100EBFC0040377BB549>I<B600C1B6D8800FB5FCA500019026F0000301C0C7EA3FC06E-F01F806C6F6D1500A26E6D6D5C017F193E6E187E013F6F6C147CA26E6F14FC6D616F13FF-7213016D4A5E03C016036D705C5E03E001E7EB80076D61DBF007150F6D03C301C05B160F-03F80181EBE01F6D96C7FCDBFC1F5D027F0200EBF03E5EDBFE3E90387FF87E023F177CED-FF7E047C90383FFCFC6E01FC5D4CEB1FFD6EEEFFF0A24C7F6E5FA26E496D5BA24C7F6E5F-A26E496D90C8FCA293C8FC6F5DA2033E157C58367DB45F>119 D-E /Fl 71 123 df<B81280A2290280962A>21 D<BD12C0A25202809653>I<EC0FF0EC7F-FC903801F80F903907E0038049486C7E90381F800F4948487E5B137EA25B6F5A0303C7FC-92C8FCA9ED07E0B7FCA33900FC001F1507B3AA486C497E263FFFE0B51280A3293B7FBA2E->28 D<EC0FF891387FFEE0903801F807903807E00F90380FC01FEB1F80EB3F005B137E15-0F491307ADB7FCA33900FC0007B3AB486C497E263FFFF1B51280A3293B7FBA2E>I<007C-137C00FE13FEEAFF01A3EAFE00A7007E13FC007C137CA8003C137800381338A700181330-171E77BA2A>34 D<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A-1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB0700130E131E5B5B-A25B485AA2485AA212075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2-121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E0146013-5279BD20>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E13-1EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C-137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527BBD20>I<121C127FEA-FF80A213C0A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A197988-17>44 D<B512F8A515057F941C>I<121C127FEAFF80A5EA7F00121C0909798817>I<1506-A2150E150CA2151C151815381530A215701560A215E015C0A214011580A2140315005C14-06A2140E140CA2141C1418A214381430A21470146014E05CA213015CA2130391C7FCA25B-1306A2130E130C131C1318A213381330A213701360A213E05BA212015B120390C8FCA25A-1206A2120E120CA2121C1218A21238123012701260A212E05AA21F537BBD2A>I<EB03F8-EB1FFF90387E0FC09038F803E03901E000F0484813780007147C48487FA248C77EA24815-80A3007EEC0FC0A500FE15E0B3007E15C0A4007F141F6C1580A36C1500A26C6C133EA26C-6C5B6C6C5BEBF0013900F803E090387E0FC0D91FFFC7FCEB03F823397DB62A>I<EB01C0-13031307131F13FFB5FCA2131F1200B3B3A7EB7FE0007FB512F0A31C3779B62A>I<EB0F-F0EB7FFE48B57E3903E03FE0390F000FF0001E6D7E001C6D7E486D7E5A6E7E126012FE6C-EC7F807FA56CC7FC121CC8FCEDFF00A25D14015D14035D4A5A4A5A5D4A5A4AC7FC147E5C-495A14E0495A495A49C8FC011EEB01805B5B49130348481400485A485A90C75A48B6FC5A-5A485CB6FCA321377CB62A>I<EB07F8EB3FFF90B512C03901F80FF03903C007F848486C-7E390E0001FEEA0F80391FE000FF7FA56C5A6C5AC7485AA25D14035D4A5A5DEC0F80027F-C7FCEB1FFCECFF809038000FE0EC03F0EC01FC816E7EED7F80A216C0A2153F16E0A2121E-EA7F80A2487EA316C0157F491480007EC7FC0070ECFF006C495A121E390F8003F83907F0-0FF00001B512C06C6C90C7FCEB0FF823397DB62A>I<1538A2157815F8A2140114031407-A2140F141F141B14331473146314C313011483EB030313071306130C131C131813301370-136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800AA4A7E-0103B512F8A325387EB72A>I<0006140CD80780133C9038F003F890B5FC5D5D158092C7-FC14FC38067FE090C9FCAAEB03F8EB1FFE90387C0F809038E007E03907C003F0496C7E13-0000066D7E81C8FC8181A21680A4121C127F5A7FA390C713005D12FC00605C12704A5A6C-5C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE021397CB62A>I<-EC3FC0903801FFF001077F90380FE03C90383F800E90387E003F495B48485B485A12075B-000F147E49133C001F91C7FC5B123FA3127F90C9FCEB01FC903807FF8039FF1E07E09038-3801F0496C7E01607F01E0137E497F16805BED1FC0A390C713E0A57EA47F123F16C0A200-1FEC3F807F000F15006D5B000714FE6C6C5B6C6C485A3900FE07F090387FFFC0011F90C7-FCEB03FC23397DB62A>I<12301238123E003FB612E0A316C05A168016000070C7120600-60140E5D5D00E014304814705D5DC712014A5A4AC7FC1406140E5CA25C1478147014F05C-1301A213035C1307A2130FA3131F5CA2133FA5137FA96DC8FC131E233A7BB72A>I<EB03-F8EB1FFF017F13C09038FC07F03901E001F83903C0007C485A90C77E48141E000E141F00-1E80A3121FA27F6D131E7FD80FF85B6D137C01FF13786C6D5A6CEBE3E0ECF7806C01FFC7-FC6C6C5A6D6C7E010F13E0013F7F01F913FC3901E07FFE48486C7E380F800F48486C1380-001E010113C0487F007C143F0078EC1FE0150F4814071503A21501A36C15C0A200781403-007C15806C14076CEC0F006C6C131ED807E0137C3903F803F0C6B55A013F1380D907FCC7-FC23397DB62A>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F0012-1C092479A317>58 D<1538A3157CA315FEA34A7EA34A6C7EA39138063FC0A34A6C7EA34A-6C7EA202387FEC3007A202707FEC6003A202E07FECC001A20101804A7EA201038191C712-7FA2498191B6FCA24981010CC7121FA24981160FA249811607A249811603A201E0810001-1501486C4A7ED80FFC4A1380B56C90B512FEA3373C7DBB3E>65 D<B712F016FE707EC690-39C0003FE06D48EB0FF0707E707E707EA2707EA21880A718005E5F4C5A4C5A4C5A4C5AEE-7FC091B500FEC7FCA2913980003FC0EE0FF0EE03F8707E707E83EF7F80A218C0173F18E0-A718C0177FA2EFFF8018005E4C5AEE0FFC496CEB3FF8B812E0178004FCC7FC33397EB83B->I<913A01FF800180020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB-039F4948EB01DFD93F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507-A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F16031800-6C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903-FCEB0F80902701FF803FC7FC9039007FFFFC020F13F002011380313D7BBA3C>I<B712E0-16FCEEFF80C6D9C0007F6D48EB1FF0EE07F8EE01FC707E177FEF3F80A2EF1FC018E0170F-18F0170718F8A3EF03FCA418FEAC18FCA4EF07F8A218F0A2170F18E0EF1FC0A2EF3F80EF-7F0017FE4C5AEE07F8EE1FF0496CEB7FC0B85A04FCC7FC16E037397EB83F>I<B812FCA3-C69038C0000F6D481300177E173E171E170EA21706A417078316C0A394C7FCA31501A215-03150F91B5FCA3EC800F15031501A21500A21860A318E093C712C0A41701A3EF0380A217-07A2170F171F177F496C903807FF00B9FCA333397EB838>I<B812FCA3C69038C0000F6D-481300177E173E171E170EA21706A417071703A216C0A21700A41501A21503150F91B5FC-A3EC800F15031501A21500A693C7FCADEBFFE0B612F0A330397EB836>I<913A01FF8001-80020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD9-3F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A1703123F5B-007F1601A35B00FF93C7FCAB4BB512FEA2127F6DD9000113C09338007F80A2123F7F121F-A26C7EA26C7EA26C7E6C7E000016FF137F6D6C5BD91FE014DF6D6CEB038FD903FCEB0F07-903A01FF803E03903A007FFFF801020F01E0C7FC02011380373D7BBA41>I<B600C1B612-80A3C69026C00001EB80006D486D90C7FCB3A491B7FCA30280C7FCB3A6496C497FB600C1-B61280A339397EB83E>I<B612C0A3C6EBC0006D5AB3B3AD497EB612C0A31A397EB81E>I<-B612F0A3C601E0C8FCEB7F80B3AD170CA5171C1718A31738A31778A217F816011607EE0F-F0496C137FB8FCA32E397EB834>76 D<B56C923803FFFE6E5DA2C6F0FE00D96FE0ED0DFC-A2D967F01519A3D963F81531A3D961FC1561A2D960FE15C1A3027FEC0181A26E6CEB0301-A36E6C1306A36E6C130CA26E6C1318A36E6C1330A26E6C1360A36E6C13C0A392387F0180-A292383F8300A3ED1FC6A2ED0FECA3ED07F8A301F06D5A487ED807FE6D48497EB500F002-03B512FEA2ED00C047397EB84C>I<B56C0107B512808080D8007F9139003FF0006EEC0F-C0D96FF86E5A71C7FCEB67FCEB63FEA2EB61FF01607FA26E7E6E7EA26E7E6E7E8114076E-7E81806E138016C0157FED3FE016F0151FED0FF8ED07FCA2ED03FEED01FFA26F1383EE7F-C3A2EE3FE3EE1FF3A2EE0FFB70B4FCA28282A28283A28301F081487ED807FE81B500F080-A28339397EB83E>I<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D-7ED93F80EB07F049C76C7E01FE6E7E48486E7E49157E0003167F4848ED3F80A24848ED1F-C0A2001F17E049150F003F17F0A3007F17F8491507A300FF17FCAC007F17F86D150FA300-3F17F0A26C6CED1FE0A36C6CED3FC0000717806D157F000317006C6C15FEA26C6C4A5A01-7F4A5A6D6C495A6D6C495AD907E0EB1F80D903F8017FC7FC903900FE01FC91381FFFE002-0390C8FC363D7BBA41>I<B712C016F816FFC6D9C00013806D48EB3FE0EE0FF0EE07F816-0317FC17FE1601A217FFA717FEA2EE03FCA217F8EE07F0EE0FE0EE3FC0EEFF8091B5EAFE-0016F00280C8FCB3A5497EB612C0A330397EB838>I<B7FC16F016FCC69038C003FF903A-7F80007FC0EE1FE0707E707E707EA2707EA283A65FA24C5AA24C5A4C5AEE1FC0EE7F80DB-03FEC8FC91B512F05E91388007F8ED01FCED007F83707E707EA2160F83A583A619C0A283-16071801496C01031480B639C001FE0304001400EF7F07CAEA1FFEEF03F83A3B7EB83D>-82 D<90390FF0018090387FFC0348B5FC3903F00FC73907C001EF390F8000FF48C7127F-48143F003E141F007E140F127C150712FC1503A315017EA27E92C7FC6C7E7F13F06CB4FC-14F06C13FF6C14C06C14F06C806C806C6C7F010F7F01001480140F020113C0EC007F153F-ED1FE0A2150F12C0A21507A37EA216C07E150F6C15806C141F6C15006C5C6D137ED8FBE0-5B39F1FE01F839E07FFFF0011F13C026C001FEC7FC233D7BBA2E>I<003FB812E0A3D9C0-03EB001F273E0001FE130348EE01F00078160000701770A300601730A400E01738481718-A4C71600B3B0913807FF80011FB612E0A335397DB83C>I<B6D8C007B51280A3C601C0C7-383FF0006D48EC0FC0715A71C7FCB3B25F013F150680170E131F170C6D6C141C5F6D6C14-786D6C14706D6C5C6D6CEB03C0027F495A91263FC03FC8FC91380FFFFC020313F0913800-3FC0393B7EB83E>I<B500FE91B51280A3000301C091380FF8006C90C8EA07E0715A6C5F-80017F93C7FCA26E5C013F1506A26D6C5CA280010F5DA26E143801071530A26D6C5CA280-01015DA26E13016D5DA2ED8003027F91C8FC15C0023F1306A215E0021F5BA2EDF01C020F-1318A26E6C5AA215FC02035BA2EDFEE002015BA26E6C5AA36FC9FCA3153EA2151CA3393B-7EB83E>I<B5D8FC03B5D8F801B5FCA30007902680000F90C7EA1FF86C48C7D807FCEC07-E00001F103C0040316807F6C70150016016E5F017F6F14065E80013F609338067F80A26D-6C5F4C6C7EA26D6C5F4C6C7EA26E1770010702386D1360EE300F6E17E00103705BEE6007-8001014D5A9338C003FCA26D6C4CC7FC9239018001FEA2DA7F8115060383C712FFA2DA3F-C35D03C7158C03C6147F03E6159CDA1FEE15D803EC143F15FC020F16F04B141FA202075E-4B140FA202035E4B1407A202015EA24B1403020093C8FC503B7EB855>I<007FB539803F-FFFCA3C69026F8000790C7FC6D48EB03FC6D48EB01F06D6C5C5F6D6C5C6D6C49C8FC5E6D-6C130601015C6E131C6DEB80185E91387FC07091383FE06016E091381FF1C0020F5B15FB-6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F91380607FC-91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E01016E7E495A91C76C7E4914-07010E81010C6E7E131C013E6E7E01FE822607FF8001077FB500F0013FEBFF80A339397E-B83E>I<B691383FFFE0A3000101E0913807FE006C49EC03F0017F6F5A6D6C5D606D6C4A-C7FCA26D6C14066E140E0107150C6D6C141C17186D6C5C816D5D6E6C13E05F91383FE001-5F6E6C48C8FCEC0FF81606913807FC0E160C913803FE1C913801FF185E6E13B016E0157F-6F5AB3A24B7E027FB512C0A33B397FB83E>I<003FB7FCA39039FC0001FE01C013034949-5A003EC7FC003C4A5A5E0038141F00784A5A12704B5A5E006014FF4A90C7FCA24A5A5DC7-12074A5AA24A5A5D143F4A5AA24A5A92C8FC5B495AA2495A5C130F4948EB0180A2495A5C-137F495A16034890C7FC5B1203485AEE0700485A495C001F5D48485C5E4848495A49130F-B8FCA329397BB833>I<EB1FE0EBFFF83803E03E48C66C7E486C6C7E486C6C7E13E06E7E-A26E7EEA0FC0EA0780C7FCA4147FEB0FFFEB7FE13801FE01EA07F8EA0FE0EA1FC0EA3F80-127F130048150C5AA31403A26C13076C13069039800E7C183A3FC01C7E383A0FE0783FF0-3A03FFE01FE03A007F800F8026277DA52A>97 D<EA03F012FFA3120F1203B0EC1FC0ECFF-F09038F3E07C9038F7003F01FEEB0F804914C049EB07E0ED03F05BED01F8A216FCA21500-16FEAA16FC1501A216F8150316F06DEB07E0A26DEB0FC001CEEB1F8001C7EB3E00903883-C0FC903800FFF0C7EA3F80273B7DB92E>I<EB03FC90381FFF8090387E03E09038F80070-D803F013F83907E001FC380FC003A2EA1F80123F90380001F8EC00F0481400A2127E12FE-AA127E127FA26C14067F001F140E6D130C000F141C6C6C13386C6C13706C6C13E039007E-07C090381FFF00EB03F81F277DA525>I<ED1F80EC07FFA3EC007F151FB0EB03F8EB1FFE-90387E079F9038F801DF3903F000FF4848137F4848133FA24848131F123F90C7FC5AA212-7E12FEAA127E127FA27EA26C6C133FA26C6C137F6C7E0003ECFFE03A01F803DFFE39007C-0F1FEB1FFED907F01380273B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F0-01F0D807E013F8380FC0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FC-A5127EA2127FA26C14037F001F14076C6C13060007140E6D131CD801F013386C6C137090-387E03E090381FFF80903803FC0020277EA525>I<147E903801FF80903807E1E0EB0F87-90381F8FF0EB3F0F133E137EA29038FC03C091C7FCADB512F8A3D800FCC7FCB3AB487E38-3FFFFCA31C3B7FBA19>I<ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00F-E03903E007C03A07C003E010000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D-485A6D48C7FC38073FFC38060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF-804815C03A0F80007FE048C7EA0FF0003E140348140116F8481400A56C1401007C15F06C-EC03E0003F1407D80F80EB0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC2638-7EA52A>I<EA03F012FFA3120F1203B0EC1FC0EC7FF89038F1E0FC9038F3807E9038F700-3F13F601FE7F491480A25BA25BB3A4486CEB3FC0B538C3FFFEA3273A7DB92E>I<EA03C0-EA0FE07F121FA3120F5BEA03C0C8FCAAEA03F012FFA312071203B3AA487EB512C0A31238-7EB717>I<EB01C0EB07F0EB0FF8A5EB07F0EB01C090C7FCAAEB03F813FFA313071301B3-B3A2123C127E00FF13F01303A214E038FE07C0127C383C0F00EA0FFEEA03F8154984B719->I<EA03F012FFA3120F1203B1913803FFF8A302001380EDFE0015F85DEC01C04A5A4AC7-FC140E5C5C147814F8EBF1FCEBF7FEEBFE7E497E01F87FEBF01F6E7E6E7EA26E7E6E7E81-1400157E157F811680486CEB7FE0B538C1FFFEA3273A7DB92C>I<EA03F012FFA3120F12-03B3B3AD487EB512C0A3123A7EB917>I<2703F00FE0EB3F8000FF903A7FF801FFE0913A-F07E03C1F8903BF1C03F0700FC280FF3801F8E137E2603F700139C01FED90FB8133E4902-F0133FA2495CA2495CB3A4486C496CEB7F80B500C3B5380FFFFCA33E257DA445>I<3903-F01FC000FFEB7FF89038F1E0FC9038F3807E390FF7003FEA03F601FE7F491480A25BA25B-B3A4486CEB3FC0B538C3FFFEA327257DA42E>I<EB03FE90380FFF8090383E03E09038F8-00F84848137C48487F48487F4848EB0F80001F15C090C712074815E0A2007EEC03F0A400-FE15F8A9007E15F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C-137EC66C13F890387E03F090381FFFC0D903FEC7FC25277EA52A>I<3903F01FC000FFEB-FFF09038F3E0FC9038F7003FD807FEEB1F806C48EB0FC049EB07E016F049130316F81501-16FCA3ED00FEAAED01FCA3ED03F8A2ED07F06D14E0150F6DEB1FC06D148001F7EB7E0090-38F3C0FC9038F0FFF0EC3F8091C8FCAB487EB512C0A327357DA42E>I<903903F8018090-381FFE0390387E07839038FC01C73803F000000714EF4848137F49133F121F485A151F48-C7FCA312FEAA127FA37E7F001F143F7F000F147F6C6C13FF3903F001DF3901F8039F3900-7E0F1FEB1FFEEB07F090C7FCABED3FC0913807FFFEA327357DA42C>I<3807E03E00FFEB-FF809038E1C7C09038E38FE0380FE70FEA03EE13ECEC07C09038FC010049C7FCA35BB3A3-487EB512F0A31B257DA421>I<EBFF03000313E7380F80FF381E003F487F487F00707F12-F0A2807EA27EB490C7FCEA7FC013FF6C13E06C13F86C7F00037FC67F01071380EB007F14-1F00C0EB0FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038C0-3F801A277DA521>I<1318A51338A31378A313F8120112031207381FFFFEB5FCA23801F8-00B21403A93800FC071406A2EB7E0EEB3F1CEB0FF8EB03F018347EB220>I<D803F0EB1F-8000FFEB07FFA3000FEB007F0003141FB3A5153FA2157F12016D13FFEDDFE02600FC0113-FE90387E079F90381FFE1FD903F8138027267DA42E>I<B538803FFEA33A0FF8000FF0D8-03F0EB07C0ED03806C7E16007F00001406A26D130E017E130CA26D5BA2EC8038011F1330-A26D6C5AA2ECE0E001075BA2903803F180A214F9D901FBC7FCA2EB00FEA3147CA31438A2-27257EA32C>I<B53A1FFFE03FFEA3260FF8009038000FF86C48017EEB03E018C00003EE-0180033E13036C6C013F1400A36C6CEC8006156F6D150E017EECC00C15C7017F151C6DEC-E018EC0183D91F815C028313F01501D90FC35C02C713F8ECC600D907E66D5A02EC137CA2-D903FCEB7F804A133FA2010192C7FC4A7FA20100141E4A130E0260130C37257EA33C>I<-B538C07FFFA300039038003FF06C48EB1F800000021EC7FC017E131C6D13186D6C5AECC0-70010F5B6D6C5A903803F18014FB6DB4C8FC6D5AA2147F804A7E8114CF903801C7E09038-0383F0EC03F8EB0601496C7E011C137E49137F01787F496D7E486C80000FEC3FF0D8FFFE-90B51280A329247FA32C>I<B538803FFEA33A0FF8000FF00003EC07C0ED038012011600-6D5B00001406A2017E5BA2017F131C6D1318A26D6C5AA2ECC070010F1360A26D6C5AA214-F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460A25CA2EA7C0100-FE5B130391C8FC5BEAFC0EEA701C6C5AEA1FF0EA07C027357EA32C>I<003FB512FCA2EB-8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F800060137F150014FE49-5AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A0007140E5B4848130C-4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>I-E /Fm 1 14 df<933803FFE0047F13FF0303B612E0030F15F8923A7FFE003FFFDBFFC001-017FDA03FEC8EA3FE0DA0FF8ED0FF8DA1FC0ED01FC4A486F7E02FECAEA3F804948717ED9-03F0EF07E04948717E4948717E4948717E49CC127E017E85017C8549737E000187491907-4848737EA24848737E000F8749190090CE1278481B7CA2003E87A2003C1B1EA2007C1B1F-A2007887A200F81C80A2481B07AC6C1B0FA200781C00A2007C63A2003C1B1EA2003E1B3E-A26C63A26C1B786D1AF86D19010007636C6C4F5AA26C6C4F5A6D190F000063017C4FC7FC-017E616D197E6D6C606D6C4D5A6D6C4D5A6D6C4D5AD901FCEF1FC06D6C4D5ADA3F8004FE-C8FC6E6C4B5ADA0FF8ED0FF8DA03FEED3FE0912600FFC0903801FF80DB7FFE013F90C9FC-030FB612F8030315E0DB007F91CAFC040313E0595C7BC664>13 D-E /Fn 23 126 df<EA07C0EA0FF0EA1FF8123F13FCA213FEA2121F120F1207EA007E13FE-A213FC1201EA03F81207EA0FF0EA7FE012FF13C013005A12780F196E8A33>44-D<007FB512FEB7FCA46C14FE2006779833>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F-80EA1F000B0B6C8A33>I<EC07F8EC3FFF91B57E010314E0010F80498090383FFC0F9039-7FE003FC9038FF80014890C77ED803FC147E49EB7E7F0007903801FFBFD9F00713FF4848-481480495A001F5B018013C3003FEB7F810100010013C002FE137F4849133FEA7E014A13-1FA212FEEAFC034A130FA96E131FD8FE011580127EA26E133FD87F0015006C6D5B027F13-FE01801381001F90383FC3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F80113800003D900-7EC7FC6D9038000F806CB4EC1FC06C6D133FD97FE013FF90263FFC0713806DB612006D5C-010314F801005C023F1380DA07FCC7FC2A3F7CBD33>64 D<EB1FFC90B57E000314E04880-4814FC48809038F007FFEBE0016E7F157F6C486D7E6C48131FC87F150FA5EC0FFF49B5FC-131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC05B48C7FC5AA56C141F7E6D13-7F01E0497E263FF80FEBFFF06CB712F87E6C14F36C14C1C69138003FF0D93FF090C7FC2D-2E7BAC33>97 D<EA7FFC487EA4127F1200AB4AB4FC020713C0021F13F0027F7F91B512FE-90B7FCDAFE071380ECF80002E0EB7FC04AEB3FE04A131FEE0FF091C7FCEE07F85B1603A2-17FC1601A9160317F8A26D140717F06E130F17E06E131FEE3FC06E137F9139F801FF80DA-FE07130091B55A495C6E5BD97E3F13E0D93C0F138090260003FEC7FC2E3E7FBC33>I<ED-FFF84A7FA4801501ABEB01FF010713C1011F13F1017F13F990B6FC5A4813813907FE003F-D80FF8131F49130F48481307491303123F491301127F90C7FCA25A5AA97E7E15037F123F-6D1307A26C6C130F6D131F6C6C133F6C6C137F2603FF83B512F891B612FC6C14FD6C6C13-F16D13E1010F018013F8D901FEC8FC2E3E7DBC33>100 D<ECFF80010713F0011F13FC49-7F90B6FC48158048018013C03A07FE003FE001F8EB0FF048481307484814F8491303003F-15FC491301127F90C7FC16FE15005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F-6C7E6D13016C6CEB03FC6CB4130F6C9038C03FF86C90B512F06D14E06D14C0010F140001-0313FC9038007FE0272E7BAC33>I<ED3FE0EDFFFC020313FE140F4A13FF5CEC7FE01580-9138FF007E4A133C010114005CA8003FB612F84815FCB7FCA36C15F8260001FCC7FCB3AD-001FB612C04815E0A46C15C0283E7DBD33>I<D901FEEB1FE0903A0FFFC0FFF0013F01F3-13F84990B512FC90B7FC5A48010313E12607FC00EB80F849017F1360484890383FC00049-131FA2001F8149130FA66D131F000F5DA26D133F6C6C495A6D13FF2603FF0390C7FCECFF-FE485C5D5DD80FCF13C0D981FEC8FC0180C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0-4815FC000F15FF4816809038F00007D83FC09038007FC049EC1FE048C8120F007E150700-FE16F0481503A56C1507007E16E0007F150F6C6CEC1FC001E0147FD81FF8903801FF8027-0FFF801F13006C90B55A6C5DC615F0013F14C0010F91C7FC010013F02E447DAB33>I<EA-7FFC487EA4127F1200AB4AB4FC020713C0021F13F0027F7F91B5FC90B67EED07FEECF801-ECF0004A7F4A7F5CA291C7FCA35BB3A43B7FFFFC0FFFFEB56C4813FFA46C496C13FE303D-7FBC33>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCAA383FFFF8487FB5FCA27E7EEA-0001B3AD007FB612C0B712E016F0A216E06C15C0243E78BD33>I<EA3FFC487E12FFA212-7F123FEA007EAC92B512F04A14F85CA2806E14F0923807F8004B5A4B5A4B5A4B5A4BC7FC-4A5A4A5A4A5A4A5A4A5A4A5A4A7E4A7E137F81ECF9FCECF1FE14E0ECC07F4A6C7E140001-7E6D7E6F7E8215076F7E6F7E821500167F3B3FFFFC07FFFC486D4813FEB65AA26C497E6C-496C13FC2F3D7FBC33>107 D<387FFFFCB57EA47EC7FCB3B3AD007FB612FCB712FEA46C-15FC273D7ABC33>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E-6C010F13872607FE07130301FC01FE7F9039F803FC01A201F013F8A401E013F0B3A53C7F-FE07FF03FF80B548018713C04A138FA26E13876C486C01031380322C80AB33>I<4AB4FC-267FFC0713C026FFFE1F13F0027F7F91B5FC90B67E6CEC07FEC6EBF801ECF0004A7F4A7F-5CA291C7FCA35BB3A43B7FFFFC0FFFFEB56C4813FFA46C496C13FE302C7FAB33>I<EB01-FE90380FFFC0013F13F0497F90B57E488048EB03FF2607FC0013804848EB7FC049133F48-48EB1FE049130F4848EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15F8A26D-1307003F15F06D130FA26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313006CEB-FFFE6C5C6D5B6D5B010F13C0D901FEC7FC262E7AAC33>I<ED03FE3B3FFFC01FFF8048D9-E07F13E0B590B5FC02E314F06C13E76C9038EFFE0FD8000F13F09139FFC007E092388003-C092C8FC5CA25C5CA35CA35CB2003FB6FC4881B7FCA27E6C92C7FC2C2C7DAB33>114-D<EB01E0497E1307AA003FB612F84881B7FCA36C5D260007F0C8FCB3A3161FEE3F80A66E-137F0103ECFF006E5A9138FF03FE6DEBFFFC6D5C6E5B6E5B6E1380DA03FCC7FC29387EB6-33>116 D<D87FFCEB3FFE486C497EA4007F800000EC007FB3A75EA25DA26D5B90387F80-0FDAE03F13FE6DB7FCA26D806D13FE01039038F83FFE010001C0C7FC302C7FAA33>I<3B-7FFFC00FFFF8B56C4813FCA46C496C13F8D80FE0C7EA1FC000071680A66C6CEC3F00A4EC-0FC0EC1FE0D801F8147EEC3FF0A4EC7CF80000157C01FC14FCA2ECFCFCA390397CF87CF8-A3017D137EECF03E017F133F013F5CA2ECE01FA26D486C5A6D486C5A2E2B7EAA33>119-D<ED0FF8EDFFFC1403140F5C4A13F891387FFC0015C04AC7FC5CB3A41301495A1307EB3F-F8EA3FFFB55A14C05C8014F0003F7FEA003FEB07FC13036D7E1300B3A480EC7FC015FC91-383FFFF86E13FC8014031400ED0FF8264D7AC433>123 D<EA7FE0EAFFFE6D7E14E0806C-7FC66C7E1307EB01FE1300B3A4806E7E81EC3FF0EDFFF06E13FC1407805C141F4A13F0ED-F000EC7FC05D4AC7FC5CB3A41301EB07FC137F387FFFF8B55A5C148049C8FCEA7FE0264D-7AC433>125 D E /Fo 38 253 df<121EEA7F8012FF13C0A213E0A3127FEA1E601200A4-13E013C0A312011380120313005A1206120E5A5A5A12600B1D78891B>44-D<B612C0A61A067F9721>I<14FF010713E090381F81F890383E007C01FC133F4848EB1F-8049130F4848EB07C04848EB03E0A2000F15F0491301001F15F8A2003F15FCA390C8FC48-15FEA54815FFB3A46C15FEA56D1301003F15FCA3001F15F8A26C6CEB03F0A36C6CEB07E0-000315C06D130F6C6CEB1F806C6CEB3F00013E137C90381F81F8903807FFE0010090C7FC-28447CC131>48 D<143014F013011307131F13FFB5FC13E713071200B3B3B0497E497E00-7FB6FCA3204278C131>I<EB03FE90381FFFC0017F13F03901F80FFC3903C001FE48486C-7E000EC7EA7F8048EC3FC0ED1FE04815F00030140F007015F800601407126CB415FC7F7F-1503A46C4813076CC7FCC8FC16F8A2150F16F0151F16E0A2ED3FC0ED7F8016005D5D4A5A-4A5A4A5A5D4A5A4A5A4AC7FC147C5C5C495A495A495A49C7120C131E5B013814185B5B48-5A4848143848C81230000E1570001FB612F0A25A5AB712E0A326427BC131>I<49B4FC01-0F13F0013F13FC9038FE01FE3A01F0007F80D803C0EB3FC048C7EA1FE0120EED0FF0EA0F-E0486C14F8A215077F5BA26C48130FEA03C0C813F0A3ED1FE0A2ED3FC01680ED7F0015FE-4A5AEC03F0EC1FC0D90FFFC7FC15F090380001FCEC007FED3F80ED1FC0ED0FE016F0ED07-F816FC150316FEA2150116FFA3121EEA7F80487EA416FE491303A2007EC713FC00701407-003015F80038140F6C15F06CEC1FE06C6CEB3FC0D803E0EB7F803A01FE01FE0039007FFF-F8010F13E0010190C7FC28447CC131>I<EC07F8EC3FFF91B51280903903FC07C0903907-E000E049481370D93F8013B090397E0003F801FE130749130F485A485AA24848EB07F000-0FEC03E092C7FC485AA3485AA3127FA29038007F80903801FFF090380780FC39FF0E003E-49EB1F8049EB0FC049EB07E0136001E0EB03F04914F8150116FC5BED00FEA390C812FFA4-7EA57F123FA216FE121F15016D14FC120FED03F86C7EED07F06C6C14E06C6CEB0FC06C6C-EB1F80017EEB3F0090383F80FE90380FFFF8010313E00100138028447CC131>54-D<121CA2EA1F8090B712C0A3481680A217005E0038C8120C0030151C00705D0060153016-705E5E4814014B5A4BC7FCC81206150E5D151815385D156015E04A5AA24A5A140792C8FC-5CA25C141E143EA2147E147CA214FCA21301A313035CA31307A6130FAA6D5AEB01C02A45-7BC231>I<14FF010713E0011F13F890387F80FC9038FC007E48487F4848EB1F804848EB-0FC0000FEC07E0485AED03F0485A16F8007F140190C713FCA25AA216FE1500A516FFA46C-5CA36C7E5D121F7F000F5C6C6C1306150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF-80FE903801FE0090C8FC150116FCA4ED03F8A216F0D807C01307486C14E0486C130F16C0-ED1F80A249EB3F0049137E6CC75A000E495A6C6C485A3903E01FE06CB512806C6C48C7FC-EB0FF028447CC131>57 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F-80A2EAFFC0A4EA7F80A2EA1E000A2B78AA1B>I<B912F8A3000101C0C7127F6C49EC07FC-017F15011700187C183C181CA284A31806A41807040C7FA395C7FCA4161CA2163C167CED-01FC91B5FCA3EC8001ED007C163C161CA2160CA319C0A3F0018093C7FCA41803A21900A2-60A260A2181EA2183E187EEF01FE01FF1507486D147FB95AA33A447CC342>69-D<B612F0A3C6EBF0006D5A6D5AB3B3B3A4497E497EB612F0A31C447DC323>73-D<B56C933807FFFC6E5EA20001F1FE002600EFE0EE1BFC016F60A2D967F01633A2D963F8-1663A3D961FC16C3A3D960FEED0183A2027FED0303A36E6C1406A36E6C140CA26E6C1418-A36E6C1430A36E6C1460A26E6C14C0A36E6CEB0180A3037FEB0300A292383F8006A36F6C-5AA36F6C5AA26F6C5AA36F6C5AA36F6C5AA26FB45AA370C7FC13F0A2486C023E4A7ED80F-FF4D7EB500F0011C0107B512FCA34E447BC359>77 D<B712FCEEFFC017F800019039C000-0FFE6C49EB01FF017F9138007F80EF1FE0170FEF07F018F8EF03FCA218FE1701A218FFA7-18FEA2170318FCA2EF07F818F0EF0FE0EF1FC0EF7F80933801FE00EE0FFC91B612F01780-0280C9FCB3A9497E487FB612C0A338447CC342>80 D<49B41303010FEBE007013F13F890-39FE00FE0FD801F8131FD807E0EB079F49EB03DF48486DB4FC48C8FC4881003E81127E82-127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA3FF813FE381FFFE06C13FE6CEBFFE0-6C14FC6C14FF6C15C0013F14F0010F80010180D9001F7F14019138001FFF03031380816F-13C0167F163F161F17E000C0150FA31607A37EA36C16C0160F7E17806C151F6C16006C5D-6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC00FE0D8E00FB51280010149C7FC39C0-003FF02B487BC536>83 D<003FB912E0A3903BF0003FF0007F01806D48130F003EC71503-48EF01F00078170019701270A219301260A5481818A5C81600B3B3A54B7EEDFFFC0103B7-FCA33D447CC346>I<B600C0010FB5FCA3000101E0C813F06C49ED1F806D48ED0F00A218-06B3B3A7180E6D6C150CA2181C131F6E1518010F163818306D6C1570606D6C14016D6C5D-6D6CEC0780027F4AC7FC6E6C131EDA1FE0137C913907FC03F00201B55A6E6C1380DB07FC-C8FC40467CC349>I<B60107B500F890380FFFFEA3000301E0D9001F90C813F06C0180DA-0FFCED3FC06C90C849ED1F000507821C0E6D6C6E6C150CA36D6C6F5DA36D6C4A6C5D1706-A26E020E6D1470010FDB0C7F1560A26E7014E00107DB183F5DA28001034B6C6C495AA36D-6C4A6C6C49C7FCA36D6C4A6C6C1306A391267F80016E5BEF8003A203C06F131C023F9026-0300011418A215E0021F01066D6C5BA36E6C486E6C5AA36E6C486E6C5AA3912603FC38ED-E1800430141FA2DBFE7015F302010160020F90C8FCA203FF16FF6E496E5AA36F486E5AA3-6FC86C5AA3031E6F5AA3030E5E030C16605F467EC364>87 D<EB07FCEB3FFF9038F80FE0-3903C003F048C66C7E000E6D7ED80FC0137E486C137F6D6D7EA36F7EA26C5AEA0380C8FC-A4EC0FFF49B5FC90380FFE1FEB3FC0EBFF00EA03FC485A485A485A485A127F5B176048C7-FCA3153FA36D137F007F14EF6D9038C7E0C0003F13013A1FE00783F13B07F81E03FF8027-01FFFC0113003A001FE0007C2B2E7CAC31>97 D<13FE12FFA3120312011200B315FE9138-07FFC091381F03F8913838007C02F0133F02C0EB1F8001FFEC0FC04A14E091C7EA07F049-140317F8A2EE01FCA217FEA2160017FFAB17FE1601A217FCA2EE03F8A26DEC07F017E06E-130F01FDEC1FC0D9F9C0EB3F80D9F0E0EB7E0002785B9039E01E03F09039C00FFFC09026-0001FEC7FC30467EC436>I<EC7F80903803FFF090380FC07C90383F000F017CEB038048-48EB01C00003140F4848EB1FE049133F120F485AA2123F49EB1FC0007FEC070092C7FCA2-90C9FC5AAB7E7FA2123F16306C7E16706C6C146016E06C6C14C06C6C13010001EC03806C-6CEB0700013F131E90381FC078903807FFF001001380242E7DAC2B>I<167FED7FFFA315-018182B3EC7F80903803FFF090380FC07C90383F000E017E130748486D5A48487F48487F-5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B0003-5C6C6C9038077F806C6C010E13C0013E011C13FF90381FC0F8903803FFE09026007F0013-0030467DC436>I<EB01FE903807FFC090381F03F090387E00FC49137E48487F485A4848-EB1F80000F15C049130F121F484814E01507A2007F15F090C7FCA25AA390B6FCA290C9FC-A67EA27FA2123F16306C7E1670000F15606C6C14E06D14C0000314016C6CEB03806C6CEB-0700013E131E90380FC078903803FFE09038007F80242E7DAC2B>I<EE0F80D901FCEB7F-E0903A0FFF81F0F090393F07E3819039FC01FF033A01F800FE014848017E13E00007027F-C7FC497F000F8149131F001F81A9000F5D6D133F000792C7FC6D5B0003147E6C6C5B6D48-5A3903BF07E090380FFF80260701FCC8FC90CAFCA25AA37F6C7E7F90B512F86C14FF16E0-6C15F86C6C8048B67E3A07C0000FFF48481300003FC8EA3F80003E151F48ED0FC0A24815-07A56C150F007C1680007E151F003E16006C153E6C6C5CD807E0495AD801F8EB07E0D800-7FEB3F8090261FFFFEC7FC010113E02C427DAC31>103 D<13FE12FFA3120312011200B3-15FF020313E091380F03F891381C00FC4A7F4A137E4A137F5C01FF6E7E5CA291C7FCA35B-B3A8486C4A7EB5D8FE3FB51280A331457EC436>I<13F0EA03FCA2487EA46C5AA2EA00F0-90C7FCAD13FE127FA3120312011200B3B0487EB512FCA316437EC21C>I<13FE12FFA312-0312011200B3A292381FFFF8A303071380923803FC0016F05E5E4BC7FC150E5D5D5D5D4A-5A4A5A1407EC1FC04A7E147FECE7F09038FFC7F81483EC01FC01FE7F1400157F82153F6F-7E82150F6F7E821503826F7E821780486C4913C0B5D8FE0F13FEA32F457EC433>107-D<13FE12FFA3120312011200B3B3B3A5487EB512FEA317457EC41C>I<01FED97F80EB0F-F000FF902603FFF0EB7FFE91260781FC9038F03F80913C1E00FE03C01FC000030138903A-7F07000FE0000149D93F0E1307000049029C804A149801FFDA1FF86D7E4A5CA291C75BA3-495DB3A8486C4A6C497EB5D8FE1FB500C3B512F8A34D2C7EAB52>I<01FE13FF00FF0103-13E091380F03F891381C00FC0003497F000149137E000049137F5C01FF6E7E5CA291C7FC-A35BB3A8486C4A7EB5D8FE3FB51280A3312C7EAB36>I<3901FC03F000FFEB0FFEEC1C1F-9138383F800003EB707F000113E0000013C013FD9138803F00151E01FF90C7FC91C8FCA4-5BB3A67F487FB67EA3212C7EAB26>114 D<90383FE0303901FFFC703907E01EF0380F00-07001E1303481301007C130000781470A212F81530A27EA27E6C1400EA7FC013FC383FFF-E06C13FC14FF000714C06C14E0C614F0011F13F81300EC0FFC140300C0EB01FE1400157E-7E153EA27EA36C143C6C147C15786C14F86CEB01F039F38003E039F1F00F8039E07FFE00-38C00FF01F2E7DAC26>I<1306A5130EA4131EA3133E137EA213FE12011207001FB512F0-B6FCA2C648C7FCB3A4150CAA017E131C017F1318A26D133890381F8030ECC070903807E0-E0903801FFC09038007F001E3E7EBC26>I<01FEEC3F8000FFEC3FFFA300031400000115-7F0000153FB3A8167FA316FFA2137E017F5B6D903803BFC0913980073FE0011F010EEBFF-80903807E03C903801FFF09026003FC0EB8000312D7EAB36>I<B539F001FFFCA3000790-C7EA7FE06C48EC1F8000011600161E0000151C7F6D1418A26E1338013F1430A26D6C5BA2-6E13E0010F5CA26D6C485AA214F8010349C7FCA26E5A01011306A26D6C5AA2ECFF1CEC7F-18A2EC3FB0A215F06E5AA36E5AA26E5AA36EC8FC2E2C7EAA33>I<B539F001FFFCA30007-90C7EA7FE06C48EC3F800001ED1F00161E0000151C7F6D1418A26D6C5BA26E1370011F14-60A26D6C5BA2800107495AA2ECF803010391C7FC14FC01011306A2ECFE0E0100130C14FF-6E5AA215B8EC3FB0A2EC1FE0A36E5AA26E5AA36EC8FCA21406A35CA2141C1418123C007E-5BB4FC5CA25CEAFE01387C0380D87007C9FCEA3C1EEA0FFCEA03F02E3F7EAA33>121-D<0170130ED801FCEB3F80486C497EA26D13FFA249137FA26C486D5AD80070010EC7FC90-CAFCAAEB07FCEB3FFF9038F80FE03903C003F048C66C7E000E6D7ED80FC0137E486C137F-6D6D7EA36F7EA26C5AEA0380C8FCA4EC0FFF49B5FC90380FFE1FEB3FC0EBFF00EA03FC48-5A485A485A485A127F5B176048C7FCA3153FA36D137F007F14EF6D9038C7E0C0003F1301-3A1FE00783F13B07F81E03FF802701FFFC0113003A001FE0007C2B427CC031>228-D<D9078013F090391FE003FCA2496C487EA46D486C5AA29039078000F090CBFCAB01FEEC-3F8000FFEC3FFFA3000314000001157F0000153FB3A8167FA316FFA2137E017F5B6D9038-03BFC0913980073FE0011F010EEBFF80903807E03C903801FFF09026003FC0EB80003142-7EC036>252 D E /Fp 28 120 df<C312FCA3860380A787>22 D<120FEA3FC0EA7FE0EA-FFF0A6EA7FE0EA3FC0EA0F000C0C748B25>46 D<EC03FF021F13E0027F13F8903901FE01-FE903903F8007FD90FE0EB1FC049486D7E49C7EA03F04981017E1401496E7E4848157EA2-484881A20007178049151F000F17C0A34848ED0FE0A3003F17F0A4007F17F8491507A700-FF17FCB3A9007F17F8A46D150FA3003F17F0A4001F17E06D151FA3000F17C0A26C6CED3F-80A2000317006D5D0001167E6D15FE00005E6D1401017F4A5A6D6C495A6D6C495A6D6C49-5AD907F8EB7F80902701FE01FEC7FC9039007FFFF8021F13E0020390C8FC36607ADD43>-48 D<15E0140114031407141F143FEB01FF1307137FB6FCEBFE3F13F81380C7FCB3B3B3-B3A24A7EA2903803FFFE007FB712F0A42C5E74DD43>I<EC1FFC91B512C0010314F0010F-14FC90391FC01FFF90267E000313C001F801007F4848EC3FF048486E7E496E7E48486E7E-48C86C7E120E001E6F1380121C003C6F13C012380078EE7FE01270A3B46CED3FF013E0A2-7FA66C5A6C5A0006C913E0CA127FA318C017FFA24C1380A218005E5F4C5AA24C5A4C5A5F-163F4C5A5F4CC7FC4B5A4B5A5E4B5A4B5A4B5A4B5A93C8FC157E5D4A5A4A5A4A5A5D4A5A-4AC9FC143E5C4A157013015C495A494815E0495A49C9FC133E5B017815015B484816C048-4815034848150748B8FC5AA25A5AB91280A4345E79DD43>I<170FA34D7EA24D7EA34D7E-A34D7EA34C7F17DFA29338039FFC178FA29338070FFE1707A2040E7F83041E80EE1C01A2-043C80EE3800A20478800470137FA24C80183FA24B4880181FA24B4880180F03078193C7-1207A24B81030E80A2031E82031C80A2033C82033880A24B82197FA24B82193FA24A4882-191F02038392B8FCA24A83A292C912074A83020E82A2021E84021C82A24A8485A24A841A-7FA24A841A3F0101854A171FA20103854A170FA201078591CB12075B87496C83013F8649-6C5F48486C85000701F8053F13F0B60407B612F0A45C657CE465>65-D<B912F8F0FF8019F019FCC66C48C8EA3FFFD91FFC030713C0010F04007FF13FF8F10FFC-737EF101FF737F747E747E747E747E1A0787747E1A0187741380A2F37FC0A2F33FE0A21C-F01B1FA21CF8A21B0F1CFCA31CFEA21B07A41CFFAF1CFEA51B0F1CFCA4F31FF8A21CF0A2-1B3F1CE01B7F1CC0A2F3FF80A2501300505AA2505A505A505A505A1A7F505A4F5B4F48C7-FCF10FFCF13FF8F1FFE0011F04035BD97FFE033F90C8FCBA12FC19F0198006F8C9FC5862-79E167>68 D<BC12C0A4C66C48C9FCD91FFC040F13E0010F1701F1007F1A3F1A1F1A0F1A-071A03A21A01A21BF01A00A41B70A61B381838A41B00A41878A418F8170117031707173F-91B7FCA402FCC7123F17071703170117001878A41838A31B07A41B0E95C8FCA51B1E1B1C-A31B3CA41B78A31BF8A21A011A03A2F207F01A0F1A3F1A7FF101FF011F170FD97FFE4BB5-FCBC12E0A4506279E15C>I<B812FCEFFFE018FCF0FF80C66C48C7000713E0D91FFC9138-007FF8010FEE0FFCF003FF727F726C7E737E737E86737E737EA2737EA287A28587A96361-A298C8FC616262190F4F5A624F5AF1FFC04E90C9FCF007FEF01FF8F07FE094380FFF8091-B748CAFC18E018F802FCC7EA0FFE943801FF809438007FE0727EF00FF8727E727E85727F-727FA2737EA3737EAA86AA1DE086191FA3070F14017414C007071403496C8390267FFF80-6FEC0780B700C06E9038800F00736D5A97383FF03E97380FFFFCCD000313F09738003FC0-5B6479E163>82 D<B600FE94B6FCA4C60280050F13E0D93FFECB6C13806D48953803FE00-755A010F735A6E61A20107626E18016D62A26F17036D62816D4FC7FCA281027F180EA26F-171E023F181C81021F60A26F1778020F1870811BF0020760816E4D5AA27015036E60821A-076E95C8FC82037F160EA270151E033F161C82031F5EA282030F5EA27015F003075E826F-4B5AA27113036F5E8319076F93C9FC83047F140EA271131E043F141C83193C041F143883-040F5CA27113F004075C831801705C188170EB8380A218C77091CAFC18E7EF7FEEA218FE-715AA3715AA2715AA3715AA3715AA260647EE165>86 D<EC3FE0903803FFFC010F13FF90-393FC03FC090397C000FF001F06D7E48486D7E48486D7E48486D7E48C86C7E7F01F06E7E-487E6D6E7EA3707EA36C5AEA03E0C9FCA616FF92B5FC140F91387FF80F903803FF00EB0F-FCEB3FE0495A4848C7FC485A485A485AA2485A485AA24848EE01C0A3485AA3161FA3163F-6D1437007F157716676D9139E3F80380003FEC01C36C6CEB03836C6C903A0701FC0700D8-07FE011EEBFE0E3C01FF80FC00FFFE27007FFFF06D5A011F01C0EB3FF0010390C7EA0FC0-3A4179BF43>97 D<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEEFF80030713F0031F-13FE92387E00FFDAC1F0EB3FC0DAC3C0EB0FE0DAC780EB07F802CFC76C7E02DE6E7E02FC-6E7E4A814A1680F03FC04A151F19E05CF00FF0A219F81807A219FCA3180319FEAD19FCA2-1807A319F8A2180F19F0A2F01FE080F03FC06E1680187F6EEDFF00023C5D021C4A5A021E-4A5A90263E0F80EB0FF06E6C495A90263C01E0EB7F80912700FC03FFC7FC92383FFFFC01-38010F13E090C7000190C8FC3F657BE34B>I<4AB4FC021F13F0027F13FC4948C6B4FCD9-03F8EB0FC0D90FF0EB03E0D91FC0EB00F04948147849C87E01FE810001163E4848EC01FE-494A7E00075D5B120F121F5BA2003F6F5A49EC00F894C7FC127FA35B12FFAE6C7EA4123F-7FA2001FEE03807F000F16076D160012076D5D0003160E6C6C151E6C6C5D6D6C5C6D6C5C-6D6C495A6D6C495AD907FCEB0F80902701FF807FC7FC9039007FFFFC021F13F0020190C8-FC31417ABF3C>I<1878EFFFF8161FA4EE003F170FA21707B3AA4AB4FC020F13E0027F13-F8903901FF807E903A03FC000F87D90FF0EB07C74948EB01E7D93F80EB00F749C8127F01-FE153F12014848151F49150F120748481507A2485AA2123F5BA2127FA35B12FFAE127F7F-A3123FA27F121FA26C7E170F12076D151F6C6C153F12016C6C157F6D15F76D6C903801E7-FC6D6CEB03C7D90FE090380F87FFD907F8D91F0713FED901FE13FC6DB512F0021F13C091-2603FE00EBFC003F657AE34B>I<EC03FE91381FFFE091B512F8903901FE03FE903A07F0-007F8049486D7ED93FC06D7E49C76C7E496E7E4914034848814848140100078249140000-0F8283485A1880123F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA312-3FA27F121FEF01C06C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C-6D6C5C6D6C5CD907F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201-138032417BBF3C>I<ED0FE0ED7FF8913801FFFE913807F03F91390FE01F8091383FC07F-91397F80FFC05D14FE13015C0103EC7F805C0107EC1E0093C7FCA2495AB3A5B712E0A426-000FF0C8FCB3B3B0497EEB3FFE003FB6FCA42A657DE429>I<187FDA07F8903803FFC0DA-3FFF010F13E091B539C03F83F0903B03FC0FF07807903A07F003F9E0903A1FC000FFC049-48EB7F0091C76CEB03E0496FC7FC01FE6E7EA248486E7EA2000382A2491407000782AA00-035E6D140FA200015EA26C6C4A5AA2017F4A5A6D92C8FC6E5B6E13FE903937F003F89039-73FC0FF001E0B512C0023F90C9FCEC07F84848CBFCA57FA37F7F7F6CB4FC91B512FC6DEC-FFE017FC6D15FF6D16C06D16F0013F8201FEC700037FD803F89138001FFED807E0150748-48ED01FF484881003FEF7F8090CA123F127EF01FC012FE48170FA66C171F007E1880A200-7F173F6C6CEE7F00001F177E6C6C5E6D1501D803F8ED07F06C6C4B5A6CB4ED3FC0D93FE0-49B4C7FCD90FFEEB1FFC0103B612F0D9007F1480020301F0C8FC3C5E7CBF43>I<133C13-FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA41201EA007FA2133F-B3B3AC497E497EB612E0A41B5F7CDE25>105 D<EB03C0EA07FFB5FCA41201EA007FA213-3FB3B3B3B3AD497E497EB612F0A41C647CE325>108 D<D903C0D9FFC0EC07FED807FF01-0301F891381FFFC0B5010F01FE027F13F0923D3F00FF8001F807FC0378903B3FC003C001-FEDAC1E090261FE00FC77E0001D9C3C090260FF01E6E7ED8007F49902607F81C6E7E02C7-C75CD93FCE6E6C486E7E02CC166002DC16E002D85E02F8DA01FF6F7E4A5EA24A93C8FCA4-4A5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8803FB512FCA4663F7BBE71>I<D9-03C0EBFF80D807FF010713F8B5011F13FE92383E01FF9239F8007F80DAC1E06D7E0001D9-C3C06D7E27007FC7806D7E92C7FCD93FCE6E7E14DCA214F8717E5CA25CA45CB3B3496C4A-7E496C4A7EB6D8F00FB6FCA4403F7BBE4B>I<4AB47E020F13F0027F13FE4AC67ED903F8-EB1FC0D907E0EB07E0D91FC0EB03F849486D7E49C87E01FE157F49814848ED1F80000317-C04848ED0FE0A24848ED07F0A2001F17F8491503003F17FCA3007F17FE491501A400FF17-FFAC007F17FEA26D1503A3003F17FCA2001F17F86D1507A2000F17F06D150F000717E06C-6CED1FC0A26C6CED3F806C6CED7F00017F15FE6D6C495A6D6C495A6D6C495AD903F8EB1F-C06DB4EBFF806D6CB448C7FC020F13F00201138038417BBF43>I<D903C0EBFF80D807FF-010713F0B5011F13FE92387E01FF913AC1F0003FC0DAC3C06D7E0001D9C780EB0FF82600-7FCFC76C7E02DE6E7ED93FFC6E7E4A804A1680F07FC04A153F19E04A151F19F0A2F00FF8-A3F007FCA419FE1803ACF007FCA5F00FF8A3F01FF0A2F03FE080F07FC06E168018FF6E4A-13006E5D02DC4A5A02DE4A5ADACF80495ADAC7C0EB3FE0DAC1E0EB7F809127C0FC03FFC7-FC92383FFFFC030F13E0030190C8FC92CAFCB3A3497E497EB612F0A43F5B7BBE4B>I<90-39078007F0D80FFFEB1FFEB5EB7FFF9238F81FC0913881E03F913983C07FE00001EB8780-D8007F1300148EEB3F9CEE3FC00298EB1F8002B8EB060093C7FC14B014F0A25CA55CB3B1-497EEBFFF8B612FCA42B3F7BBE34>114 D<9138FFC003010FEBF807017FEBFE0F3A01FF-003F9FD803F0EB07DF48486DB4FCD80F801300001F8148C8FC003E81007E81127C8212FC-A3827EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFE014FF6C14F8000314FE6C6E7E6C6C14-E06D14F801078001008002077FDA003F13801507030113C0ED007F00E0ED3FE0161F17F0-6C150F1607A36C1503A37EA26C16E016077E17C06D140F6D15806D141FD8FDF0EC3F00D8-F8F8147E017C495A3AF01F801FF06DB512C0D8E00391C7FC39C0007FF02C417CBF35>I<-1438A71478A414F8A31301A31303A21307130F131FA2137F13FF1203000F90B512FEB7FC-A3260007F8C8FCB3AEEE01C0AE16036D6C1480A216076D6C1400A26D6C130E91387F801E-6E6C5A6E6C5A6EB45A02035BDA007FC7FC2A597ED734>I<D903C0153CD807FFED7FFCB5-EC0FFFA40001ED001FD8007F1507A2013F1503B3B21707A4170FA2171F011F151B6E143B-1733010F15736EECE3FE0107EC01C36D6C0103EBFF806D6CD90F8313FF903A00FF803E03-91383FFFFC020F13F002010180EBFE0040407BBE4B>I<B6D8803FB5D8C001B512F0A400-0301F0C701F8C7003F1300C601C0DA7FE0EC0FFC017F033F6F5A051F6F5A64133F050F5E-80011F705DA26E1807010F4B6C92C7FCA26E6001074B6C140E17396E181E0103DB79FE14-1C17706E183C0101DBF0FF14384D7E6E18786D02016E1370EFC03F038017F0027F01036E-5BEF801F03C01601023F010702E05BEF000F03E01603021F4902F05B040E130703F01607-020F011E02F890C8FC041C130303F85E0207013CECFC0E0438130103FC161E02030178EC-FE1C0470130003FE163C020101F0ECFF384C147F03FF16786E5F4C143FA2037F5E4C141F-A2033F5E93C8120FA26F5E031E1507030E93C9FC5C3F7EBD61>119-D E end-%%EndProlog-%%BeginSetup-%%Feature: *Resolution 600dpi-TeXDict begin-%%PaperSize: A4--%%EndSetup-%%Page: 1 1-1 0 bop 345 739 a Fp(Ebnf2ps)45 b(\026)g(Automatic)h(Railroad)h-(Diagram)g(Dra)l(wing)1470 922 y(V)-11 b(ersion)46 b(1.01)1129-1162 y Fo(P)m(eter)34 b(Thiemann,)e(Mic)m(hael)g(W)-8-b(alter)768 1278 y(Wilhelm-Sc)m(hic)m(k)j(ard-Institut,)29-b(Univ)m(ersit\344t)j(T\374bingen)1288 1395 y(Sand)h(13,)f(72076)f-(T\374bingen)474 1511 y(E-mail:)41 b Fn({thiemann,walterm}@informa)q-(tik.)q(uni-)q(tueb)q(inge)q(n.de)1335 1624 y Fo(c)1307-1627 y Fm(\015)o Fo(1996,)32 b(P)m(eter)i(Thiemann)1544-1822 y(Ma)m(y)g(29,)e(1996)455 2129 y Fl(Ebnf2ps)k(w)n(as)g(written)h-(to)f(\034ll)h(an)f(urgen)n(t)f(need)i(of)f(the)h(author:)54-b(to)36 b(pro)r(duce)g(lots)g(of)330 2229 y(syn)n(tax)c(diagrams)f-(\(railroad)g(diagrams\))g(from)i(a)f(grammar)f(in)i(EBNF)h(notation)e-(in)h(short)330 2328 y(time.)j(Ov)n(er)23 b(the)h(time)h(the)f(program)-e(has)i(acquired)f(a)g(couple)h(of)g(features)f(in)i(order)d(to)i-(ful\034ll)330 2428 y(a)34 b(v)-5 b(ariet)n(y)33 b(of)h(requiremen)n-(ts.)56 b(The)34 b(curren)n(t)f(v)n(ersion)g(pro)r(duces)g(highly)h-(readable)f(railroad)330 2528 y(diagrams)26 b(from)h(grammars)e(in)j(v)--5 b(arious)26 b(formats:)36 b(Y)-7 b(acc,)28 b(Happ)n(y)f(and)g(EBNF.)-330 2627 y(The)i(program)e(ma)n(y)h(b)r(e)h(freely)g(used)g(and)g-(distributed,)g(y)n(ou)g(are)f(ho)n(w)n(ev)n(er)e(required)i(not)h(to)-330 2727 y(remo)n(v)n(e)20 b(the)i(cop)n(yrigh)n(t)d(notices)j(from)f-(the)h(source)e(\034les.)35 b(Please)21 b(send)g(an)n(y)g(commen)n(ts,)-h(bugs,)330 2826 y(etc.)28 b(to)f(the)h(author\(s\).)330-3101 y Fk(1)131 b(Ho)l(w)44 b(to)g(build)h(it)330 3283-y Fl(Ebnf2ps)32 b(w)n(as)e(written)h(in)h(Hask)n(ell,)f(a)g-(non\025strict,)g(purely)g(functional)g(programming)e(lan-)330-3382 y(guage.)54 b(T)-7 b(o)33 b(build)h(Ebnf2ps)g(y)n(ou)f(need)h(a)f-(Hask)n(ell)g(Compiler,)i(for)e(example)g(the)h(Glasgo)n(w)330-3482 y(Hask)n(ell)22 b(Compilation)g(System)h Fj(ghc)1500-3452 y Fi(1)1559 3482 y Fl(or)f(the)i(Hask)n(ell)e(Compiler)g-Fj(hbc)g Fl(b)n(y)g(Lennart)h(Augusts-)330 3582 y(son.)431-3764 y(1.)42 b(Edit)28 b(the)g(Mak)n(e\034le)f(to)g(re\035ect)g(y)n-(our)g(Hask)n(ell)f(compiler,)h(for)g(example)1191 3964-y Fj(HC=)42 b(ghc)431 4163 y Fl(2.)g(Find)c(out)f(where)h(y)n(our)e(T)-1398 4181 y(E)1444 4163 y(X)i(installation)f(stores)g-Fj(.afm)p Fl(-\034les)e(\(Adob)r(e)j(fon)n(t)g(metric)538-4262 y(\034les\).)j(Then)29 b(y)n(ou)f(can)h(c)n(hange)f(the)h(v)-5-b(ariable)28 b Fj(AFMPATH)e Fl(in)k(the)f(Mak)n(e\034le)f(or)g(y)n(ou)g-(can)538 4362 y(set)e(the)h(en)n(vironmen)n(t)f(v)-5-b(ariable)26 b Fj(AFMPATH)e Fl(when)i(running)h(the)g(program.)34-b(The)27 b Fj(.afm)p Fl(-)538 4462 y(\034les)e(are)f(absolutely)g-(necessary)-7 b(.)34 b(If)26 b(y)n(ou)e(don't)h(\034nd)h(them)f-(complain)g(to)g(y)n(our)e(system)538 4561 y(administrator)j(or)g(get)i-(them)g(y)n(ourself)e(from)538 4661 y Fj(ftp://ftp.adobe)o(.c)o(om)o-(/pu)o(b/)o(ado)o(be)o(/A)o(FMF)o(il)o(es)o(/)p Fl(.)431-4827 y(3.)42 b(Change)33 b(the)h(v)-5 b(ariable)33 b-Fj(RGBPATH)e Fl(to)i(con)n(tain)h(the)g(directory)e(where)i(y)n(our)e-(X)j(instal-)538 4927 y(lation)30 b(stores)f(its)i(color)e(data)h(base)-g(\(usually)h Fj(/usr/lib/X11/rgb)o(.tx)o(t)p Fl(\).)40-b(This)30 b(can)538 5026 y(also)23 b(b)r(e)h(corrected)f(later)h(with)g-(the)h(en)n(vironmen)n(t)e(v)-5 b(ariable)23 b Fj(RGBPATH)p-Fl(.)f(There)h(are)g(fall-)538 5126 y(bac)n(k)j(color)h(de\034nitions)h-(for)f(the)h(8)f Fh(digital)38 b Fl(colors)26 b(\(blac)n(k,)i(white,)g-(blue,)g(green,)f(cy)n(an,)538 5226 y(red,)g(magen)n(ta,)f(y)n(ello)n-(w\),)h(so)g(nothing)g(needs)g(b)r(e)h(done)g(if)g(that's)f(enough)g-(for)g(y)n(ou.)431 5392 y(4.)42 b(T)n(yping)28 b Fj(make)e-Fl(should)h(pro)r(duce)g(an)g(executable)g(\034le)h(named)g(Ebnf2ps.)p-330 5461 1200 4 v 422 5514 a Fg(1)457 5538 y Ff(GHC)c(home)f(page)h-(URL)g Fe(http://www.dcs.glasgow.ac)q(.uk/)q(fp/)q(soft)q(ware)q(/gh)q-(c.ht)q(ml)p Ff(.)1809 5919 y Fl(1)p eop-%%Page: 2 2-2 1 bop 330 390 a Fk(2)131 b(Ho)l(w)44 b(to)g(use)f(it)330-572 y Fl(The)28 b(syn)n(tax)e(is)330 738 y Fj(Ebnf2ps)41-b([options])e(Grammarfile)g(Nonterminal)g(...)j([--)h(Nonterminal)c-(...])330 904 y Fl(where)18 b(the)h Fj(options)c Fl(are)j(describ)r(ed)-g(in)g(Sec.)h(2.1,)g(the)g(syn)n(tax)f(of)g(the)h(input)g(\034le)g-Fj(Grammarfile)330 1004 y Fl(in)33 b(Sec.)g(2.2,)g(and)g-Fj(Nonterminal)28 b Fl(describ)r(es)k(the)h(non)n(terminals,)g(for)f-(whic)n(h)h(diagrams)e(are)330 1103 y(to)g(b)r(e)h(generated,)f(as)g-(regular)e(expressions)h(\(see)h(Sec.)h(2.3\).)47 b(The)32-b(non)n(terminals)e(after)h(the)330 1203 y(sym)n(b)r(ol)c-Fj(--)g Fl(are)f(used)i(only)f(with)h(the)g(option)f-Fj(+unfold)e Fl(\(see)i(Sec.)h(2.1)f(and)g(2.4\).)330-1435 y Fd(2.1)112 b(Options)330 1589 y Fl(The)31 b(follo)n(wing)e(list)-i(sho)n(ws)f(all)g Fc(options)f Fl(with)j(their)e Fh(p)l(ar)l(ameters)-38 b Fl(and)31 b(their)f(\(default)i(v)-5 b(al-)330 1688-y(ues\).)37 b(All)27 b(distances)g(and)f(sizes)h(measured)f(in)h(1/100)-e(p)r(oin)n(t)i(\(1)g(p)r(oin)n(t)g(is)g(ab)r(out)g(1/72)e(inc)n(h\).)-330 1788 y(Changes)f(with)i(resp)r(ect)e(to)h(the)h(last)e(v)n(ersion)g-(of)h(Ebnf2ps:)36 b(some)2471 1785 y(n)2453 1788 y Fb(\015)p-Fl(ew)25 b(features,)g(extension)330 1887 y(of)j(grammar)d-(transformations)h(and)h(bug)g(\034xes.)330 2070 y Fc(-titleF)-8-b(on)m(t)31 b Fa(font)50 b Fl(\(Times-Roman\))34 b(P)n(ostScript)g(fon)-n(t)g(used)h(for)e(titles)i(of)g(diagrams,)f(an)n(y)562-2170 y(fon)n(t)f(go)r(es)f(here)g(that)h(y)n(our)e(prin)n(ter)h(kno)n-(ws)f(and)i(for)f(whic)n(h)h(y)n(ou)e(ha)n(v)n(e)h(fetc)n(hed)h(the)562-2269 y(AFM)c(\034les.)36 b(Figure)27 b(1)g(sho)n(ws)g(a)g(sample)g-(list)h(of)f(fon)n(t)h(names.)2606 2266 y(n)2587 2269-y Fb(\015)330 2398 y Fc(-titleScale)j Fa(int)49 b Fl(\(10\))27-b(P)n(oin)n(tsize)g(of)h(t)n(yp)r(eface)f(for)g(titles)h(of)f-(diagrams.)2690 2395 y(n)2673 2398 y Fb(\015)330 2526-y Fc(-titleColor)j Fa(c)-5 b(olor)50 b Fl(\(blac)n(k\))28-b(Color)e(of)h(t)n(yp)r(eface)h(for)f(titles)h(of)f(diagrams.)2815-2523 y(n)2796 2526 y Fb(\015)330 2654 y Fc(-n)m(tF)-8-b(on)m(t)32 b Fa(font)50 b Fl(\(Times-Roman\))27 b(P)n(ostScript)h(fon)-n(t)f(used)h(for)f(non)n(terminals.)330 2782 y Fc(-n)m(tScale)32-b Fa(int)49 b Fl(\(10\))27 b(P)n(oin)n(tsize)g(of)h(t)n(yp)r(eface)f-(for)g(non)n(terminals.)330 2910 y Fc(-n)m(tColor)k Fa(c)-5-b(olor)51 b Fl(\(blac)n(k\))27 b(Color)f(of)i(t)n(yp)r(eface)f(for)g-(non)n(terminals.)330 3039 y Fc(-n)m(tBg)32 b Fa(c)-5-b(olor)50 b Fl(\(white\))29 b(Bac)n(kground)c(color)h(of)i(t)n(yp)r-(eface)f(for)g(non)n(terminals.)2864 3036 y(n)2847 3039-y Fb(\015)330 3167 y Fc(-n)m(tBo)m(xColor)32 b Fa(c)-5-b(olor)50 b Fl(\(blac)n(k\))27 b(Color)g(used)g(for)g(outlines)h(of)f-(b)r(o)n(xes)g(\(non)n(terminals\).)3161 3164 y(n)3143-3167 y Fb(\015)330 3295 y Fc(-tF)-8 b(on)m(t)32 b Fa(font)50-b Fl(\(Times-Roman\))27 b(P)n(ostScript)g(fon)n(t)h(used)f(for)g-(terminal)h(strings.)330 3423 y Fc(-tScale)k Fa(int)49-b Fl(\(10\))27 b(P)n(oin)n(tsize)g(of)h(t)n(yp)r(eface)f(for)g-(terminals.)330 3552 y Fc(-tColor)k Fa(c)-5 b(olor)50-b Fl(\(blac)n(k\))28 b(Color)e(of)h(t)n(yp)r(eface)h(for)f(terminals.)-330 3680 y Fc(-tBg)k Fa(c)-5 b(olor)51 b Fl(\(white\))28-b(Bac)n(kground)d(color)i(of)g(t)n(yp)r(eface)h(for)f(terminals.)2682-3677 y(n)2665 3680 y Fb(\015)330 3808 y Fc(-tBo)m(xColor)k-Fa(c)-5 b(olor)51 b Fl(\(blac)n(k\))27 b(Color)f(used)i(for)f(outlines)-g(of)h(b)r(o)n(xes)e(\(terminals\).)2979 3805 y(n)2960-3808 y Fb(\015)330 3936 y Fc(-b)s(orderDistX)31 b Fa(int)49-b Fl(\(500\))27 b(Horizon)n(tal)f(distance)h(of)h(ob)5-b(jects)27 b(from)g(their)g(con)n(tainer.)330 4064 y-Fc(-b)s(orderDistY)k Fa(int)49 b Fl(\(500\))27 b(V)-7-b(ertical)27 b(distance)g(of)h(ob)5 b(jects)27 b(from)g(their)g(con)n-(tainer.)330 4193 y Fc(-lineWidth)j Fa(int)49 b Fl(\(30\))27-b(Width)i(of)e(lines)h(used)f(for)g(connecting)g(lines.)330-4321 y Fc(-fatLineWidth)k Fa(int)49 b Fl(\(100\))27 b(Width)i(of)e-(lines)h(used)f(for)g(dra)n(wing)f(b)r(o)n(xes.)330 4449-y Fc(-lineColor)k Fa(c)-5 b(olor)50 b Fl(\(blac)n(k\))27-b(Color)g(used)g(for)g(connecting)g(lines.)330 4577 y-Fc(-arro)m(wSize)32 b Fa(int)49 b Fl(\(200\))27 b(Size)h(of)f(\(in)n-(visible\))h(b)r(o)n(x)f(con)n(taining)g(an)g(arro)n(w.)330-4705 y Fc(-rgbFileName)g Fa(\034lename)49 b Fl(\(rgb.txt\))28-b(File)f(name)h(for)f(color)f(de\034nitions.)330 4834-y Fc(-happ)m(y)43 b Fl(Accept)27 b(happ)n(y)f(format)g(input)i-(\034les.)37 b(Happ)n(y)-7 b(,)26 b(written)h(b)n(y)g(Andy)g(Gill)g-(and)g(Simon)562 4933 y(Marlo)n(w,)k(is)g(a)g(parser)f(generator)f-(system)i(\(LALR\(1\)\))i(for)d(Hask)n(ell,)i(similar)e(to)i(the)562-5033 y(to)r(ol)c(y)n(acc)e(for)h(C)1102 5003 y Fi(2)1139-5033 y Fl(.)330 5161 y Fc(-y)m(acc)43 b Fl(Accept)28-b(y)n(acc/bison)e(format)h(input)h(\034les.)1948 5158-y(n)1930 5161 y Fb(\015)330 5289 y Fc(+ps)67 b Fl(Pro)r(duce)28-b(encapsulated)f(P)n(ostScript)g(output)h(\(default\).)330-5418 y Fc(+\034g)57 b Fl(Pro)r(duce)28 b(\034g)f(output)h(\(F)n(ORMA)-7-b(T)28 b(3.1\).)p 330 5491 1200 4 v 422 5545 a Fg(2)457-5568 y Ff(The)22 b(program)g(Happ)n(y)h(is)e(a)n(v)l(ailable)h(b)n(y)g-(FTP)f(from)g Fe(ftp.dcs.glasgow.ac.uk)27 b Ff(in)21-b Fe(pub/haskell/happy)1809 5919 y Fl(2)p eop-%%Page: 3 3-3 2 bop 651 311 2358 4 v 649 410 4 100 v 701 380 a Fl(A)n-(Garamond-Bold)p 1888 410 V 595 w(A)n(Garamond-BoldItalic)p-3007 410 V 649 510 V 701 480 a(A)n(Garamond-Italic)p-1888 510 V 578 w(A)n(Garamond-Regular)p 3007 510 V 649-609 V 701 579 a(A)n(Garamond-Semib)r(old)p 1888 609 V-431 w(A)n(Garamond-Semib)r(oldItalic)p 3007 609 V 649-709 V 701 679 a(A)n(GaramondAlt-Italic)p 1888 709 V 461-w(A)n(GaramondAlt-Regular)p 3007 709 V 649 809 V 701-779 a(A)n(GaramondExp-Bold)p 1888 809 V 449 w(A)n-(GaramondExp-BoldItalic)p 3007 809 V 649 908 V 701 878-a(A)n(GaramondExp-Italic)p 1888 908 V 432 w(A)n(GaramondExp-Semib)r-(old)p 3007 908 V 649 1008 V 701 978 a(A)n(GaramondExp-Semib)r-(oldItalic)p 1888 1008 V 98 w(A)-9 b(v)k(an)n(tGarde-Bo)r(ok)p-3007 1008 V 649 1108 V 701 1078 a(A)c(v)k(an)n(tGarde-Bo)r(okOblique)p-1888 1108 V 304 w(A)c(v)k(an)n(tGarde-Demi)p 3007 1108-V 649 1207 V 701 1177 a(A)c(v)k(an)n(tGarde-DemiOblique)p-1888 1207 V 301 w(Bo)r(okman-Demi)p 3007 1207 V 649 1307-V 701 1277 a(Bo)r(okman-DemiItalic)p 1888 1307 V 485-w(Bo)r(okman-Ligh)n(t)p 3007 1307 V 649 1406 V 701 1377-a(Bo)r(okman-Ligh)n(tItalic)p 1888 1406 V 484 w(Courier-Bold)p-3007 1406 V 649 1506 V 701 1476 a(Courier-BoldOblique)p-1888 1506 V 482 w(Courier-Oblique)p 3007 1506 V 649 1606-V 701 1576 a(Courier)p 1888 1606 V 964 w(Helv)n(etica-Bold)p-3007 1606 V 649 1705 V 701 1675 a(Helv)n(etica-BoldOblique)p-1888 1705 V 421 w(Helv)n(etica-Narro)n(w-Bold)p 3007-1705 V 649 1805 V 701 1775 a(Helv)n(etica-Narro)n(w-BoldOblique)p-1888 1805 V 123 w(Helv)n(etica-Narro)n(w-Oblique)p 3007-1805 V 649 1905 V 701 1875 a(Helv)n(etica-Narro)n(w)p-1888 1905 V 605 w(Helv)n(etica-Oblique)p 3007 1905 V-649 2004 V 701 1974 a(Helv)n(etica)p 1888 2004 V 903-w(NewCen)n(turySc)n(hlbk-Bold)p 3007 2004 V 649 2104-V 701 2074 a(NewCen)n(turySc)n(hlbk-BoldItalic)p 1888-2104 V 158 w(NewCen)n(turySc)n(hlbk-Italic)p 3007 2104-V 649 2203 V 701 2174 a(NewCen)n(turySc)n(hlbk-Roman)p-1888 2203 V 255 w(Optima-Bold)p 3007 2203 V 649 2303-V 701 2273 a(Optima)p 1888 2303 V 961 w(P)n(alatino-Bold)p-3007 2303 V 649 2403 V 701 2373 a(P)n(alatino-BoldItalic)p-1888 2403 V 549 w(P)n(alatino-Italic)p 3007 2403 V 649-2502 V 701 2472 a(P)n(alatino-Oblique)p 1888 2502 V 622-w(P)n(alatino-Roman)p 3007 2502 V 649 2602 V 701 2572-a(StoneInformal-Bold)p 1888 2602 V 527 w(StoneInformal-BoldItalic)p-3007 2602 V 649 2702 V 701 2672 a(StoneInformal-Italic)p-1888 2702 V 510 w(StoneInformal-Semib)r(old)p 3007 2702-V 649 2801 V 701 2771 a(StoneInformal-Semib)r(oldItalic)p-1888 2801 V 176 w(StoneInformal)p 3007 2801 V 649 2901-V 701 2871 a(StoneSans)p 1888 2901 V 868 w(StoneSerif-Bold)p-3007 2901 V 649 3000 V 701 2971 a(StoneSerif-BoldItalic)p-1888 3000 V 486 w(StoneSerif-Italic)p 3007 3000 V 649-3100 V 701 3070 a(StoneSerif-Semib)r(old)p 1888 3100-V 509 w(StoneSerif-Semib)r(oldItalic)p 3007 3100 V 649-3200 V 701 3170 a(StoneSerif)p 1888 3200 V 871 w(Sym)n(b)r(ol)p-3007 3200 V 649 3299 V 701 3269 a(Times-Bold)p 1888 3299-V 818 w(Times-BoldItalic)p 3007 3299 V 649 3399 V 701-3369 a(Times-Italic)p 1888 3399 V 801 w(Times-Oblique)p-3007 3399 V 649 3499 V 701 3469 a(Times-Roman)p 1888-3499 V 728 w(ZapfChancery-MediumItalic)p 3007 3499 V-649 3598 V 701 3568 a(ZapfDingbats)p 1888 3598 V 3007-3598 V 651 3601 2358 4 v 1188 3833 a(Figure)27 b(1:)36-b(Sample)28 b(list)g(of)f(fon)n(t)h(names)330 4098 y-Fc(+ebnf)42 b Fl(Pro)r(duce)35 b(grammar)e(in)i(EBNF)h(notation)f-(\(\034le)g(extension)g(".BNF"\))f(for)h(y)n(acc)f(or)562-4198 y(happ)n(y)27 b(input)i(format)e(\034les.)1483 4195-y(n)1465 4198 y Fb(\015)330 4326 y Fc(+simplify)37 b-Fl(Simplify)28 b(pro)r(ductions)f(\(exp)r(erimen)n(tal,)h(default:)37-b(don't\).)330 4454 y Fc(+unfold)k Fl(Replace)27 b(non)n(terminals)g-(in)g(pro)r(ductions)g(\(exp)r(erimen)n(tal,)h(default:)37-b(don't\).)g(See)562 4554 y(Sec.)28 b(2.4.)881 4551 y(n)863-4554 y Fb(\015)330 4682 y Fc(-v)m(erb)s(ose)41 b Fl(Prin)n(ts)27-b(some)g(progress)f(messages.)330 4810 y Fc(-help)41-b Fl(Prin)n(ts)18 b(a)g(brief)h(description)e(of)i(the)f(command)g-(line,)j(the)e(options)f(with)h(their)f(defaults,)562-4910 y(and)28 b(the)g(en)n(vironmen)n(t)e(v)-5 b(ariables.)330-5225 y Fd(2.2)112 b(Syn)m(tax)38 b(of)g(EBNF)f(Files)330-5379 y Fl(The)20 b(follo)n(wing)f(grammar)f(and)i(diagrams)e(describ)r-(e)h(the)i(standard)e(input)h(format)g(\(e.g.)34 b(with-)330-5478 y(out)28 b Fc(-y)m(acc)h Fl(or)e Fc(-happ)m(y)q-Fl(\))i(as)e(w)n(ell)g(as)g(the)h(output)g(format)f(with)h(the)g-Fc(+ebnf)37 b Fl(option.)330 5661 y Fj(File)521 b(=)43-b({Production};)1809 5919 y Fl(3)p eop-%%Page: 4 4-4 3 bop 330 390 a Fj(Production)257 b(=)43 b(Nonterminal)c([)k(String)e-(])j("=")e(Term)g(";")g(;)330 490 y(Term)521 b(=)43 b(Factor)e(/)j("|")-e(;)392 b(#)43 b(alternative)330 589 y(Factor)433 b(=)43-b(ExtAtom)e(+)i(;)523 b(#)43 b(sequence)330 689 y(ExtAtom)389-b(=)43 b(Atom)1027 789 y(|)g(Atom)f("/")h(Atom)434 b(#)43-b(repetition)c(through)i(Atom)1027 888 y(|)i(Atom)f("+";)609-b(#)43 b(at)f(least)g(one)g(repetition)330 988 y(Atom)521-b(=)43 b(Nonterminal)1027 1088 y(|)g(String)739 b(#)43-b(terminal)d(string)1027 1187 y(|)j("\(")g(Term)f("\)")1027-1287 y(|)h("[")g(Term)f("]")478 b(#)43 b(an)f(optional)f(Term)1027-1386 y(|)i("{")g(Term)f("}")478 b(#)43 b(zero)f(or)g(more)g-(repetitions)1027 1486 y(;)330 1586 y(String)433 b(=)43-b("\\"")f({)h(Character)d(})j("\\"")f(;)330 1685 y(Nonterminal)213-b(=)43 b(letter)e({)j(letter)d(|)i(digit)e(|)i("_")g(|)g(".")f(})h(;)-330 1785 y(Character)301 b(=)43 b(character)1027 1885-y(|)g(["\\\\"])e(anycharacter)e(;)455 2067 y Fl(Or)26-b(in)i(terms)f(of)h(diagrams)e(\(what)h(w)n(ould)h(y)n(ou)e(exp)r-(ect\):)330 2513 y @beginspecial 0 @llx 0 @lly 90 @urx-42 @ury 900 @rwi @setspecial-%%BeginDocument: File.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 5.25 54.89 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 25.50 10.42 m(Production) show- 0.30 slw-n 76.89 15.25 m -2 -2 rl 2 -2 rl s-n 10 0.25 m 74.89 0 rl s-n 20 0.25 m 15 0.25 15 5.25 5 apr- 15 5.25 l s-n 15 8.25 m 15 13.25 20 13.25 5 apr- 20 13.25 l s-n 74.89 0.25 m 79.89 0.25 79.89 5.25 5 apr- 79.89 5.25 l s-n 79.89 8.25 m 79.89 13.25 74.89 13.25 5 apr- 74.89 13.25 l s-n 15 5.25 m 0 3 rl s-n 79.89 5.25 m 0 3 rl s-n 84.89 0.25 m 5 0 rl s-n 87.89 2.25 m 2 -2 rl -2 -2 rl s- 0 33.42 m(File) show-n 0 0.25 m 10 0 rl s-n 8 2.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 425 x @beginspecial 0 @llx 0 @lly 229 @urx-50 @ury 2290 @rwi @setspecial-%%BeginDocument: Production.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 10 0.25 61.55 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 15.50 5.42 m(Nonterminal) show- 0.30 slw-n 71.55 8.25 m 5 0 rl s-n 74.55 10.25 m 2 -2 rl -2 -2 rl s- 91.55 13.25 35.45 16 0.50 255 255 255 Box- 97.05 18.42 m(String) show- 0.30 slw-n 89.55 23.25 m 2 -2 rl -2 -2 rl s-n 76.55 8.25 m 65.45 0 rl s-n 76.55 8.25 m 81.55 8.25 81.55 13.25 5 apr- 81.55 13.25 l s-n 81.55 16.25 m 81.55 21.25 86.55 21.25 5 apr- 86.55 21.25 l s-n 86.55 21.25 m 5 0 rl s-n 142 8.25 m 137 8.25 137 13.25 5 apr- 137 13.25 l s-n 137 16.25 m 137 21.25 132 21.25 5 apr- 132 21.25 l s-n 127 21.25 m 5 0 rl s-n 81.55 13.25 m 0 3 rl s-n 137 13.25 m 0 3 rl s-n 142 8.25 m 5 0 rl s-n 145 10.25 m 2 -2 rl -2 -2 rl s- 147 0.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 152.50 5.82 m(=) show- 0 0 0 scol 0.30 slw-n 164 8.25 m 5 0 rl s-n 167 10.25 m 2 -2 rl -2 -2 rl s- 169 0.25 32.66 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 174.50 5.42 m(Term) show- 0.30 slw-n 201.66 8.25 m 5 0 rl s-n 204.66 10.25 m 2 -2 rl -2 -2 rl s- 206.66 0.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 212.16 5.82 m(;) show- 0 0 0 scol 0.30 slw-n 223.66 8.25 m 5 0 rl s-n 226.66 10.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 41.42 m(Production) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 491 x @beginspecial 0 @llx 0 @lly 72 @urx-58 @ury 720 @rwi @setspecial-%%BeginDocument: Term.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 0.25 36.55 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 25.50 5.42 m(Factor) show- 29.77 21.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 35.27 26.82 m(|) show- 0 0 0 scol 0.30 slw-n 48.77 31.25 m -2 -2 rl 2 -2 rl s-n 10 8.25 m 10 0 rl s-n 56.55 8.25 m 10 0 rl s-n 20 29.25 m 9.77 0 rl s-n 46.77 29.25 m 9.77 0 rl s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 24.25 m 15 29.25 20 29.25 5 apr- 20 29.25 l s-n 56.55 8.25 m 61.55 8.25 61.55 13.25 5 apr- 61.55 13.25 l s-n 61.55 24.25 m 61.55 29.25 56.55 29.25 5 apr- 56.55 29.25 l s-n 15 13.25 m 0 11 rl s-n 61.55 13.25 m 0 11 rl s-n 66.55 8.25 m 5 0 rl s-n 69.55 10.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 49.42 m(Term) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 359 x @beginspecial 0 @llx 0 @lly 83 @urx-42 @ury 830 @rwi @setspecial-%%BeginDocument: Factor.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 0.25 47.67 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 25.50 5.42 m(ExtAtom) show- 0.30 slw-n 10 8.25 m 10 0 rl s-n 67.67 8.25 m 10 0 rl s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 16.25 m 15 21.25 20 21.25 5 apr- 20 21.25 l s-n 67.67 8.25 m 72.67 8.25 72.67 13.25 5 apr- 72.67 13.25 l s-n 72.67 16.25 m 72.67 21.25 67.67 21.25 5 apr- 67.67 21.25 l s-n 15 13.25 m 0 3 rl s-n 72.67 13.25 m 0 3 rl s-n 20 21.25 m 47.67 0 rl s-n 45.83 23.25 m -2 -2 rl 2 -2 rl s-n 77.67 8.25 m 5 0 rl s-n 80.67 10.25 m 2 -2 rl -2 -2 rl s- 0 33.42 m(Factor) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 666 x @beginspecial 0 @llx 0 @lly 130 @urx-79 @ury 1300 @rwi @setspecial-%%BeginDocument: ExtAtom.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 42.25 33.78 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 25.50 47.42 m(Atom) show- 20 21.25 33.78 16 0.50 255 255 255 Box- 25.50 26.42 m(Atom) show- 0.30 slw-n 53.78 29.25 m 5 0 rl s-n 56.78 31.25 m 2 -2 rl -2 -2 rl s- 58.78 21.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 64.28 26.82 m(/) show- 0 0 0 scol 0.30 slw-n 75.78 29.25 m 5 0 rl s-n 78.78 31.25 m 2 -2 rl -2 -2 rl s- 80.78 21.25 33.78 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 86.28 26.42 m(Atom) show- 20 0.25 33.78 16 0.50 255 255 255 Box- 25.50 5.42 m(Atom) show- 0.30 slw-n 53.78 8.25 m 5 0 rl s-n 56.78 10.25 m 2 -2 rl -2 -2 rl s- 58.78 0.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 64.28 5.82 m(+) show- 0 0 0 scol 0.30 slw-n 10 29.25 m 5 0 rl s-n 119.56 29.25 m 5 0 rl s-n 15 45.25 m 15 50.25 20 50.25 5 apr- 20 50.25 l s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 13.25 m 0 32 rl s-n 119.56 45.25 m 119.56 50.25 114.56 50.25 5 apr- 114.56 50.25 l s-n 114.56 8.25 m 119.56 8.25 119.56 13.25 5 apr- 119.56 13.25 l s-n 119.56 13.25 m 0 32 rl s-n 15 29.25 m 5 0 rl s-n 114.56 29.25 m 5 0 rl s-n 53.78 50.25 m 60.78 0 rl s-n 114.56 29.25 m 0 0 rl s-n 75.78 8.25 m 38.78 0 rl s-n 124.56 29.25 m 5 0 rl s-n 127.56 31.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 70.42 m(ExtAtom) show-n 0 29.25 m 10 0 rl s-n 8 31.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 1017 x @beginspecial 0 @llx 0 @lly 112 @urx-121 @ury 1120 @rwi @setspecial-%%BeginDocument: Atom.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 84.25 61.55 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 25.50 89.42 m(Nonterminal) show- 20 63.25 35.45 16 0.50 255 255 255 Box- 25.50 68.42 m(String) show- 20 42.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 25.50 47.82 m(\() show- 0 0 0 scol 0.30 slw-n 37 50.25 m 5 0 rl s-n 40 52.25 m 2 -2 rl -2 -2 rl s- 42 42.25 32.66 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 47.50 47.42 m(Term) show- 0.30 slw-n 74.66 50.25 m 5 0 rl s-n 77.66 52.25 m 2 -2 rl -2 -2 rl s- 79.66 42.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 85.16 47.82 m(\)) show- 0 0 0 scol 20 21.25 17 16 0.50 0 0 0 RBox- 255 255 255 scol 25.50 26.82 m([) show- 0 0 0 scol 0.30 slw-n 37 29.25 m 5 0 rl s-n 40 31.25 m 2 -2 rl -2 -2 rl s- 42 21.25 32.66 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 47.50 26.42 m(Term) show- 0.30 slw-n 74.66 29.25 m 5 0 rl s-n 77.66 31.25 m 2 -2 rl -2 -2 rl s- 79.66 21.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 85.16 26.82 m(]) show- 0 0 0 scol 20 0.25 17 16 0.50 0 0 0 RBox- 255 255 255 scol 25.50 5.82 m({) show- 0 0 0 scol 0.30 slw-n 37 8.25 m 5 0 rl s-n 40 10.25 m 2 -2 rl -2 -2 rl s- 42 0.25 32.66 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 47.50 5.42 m(Term) show- 0.30 slw-n 74.66 8.25 m 5 0 rl s-n 77.66 10.25 m 2 -2 rl -2 -2 rl s- 79.66 0.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 85.16 5.82 m(}) show- 0 0 0 scol 0.30 slw-n 10 50.25 m 5 0 rl s-n 101.66 50.25 m 5 0 rl s-n 15 87.25 m 15 92.25 20 92.25 5 apr- 20 92.25 l s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 13.25 m 0 74 rl s-n 101.66 87.25 m 101.66 92.25 96.66 92.25 5 apr- 96.66 92.25 l s-n 96.66 8.25 m 101.66 8.25 101.66 13.25 5 apr- 101.66 13.25 l s-n 101.66 13.25 m 0 74 rl s-n 15 71.25 m 5 0 rl s-n 15 50.25 m 5 0 rl s-n 15 29.25 m 5 0 rl s-n 96.66 71.25 m 5 0 rl s-n 96.66 50.25 m 5 0 rl s-n 96.66 29.25 m 5 0 rl s-n 81.55 92.25 m 15.11 0 rl s-n 55.45 71.25 m 41.21 0 rl s-n 96.66 50.25 m 0 0 rl s-n 96.66 29.25 m 0 0 rl s-n 96.66 8.25 m 0 0 rl s-n 106.66 50.25 m 5 0 rl s-n 109.66 52.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 112.42 m(Atom) show-n 0 50.25 m 10 0 rl s-n 8 52.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 1809 5919 a(4)p eop-%%Page: 5 5-5 4 bop 330 724 a @beginspecial 0 @llx 0 @lly 129 @urx-50 @ury 1290 @rwi @setspecial-%%BeginDocument: String.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 10 0.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 15.50 5.82 m(") show- 0 0 0 scol 0.30 slw-n 27 8.25 m 5 0 rl s-n 30 10.25 m 2 -2 rl -2 -2 rl s- 42 13.25 49.87 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 47.50 18.42 m(Character) show- 0.30 slw-n 93.87 23.25 m -2 -2 rl 2 -2 rl s-n 32 8.25 m 69.87 0 rl s-n 42 8.25 m 37 8.25 37 13.25 5 apr- 37 13.25 l s-n 37 16.25 m 37 21.25 42 21.25 5 apr- 42 21.25 l s-n 91.87 8.25 m 96.87 8.25 96.87 13.25 5 apr- 96.87 13.25 l s-n 96.87 16.25 m 96.87 21.25 91.87 21.25 5 apr- 91.87 21.25 l s-n 37 13.25 m 0 3 rl s-n 96.87 13.25 m 0 3 rl s-n 101.87 8.25 m 5 0 rl s-n 104.87 10.25 m 2 -2 rl -2 -2 rl s- 106.87 0.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 112.37 5.82 m(") show- 0 0 0 scol 0.30 slw-n 123.87 8.25 m 5 0 rl s-n 126.87 10.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 41.42 m(String) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 950 x @beginspecial 0 @llx 0 @lly 124 @urx-113 @ury 1240 @rwi @setspecial-%%BeginDocument: Nonterminal.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 10 0.25 31.55 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 15.50 5.42 m(letter) show- 0.30 slw-n 41.55 8.25 m 5 0 rl s-n 44.55 10.25 m 2 -2 rl -2 -2 rl s- 66.55 76.25 31.55 16 0.50 255 255 255 Box- 72.05 81.42 m(letter) show- 68.76 55.25 29.34 16 0.50 255 255 255 Box- 74.26 60.42 m(digit) show- 81.10 34.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 86.60 39.82 m(_) show- 0 0 0 scol 81.10 13.25 17 16 0.50 0 0 0 RBox- 255 255 255 scol 86.60 18.82 m(.) show- 0 0 0 scol 0.30 slw-n 56.55 52.75 m 5 0 rl s-n 103.10 52.75 m 5 0 rl s-n 61.55 79.25 m 61.55 84.25 66.55 84.25 5 apr- 66.55 84.25 l s-n 66.55 21.25 m 61.55 21.25 61.55 26.25 5 apr- 61.55 26.25 l s-n 61.55 26.25 m 0 53 rl s-n 103.10 79.25 m 103.10 84.25 98.10 84.25 5 apr- 98.10 84.25 l s-n 98.10 21.25 m 103.10 21.25 103.10 26.25 5 apr- 103.10 26.25 l s-n 103.10 26.25 m 0 53 rl s-n 61.55 63.25 m 5 0 rl s-n 61.55 42.25 m 5 0 rl s-n 98.10 63.25 m 5 0 rl s-n 98.10 42.25 m 5 0 rl s-n 66.55 84.25 m 0 0 rl s-n 66.55 63.25 m 2.21 0 rl s-n 66.55 42.25 m 14.55 0 rl s-n 66.55 21.25 m 14.55 0 rl s-n 110.10 54.75 m -2 -2 rl 2 -2 rl s-n 46.55 8.25 m 71.55 0 rl s-n 56.55 8.25 m 51.55 8.25 51.55 13.25 5 apr- 51.55 13.25 l s-n 51.55 47.75 m 51.55 52.75 56.55 52.75 5 apr- 56.55 52.75 l s-n 108.10 8.25 m 113.10 8.25 113.10 13.25 5 apr- 113.10 13.25 l s-n 113.10 47.75 m 113.10 52.75 108.10 52.75 5 apr- 108.10 52.75 l s-n 51.55 13.25 m 0 34.50 rl s-n 113.10 13.25 m 0 34.50 rl s-n 118.10 8.25 m 5 0 rl s-n 121.10 10.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 104.42 m(Nonterminal) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 600 x @beginspecial 0 @llx 0 @lly 150 @urx-71 @ury 1500 @rwi @setspecial-%%BeginDocument: Character.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 34.25 47.64 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 25.50 39.42 m(character) show- 35 13.25 17 16 0.50 0 0 0 RBox-/Courier-Bold findfont 10 scalefont setfont- 255 255 255 scol 40.50 18.82 m(\\) show- 0 0 0 scol 0.30 slw-n 33 23.25 m 2 -2 rl -2 -2 rl s-n 20 8.25 m 47 0 rl s-n 20 8.25 m 25 8.25 25 13.25 5 apr- 25 13.25 l s-n 25 16.25 m 25 21.25 30 21.25 5 apr- 30 21.25 l s-n 30 21.25 m 5 0 rl s-n 67 8.25 m 62 8.25 62 13.25 5 apr- 62 13.25 l s-n 62 16.25 m 62 21.25 57 21.25 5 apr- 57 21.25 l s-n 52 21.25 m 5 0 rl s-n 25 13.25 m 0 3 rl s-n 62 13.25 m 0 3 rl s-n 67 8.25 m 5 0 rl s-n 70 10.25 m 2 -2 rl -2 -2 rl s- 72 0.25 62.08 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 77.50 5.42 m(anycharacter) show- 0.30 slw-n 10 25.25 m 5 0 rl s-n 139.08 25.25 m 5 0 rl s-n 15 37.25 m 15 42.25 20 42.25 5 apr- 20 42.25 l s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 13.25 m 0 24 rl s-n 139.08 37.25 m 139.08 42.25 134.08 42.25 5 apr- 134.08 42.25 l s-n 134.08 8.25 m 139.08 8.25 139.08 13.25 5 apr- 139.08 13.25 l s-n 139.08 13.25 m 0 24 rl s-n 67.64 42.25 m 66.44 0 rl s-n 134.08 8.25 m 0 0 rl s-n 144.08 25.25 m 5 0 rl s-n 147.08 27.25 m 2 -2 rl -2 -2 rl s- 0 62.42 m(Character) show-n 0 25.25 m 10 0 rl s-n 8 27.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 144 x Fl(These)39 b(diagrams)f(ha)n(v)n(e)g(b)r(een)i(pro)-r(duced)f(with)h Fj(Ebnf2ps)g(-tFont)h(Courier-Bold)e(-tBg)330-2518 y(Black)i(-tColor)g(White)h(-fatLineWidth)c(50)k(ebnf.BNF)e('.*')p-Fl(.)330 2746 y Fd(2.3)112 b(Syn)m(tax)38 b(of)g(regular)f(expressions)-330 2899 y Fl(The)26 b(regular)e(expressions)g(used)i(to)g(select)g-(non)n(terminal)f(sym)n(b)r(ols)g(ha)n(v)n(e)g(the)h(follo)n(wing)f-(syn-)330 2999 y(tax,)i(whic)n(h)h(is)f(similar)g(to)g(the)h(regular)e-(expression)g(syn)n(tax)h(of)34 b Fj(grep)p Fl(.)330-3154 y Fj(Regexp)128 b(=)43 b(RFactor)e(/)i("\\\\|")f(["$"];)330-3254 y(RFactor)84 b(=)43 b(RExtAtom)e(+)i(;)330 3354-y(RExtAtom)d(=)j(RAtom)f(["*")g(|)h("+")f(|)h("?"])f(;)330-3453 y(RAtom)172 b(=)43 b(character)d(|)j("\\\\")f(character)e(|)j(".")-f(|)h("\\\\\(")f(Regexp)f("\\\\\)")g(;)455 3609 y Fl(Regular)20-b(expressions)g Fj(Regexp)g Fl(ma)n(y)h(b)r(e)h(joined)g(b)n(y)g(the)g-(in\034x)g(op)r(erator)e Fj(|)p Fl(.)35 b(The)22 b(resulting)330-3709 y(regular)h(expression)g(matc)n(hes)g(an)n(y)h(string)g(matc)n-(hing)g(either)g(sub)r(expression.)34 b(A)25 b(sub)r(expres-)330-3808 y(sion)g(ma)n(y)g(b)r(e)g(enclosed)g(in)h(paren)n(thesis)e-Fj(\\\()p Fl(,)h Fj(\\\))g Fl(to)g(o)n(v)n(erride)e(precedence)i-(rules.)35 b(Rep)r(etition)330 3908 y(tak)n(es)29 b(precedence)g(o)n(v)-n(er)g(concatenation,)g(whic)n(h)h(in)h(turn)f(tak)n(es)f(precedence)g-(o)n(v)n(er)f(alterna-)330 4008 y(tion.)48 b(A)31 b(regular)e-(expression)h(matc)n(hing)g(a)h(single)g(c)n(haracter)e(ma)n(y)h(b)r(e)-i(follo)n(w)n(ed)e(b)n(y)g(one)h(of)330 4107 y(sev)n(eral)26-b(rep)r(etition)h(op)r(erators:)330 4263 y Fj(?)41 b-Fl(The)28 b(preceding)e(item)j(is)e(optional)g(and)g(matc)n(hed)g(at)h-(most)f(once.)330 4418 y Fj(*)41 b Fl(The)28 b(preceding)e(item)j(will)-e(b)r(e)h(matc)n(hed)g(zero)e(or)h(more)f(times.)330-4574 y Fj(+)41 b Fl(The)28 b(preceding)e(item)j(will)e(b)r(e)h(matc)n-(hed)g(one)f(or)f(more)h(times.)330 4730 y(The)g(p)r(erio)r(d)g-Fj(.)36 b Fl(matc)n(hes)27 b(an)n(y)f(single)h(c)n(haracter,)e(and)i-(the)g(dollar)f(sign)h Fj($)g Fl(matc)n(h)g(the)g(empt)n(y)330-4829 y(string)g(at)g(the)h(end)g(of)g(a)f(line.)37 b(W)-7-b(ell,)28 b(graphically)-7 b(,)26 b(the)i(syn)n(tax)e(is)2439-4799 y Fi(3)2476 4829 y Fl(:)330 5393 y @beginspecial-0 @llx 0 @lly 130 @urx 58 @ury 1300 @rwi @setspecial-%%BeginDocument: Regexp.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 255 255 255 scol 20 0.25 43.22 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 0 0 0 scol 25.50 5.42 m(RFactor) show- 33.72 21.25 15.78 16 0.50 255 255 255 RBox- 39.22 26.42 m(\\|) show- 0.30 slw-n 51.50 31.25 m -2 -2 rl 2 -2 rl s-n 10 8.25 m 10 0 rl s-n 63.22 8.25 m 10 0 rl s-n 20 29.25 m 13.72 0 rl s-n 49.50 29.25 m 13.72 0 rl s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 24.25 m 15 29.25 20 29.25 5 apr- 20 29.25 l s-n 63.22 8.25 m 68.22 8.25 68.22 13.25 5 apr- 68.22 13.25 l s-n 68.22 24.25 m 68.22 29.25 63.22 29.25 5 apr- 63.22 29.25 l s-n 15 13.25 m 0 11 rl s-n 68.22 13.25 m 0 11 rl s-n 73.22 8.25 m 5 0 rl s-n 76.22 10.25 m 2 -2 rl -2 -2 rl s- 93.22 13.25 16 16 0.50 255 255 255 RBox- 98.72 18.42 m($) show- 0.30 slw-n 91.22 23.25 m 2 -2 rl -2 -2 rl s-n 78.22 8.25 m 46 0 rl s-n 78.22 8.25 m 83.22 8.25 83.22 13.25 5 apr- 83.22 13.25 l s-n 83.22 16.25 m 83.22 21.25 88.22 21.25 5 apr- 88.22 21.25 l s-n 88.22 21.25 m 5 0 rl s-n 124.22 8.25 m 119.22 8.25 119.22 13.25 5 apr- 119.22 13.25 l s-n 119.22 16.25 m 119.22 21.25 114.22 21.25 5 apr- 114.22 21.25 l s-n 109.22 21.25 m 5 0 rl s-n 83.22 13.25 m 0 3 rl s-n 119.22 13.25 m 0 3 rl s-n 124.22 8.25 m 5 0 rl s-n 127.22 10.25 m 2 -2 rl -2 -2 rl s-/AvantGarde-Book findfont 10 scalefont setfont- 0 49.42 m(Regexp) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 330 5436 1200 4 v 422 5489 a Fg(3)457 5513-y Ff(The)e(diagrams)f(ha)n(v)n(e)i(b)r(een)g(pro)r(duced)g(with:)330-5592 y Fe(Ebnf2ps)37 b(-titleFont)h(AvantGarde-Book)i(-ntBoxColor)e-(White)f(-fatLineWidth)h(50)e(regular.BNF)330 5670 y('.*')1809-5919 y Fl(5)p eop-%%Page: 6 6-6 5 bop 330 657 a @beginspecial 0 @llx 0 @lly 90 @urx-42 @ury 900 @rwi @setspecial-%%BeginDocument: RFactor.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 255 255 255 scol 20 0.25 54.34 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 0 0 0 scol 25.50 5.42 m(RExtAtom) show- 0.30 slw-n 10 8.25 m 10 0 rl s-n 74.34 8.25 m 10 0 rl s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 16.25 m 15 21.25 20 21.25 5 apr- 20 21.25 l s-n 74.34 8.25 m 79.34 8.25 79.34 13.25 5 apr- 79.34 13.25 l s-n 79.34 16.25 m 79.34 21.25 74.34 21.25 5 apr- 74.34 21.25 l s-n 15 13.25 m 0 3 rl s-n 79.34 13.25 m 0 3 rl s-n 20 21.25 m 54.34 0 rl s-n 49.17 23.25 m -2 -2 rl 2 -2 rl s-n 84.34 8.25 m 5 0 rl s-n 87.34 10.25 m 2 -2 rl -2 -2 rl s-/AvantGarde-Book findfont 10 scalefont setfont- 0 33.42 m(RFactor) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 775 x @beginspecial 0 @llx 0 @lly 128 @urx-92 @ury 1280 @rwi @setspecial-%%BeginDocument: RExtAtom.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 255 255 255 scol 10 0.25 40.45 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 0 0 0 scol 15.50 5.42 m(RAtom) show- 0.30 slw-n 50.45 8.25 m 5 0 rl s-n 53.45 10.25 m 2 -2 rl -2 -2 rl s- 80.45 55.25 16 16 0.50 255 255 255 RBox- 85.95 60.42 m(*) show- 80.45 34.25 16.64 16 0.50 255 255 255 RBox- 85.95 39.42 m(+) show- 80.45 13.25 15.44 16 0.50 255 255 255 RBox- 85.95 18.42 m(?) show- 0.30 slw-n 70.45 42.25 m 5 0 rl s-n 102.09 42.25 m 5 0 rl s-n 75.45 58.25 m 75.45 63.25 80.45 63.25 5 apr- 80.45 63.25 l s-n 80.45 21.25 m 75.45 21.25 75.45 26.25 5 apr- 75.45 26.25 l s-n 75.45 26.25 m 0 32 rl s-n 102.09 58.25 m 102.09 63.25 97.09 63.25 5 apr- 97.09 63.25 l s-n 97.09 21.25 m 102.09 21.25 102.09 26.25 5 apr- 102.09 26.25 l s-n 102.09 26.25 m 0 32 rl s-n 75.45 42.25 m 5 0 rl s-n 97.09 42.25 m 5 0 rl s-n 96.45 63.25 m 0.64 0 rl s-n 97.09 42.25 m 0 0 rl s-n 95.89 21.25 m 1.20 0 rl s-n 68.45 44.25 m 2 -2 rl -2 -2 rl s-n 55.45 8.25 m 66.64 0 rl s-n 55.45 8.25 m 60.45 8.25 60.45 13.25 5 apr- 60.45 13.25 l s-n 60.45 37.25 m 60.45 42.25 65.45 42.25 5 apr- 65.45 42.25 l s-n 65.45 42.25 m 5 0 rl s-n 122.09 8.25 m 117.09 8.25 117.09 13.25 5 apr- 117.09 13.25 l s-n 117.09 37.25 m 117.09 42.25 112.09 42.25 5 apr- 112.09 42.25 l s-n 107.09 42.25 m 5 0 rl s-n 60.45 13.25 m 0 24 rl s-n 117.09 13.25 m 0 24 rl s-n 122.09 8.25 m 5 0 rl s-n 125.09 10.25 m 2 -2 rl -2 -2 rl s-/AvantGarde-Book findfont 10 scalefont setfont- 0 83.42 m(RExtAtom) show-n 0 8.25 m 10 0 rl s-n 8 10.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 842 x @beginspecial 0 @llx 0 @lly 121 @urx-100 @ury 1210 @rwi @setspecial-%%BeginDocument: RAtom.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 255 255 255 scol 20 63.25 47.64 16 0.50 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 0 0 0 scol 25.50 68.42 m(character) show- 20 42.25 13.78 16 0.50 255 255 255 RBox- 25.50 47.42 m(\\) show- 0.30 slw-n 33.78 50.25 m 5 0 rl s-n 36.78 52.25 m 2 -2 rl -2 -2 rl s- 255 255 255 scol 38.78 42.25 47.64 16 0.50 255 255 255 Box- 0 0 0 scol 44.28 47.42 m(character) show- 20 21.25 13.50 16 0.50 255 255 255 RBox- 25.50 26.42 m(.) show- 20 0.25 17.11 16 0.50 255 255 255 RBox- 25.50 5.42 m(\\\() show- 0.30 slw-n 37.11 8.25 m 5 0 rl s-n 40.11 10.25 m 2 -2 rl -2 -2 rl s- 255 255 255 scol 42.11 0.25 41.55 16 0.50 255 255 255 Box- 0 0 0 scol 47.61 5.42 m(Regexp) show- 0.30 slw-n 83.66 8.25 m 5 0 rl s-n 86.66 10.25 m 2 -2 rl -2 -2 rl s- 88.66 0.25 17.11 16 0.50 255 255 255 RBox- 94.16 5.42 m(\\\)) show- 0.30 slw-n 10 39.75 m 5 0 rl s-n 110.77 39.75 m 5 0 rl s-n 15 66.25 m 15 71.25 20 71.25 5 apr- 20 71.25 l s-n 20 8.25 m 15 8.25 15 13.25 5 apr- 15 13.25 l s-n 15 13.25 m 0 53 rl s-n 110.77 66.25 m 110.77 71.25 105.77 71.25 5 apr- 105.77 71.25 l s-n 105.77 8.25 m 110.77 8.25 110.77 13.25 5 apr- 110.77 13.25 l s-n 110.77 13.25 m 0 53 rl s-n 15 50.25 m 5 0 rl s-n 15 29.25 m 5 0 rl s-n 105.77 50.25 m 5 0 rl s-n 105.77 29.25 m 5 0 rl s-n 67.64 71.25 m 38.13 0 rl s-n 86.42 50.25 m 19.35 0 rl s-n 33.50 29.25 m 72.27 0 rl s-n 105.77 8.25 m 0 0 rl s-n 115.77 39.75 m 5 0 rl s-n 118.77 41.75 m 2 -2 rl -2 -2 rl s-/AvantGarde-Book findfont 10 scalefont setfont- 0 91.42 m(RAtom) show-n 0 39.75 m 10 0 rl s-n 8 41.75 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 232 x Fd(2.4)112 b(Option)37 b(+unfold)330-2659 y Fl(The)21 b(option)f Fc(+unfold)h Fl(allo)n(ws)e(the)i-(replacemen)n(t)f(of)g(non)n(terminal)g(sym)n(b)r(ols)g(in)h(pro)r-(ductions,)330 2759 y(through)38 b(the)h("righ)n(t)e(side")i(of)f(the)h-(pro)r(duction)g(of)f(corresp)r(onding)f(non)n(terminals.)69-b(The)330 2859 y(non)n(terminals,)35 b(whic)n(h)g(follo)n(ws)e(the)i-(sym)n(b)r(ol)f Fj(--)g Fl(in)h(a)f(command)h(line)f(could)h(b)r(e)g-(sp)r(eci\034ed)330 2958 y(b)n(y)27 b(their)h(full)g(names,)f(or)g(b)n-(y)g(regular)e(expressions)h(\(see)i(Sec.)f(2.3\).)36-b(An)28 b(example:)37 b(with)28 b(the)330 3058 y(grammar)j-Fj(regular.BNF)e Fl(for)k(the)h(regular)d(expression)h(syn)n(tax)g(in)i-(section)f(2.3)g(should)g(b)r(e)330 3158 y(generated)g(a)h(diagram)f-(for)h Fj(RAtom)p Fl(,)g(with)g(a)g(replacemen)n(t)g(of)g(non)n-(terminal)f Fj(Regexp)p Fl(.)55 b(The)330 3257 y(follo)n(wing)22-b(diagram)f(is)h(b)r(een)h(pro)r(duced)g(with)g Fj(Ebnf2ps)40-b(+unfold)h(regular.BNF)e(RAtom)i(\025)330 3357 y(Regexp)p-Fl(.)330 4517 y @beginspecial 0 @llx 0 @lly 198 @urx-126 @ury 1980 @rwi @setspecial-%%BeginDocument: RAtom_unfold.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 88.50 48.64 17 1 255 255 255 Box-/Times-Roman findfont 10 scalefont setfont- 26 94.17 m(character) show- 20 66.50 14.78 17 1 255 255 255 RBox- 26 72.17 m(\\) show- 0.30 slw-n 34.78 75 m 5 0 rl s-n 37.78 77 m 2 -2 rl -2 -2 rl s- 39.78 66.50 48.64 17 1 255 255 255 Box- 45.78 72.17 m(character) show- 20 44.50 14.50 17 1 255 255 255 RBox- 26 50.17 m(.) show- 20 0.50 18.11 17 1 255 255 255 RBox- 26 6.17 m(\\\() show- 0.30 slw-n 38.11 9 m 5 0 rl s-n 41.11 11 m 2 -2 rl -2 -2 rl s- 53.11 0.50 44.22 17 1 255 255 255 Box- 59.11 6.17 m(RFactor) show- 66.83 22.50 16.78 17 1 255 255 255 RBox- 72.83 28.17 m(\\|) show- 0.30 slw-n 85.61 33 m -2 -2 rl 2 -2 rl s-n 43.11 9 m 10 0 rl s-n 97.33 9 m 10 0 rl s-n 53.11 31 m 13.72 0 rl s-n 83.61 31 m 13.72 0 rl s-n 53.11 9 m 48.11 9 48.11 14 5 apr- 48.11 14 l s-n 48.11 26 m 48.11 31 53.11 31 5 apr- 53.11 31 l s-n 97.33 9 m 102.33 9 102.33 14 5 apr- 102.33 14 l s-n 102.33 26 m 102.33 31 97.33 31 5 apr- 97.33 31 l s-n 48.11 14 m 0 12 rl s-n 102.33 14 m 0 12 rl s-n 107.33 9 m 5 0 rl s-n 110.33 11 m 2 -2 rl -2 -2 rl s- 127.33 14 17 17 1 255 255 255 RBox- 133.33 19.67 m($) show- 0.30 slw-n 125.33 24.50 m 2 -2 rl -2 -2 rl s-n 112.33 9 m 47 0 rl s-n 112.33 9 m 117.33 9 117.33 14 5 apr- 117.33 14 l s-n 117.33 17.50 m 117.33 22.50 122.33 22.50 5 apr- 122.33 22.50 l s-n 122.33 22.50 m 5 0 rl s-n 159.33 9 m 154.33 9 154.33 14 5 apr- 154.33 14 l s-n 154.33 17.50 m 154.33 22.50 149.33 22.50 5 apr- 149.33 22.50 l s-n 144.33 22.50 m 5 0 rl s-n 117.33 14 m 0 3.50 rl s-n 154.33 14 m 0 3.50 rl s-n 159.33 9 m 5 0 rl s-n 162.33 11 m 2 -2 rl -2 -2 rl s- 164.33 0.50 18.11 17 1 255 255 255 RBox- 170.33 6.17 m(\\\)) show- 0.30 slw-n 10 53 m 5 0 rl s-n 187.44 53 m 5 0 rl s-n 15 92 m 15 97 20 97 5 apr- 20 97 l s-n 20 9 m 15 9 15 14 5 apr- 15 14 l s-n 15 14 m 0 78 rl s-n 187.44 92 m 187.44 97 182.44 97 5 apr- 182.44 97 l s-n 182.44 9 m 187.44 9 187.44 14 5 apr- 187.44 14 l s-n 187.44 14 m 0 78 rl s-n 15 75 m 5 0 rl s-n 15 53 m 5 0 rl s-n 182.44 75 m 5 0 rl s-n 182.44 53 m 5 0 rl s-n 68.64 97 m 113.80 0 rl s-n 88.42 75 m 94.02 0 rl s-n 34.50 53 m 147.94 0 rl s-n 182.44 9 m 0 0 rl s-n 192.44 53 m 5 0 rl s-n 195.44 55 m 2 -2 rl -2 -2 rl s- 0 117.67 m(RAtom) show-n 0 53 m 10 0 rl s-n 8 55 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 455 4699 a(The)26 b(follo)n(wing)f(example)h(illustrates)g-(the)h(use)f(of)g(regular)f(expressions)g(with)i(the)f(option)330-4799 y Fj(+unfold)p Fl(.)43 b(In)30 b(all)h(pro)r(ductions)e(of)i(the)g-(grammar)d(\034le)j Fj(ebnf.BNF)c Fl(\026)k(whic)n(h)f(describ)r(es)g-(the)330 4898 y(syn)n(tax)23 b(of)i(EBNF)g(\034les)f(\(see)h(Sec.)f-(2.2\))g(\026)h(the)f(non)n(terminal)g Fj(String)e Fl(and)i(all)g(non)n-(terminals)330 4998 y(that)k(matc)n(h)f(the)h(pattern)461-5164 y Fj(.*\\\(t\\|T\\\)erm.*)330 5330 y Fl(should)36-b(b)r(e)g(replaced.)60 b(The)36 b(next)g(lines)g(sho)n(ws)f(the)h-(command)f(to)h(pro)r(duce)f(the)h(railroad)330 5430-y(diagrams)26 b(and)h(the)h(progress)d(messages)h(of)i(Ebnf2ps.)330-5588 y Fe(\045)36 b(Ebnf2ps)h(-verbose)g(-tScale)g(8)f(-ntScale)h(8)f-(+unfold)h(ebnf.BNF)h('.*')e(--)g(String)h('.*\\\(t\\|T\\\)erm.*')330-5662 y(using)g(colors:)1809 5919 y Fl(6)p eop-%%Page: 7 7-7 6 bop 612 390 a Fe(ntColor)355 b(\(0,0,0\))612 465-y(tColor)390 b(\(0,0,0\))612 540 y(lineColor)285 b(\(0,0,0\))612-614 y(ntBoxColor)250 b(\(0,0,0\))612 689 y(tBoxColor)285-b(\(0,0,0\))612 764 y(ntBg)460 b(\(255,255,255\))612-839 y(tBg)495 b(\(255,255,255\))612 913 y(titleColor)250-b(\(0,0,0\))330 988 y(from)36 b(rgbPathDefault:)k(["/usr/lib/X11",)f-("/usr/local/X11R5/lib/)q(X11")q(])330 1063 y(generating)f-(nonterminals:)h([".*"])330 1137 y(from)d(ebnf.BNF)330-1212 y(using)h(input)f(path)h(["."])330 1287 y(using)g(ebnfInput)330-1362 y(unfold)g(nonterminals:)612 1436 y(Nonterminal)612-1511 y(String)612 1586 y(Term)330 1660 y(in)f(the)g(following)i-(productions)612 1735 y(Production)612 1810 y(Atom)330-1885 y(produce)f(layout)g(and)f(output)330 2035 y Fl(W)-7-b(ell,)28 b(graphically)e(that)i(is:)330 4274 y @beginspecial-0 @llx 0 @lly 139 @urx 261 @ury 1390 @rwi @setspecial-%%BeginDocument: Atom_unfold.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 20 153 28.44 15 1 255 255 255 Box-/Times-Roman findfont 8 scalefont setfont- 26 158.67 m(letter) show- 0.30 slw-n 48.44 160.50 m 5 0 rl s-n 51.44 162.50 m 2 -2 rl -2 -2 rl s- 73.44 225.50 28.44 15 1 255 255 255 Box- 79.44 231.17 m(letter) show- 75.21 205.50 26.67 15 1 255 255 255 Box- 81.21 211.17 m(digit) show- 85.88 185.50 16 15 1 255 255 255 RBox- 91.88 191.17 m(_) show- 87.88 165.50 14 15 1 255 255 255 RBox- 93.88 171.17 m(.) show- 0.30 slw-n 63.44 203 m 5 0 rl s-n 106.88 203 m 5 0 rl s-n 68.44 228 m 68.44 233 73.44 233 5 apr- 73.44 233 l s-n 73.44 173 m 68.44 173 68.44 178 5 apr- 68.44 178 l s-n 68.44 178 m 0 50 rl s-n 106.88 228 m 106.88 233 101.88 233 5 apr- 101.88 233 l s-n 101.88 173 m 106.88 173 106.88 178 5 apr- 106.88 178 l s-n 106.88 178 m 0 50 rl s-n 68.44 213 m 5 0 rl s-n 68.44 193 m 5 0 rl s-n 101.88 213 m 5 0 rl s-n 101.88 193 m 5 0 rl s-n 73.44 233 m 0 0 rl s-n 73.44 213 m 1.77 0 rl s-n 73.44 193 m 12.44 0 rl s-n 73.44 173 m 14.44 0 rl s-n 113.88 205 m -2 -2 rl 2 -2 rl s-n 53.44 160.50 m 68.44 0 rl s-n 63.44 160.50 m 58.44 160.50 58.44 165.50 5 apr- 58.44 165.50 l s-n 58.44 198 m 58.44 203 63.44 203 5 apr- 63.44 203 l s-n 111.88 160.50 m 116.88 160.50 116.88 165.50 5 apr- 116.88 165.50 l s-n 116.88 198 m 116.88 203 111.88 203 5 apr- 111.88 203 l s-n 58.44 165.50 m 0 32.50 rl s-n 116.88 165.50 m 0 32.50 rl s- 20 120.50 15.26 15 1 255 255 255 RBox- 26 126.17 m(") show- 0.30 slw-n 35.26 128 m 5 0 rl s-n 38.26 130 m 2 -2 rl -2 -2 rl s- 50.26 133 43.09 15 1 255 255 255 Box- 56.26 138.67 m(Character) show- 0.30 slw-n 95.35 142.50 m -2 -2 rl 2 -2 rl s-n 40.26 128 m 63.09 0 rl s-n 50.26 128 m 45.26 128 45.26 133 5 apr- 45.26 133 l s-n 45.26 135.50 m 45.26 140.50 50.26 140.50 5 apr- 50.26 140.50 l s-n 93.35 128 m 98.35 128 98.35 133 5 apr- 98.35 133 l s-n 98.35 135.50 m 98.35 140.50 93.35 140.50 5 apr- 93.35 140.50 l s-n 45.26 133 m 0 2.50 rl s-n 98.35 133 m 0 2.50 rl s-n 103.35 128 m 5 0 rl s-n 106.35 130 m 2 -2 rl -2 -2 rl s- 108.35 120.50 15.26 15 1 255 255 255 RBox- 114.35 126.17 m(") show- 20 80.50 14.66 15 1 255 255 255 RBox- 26 86.17 m(\() show- 0.30 slw-n 34.66 88 m 5 0 rl s-n 37.66 90 m 2 -2 rl -2 -2 rl s- 49.66 80.50 32.44 15 1 255 255 255 Box- 55.66 86.17 m(Factor) show- 59.08 100.50 13.60 15 1 255 255 255 RBox- 65.08 106.17 m(|) show- 0.30 slw-n 74.68 110 m -2 -2 rl 2 -2 rl s-n 39.66 88 m 10 0 rl s-n 82.10 88 m 10 0 rl s-n 49.66 108 m 9.42 0 rl s-n 72.68 108 m 9.42 0 rl s-n 49.66 88 m 44.66 88 44.66 93 5 apr- 44.66 93 l s-n 44.66 103 m 44.66 108 49.66 108 5 apr- 49.66 108 l s-n 82.10 88 m 87.10 88 87.10 93 5 apr- 87.10 93 l s-n 87.10 103 m 87.10 108 82.10 108 5 apr- 82.10 108 l s-n 44.66 93 m 0 10 rl s-n 87.10 93 m 0 10 rl s-n 92.10 88 m 5 0 rl s-n 95.10 90 m 2 -2 rl -2 -2 rl s- 97.10 80.50 14.66 15 1 255 255 255 RBox- 103.10 86.17 m(\)) show- 20 40.50 14.66 15 1 255 255 255 RBox- 26 46.17 m([) show- 0.30 slw-n 34.66 48 m 5 0 rl s-n 37.66 50 m 2 -2 rl -2 -2 rl s- 49.66 40.50 32.44 15 1 255 255 255 Box- 55.66 46.17 m(Factor) show- 59.08 60.50 13.60 15 1 255 255 255 RBox- 65.08 66.17 m(|) show- 0.30 slw-n 74.68 70 m -2 -2 rl 2 -2 rl s-n 39.66 48 m 10 0 rl s-n 82.10 48 m 10 0 rl s-n 49.66 68 m 9.42 0 rl s-n 72.68 68 m 9.42 0 rl s-n 49.66 48 m 44.66 48 44.66 53 5 apr- 44.66 53 l s-n 44.66 63 m 44.66 68 49.66 68 5 apr- 49.66 68 l s-n 82.10 48 m 87.10 48 87.10 53 5 apr- 87.10 53 l s-n 87.10 63 m 87.10 68 82.10 68 5 apr- 82.10 68 l s-n 44.66 53 m 0 10 rl s-n 87.10 53 m 0 10 rl s-n 92.10 48 m 5 0 rl s-n 95.10 50 m 2 -2 rl -2 -2 rl s- 97.10 40.50 14.66 15 1 255 255 255 RBox- 103.10 46.17 m(]) show- 20 0.50 15.84 15 1 255 255 255 RBox- 26 6.17 m({) show- 0.30 slw-n 35.84 8 m 5 0 rl s-n 38.84 10 m 2 -2 rl -2 -2 rl s- 50.84 0.50 32.44 15 1 255 255 255 Box- 56.84 6.17 m(Factor) show- 60.26 20.50 13.60 15 1 255 255 255 RBox- 66.26 26.17 m(|) show- 0.30 slw-n 75.86 30 m -2 -2 rl 2 -2 rl s-n 40.84 8 m 10 0 rl s-n 83.28 8 m 10 0 rl s-n 50.84 28 m 9.42 0 rl s-n 73.86 28 m 9.42 0 rl s-n 50.84 8 m 45.84 8 45.84 13 5 apr- 45.84 13 l s-n 45.84 23 m 45.84 28 50.84 28 5 apr- 50.84 28 l s-n 83.28 8 m 88.28 8 88.28 13 5 apr- 88.28 13 l s-n 88.28 23 m 88.28 28 83.28 28 5 apr- 83.28 28 l s-n 45.84 13 m 0 10 rl s-n 88.28 13 m 0 10 rl s-n 93.28 8 m 5 0 rl s-n 96.28 10 m 2 -2 rl -2 -2 rl s- 98.28 0.50 15.84 15 1 255 255 255 RBox- 104.28 6.17 m(}) show- 0.30 slw-n 10 84.25 m 5 0 rl s-n 128.61 84.25 m 5 0 rl s-n 15 155.50 m 15 160.50 20 160.50 5 apr- 20 160.50 l s-n 20 8 m 15 8 15 13 5 apr- 15 13 l s-n 15 13 m 0 142.50 rl s-n 128.61 155.50 m 128.61 160.50 123.61 160.50 5 apr- 123.61 160.50 l s-n 123.61 8 m 128.61 8 128.61 13 5 apr- 128.61 13 l s-n 128.61 13 m 0 142.50 rl s-n 15 128 m 5 0 rl s-n 15 88 m 5 0 rl s-n 15 48 m 5 0 rl s-n 123.61 128 m 5 0 rl s-n 123.61 88 m 5 0 rl s-n 123.61 48 m 5 0 rl s-n 121.88 160.50 m 1.73 0 rl s-n 123.61 128 m 0 0 rl s-n 111.76 88 m 11.85 0 rl s-n 111.76 48 m 11.85 0 rl s-n 114.12 8 m 9.49 0 rl s-n 133.61 84.25 m 5 0 rl s-n 136.61 86.25 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 252.67 m(Atom) show-n 0 84.25 m 10 0 rl s-n 8 86.25 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 917 x @beginspecial 0 @llx 0 @lly 354 @urx-109 @ury 3540 @rwi @setspecial-%%BeginDocument: Production_unfold.eps-/$Ebnf2psDict 100 dict def-$Ebnf2psDict begin-/l {lineto} bind def-/m {moveto} bind def-/rl {rlineto} bind def-/rm {rmoveto} bind def-/s {stroke} bind def-/n {newpath} bind def-/gs {gsave} bind def-/gr {grestore} bind def-/clp {closepath} bind def-/slw {setlinewidth} bind def-/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul-4 -2 roll mul setrgbcolor} bind def-/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def- /apr {arcto 4 {pop} repeat} def-/Box {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- n llx lly m- width 0 rl- 0 height rl- width neg 0 rl- 0 height neg rl- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-/RBox {- /bgB exch def- /bgG exch def- /bgR exch def- /linewidth exch def- /height exch def- /width exch def- /lly exch def- /llx exch def- linewidth 2 div dup llx add /llx exch def lly add /lly exch def- /height height linewidth sub def- /width width linewidth sub def- /height2 height 2 div def- /width2 width 2 div def- /urx llx width add def- /ury lly height add def- /mmx llx width2 add def- /mmy lly height2 add def- /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def- /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def- /radius width2 height2 ge {height2} {width2} ifelse def- n mmx lly m- urx lly urx mmy radius apr- urx ury mmx ury radius apr- llx ury llx mmy radius apr- llx lly mmx lly radius apr- mmx lly l- linewidth 0 eq {linewidth0} {linewidth1} ifelse-} def-end-/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def-/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def---$Ebnf2psBegin- 0 0 0 scol 10 0.50 28.44 15 1 255 255 255 Box-/Times-Roman findfont 8 scalefont setfont- 16 6.17 m(letter) show- 0.30 slw-n 38.44 8 m 5 0 rl s-n 41.44 10 m 2 -2 rl -2 -2 rl s- 63.44 73 28.44 15 1 255 255 255 Box- 69.44 78.67 m(letter) show- 65.21 53 26.67 15 1 255 255 255 Box- 71.21 58.67 m(digit) show- 75.88 33 16 15 1 255 255 255 RBox- 81.88 38.67 m(_) show- 77.88 13 14 15 1 255 255 255 RBox- 83.88 18.67 m(.) show- 0.30 slw-n 53.44 50.50 m 5 0 rl s-n 96.88 50.50 m 5 0 rl s-n 58.44 75.50 m 58.44 80.50 63.44 80.50 5 apr- 63.44 80.50 l s-n 63.44 20.50 m 58.44 20.50 58.44 25.50 5 apr- 58.44 25.50 l s-n 58.44 25.50 m 0 50 rl s-n 96.88 75.50 m 96.88 80.50 91.88 80.50 5 apr- 91.88 80.50 l s-n 91.88 20.50 m 96.88 20.50 96.88 25.50 5 apr- 96.88 25.50 l s-n 96.88 25.50 m 0 50 rl s-n 58.44 60.50 m 5 0 rl s-n 58.44 40.50 m 5 0 rl s-n 91.88 60.50 m 5 0 rl s-n 91.88 40.50 m 5 0 rl s-n 63.44 80.50 m 0 0 rl s-n 63.44 60.50 m 1.77 0 rl s-n 63.44 40.50 m 12.44 0 rl s-n 63.44 20.50 m 14.44 0 rl s-n 103.88 52.50 m -2 -2 rl 2 -2 rl s-n 43.44 8 m 68.44 0 rl s-n 53.44 8 m 48.44 8 48.44 13 5 apr- 48.44 13 l s-n 48.44 45.50 m 48.44 50.50 53.44 50.50 5 apr- 53.44 50.50 l s-n 101.88 8 m 106.88 8 106.88 13 5 apr- 106.88 13 l s-n 106.88 45.50 m 106.88 50.50 101.88 50.50 5 apr- 101.88 50.50 l s-n 48.44 13 m 0 32.50 rl s-n 106.88 13 m 0 32.50 rl s-n 111.88 8 m 5 0 rl s-n 114.88 10 m 2 -2 rl -2 -2 rl s- 131.88 13 15.26 15 1 255 255 255 RBox- 137.88 18.67 m(") show- 0.30 slw-n 147.14 20.50 m 5 0 rl s-n 150.14 22.50 m 2 -2 rl -2 -2 rl s- 162.14 25.50 43.09 15 1 255 255 255 Box- 168.14 31.17 m(Character) show- 0.30 slw-n 207.23 35 m -2 -2 rl 2 -2 rl s-n 152.14 20.50 m 63.09 0 rl s-n 162.14 20.50 m 157.14 20.50 157.14 25.50 5 apr- 157.14 25.50 l s-n 157.14 28 m 157.14 33 162.14 33 5 apr- 162.14 33 l s-n 205.23 20.50 m 210.23 20.50 210.23 25.50 5 apr- 210.23 25.50 l s-n 210.23 28 m 210.23 33 205.23 33 5 apr- 205.23 33 l s-n 157.14 25.50 m 0 2.50 rl s-n 210.23 25.50 m 0 2.50 rl s-n 215.23 20.50 m 5 0 rl s-n 218.23 22.50 m 2 -2 rl -2 -2 rl s- 220.23 13 15.26 15 1 255 255 255 RBox- 226.23 18.67 m(") show- 0.30 slw-n 129.88 22.50 m 2 -2 rl -2 -2 rl s-n 116.88 8 m 133.61 0 rl s-n 116.88 8 m 121.88 8 121.88 13 5 apr- 121.88 13 l s-n 121.88 15.50 m 121.88 20.50 126.88 20.50 5 apr- 126.88 20.50 l s-n 126.88 20.50 m 5 0 rl s-n 250.49 8 m 245.49 8 245.49 13 5 apr- 245.49 13 l s-n 245.49 15.50 m 245.49 20.50 240.49 20.50 5 apr- 240.49 20.50 l s-n 235.49 20.50 m 5 0 rl s-n 121.88 13 m 0 2.50 rl s-n 245.49 13 m 0 2.50 rl s-n 250.49 8 m 5 0 rl s-n 253.49 10 m 2 -2 rl -2 -2 rl s- 255.49 0.50 16.51 15 1 255 255 255 RBox- 261.49 6.17 m(=) show- 0.30 slw-n 272 8 m 5 0 rl s-n 275 10 m 2 -2 rl -2 -2 rl s- 287 0.50 32.44 15 1 255 255 255 Box- 293 6.17 m(Factor) show- 296.42 20.50 13.60 15 1 255 255 255 RBox- 302.42 26.17 m(|) show- 0.30 slw-n 312.02 30 m -2 -2 rl 2 -2 rl s-n 277 8 m 10 0 rl s-n 319.44 8 m 10 0 rl s-n 287 28 m 9.42 0 rl s-n 310.02 28 m 9.42 0 rl s-n 287 8 m 282 8 282 13 5 apr- 282 13 l s-n 282 23 m 282 28 287 28 5 apr- 287 28 l s-n 319.44 8 m 324.44 8 324.44 13 5 apr- 324.44 13 l s-n 324.44 23 m 324.44 28 319.44 28 5 apr- 319.44 28 l s-n 282 13 m 0 10 rl s-n 324.44 13 m 0 10 rl s-n 329.44 8 m 5 0 rl s-n 332.44 10 m 2 -2 rl -2 -2 rl s- 334.44 0.50 14.22 15 1 255 255 255 RBox- 340.44 6.17 m(;) show- 0.30 slw-n 348.66 8 m 5 0 rl s-n 351.66 10 m 2 -2 rl -2 -2 rl s-/Times-Roman findfont 10 scalefont setfont- 0 100.17 m(Production) show-n 0 8 m 10 0 rl s-n 8 10 m 2 -2 rl -2 -2 rl s--$Ebnf2psEnd-%%EndDocument- @endspecial 227 x Fd(2.5)112 b(En)m(vironmen)m(t)34-b(v)-6 b(ariables)330 5571 y Fl(The)22 b(format)f(of)h(searc)n(h)e-(pathes)h(is)h(a)f(colon)g(separated)g(list)h(of)g(directories.)33-b(The)22 b(default)g(path)330 5670 y(is)27 b(inserted)g(in)g(place)f-(of)h(an)g(empt)n(y)g(directory)f(in)h(the)g(list.)37-b(An)n(y)27 b(\034le)g(name)g(starting)f(with)h Fj(/)1809-5919 y Fl(7)p eop-%%Page: 8 8-8 7 bop 330 390 a Fl(is)27 b(tak)n(en)g(as)f(an)h(absolute)f(name)h-(and)g(an)n(y)f(\034le)i(name)f(starting)f(with)h Fj(.)37-b Fl(is)27 b(tak)n(en)f(relativ)n(e)g(to)330 490 y(the)i(curren)n(t)f-(w)n(orking)e(directory)-7 b(.)330 672 y Fc(AFMP)f(A)g(TH)42-b Fl(searc)n(h)26 b(path)i(for)f(Adob)r(e)h(fon)n(t)f(metric)h-(\034les.)330 839 y Fc(EBNFINPUTS)42 b Fl(searc)n(h)26-b(path)i(for)f(grammar)e(input)j(\034les.)330 1005 y-Fc(R)m(GBP)-8 b(A)g(TH)42 b Fl(searc)n(h)26 b(path)i(for)f(the)h(color)-e(de\034nitions.)330 1279 y Fk(3)131 b(Ho)l(w)44 b(to)g(c)l(hange)g(it)-330 1461 y Fl(In)21 b(order)e(to)i(add)f(new)h(options)f(to)h(the)g-(program)e(y)n(ou)g(will)i(need)g(a)g(mo)r(di\034ed)g(cop)n(y)e(of)i-(the)g(pro-)330 1561 y(gram)d Fj(Mkhprog)f Fl(with)j(kind)g(p)r-(ermission)f(of)h(the)g(author)f(Nic)n(k)g(North)h(\()p-Fj(ndn@seg.npl.co.u)o(k)p Fl(\))330 1660 y(whic)n(h)27-b(is)h(a)n(v)-5 b(ailable)26 b(from)h(URL)330 1826 y-Fj(http://www-pu.in)o(fo)o(rma)o(ti)o(k.)o(uni)o(-t)o(ue)o(bin)o(ge)o-(n.)o(de/)o(us)o(er)o(s/t)o(hi)o(ema)o(nn)o(/h)o(ask)o(el)o(l/)o(ebn)o-(f2)o(ps)o(/)1809 5919 y Fl(8)p eop-%%Trailer-end+%%Creator: dvips(k) 5.994 Copyright 2014 Radical Eye Software+%%Title: doc.dvi+%%CreationDate: Fri Oct 3 02:35:51 2014+%%Pages: 9+%%PageOrder: Ascend+%%BoundingBox: 0 0 612 792+%%DocumentFonts: CMR17 CMR12 CMSY10 CMTT12 CMR10 CMBX12 CMTT10 CMTI10+%%+ CMBX10 CMBXTI10 CMR7 CMR6 CMR8 CMTT8+%%DocumentPaperSizes: Letter+%%EndComments+%DVIPSWebPage: (www.radicaleye.com)+%DVIPSCommandLine: dvips -o doc.ps doc.dvi+%DVIPSParameters: dpi=600+%DVIPSSource: TeX output 2014.10.03:0235+%%BeginProcSet: tex.pro 0 0+%!+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end++%%EndProcSet+%%BeginProcSet: texps.pro 0 0+%!+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def+end++%%EndProcSet+%%BeginProcSet: special.pro 0 0+%!+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known+{userdict/md get type/dicttype eq{userdict begin md length 10 add md+maxlength ge{/md md dup length 20 add dict copy def}if end md begin+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState+save N userdict maxlength dict begin/magscale true def normalscale+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc+savematrix setmatrix}N end++%%EndProcSet+%%BeginFont: CMTT8+%!PS-AdobeFont-1.0: CMTT8 003.002+%%Title: CMTT8+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT8.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMTT8 known{/CMTT8 findfont dup/UniqueID known{dup+/UniqueID get 5000830 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMTT8 def+/FontBBox {-5 -232 545 699 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT8.) readonly def+/FullName (CMTT8) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch true def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 34 /quotedbl put+dup 37 /percent put+dup 39 /quoteright put+dup 40 /parenleft put+dup 41 /parenright put+dup 42 /asterisk put+dup 43 /plus put+dup 44 /comma put+dup 45 /hyphen put+dup 46 /period put+dup 47 /slash put+dup 48 /zero put+dup 49 /one put+dup 50 /two put+dup 53 /five put+dup 56 /eight put+dup 58 /colon put+dup 65 /A put+dup 66 /B put+dup 67 /C put+dup 68 /D put+dup 69 /E put+dup 70 /F put+dup 71 /G put+dup 73 /I put+dup 76 /L put+dup 78 /N put+dup 80 /P put+dup 82 /R put+dup 83 /S put+dup 84 /T put+dup 87 /W put+dup 88 /X put+dup 91 /bracketleft put+dup 92 /backslash put+dup 93 /bracketright put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 107 /k put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 119 /w put+dup 120 /x put+dup 121 /y put+dup 124 /bar put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D06E82116C79486D8+C5C32DADDFCB2CBD26FE85FFCB176AA09FBE325434B8B9D358B7C180AEC54F8D+24A1AB4D5EE5375B963A221F060453E01768F0A398352CB2C76E6E70BA017570+BE1C3D3A86E803B10B506FD9DB49DF5CC7BE17133234D7BE9230BE8B7481B357+08595FAE04D04B14C633C52E303B06EDEEF7CDDF20F34D7F08D991DFE2C4261F+298E0A818EBFF29D3B29D1D0CE2F071B49B0622F65F936F6C1D4C6AA2860E56C+9140A4FA23BA31888345142DBFA79825662511437347767D4A13A976FCF67EA6+7882D7B391B37FC1E22787E484D19BB252C4D73AA3D73EFA5C6341CF6F127033+2B91079B5FF8A164666CCC65D0002EF7E374098745C84E3037324B4248C5385C+FCF0539F8C04CBC52404BDC6ABD1474617D06377A69F4851838F462E82A86BC6+F8DB2E740B5270AECB0B922D4493A75422349138B539B6067C040F3007F04191+CB545ACC01B4F28AF811266260FEEC04057287BB5C26C077946DDF23322FD99F+2B3DFFB62AB8BF12000AA81ADAA6A064F9C34D5F36CB7F66A5EEB7B494FA1AAE+32B380163AEE08F5BD270FAAD8DAF0CC5B6979B8D4FB6AD723E011DCFE119092+D1025BB62280B745BB0FB140E82325F1FDFC029100F922BF206E5527B7D8F60C+3F3E3AE2184CB954391D10A1618FA0940F12159167494E29A46125CB911B19C4+97B4DC76FF53B7F79E380D7375FAB6C30A467E02E48BA73403D3900FBB440C9E+951C081C8D5E04DC0C8E1BC7D552075CC360B7D1007367C655069324713715BF+F8182AEB6F401A1F029FB3962BB3A0B2775979FDFFD834D5559EE20CF54D789D+41AAE2A22A06E509E4E648FD33710B58A83FBC8DB8D6544577E03B186F0576A1+0C1F1FDE425A0AA5724986D953945FD3ADC0C170FBDD241BAC988D65CA8FFD0B+B013EB27813C9B3740FE2E9D8D81FEDAD1A95CC38494DCD832CC92797432F3B2+4CBCF51F4C14C18B1E5146F691604D479DA92E0B1F5CABE244D8761E14138E95+0EF0EC36424D8A7581AB3854188D11AF8339662D164EF37BF8635D5E0A836955+688C6B9BBD36356BF8F5AEFAE3875512A503C38D058F5823D50EB25F683649F9+F9D9FF4C5580C2F284030AED47099DF18280473AB6BFC7A2423D1E19F327E809+4D24A7256E1A20BB90A03B2888E16AADF817FB7A6A3D5E467DCC72973CF4850E+D8D09E8CEE8238655699D72D0A04E30A519843CF0206062083EAC81F20E1AB64+255DEEB9EE69C27D30C8B0EC4FEF9A18D7FBAEAECC2144D35CAEA7F72CA2EA2B+5B88EBFCA05BCEFE6054A5ADA78D59FD137AAA9561B3381AA861EB9143A4ECB9+481C8F62955831A3390E36F3C429400C555EEFC6781E57FF9069562AAAFE1CE7+4489714C037B646E75D9F6A27E0457CF1B053BD47692296EFF40A9272A535487+67B682933914EF447D7E09A12C3336AD847D8D03ECC4CA307C392384FC95A84B+DF168402E7F8EE68B24823CDC50A331C43097BA0895FB0FD6581E9BFF884CF1E+EF441D0F542592E5B3C8D1C72213A7DD7A070532D341BF4312DD850BE35B21F1+6DC109B3461FC4E8CA674F49AB182C0405614EE77CEEEB4F268FBE788A421486+CDA7BA677DE3CC4EE657B470877D1D11485DCE1653A50D9A1A8D27C06CF57926+57417DC67FB949A8B36684CE6B30EF2C1D3C5FC2511FD14EC6BC01FE567BE597+740B4F743630AB35044BE5EE77632B25C5263D332D8EC66B7F100307FBCAE153+76C2E37780A30485DBA063C52E8210D650B1A010319B695F2C36FB39CF0C947B+B2346CF79DAEA8A0AE0E6C8231FD5D91307CDC8751AA220B1199ECCD283E82F4+392948DB293FBA1498444B91F9148B0EB307F5D311996056CA15582B86408D64+AB1D59C2855002579E2A2041226CA554AD9B5808B29138FC97A51A4D5865746E+C5C38FA705732159630F60E505F705936F7C86D36D75A0DFD39144D6030F9A16+A82EAA03E42A4BF1B34386BC9B8BDCB4EA628172642125763F0C2B2FABB9BE54+F800C76185A882BAD0184AC9BCA49EF9BF3F6B8BA3049DAA2A06FC203245246B+E588A72D06FF5B27AE0E92BB2C5B510D4F25C73D57586039840583F64C8DE73E+9246383822710055E973AA49C944A9D5E09214F78534358A8CEAC1D7B15B0170+73A07C413BF038D68E3B69F76555179FD17B8DEDD3AB8E706CA12D2BEBB44A71+F79E2D6209C74EE4AAB4775BE7C09E3654ABEC7F5859608667F3CD73EAB2F8B0+59A28FC489608D0091E7E6967FB8340948881722AD4320F689DDA183C667B0E7+C996CFFA1533EC99F26A02DE852FE290D993EA65B0B3DB7F9B74B5C23169E153+1A138AAF581E4480EFC41B863696FE003F2BE4CFABF376ADE89F9ED0B592F5D8+EFAE93FA63B79681DEDD413574023695BE5FBD92643874B0357F486112E0866D+192A85066CF91A0840CA8554294CA9E1D155AC1B497A18EABD51D14D1D8667F8+2B66CC11BC241875E5BA3DC5C65605BF13F98A04F62F8A8BACD0154C47FC7863+85A5CDCBCAD9DA834D16E483A3B0E24D64032A04D10709C3878431F2D590165F+BE2E5768E13F71BB7912D6C8E4A039A57E4305B322562D11BE7C90505395A0EE+8E26317B135175EB7AF556A6E7A8D0C6A36F3D9637DB758315890378E2E7A932+928B0532851ABB3B520EE43575B76576A1B2838C923A9EC58D60D07D4A918626+2924F9DCDCC239A5A473046A1DB19E1645D6212EBBAEDAA4DF4965A285B7D622+23FDE232D7AB101F267B9142D0368D75EEB7B4E5B768EA4B1F2C62957208A5CC+66410668536A877BDF4658223420B97A1FC054D6BBFE1EF833011973EB09AF7C+B4E1DD4F5F2A681360A467A3A3D9ED7C09354B2F323EDCEDC07F1713A7960004+8C7E123580FC2D9CE6D177F3765EBF3095AAEA7EC838B516B8ACB007D53F2EA3+132EB8461978A98BCFED0C18A019FE7ABF56BB9F229C6806B756F0142BF48851+900E960C48829A18BC1793C0F018D91063F7185663C67BA8B14DAE771E7B5E73+A091B6C12ACE0BE839FD372D1B2943A3EE97E4940FB36233B221D2B19CA0C3B7+3C5316F2B4B31C20156FE531E0BB851E79C983E2CFCBFB04CE3301377998EA9D+66116D609D03E27B458BB08DBFEB43FDB2F9854EEDE7517D19FE90DA827C537C+64639C47DB141BA775D3DD41D7ADF7112DB70A228E133209D110BC63310AECB4+2AF5BB943E88159B12A89FFF8BB742A89ED9D8781398BB954018F85CB566360B+CA2EC10FF86629CC7456111B70FE6D18C5726E187C74064DDE50C77D21A1B617+B4AE15F24571FD2E7FACD0A7977E140D6B2F7E51E78FC6A544B78C937EE9E5EA+335C798E6F6BFD11F81556D10DAA881B94BC5C7CAC88AD5882A9806E12B673EC+9EA565ABD6EE3D103D57EC4BFA09917102BCC073E970C13FABAFC9D8E44EA8D5+A2ACD20B7F027BAA9CBBA5A0F7542C81915497BAC96AD82E004ED0567BA42654+C8029A1394ACC22E277D317A735A5E949167DD2A3BA4CC0CBDC573A50267B361+E7A4CA145AA7B624B23835DB041EBE7911682042FBF68597FA8618B36E125382+F655985A9FD0C0001B967D4DE228D30AB8304EB3EA76726F05DA54270BFCBA2F+F5C2CDD5185E2636286F37DD9F0FD22663B48D1D8C474C7AF38DFE851992E9CA+1339FC7D00D11296FCFA417AF5DB492C4E617ED44C20F9D909D72C2CAC85FDC2+1EEDB945CF62055FB650C5EB2AA96249D3B1A81DEF9CFB1BB0468EBC3A0F815A+464E8D86FA6BBBAFB43980E2A713731CBDE213B8B5D26DCAC33E73A745E020D2+11696ED7933DA18C4737959B2B85973727AE8501B84C07BBCC90266C74F6E593+A7046C0B676F77232A5FFCB1AAC960B3EE1CB736EF59ABA2050245F01F2F79AE+66A5396FE08CBF7387D2D38FC0054DBD96B34DA50B9A2701EC0C700D0D01D0AF+38F164B1287317FCD09C23A1D535AE205A1D01DBCCBD7C2BE15B2C317B0D8482+1B1FECCE171DCB324F61BCBDB778B66233388031EA32EDF8794577A088687AE5+F58393EEFA925E555E775B9147D7362C9D0316705BEEC52064BA57A1C820EB2D+929A64779C6878101DB06756198537DF5CDBC1DF0F3346718382908FE73814F2+31F56DEEA20A91293BE2C3E783D99C91A1C6CDA0A0D73203CCEEC68B7C5964A4+60ABED12D7B9BD9D08EFC5E026C9C81B53C3F3312153B7F65B47673706F56A46+C97E7072D4B70EDD3C9B5501FD0B84F0DEEF40FD6B9F4CCE9D691FF7AF4A2438+EA981AE43633B0E83582988BFDC29E5D74551AAECFC133902A2A456DCC2A9062+FDD7D83FA8C8255D8F6E1358D3FC010FE9365F4466B3FC58FC2225286AE54FE1+24F136B59C29BE263C07E95C51D601F8DCD1B53DB88D71ABB7BB42045E78AB56+B01464E36799864A1728D1B8EF6EB3F182ED7BEE810A210001F5997592A47AF9+148556B061CB27D188B7C02781BA21F5C20813118AD32AF6AB4E41937177E8C4+8FB2999C5B611EE08708DFA45971FC3F01259E6E07452FD50C6306693FE71BAD+8DE0660088B6212D1C2D8CE6499B4DFC53F8AE89C271FEC72FE6121F98711978+3E917F8F362D4641B8D788EE7087501BDAA5FBE69E856945C74E18C38BF92872+818FFAD743C279D576029F6337A0AAF0958337974063BE5B4C65E0398A2505D1+76468846D95E6170659126E3205515A94932B5EEFDBCC456582F38E339172ADD+A0E02E051D9481603E84AE09FF5C7902A287DE655426E0DF478D1F3EE4F636D5+FC7BB95528F739B5B1647901315250E9FC47FAB2B77C1F28EB658817177803BE+626014E922988B73DD35BBE0725E74D204156035F5E03B3F44A954C15EB8FBA8+ADFE1C07D020EE0AB89112DB52D870C5FC843ED53FC5ED18275DD4659F4F4198+2D3FCB1B4D5B2AF036705ED4A922FBC3D898D9995E6E2033E6CC702AAC0E3377+14FF50EAEA83F91B236CF8CEC1CD16D38FE18224770874AF3D0146F616FCFCAA+B3A1420A15FFC1204A991603A6AD6D072FC68F51BB8744AD77B93845D0E94E95+5066D40E8D4CC55FE6550D99BA07568FE8CB0E9550557B84EADEBF47D9412DC7+A8FC512464481C50894B3D6961D4CF64BF05E0988BDBC265946D0E5C4C1767E1+ADDCF9A90CC8AD16209684B6130072E886035A634E2A41B1AB138738AE47C458+C9F6FC927F0CDFA4A627CBD0AB6A1F1831B47ADE297462553E39BFEBDC52729B+5AAC591D5D39A6D8F2A12BDC1AC08F3D4A7D0E62994C343D699E2915C6C68AB2+FFD2E119AE099BABF1E6487929C97EFAF776E75CC516D90BB99F6732F1C67BCA+EB8718097A800E6B0C5982FD14482EE3259D04D8B757475E120395BFFED6A19E+878AFB777AE617057EF9294CBDFE8D704BBA1A3010AC3DBCF3576F0FE0F3E6A4+F3C698C21DDECE20932926FFB933E6434FA97E8F33BBAD60A7BD63D1491C759E+B308849F4A61EBD6C0D9E3CF28A05B55D3DD9EFBDC0C17A633A2843F2A0731C9+839645BE1A234798ACE3F384A52B0971F876C1C3AB78338C437B2EC02FFCA16E+51B8B01132A48599C48AB35B064B9AEC8D75590E3608081E4A488CE95D3CD355+607835FDFE654154E65CA0A019565FB0B5E5DA48D5A271D6DD129B568C2FEB96+E1EAA87BA29C1B01963496D6C1DFAAF43BFE2580C7ED32C7FA786911D91F4A5E+0628670EBC73D7E6FEDCE5E0CB9FBCDAFD88C67C7BF4355617DBE3A2F24225EC+AF910D463CDB2CB0DB6D00E24113BB5482B110B1EFD0913760745A1607ECBD74+CCA2B9BFB1233EC4573E16EA598700C7BE765DCC8554A418D72BBEC11CDB37AC+6FA5F9939692A686C5AC5A5C0C6D901D399A0D3463798695DDF3A166C3FA02B1+3F61F4381538BDF643A4F174D752889E6422F690EF0733AE4C0E481A6B59EF0D+E3631E0FEA8CB4153FCC25E03DE75C8FF53EBFD477B50936BB80C18B7FC836FA+4F861438D93780A1E6FD13038D732A5EA548CCFAB1F6031CD277DC6004F6CD74+C539095CB99E16338EB4A25C0191FF47AC6A41E22F6CFEA6274B3FB31B36EDFD+64B42C654F4834C0B352241D63D68C0C3A76CBB887DB72375F32F86B01E9A31D+D683E84C28E5E1A368730EA9389D7CB66E2FE04AF752E7E917B3E1C94523AE1B+AC59A141E7A5C7BB82F01045ED2D84C80A330B7B0395C5B14866BAFF8F92B86B+8D983E21F17FD89A685B7AE22828C7B7C26F6EBDA7A335A23017BA70D0376A12+E8C740FAE19E09F111D54082832B64BD77103537CBA574C79F65F3E51CFE8B31+0480E0A54B9544D8B98978293727B63DD4EB3E437DA8C04E12A26709D894FB80+67A3B70FCD7251626B9D7EEDB9E859C0C2C175B8CE9CD6DD920886E2D8DB82D3+F8059F31208A9AA084504C7C81BEC962AE2E53DD10FAA7247FA719318825E44E+966A8F34BD4CD184D3F6B0D74A9D850F300D21BA78EFFF7B47E14F595755CBB4+8444032DF80C8F09FAE087D99099B46F4A9032FC68582A4D163CAC20BF02F8CC+3E9DBFC982A90F4A7650EC16AF664B0ECE01D791D0839A00D860A67A6364E4D4+3F37AB334E8236B81D6567166657123C39F0ABC75B5998C64A9472ECBE11FE1D+5920B6B6F3FB8FA8CCE57C17C6481C82889DD6CF9BE8D8E06C298EE9DEB8A981+187766A2EB53CD69A183747E0F51F8744D62257A25E0FDFE22B94C1A2AAFA2E0+C81575AC661E44038522CA4183451914904A53DA65BB7916E2C7015F90C0BBC9+CD4FD8CC415821972E8DC39B69AD04218758F11D61B42C7C967CA9C291527279+687A23CB15DB6BC22C73A88D6AA09526AF39345C5E330A4CE0FF59F4EA602886+AC11F925349DB522C3A9D3AB87F662DC3E20FB8E2296F2F0E2835563D12C6DEB+4A6E56B51C39695160D3E6861C5F1EC9014A7AA3B33942656D5CAD4EE8C2C40E+38C19C612CD428AE7447151973BF3D4622BBD25F05381DE0EA0B7E1ABCD3C54B+B63C9B0951593AB01E9562A0F31870936A4943F559F8FA915F4416A4EDCEE48A+E225DAE9F7C542A529ED5B25F73EA88738257FC3764C3F9F921C46E86FE01EB1+939305485305FF889CA11A71C79AE9CDBED12C2906DBF48575B1DCBC3A1C0C6F+E390EA7773A774B3F389AC41FD3F920159BC5F089AF5A0F99546FFC886F97C8C+F1F0B418F0D60F5B04B4F9BC054132782D4AA8D84A7C2620E0FE7FA0007ECC2B+38AF8C047C776AC0AA103FBF04AF993A76EE7A96F8E07F69906E7ECC5615106A+0F9448E394534D0A42AF5E5039568A501030C242668A7CBEF9C823784D380C4B+CB697DBE1756C7DBBA55342443314B0BD80321E44BB512DD244EB81374A02A26+155F3BF739ABB3BEB6356694418478B4A229A2EB63CC1D25BACA3CB29993C566+DB12307F398DBBB4373A8F2F11631275B050586618283BF3A4C09B639931B157+F2E85F184E3D6D7F8221DCA1FE673D76DAB838A05E263BB23E5145F13866D8AE+52E5D998C6E04E8EAFBB9BED56E19C2C348AEA24FD29F9AC5391AC38F6235859+3C55AA3402337C6C389BB172C9B30C05711FBD37BBD1BD157C5520718F123C77+2A8D0815DBB76B3D02F8CEADC02F11387F72AE9B1C6639DA710AB76009281C6E+50B7E3E077436F2BEDD024F64AE77C4DCF1D13B872E8E19D21E3D9298363A891+EDE14C71E2EE6DEB80241FF25E0F9D3959A73E431572E6132A559E0347399B61+0A4133F4B5FE0F965AFA778994FED9C6F83BEEB96C52FB8DF0EDCF86E7F52A31+F86881E59E31ABF041080A375331FA1EB4009CFFE592269ABF935B5FAF2FBBD3+1974652439FF1CF483804E5E0590BB0BCFA7D98CFD6F21348CA6F8F174228CD7+3F0D651870704341A0F32CD5CDDBEECF6B776B0D50743C5F18293B42C4C1EA40+62DD206A5A616D608F8E2C75D7460CE1F85441770F228B9F3957D763EDFAEABA+1217EB1305CDE05859A1D0ED673349E29460E6460A36525C14EE370FFD270B08+880F791D853F8C3DD22D26DDE0C91E017818FFBE9DAC5AEB7995E3B6ED069E18+4A76FA7F1FDDB27FE8CCA96B18B97871659DF5B6FDC22DC617587D69D02CFD95+B9A0A0EA328EE3D91E4F3F67824A8A04E40239C1BCE86F6C6C22C16CDCDB9865+76662E5A4F147E956E6AC88B9A767D4CE2AAAA378815423B13C8B38FD1EE596E+98DB18E9099AA22CE6C275EA91D51B602EA31AB21654AFC8308EDA344EA407AC+938847E5153FFE936A95C9C5B6BC25410717029E2A95993F0361BC5272218770+67DFAFAC3D5129786AC42B9914B6E0179B72C95311A51CF0B0A5D9E5688D59D8+0CA04C6B1E3A95A00921DE694EB922F6F807EA80DD26BFD30CED034E894FB3F5+719E91E5D5EDBDC7325CABCDBDAEDE7332566D57F71F94A28E9A1F8E95130A44+E89C39D22C6DEA627C6CC094EB2391EEC3EA162B79764BE2518068B3D9DC2979+724408ECCD048FD90CBCA623936B63455C2CD2468C60DCD9853EF4A8306B8264+F203BAFA6883A68EC53E73D670A866944B16B06C863B8FA3BC98A670113BF141+0FB57338D8889129298A7486D80234B6EECC77D1BB5A4B2F07855E31C463AEEB+804BB1A123676BB9A0A2B77770F2030F262153A04D8153771918C619A3C71AFA+16FF602972C65B9661D231CDBD4C65A0A54B3FB489765BABFACF941016654AB1+1BEB4058EE945134C25C068355C98AB32A80549FF4CE280DA6E9297513087D1B+92CE74B1046C5E7967071A8CFBB6CAC385FADD775A1E1F897C42DE7ACE2EC64B+BE52823DE2CD95F4FFB3B2B5824E15BDDC6B4CC62ADB1DB2DCA3E45440B31367+F12825C8316BECEA4758512EB698FE68984F25202ED0AE20BB583301FD53FED5+6279B50DA1189B209370960222A63D45208E090A965562CCA6FF49D9DECB29E6+6DA0E1F2B9895A91F06685DEFC70CD1CAC125BD6C1F58A554F43360DE45F211A+AD382F0798B6507A744A6497159B1FBD8A33D65D8336AE757A5CF10978D39994+245BF1B5A51FE2D5115CAF32CFDDC0FAF41896FC8059C467E30C96E862F63699+24665B2BCFA75904FABAFB3ADC2D1F59FD355D8EE8AD30AA1402284F3E8FEBD8+1F961DC5612D34DD52BC5EF45A7221DBE0E7484FB30B62822B4793523E9D520C+C65D2F455472C0DC58F2CBE4AB5FF21F39E0B7F5CCF7EC8E989783919DB4E074+1F44D9A330AA65B5763AE8D74B26C06823985F552DD533D41236B53E6AE524AC+B34EC357D4ED54EB2C72561276310E22A6485800EF5059B6386346AC86450474+4158B7ADEF5D9BB0497C2C8F01693EEEBB97713CDFE9DAB7C07A9FD4973CA931+41225FB40E58511FF02AFBB8B90985C97940475218C18D0C270089B7433E0614+31CDEC3A87A3885C9533B4F5489D5E9EAB6504721ED78ED8193656F24D8A18BF+AD654A81EE775A7008986E437146C763000B83C9DCEC94DF16CE131CCCD52CE1+EC4ABACAE6AAFB30F37246D7A4A15809070B3D2BA083A026046F75A9CE3AB277+EDB486BB89C2D891D0FA2592C93252B5644421941708A374883DB0C9ABF0BED1+E9B910D8DC973B175B9C3351F939F91E00F1C6C26C622C03264AAF995F2D970F+1786522C83BCEA422140A4C5D4D1F2FD8B4F911042C6AA10D9364C7DC94972C4+41F9681439A5F3332699713A80BBDDDD9FEF93B8DDFFAF49F4BF7CA116E75B48+B0C1D83D27F352B5757D8053D3010B583654BAAE933CBF4BE4D690FB01EC3E8F+8421A9DE41696AB386A5AB195C2C7FBBD0AD0E0A0689A7AEF7D1B4EA4381BEE1+6330E77840AFA1020540B1A3F9C629F8269D9CB2FCD2F40689DD34692D45766C+A63722D3747F570CEAFC81BFCAF82358EB216BFBE8FA35DBF8AF62CF9AEAA5AA+98B091AECE57A3AE2ED76426F6F42052AB1B313E8C71C82843AE842801872F5F+AD81B06817225CFA2335DA846718B3DF3F24A09E1661E3DDA0338655B4D5053D+0FACF8D5B9EBE95643BCA5F1E4D211B9C8FC001CCE4CBB0C399224BD9F935FFA+385C3F3F3F9EC85EB4131305F4F3F01E125A38EF3FFD04F3D922D670EA7E9C33+D23250F5B2C843D1920A4771A2E95CB4401220EE23C217BB068AB284CCD8A9B7+508C3E4E712321B0011A8D00B66E6BCBD6995C59CED5F47A6BCFEA249FD0BE51+7060A0C2CA368CA91B3556397C5375C82326C65E168E078F97A1861949F74BF3+8DAC6ECABC7858DE223283F4484A4E0DEE02227CA97FD54D829C2BEEB3DE0BBC+FA1AFAF80D81C46426B8A0FAACE066EF1D37916398FB421EFC9B2E37CA64206C+4700F6453479F679BD167B2AB6333CC7E04F2F334D35B5D9FA146F060D4A87D7+CF7DC9749D0395BCA62851AA85E9CD93493544FA2DA6845B3E0F14CCC26A7F9F+063A887FA803E9328F18598D01FBDEFF3428637961256B7DBEFEB335E4261E34+43F1E0E61D4BF51F17C2C13A2E80D13EAEC3B65DE3D02A7B7699E864DDDDFD89+17897686DAC7F6BDE38B34ACD5FD9825AA2460D4DAF51C4D9020545A449E51F5+9D762EA05761C27198C960FC24598B298AF2D18FAA49FF5956F56E2AD4CC38A0+1E3AF240BC345C76FDDAF77E2B7735F7D5DE6683509EE921BF43538B7608D312+F9909E5217EBB64FE2B341B27A39EA7AF0CFBDF49984FE6C923DC17660980D24+695D574DFD63BBD05099BF5369B4CF96EAD1B327B4A973FD8E80FE996797295A+A308A94EBC5716CB88C8C2BC7EB017E43040B9F70C273A3225187DF9C10E5D7B+59BC6C817084629E89544D550A73D30D773682789C486A259108D389434F532F+CB3B2944CA52E079BDDC62A2ED732C4360ABC5730CDCD803E3477D1CEFF115E7+A7CBDE49C1EBF8917A773F12C380CD5FC28BEAA78A13ECE527F7D742B78AA064+E0AC4EE68A7C6A3AB24C075E00E25B11CDC11BF0B1430E13C17787B9C4DF1648+A3E4D1D6C37BFE48C07F98E4137CE0501182FA23CB5D45904905BA89215E931D+5A48DCF02BAEA1E00B0A2F9DD6E1840E1D064659339006C88A4A5B50478BA48C+ABE3508F62EE6842D8F51A716F886FAA69629AED2A1A4660C57A8460A1F7850F+140817B6EC00BF7087D1197D00290FF30F775118753CFE6CEB2AA5C45DFEAFA9+A6990FC76FF33187D2F26103272FB259C23C4723B9F6DB7BCC8AADA5A51D48F3+B07FC9BDFBC263C3988B3B07D56B6B26C1011075BF78E049F2D7B550BB672BD5+E3262FF2983C3FFA0E90E72B84DB06BFB9C77000715DFEE53E4EBAC3CE54B92D+5C49A430FE059B36C737058265903FDD818966772DF185AF732820AEECB08E1C+6912473C20C53E150BAC48051F75FACB8BD7A14630C1EF6472D5F8FC0E5C3220+8580719DF26D2CCDA8520B7728AE7F75E772EEB8FDA28446B3ACE4CDE46CCDD0+4E85D92DFE733657656964865320E862C42B4E02F64A9AAE15ABDA8047F8707F+5928043B8D9B7CC004BB6B14BCD6628EEC439EA887FA2F54D652A3D42E37FE1E+DF75DEE19C7D525568F0C26221EBB475696CC3AE837BEE95ABE93B3E7535F144+DC5208C01D44CBF41136D9B385F431F14EF2E1E3EE30B348DB285812ACF61633+187DB1DAA020544AB458DDD80C017C27A09301E09E442715798981023A80ED8A+AED8683F74C227A419B4FE2F7FE93F24B894029B34E09BAA559E8F6133FE5EE5+2EC9C7D1B279897C91A646E22C35595259A122D05B4E7F3529E2703C69C08920+270429223F68818E7D0A43974885D3A8926F6F2A27E62F64258479FA700394C4+924190F0F76B315440D1BA594EAC77BFE6B9B77A0A61505A9D40CB088BCA2460+FE743D56B90C4EC4A4F8EC3C88C786D93AD6003D97DD6640CAA6F371943674AA+80EF49199E3615203AD56B7C7B61EAAC19F0237A10064BE3C50E56F48DA89ED7+60461DA0D1D1DFFCB618F24F83B219073B64777B63660B3FA8590585E3D2CB85+95230A26DD1633A09F6FDC53BA79DC234388BA2C4A21ACD0797FE0DE287AAEC3+91D4873D5B46C7D645D75177DE83F96AB019C6EEE3E16BCA19711C074A9C05A1+7CAEE732A73374AE41DB7CE5F5212339D83054B32DA98D6F5CCB73B81C7EA689+7881757921FE9187EB8C47FE4310F3497C1B95127E924071F92BD89564AEDDEE+A5C11202BE30BA6C285A36D8E82E06724D0EC50EFF2E01C622C8B9327A13E456+0F7006C3BFDDF1424410B3601E2E6909285ED90668FF86A9BE3765E24C5E2B0A+CD191466AEFEAE45FA2997F7B5A56928CA11E3656D6FCB2072A928C01333FCF5+D794BEFD2F6B8D18E4243278A6DC3FB3A10F2EF196A3407C24DFE9380F736FC7+9C66796AB8A8624C3DCAB12FA6DB32F1F34F7F12C51C69FD6ACE68D898CC5A81+1FACEEE6510395A1917A77F8933B18E548A4A60114AECCA8389E18C234ADEC46+D573708051915A1544DBF09873661A21307AAE1A2E1A78696D4B5886EF4B39BF+117E194AABC1EBE99B7D69B37AF2A9BBDDA9CB016AF4885A5CDE12AE8E02A1AE+F14261E46FE8FE1A70E8CFAD6EA7ACF4335C79834EB63117AF0EEF6ECE917AB1+CC62FB123043A2160F902F06B9B9FE38B6F65DD50BDF361CAA2379747AB0BAE3+A8D2DFBA070C4333CCA56E44972D49BA2707593C6F750F20E11EE0A7EBAA44A6+CA5B6D42EDA45ED0592FC92F6174C8923956D2487F4C22B6A65021C6B340EF3D+23D8DF87A2604C23704F40B9B3F29E82535BD45F15E920B5D2AAC2F3F57AAE69+A3D057430B1FC8C3695766D0BB6D723A2A471F66ACF693C03BDBDF41A7A651DB+A269D9646EF1FFEA7A99132E0158A908E10B8A0155EF070038295810BA8A64CC+859F4E1AC54237B5DF7C3BF67F29674C10E8FA170FBB6C414D07D9C684AD03CE+ECE2B5837CEC0187340A101CC9496FBB37C16960739EDE658A8A7164DD2C32F6+A49E7F1AA1DDA3DCB39FA19DFFFBF43294A5F4863C2D264D5F8F89AA9063FC1C+FCE685F843E0D9159F4CD589E7123E321AF87CE365424ECDD2BFCD831C883680+9E536D039EC3225E6171AD6EA8A5C731C490F135242BCFDDBAD156FE5208B804+C5C6850605BBB64E70D6FFE0BCC3858236FED8E93CB2D3588870C31EEE53E7B8+F688C6254AAA4931AF45250B62D4B4B9C76BC55117B2AF03999F98ECFC188956+16A4437002C57A75E155EA2BB833A4A50673990A2B63C551D94C526B6409F9D4+8C9798D737AC+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMR8+%!PS-AdobeFont-1.0: CMR8 003.002+%%Title: CMR8+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR8.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMR8 known{/CMR8 findfont dup/UniqueID known{dup+/UniqueID get 5000791 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMR8 def+/FontBBox {-36 -250 1070 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR8.) readonly def+/FullName (CMR8) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 58 /colon put+dup 72 /H put+dup 84 /T put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 119 /w put+dup 121 /y put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9928A7C95D3A6E9B+8E92F84CA0AA44461D2F4FA0F8B81C6F5B7BE98C9712BE166610465CF689DFAF+27C875C029C0116DE61C21DA0092D029E7DBEDFDDEE3D67E6936623AB53FA2AF+18BEDDD7AC19A19CADB6ED6CA7A26E6044BE414FFF59C0B98D5819A6B881F9AB+7AD0D03BDD5CD309C67811D5CF0B93F6FDC9AE64F74ED4E81F2E18D880BD842A+DAFD0BDF06300201C6946087FC0B999447BC370200BFB8CA420B668B32EBC242+6DB1546A7164CF55B332FE9D239B65F532B69EF9F4F93828A44C8F5C526126F8+B7A369114CA68D4F98638121F4E17F351723D9F1A902FCF087F94AFD23876517+2D15B482AF2D68C3F31FFA864E031596E597882578AC7FB0DAE2A713B065B374+3E2E72519ED6D50CBCA40A7275A7109A4F3ED8A4566AD8832890D3D1F4899850+9B757442B7EA355175CD5D6D8B4152ED2D7EEB4CE30F174FF672140354046A45+7098EC45B9DF3DF5CF7B417E201DA88308CEF4CED8E8903AF24FB8DD0187352D+25738519ECBC70304F8F620CC45D2586619205DA3955696FAFFE2082402B3502+CB682F410DE5FFE80A4DA3D3BCF02E35BD577D0DE55E7B8A33B7A2FD5136B5DD+A0BCB61F8E7F4363C21F890CF287304DDB8FCE7FE207C0D160B81E7EA662BED2+DFF8C444E19C91E72254257CD87240A70F1A964FA54ED9ECF27E27A57DACC3DE+EABB92C085030870C6CF5C40B6E47F5C0AEB30E84A73ECDABB2D754EF6EA28BB+16EBD6636BC288E62F4A38BFB55F5F4DD20FDD77D767F6CB52F9513E8EB75413+07F1877B2C01278675177499E4E8EB09F2657821613F5C7643FC064293EC6E9E+B519FFAEEA36B19C9D1302CF91FCBF87FCB57C5F995CB6712BB3D8681EB6F05B+B2A4195A3C73CB4ABCCFB958EAC533BD89560D2790CDE1444C0F2E4EF27A529C+F01052964E56F6D76A190E5FF45934BB711A3406284AF130D4DC0D8112BB3752+762CA0200CA262359D4F54C0CCFA9A50DE18C7DB14419E2990ADDC4A54B94978+D9174CA39434022FA77FB30179EF805E2189C35919F5EBE215EE2A00B4407826+CE56329C5586D8B414770BA5D45513C3AF1931D632FCE69B4CA504944E03362C+74A1177C6398A61A12DAA0F156543E2A8E9969C4308B7ACC21A5ECAC8F172541+1B1316A88C0C163E574FFD3CD22FF08488662FCF2F9344BC25D02146F36CA6F9+E2D0130C654B7485EEA9A110A33AA0C769121F81821E9A2BD062FAC158359D44+3F9D9947200EF1EDDD5860F10438B162A69683957300C75AF7546C70C97AB2EE+37EAAF0089E2623F787F252569B06C665FDB45EC9681C0774ACFBA76B98C4E89+7EB12AA5F8798FFC110B49C25E3A483ABE83B0BCC6DF0578403ADC369E013762+C9D08FC94D949BAE636ACA9F36F4E3F02296775A062077B011A705B6F1784D36+A926622CB3847533D7ACB24A4EBABB14593B5D8E1DAE2BFEF8A51835C8D4E76D+7543C126A4271C59A5881A5AF89331694F84489CA66725995DC3070F306EA447+CF30F63CD476A46D528EC1FFBFB8EACFA2BEEDCF54C92CE2BD26DEA5827186BD+3A4D1709415CEE7D51D671357B4A5D11E835F63521B9824EE5282E58F05A8ACC+FD249461181A38C2F47BAC4E79BE368D64F886AA493C61CBCB2ED401C8AFBA61+59CA6F6216D941A92AC52ACB3D7ECC28D6A58EF4CC70BA6DE23E80937AB38E89+6F05FDD15B954C0826636267EDAF9F2BB466BF79D2E10EED9B04297E6BC93069+79581ADD1A9D9FAE9306F46AC95B98C60A2E53D60CF1AA4069BE301E17E25070+F98DD67BD8642B1D07571A32766072E48BF27E1576FFEED300D7313A358A823B+49C8F135961B7E259095C9BB67F996CE0B90E95344F203922F47E11753F70D38+2ECB615403490310CEE6C03AFA97DA2F47ED47125D110FA69725BA0018F6A40B+29A307FDB3E52322A77A0102E6F57654CF1E96A134D13860D83AFA0A41112D3F+2247A09ACF7D06713BE443FA27C7E7220E875965D53030FE7D2D62EFD2F1DB87+5FB091FEAF599BA8C5167525899E578AB341BFE2BC4E53A047093168AE189237+EA55F055514EFA939DAE9E859CB5FBCF37D99484F44FE5AA5FA386B28BB642F5+5DBAF059A50FE96C7C6D834531D64F1F2E99AB2E96EE74D149178B1C0618495E+293973D9A03E1790654B67C0882376ABEC17D74785B3737D81644F28B3BC6FFF+F92FE29126995A07E0BC5EF3A4B93789A103C428943E045B8D1A5063AE71E806+568D48072E53DEA85253B01DF0BB7367A6BE4DD7BE514AD74E3F77C825ABA405+64DAFA25EAFF8F63344B5F6B523629776CEB090B546469F6A6008DE43072DD3C+DEF51F62731037D1FBD0C038A1E9B669849EB3BEBA281624F13D20B61917A109+A0A7871A73F7BAA18077360B38A4625C5DB9AB9E43BDEEB856FD0E2D3AA2E075+267B978B9EB47F2369302E87DBD5D5B422830BEC32411FE75D584C58650EFB1D+136FEB92B94BF8939FD63AFB7349C7511E5E46AA7324F8B1FFCA9C2A9E9720C0+A720918E8E860F137567D386AC29870FD990BD69465B3A3D2A0ECF2753578AD7+80DC87EBB319EB5AFE0B6F6FF8616EA30C51425FE3ECBC5F8D0B0BEFDEF32FA7+D168B4E85C804B7326A0942CFDE732B1171C643452B7099B31649CA2C38B62FB+46EBDF7180004C549B53F88021D029452C2B37D8C565BCDB0B11541039A13C0A+E45D4B68C7907B8BF08C6F41F564B62BB554235D50330E78DD02795516D969C9+66119D718798120442CB7EB9877FF84EC69DAE25F8559DCE3BD8042959F695F8+2F99845B1B5680DDCF181D806CC4903E077D1FF5E60918EB34C0B1E028422B71+CA63EFBF3F4F3CD813CE831EB54265A555BDD35AD7D723F9CFBDAB29C54F8AFF+2D35C6A3299E0A2DB470C7B141B1E3E10DABB7873AE302926BA8743278FAA8C0+DC6174501D6A289CF980A3F55F2DD5C3A514E7E7F13133C35D2697D64C25130C+DB78FC997968D6B3BC929E8A31B6D212C5128E4412632BC52B3A1049F7F2F61B+C74AE9A6AD19B9E2E240617E2882F7D29ED3A4279439107AF9AEBEE47CE85DE5+CE9595A96A118ACF1EB1F5929930321AF7732E351E18C6AD378508E37B4C327B+0E06AAE21278AFA9255AFE5C022034DA2968D260879B4B38E7EE2E11A593DC3F+CE71ABA050C004473324CAB6F3C50E85DEDA3E9A27388D8FD3A8F6E42A79670E+F7549CFAD4CCB337A6E0BAA4846ABCA059F1E1933CF11DC0FFBFF550CC4A1B47+CF7BCE0875FA747AA854534960F757884505A5AEE0330179A9547A4AE3E68479+7A457DE83326DC30B67F27CFD4AB697601CEE352F72F0966B3CEE3EA24683BEF+6D23AD51B8432C3F0DD0D0F80791E1091F38988B7A54E466A9AC7810DE8B7893+6B0AA6356597891D56190A7660BC7F657BC559E0525D41EC228078F2FBF89C6C+72D666DAD838CBF0861FBF0A1D4ECC069AA49DFBAE5C56B781A1D5D79DAAC256+13E3F9B928A2394FC71691E4355642764459714412D6F8EF803FC5F7353822DE+6CCBB8FBE5AA1F2C7F4D384039D85E7728527DF9FE0239E2CF8BCB7411C000B7+1FE660AE6A2A19229E5E8776CC83EFF3C27403935756463EB4721C51FE0B1197+86C2F17842A0FB639F28083DFD4F1E86D7D3BEFA922514ABF489C5CCE93D6F72+D2EAAE14F6CBA2BE4BBE7D7EA8EA19DB3A87350D4A52064137C3D15A5B05B03B+70B1DA7328D10713B83974C390C3270AF5A9A47C0BFBFABB9F31063B0CCFBB10+0F236C74446688198EFF039110F6FF42FA9F82D463AD3958B5FD205BDF85DE20+FE3F0C7AEEF350AEE6DBC1DE2E2DA4F4599956F59D6F121F7086DC120416E180+52DBBC4E56C09746938698860F30007091E1CC0351B43990E47208ED495310F5+7BA9C6AB3CA10A3F1B318FD47C1CE3B9FF1304321F9623E32D315AA9CE64B35B+F841E6C62B5B2488A311C94937879E5E0E170FA77AF0AC75C5E6E9F3E8F825AA+09C1702682E14FDFA72D27901C5BDE009B1E52E8C4511C6F6336251BD45261F7+401CA3DAE7C4B0CAEB91B9954BF4A97C48ECE7FAD401351D59DDAE9DA94E2335+74A2B880E4749D3D7026CB5299F16C204B6E00A20A6619C34922C7D3FB50F127+3157CFC08DCC5164C8023CD1B6C3556C73CB8E4ADA845339CA9BABA1457ECEE6+ECB9849DF1F0FEBC89E5F97C92978A500196520839CEBA6C0FD2E3D27BB4B4F0+93CB2BB565F4627C6DB62DD0E084E627D69B5DEF42EF094381B62C0D67EFD197+301B132420F51A41561E6106870147E0D597078435BE3819ACF0DE28AD779847+F3D2CF667DA06955D53E0204CEA2935E9E984E76963D3079EC092031E2A10E61+1227E5EE6770DD4D745A52655369EBA06A19BD7D95BBA271E488241199D1008E+36EA99F8DFD2A9F87B06B070158B466AA4C6EA3BA77DB0F853F0BF9A304EA291+34069714368E0B94DFCBA3BE5EDB6C8204DFA7EAF5C3406F60A7056407D1BF6C+CB85C1F432F97D821F5518BBA79AF8453A568FB2C2D025A70CEC75F46C545011+ACE3A99B2582793BA1DC655230AE2EFD24DE20A01D4A441AFFAB7771F223FA6B+9169849E727E494247F67D6E1EA9DCA06A082FE2094BD548AD7F08B565145634+E7ED832FEC1378306DDC796303392ADB0CBA130B63B38ED57B7828B47732853A+893E8836FE19CCF27002AE92C2B2CACFDF8A42F1B8066E033B965D2E9157FDF8+E1264B40813C1A4CE424274AA3528A4F09B3B53DD4D23789A68B3D17BC1398AE+0ADA2C2168427A49846DE0216908C2FFFEF4F13C1ECA12AD341E238EE46E6DC2+B71B54C52659632911F901660261E493AE2483D64E119D9924489779B62BC9FB+A052E822FD8D83178E09ADC825DF0DA07FCE7AD68EEB29FAA275A13691B4A5A5+B0BC0499CD6307610CD6209583C1152C559A2760823F8DC0B9B990BFFE7B7E9F+3969B968AFEAADB9FC0F1410EBBAA0DB979CF153F0B8C978405F8E6F2B6406D7+AAFBF4A655A15DD6D1E9A7EAE10EF89264659B09283F50B734236885FC09FBE5+98D780012FA77FCB19F15BDC522CC7312546C0730EF5225DEA8C22A3BC6554EF+4FE73B9AEB5C2F7DBD474221760E5F539A064AC450591BCF3499E3968F2CBD6B+F15BA2B37080A4129B66D4C2188524F025414F14DB3F96049A8B0E5EB2BBE7A1+AD64A988FE875FE4FE5186BB4F5DDA16983CB052D474B7D72F3E8965663EB50E+015C72407C3437142D3D7DBC055FA627139488DBC5A0F98D805C2143D99F491A+167E07AF60EC9F17C36289368D740B632CB919A0E74C412B76CE7A5906D5200F+9E79CEB9C65ADA3A0F23E8947E834AE7A329A9F0AA7A6BF545B1D7B4666C6522+CFF268634EA06DB3A82D91A4C0A9B227E79961212881A54A6762C335DE7E0831+130C45D94394D21C049B9D189ED955438C2151514F17BFC67E431DD9A8349202+2F616AEC1C7B19F63D5000EB4771370924BD4B9053FE78B5E4A244B9A149D66D+A8BF3B398396D2233E92E4A5FDC70FAADEADAFD255193D688842DBA865CF6154+C9348D590F3FEB135D4B7BD4D76A52CB140888247CAFAB25ED51F4D187041CA0+ABD956F83A5661CEC171B52AF92F9ADE27973B560C802E1E0FF51C4003D1289A+CDD09F8EDA8AFDFF666D35418CEADF3B0BE298F0D1E5C8E024D6A2017A7E71F3+3A9FEC9930F1118101E040339F9D41379170928DDF5B5875212B271DC843F612+E0C21C67263186E3D6929160464D4D5C8928E14D0845762C36FFBDE548188E20+3B6BAFE5EECA0385142F01216FB8A90C43A472C1D4447FE5C7C78CC088FC72E7+3FAFA062C338BDE8A430FDF1951B107D8D73FF9376FACDE5900BA362C66F8C1D+947F9545C5C13A53E4479B1C1A50472C05E8F8C266C6D4F4EB08E97B3B1BA972+26973B844545089C5732322BCC9A5A8FC972FA0D7DB8BD85D2F515ADE65DA479+0224F7EA2276CFED0B75B2C23AE7377F86F1F6F205D6FE19377D87E782143697+984E731F83CA888199CEB425643C259D4FB8B58DD69A96085198306494BB497E+FE7C9954EF35B679BBE3847A9C73507874F71FC97665E2A58BA41407A1745247+44A79B588D969D11CE4B863CDA655DAA53CEA5C3C263B345E782006CE9831D49+603D2D95DE9E370D617F5928BA416C362BB2B4DEF16A5D44BD24B34257765F3B+6223B3F9B54DAED69A90C7050AB97B06693D253C6894CBD7B497DA449F1D9B7C+D91B421891EC0724F59C82B9CB288DC42F2D2D7A7F22EE3D910E15953D7766AE+276DABED3820390BAF2700C4653E1C77FE63DB71A66D93ED293E25B8412A1EFF+809554BF04ED0DE83F7F190883ED793803CAD2C34A66524D3A580ACDF3C13B22+08F18905E7A4A16DA9ED2A112462FB9FFE481EC2069E484E8BBFC19D594153B7+3DED4C11762223B7586483B06BC164D824D1A6FCAE80A35DE0DB8B33396771DF+76DC5C05578EF1BE00A70BAF3D951A01C87328DB2B0DAD6E1B4C21F37D1BC0C5+A929BDE5EADF20DA60C4DE2E3C151005814F24824D33B95F700E09A0207EB602+3EF60DEB1622B91DB99A855A8F1DA96358F05CFCEDBDDDFC8446AE3391BEEC41+966E594E28D052DD5ADA49DFF65E79540EBE5329DFD86C23CC800F95221B9C18+CBBF941D2FA47EF1EF59A89DB5DD188E75EE94AD2A79E2221107E5992C00D531+2E00B544895A9204656867E3DE9D4CDB64B920B5CCA9A73E6514B36CABAE01BF+94C15603B86780190595560F792E5EF01650074EA4A9BBC6ED284B9AC2020641+DCBCEE0ED27FE58171DFE104EEE4202759E594159DF45113C00236127A46FB35+9EC705F21C0E456C1F0F924594C09AC64D4377C5FEEF764BA4A09ABA8D09DEB1+FC13B0CD202B2F04CF5D73DEAB65C36C2FA7C0DC236BEEF6D23BFFC9C493DC8E+1831F19EEF81EEDD976E43BAC6B5CED13F901DE59835FC75490EA528A72CEB77+24C38B258EC38B9E6B97F85CA8C10D8809BBE55A6FAA12456FCAC786942E123C+06D1E55F7ED04400088BEC968BC5081DC7A1B1B65166E7821679F76694F235FC+6854C8776AF855B83445D9FF919B1D80E98DE0741D06D6C5EEDB3E3EA6392530+F1BA817737D8162F7B3A36AC2A03190CDEC654383E31934C3E0A012B639532C6+26FEBE9B412F1C92D1943B7C18CEF510729D501349644C97F087F2F840074AE6+D8CD0FB2E620FFC908BFCD938B675A0A4A687F7FBE8F3DD06A62D7B6DE7DF3E2+49D367D60B10061EA86CD512F5A1BE8950D83C62695E130128E0037B62552D17+064319BBB9B1FAB9D79705E5D68AAE9B36EA14BF1A59A863BDB8DAD9AB5D7B8A+E30E2B499F952D65877C8E38EDD7DB29F9579D09E629AC188DB6A6403AB4BA3A+D358B3770D727A2B77D84B6C9EC17E29D88E3421F9B7D2D822EB78BB8BB50692+8C46DD6F9BBEF2E848A2B5669B200019802AD19661537A84D3514AEC5AA47445+2C791E01DCEDF18D9506367241255FFADEEA6183F51A9F42448A7DE413C08359+52DAD2A60FD606AFE14702BD3B0EC448720FE63438D020DEDFCDE3582FC31DF1+17B25FC152789D2F17FD60B8209D292D2152DCF8D28B5ADC04F6659BBB746CDF+145163361823CA343763AA951C640B5D4A99B7787105A1609EDD6A596EFC3F6F+2AED1652A132D66117071CADB8603969B3A2F97270CF2AA8EC2AB890662FDBD5+00EDD53F16FD0CE199660202373E2EA28D29245A4AFD3A63695F6178406A7234+AB0C0FB1B19CB408E047BF014BBEAF4C9C19445C7819748F082C19E6E355EFDA+BF1C2DC348AC0AE6777F679E2F62A0A3EB19B7F08114AE0E56A3D310D6958AA2+348E1D304BA8C4389E525553A8791632EAE32B6E8D2193932B44D230FA17EDC5+7D407CB83D2501B0D2C9E86FD23E21F26DBAE2550DD4ACA051EA0A0030107676+3643176BAFB7DF0A157151F7625E63296E325E2C3E74BDEA10C3DA37A73F9972+4821E1E756D3DE2C1FB121371432AEADF3328894170304038253421DEDED8B45+D4B0DBF3B4F29F053C44053E14ED09E3E7A0FF377954754A34A9A04FE68A437B+8306B8463247F1E670BA928FF7D401437FAA45A7875DE9FBE63BEFFEC722039B+0EFA4F3DBBA7D50C464E3F297A0F2C1AC23880383DD1EAE1BED5DC11128649DF+AB8C8D394E7EEEEA3CD2038DC582527BE93A66AF5795E3F8FB790158EAE26FF0+3905C00431377233DEA8DBB68F708D35BBF5A20C098A4D3DDA725C3AA27301A5+BC9333AD666132BAC8A6A251241FD3677E1333463502EE90EE31D607894A4A4F+76ABE2802B08E1B766F6B41E595FC82995603D01A07903AF006EF349F30D150A+9765ACF40B207A75E60EAA66545BECB365F3898EC6A0C23E1379381AB6EFD908+C1DAE758EF0554B9868B7B352F3B6F3F8FA4329C34279EC5207E57BB45640D3D+25F796E89AFB6E1E8A490BE45AF59B4043F740045D75905AE3A4406E7CF38B08+C3722B6ADBC8C6148FEF04EF5570825F38665143E09541A75AFFE8E3583223F3+09A8DF7C20395211DA3FC882B8008C5921DC9952247F59ED7BDA1788A5B6A223+255443E61F948B3E460152E73543667D10A894F2254816FE27D72DAF09003A58+BDC24368BC76F960AF764F1FDBD72F9C3E7B1CC3E1884900B319DACE2A377DA9+A0B6210AB8912211A615E7385B9510D61FE8BB88397FAA30AFAD7A972CCF8098+BB729771E343F91CDDF7B38228F511A431F3DC304B5EFD8BDAAEFA31D15D07E8+CEE0558D4CBC7F29EFCE9F09C4789A078F4B379FE29AA176A0C334ED4A40A619+EB6843F5BE6AC6BA0DE3105ED2A636A274C24E96F2237620EFA9C496889E62AC+A5E12818ED77079ACBD24E75769BABE7A202578494884E30EF9408F36786F9F7+5AF47EDE8C88C47E2BFBBCD29EBFC681E196DE138ED4CBE5689A94762E8C9542+F9022498CE9954DD19EDB2C7A2A25C020A4B81BCACF118FD71D4ACB5F361D93E+8EE6220A2583881E2BB72D1535759EA73C631B529F335A80575C077B6383BA84+61E1AD8A1951198E100A24077CECF0534C55AD5758979361DE38AC13256A370E+02BCEBCAADC019FDD248FF35F2C6BF793F286AFECC2379BD34EFE18FA14E4B2A+5907391DBD1EF7B4CED5F374C619441E2F5CD47D175D17AE2BABC238F219D6BA+5222ADAD0D2E66C2012547D16085D89C978799926D64CF184FB3FB66E3A9AE66+B41B55B65DA1046627030E7FCBD2F106991D866CAD497073A2B4394E55B9445B+3316F91AA745231413E764A3388231D9A418B4549EB573821FB2C66B4051CC3A+96D8CC6F0DE20C0A732B877EA2DED6A76F28088FE22315F6996B792A4362D353+F14E26BE1A59927C44F40B6FAB0920F833644D1C90E4C0E227A7E125ED247B90+DAF0A439EB3CD53F49E458CE0A4DE720ABAB15E8DE0743FD08A08AB67A94D906+39765EF07C2E6A645DAA9AAD3FCB2CF51D281E4AF6337297B2AD2E47D3EF4E15+01BCFD65703C546C949A93E63813B8FDABA9F21C42B588CF95DCCE8DA62EA5BD+6D8875D901C9EFEBFE00DDACC8D2BCF0065418EB619A0BD823A04D762F4A5CC0+04CD4A85855EA187158896DAEE40A3EEFE1F2A496A97C63EC52BDB7671809578+CCA6F162F2AFF1B980A746DEAD80B3E89F25DCEB0E3C20236EC2FFBC6E6D49FE+33E7DCCEBE819FD7CA16EC75A1376D815948C1CC021BAE328F54D62003FE97F0+6047FC1EADA686DF87BCB53ACD1C6CD9C22771B6906A871192BC12DD6AC23913+F9C7E0C10808736F1500BEC48191553BEC81A77F8A035BCC7FD1C8829702FE72+0DF0DC7ECE0EF11D2263AB769E75074E58F1D241C95CF887F120C0987E6AA703+DF1DB8126CF132C1A76EDE5A35CBFFD483A753521BB874D6F08F9BEBD70542B5+ADC456DC1683BF1752483241CFD533F8339F2C9C402D64E614E48F7D27CCAC04+A31826653E500FD39B28FA22B8D97714FC6DF15C5715F358515E609F28F9276F+93C4C9EF722780CB57F17B428675AA9CF55557A95B55AA7F9C783CD7997236B1+5D4EE7E2FE6104E6DBE07D09902108D7DEE7A738B848A0CF270CE900B7658D68+C9DC91E6F9BA956D44756D3168365F3247C289C99CAF82F19523FC65BD589F04+B693CBADFADFC8BCE85D2A7EE8CFAFCB3E107575D0D1C9081D1D79469B538998+F0800C4FD416132EE7F6CD62F7141FC36C6593F0A3D526C31F7BAB3E8230B803+04FB74387CB74327E9A38D3D7BA0B7EF3675E81BD5965A10428E06FE35671A91+CAD00C4973C46333E6AAC55832B3D5E2897CEA72738E5D4E38994E17E870A736+A88FEA7B2966A4FE3299179213DD3099F6D277FECB10F2AA3C5B275E527E6BF4+55293EC2D19B652FC13AD92ADB1A144B6457B085F21B63D215F6C72AA1B6D6F9+6015CE3667790FE2601CE0B31FF54B453AF82955C77D305FBE913FD08F0E9739+06D82D6FB2C4FC362092ACEF2399014DF2579A375C01ECBB41A14CBD617C3343+72A057A50A42DB951DA03A578534B40D0D0F67CA6362798A713959A1F5DAAFF6+45561848E557FE312123027694F5AD4D5716869B913F4411A5CE2D7107D00722+7951DC4E0B2BA4194BE440C4F7FD07D8A80DBDB46BDD38CA1663197AEE6171EA+B952FB11AFBC2DA620A35845BE3ADCA18E06D623B6EE7CF770FAD579903191E9+519EBEB78A47EEEBDAC0D01AE68401F89A92A33198D9AC91984E51D1945E0D72+56619A0E5FD9359D36443CA14E326EC51D99516B2F835349A8CA5EE5F9D96342+849A2B226CE2AD57B945B86ED81813084AFA818F4DC547647EA60146F7A3F548+A03B0A22019AC46853C240E374DB0F79DE4A3039BD9E822B0746C76D9DAA37BB+6EB2659C6E82132E097A867FE109EA2306A67A49F359873DFDFBE84C1D4ECDC0+66584B60B442D25DBE1272908480DD5D056405E1285FD0B638077F93C14DE31F+24F82173AAD507FBA6CAC274CD3732DE20BFD71179DE7888E64529336EAD0742+D6D39EBB4231CB3EC41529F5CB51EB5508F533DF6B6B2A5969D4F380C9893231+9E34FA15687F78572CE53AF7C87E370EEC5FB4367F0B4DC6FD96FAA69C1C5C35+4DE56088E4D60E523F9F677600B52B78C3F4CBF6E7C10BB8E23D1AFF57AF2490+686FA744DFEE25538233A0241C79BAC11A2D2A7AF0D30A4EF76759B608A1EAB0+BFF3498D14D0A03302CDCB1A5E901CB1A4B25FE8512D982E9BA815140863F898+AC51908BCBA2BB6FF498B86314EE8C2D9C96FF0A044CD91E0EAA0BBCCA11CFF1+B4203E9E69E880D2930D8483F41A646E93C46197B8069AEFE880E781AD3AB0B0+4FEC547ECC8EA6E536FF9028C39DCBC64301E94C279A6CD8187CF8859C24B96B+FB103A4D5D9E5B314ED48A4678983346F3A35BC42A51F7A6EFE06954E4C88D71+6A014F385CDBECAA98EA936DD385CF3C9170ADD5389A5CC48532603704BD9B7C+E0356D7DF12F3856610ECEF9CFCF992647BA48B11B4360B7C88C705416630DA7+6E37D65A4707621AD4782CE922FC2B99657071998726B0EFB8873F01806E6B1A+2A2DA6AE05B27761D42DB4BF37FC822ED1899EA0A2CF667CD8DDB28F7764C4B4+91ADF783EA4FED0A8DEC3E5AAAEFEC12F1EAA9AB47F3E3082131FA8754A9BB8B+33076D8D6CB60608E08354A4CFED37A267E94BEFCAF602D457F1E159091D439B+7C494D26EDB048D0F03A4537AD9FEC7241A60F49A7CBC8FEB90BD582D01F990D+7B9FBFCBB8E23F39841A1262726151469A92A594D863468282CEDFBB3DE11D9F+769272457FC964AEF075D0B2ACD1A666BE9EBCFAEF2326614BA74E5D6C991A11+531B1D64684F3FB28AF32DFCD7245EEDEB5AC97D54B664AD91E0E9B36E025B4C+741AA3E7B6435C37E9A1E777310B8E82F1173CC5FE5C59BC8719DF03D8E242C2+3A517BD3C25BA0701D56EFEAA802DBFBB8A6AD97FD29D7F4393F510FADBAA65D+CABC166DD9F8E0669F10052740A28EDBC2E7A3CA5862401383A25764218A2719+983104AD0E099C6B23930DA5A5061EB55FF0E56C522BB691B145728B67AF0BEF+B164562B98CBAF87D20D1A75C9792ED92B8DE33517A0FE7F9106FAB5AB1E0A77+A9712FB30306877765E8B2621B4BE1ED69CF969639BF2C227E8B59A5181417D8+7DF3EB29F713478D7560CA21237B5B8AAE95B9AF5422C077A78172096B2AFCCE+61696A1B12C165344C3DDE19AF7779A2BF88E57F56CD38C4F2DDD624115B2805+C756FA2622144FF120E29BB6DD8B17C07D6B986873FA812D18142EC57E68B574+587FCFA3705C43C62594F308FF47AA3185B6D9D4C57FBD9D5091EF6C45BE6D1F+B35009EAB40898E3C13D1932C79C35CF791D633A820BF20D36C357280D091984+8587FEC1310E18B8E98A341919EFBF6AC72B5D4708B62263BB87FC3CB85518A4+3D53F1B8D77DD50A3B07E5193084BDF9E0BCD5A4B3AE2ABCC133F284CF33F1FF+2D3D4CD359783F7E6D2B0D196FF46F652568F671325AAA0AB8863BE35CFBA765+35A6BC602FB821467FD59B4E4E13EF8A2D9CB485E39EBE03CFD3E4E7399448B9+549E9015174628E77BEC1D36A24710E39B0612519120EF057A8A193850B5C5B9+22BC5076F8B658A9CF36AB0E741E362FA180C59290E12CAA494AB15B4FBC579C+AD33D36A81682E542B0B68B0DC68257379F07F1EF91472D49AACB4269E22DC21+02A5200F5E23AFED0561E23CA96FA335348A4B503628060B6E069483A6D88747+B0F9BE47419924EB0DC688F35D0AA6E5F466BE63B433A5F0FC4D31FD3F3CC248+0CBB1CB32AF9A7BA738A95482D624DD5C050CC307D63B8DC952C181A027799D4+D9B8623E5AC8E0993B5634562AF7F500FE0B19496845C098972DF726035F6D7E+CB21102210A10B13D1B9711972BAF811837415EAA2D70DE2A12209BE9922E3D7+877DAE3C64A4E8BA04B986C592B108004E5413BE4D11BC0DA17F7C7D1F5A2CE2+FF5607545164433F2BF05E35715289FBD72D6B576771C921EBF2E6A15302B64C+5386731C62458353FECC36C513E3E6021B22BE80906E4A75395EC71F7DE311FF+EE2DBAF7F04D712ABCB3627CC302F53943DB935709FE551C04171F9885299854+D834289DF70573369BDAD4C5130840D17DB5FF89ECB93A8AD76B9DF2914448F7+90C86CA89ED804C678DB4D0D6A4C21DB7BB61F731DC310B8139EE60BD59A5FFA+9303F594D31B1FB620F929A998E36299999E0B31A8A56E0CBC3B4E2618DB875F+5E3B58F8FC93E205E845C6DBF90FA216404ADFF47DD6A25D581CC7F908048FC9+DBBF90A1D2669BC5AA4AF60C1274C92E02A066EC6AD1E763FA0560969C915E14+B39D438FB1282D3C7B3064A9496101CFB08A226560651991695116867EFFBD96+80E0541B03309DE60CF79FF40D8DD53B0CF97FFA5F2F12E9AD6AFB646F54CEC7+C035941C56E7F1CE9081E368F65378FC2CE22511C9B4B24DD6448849D8D94E15+1F51CC3EE5495EA5E2B0C6F858EE085845380230668BA414846806A8E7A5143F+65190194C07441B2E02B317178B1653C25AE8E869F5A75A9ADFE7162E35362B7+DB7350D0EB6106AAC928032F1EA35E9968732C37B42A328D47EE3735E2E5AD51+D662AEBAC2880AD4BE2A9D4A928E47865C29AE8B74BD0C16DC1CBB35415B192A+439790254EBB0756007A314AE72582757385DB9D9936E9F006CB2A39657ED128+B54AAA9752283E94DA0387678A8422A143BE62DCABC0A80C56AC6997108E2036+25AAE5445391B90C0C5524CFD302EF77C4AFF7C9F67FB7A62CA28CA8FA17919E+43B9F090A27B552D32DA77326CB44186C3EE63CD3861E958A1CB71D06885FFAF+4EE8E4A19DA0FFD33C2F8754628DE41305761E60B3C28D7FD3BFE6141090A0B4+FE1571BB6027B57D1A5EC27A483F4C18A914EC8CB9586DB27E7566C5EA8EA6D7+722C20C01ACCB01CF182F2D4D25742A294D08F83E81A10234F54DADB007F7352+6AA0C7BF1DD2D7AE5AD604F2D7BF76B2EB8A4A530B94815950A886FF92E4881F+A01F767CF0764F4ECC4ACD98658D2457095870CBA4DEBDDEB47C63255A099886+5E72E7B4621410EEF756D72271C0BB812D9BE4D6B213A950FBEBB0D862D22046+2D155A814F792187BCF9798C2553547A409B24C3F84275296801B8D459551987+8B91BE6C3AFEC26E3374B75944376BDD84FE505561919245855BF48228B6CFA5+A03879A20A510C6C2670E3FD5CA48570A3CB295FBEEF281C20AFE086A67F2F89+91F32A66A892226CD7A75FDF24E4C950846908C0A834A83666A2605B37D819A0+C6C1413596CD7771BDD33D069D42D97037A2AF759320667AE75529A917D0008F+958353BD13F56FC5015B77D7F4D610E45D124A95521395C3768C35470ADD6B9A+A1A49F4550A62D24653D2C58E42317DBA7F8A0859497BAEE792372CAC5EFF53D+91105A39DA28C75437F189F55509A355DECCC6AED38D0DEF22DCE8CEE88E0CE9+92ECBBD05FB70E2B61247C0A8ED0C721129C59FB2B222D6C1B4F1BE401F31A50+4BCEF3957E585D8AC5C317FB8C6EFFB735A02E1341CC255902807F782E10C703+8C38+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMR6+%!PS-AdobeFont-1.0: CMR6 003.002+%%Title: CMR6+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR6.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMR6 known{/CMR6 findfont dup/UniqueID known{dup+/UniqueID get 5000789 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMR6 def+/FontBBox {-20 -250 1193 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR6.) readonly def+/FullName (CMR6) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 49 /one put+dup 50 /two put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DAE339BA29C1C6F656+1DEF13780383DAE38A868377CC7D396B2A05F341AEE0F8BD0A0191F51AD11A4D+2E927B848A1EF2BA15CFBE57A51E3AF07598275195C9613041F71C1AF39E61F9+EFD5F6512FBDA76E29DE6B508F62F5CF9F73F5288DF1C7B0B82C92D3B6358BAD+EC3CA20BDE55DAA7CC58004AA86B6CBF8C410D8287E88BF20588A39309C2B703+CED322F030AA6069869064486CA651DA054FF3F5E56534CA358B0829A6B954D8+9103436E6B06DAD1658BD4A95AB41343B01F5866FC87C4EDFC71F1477C98F8E1+1DCF27EF743FF90BF918AB8C4E5AC35841E2F745480E5EDE1C1DEAFAD8D0018D+2C1F1CFCAD9F6609859DEDFD1648A6CD23D8ABB80747F94899F17C8F3E6CA55A+E176F19CDFDAA0D7C920B3A72051A4745560AC81978C92459EEE5AFE85AB247A+32981139CBE352B248F4BE5F73503A084A3E91F05328EE521D9669E44E202584+5407E7846F9FEE3D54EA18FFB144BF2D6803BF65AE402034B3CDBB40DD24217A+3CE0E95E2717CACD603A958187C42B3558AA38D6B6390EEEDD396F96E6041FCF+6F8888221AFA87EAD79F46E0E32CAED91E6C8500879AB6E580C581E8C8CE9B68+2BB5EFE2604E8DCB2432D39D75EE556969F1B2FBDF6A4BC72D106AA7CF22C268+464027898B311613E06E1584707F262F71D9F49D2149306A88E02BC60BBD6BDB+EF41D90F19197BA9AEF32B5E63D5B9FF41B5602F9F786E76621DA54D574981AB+87A72081EA05D6C6BA940EFEBD0904EA4E77BBCE17E20B42E1722617E0F6EF32+F1ACDE9D758594E9C81049CCC10605A27C2A06872FBA9F159CB155609B496ADA+4886F478E44029B5E620DE8319E257697E93E1CDFD27D560E2E4D34507020E2C+D9FF06BFA14E056D81DF701FAC3ACE4BE6C098AE116E079F0044391EC1661F6E+7A93B9320BD7F91E8FD2E8EB3F5CAE997D5CDD35107A1D35302260D1499B8B65+39625B7925F97D917B66BAFEEA992873F07220714F192839948CEA080BDB9A03+77B9DD032273DDB5629CB28B5D8797EDEFDBC601823E038384C90C79012A7D96+8F27784DA15BACE21501C26E3AFA5DCCE81B52B0ABAF71A35D33103EA86F2415+A39A830D559C5C6CA7423945BD3DFA942B20A06D7A8D8671F9831DBB52907AB4+4E54776D29C6085CD9970B6DD21DD3EA8EB09C49CBEC6CDCEEB0BBB1B8827109+3BDE64DDA024D67F098D6C1998506DDFF7907ABAADA1C39C759C850E0C6F8E89+A392D1C9329ACFFA92D361218D75E115F70A47C53B73B356D703E9C499AAD098+AA9C8119EE9E9708A9EA3049E976FA19AD04210D5F6092C7903FD155113F3A3F+269B746560F70970AC9F8D09956E0E84DACE4112C4E7C7F6B3F0B63D26EFF95E+2B2E9699D16BC8AFC4AD9113AA3A974C9E82E877288CF71E9169D2DCC61AAAA6+C536E5604EF0716F6487292BBB677518504B52C63822BED3BD5FD14EB41EE6A8+AD4B6CF90D39F98E12A765B645CBA3E8552FB9A986390212CE119E7C3DD675AC+17BD006144BEC534DA2A860188619F17589008409C5A309CB83FBA70F6446B6E+2B56991B6A03B1DE10C621591CEE45BECA27C54BC8B4F1754A9E8F660812710E+117850E1BB6FD89BB13F8CE391C43DA89EA67E9C3E7A4697790EA26B0E4E2E80+DCA508873A7AFFC11B8C02EF86C2316E8D8B6BCEA37F81A3A87546705F070C3B+9D4D28C366CEBC1EE485B8E2357DBE46E86C87B9939DADA60888AA9F1B92FECC+CC1C198DDB594BB70A8FE690ECAC21A414BAC89BF019F34D2A130F485EAE35B7+2A10C67EA3A48A4D9734759CC93AD85C6A570500AE5AC9973FC76EFA06BF5DDC+26E20E28D16B50957EE01AF2653F8D860817967AA5A9BF9BF7ABCDA710E9F34F+4F0EBCC32B3C9C2971F6225D2DAA6A451366B83F32B2ACB83E746D365B2DE38D+C1AB7447FE7B37F9630E410E5D8F0ECE74DF46C538947B3A167AD9F3E4A7EB3D+60F5425AE75AC3A27D39311DA35696C3DC7282AF1532E7AECE63D13DDA0296A2+01487185FDF1875AEF55A36C17D6A8DD329279D229259463A2F05CB7A874374B+E2320E1F6CFECB9C1CE62FF468C29751ACD9754AF1EABE8E7696C2888914416E+235B6766F20FFBEFF285277B639A51EA2F2E30D207BC891B00F0436008F980E0+9EEE7FB375BB069B9E0BA11DA951A99D8E60B4F920A0495C247FA7DE904765AB+DB5C3B2D634757E43EDD6FAA4DB3C67F82D6853E1170F0B2D8CE496DD4E72B0D+28277BEF172F1402959F64527F9B640619F04416DDB9D05FB2ACD019CB9C119E+E544D24EA6DAC5C69785394EA50E6EC9AAA9E14B904EAF29A733C6D7942B63F4+85729686742F26DEF78DF0DA1CA7CEFBB684F4CAD99021A3B3D1FE03B9C5A4B1+BD04CAC89BB91B11952A2B17A61789BEE0C54B46C03FE9A1AE73D17CF94BA30A+237C29D414C3BCE8E3E2DDF83C0BD59DCB66C4D2C3DE73DA8378F3C6C8035D28+7464399857E57651A53E9C4AA68DFCA91B2376CF98AC5290FDB9BDAD9EF1604E+9B0A70EDDA1E564B6D2456E7BC722454ACA8C4950FDD44B6EB9AD01169A9F845+B06A0DDB7897C847A5B1F42258AECF3807AE936C8F52C3A7A0A85D68160AE442+FE81543DA6702D76AB6E8701F80DFC1D87C961E350D0E52AB2A298B9E5908600+7E14D2A87309043CBF13F69AEAAB1BC239DEA88EB5176624F6046664B1D2691F+FBB2071D3706F97DCCA355A6DCC4D09FD35DC078FBAAF672FFDECEC61050A120+10B5A96629041303FD01ACCC7686165DED6AA712FF8E5E85DE33C4E7D877C49C+6C469A90410BAF60BE65ECD91CDC2EE7AC0CA8BA7B53865F26092BFCAA0BCA77+B80DC51DAD09C93C8DD8E43502B4B68F3D5918C3492196292447732BA90F5AB4+9F5E1D634ADE1CCAAD028DE5EBA9535F6FC5908DBD2D643E0A7E059C8C386FDC+E72659C0033F535C0D7F6B98D0335552D0BF3C6E302B672A5EAADFCEF81912E3+8F54E6FB7EC2B325125159713D0AC50DEE3673B9B148643727E94C80971A2E73+5E1E13237BE69C84FC039DCE02ECE2668AFD047F21A61BB94A9F498C9FE5CDEA+B274B40728B6F6CA9B6C15BAAF92F465B0D7311B46545CBA90D874839443CCB9+3110F052EB247B24B45A3D2FA6FBC7EB2A4BEC2A5892914B3C5EA3F4F9B9DCBF+6F932D95700E045B49E4B1F2C9D2A42CF39CA2F5A2654E6E8E6E92473D28AACD+5E35C6705EA728F704F5996D286BED433F976AB7E018621A577AED7C0AC0A84E+A032FE1869F603E6F20386E3A190A30A21EA886249ECF8CDDE2C33D73BA8647A+3DCA7A8DD9E8EC8D9A415D126BA38B6771C489DFC419303EE9C1B83FBFB3A0B8+97D64F30E4BCBEC24DF603FF3BF541E00D5804B6B6543D3D2B661CC551D497A9+9DFFF535AF424B2F3150BB39AAE8CDB306AAD37767BA10BADB031DC2FAB16955+EE78342CCC0E8B5976BF98F215461A8C6F63EBE6E2F1A1104662DDE53388CB51+8B44F3534853B8095F3B746A2459C2EF800FB1EF7F235EBAA9731E3AB3BE4369+1D3636E3ADD5BDF0C34FA80E90D8A1DDE770943FD196E0A7C5F1FAF6970B34C6+4673AACA6B2B5C12B9608521AE736C1F4B97209B063D991300ED5AF3D7F27E76+68E0B858FD8BFF86581E2B9548C691E3E5D9EC4D39C9715CDE86C7D22223CCEB+8A38C776A30AF14912390A7546DBECECD7A687D4F08646E57A12C80DCA022B7A+33399761A50B8E0ABEFA1163EDEC3DFB5DA3248792EEEDD894872D4E6814B4C3+548BAFCDE0CABBCDB97EC6D1BA47F2E77CC1389BF19D73661749AC33F46A618E+A665A85776545BF9662F2179D7BFD604FA8EF4700591AF3AEC647E27B24B76F3+133F9198DC15C1AED830E737909E43EB91C334C44BA35810007A3888E33F5DA5+B3B2C35481C648AFE630CC3E08F77744E401B2934E407D1EC17ECE737606B076+F8DE8EF3344F57495EF49D11580D6FB28AE0B1422521B320843B13467501CAE2+3DB93D7BB779F73B6AA30050DA74BDBC3F8DBB30F32EAFD07734A151BB2BAED5+C9B1F790059339B64BB4146470F30928C9A49AE88906BD6FDB7431A4B50809CE+0F67ABA01CDCC2320B0B097187B9299E3D80CDD7BB5DD5BFA7B28D924C5633C5+45A23CCEE097C41C3759C1FA8DBA0DD95034BCA89BD23FAC18C70093F40FF2F8+0FAC5DD4835F2DFD40540E9A9E9FD951A8AF2CB766597DE00147B163BACFB7E6+EFDA4DED594F1C746D8B46A1145E0E4058F5917B3F21E9BEBDE745EE72CDCA64+FB31EF7A2E55265F32559480E2B6726D3DE26FFC97EB4E3160F117E890C4B2E5+8DF310E6A728ABA85540F571C024F8DD58E1D7827FE97CED5EB31547EBC36415+02B8C0E10B7E37D816F01D56A364B8552CBFAAA95BC4BDDCFDE91CE0EF005B4B+7AB56FFB47A093AEDF0DE1EA48FC8103CA3CA1470864D2693E360006D05668A8+AA422CCCED20DCEEBEA5CE0DA1EFB00FB93E922B18124FA11A88D0F6E0F719DA+57603DD5DA42E1C56C2FD9E5415AA199D4F334C151C1157E75C107FBBFCEB706+5F4EA47A29B54ED8CAEB8DDA2F53D2A703B95487619780A52DA1270011648A28+AA64338E04AA5B92C1EDF3D8DA34FA6D227A0325EA6F22E9B38B6338C657BB21+CD4C582DC04010330F62923F817E4EDC6E5C0E6500F2A975A8A95BAA30C4A134+BB31B5AC45A2E7F6E9CDFC810D41344C4F606049445F8E93D74271C1E29DF7CB+5459593BA28AECF64D903D3E4D77CF5C04B06DE44A41EE4D9FC769854503AC85+69E4A5106E84016DE3D59865D4AB30BD6C9E45C45DCB5408421CC50CD6179C85+34E55CC70FBD8FEFE9F1D5160664981716E3BC7F24B6F54E0323D9BC4B692971+24419EE62D8B0BA726E2B4294A9A76F328B8101DA29E78BD5C4AC383350FE196+4D42DB1653637D19530124858950C22F1E9CF5BC07D46B7A58CDE19CC88DCD2E+7FE4EEFD8AA6047E919823C8CAB2EF5274F45E861E6508CC11A8AA90AED2403A+B2BF1315C2157B3B50A3685205D93E40906EEE9DE5985405974BCE0B84BB37DB+080A45C5237B269B93C0A7CF294A18B45464A41F604C494CBEF829A381155CFD+71CEEA54CC39EEDB6DF58A9896246B09F95DC6BC40BA6916AAB5ED3D24F66154+3662F8978FC63DA9280FF7ADB09EA5BA79D3B66E0C88BEC1EDD78DA93839073A+A4D7B0E627000C4ABA76C47CCFEE92E319315333A5584A951E34C55412049C4A+A5569FE65A006F77B416E0530AB6A8E7AD6C72340AD4CE25937158FABB2153EA+281E1D840206F5DA38E00815E9081F81DAB9FAA8F4DAB305867AC84735DB4F52+A36129929BD2084A8EA37BB6889695204BF7290B68D5E722540BF8A276F8BB6D+451D582EE59D2FF03F6B97DDE05FA00C3D375D2D0AAC8FE298F85CC067B15481+48D70B6A0354C705715B891915FE8EA45244677B9FCE81E72D66177E309F3F83+F744B9EA9E55C3B30DEC6E5E03B3988FD526A82A5E8E1DC79127FC62B2FA7949+B3AD3148868DE22BD4B5708E32CEAAE6ADEED1F463EAB9692411E18F8D6BF391+126B2700B4CF3B59D02E3F8795130C96285A63FCD1E0F647ACB1D35E9C58BD01+1DD06BABA00CA4343BEBEDBE677E053E9732B33A7495DF51782A07DA07F5646C+770C957AD915CC70BA8E08BE7A1F4E6BA5BB9C603E38F6FB0A2578471C4D02F4+283069856D926B9076EC73AA39CEB0A061AFF1575C7093FDAC9F89C3DC06EA45+06F3C2A3BC9FF21128B10CB758DF0F099B459A5264A8C24C098110D2BA1A8532+8FAE146A91BA7D033F591AB1A94B8A6FE0FFB610F698D216D58B4EF6C87B1524+8037CBB7E23D8550A620341C6625A1A2ECE7CEE2598D66277F857231A36155E3+984F147783E9B93975AC38A29F2FBCF704C8A04AD84C3E04A12D2321FA56811A+5B6744813CCC187968C5C26BB8D3E6615A912FA5369C01CCF8C0DB790593B190+1A90CFB5339B8771F325C5FC448D36C7312B11A15A8635BAB59CF3CAD176131E+026F6E141B2619EF7F3048750CC9291397F141591EEC8B612D6656DD34DB54D6+DBDD303CED74BE76664E7DC86FCFEEF2001C9DBA56418FB61F589566A47AF36E+C94671C5E8939AF9F4D53C0DE7142B7B63C86AAFA65877EBBB48C64589AFB2CB+1280AC099FC48058855CBDEB6C2D2A0D092267996591DC3B5EC8252984E9B27D+2E9EDE8CD8303F0905DBFCAE497DE1B755B924452CDE11CF4F20893DD6FF7251+427F520FE00580DAF1703FD968E0F8ECCDE618E1EA5820EE6CFED97C78864EF6+26FAFEEE194A268F24249D44829AA360D731C34DC285501E966A959180718F72+6330E4CC060588A2F65AE64A720DCAA818D49D4440F5D0B6C1F6C3A107E12445+F1BED2D3FCBB87A9597F01C7332AA79143564056219BF87D4B907A04F77621AD+054935E883B2B137D3D1C4BC792E8335CA08B6D83227F35736C41312A0BB077A+60FC6488C5E02FD51A10AC113D4EF70038C649C1677B2204A77F2ECBE9B3C341+F4126BECBCA61E3F3801F9188A3775924A62D30FB096B440286FA655EBA00A74+9A4162904BEA07CE68EE76018346DEEE20839C9A2FF71179B58E1D4AB30856B5+F5D97295A097174467010B15D733AAC5813CAA633746B430B1AAF9F997FDAAFD+436844D1A56B8E25A89D2CC4BA6EE7ABD167818FD4F6C747E07B262C99EE2C35+323F0B471586CA50F54C6381B052B15B0C58C19DEA82C0CA29F00400B727419B+2379979CDCBFA966AD513FA903160C571C3BF1BA239540B11EF2371A3880837C+6D6CA2F374280CFA1586427AE975A2AEC34244874E4D441DBAC6CD1828841C91+069AA87FAE849C5DC7C9EC1B9876E59F3CCDF8BB23D939F5348D7486934BFB02+CC5A22541ED352616830A510DE7732E5D8F7E785BBD31C2BC9D348CE5632654D+2C1740F89D57FB2AA1FD8FA3304EA03F757BB8F498ED98E48485722E78D97B12+A05F3A28438084D1CF90AC4C3FFCD7B3365941C45E1E02CB13CA1E99F7FA1D00+1C9D489D5C95F019AB4CE89FA3B6604473DBD2CE8E278969E0A0FCBCE68C23F6+9381882443D3FC16966555FC222F3FC4B1207522201AB7A15A7A6F22CDC9D392+360BF4C95DAD35770E0AC7E5EFF015F2C74ED7391F40EC94B8D1C163B5DEE5B3+911A20C2625AD3B24BD94D2A42405E655DA47D3F94F882CA2F479437B4E0BE71+8AFA4482C6FB270F8D05B4599A01403DAAA90C01DF3AA7C2BC7E66AB6AA833AD+FB6E5EE13E45CC7CE7E200FBFE639F9CFFF5D08512C02764997FD28368969BFB+0876F236EF6189BE73AD827332DF1B2EADEAC0ED3B939CE5BC3CEC78975FC636+44FCBC2CCF4396AC7343EC62E0E4F3DFFA2B880BF31D93ADFE201BE9CCEC8BA5+0B9B919E05B851E0909968DA259EECC6AA0743F25247978CC09C28C4F878E29A+5070E4023BCE95FE0ACCCC01D0EE219FA8344E8F6D7D4347563BF8AC030B9097+41F24D4BC9494915A82EE9FD37FBB6A46BF077B728FB569B1258CEA5F51F36BE+4F4D0F890D782E44748CA3FE8C8A515998371D9C7D2311F192B4B7E7C68FC6EE+3F7136714C282A2570FE591F247A08319CE9EF1E43274E4E57166E31A2ECA506+85350DA31AA4C33C9687F5210BA225EA1007C444FBFA2126769767E47A967884+9F68589E4BAA9ED32A7A466DE35554C132810C68ABDAE536D9D884352F28EA02+8A555D2CE11F30598F44A65E2D86B43ECCBDEED9E4E5B5B7DCDA20EAA09D9FF7+422FC91F2201431A9E8FC624FF44D26C0100183D77BC7E6B1A6CFBD3FA8BABC1+AE4CB0FD382E26BE0A83169B46D91429DCB746A0326243E212F802AF6A56C709+6E70C6C7CBC54F807956DE75D7C0E689B2684E95F1E619B02E026111A02A8BE2+7C22515F25EEDEB353948E35E582F8DCA2C44BED3F3B18642ECDFE919299665A+FDFEA129D42686CA54D497D94C696B040884D24220D76E44941BF1A18B33CA5D+EA6D560CBE38CE01088DC057E29FEF0AEA4B4168A952D0B5A7FF2C1B3B478090+24C36CD8DC2487F21901056FC8BEBCA67AA96790F83C446733340E98F9E80E02+F055F4B45F2470F4C21972CADA01A47250C143BFEFAFABF8D46632A48F594986+C30DCAB51168B2D9682C427F67D420B63A7D252B5DFB45D0627C6CCABD8D5F09+040C3EC3C3752A781CB248F39924F3B445B3C12DF049C08849B6EEC7FDFD368A+EE32F0FE6EA767B16D88697F182E52F05CB1CA210CB696069E73E6135847EA89+8C07EF5AF449BF57CF1FE36AF62EF5ABA4A973266955A1C43A8619EC79C02391+776AC8EE11E2EEC3443FCAF16A8FE034D25B8DE1155C6E93634D0D83D7EE1374+9F95AD2C92C390BE93CF536DA43D742FE6777D1D60D0677C1DA704ADD82B4F76+2EF0039A3813773C4B6848ABB9E96055F432C32AFEBAF21EF58E1DD3DD6378A2+08D816F3BE7E+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMR7+%!PS-AdobeFont-1.0: CMR7 003.002+%%Title: CMR7+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR7.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup+/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMR7 def+/FontBBox {-27 -250 1122 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def+/FullName (CMR7) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 49 /one put+dup 50 /two put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB981ABA2ACC9A23A5+3E152596AF52983541F86D859FC064A0E3D5FC6647C3CAB83AD4F31DDA35019C+CDB9E3DD3FEBD4C2B36BA3CF6E6C7DA85E25D8A31A9BAD39BDF31FD0D1790707+9DE6A078E8A409D8295F642DF492AC4F86AC84383B0F4C6BAA7C22AD5A898A71+D6CB34D2CD12266C486B75E75A69C14819DD9BB8159088E04D4717E576B8482D+BDA52110AC8B8A80E4E9D58F470EEBD3CF44A1E1EE8DA318FFF3611B02534FC9+F4018C7C57E80570D2F634D98BE5D5EC6D95051157F0EA94A3D12BE0B4B79939+F82F8D73136D3337C44E314B0B16CB030D9A12E01FB667105F334C3EE965E5A3+D410D2F1531547A4497C355AEEB295CD3C5334BEE5232992960B757594B89F3E+52095042DBE6B4DA3C3AD50CA95EA9EBADA10630B500CF1FCCA7D60306743681+7E428D33B7F7C40B425CD58E4CD8AB474BCE6A307BC6C6EBC15A8A96E0E2977E+A33389154536F5C5D8CF036D07F24094E779E5ACBE5502C92892F10F4C6DB627+C7EC4C7BF20B39418A8A85D7FD9B0EAAFD871DDD41F93BDE5FE619AFB8711824+DE890E62C1969A6FE28DD3578AF43D58A728FAFF0B9FAA640962C8F35A26F76C+67F3548D6DB54A25CEB368B47F97EA2B0C4D7C0E7894A4F0C823C6C1922CF9DC+10E05600556F1C7C9AFB33A2DB6F8730F70D6BF94B1FB0887451F2FFEEF3584F+DFADCFA9A2D4846B8F0E51620E1327D994CDF973B837D10C90FF76DE22B47CD5+EE3183898D156861AB4DFAD34A1E3FA260B8164E6680BF58413A553E88F6100B+C4F4E8E972C81A5F88A7DBCDC308B4C3581BCDE13877B976B1F84330839FE5CF+C78551620EB803DF94A5C921F8EE24F7EF8FC4C3E1653514212631F54F90E3DC+E9EAF96E998F340C4F729ECF7AB430FDB7C0BE3DF2C0D23015820E28B743CAD7+7F0AE95413C3EEABBC69E852F53EE1DC260D7F1E712BECEF2F18437DB23D8E74+2902AAFBC733AC5BAA452DD6F3671859AD836C8564E99CDC4183D8495AFD99D6+1F0D65B6588CE7546717911E25BDCA6C2649E3A7466A3E2DA7C7994A30AB4449+672EFD00632EFA8629C1AFB7D53D801028F77C864869FE636213A69173003EA6+BE1ABA95EB07B13D1594BEFCC95ECB0A9CFA9892EE0677D6B6C250855762B7A7+8E4E022640F93169DFA0303A0D5E73BF3E0F4D4AAD10FD7E4EB20532BA30371F+E9F480F9513432946F9828AFB5D4AEAFA5829B2CB544E5EB634C4537EF7DF08A+A1CFD94A52DCF0E7CE4C5EFFB01E6D50558B75DB4C8D5512B06080F27BE62E01+2EEA6A0357441401458C842D3DD4C35B8F561D816B336216CE0C14BF77648AF5+E33912CF95872A1E1AB9A18980A0B29A881D13397C15E1CBA5D3E0B27943EBE2+F3003D15EB446BCFC1C231832475D5B7AA19E4CFDE119D6CD62D053C6D29C333+5F729791D17B3F7108074EEF4D1BD101CB33E01004532CB0D716D2E54D169C6E+80163E70C0E9081F31A1ECBAE079D2A518B790B0CB2CD03DFD034A0F4788E800+B0CD2DC1FAFDD487C2F381EBAB2A2F3F3AF82021B211DC9CD2FBA6A1BB3D4AEA+4C7F3D9A5C21DFF284CCB827D205A69638E98D5DD8E36AFC1A4481B5CB2A2E8F+D6C838DA6F81990F5ED928DC7457501B5C979FF4CD20A830896A460C5DB13D56+A3B2B5D9B292374A9BF392894DD99FCD6A1E655AB395E839F074D1596488700C+4E2891C8AEEF66568E82A8B826F9A28FF84D4D9BDA21F638EAF96880B4EBE0D8+081982F34831A03BEE81FC177700C2360D2A48915EC40D5FE85B400E175D5AF1+067FA0097904FB647757BB44B4042D30D1557BD0F7922D731142FD682139CEB7+58CA4C8C240A0B86B1888CACC507E24E04020BF1882BD9B4CAECFA97DB24D7F5+AD64C69454027F198BA35881B94EE9159A2D73E450C3BDAED66B886D6DEBC84B+653E165176228F88993F12A170775A8D7038BDF2FE8DC1F7B98BDC02D1E6686E+9B834F6C0AD90780B17DFE25F0A4E470CBA84E73F2D22BEE09A040F14CFA2C14+0FDA5A5149B5FAFFE49F55EEFC43831BC43A8326FEE9C7F469C0FC3B000884FA+41DA7318EB57262CB96FC4EC7F16CA07FE1C3BE8C2DBC8A8135953D6DDF20BDF+75A2B6D26074FCE752BD32FB9F5CA797775E8DB9BB9786B469A3CD65A0D9DDDA+C2A166E454A94860EEF5B5C12172DDFC576A03F6E6F8A735FF21A3E9CCB4CAA1+3064893487697986A42CB5888B2B0A79FA3C74E8187BDDF7BEAB884B70B8D4AA+AC6615745AEB906E08BF831CFDE222F58D02B428D55E9D5A3CDE74E42D8A2CB7+E1A3A9439B678AD438793ABBEB72B21C58981DAF3EDCE4BB93D95F4A1E943BBC+B3A012DE92FED4F232A3A7D60CE60B605151F9C7C18A5C653E5D6D15E5B49A63+73E7A339504D0ACC74B8B116EA88C3EBA2CC631AAB29F761E5F062966AD2FD28+7FFE52FA8A115DBE23E471094FFB3CBAFBDF11B7E9058313F2D069B2CE98A962+64645738F02A31E2F2AC11628724034ADBCEE012721EBF0A567893411F950410+B20754A7510D041FFA6144AC9CC46D846B82581F20BBD001D34D9764010824BE+61C30D05E5C5D100A24F1917F01799CF5BC4E50FCECFEA732CB50196825F0E08+8A1EC868C6D4357857EE2957E081A0E4372E31A8ABEF23C3F2EA0FEE57DE4D08+61C570175C41AA0C7A3A579ADF593F18B4AE3782D2552E4E0759C32E059EE741+2D8191E381731769F6648B3581CAF11DAE46471896666F18F02918B0860BDA3C+BD5DE777672447C23C62ACFC2611ED5239D6A266FDA6031EBC5A530C1A2FF7A6+B4380B9A4C877267854AD1F1677CB5433F28894ADF93D39EAB94541A8D232E08+22D082D0951A60F62B87DC028714EC74133A4D65F7D0D1296C0E189C4A42AA98+28E8AE7ECBB9FC8DFABCC6EEB1E9FB06227F90808EF31331CCC5D4C9A6182181+047902DC9FD0444FB94B60FC74F3B677758088CE6A159D940C5CF682335E756A+8BACF06AD7225D49B0002392C889B0FE2C71311D2596F4903D12FA20BA2FFE25+A0804B4BC282929BE31E0F46B34532CB5795A65218CFAE21F390792DA67775C7+B91A2BF4C16DE4F6551DAE3A5827F616BE9040EE6B1008DA2F99A01EF66D697A+6CD1A44E0A15D1F39EA8025E886A68A1E9C334327C7703EE721E497CA924AC90+7723106D913C5ED4BA4FC743CEA8D0F5172526107DA65775C0B1B77179D336C2+9B09B608D80B1A1E87CA1A84A833A00D980D919BFF56F6390E9D5B45E9935CF5+E69D003564462F750F7DCE02DC23CC215A0696B74D8BD3156A392A94F557655E+00BFAA035647568ED66157FACC585E411F7F428569C147DC43F6E4FDE693D0F3+9917BEFEDF61FB980B85515FF6424824E2D995B05CA1E5D3E8BD8D3281DB7CE4+E54923E84058FFC0A8A2C491327D0F87CE4C352B724167CEE224DABA3B95757E+4A419594BE4F92E78BA6D35D4C93D31ECC3134B24A45DC32445725BB044F09A3+AA8C31EFC0A2944ACE2F2CE054CF24DB350FB3C71115518C24BDC0F7E54250AF+9D3378D38480E1CB9029F31570C619A28F065CA4FED5665EDB96712ABEB33B9B+4232C00C1B0215F08D53F7E430887035AC25BEAF06942FD1B6C442253C887AB7+D694C1A6115C8990B4CAF1E81DD1FDDD6B03C00055BE956BE7FD8A4E1049AE69+EDA8593CBA8C4A41E046C689FBBF9F1B64E5856A7FB1C61EC815A56DE2A8ED33+41F370B8203D4E5B19C63AE9E6E0D26F4F3814B5AF48AD30EC9B8402C941FDD9+722FCAFC638FBB835F83DC77F93D367266FA7DFFFCB567EF82B1695AB4D94D09+B18AC041811027229DF431F5CB2BBF6ACCE9D500C8F075A74590641C1A607C56+D2B8624797BCD9C91C3177818691FBB4744EDB6056464A0B95B8D63F7C22309B+82D6126E2057BCC9FE5566D96B7A9B201A09B0D3252A5494C8CA2C8BA8A13C29+37EF2A882D61DA708C279F663D88A8E2999A0F3B6F98C49901A7631BF7708B67+54D0B4C52BF4BE0DA0439E6763A7C9D639AD4092E77B13D3510DAE1475C978AC+796F9B2AAD3BFF35C5A3E19B5E2BF704B3BBDF68CE48BA4FA2496D60E58888EA+28AE12D00E9F0816FAC190590A865BB58569A91BF0345D01230ABA361442006D+BA2C90EC2036BBAB79EBAFC3F217DBD5854C519235F9627A1C3C71D21ED38AEF+0BB40F3B86BB9F09A3F309473D8757AB7E638DC1C59A7F9BCD49DE4107A2E54F+422767FB94048987847205584309397F554744690ACFFDF5902FE5DB355930B8+71863217830DD7A563B0B3A4025ACE75B0E777B4414B62A13B50C54E0E6D47E9+D43BF769B9411B74E1069BF71BA873B4B8973EC9BA492A5DEA58D267872BB246+10AA67B143D0E2223FFB4991E583E629413CC894C3FA4869B72D19CE1A0CEC8C+0FF5E5A3EC1FCB7D3C4289813F0D249A11B55104BD60B2A89BEF44CC77CCDA9A+065B8B83B4F4253AA1D535290DCFAA4773452D110D2B3370F9E2FE5432B54A9E+644EB3BA9BFF62347F376839024CD5EF3C5DFD30F412DD5474B7933E6A1AB63B+4B12F2417C72D0543C26A263AEA53E5BAEBD67E23553A72E949DEC556BEB5D09+C4D7A89B14FE4EC68D0E3E9D65A64B285E53590F418EDA8175113CA375A29930+DDCF4C71ABB26CEB800C2C2B253AC1F53651C88A56ABE5A74F3B54CB4FFDDB92+60AD7272BA25EC2F6FB759AA6E1E7964FB55AD09F4EB25DE45FD01833947BD05+6266AA8ABB7DD792941C7A070FCF3A4636FBF8921C70298D42FE92F079DBA2AD+6149D9CF9EF7264DE6DFCD4429949B15EA90B596340713BD61926DDB2BB23BE8+F9DE38A31620A817420A245946E551463960A8C5C7295E3B3D6A59BCDF5E472A+40B7A2CDDAA43CD8AAFC411D037142579D11054A903E102DF0D0C7B5BB854DBA+F3F086AF991F7F5D5C730F8F9AF213F25786F3EC0E54530FF912F4876FDE16B6+A07D0DC4FC46EC6363BCB68B83ACC448B801EC43FDD2F8BE0E93D809FF81E38E+176AE17C67C85FEA58EC95435434C49A950AA955D8B20989C550AB1F1C31B7FF+99422E1F48FB7D6F327C6DBC4695A03903DB275B94CB39386E46579271870A25+21823E75C377E9D5B46655E8CD8F986372CF8BA846423E26582315A9D19E0BF5+305C32B2A0EAC3ECB275B1D8BE11A37ADF524944219D94EA2C5DBDA768828B6D+775DA8CDB09E0570E4ADDF462EFD8D3FA3F86B1DEECDFFB699AF6507257C1879+16FC615868C2D51F03CD57BA38D42995D9164B257441210084DC409B6EE4C119+0B2E17B0A8D5326DD0010E4A325D5F77BF935693BC90A00A28C7B5F74817DA39+F47A41E32F4F92AA04D30D810F7B1484EB53AD8CFC8CE8928B570314E0F713F8+AF127227190F9C16BB73D2A217FF801C391A29095DA5E4974D137A0CAA7DE702+E20DD4755B1D78739756A5E7EC3542B96AD6844199FFA2F5F2E9C64E2DA4FB2A+ED79869F745C59D235438251BC2E6D26112AAED20E06021D1AB896EE1F1DD2EB+437FBD4A25E42245C5A647493FCC9922E6DD7AF57D5D482921D1CBD6F0F02949+C27777144751C1E72F4EE2BC343D4AE7A8A8758123B54FB1A026144C643651EF+0907A376945E19A8FC7F98A034832A5820A481B0823F980F59623E0511593FEA+BDE6EFBCC0383242CBD4954027B075B21F10472059A480D6E5ED01C3B07461CE+9810251A5C5643EC7403130C2246E8616CEA25EAC7A0076731FEA8CC43BCE3BE+933FCE61067F5FD402E67E2B9DAD954AA77C5BC86BC5E4BCE2ED676D8D8EC7D0+ABC5C86D82180B9D5D7451C71B5149B6B67883578DE9909317928C0A92E3205E+F23015400A1763A6FBF67FDE3318AD2696685A1832FC31CF38589EBC7CA1C818+60D2B2211E04EFCCEA88D9A9082E82951EEB123924A267CB03C48889032F2892+4227E217FA28F87E01CBF27BF1EA60641A4238258CB7AA355908FE36D90F5CAD+FE992D03A33E47CA9AEBEFDA57793F39DC6A9E85D5B289F6B862B35DBCF82E43+5CD6A862F6FFAC36478C384C3BDB0148CB1FEDF55969C776E77917635B5A65EB+F2AD351D21CD3822D43289FE8EB0FED58182997097C7E9F4373553AE1CA92083+EDE3BBE6C3BC7009D15AB5FEC6A59E9FD1BCC7B2099CA15FEF083B9CBF7B890E+CDDDE6BA0AFF306C76500C945DC91BD533FF9A585CEEDEF79238C54E6168001E+26FEB29E523EE501BFA4F60B782B1499B07084C35A2434B4D29D3D8E2C8F945F+A9922443B68D07DF7EAA1F4CDEFFC438B597D8943E231B5216808A85F30EDC81+9DF5DD22F54A45335B4C2203887475F39D247F0E7347BACFEAF220ED82F9263A+6488E73C1910023E505FDEB143006C1A351D441AC57F9D52D2C6D63D78C75605+999885676BBBAD56074298E0BFDACBA1830BA58E87F436CC670EE8EB1870154D+72DDBBF3794F8CAAA3F1E11DE29752DD99EAC695838A19BB67A1FA3829B6E0BC+5301610A0351AAA749F456AE31ADD87D6ABADCDD1FB3CE81C3713F48780DF407+530CB284B2AC709F52EE7AD647DEF9FA4D2A867CCEF728F3D40CF34C28D21527+10160B3DAFB5FE16AFC9D36C6EC4021FC189005862082BEA60AC72B63AD27D72+FAF3C2D89DA2648FC4C65104A069212D87144E8533CD86A6D73DC7CD9DBA25CE+7DA53B000266F3871B24663C77723703315C5E4A89DFCDBAB384AE7EB2F455AE+AB191FED406F7F6EC9E5B8276EF5C4CBA041AC7E8BCEC7CAE840154BDCA3232F+15711ABD1E867A434E9787CA0A6D1F197597DA27ED2402CB2D84ED082E8D3A39+81E6EB270DCA4E7A90E2BEBD3CBB3A2BE3CAB926192D7292CC16845B6399A543+BCFD224BB52F21352732DB5154FA3442733066CDC3E186D8AA97CD801DFBE43A+116C86889BE198DA88CA978B8C40ACB67E8F7BA499DE68A6FF0DC72C3D00BA1A+B378B39610F15CA026F95ED8155CE3FFFFA2E2FEB352DBE14CEE1669F2387B70+55B91185FBBED764266215D518716EDA3DFC9E5DB6B148A553E75AE5E38E1CFC+6EF47B314D54CF24BC13856F4F7C976BB91D143DE32FF49BFFC87E17885A1893+BA1B8E441B08EFC04F7D103C1FFBB665194B3D0920473740C55FB1C50EBCF717+A2359B687FCEAD65616EE89A68F8D91AFACAA0B238EE4AF0279AF5BE5294C3DE+A7E1F5E6248C0210E7D40683F04B12A933C746ECB517CF94BBCC6E4CF49AC715+D8005AFECBDFB7A6B417DB8A28F8E9EAF39CEC1CA64DF37A5E66A76C26F721F8+A63B003A040A62F87DCF61B298F960D510BEFA453F118E59E7DE8CA3DD002EF0+127EAF733D5C61B5132348D280F84D159809CC71A3C6F7373BBFD8D6EF715D34+0016DEFF14AA5F960BF1BB9AC304A1823722843547BB4CA5EA4C41C6C2701C8F+7BDC810443F9DF34BA469A3260009B799871BAF8523C8763544DCD0B382D44C5+F75046AFF85F0B5A3188C2EE786CEEE5496A5AF4BCB0B429CAFC403FB983EFE3+61FD9F52ADFC38E07A0FD7BACBA530D2E4DAB2592AA9564843E7E2305047F060+C5FE4243FA8FDF1B5D4F61ACA7850A604FBC6D6970959752695C90F78961B4E2+C8CFA41082B1A37405AABCEE5BA3DC2B9EA76F486117B84728EC6D8AE6379CCB+402C2AA89078EC992C00D53151E9D82C65643F549A572A20F05107A41BE5AC57+8EDE92AE20B05E2D0C98151CC92D5389A675DFE39DF546A33A84A4C534337ADE+B17C34E09145B37CE1EB1D10D42CC8D6E6B127A3809F7202381FDB88D42084CD+0AEAEB8A8288CB56870EA2BE9D0B9DC8291021CA561E2BA388DA3494E433E0EE+5E69DA51D0AC505C9F71562D3E9750F23CF14D2C8ECF0692FBBCB4A92B48B4B0+AA2163A516AD96B9354BCDBEBB351B643BF3CB00446AFFC4A137CB928E99D626+4824385F1E9CEAE6E317451B4ED21EF01ACC5ABA985FB14EE70247FA3B66ECEE+431352ED45182614EA3D57BDC22E5A04D5AAB27C8ADCD7BC07BBAB21A1901F39+4C9C008D353F0EED437BC00D2E65A3652361D50E16C785B66DC1D551961F641B+032E133A31A61A335EA302469363987224158BBCAC91357E79DC8F409A928EB1+8E1FFCDC81E7B443ECF0A6D728FAB96395460B33F57CA9B88C746B9B7B453D4C+0755B802DD31E854C52DA0804B611B6014BDF91BF76B6E491F4BD5C46574FDCE+673B03F3D6FD5F8B860A2556FCE98FDCAFA81B35DAA07BEDB39ADAA041BE5ED0+02EE5663F1C139979D11BBB51693C13514CF00CC7F9E9AA38726D6B1AEDAAA46+FEFE290831071E035F68E9FB2AB771DFD9E7EB3E255BD3FD51F325AF0AAB03F3+C001351BCC357E49F8A94A7481991B6239C7D48C5D55D3FED290DF6AFB2E23EF+1FB63022D8230A40B34546705D09709C2A02F219434E951DFA82A1339C095723+10190C4CA5F9B9F98179382216FE74381A001AB228066DC706493D1267F2263B++0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMBXTI10+%!PS-AdobeFont-1.0: CMBXTI10 003.002+%%Title: CMBXTI10+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBXTI10.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMBXTI10 known{/CMBXTI10 findfont dup/UniqueID known{dup+/UniqueID get 5000771 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMBXTI10 def+/FontBBox {-29 -250 1274 754 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBXTI10.) readonly def+/FullName (CMBXTI10) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Bold) readonly def+/ItalicAngle -14.04 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 12 /fi put+dup 97 /a put+dup 99 /c put+dup 101 /e put+dup 102 /f put+dup 105 /i put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 114 /r put+dup 116 /t put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA61972029CF9B4E1F6A+FFF97E53D6378FFF9043566D67519B5C031015C0D52A7B292D219A2BEE49FA56+820ED09A28447A71C5CC595AB286EE693EC741AEABDAB0688F7B46D9D584CB99+DEB048F0C0723F0D7FB57C896218D2AA0AA4DE241ABD632E25F0B47243CB7DA2+EE53CCAF1682D9B580006432DD7D53D06E90B3457FDBE18179DE415DACAF00EB+4E01CB49CE25429F8BD45069477DE90EDC87EAC15285D321569F8C19AB5100B1+DF31636EF29DDEB4BFA2AD85B83CC7112220D70E69D5A39BC3558F067A93C6D8+7A78976F7B93A589F0271A034D1A8BBBF082841719E2901720E89568E9376AEF+8D41ABE4BAF9E79809F5BCACF29858F8675E37804758D58F8909027A00CCCC32+5441C72BCB031D09077BA9F778BDF52F172C2EE62F0B98EF852ACE037C6240B2+671C0F01B7D4A9276A8F6DE3B6BFC2C34DC309E5888E249E398CD60549DDB61E+7E36890B1E37E26126485E49114B7CB938E2733D9A14288C3A763D326D7D9183+46B970D455050FB97612BDB2EB29E7D71C909B10CA1D479176652712C112376B+085E9F99C9A488C8876954EFB7520CF97D08AD84341FB55764879C5CDF8EEFF7+DD31DB564110A07119E52453B778531FE181D09D1A9799D7AF4773AAF77EFF2C+2091194E301CD88C97CCA29AAED2CD68ACCD8CCE44B9F24889A83048B7208BAA+84E136C58F9DAAF73815C6025DB64C45014BC472358DC014D243D189ECB1EEB3+267345D1FF4B6A01246CCF5FA90BB355E3734A7C774DE68C01B5F356D645C4E0+1D0B7734E05EA28AC6A9BB2123EF3C6E27F52982A7612A352213C6AE3E80A819+2304A70DB8A2441DC5321ACE962C6480AF736920B64A2B433DCC3519EC8B577A+30B0819700A2281212CAC280A0DCC50E78295B98B2DF97A78BDA1879E6B70C10+7BD15FE29C4EB1D5A33037F0AC9BF8CC1FE88C52CD114EB33F1C6F8ED88EF98F+DD0C3913DFB36147F581C91CE83CD73A0D012F3D0FFB162C0F4597ADC8D93911+0DC6D68F9FE702FD0EAC5039D462756551C379C5F4DBFE05AD2D1BE0EB389AE2+391E461DC4455E0D3C3E46F3FE9BEF488730D71ACAA63BEE72367C52C4F84766+C24E13D1E63791B4838161AEF8D0134145BBFA4D848CFFF1DED6814A7215F4F3+3E2D654C27F3279DBB22A568B7BD1D5A9D75C7778D36C36BDBE32C8FAE4A9209+20AF8B705A77CFF4AA9ECCF6011F0A359556ADBEBDAF5BB706FE6FF4A745D841+102279B66CE0C842DF8C2673ADAE354B2811C48DB05994388AE4053F4651A884+48DBEBF20FD05DB617F8FECB667B748BB5741D6EB62DDDD0FC58537EAAD6FC22+A11ED24D34827C3446C8FB81E4A0E904206A1053AA9E718B0405C6A7B8B893E9+30E7A31B9AF8A56B5EFE72FB5AEEA79D56E19E037BB4ABCEE079ADB53CA546CF+D98F7B38973CE3A6DFB315E87DD1E60C34344656D76C16E1DDA43C2ED276458B+11D7F4CF3692525C0D8B6307A2993F400760275A8648A0048E0C406279D48045+D77A92E99F9CB5C05E8202416EB6FF308C4C979895211450BCA82B19B33E7240+CEC18204C09AB3D7F8025C0C909BC03A1851287ABDB975A32C3FD8A1C99DD90D+4B1CE2F5DDCF140D4D5A19F33241D27E8EBEF4ED569AAC255E47813F31B30109+7075766D5BC1731B082531F3D132A937717EF67F496813139E8E263C088F62D3+DE0EA4ADAF3C088F562B0BACDC184DA3BD0D5A8A4B8EB487D0B6F1B74A969942+91CE8CC7A33670BBDB3F1E1D791F7F1D3A3F3183F2410DEF99EB932CA80FD931+C62D09A0ECF271B5BA043C9A214CE631CF8239ED0640BD134737A3E31B851DBA+912B507F72B80DD9CDD23A697F91D66E59346FA3A75726C386827D910714C989+5464B041E69F4B87290BAD381600AE0A976148CBEC8DADBFDF0CBD7148C3AAA1+7AE2EB15686E1AF68B4C90130F795E86C9AB88556E429EC943147DF363029B81+4C637900FBA19DD98792F4CC9888AEFBF9F7765B817ABE83494CA3FBDC79CA03+86CB628F75612209DE9CA4D585565E9509D5DDB8C00A229F07918B062265AB29+176657CBBF2382A219E573667B14687647DAA7E9203FEB4CC94B10B57F4B1143+C4962B6A888D62093A1D49E2C7D65C29C500B61E810BFB94DC2DDBCCD8B6C61A+911C2643F55E9E2101B1DC7D7176F7743492AE7CB84D460E8C00E91E5486117B+D9ABA9E16D1606705A0F698EDED5AA877A2CE7EEF25ED1D97EB348115CE5BF26+8A48BE961CDFC6F543BC89DAF665A681908ECD8CAD545D0A72C9C184CE67F6BD+7B51399925DE379BC59E9155A30C67D73D01BCBB1886F8276AAE58B2422DEBA8+266CADC83429DAF4F80CB25E0BF455CD7863CFFEA9E318FD043908D427CC07DD+683F6D977680E9B4F6333D4BE7E729F4D15C07C917862B47F0DB2E31500ED372+A556A8B617FADDA12A2F62DA2D9AB46479FFBE4FA42D9B8D597CCF4E6D04B418+8A9B523F4678DB40E7F325F81C1EB345D71849E57B059653CAAC7D9D56CB2E3D+D4F532A2D674BDBDE970D9211A3EEEB005128BBB5E0C313B42554F058EA1D180+BFBC9521FADB7DE03EAFE314CDA873C3532CDDB83EB0A6A7454EE85A4C36AF2E+895BE8309FEA168B73C6AEB2D454B234F1E2EB554C7406B79A859F6B303BE795+B6B4DBF104E75838F3EFBCF85E0B865779B016AC38272F8BBACDEB13164EB282+B59BFEB1E3392885916FEEF86A8A975DB9BFFF17B9E2173CD18264BB14CF5633+FD4BA46D7692CF7CEAB7EAE80385566061315F8DB8A7F495E68D4008B09BAF99+DF4275727F08C5FC58BE9A084B267D0BA62A907F22C466A3A79CEA6C207177AE+B1254F0810E6092DE5DB1BD3F238EF705DD4E806E0EB1988F2AC92EFB8843064+3CC3CA506D9AAA0CA559AE7157603D34BEC19D6019F0566974BB835DA172FE37+C15C0367C8FC164184648BAB678D37871F7F610EDAFE3F49289C6320F9CC113D+44775EDE28FEF4E14EB5B426C06058FD32AD12B42A2FFA0D9CF0C7BDFB6D7C4D+72F4FDB716D7C8E7DE84F614487ADF4DF5F304370043B25E07445F8C65109708+EB771F62E01350B7C9B659D05305CC3E4D94378BFADFD8D94E5704FEB2BAF58A+5B874C7EBCED806F068E93D4DB888B325CE246D02D1220ABF55CE646DFB45F07+CB8488F229A5562968B079C2CE2067B22B98904D977E3EAA82A6BD44135A6F07+36E3252FDCE218EB5DB8773E2DAFFD1DAD53671EB3D83A275D011BF5D501A22D+407AE09257CD21297B617E0443FBDAA297D37F66AC436DB78B410E79A002233A+0D7DA619CCA9DA4714325A51CB0BBE9EB6CEA352BB1A0A2FF83610B2A17E1948+0E9285E1570CFCB8EC7E1D691A72611D336DE5C6626A1D1D2DF363A1D781DBE6+1235F1D1805CC2A8C670005F84FD468167F8640B12929CF347538B94EB37DA39+904D4763D93E757AE2B4C775D98E23BA983E35992A292A04976544EC462CA656+E5EC37EE8EE46BF1C3B0B4C912DF05AE1535CC654000B06BCDC95D9C6B5F36F8+FD8A0EB31A02C2B863DEBF8FEDBC57D5F93D2604321FA66070D14FED60441E09+999B90A5FB715347583A35314381554031BCE4E6E73AD3FCBB61ED0D4C015863+119C1D945E981AF3F38C81EB3A350A70A63EB06119965C90D7EBA669359FCBDF+A87C4DB920F8F3D99C73A0DF7E10D3C410696D679CBFAE831E3E99FEF6C038F6+69C58E1EB6F60FF587F5EC561629EF429734CB886AF914AC3E6BC04F21D73F18+4CA12D7E033B301C181D15101A986BB95132DABEE082A617520CF95EC9069499+A02F073D7DBE41726B51FC05A9348953495B4CDE8D0A8F8C04D07ABEB3BA0076+3A80F2E3B5804947E690DB3A7B3BC6C48A67F5D45F5C658FECFF28790B709385+D24D02FC3B0C9F9AB04E168BAC78F0837D9BD402C1ABFA84148FD815240108CD+511E50FB8E64F20058EE54E4ED45181AD9BB777DEE3303C4991EF8EC56B6C278+CE63F6C2FF92308A25B9AFDB4585A808AB3F03D8A15A20FFE399DEE429C959F8+B3DFDF81433C41CEAC874479A2C51F9FAEAAD5B7B23230B99523FB256896A85A+8C48C057A70DE745F753B4183AAA6F84B4ACAB090F33CC2C31186D1D8A0218A7+4E1987D86B9C3602BA294CD29FEECE4187523CF511FD075692B1C080A5A22281+BAAA4EA701D7573D083E2F6EDEA3D49FEAFF2CBF989703E83828E6C7E324558A+FB73E3388F0B0E6A97EDED5A9553DD33DBBBBAF2174A562AE2B8A4B6E7D13E90+FF9B7D650231CBF9EE48DBDB00AEE2E0FEBF8D6778F19CBCB8766A0ACC9BCE26+59771BFA97CE7BA811A3A6C8CBEE899839E525DA2ECDF66CD99FCED902AA102D+92CD9A279453BA74EF8C0CF32C11A412A05CFA2C187833F885F359DCEA34EE24+E90F7F107A23D9EE269C15A647916F56C32543AD5F81D90C84B8305E5BFEF1F3+B356CEEB5BAC54AA00DC9C6F03B4AFCF7AA4D31964377525A661FBB743D39964+47AFBF76C8FA874BCBB374B02C538AC626004EC8E1E9030D60C4A097CDAFC143+732FB7431008CF28ABEC4529F4689720D4EF580676CA855FFEDDC66B7C1DF07D+B89EE98C0DB6FAA5551ADE4D674B51E4E3FA4B24A3DB5196E01C6CA1DF5D669A+3C0FC57DC1F576C2BA14D5DE284614AF3276E3A1159CBF8D40426A60E8C5DD42+6F1307222DAA8AA78BEE55C27E26013120FB5471CB33CA4FB642B1C386018EE3+D4424CA411F49CD569CDACB51AB9BB5E66E1E13ED5F8BE0E912BC13C7B23E10C+042C33DA19656264D7473B4E0C3DABE14F9F94450D1113C88EEC18CFEE640A6D+9A40DA9CCED6EC5E2E9F1B357DA635C3A2C5A23874E496B868FD0260D30F1780+878A900B90637A1237C63D83335A3FD4A664321C048BF2273F9C4AE3161E1F06+E6EA5F3F15CFED43C622E0D7E245EDFB866398DFF2EC994674767B7F3DD853CA+356A3607C7BF8F9C6889EB9942ABE469EF88368742FB5C41D06125D2042EEA41+4B344AC718FEAEB308302F5607C06852A30CF778D236EC90CA10934C629FD598+90176264DBF9C1AEB33A6028B9EF09B06BCB182DA58ECCAA4E2E1FBB13868C98+CEB61223E9658EBF003AC67493587A156EFBE73EC88CCDD55C9C10CDFC52F7A7+B274D631DBB5D629F41AC8760741953A6B90C6E9E4D2C79702C59EECDC65D894+8317D67808CFBD81953AD32837A42EBBE48F77D6B387E272855E54ACD32D3377+E19724B3BB370A71C633C3A41A0523FC219EFD5310EB3CB5FC93F0F9E6BFB115+17E2B901016CE8DD44BFA8590EDEA88F5229FFDB83E401034C826F038D58C19E+54704A4E2E36B7738FC6F80DF4D82A5285853C49F9689363392536C3BA25C00B+7885E7DC3951E9B5D22414C9E9A264954CCCFAF8BCE70CFFD4F726263EBEBB70+D52A58B3D6BD029F555A630D687C7E7103C8B8F2B33EA41732D6FB7FA999CCA0+185A13C8BD80A2762AB9919C3E9FC07556BA8C7149B4CC5B58DBE84297E3E8D2+B34591D9FCAC659C0FE115F34ABA807DD94410AF8F532418382EF8F7980E1598+A97A61926B809FD771B2795C69E6B1F15FF0EED329FB793FA3FAF0580ED07F51+B0E1BC1401EA5026897990CF09F9750268AF812E89DA551EC14B457836CD38E5+C07179A3EE0ABD3A85C693ACA829A5E492FD4F1BF12725544FBC81FAA2004784+DB367184315C68BEE9FBB1D68F91C9D0901BAD3BDA4FFFC203C232276A495EF1+B2B82F36FE36716733F0E993B19407744C067324BDD2D5641977B1A118DBB844+104397F963CA2E01B7155CB84BB642FC315C028FE4502335F761A9DDBEF7ADE1+ABE87D31AF848A5285BD8328ED3E8A2A608590DA11968AA8C0D8010329A9E172+AAC2C7D0061B14EDAD1142FEBD3DDC0ED20023CF06BB146B3F58A6A197DDA1CB+2533B236FAF2825E8DFE70B79A0938D79664C1D26B4412FD10C76729CB22392E+8976960ABED0A03D5FDDC7C5C2C6221BA1FA08020B88FD9AA0CE8B5FD26D58A6+79339A2AE6730746B8413B6E05361755FBF11FBFA4974CC1AF36136803DB8282+A7F5429327B875D0FD222835C7AB82049CBDA6AD1731F6D06AD2A20027765CF6+2F7E4BE9521465A7C3E968DBCF95F2C62EB3829CE6DFE845EE20E8EA89CA6C46+BA14E5A920D8E28A4008C210F747622AE31F5F9036C70FA52BFFF08A4BAB3D5E+A2EF6E8656F89058F4A67933AF30E9A16467D563B2782268E2568868F677650A+74F415289CBAC0DECDF828485066AC07C011623DE9643DDE39840B1A739B33ED+3EC705C13DFB191472987059E5017002D278168B5280FA2E26C6D51CA663B384+F5CFF4A6232F5F68E185231EEA239904319E180F91DA98A63B38E16E138D2DCB+CFEFA5F3E5AC6FE764A3A9F3EB622117662AFD26A124933CB1E04AAB53923AF5+D9DD972536C4904A1602040545A9AD4904D867C1D0AB907D733EDC19EC093391+3B0EE96E8578527FD3D1204A25982635CCA01A9B101A843F6C373AC4C8E39E39+BB13AE6A0EA170B59987488481D38806D429E902801F9CE25EEDEB6012CC9EBA+0736820F82C640CD8C7D852D9EFFE6F769D7FDE1DD628861FF628BC0BA8EF127+26F83D7FCE6ED8785DBCE502DD0571A76D88B7FAC1E2DB24DB97394937A1EA17+031078EE07D00B554B9C892C68B624D3900266E8850287243BE44F11F86E95DC+00E89C5C47F573C0A7F1CD0CCD26498334C7D37A3AF4457CA805446A74344597+8D8C3D25FBA2350A878E23DE65D49E9E5F819484DC1B85ED2BDFF923216C101F+D8F411C1443AD7BCF5E90FDD6BD29899C86EB3ECC82832FE75A59EB3FA696F26+96A450E2504A473123A8D24956ABEF5ADAF5B3BB57FFA5364214AC0E9E245CCF+431DFB8A7A5104BD97D5E5104CA9A05774D0FCA9EC0458BD7289794FF19FD00E+2D05086336902514F5CF8141307C037E5D2E30B62D1C8A5A7682BC941A5445D8+A17F5670554AD4AE24EB95524CEBF2599D5D00AEDEE2B5537F869A46BF093296+C77F86ED5658C3DD3AB9C25850624A53F6573A51C7AD9F43EB8320DFA31F7F58+E0FDFA9FF640DB5B55FB5C4E014A8C50E062F13D573C845231F98CDE7414BD44+0AD4CE9E00FB39BC93C3D1C8F5FEC652FC28AD9EF814CD964DEFC5813828B0A3+8AB0E0BE6E3CD60259B8A50F95CB02EB685DDE048D73DB0460985EB16DA749DE+3EE1625182EDC552F104E547D22E62501D9D4EABC09531E6457B7AB148FFBAC7+927318F8BE99EAE5AC9E6AE81081E236187C2D384A92494DE6BD1FDCC5A79413+609F865C6067EB60B83B1E0D49D2CABF88F252377787534037AEA74A842CF21A+5514F3A89A00EEA33793D63040EC2E1231C04026B8DFE67E0E0B460E3BC6E60F+71AB1C05F295F617829255BBBAD68D6D7E5AEE12DAD835A693A661AD9923BB65+C781B9085640D3A5317C312DD3C6159C15D8DAA3A592C9F4B4AB648B160E4B3B+D2E3DD475573570F5EE110AE5BCA3C499513061F202DB76ECBB5316F21F04195+4B9EFF754A628ECC2B68077CD6072C630CB99421BA3D0D1DA24CC09B8D42E8EC+B52EBAA0E16DE13F0F2E235292A0063ED390D9A8E685160134E931F924D150C3+B1E315CCC86F2AC29D02D0D98DEB83DFC7531128E0AB55B5F7D161A44DE01547+38DE065666440E46D94CC4AC21C42F362D222A5CEB4FE9FAC0892ABAA08F3A3A+B76A22CF73E343BADA5C89355A821C67A626C0FA6F8742178B9562543607FA64+8F9FC0971734B99E476E36E9127419F27469DD3BA6A1D82680155B46073D42A8+AAE4A6F8B0B2ED3A99469BCF9EBD004DB631F105D77CDF18A2EDA5801DE620C8+987AF2A7C5BAB3F09769CB0CCA5B1CFA6A01DC0EDDAF693D168F9CD580D7AD66+A2DE7D9CAFBA0562AB6D20C4F2D4F37A3B26398A1D5AD2F84F0E1339008A37D7+6973B67E1EDE40002AA5F65AFD81A00CA4343ACD98C94B6D69CFF950270DC1AB+3B2964A1A9472237596E8DC4F671A68F8B02EF2EF44976FF68DF0865B18F403D+6A88CDF4E0C8D41C64B9B1DEB72F0E9058E479B457EA8FCE8009D30DFEB19A02+D18CA44689E5D8C529CC5ED9063DF88E60ECE39B16BB1DC5670D0AFA76DB664A+C90B081062A258628F5357A01AE05B363D5D81799CE0AC2652496AB5216C1056+3A49E606C88B30FC6EB350824BA11FE289406AEDBF4C62820D54C94CBA008575+106A9BCECAE95597C49A47E1C246C8B27B4CC93D05762E135403EFAD5247AE25+596057F88DE71073AC59E264E67ECB6196341BF42F6A92DDF6A1BA784D483FB2+00D4FC4EE992EFDD30A722665611EE4087D88A7A9423D759727B90268FFFFC8A+BF3523FF5D8B54F9FCE7D0AB5895388AE6DAB3274490A171419CB47CB948D8C7+7BB61A5E26611266669E876014CF5E7D8ABF70FE346DC3AA2F87A5A98A661AE2+76DA21C9F9A9349026ED9120259C603792BAC63E2977EB565DD6D0E7D4CB4C3D+BC61D8B6D560E5E58BEDACEEE60BB5D5CBAC04F565F8CE28899E4C06E40077EB+4E0F823F825EE8F147F1DD8F2DE677AC52B808F5FACA0D88815AEAB79818DA60+E9790B5FBCCFBED22B5F4DBD13C98D61926AE1C115252A10027C54FF61C14244+10A8CBDD71DFB668987CA561673F0FBA9B9640A6944E1A8219771E7421871F86+48C179C7E3DD2F363FC59E1A2FAFC8A42A54741F3C944BC8300130DB184668C8+1F6CAE29798971200C268AF03DDE4CB8E7EB6E50573B38364EF349DD0E1793F6+5542315EC26D725C411CF0BD1D380BC46FFFB84D491561390995DB6FC7A12E13+CE1F7A4354D5F9751ABABE8050AD1C4F2E54198325E83EF66015C9C36D5F8A7C+053F69BBA12CB7C2F87C163D5DCB8504A38A81051BFC61838940DB72FED8D84F+263232BA13788614A8415BB4429EC2BCAF68D316DAB4A4005C3EA410B2D303F9+B78C8CE27789F98A957803AC3CE451DEB33774FD5CF0FC3385A1295348D54695+62348AC4F83FD5D16FA9A2037CB321340F1B0790AE7D0787F36EFCD3CE4312FD+1CA5F79C091C07EC16CF08F0C7421CC3631ECE60C2682863D6A74F5C21C8C2AD+BE3B0270DEC71599AC6873E43F60A073F21212338EF37A4657530FA463FBF84C+5A50E90F5E2404A88909B142184514BD856D98F2DB645694648C1E31B5F92162+311DE5A15FD713A042D34F287552D9B2A28FE4043D23D9256BD2AA4A00383CF0+81EF293BB351E5782FD2FFA68E02B3A1DB523F814F3A58B70BB19AAB1326DF6E+86054E44B2A5BCC20BD4D1D3E1F170303203F6538F88EDDBC340770FDC64101C+8C6312506511FA9D4C4874F31CA38050EC63104DDF2DCFA529C748B86945B605+7651F6206A07CE3B73CB0C20C8F8AF931B05B5914CA4FB0F32DDC7811FED6F4F+912B8E661B6C627416F0342E812345DCA03AF6736C1A20E7855BCED694805A77+575E7277262BE5E9FA7AF138CC25EA9D4C855CDB31FB2AE2CED95DC1E8B7126F+18D72E406A28198B2344BC7B5C3509AD9A10B288AF92017CE8384C887C7743E9+1EF8FD17CB568C1DEE838BF6EBB0101C8161CAABC7674DB1D69B96D07F2D61AD+558E63E86973A456FEFDDD9364D138C7733B15909D6CD64B05388CC8801FB16A+1259AD8892ECC26063D982BF256267091FEFEBB1FF1247C94FA6B6FDA59A9316+F21502D6129F0AA985FD26311A5519ECFF2920B483E6293BA5D9775882C16B91+B46DD900293EA02D171A7B8B7C045E1C6EB035472726A2637F837C455FD36FB8+FDEA70C5AA3CDA2CC5CFDCAD2DBE51CB3E42BA8F8DD68DD9F0DF4582A20527DA+D83320575BADB7ED4AEEE034E9C8A356B8EF3F4CA326DE375F6A337CE195919B+DB05890947E7A3E64FB2F9344805B68619DD9C262374A2BD61AE1F41572A311B+B8C346F31BFCF1EA40A05838AC99F0E51A6B95DDEEC992D6380DDCD9901338AD+88FCDE6AE055C7A4E2A0AC583272D97D4E9551DA2EE3BDD4A046B623EFF3EFD5+55B93021EC199B0E134433C2221FF65E4CCAC45DE1634C04CFAA006974F9F77E+37D43C7253AD5B10B96DD6A49A9492F626F80099155AC27B9202B471CF268045+948FABDF3EB2503ACDBEDA3CBE70F521A9692EFAAC8C3C7361E1B7CF7D59D66D+6121561666A712020577E71AE9839708F1E853467AD613D1D9D1DCEFAED8187B+E16368155300EE8E74463C696947C25EC11239391FA38082491434D8E734DD23+54AD72797FBC50C03D22CC00A754C9BB16DE6495C467BBDE3E377A081D2DFFFC+896343BF47DF702109201346FCBD29F3E9F2705CC203D2E02350954B9300546A+7377F3E924BC16310EEE7AE7826C21A68A9A54F310146C02A80FA9FCA69DC561+14080DEFC5B76B3E30F90221CFCCFE98C85F9EDC6AC29BE50C16CCC90D54FA5E+0E7C1BF9154AFBAA2D6836ADD3447C37A97E67EE6C78FE1C4EBA7AE450343519+A02F82AA6D4BA73BB0D5FF342870621858F2BDF8CAA449ECC7195800DD6D3F7E+FFF12D2D99054F43AE0CD8BE01C6EADC461EB0546D1952EF933345348D800BAC+86577AFF825CE8A7D26AB03EA3F1764C8A6CF3C6E83E5A9C93822305069DC428+EC2FE3BEBF4C9A9A7D7F0973502049F8CF823533C28F22864FE14ADB7E51CFD3+344ECD3391D40D202C79B1C02586C6DEE2CD642FA562FB1A570DE3358EC3A798+E8059FE99278191DE7BFB1FEF15E32ADD3F58B1B9BFB49E6F07070582EDA312F+32C59F98453C1C4FF3843FC379D5D9E64647C39C11D3B33DDEF029BE2CDF5BE2+51C76512562EA96FA8502EA3215F9D06F0EBADAE9430590DFD060E366FF65914+C41D63CC280C0F50FDCC6022C3A5301C2361C877CB993A33C1D34B78B8E686BD+AF66CFC6B809EAAA3D4F43BF6463F72D6A06011C4C9DDCDDCA5A022DB7792670+025FA4D634C18611F0BDD8B75B4946DBDAC26936E44E6629CD64B3E419F51279+A268CF017B5AC01603CDC978C2B350BCBB7B87BB71B9FA32DE2578D5AFF61E8E+1AE3C214AB870DD2476B81CBDD04093D74950362865C861E5FC24488B83AB6AB+E5EDD2D72E289002923AA5621060B391DA17B653BE113AC4E897A127D18F9741+66D355933650EC8C920E6AA98FAC405620041D0EFF16CF1EF50AB6FB250BF68C+F392B26301CACFCA767C62EBE8609F32092E4E02838975818D5489F13B4A2F65+8522E97CF8D972480E09F13E06ADE2C21B893763A42AE1BFD8423D4BCF859363+2557CD2E1E1DE5476546BDC5C37B8FD31ADE6330FBFFEE9DEEC8DAF17F328F98+1DA08672CA11EE6A9A998D48A83B8C0A199F17AF1EED132BD96FFD1E964F9FC6+80262000ADC3F4713EC483B5C375C70DE11208455EB875CDAFEFB99308C4F64D+FCDFA54950AEBDB4B92CAFF256896AADD51EECF9AAEFC6AE5394031FA5DCD7D8+C1865A0580D4F2A380F02B1EFD7819+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMSY10+%!PS-AdobeFont-1.0: CMSY10 003.002+%%Title: CMSY10+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup+/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMSY10 def+/FontBBox {-29 -960 1116 775 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def+/FullName (CMSY10) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle -14.04 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 13 /circlecopyrt put+dup 102 /braceleft put+dup 103 /braceright put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4+3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021+91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2+E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A+11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97+C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857+D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20+B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3+93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F+10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D+7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF+B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B+491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB+F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6+019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6+915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36+356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0+5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D+9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64+3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1+FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252+720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5+D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726+BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5+7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377+DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56+AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7+A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E+0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743+AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18+CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023+0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD+5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B+5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F+E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB+54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809+E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F+A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906+4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378+4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4+038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4+B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308+5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC+B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837+A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD+2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D+CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246+455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE+FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03+16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C+16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F+483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352+67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2+3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472+1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770+93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA+051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B+8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4+8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436+6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0+06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7+84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0+D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6+DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB+0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD+8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC+C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34+754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406+1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05+CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523+1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F+153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02+905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718+617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2+8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A+98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278+53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B+888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D+052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A+CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501+A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F+07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56+B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672+10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2+CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D+3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12+D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F+849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16+648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE+84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA+2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD+2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204+9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0+B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B+D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7+135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE+EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939+C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782+7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0+4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2+9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171+050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486+3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271+C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8+843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342+CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B+B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50+3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175+19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946+FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0+17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6+8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B+CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003+F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194+1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E+4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194+2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929+9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593+E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB+8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB+BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027+04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5+C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404+ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C+4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909+84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6+C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6+09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777+D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503+56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF+035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB+FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333+CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663+B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A+F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD+CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B+0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C+B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9+33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6+4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D+F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E+2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A+CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5+88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37+17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0+55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A+A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50+2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3+406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8+AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B+60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388+C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6+5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50+822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E+94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02+D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA+343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE+894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5+DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327+DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F+8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324+A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA+DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270+E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947+DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC+4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653+5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1+02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8+88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70EB02A+60651FC2E263002D3986B7B20CC2AA08330B9FC2E26765CD52266969A86EE30E+71E0B41B6C1C6DA423D3A7E1553D2FAF26EF40DC183099322D362E4965695C52+9FC3E5BD7ABD743CDCB717DB10372A722A39CE53FABB454EADE2179C4CBFC016+A8E893C28EF549CA1692C8D8ADFC471DCCDE266FB4E97A1F3035801F3F034D44+A853F0B32C3E5AB84D5618B20A2368E6CCF24E6635AC36F5912FDE664856D62E+28396E049FB828C803F08478AD1D53005BCC8C96CAC0BAFA0C37093E27A61AD3+B7DB9F1AED96E55C64E90FB3AFE8F3E68495DDCC81DFE86394BA1BA25CCB8E78+22815B4095C3E10FC50B9885587E5D3646CD357CD3CA8346B7450CD849D7A969+BDE4DFC19E64787524C76760F1C04C710020981A4B759E5B4A1CBF9AD949BECA+38040F06521EB43DCFCC85B359BA721BB434D5E41F819DBD4BEA977EE0B16D7C+2500E3DAA62B3F285F203A1BC990D2481F99794863A4782893E59A212564BBF8+60679F64414E04AC0704EA46EAC5272021175FC475BAF83145B5789526B8CAC1+02A9ED5BEBE99061FC74629D8B154BD826EB7179991324FFBBB4FD0D2604039C+9D128A1441AC50613EDCE0D78D1A21B7D39409D576D9E731FEB665399798F966+03BB065D0E6611CBC38C8433A74499E8ADFF496C5E1DDC01BE8DCD418982EBCE+A66709F8EE6EF27AB330974CD4B59E8590DE0B2C5ACC629B45B0B6801C1C1F2A+09CCE1580820D677B6BFFD27AB6D385552B8F2EB89052F34873B24A8C31715AA+3E4C1F9D7D47E11D95CFBD8FE874475B3A1F86F0A70B37C9FFEFF29E1272102C+F1A5D01E13F6FEAF9981B09DFBE6136E6017E912234F5735A39566CD7D2E0D77+E0E0A6B48D53B51DDE3F356B6B6FA662BAA0B8825AA0149C58D470B5B773C9E1+FE8451412AD33AE3C2CC1D699FA4A7D3E72586AE2CC629EAF6FC15BDAADE84FA+1841FFDC256D639799ADF9656D790312047E7E932A34E7BFFAF32B7BDEBFC480+7CE742F7EBBC90EFDD07A3FF1CEC6AA85D24098E76734B7642E75877EB840769+2C90530D9607AB2719FFCF9C3C2B7DF61467E509C3A7E631C33F1FD4ABDA3FDC+C27D43128892CB5D14A32F+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMBX10+%!PS-AdobeFont-1.0: CMBX10 003.002+%%Title: CMBX10+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX10.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMBX10 known{/CMBX10 findfont dup/UniqueID known{dup+/UniqueID get 5000768 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMBX10 def+/FontBBox {-56 -250 1164 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX10.) readonly def+/FullName (CMBX10) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Bold) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 12 /fi put+dup 43 /plus put+dup 45 /hyphen put+dup 65 /A put+dup 66 /B put+dup 67 /C put+dup 68 /D put+dup 69 /E put+dup 70 /F put+dup 71 /G put+dup 72 /H put+dup 73 /I put+dup 76 /L put+dup 77 /M put+dup 78 /N put+dup 80 /P put+dup 82 /R put+dup 83 /S put+dup 84 /T put+dup 85 /U put+dup 87 /W put+dup 88 /X put+dup 89 /Y put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 119 /w put+dup 120 /x put+dup 121 /y put+dup 122 /z put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43B233BABF23DF8DB+B6C2BD2F04672F9A3B7FE430263E962F16A948319C51B8ADE6E8A80D3D88023A+6DEA4D271676C2C8615C4A0EA7DC8F6601610F398673A4D4B905F49EA868FEF6+39BE073001A36DEA6C08ED51452F062B971740019692E221F4455EDE46AF24B8+407A98B791F6AD525C72C09776247E194043281D04FE1CD1D8AD8DCEEC3045B4+F95B3B41CD3300768D8A049815348BD7AC1004F5500817E3A267D694AE108BAF+285B288FC5F28A03E9D34FE5D9B2F9A9BB26ADE66B1CF8EB5BE606E83D213C33+DE083C20D636EF780E761944FCE3B8A950B1E6E7568F33B557C6D59E0CEAF185+53E609A4F58AC4D5269116F958C4D115C44B5A6DABAB79D3BB6E60BDFCECE108+74CFBE258779F32C80CD7D9A7CEBA50A0966BD9961F71560119668C4A0C30A5D+ED91ACB30940502B24F33906D6E0F16F81DA87EB6D7FC8B7853BE388C40D75C2+2CA8F94713AAA1561F5321CE97997CB4AF0E37F44E25B0F73CF4986422B1CD89+8F861CA623004ADB1C28268D7F8C484AA10C9519B6AEADC95AFAA3304D60E85D+718B2F67D2B734095E5A92C90785252C98067DC05137BE735220BBCB7C341D61+C4B98BFB1EAF883D38D7A93195A059EF82B42027F23B6CD633231D704B891A9B+03D11A646F13898F20321D7BC150C63FD6DC6BF9CAFD8DA759E95384B729A0B2+767B9F3E55C682F7A248BC1184F7D294CFFAE0B246DFCC8F215625DDD4F49F09+FA8D41CBF4A06152FEB152C61539ADF7E70A4D23AF8267D25CE3B12D39D62377+547E2528D18DC4134FA3BE0437EE0B3509223D71F06D44C6227D62BD01AC0A2A+3EDA975E894371C07CA1027B102549A7D552FFD25ED2DCC68E29E71BBAB43C62+57B0BFC6A953ABC2EF703F35D112F6B5460018CDCEAD17F149DBE5B52C2B9E10+9818EA6D97C8AC884F6841C9B600A7D868F59C1D80E98DE0741D06D69858EC84+1B33C6C9938B7E8A6FF6C12AD456EECBD3EBAF0D7331536B9F6422019FAFFFA4+822E79D6D89D6366DA636CB708894FEF904F366E295F1CB808E78E883913C4FB+1631248ED6A7CF1095C0C61C4F05E4B9DFC47533A5FD24540AD71A0E2907B98B+28085EB88ABFC3478C9644594C7DC4244ED5A7C1CA8D960B65497D56D174645A+B88F12C2CF0A807DA314017984CF3C4FB7F47392A651EB9CFA961B28E2989893+9FC4D97171BD5338673F5D1CE2C3C08D48A1B77769F01D5058236C655FFD864B+80E28F900191D4EB349AA5E400A7B0A0FCA0F3E79D7A7C69775BF754329397B7+D18B20B2683CBC4A19729BA878B3C17EBA0A7E9EE297A5B67E915CAD92C8F356+582B8299DE6A58E73408F525F7EA895C48A8F0D626A06A96A50348DFBE479D89+4272576FBB0CD332193D28A8F11503BAE98F8E1D73CF5BCADF23DCD4E6586ABB+323568F5A34E359661074D50CD8D9DF27191FCE24F10225A5D721EFDE2547E1D+CA998077D2340B1A4ADFFF570AA677CDF3305D5E3A394BB1626EB35074D4EEAC+2F037CA2EA389F7683FD17A8E07C12B4CB3BA8C249C9B12D297C618009F76717+0EBF5F2DD39A6BDA10A2E5A811D4E190660F5FDDBA29201B6F8042620397AB2C+E59267A7247B0463891831A6F40582BC3F614E5167B646A8F53D8A31717DD9A1+9034034E705BA7884F0E0738307AF69D3517147C282747F2788462FDC4336A4F+9CD222908401A25F0A1F7B13B8DAE622DC965AD0BE62497420B70C04AF432237+E0FDD043456187658ED93B0F9822A3998511DF05E59CC85B7B9992CA0CE3B814+9723BAE70D2631F32B4BF93511F67179FFAD2075E1591CA5907A4C67701B56CF+A5E5B02EB4A842BA1F18D6864E5677359C2FB4AF5BCBABAFB053F230CC129B45+8D15413F736EB07C571521C7DE2A13F2AC1C133D491B0A607197BE9AA1231D96+BED7968788246B2E4D2BD330F802810F5BDA3760FEA5210CFC6F54748FB1D921+5CC3624BBA5B8962AA7D94159651589540B17CF7A785F297264F9C1006D36928+6E2756D3B623A6087E4B106FBA76255903C624C07E18A1AF4E185A533C640711+86BB477A906ADD36EB6C8F4A12BC2F01B2B98412E4E105977640930CD998D990+0254A1E5E9843B7A8ADE0AF6D5871E6D3D666465AE69813A2E26333213FF6713+6F08D55A90C079A56E1B9AC655F720FC22B5AD8550FFF26DA7B0C5A0B60DDB05+64E8FAF684F3A455BA9BC9278043D79537D201D520E38750335A4C8FEA887377+879331B68DAD6B253F4FF9981D0F9B9550ED5179B15EEEB00E560A3DB6E5973B+63403E4E2F40A3D0B937246E9652000B917B1369741E0F913C14C2D2D6D1FCBE+2CEC4422177C58523715BD070002EC2E13D383A1DC8C84228862B6C5D3B65667+9FA97E175239BB7FE7E37E14B96DD7960A8AD49DF428CFC13B5D3CC22E245317+47B5244DA97F1DF954CED2D552477237CB23D037C0DE728E26C82738954EEA1F+F34FE497DA005AF03746DD2ACF77F6E6F2C224862A1D18AF6F7A5DAF34564387+9E01DBFF49F8621C058C04C2B3F4F3033FF3E8A977B2CD6B2A3CA4A6C569B19F+C5AC457AE9AF334DA66A730960C7565E93A2D373C0E3DE14646FFDA05DF4C6EB+6D4CA8ACCA3C3115764F77B842581760BFB9E5C0EBE55308B0577A8F4D968CE2+BA3361D79378D451DD150C34D7E901397AC63B33BD7DB13C50D678F5DE999238+4B4EA15BD449C46F262D931478F5685CDEEC4C4201FC3EFA607AFB8F27AF6751+125DE42D2FE2D31DE769B7E7FD8CC8C5D91343B537139A822A5BC4160BB5314E+37501F65B4FC35475FE9E03E34CBF6795AE86CE409500BD0799DE39FA69978B6+EC74D2197C03632D3F59B85F404DB31240968FA75059B2581B101E028CDECC2E+7E5E25DFA106E9B8ADB81E82BE9ED3BAA9D03EEB22B7B67AB1262DF6AF5F5EFD+A5627EFEB84F3A5F92EF2557EDA2843D7D18C592635623CEAB14CC3620F33986+410D6DBAEF9F86E4E6682054540E2B01D8FF2161F10E66851A188BC15BD6666E+8D3F21709F196A31EE676D28A2D12639CC2E7020A52910F052E61A0710DF09B0+064171D05611451BD24FAD64716F141E1C41D3218A8115A3D73CA041D02B46D9+28C3D07DF0FB668E8E91409C8D0A26A65CD737C075E026AC0A974C9BE658199B+3B9D82ED95E4646977D8F60717DA4C68767DBD7E8320D5AA1D5DEB2E6B009759+8282F27D64F1F904830AAB501CDA4D9233FC2F12F77F0FBCC46E6B729C71F6D5+E6F3EA02EC35D1048394F4EF2177FC5EB726DE5EF2DE7997166B8BE5B5105D08+EAAC3481FC612665CA112D3F889A0E5B7843EFFCEFACA24A01B6AC2B7DDE02F4+A9295AA2409A3756BAAB44608DACBB56840060037869455BEBA46F10AFC68DD0+0563843DF111C6D34911CF13AA6023E5E899060B5EC60D0F78FDEF3E981151A9+24903EB13ED1A67EA1977449716D1A5A7EDE1A2E9465C9C2B20A58AF02D9F373+73E627CBF296B3A6A4670C39F3B5EA30D76F0362C81020A1777F0ADDBC6B52F7+213FEE1718214087837049CF2AF00407639657428B9E8B532F68B631611A3501+3D9DCA38090E227BD0D6D0FB4130EE866DB6B195C873AFD18DDB3B1E40F740C6+B3B375ADCBBF628A07A5FACED539FEDA3379D3B60216C2EA6629BE2F65199D82+FE3AE627D7C67270F3497AE75F7A9514968B5950E2D63C38DA240AF4E6CAE88E+E25167D179108679876E7C80C85FE1D2BCC2EC9B88BE76A8F5736E8E6B3A9CF9+42E58A4ECB7914865E67C1468CF66D658206830B9380FE346DC2DC4BB56A92CE+4B5E4EA9036C177869315A2D9E6CFE97E3BFD7CBE0747D40CE5E8A3A0988576B+8AD2B1E4314C0D8A0CBCA08844A49F7E054D31BA7543730C0A7390BC4A288D10+CE29E389A4791305D3AC1BB6F77C805F1032787306F78FF76A20A9E629899F6D+13356768D33D7B9E294E8CD50CBFB9CA02A193922BD9B4372C912D1689B6644D+52CAA30F7421E8114D077288119AD9514EF21E5B9989CCE2ABA0C12549FDF493+FFB39736AC9EB72DAF45E4EA6057527FA9F5AA0A1A3F03C12F7482E465C766D3+760DA7714D56C91BDAED507A5572BEB51A895F8DD3BD5AAB042650154FC7E4E5+5EEA6194DF73AC5EE2CBD4EE26E29B1D2D0C458B4850BFE842DDF2EBB4E2A25D+C6A11CA2D8F346E2B736DF88A3D57BC0380B52396A6C039212699F5D3342EB58+0C3DD5D01D5078479BD9FD10C07925556C0AB0F03606F33796BA72074549EDA6+E33644F62CA35207D7421D2727AD8419AD1772789D33405FCDDC9286BC34C974+A52297F5BBD2E541E8BB473F733AE5097BBC9D5FACF18DE4173B4711E28B23ED+16E0A6746A60F6FF903026A3900169EDA87D98396E762C2EC963D89197B8CD0C+25244806BE7CBF46BE60A8F9171731EADFC969C28679B025371E5572E52A0EF8+B3FD9B4638D03E20BFDEC9345E70B8166D38846DCA68E0D0B4B53629C7E7620B+45E0A610BCD07FEF8814CF915CFB11119F42407D1C6DC1E6353451D40A382C2E+C74DF2A4889ED5A3495C3E973565F7178CA190D22C9693C10EB12C1E7A8679CE+4AFECFC964CC98111BA4ED2BA9B10292A71D5B11870EB08EB483922CE8628A06+05E7CF6DF93E112B60EF888AA8DB52994EC33DC7277D7B7A4F913AD30257261A+D6EE80476A9A8D316D190BE6CE0046CBBCED365AB305495284FA921BE0638E00+63DB2AA4C5F163340BCCD1061B469504DEE350B82FBE1689C1B65D095405614B+35997D6F0DACA7190D64ABA351705B17B23FE2EE5996FCD607F49F54392463EC+DD5B944A4B82FA2BE3E75E2946D483060DF99277340B0AB65A2042AD088E2B75+BBDAB869D1940F64B50D25078519D18748AD64AC5615EFAAF4F3105B0111AD40+70EE173ABE6A4ACE486B4E5999158A4377FDA6922FAA6E9305F48570D14BC81F+BFF4C663E1EA9D1E050534F9315A663C4C5DA52CB02EA6408AA473C32CB0CD71+169BB43C0508A842F400240F0063243B4C459A1FCB3312C41C32ED0EE87F591A+BCB6D5D3830AE4645CB4D40336DB4AB6540B52E70E1EA415CC6D886827EBC5B3+EC35CC5C136243B0C20B3C603B648B132B99D05F9B48263ACFA59A856BE74441+FECF5C6D1FE9D1F4F9942F460961901E16017144C37E83C6822177B2A6C47ECC+6C47A1104460665E5BCFCF08874008302750EB991CD98D0D8D22B921F90B99B9+05EE7C39F2BC2A7798157503743C9F2F267BDBE2E8A4CDA7317F81DBF8962E1C+EC02822CC7F770FD4D08D335904375BF0C6DAA0510771627ECB9EE69C0F47D30+69A87052989DF80D9F4F19F75B070C3689AB3BE0966453F9D56CED6C1745B50D+813AE6D7E44B73423AB3778ABE4CD2C4DF40E14C5A426043F7057E2DFA2DAA70+EA6723F1C7967FECB1E7C1C0CA283334163FBE31C32254490170C3513580A552+19A5DD75E6C4ADCB12D33517A03318A6BBC7E4214266E125140D8C40F78A0340+1F95D9FBEC4DCC55B71E89375AA94B0D55646F6C069561480407D0A3AC127024+D7D1E9ED6B599A2A8766B8792F46D35508B66F302D289405B101A3C6BADA680D+8C56E2A00B766A4CB155446F862FCF17537A2BE85418E20CD77C4F1F69F70BC6+17BB5DA8FAA876D0E8BABE273A19C04A8697B3E3CF4725E2C77C8761A9243F24+96F8AE96399996001A57FD75106745AB4646FB9C6421F1D4EBF3BE533BD11AE8+14BFBD6D308376B26E08E4ADA490DDCCA94BE8240403D5EB0FE3549061DFB668+4105B4FE77189546619B6BCF3F9723E278E98D50A17DB8A4C46744FA21760635+5B332689316BD17C966D466AE737FE3ED7ABC443ADD88D4823A10BC9747ABDEE+027515AC353A420523F85298029475D8BFD83A2CD00C02CA07974BAA581D2215+A850E6E4C0A5E17E0EDF91C63FAC18C70093F40FEEAF0350B403E2806F4EAE96+BF616A805616EE55C4657418C26CAF54187A6684821B86A76F15088AC4D5B551+66C3CA8DC61E9810858D1204F899C7E3A1754F483134609F6EEE6364B1CC04FD+92C86EF194FA3249601AD722D75D1D395CD15A93C768EC60A486AE885683364F+93DA00A865C1035F913FDA69E7D9A0422880FB81EC23C00427F07A5EA3CCB613+83C859958AC53FAEA26A6BB39ABA068863CCE3D447720BC31A5136E08EE58963+093AF587A72112D55853A1048A2B1695DB2D7F13CC924F2F0902071260C33ED6+30893A04577C0ACF0681C0FEC23E5404F844A83BB5A2F8DE1F0792196139993C+1152094BC36A6AE5BAB4B8281E506F485F0BAEEBBE71E174B7CED1E52A8242F9+DBDF3E0FBA296538D964EB5B7A4E23B1BB0F59872C9D4FE8498203E3AC08B71E+D2B965AA6CD5D20DA6C83FDC86F4A5D68A58A72C5BB9BFE9BC755C56B24025CE+6F24443D3CF32CD711D3D94C7C1DC275DDAE3341D840090F97CB6CAEF274C94F+9F3BD3AAB3F98BA8A7B5CE5E48D1462DAAB37BEB1C10B410E8D33FA42D898183+BD4F807112D78AA94509E33C179BF7C9E82E55AA7D09E128A0DA06A330CF4AF8+5DC861498CE029CE8C1BD15C923A708F2E7AF98E4F7B34212A0CB417553C86EB+6DD46B0466F1A21D29FC5111226794ECFCA5DD4240C0B8D106CCD7EA6F03E133+BB7733F055D6FFA04EF5C6F872B4FDA3E42F0F036C4825543D75682ACF71B548+DED160ACD05625274799D0AE201305DA526E01A3D2A719B1B15C05CC09467F3A+5627860C0F36C503EE392E1786620F3F2287AFE56634E03566B9B1F537FD92A2+913166228791871A8F8CBA1A1DA634E8224058052A10FE1E67CBD3FD21A6C07E+243CBF58BDC78577847664EEA5225EB8D6679AB17C563848A9D4D58995EA3609+51C1443B752A070D9872FE1643F0677019235AC25DC2B29169D38308F2170A1A+A0FDCC59E6602197D2815B914041FFC7106DAAAF30CD97400C6D0826A40385A4+C8520119A065CF32CF2FC5FBD8DFD29222528A7F96FDA533145846B3428F8239+E50277C366418D713F84B12A5FD4F904DC13DB1844A391FDAEB97643A6FD2945+942FD4FC5A4A35E184F23304B8B4D93D0C37EFCC4E106D4FCD0DA3E5D2117589+3FFC2BD1D121026562C55C455C3585050B9460891B006F62D9D9B66695C3D348+A467C14C0256FA9621CB056E7CD389505194FF463BCC4010897F9A690EA87D9D+BB3ED4C174FBADB8A4744C6E4A44D773967FD703EC37672F9993DC48BCC8A060+6CEFE8E6B8F10886E15BA0466AF410B90DF0020FAB88BE493606B6A734EA85BB+926950EB10D2F2CFDBD182B0F133809612CCF6ACCAD049C8005A42FAF78368B9+E7684F98DE421BE0A3BC0FAEE024A7BE67E15C8394F17FE84DFD8156C2A3E94D+08259E15CC657E8CE3088395BF6B5F825764E141AE15EBD186DC049261623D26+8636705E06C6E4A1F8ACAEA59F91B042DF5DB9C2AB986A784384706A43E5F18E+42C29CC1CA86D4F247B3BBBC89F3633EE074DCA4AC15B1E33EE4822812A62E88+C32B0AA57249980EE17AFC1346074800FA529445D18649A0475246A25CF325A0+BDA06AAF392FD455218B13D9ED577D51A9500B9FB7860716A8E2FB3A8C4BE3B3+6656C6A5653AEF00184020ACA0BCCBF48BE3BF91E11C8658686C89848E714E6D+DC158DCD1C1BC03B83FF94C60B1DC71CE8A86B46DBE661C9F8F4677F8A2C7CF1+E41A91EBDA2304735147BE66CDFF2673F09D408297302124C127F0B35690CAE9+CE1679120CC4D582FB69550AD34A047DDFCD9D411724554CCED753DB52D6AA7B+22B0C55EB698ADDBB0F8ED15C971AEF113C74B9E25DA29199237B98DA4023665+C2A63A837E4CAB38F8DF37DBAB5DC80C0AB25B56BCA5D899F1575E61ADF75676+F48EE26C054AD9A75FD88A3E17498AC26FD4DC8000A125D6DD423540B8A98779+B28CE97C9CAFAC45693FF43249E4B559E7F19FB349F94B60AAAAF05B5FBF244E+982B4B51D997DA5811CD43E1917DA885DD96133A5CE1A290DBBFD88AF285A879+D3136C41C839FD2276760A7B4F21F4026AADCDAB3F113FCCCA9588C7FB72643E+AB8F6D8AEAD1DC3DCA6E436B3DF24E7DC6AD37137B49327871EA80F3B8AEE932+D20D9A5B4779DFFAD7B3E5D447023D6433575F8F5AF589D7E094DA3786555D0C+046A427ADF128E00AC7B458D5A131A130D6F49A7ABF47833791F172D69FE6393+EAE0E90E7FF7BC2333D4E0215D5201E4B209591782F8A664335F67B9DDE36DBA+793EC77E5EB405862D14EAB6A99218B3F66F11EA2F345629C402BD8FD9CA0AC8+FB5A2E119DAA9F80083C9BC54F4586C44320993CB5D9CBDC8F8522001F82A16C+E307F175B794F4426E5D273581A6D2844444D82093FB03482B270D693391DEA7+CB26D4A418E48A2989167B7DCE251F0D53D5C9B29D359A568FEDB965DF31CBF3+900392FE739A2B43BFA2363CA74FA72668FC761D1A17B9C0B56D6172499CDDCC+90EA538A5526FD5AFF81D04BFEA703E37185A14FE17F1D42B924A7799A82D7EB+BA2E4FCA1CB15E82286A1A7FAC8FB6B47C80B4555FE3406F3EE8E6192E8598D1+3746B031AB6DB7538DDFCE97D53816923D1A9357316971D85CB36EEBD34EB348+1CB198B553DFFF535A7E5C6F41AA7D14736CF32569B567A4F965AA2AFB566969+6B08202B034852C673ECC2D54412312CCCD8E06297A576398B0ACAA04C99BF39+542F529CD5EC1517FAEA5DD8FE805F33EF3FC77FB86711B33EA2D57539AF4AA1+4612F04C54D59077B880811B932DC90880BCB4BD955057E2C94BD8F6B16BBF08+1CA012094938952793C03F6195A204957D175AD27EB505D8299B2AAA7A05FCEF+74AADC754D33163A4DE7C21219B9438692C501C75C62BA84B70334512ED24A79+EF60984DBB147C7E2FC1F46751480BFA1B9D92C2F5E299E0C0F7F1D0C83ECE88+8457C900E82C413238956C3EDD05BE74CC57E6AD93A6A8549ADEEA0BC8297F98+1236E31F14BC8FA2BC3BAAD162DEA2677D434511B89E6E77D53634C137AEEA0E+31C0C28BE8DF93C9D6A98B4F18B9F1E5A32E3049D12888FF26D3263B0B203FA2+CCF709DD6ED93D942C76C23D7CFA829F86A43017855E8FEF8DFE7EAA1EDA9BDF+B217060FF2853B284FF26E9261842A53247A6E4367AA082239E89FD6335E250C+9BDF6F20EBBB98F64A80C56DF1515BE3D4EB82BFC8CED66778364FF72B11E68C+E398BC7758D3028A2F967DA6C9A02428CB0642BBA33B2663D564438C34300690+11AD4C5F22986E202F7D8F674194BF85B63D9F4AC98833530751741AE495DB23+31C66D9860B6D4FA7E3B50F2360BA61D28475F515B0DC2D9C0BAFC35EC11D114+BFC525A32DCF539F982610460B5021BDBDD328BFD52FFB7F1EC0F76C6CF955C6+F90995E189D15A4F8B98D65BA7B1F23C30957FB0CA9444AAAE42D0F64A7062FF+A13BF8B879A425CED3C4599517AEBCE70633BBE737316430371E59148D4C3ED2+C53AB16F0399298B697621A806390A311B1A71CC3A776DD2AF20BD41F2F3494B+8EFDE6E198E7EDD8922C0903A1F9CF9374A4F388507EB145F12764AA52123DE0+F0B59E07E10B48511787DC38DEB2182D7A5B4CCD38D00E5BA91E6EF714874953+C2AA7A52A5B980F5DCF0BE3E4AA9BF2C9214D98470A628A6ED41D5F9A2155FE2+EF0184136291D57736A445C9AAD4ACF460F9F5976AF1638D3A5B662ABBC1AF75+AF137953153675A67447530210EBD8E77BD4B7FAEDF59DE6A3987E23B73F27F8+EBBFBF56D29983A010CEC2F5774F9FB61730FAF8FCE0CE0D07E0634D699E6CA9+FE7A24C82354BD6DEA20D1FD3669CF6024064AE4C8747BD12E63220BA0BD3E92+FA6FF61693FAF103AA4EAC4BA8CCBE9AD17F3DED7B4FEB9D7BB63A48A621D2ED+53A9B2D2762E12AC840384BE8C4E2F517F73DF5C05A365F84BC9F709ECCCFA83+3F5C085C72B8B344907F96682EDD0ECA3212B688B37BAF7CA9AC48FD99EC7E50+4189315DE019E54315BB1DB81B7DDEBE2E6458A6037A7399E7265C29BED1251E+4EE61363C4C5CFEAB04EE70247FA3B66EC923F5FEBA253AA925DC78B34759A33+26625D4C1CD5D8613BBE264ED35E4E93AF550285DA9118BC2F0A2E8446ED207D+08F0828FD220BD8EA9E5936C29BC51B4C9DA13D860842BAEC5EB5C217FC685C0+6C5AE447C99552A4486B7166B269B174B9FE9BB5FE94379B638B816ECEED9135+460CA3496B85B485CA50E4C393AEFBBADF76D963F8E6C30F5252EE534260FFC0+AD445193BD17DCBE6DCE622EBFF358E63D1F8040E0FD86F68B4D7D2873F40D5F+F894AAA6E92116173C3E69F47405BD9527C8FBE2645458F781186D6E94D511FF+42CABF259C93AC44BED085D8CD1F92837B1EDAC16FDCD6EBA91AD150F70634FD+5DBF2B31C9A7D09B3C16B3DECCC5220B66D81B7105197AA0700E58373A6D1C2D+2652933D4F316B75C0D969D8C9936A649D9ACE33D0CF4AB54622B4E26EC40B15+A85645C632878C6995D693D287C2B543AF748FA8272E014BE082B127514447AC+D25875CC61B31891DE0DCDDF2638DD9F84EEF820A7ABA051E8F097B3E33D1E18+0BCB0A7E259ABFF386E03D9C1C9BA3F119A8D3E1CA21561EF563A2AE7E8DAACF+E2D941872F7334888DE2D38FD3E657EE40AAC0B04A8951CDCAF05AB723A1B731+A46A106712F636C95B9F8A2E2BB23E49D3F25D01CCB378FEAA8C34C18B2E7D39+EBA812C50D0D0A0C991BCE70D065293604EB6D97D10F6BE07EC968FFEBF63FE5+3B7E84F029B39FD107D9C9E5D7D4CE328AD81BFB6816522DCBE2B3AAC2D8D4E1+A5FE352CCEFF7F5B941C7D4C1A696DFC65727EA6FE093E393C8E404116F9F956+9C54FD5182E3993962F613403AAC955CA584ECA2353693BBFEB9A51236038D44+DC374F8EC24ED3A140FF89C2E49BDC1340D043224B3CD5900ACBB2D403C90458+CE63FE51E3FC0865957D33A75FD9A1DBC0C86D9C66ED01B85534A1E39BD5C20D+E216B337469F07C5FB4B57406E6926843DB15DEF69E93C9B890AA485320DE8C8+C2E2FD57407BBADF96ADDAC2D538C2E44BF94A53FDFF00E2239EC17731B9C9A0+5E1485942FC1C87A83F6F4B292812828EA6CF4E65822A4732560D04E54A99A55+D8DE6C754A61C5905BCF2ADFF0F69FF580521564AAAEB4B0BE5CE51D102BC0EC+8B0E3E69D117E582A4709DBC3A4A5914E16F20DEB6E28405DA733CACBCF25D59+2ADB01BF6DD128E980A062580B9FA11EC644485D8916D491301D6F8F9E8864D2+E7440A64DAC118A3632616A3F269B9FDDD2628E665A584D67267CFBDD00A51A9+D83D24ACB0F311FA43AE58247E52004AE4FC26836CE183D43B274DFE4DC993A9+AF084A8D82397802D8108557683637503E5FC2A1F6080AF29BD2F3F66E6A1AA8+CAAEC5B6D343F4297965AE27EE9D7B13E5A29B8E462B56AAD67A71B8F33784AC+9A0E780A3D973C2BDBA57DA671A26AEA89905AFB820F4CA643372D792E3E2057+2AAAB15FEF7E93EEDE7BC8D8119F67CFF024871D9A0BD570497A44877D8EF161+96A2E8724F412FB237A855AD5F614975AA4333ACBF71A3ADABDEC9E54E01EDC4+D5D9AEDB47F575272387FEE543EC089718FA99277CF707AD1DD54106CFC76085+BE41DAF0B9B129B5AAE809184212E6399850119A462F11F82F3705C65C2F58DC+AE4B175BA73B1A621011E8D21770AE30DC858E3FDC9D7F0C9CEB02E8AE3341FD+75D47A591287B43EA286B39E997627017452D1D8876177637B09575E6CBAA597+53046BA5AE14B8A50390AC0BC7AA73FC0CB9765C556D0F75926AC4011E2A0703+130515A28DBFE7F96811271460A68F0EF3E5C12217F3184562A671A9F6F0C6E8+A72261EFF323D8F6FB97EE4CE0EC80D4AB5A3A4D2694A122109C8CE65687FAC5+0DE839DFC2DD323B8E974319A2DC5BAE52BB6ACB467F707C57C985BF43BCEF07+3E9ED193825A0B18DA834B658823A27EBFA924A38256C5B7E7C39D7F968D8019+14992ED612B42535B5E9CD336848FEBF6AEEDF5E72263B2F7FB6E3B712207C8B+7C8C6CA84F63D93915020C0B7C3BB14D4ADD753E0B76D2B38D002BB77AF17AB5+057713190FDE4967220C6E8D92FC768B85506BEA05C736C8A7EBFA77455D8519+83C89D903341DDCF8BA8E944326C6C05C26426D1F438F9A6C947296A9ED677DD+C8C175F5563367123DFD95794C4C11FD2FA9DBFFE3BF8B954D3AD39A8D54FC2E+FDCB9D6CCB957742672B93121F5934897EB111B82E3C863A956B13EBF90DF0E8+A3B460F973D55C970B26D90B80D8B9716EDCEA32FF16FF9B7E3E05F988DB02BB+CA5B86ED67CC13CA0FDAA9BFEDB977694BCA8998210F289DEC06C9CF21F5938E+943EF7746FAF07EB14D9ACAEE13F4623750D3777D52ECBC7076DE74D0F518004+DB1C444E49FD1E32DD1F4CA573F3459D61F7E8C91C30946A6B481CE78F2E3EF3+3F5A4DA4879D07A70B5CC514616EEB79C8A843F3E0CBD7C91ED2F6905984AEE2+6B71E7A6C7926F3EE28BA7637F6A908D5757270E9F21A5B2FBDD747C05A3DBDD+527C7EF311F4FB258B1880D07BD06466F726CD6F5E9B0B46E04EC259F9658D36+F97F0413A7CBC8D7710E5621FF178EA6D590345208CFFD42BB06FDD1CB3DC1FF+5E3007A242D62756BBC19071B5BF344FD99658F442D02F72C46A71B78C55B565+8961392E92B32AE9B4210FCF1F9F0578A99E2A1DFF95E7734397B9642F7E3624+DE64B4B6DA1AE9A66B17B68BC7317DB67BBDCA0AD352F1A909AAD94A408D9B46+18CFB207F119FA28132579EF06A0FFA43C12FE7ECEC55E4C9078B3A779B7061F+4E20EF3298CCF90A12D6007686565D752120AA5379DF8B5DF313D1B8D7382CF5+2DB0D94C5BDFC9B8EDAB0B16D74C8F09EAED88F16240CAD12EBE0821AB63BB50+5A94E7896288B860918C54ACCA6B1905140B6A4961B9D249E410A192EFBBCC10+742FB84283C6B03D5321700F64F8B4368B3C5319B91AF45B1ABD607A8E10F4F1+19816150E77C07701C91DA7FBA0553B6D173FC2E494FB3687E257037236B42F7+8A2F4DCAD2EA53A815E21FFF1EB7A14E5C031DE2FB87D89FD6F50046F5B1C0E6+B4EC16970E40482EE4A89AED3B47566788D4D5319EDFC79E3AE9FE0E3691E197+42BF2D4A870D5F3404FBE419074E5169AF1A258565F9C70525036755429CAE8F+3BD7857271C668D8DD3DE92C91BCE95C729D297DC3BDC53B93EEFB9EC9256A47+E637CC4612A9A1F03B9BE6E688326A7E59FD48086223A7333FE64870272850EF+8CCB258B92C5BA5E30D0FEA83EF75C3177479AE911DBEBD4F1BE7899EA1BA048+C61A4595AFC62C5C1B6A60DBFF4A30B1C3E6AD87C714FE813AC13387A04D330C+E0581F5661524C46935153FC98641C5C0919DDDADE8103A1DE9A181BE4534B4F+FF7743AE6AFCD4D1DCFF3F0A225D354203BF68FAB7B605DE1D03026A3F6CB4CD+D505AE05DE088C692B72D43E088606A7D6FD8A393B2D0EDED13724F558E15127+13EFBD4BF0422BF90350DD373CDA4CC6E06C9F216F7E960BC698F204C371F1FC+6CA0E28F6E76A216E089EF85A70635C183DB2CA2039DD73B0A118F19D84C0B49+F4DF3C36B03D71EA3C6B0993912108F9B1C3512B379960C6E93FDBDCB2DAACAA+8834887BE0069CF820C87E5D9E7226D2B353CCCCF56A59B3748F7EB53DA177A3+09AE709DA76DF887E37DD41CAAC54485DAD2320F516C55C609CF7C3BEF170FE4+DA9EBC9B6D66F109C443ADCC3EF053692521FD95B3CB017C1A28340CE2CCF529+FED5A59EDE996B3E5F8CD5648023BDAC0497C06A0FB8EBC9CD899E148AC43F29+044D096EC474654D0B006FFA9F0E0DEBF85ABF465C9827AEDD9402AA1C952C57+790125E3993C02172FBC41CF7E92690A4E244B0904B6939A4958B518D5E880A5+FEABF1EFE4FEE3BC04D68A1DA72AB641CAA75ACD0D9ABC4F7B68762930819FE0+6311C9831793D1144FAF3276B07CB875A39304189E9B6BF5778D6D173F3DD18A+D16FB1E2543B191CF3C91F1CE027BC592A3433A96BFC8B27FCDEEA5E3BADA3C4+F842E1BCBFE354DD255A1A087021E353010BF94890633F4BC8911A3910E452EA+76C5F3AA97D9E8EDB79552A5DFBF7CB4985B8397912FA94321455A86541586D0+49086622BF426CC822694DB91E61181AE6539398E97EC0ACAD65553F18C7B16A+53C5ED2435694193EFCEF1D7CD641C4E6A645D0847BB46903E975984D50C2BD9+4D1C53EDC45AF86B563A6378D3B8585F081DB0982358CC1C9C5901E924AC53F9+DD1DBF82A76D17F21F12DE774C78A0BAF53C8CF7D8416A8217A31800DE81018E+1E3355C6E4E0F43A24FB4546276BC7858927DB416779F21D3A1BEF7142441D5D+9908A77DFACF24EB2A9BC7F2B6CD9D4A47A43DDD9E6C8A1F8F0C591EB9987FA9+83942018E1E5953634A73DFD1B38C19353A21C910C30E25F16D8C51819F3E23C+C20CF6191ED5BDF6D69B17FC27A5506496442FB7A292AD1C0C6CA75896B3414C+28B77DF91DA385A6E8FBC93D22F063D82DCF81DBD12D722E5DF860A9B200CF69+81082FB18A144B24656894CEC2137CCB395F61A8F6BE556983C2D0C2A65585C3+B58163D6C6EE86C5C0246EA05302DA97CC3ED9584E0D4A4FF02F4307269C6FDA+777765B7D7896CCBDA55AE825AC86F0B3CEA18AF83E281BA5EC82910975490E7+2C56FC4428B53DCD7C6B46A5BF904F40A66ADD39815D43954B3EBE8D9C13B79F+932C28BE4925B92BA0F2BD06365A41AC37FC42089B3170FCEEEAC05D36AAED1C+14D0499DDEED22DF38D94AB3C6A226D357360ADA015EEB5F979ED231F3780A94+C44AB7EDAF808AD2F52C8FF0FD4C6DFF5953B5CE5CB7EEC94A4C116B8AA08BD1+20D75F5E4922985C0CB128B2F948EFED53DDBB0C1F2C9E0E9D5880DBF2B490C8+DD9FDD84D08DCE060F8E23D1A13712DF0DF8242D7EB11CBF928A6298658E9CE1+B27F3DFFD0578F2924CBF9DB448C5B177B73582D54B9D89D83F10A6A6106EFDA+2A86DA127EBD0AA038955866A421D9504957DB194DDE77D0215BEC0B3DE0F1AB+AE0643F235857E3FFC65DF8A750F9C4C3D5E6BCB84553934CCADC6FF617B27B7+3AC8AE39F83F053D2730B3E2BFFD34C48BA695F189A5EF33EBF0255554DD625A+B8B71264AB36F0DC4CFE3EBCD0435FAF9AF610D083298AFDDCAA92289DA83709+E7096AE4D664B57F8B107A47983952CB20EF01108F4F5F68A5738898F8DDD913+ADCD6772E4623641CAAF80174CA9064496438108AB8D0E832071049438EDE299+BA601615C5211B586E758F4B7E2755ACEAECB4FF44676D0006D39FD0E024D295+63C8EC97D3030881ED33706C7E750C5B73187ABA38E930BA3C246868A0578B3D+D2122FC02C7F362B5930E04A8F64F41A020DB5916D72418E9017D3AF569AEACE+FC1D883DF60990A47DA23CD9726B10C2B9834F1770E078BAD25CE63647E5CB72+1C131AD4DFE6FE9E156430DE49D3A97A990AA64BB8060D75766373248F0FB55C+D26923E71221B070C7C16806081B89CC4DD2372391147B559E40812D485F24DC+ACCB2C85A5808FF08E1009CD5D762FB1FA6F0751262E6D116E8A766646321EC9+D7AD9FE465A5D9B80D3CA7EAE8852099E0BBC4E24C3C70195CB2EDC510CE14C1+5DC9728F4DB60128179A280796CDC46EFDBF06BCF9DC5600DF83BB3BBD085D5D+D59D1347BD1B4ECD634B486B33A3022125C492CF4C6FFAFD3D0932C6608635A7+6845967C3BA065AA6F694CDFD7AE67350C6EBE95964C5BC0F0D2A421863A5A72+FE810D9FD50EF20EF1B30E04A0A8CC8B24D6F5D682B0B59D618B3C9DD7714BB0+2988314413B7822179EC69F607361A1C343D6309334684DCA10F7B5449F9DDC3+FECE9495A64936CD16E6AEAB56A0B6BD93EA7B452229C45135871C8D8177FC95+753EB8C49CEE5FB758F8C8CB4F8DDE1686AC8CF7574E48DB1E42212D755162F3+B02CA6F339FB63B377801D1467D80558DD22C24EBD181E25B1A5BF166532E527+0C574FDBFC852D2E598734CD727BFBC71899A87726769A5D47CDA25C3A365D27+2D4F87A2E8C9A94BB9AD44963A40176F7FBB1DAA3583334FAAA960C6AC5C266F+C355E9D7088261E5883CC93E6DE2A07D12EA0E26273605B8F62490FCCCE80DE8+27DB051D2C3314C48B38B00BD70AF0007BF4E12585B285958A54F9D987FC621A+3B88B61F0E29A4C4E910732EF1A68AAEDE9E7B5164EEB60A467F7DDB0519D63E+D1662A87E96F00ED784247A36368E8D8B699FEE3E4B22B02E8FAB2BBFA5B1D24+29D11B476BF767D3629DC2E540C820D4F7E6928930FAD397EF5CDD5E16F6236A+BFA17D9094AEB808E1C4BAEAAB2A670E87878E60B62D869DD99360951E2F7B53+8FCC48DA1084FE5F310604FFAABB6758D5A8F7AAA7FE9BAD40F823DF5F1A6435+5CEE668AAB498A8528AC3F199D57F559BC1D1B5A8FE112451EE828B0654C11A7+A3D856F00FB557D7E7CF41FDBA7F4FAF439B1F9A244E9F32F4529CE21FF8C2C6+1F223EEF7FE702B4C8933FE95F23EB611A736DC814F0D43DC49BE8AE90F4333C+96190CF8A52BA0115355EBBA48286EB60DE8889EECC583120CAFC6D9BA4DC174+E098ADFFA26C57EEBDA0C8214D96F482196B29040D1D1A3105567B2526FB019D+A8EA0D266DD5A4FF7F13009378D074281BA96F4EC2451CBE2B17E20F900667F8+1CFD5DAD21F443283429EE763D82E19D828C83A2A6ECDF887855E52977D5B32B+93BB5A153F015C97600D0A4ED83B1D05756B14E78D3D85A9E424541FF8DAD8D9+B494821167682E9D9D39B0AFD08C9BA928361E8F1757B19CA6356DA88A638C1D+869FFFA8791471925B18A4104CF0A2A608BB63F9879C9A1F01E239F63525D1FE+0503206C75B9A4EB612FC0D4FBFC7C4046B2B70BD50EF6A96594E40122D727DF+6254572BF71A5ADC17871ED4D37511115702B8948753E873822F549957A269B7+DD4387851E1D7AD86F5CA404589151C035F5600DA06370D2E8B0F18C2ECA31DB+1FD8500C3A7F7B898C48184AC659F294D2953D156ACA7824902D7A0679E24D2B+7192B6BEC8CBAEE78162B67680E7A712C95BCA0359433787B6AD7FE59EB02C4B+9949C9D39C4086CCA77DD8BFC0BBB2990252F9E2B69921057632BC45B70C3E24+A82A0423CA1E955042773555C3F6913B61F90EB661AE750343366FF31F094604+2638C6A6A2FBFB74D8B188353301FF8D0C767FD9C4AEF3ED98AAAA864CA5EDF1+B68A239A0679CF50F7864454EDCAD97CC3BD412ABE248C7633E54DC7B35FE2B1+4DA0326A27D0033B4B3D3C9C0BECDA9D9890D57C6ED0AD0727D27BACE2E89000+F26FB1812081821C29BDA9128FC929A5CE56560C83310467B8E7CF81C7D50DF5+8C22330D3A08250CA8871E1BF304D55EE743FCE5AE7D9A3872C856C630458E19+EC6D6CF6029E87026F3BB8514408E31DBE4F22E6D17208C146F3321D7586B935+7A0C4D7D3BADD24ECECD0F47F9154412C893D342ECDE298DCD69948D063B0DAF+57E9A61B1C6786D8200B10B56C60C8DC1244F8A5ED1335E1B005FCEAD7DB9209+14A981E9B76DB6E805E6C25C86450E19F0854EC0FCFCC776F21B1AC42F5CADB5+373579BAAE0FF2A32A3EA1355091E4BD151EE26E9C5192FB1197FF8037409667+398A0EB0DD5C7D6A562D3E7982C36DDB167962D3CF598F30940CE926D517CCE5+E2F210AAD5DBB89075DBD852082A141EA0AC9F0169B0F9864F399341F3A5F557+B8C5D0A6BDE0C1D76E37FA4C11D5064F45FE677C8D3ECA552FD80350AF20CD19+886D6B2B42BFFAE78251E804B97171A1A60E4F8F6A205E8F76691E5FC3E2AFDF+43FC4AB2251E6D355216F40C52454E5F6EBDDC5BD207E0C5CBCC931F39726FCF+20DDDF3C3563D8D014177B556F78A3262FDA43ABB036CCB8CAC8980EA2319963+696D5EBBE15659CA596CBA128B24CA6DA198AD3D6D998E34172C65DAFA4F4712+FE3001C76A2207F593C727EE6314CB79B8D6A2383986039DD2E324E8B75BAFA9+DC59C14F8CF215917158C997735055E8F36590B4D18C42EE55C5F758579944E4+6076E87AA990A8903B8158D443942F06B2C7680B0D401C452B0E66C2BD1375AB+75689E731DE582CC0A15F33989C246FE7C5B0036AB97D64B85D5A44AC9F29B26+CA59962EB6EFA89566C4EA676B60153DBE13F7B626AB026A7ED60993C2BE6091+FF0FC14D3FC51EF7AB58CEB400F35DBABA388776DF28E7BEDEC2278EDCE26167+98348CE41E3BCEFC75B8AC7B335DC6569E9E79F8E56A05CC30A8F5E9354F2FE6+7B0933F9A56A64705046103FDBF2CB4CF05A39660E29608C239FCA0256EAB349+7790CC9EF3F6B77C371BD0D2019405EE48069F3B1EFE969C20DFD3DD28EE6359+841860CBA2F66DC86A189358576453B44D7E186567F7221FB68544832311DEDB+69EA919C2024AC1414871F02A2DB1D609E04D8FD5371F6957B2B4A45CDBC1EAD+66D14945F4DFFD36EDE683ABB9983B66D22524A5F7266476BE862466E140DEBF+B7C7C81A7B95AF02800C332B24F2CC7552C14E524B98428CA33DF489C5A96217+2252D2D9E093CF46D124BE0F86645E18DC2E4D3B0E2AED1F71F3CD03F2540F3C+41A1F599B30BDF97C66E6551E409AF8FFDAE2D2616605A5160D1794F29BABF9E+CDC7F31A3AC8C24B358E776000DEBAE38BF374FFEA890C35DC74BBD87985EA1C+6F1979141CA86E09AE059AB3A1B9C0AD83CBC750E1288601EC7A663471EB03E1+480BFF71C08BBBD1E5A6EA0641A84B4B947E441B2C76C89C04C0B7AED515BA9F+5BC4AE4F9DAEC1EB2B46587A46DB3F455B6275F6AA20ABD7E6FC6B127A6ACC1A+CAE6FA68727EE4F8241E385924278E1A3CFBB9C932165A4E29385ADCF49DE781+29563EB9E884799626235DE96E8642E0FD4A6F7320A6D8D5B4600FC153D73322+B7C72337D968294A425E021044B1E0AD3B547C4612EB73F051562FC856ECFF1F+58EC488664CD3DA38418245EEFCE3A79E9409A80F00A17C0780FFAD5FFB43035+6962E4F1985624E323D231822F6E93F930A426B0464E0651AC36A1D2ECBA2B58+F664EAA0CAD925674ABB8B4A6DDFD1714423C81073E591BA2839D93F469E3308+60657F5F6FE17E808DEA7C1F7E0D41DDC1786821D7AFFA40990FC07A42EF3B0C+D045F0DDB3D6AB37CBE2CD3A193AAE9A079229846BBEC78A9D21B7239E7E7869+176545EA624D450B4B2C6DB5FC0EE2C9148CD70A6F7523FCE49798A852BCABD8+211CE7C72A9F0A32E4EA8A2267BD5EE41713E5D0E6379803931F8AE7D6622F4E+7C6BC82A2E5F393FA2F628553F92A246B3634045F351FDD6771D0B06157B9AB8+9F8964D358AA76DEA2BCBD9AC592629968A10506129349BB48A2EEA8ACCBA59C+E9DBC4BDDE868F78E4313FD83B9B191443F615503C8BE6F38BFC1740655C1FB8+2789F3FEB63C85E1052D3924D33E272FD349F5C4423FF2B31464E99992C2D15A+5B4F9A9FFCA26629FC100E9D14E902BAD3B5ED65E4C01D88D9AFF1417B226DBF+0A25C70C5A83CB7D771717FEF0F697D2DD086D79523FCEAA0C90A232E1A87930+4EE8CF52387697323135CC8B04241C2342E89B8622F5230BAC5716E1C05B47BE+5522365257119AC29535FAB3D40591BA7B60BE0B9AB4E8839D3A7BE459081DC9+712050D0846B0C2137B5165B1312C25AC2B3FDBB9F16A0A4447AE6B436F98F5E+E37C2175060C635713E55B69224782746E50C43EB2A94883D941C5BBBCB0162C+4CAF614A3055BCFEBD0E0FA1A85B1AEC129B1107C0C416667C7114035EB1A441+9F306268C3ED2022D77EF8BCCD1A2C42FC293D471A8C49AFCB77B522D8139593+61655EC2B518BCDD87B3076AAA04763FB71DDF73E7860D7BFEF6C3C0D12FB7DC+F866826A8260167A9A706914DC9D98CCCE71086E691609FE456260B92E4C10ED+90B3638C039F52763E9D1E08FFAB34F5987D183C48E6B76DA9C8247823371F6B+11EB57A37CEA38178E537EA4945646A769054E11A5DE771466C0126094B7B301+2B610BD87BF4F93F111A75AB462BA3818C688F41CCF3C9D8A64E27E6139F6F7E+2362F4110A95488D649DA7E6A3527E90E3CDE91B716212F69B19E4FC5F6DF30C+1CEE1126159C738BB1147F2EAF20BFC8534C5005B090E2E3852EBC7547D75088+163C0E36CBE022CDB5880F80087273CB91EA83FC45198DF2E2A9F1A560266AF7+4DF0FECA652F9369F30E0578151349B709D46074C811EC38A21692F90B7503F4+8FEAEDFC3C8BA9B5C40CCAF40F8ABCEB119EEFDA302ED96BFABD257C67DE934E+CC48175F15B1F688FBBBF45A2EB174116CED4BA437AC1648CD53BAA2B3F4BD8D+3EEE48E0981094E7239DD0270D2D09A33711EB0A2D9614E3F71B7648DC515E63+71B2620E2F4EF93351562E5827A6295800636AA140B942D9720760093B45E799+2AB21099FA89366638973A8F6181C32DB868BF7590DE6990F1D20E6AA72B378D+07402342693715555268E70F2AC2BEDDBACA73BFD48EB122987C7EE733F90A4A+8B4CCF165DDEBB6E2BFBCD5E1C8418E58E9858BAA73EA361309A4FBCC9E68DF6+92035D10883217E0BAE8DA152C13F991C4992C69A0E62043257578EB6EB43C2D+19316B3F825484B50EFDDEF3791CCB787EBCF7DA2525400A2CD6B17FB1D8BF35+F4E5C64EF7B655ED7915395AA163E9A546FD35052F260D92F0C51AE19FFC76AA+1A862CB3D25A67C06B7CB474473F04AA00C917A689AEEE455A4D9F7ABBDED684+12121DFBA0A7077041A7B737DC948999F4C0A22054C4994E2B0562F6B4A61468+3DCD068C95BFA3432006C32C79CFAE57D6D6FB51EC0A52DE07005567CBD90750+0F5072225BD2097169324387E50B84B19DCB552C3F3A29C3DEB96527555D1D29+CBB9AAA81C01DEE0AB2EB968669E9A6C6BFF3787CC896ADF7ABA614771CBAECB+D1EFA14AEE2F51CA0AD3436E1A924D069B16FB6CDA7A5B413A24829F440E05AC+8D0B8960C8433CCD56266F8C085017D69D9BF09FC0B532E679458B889DFDEAAF+E768509F3416469427390C712263F11199398C2854DFBFEF3C4D4E1FDAE2DCEA+691B6EC7400436852CCF538157CEFCE6BBC55558ECF574B2E3FA617E560A717D+71A699359D7D9636805CF8C38930C5EDD5C19E9BBDB93788E2490C99B185EFB2+467F448B6792FB972C559F66610C78F59DBF96FB1DAFBD671D8EE56C5BB28089+1836457C6B77D68EB49B1EC4ECFA34F22B12F9D32D1F4EBBF100ACD6A68D1772+15DA01DF48716B6F61C525BF8C6023797B3D078B708D863922104507F0957C9D+80914DE4A33B7486E6D4575338FF3886E0A11EE9DB6F20684381245899BB1C33+0845C7175F42CC5E4B9A086B82AFD08770735F164E7EBE27549C1DCC34525F9B+45D72C75FD9BEA16B3FD2240BD9CD2B9451B69B5DBF1ECED83D1EA01AABDB5CA+E943ABBD5F3BEA837BDCADA2DF7A7EAD3EAC816B2F7EE52377D20409716377A2+015178517B9C584D49A5C44BC75447DB724B15898BACA167AE420FA7C7D85F4C+0FC33B240F6BF6E611B73B0DEE3AC8475E6086664AE412B3FA578642D4C5084F+84E1DB82F61DBF9188934E8AFC824FC593B24688145E12D79DD788AF66102368+D1179C33CF966FEC77B1DBF49257B69255BA914568229A84B0642AF839BFB71B+645B6F2A0C5DD39193FF8228C9C2FC581EBF24D742CCF065FAC3D9EA6F801E04+78EA8D02F854F5CC3C5A989FC8D5B3310C1A9D6E4A5FE84B38DFF9CCC86FE21E+BC56EA79E592F1074EE240E9C1FAD4AB8E67E2F4FC96150F05AB2CF604DAE123+F10F29CF2DCF2B0A1C3159E982B958342BE0ADDFC4FB37054FD2006FF36B15A8+3B5F2EC18A3E3193665370E0305E1A4C2BFB557FC2C1D0619A1041982934A0C5+DA35E44F84E6E3FDEEA9CFF7A957AF4551AAE002216F5B6F4DA84B448C0461FB+44C08F862BD5DA5D6FDE5684ED6D98234C679A1CA1FF35B2939638B13AA761E4+BEA2DAEE834D9142E920325B9876885B4AAE4FBABA5EFC1D2235791669108DE5+4A6D2820E359F45C07C053FAA7847905F11BE8B41F984FE5797897678B8509A7+68F91091D0B84988F5F29E7332061E33F1887C363CA2739F6AF01B84AF5A4F4A+025BDFDF779A0AAC20D8718F11688D7880D843EAC9F5F65F25761E3DC76AB010+DC139DDE88D1F2182F65AD1F435A19F56690A0D752F54D1BA7E71D888E407645+DE97C1B55D866CDF0CB3520A4E9E28D15F3B31BDD971DAD028B805E80FF533F0+058C402ABDFF8AF501A60E968EF2B9684AB7F04C338871B77C3E1DFDB27F697B+3B8EB089BA4496047FD8845D8D1581FF6F6C8536A0CBAFF3E0F519AB9B4FD275+D2B1AA3C594EA0340383106745A11A6AB09F1B09A43C135859635F8A9D25846B+FCCBB7DB8BA82145F836E111AD5B9E11A56042B8E5D00F667588988F9A05B0EF+F46D03D0B23915753069646494E154EBED8AD27D9EEC0D1DF0D778FEE6A81B31+7EE7738DD07B3DFEE80F4C30C63C99649507B9D2B344500D1CD271F6EFA0C0E1+7A8C73DCAEDB6A5800E2AB158239767797112E18121BC2BF8A5FB003E5DC8A1D+96BDD092A94FAEEEA8C05E407E8FEF39C992266FE13AD469A941B5ADD6A55A8E+FD781D8DAAD287E81909F72D3CEDBFE25541B9AE277A4722EBF4C5D5EEFE80B8+8324B5E5EB171E78CBF67B0ED8A8F15C2797815B7F5DF8CD7DD0ED57AB8AAE0C+5F366B3B71C1ABF168DE8DE0048DF763AD4A1912ED7F15D4D9BC7905B45FCF88+AFC1D5259DC87303858B61EE03DF321578BCD923B64D1A8DE3E25F8B238D71B6+BB38C9AF59940C011528EEB46BBEE44FC42C64F05A1E91800D5D217B8F56C883+8A7DDD6182D1960CEAD481664C0E3D6C74B247453BF6667E6A977268B9A3114B+28457B967CDF215B775A4572624C7C12A0498C5107F5373DE14597F0F22CB5A3+5B431C47E3552F2F617F3695220302AC894AF858DD39B921031DF2C19E4222FF+095525737D9BDD1FB620AB6CFAC81B196F396819E953362CE13DB06018AAE37C+00160E7CCC046332516DB95122E157DCECB5D1ABAAF1F5C42EE5CE21CE5686CF+C6B9F06C29CC291A8FA36A2CA61325B0C35BA2F7FD97E023682540EEA6C17E4F+DDF8AA42200909294CC251AD0A8718B0C91A39263136B07FDBC70550E97156E9+976948E7786F2568EDF893E0DE50FB3790DCA9BC9AC9364DF3A8E7155BD1FB8C+62BE1007CF52EA8F69FB17C45D53AA2A11198C7BEB6309EF656B678D3A56B29B+80ED8D0CACB3706F1ED5B6D65DE4FE88E271B20588372EFA2766FDE62D90FDF8+020FB6C6A7EFB85A223D7AD3E008661A93D12A69E817CA4E3CD158379DADB107+9F4CCE6EA6FEEA5570E46266184CE29E7CF73603BE58B7A5+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMBX12+%!PS-AdobeFont-1.0: CMBX12 003.002+%%Title: CMBX12+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMBX12 def+/FontBBox {-53 -251 1139 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def+/FullName (CMBX12) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Bold) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 43 /plus put+dup 46 /period put+dup 49 /one put+dup 50 /two put+dup 51 /three put+dup 52 /four put+dup 53 /five put+dup 66 /B put+dup 69 /E put+dup 70 /F put+dup 72 /H put+dup 78 /N put+dup 79 /O put+dup 83 /S put+dup 97 /a put+dup 98 /b put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 105 /i put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 119 /w put+dup 120 /x put+dup 121 /y put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06+0693AFFEF215D00BFCAD02E45496D7C8F5E99EB9096FC4300D038C1AFD31EC4C+5ACA6B72C1BE7204E37A4CBBCB1EC26AB87F2FF82DE20601025169A5FBD2D060+62B5B2DBC288C79C33B596832AA18D730AD572C6EDFABCBD36DEA87C0F323C3D+6E537AD3B43C6F3A905597570A8C6B0B4A5E08C08A430B643B6ED36DCAA09B41+FEFDB90E10C8A8B74EB358437D0CEBB9E03109C593BAC09CA996278246E7CA38+4F311F23DC5A7F7DB374E0E3D066C874EEE28CFA47054DC41A389203BFB3D601+BC9A4817F8DAC250A102E7404CA135B33DD66F8FF40D106F52081FBA3E79CE29+FCA5C502B38C86D8D507AEF30436472D2381DEA09B8B3BCB109BCD72332A9483+E61ECF0F89A85BC37B8C10FF3F7C0A84FB8D0F4A7898D3F8B06202FF8DCD698B+56544751347E9AA35209B18D3D416E5E034E36D9C5FC0B33B7AA0D46F3A3F925+7FCAD9D6B9E25671F9AC599A40C37B2439C06FDFDFB3E78DCE515BE82B5BE1AD+2F205E8249407179559DF39CF29120C4B92C5283B609D0445B30F3AC71A1A678+8F43D8B12D7FD722606252CF4902733EA4B25243056CA88363F0619D0DF82D7C+075E0B4F451B1EBE025DED1E6DC18674717E87E6481781DB35A9E67586B214BF+2E57E44B9E95AFEDBFB3CC9869F5BE3DB684B36E3D3CA29325FDDB14711D5A23+BCBF9FE23AE4A4B26E03978C571A41FED5FBFCB70BE07A38CAE2E3D429476181+E995A2F661EC7D35B1F1ABEA12F2FE9E61A7EB346DD9111CDBAAB7F994DB81A4+D6C269FAE30F905726E8CD70BE822FE9814BB2E589398882D84DB4F25347027D+6602F3CD928DF348A130F4F47E3D4D3AFC9628E7396DA702F0FFFC516CD632F6+79E82AF88C73117E4DB1D9B7A1EE622ADA02D9815D32A8A114CA91EF0144BA9E+979C1DFBAFBE369B76B0F722AFFDC4B65FAEA688110F7F12697FFBAB5DDD89B8+336E249E737C2C1DD705827EA79DDE901B2D5E92D96560B6CBD00010DED8D826+4EB3AA220799F9CD62828B6C3CDB1E0B0785F4FD19E8B006B73E34E3E5A55D77+AFDB89149FDB6CBFAEE428FE34CFF824AF88A210F184DA0473EB5E5F49083633+D772F1624DD562EE3CBE5BBDDA1215D1B670EB84B7647F05C0632B1F0D969923+43D7A8F66A463F03829438CAD37EE2895F962513BE4C00313772D16D63138E9A+367DD7368797B488D448DDD20D71D6FDF02F160FF2F48A85D9825305C8921C6F+5277A883BD8C848301028B222C174E30914440C76A6AA3ABC3734D8D275B5D7E+5A973017FE985B70D7DAB51DD629E46FD8D15A308D98BD73787EAC486C470485+445EA028B78E4E63389D94ABC8310CCEF5F18CFDC1B17C799B4D3356D9E41B29+A2BCCF1EA5B25CE96993A8B6EA94D2754A3BC21080AA8B358CE45E6C77E186CB+B5C953115CE0FB0D163B7BDA09BD1A7D045EA15AF8900617C5B69011C3B88B78+B1841BEA928BD9F2A6240F5E876A886C6DEEAFE7E207C2CB0744A69B9FC28439+10F21407AA0563C0DD5168D144777C1696784B65C1555FBC806C435F120CAE03+D050F04D4CA153669F7B83D0DDAF17B03387F2C5DF66CC7AD8A2AFA261F6B332+1ED356C24F458BE8576B80AE38F7D996E752595B97E38C9BA1C1CA65286E92AB+621FD36A805777854383E22057BFB4E797DFBB25D441C00A71906108759C995C+71FC2BA155E7C8E325B64D64A5D4B45C7F70359EE8EB763F57648D35FEC2A179+1BAFC31BA109E4D4B5FD02568CB7B93611B61C9239800B20C7E958E4FC7C4F5D+78CDED4BC6AED7B966B103B20780596715D5319DFD48580A2C6E8914048B3656+5198B6BD8F50B2D2EEDD31AD589B544D39F3B6FAA418FD75DDF56FD868316E7B+D1BC3B0166CDFDCD11CF4C0DF00353FA474AC5360F9D4888B25E61A3FDD4990E+3E5E02D8C43344517550E1501EBE5371481E77F29E487F4536C7EE6601F244C3+061E811952ABDE5928C2B21DD894894799F4D1884D15309B14B61FD60B306476+605B87CB72A8DA45DCBE664093C0D8C094231EE2CA50D99F6EAFC408D019ADF2+A2B55855D5CA1B1FA7333E4D882D95679342D1635CC201D93C61876B6EEFCA9A+1B8566B544315E5ACA01D2DBB4DB064C7C0FA3C6B62F356F5C61B93EEF275D65+FE31AC5EB50EBF849F1558AF8ECF743815B8933F9FF84CB8B3EFE2EBD8E8E53A+5EBE7B03C998F94FCF481A98E6B2D4CC9387680308D4D5554CDDC892B8DFD4BF+22E11DB036202EFB584A6513B0B76D03AA393C0D31192C8540334887E095A86E+7B35DF4B6DE0097FC35B5C721E7B64F474B11D4040067A29E853F1C1A04D66FC+D66E103A5D5C72F0F9CD493A637299C334865DD24EB5279D7A20311E8FD833FD+B2237D2D752A50C7B559CC9C700D74CD46E493CE3F43C16DD473B9D051C24252+718CC5E605CDD6C91E4458D538A05DCD4ABB9F17CC7FD91B400F0FC9B32D6A8C+8469668909FA723101A1F739AC24436487EEF18DC57F1E012DCF93BF1E7F35DE+90C70938767F6121FD218810BFD294853F9FB14B12E852CA544CAF08103244D7+10DB9F93B7CA4D73EE21F67F7EBAB33163AD33CFABAD8678BD4F10908E6337D0+AC1258CDE5118F404F7D39BC3F0600F5A7AE5AC87AC6BC1F854CB51175B088CC+4184EA6C1C1542AEC6AA6D220761DC2ED36E5418BFA268B6511157528EBCA8B3+9C4458260B4CB216E313BC2ACABCBFDDD90265B037611C8D559083B605CBF4EC+BF01A31E528B8957BB20C9838FD492A7D6A0F5818193BA4870E32F396C818A45+00BFDB828E3316E7BC01829F91448494AC7B757050DE7F456ADDD9E318BF6F9E+A0E0B5BDA012972D8722252F45E1835E6C9D4A86F08CC6EDB64166FED3340DCE+A4B8D08AC800B38B4F9BD1F43E4B1F8B3FDB2BC85FFD2BBE568DDDB51D633920+942018FFC7158309FCCE0405D8FED81872FF58D74EDB5C5BD075D722663D0C66+44FEFEA94269BB557F22FD25B95AD4A630533D850152C5B3CC3EB841D19E6B4A+315667C4DB169AD93EDCBFC8B61E5138ECD8D3DC734AE3AC5EEE66E2619B2A35+0FD55DAE132816C79ADAF6FAAA7FFBCA92BB7FC3ACEBB81268144024CFBFE194+6C9B08DB5C097C831CA479BF43C4DE303E26726F94C6DDBA97CEA6FA090CD7FA+D6339A75FFBF3496F7A16D068D549ACB547B8F4EC06516A67A8004616BF93093+95F9840800EA4B98DB1E44C73F88E98734C7556C5DF4407856E6CAF9B025F807+11FA2EC35848B63FC0388DFE0A5690A8CFE79DE725A1BA97229C9985CA5F70F1+3A8F7D56077B851487E63ADA7185FB931C2B7433B1D35C4B679413B31F82E489+DA9AD58E84A51D5541A46024A2CF84C7E744562B05DC2442BD019EC287981A1D+13ACC86AFB30BF0AAA128228092609828A23E8FD84B5FC5C476FE84E5E3C6145+09E34914B98A0DDF38F62719CEF752BE4A313CDF4EA0A29E5175D75F8D8154B6+C09B5838370B1B3FFD9A67EC2B3790D756F3C25D3220934FBF32B59C01C38205+2DEA036630FED7B9928727BF5F54006DB2524568FC0E95493E6BA28761A0CB20+6CFED9F3F614A4D734A671461ECAE60651285F2830026DD691CE18217C345872+90839E367082EA4034C2CA4F40F6036D069BEDBEB93115029549DE23BEE0C6FC+AFDEE1D511353A641E60A24C472FB8B54F5F8BED23CFB52EB29A9890685DB928+D4193F35175AD19270852BCE90CEAF1269AAB237DA56743EB04D106E215943BD+E1B5CD8C0D3D35492AFDD7BF4E8B09B4E06AB9B25DFA01B50F8E5A915C4428D2+932A5D3E08551840CD848BD793F5B52469D6D7CDDD9245167ED1F622DE190B52+7BF6146618DAD549A9F9B4F659D766D2D40021E8EDAB6440C1BAE73D7E9CBA4B+F36D8ADF6A39E9AEBBE0D0D3F672E36947A5898A3A547493A8356B1F54AB2BE4+F8126C707A562EF88FAB45172D736611EFBF05447767898EEFED74B213659452+51AFE1D4576B529D261881D62D353837502D335A21BBF3B195492DF5039CE2E7+BA004611EEB03C7C31B8CEC9BE25939807039C56DC19E57E07CF0A9DEBE9727C+58A176D056389C79F8A173C200DA3CA62703CCA41B6F36D72432BD71B8D2247A+4CE7EF588D96EC9C0DA348063390104A10ED407A113115F34A750B60E61BC4AD+15AA1FB1922566C85E963A43E39FC8C3FE29BA7811CD19DCD896A8E8473F7D95+851DD5A908E79A2448F9CA4AA4528CC7D98AF5A091DE2AB47BBB3119A6A5441C+60019AB161E911B22972E87470B3AAD00FA08362C0C6AC94130D01E629C32606+57569F32825E76062157B3C0B02BFBA195898566A515E327DBE826FFACD56DC7+ADCF80956FF387BC904E9133B8FF83735DFD796E4F47BB6B95795E02A4407F44+DF20AE7B9747DA5CE2EE4E47C1403AFAD51D79E0E46E4E5A12F217D761C1F837+9AFFB0FF4A2C29270A7D2162CEB2F6157E43114CBA8C50EC9F882239707DBBE6+8FFB96A20FEE73496BC266D48A1DB08DE7B1F6378ABDECA644CA2DDD6FAA8AA4+585F9EF8D12FFF1191A1036870803A8852DD6F2A1B75AEB00F20C5537A6635D5+81FF872D757F3CB6309FB159BB57FB275BB70A2A90034C5B02C70CA012F53ED2+25D03DD7F9C0F42A9A1768FD8BA5F5F1CBE7D623A75167EFA726DA98CB512AA2+AA122478C17EDF9BDDB7DAAF2C352378B09FF4F6EF10CCD4559A3691E39077BA+5BACE2F48A12040A883DF6CC9B504E1FFFCC1A3700C2447368B90B0B40FCB9C4+736A0BF5DAFF2ADDD8DCFF080505699E4E64EE83610ED968BF7B4B96E8F6044E+0E7D38B10C3A3937697F66AC5F1D417849B07EACA7BC7D1893F321DD6976D248+3CE802F5996A036C2C770E5BBFE1301051DE6A98BA35ABC906FACCDC02858D9A+ADA6D8B013E22A4CF7407A18139EE800C7E6F9805CEA22D1DAD196FDB835FA24+A25279A9E6B81663280423C380673C263D09152C6E2209B5AAFC4B7FC02D9154+CCE3733D77A11068EEF779A903779A8FC55D07EAF559E4B41409FE5B7CE453C4+A298956772A590CCF03F02E5804F3DF10E69A93E2CB8E6D3D38C24A12359E283+D231DFC50A47A3870B36DFBD00A7458F235398A3981B2C3C2F979D3EC95AB1C5+7FD1815EE145EEAA4E436DC46ACC320FCA6E5B169421D3F7A553F22818A02424+A79DAFA771635F696C9332B25A850AC946DE3BA963F926E52522EF2291041ED0+2E3AE04853CBC3C95DDA802E6149C692D64E5F6F8CBBA1DDD4F0850BBE332239+84C1F03610F84C428A0FD8D98D92DAE8975EBBD7639638C5AF5D48BBEA9657AD+8F5E3E161DB77968B8AE1BCADE6B644F74E5C7586EE40A6BA401FB601DB72AF1+90BC1018AD9333401D5D9BD379957F8E4307409682AB67A5455F7B34BE174613+3919084E6A06ACA2B3CF80AABADE3E01597A53C8BACBCC7151DAC8DC83B94AAB+0AB6F6D650E6BB5D704846041552DDFB4858F2ED2F64ACE3AE73DEF334383972+0D4A40A8DC6D67E1A59A48E3B8F62F1589924262238C2726E985251CE9B879B7+314150DB19F07DE81028BE743D5512B3A470932F19F8AC34F2D38AA1E458819A+1E5399C0AE5855C8E1DA33EEACA4BF827BC96FDF2D1CC11099309FC4E6212BF8+A4D69836446D6DA3E8F7F1FD3D060BF73AB9A5CEE7FA1A4B633CB6598F81B5B8+5E5AB2A83A9AA4148FCFD7A3BDA44649B0B4202A17B2E70651549407BA7EB3B0+D11BDD69AE194DB1CD3903981AC33AA8C1B767AA241F514A803C74F96D92FA1F+A6FF70BC207298460F0AA476D04AA9E6514512CBB75E47E9F3277B2DCE4CAC9B+B56B1B45DA3CB3B9143E88637F6E329F2F72AAF58DA7F1E5C4D286C651AD4538+40C60F4D12CB65474F0E12EE7DC1705304DF3D653F374DA9E6A9C09558A449E4+2689AFD116A88DA7264825C3BA07E9318E47F02D5BD30F652F1901652BF32EDB+580077E4525C2B772C8405AEE1EA4D396CB1BAC78054FB5DC2F7BA1330C6687C+86657201C4A850DB66E0E769FABF28D64A355E599AE5C8B88ADD8ACD49C0F50B+907AF42C3C42D91F47712DD55BD1F6048A619F9F4E94FBD66E7CA06F4A93A578+56FB33FBE2D3AF4D53D845BBB43FA5AE8C716970D0D938A79D1DA601558A2A85+B9547AFDF2A3AE0BE5F9C08B08BD7EC5A055163D3AD42BB534E2740DD941C89B+D7C5C749FBDB2C4CBA786CA08ADF886C2300E51E8C11705409A4FD790FB60FC9+A7CC31D1E7AE8F4AE44F8C7FE5AC3E94DD3FDC69143EE7541CA1477637B4A5F7+AC5399D26816A7E38C32265C336EE6FB680D2EA3D7F92CF1A07F7E59EB13E214+5584DE6111B1AD53E5E83B11957CFD41203FE69A55BC03D43AF4CA08A15623B5+D2BCC572D4F214300A645DE159EAD9AED60DB3E658334E7889B600E46CB29FC1+515E3498E83A1776F5FD1F3FE36C5636D8D78CD7E4CC6FC86680B115BACF2DBA+0E4D0A6B8E046A37401F7BA9691E2719E73835FF12C5A342FE1DA835BE2BF5BA+028226D291A8FE46F9F2815E0D8BE5BBE225643F78D0241961B85B5299E211F3+F256194D60C78F092A59B71DB76B6879D8CA1741AD0CF89997BAAC97B1523C3D+C67C528A9FE7E7F7B5063B9009143FF8B4153D106119DE7E0E2D536AE4E17C7B+EC39B4C8BB001AC9C81885DEC5DA9C3CF550A9BD3994261026A6187BB343DE34+B011B3ABB8060CD59A3B98BC45D52F6489D72036719A5658AEEE90D4792D8254+A5B09CD3A58916F4BCA928572F2EF95F11AE4562961F7B708CAB739679D76508+B4C17E755D35D7DBFC115380AF6CA89B2A178417629A9613080DC591EBDE4DE7+3021BD5AF83A36F57758DBBD0E3E990C1D3F008BA385AED4B64B1644B2763AE7+57DF31E91B817C82219CB4BD7638D79290EAFA203AD2335AA976E94AB13E6E24+FE1AEAACB41EA46CB6D1B809DBF0D6A696F26B7E70B4A42AE53E4BD2E6543380+EDFCE9E83F1615872B8DC9FEB01428B0935B5052D2A43FE269501D461A1FFA9F+D3D576D31D5960E5A80EC7FEC7013304F537250D6CFBB68B3A4CFB995F33430D+46563E99284405913A22BF0E272702898BD978C4471388C3A48E019E6D275452+356C9CAF8B33D6029077414019FC0C9F78B606FF195758693666A5E0805C00A9+213C1A7A50D393F1B7151396CCDC2363E5F4285EF4BDE308A8A0054804F47628+EAE493B2079670E8FAD1CB819EE8BC46C47D68F56993761A7693F5E5805A72AD+2A4C7C7CEE64A3DD61E46240457A8B91D0CE5D5187E89744A5DBD5EB533AF5A4+33549FB6A4ED42741F32EDA9802C0F890527E35042548A66317CC28099F80282+1427A0F0D66D8DCD20D593BB959E6E345C254BDE3041525C2B4090FB60E30549+CBE52B4400D8448ED1BDD47C0E5A5C2B039494AB89C21ACBD48D9F2AF61DF261+CE1D196E92596279152991FECED7B23BD32FCFD857C5D210891FDCA555B3034D+D0A5DA16B8D13F00AC5D77CAA11F7EE76DE33684DA3BABDDF2900EDC123C5BAD+308FBFED71C9D633037CA3746249C59EEA9E9BD500F51C85ECD514455FE4BB07+02837A61C00878C1D1EABE1083B09CF1B817C0201490BBC0B763C1FEA3EAFA18+2744FAF3D8BB0C3AE27E00974C8C17261136E373A2493E2495552A627FB4D585+C27DA48B0199966164C89F9F050AC7777D66F65CBE74DC6833F2ACB73ACB6C1F+2693F7A20894D759ED8CC5A38AECFBCBB60DFF348E0A5ECBC7F53CF59546FEA8+A93BED6CF38038752247531B650872D59A330532222FC710F2A03FE18C7B235F+3F7AE881544B41D376EBEB6EF8FA256C67DBA926D4B7283ABAF4A36A9EF411B2+5C511DC9286F9ACB92932EB51AD3F69A70793D051F56EDB694F1A946FB97A90F+7FA00C70100CF1D1B7EC153292FF0F5B342673BC8B8882884A100298880A2EA7+3762B921F19F90876CFB40289BB13900B53540FB61FB53903BA4A1CAE0AD5703+A28B985BBD2A06279604FFC8B144055A2BA6C4DB307CBCFF2C3E57125AFB503A+CA11CE713EE75F8A7C6F7E6E3B6386445926A216AD75046AB3087AF594898BAD+E0B06DFAF0D144C17DF43029B77EA86C97527BD8A94A95F8704CDC07329D9B83+678DDC7A71381B98AF8625CD63CC9FFA48FDA109A8F79BEB287C5AEF0A5D01C1+7F8239DAF286790AE94FCBDDEAA66E4092D90CF31382B2B2FDF909A52D1F896D+4E66C26F034E0DBB4DFC605A636C97F5E2C20C8C54CA17ADB78DB0EA9A41DFFF+2EE0E9B2D5C6B78EB87B4E4827836FAA01D50CBB9B8459C38C59016A6552480F+195A8208ABC4AA6A606A6C4A9221E5E7D96A64E3E45595480009C6C20F72192E+4894C2E74A61B8882EB198DEEC39DD16CBADB3E72AC4AE66949777E4B750B0B7+5C3BEBE1F2283A10130A3DEE37EC7E4A9331DAEF49A5E44116F121C5F481DB49+8282EE2DE598C612B5A660BB2D5E4B3ABA03869D958F8B736F446DA005F7CBC2+ACB2C1313B0728BB7ECADF9E5470F4C805D53654434E98485D851B9C026E302D+C65137801A99BF63A8FF51E0BFFE01A1F6CF127B23E5AC5D88ACA41AF0CD6D05+CD0D449BECC9BE6491D674844DC29E86CA11211FF740BF35AE519B0FECA42F1B+44638B6019BB3B36A7242C8CA9E2D2C03FEF91C284EC69CB3D46A34E2CD2D030+54171C078014106E9B673811B822AF639889D0EE0802E3DABE4055DF70295CB4+9AC66E224B98D3CC4D77BA2C8F422D90E418DAD89C75C43EEFFC5B437AE35386+0B0EEE07C3809027C351FA5BE51AAB5CB4FE4556D0116BE09D692415A98EE294+6D754C332D5AAAF71A72680B645071E5DCBFCDF4CF15106E4D3D221B80B3603C+4985F47AAE7BAF5BF0A024C753304CC700666610D4B75DF7613B89F4C6204E49+6DCBA3E8C90D83A1637141CCEE7307F42654AA195A81F7E78A216EB866CAFC05+AC5EC6A87E133BCEA817D6D3009FB55A9FBA0A2F4C38C76FE3DBE03C454DB3AB+54EBC3EA9DB4169C1751A960E064357C5CD0000F6B161F77A88FD8406D9124C5+506ABC8B2345C75B1A271C470EBFA9977ECC29D2EFF23FEAE0035688D3CCA89F+884CCD04BFB3239F3D60551033552DD416E65290092CAB411064537346B2772F+26FC8AEDB291D102096503CC9F9585A62C+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMTI10+%!PS-AdobeFont-1.0: CMTI10 003.002+%%Title: CMTI10+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTI10.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup+/UniqueID get 5000828 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMTI10 def+/FontBBox {-35 -250 1124 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTI10.) readonly def+/FullName (CMTI10) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle -14.04 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 97 /a put+dup 100 /d put+dup 101 /e put+dup 103 /g put+dup 105 /i put+dup 108 /l put+dup 109 /m put+dup 112 /p put+dup 114 /r put+dup 115 /s put+dup 116 /t put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57C5FD29DA32D34C95E+2AB2ADB3F60EEB0600C8ADE15A2380DE10AC5AAD585FBD13097B1A7E8E210D4A+EE96785449E07F0C8EBC2EC5EFBFD0897DFDC15E5BFAC9584D8DE95C5AB288CD+8AD8B9BEF0B8E5F887B3B0B331542FC8184DCCB753DB6ACEEF98B85756B988DF+CAF1AE0DBE7D37D5F44A2E760AAE3A5197C27B15E32275A64946C3E4D0476FD2+7FDE148C788DD2106F7C825E270588AC05B57E625AB17BDD02306F9E5FC851DC+32A5A6EDC43C770A71419B2C0C8074EF3F222C8A2097CD81A91F333A521B3A09+482A4FE1CB231CE344AD126AA284C3280AAC3AD162CF0EE241BFB4C8F20502FF+118507F5D1B5FD898571015E73E5CF2281085072E00D401F6F59761EEC3E8381+1F26F75DB66C504AB6BABA87D121B1E7040A07AA2FE01F80DBC246CC03C4B2DC+C2A715980C52B7F96BC1A78FCC7F4F52EEED5F705E08FC1E5BBFCAD121FA88AA+8EBE58172C162AF409DBB0728F14923ED02A65EA24E5D52B6AD07777455A70A4+61833D3789C719BA92E901232599767E423D5AD9C807670BE0E7B5CFF8256A20+C7BF7214FFE0342809570F5966A2C43E784F35015D9040BA34FEAB6A6F089504+3A40A9E9D711A2721D3F4998371430FB3C94BFC619559B97D49627BB630F4B70+9D0A8FE4E916235335C3962F3CFDB04C4A3CF714DB5E260F4E66FFF2F27CEF2A+D4AA26BBCAED23B8BDC98F8F453BA27AD7758537561E766B82DC3032E92A9EB0+125D98A22C5466AF069BF72A9BFA052A8628FEC6A6AD0B711DFFEDE3AA2D7CE8+34EA487038EF50F953B8B4471CBA6FC3C53877EC1BC94582B1123EDF44B4056A+30F49394BDE22CDAD7F01951C7013D26979277D18EFA594E8F4F2B5E615187D9+39E842EC28461B9ABA52020A127D2CB9002A673A435B13C10602EEFDBBA6BD49+9DDEAB9E68D655443A5C2492BA061C1391A51592BA8C353A6F6A0708E8860184+2B5D031D2CAB87D618E9F6F7A0BF3F66B3FD5A25BB91F7F1F5F99CFF56EFF4FF+0A35C55658001ED2E97B26C869292F6274D433A5443179DBB8EE987196306348+3F9E87C6422AFFDD30080C9AC4EE7FE5E2DCBFEE4974331F4AAE479FD8806D4D+9C2B85FC69EB0453AD827A1E767E5C484BDFBF5C8D6E2B3C96298B390F22D757+802643A79D5E29CF3AEDF0E12CFBECA4663444FC87F2027571DBA9ECF688BF28+FF0DDB3AEDBA0FB28447CB4B5D5205F40C1E7A525FD7373392EEFFD910AC82D0+98E71660A1B3227C4A2592F3E853CA4CDF64DF19A52582E167234F4036FAAAB9+5446BE102DE2BF43E82F0112C2A20F15A3F92C6571AC761665A905362C4F8BDF+AC8705519C99862CD9C0D75113C4AB5FBB83C880E46B82715B5628890D9103AD+A2329638B95D93C4DECDC5E6C588C9D5183EE6FC28FAF9825F02DCA567306D93+5440987A81B51EE7291107A08F201C609FEF91A8F0587E8B13D4BAF74A5A6815+DE9E4441F46AF8E1DDDFA2D611C889614040B144A5EC064DEE4638C04EAB2E37+4CA8F50FB8C4D65BB296DCCCD39F1F554CFBED96670A91F515CA10EF896874BC+8EF48C6447752C70FF5A06F928DB55586354076773BFF7E94C4C3A7A1C1F421B+A9B4E3936EC26E0C19BBBFC90F021E877F54B62108F6DD1C7F6D5B8E64FC9362+E173F01BF2904B7E5A08B3543611562C2714099DE7D4FA330DB148B560A9601F+42A84452811CE213DCE782A0D7809CFD954D6BC1EBF2BA4D1B18F50FA8174C96+3E0120E266AD5DDB40B3F6798AC28CDC5C3C4BC34583528F5B5DC8A222B80B59+A3A93DC715D061EC6915E6E6E21A25425C25E8747C60F170D61047108826F96F+7830E220C108B441B6EA3198E33C49BAD8D43086E49F5A2BC7958A1A8CD011C4+49045193394696EC3DDD0BE084E8F2E9F0B9496F035C0DEC1CE11409DF566428+D50043CFF5CDD1092F6E0807E660B68163BCA738E8D98FC6EE3F713164CD204C+0BA84FFF4F33F47BC31750B448603D7ADB9AE92FA91AEBBBEC0DCD66980E6955+CEB425ED07115B24E40F53B29B9D840842EAC691B4F591F866DF27556474B485+1C6F53DD72499847109B16C7093984A6B8487D4F3870DD517945CD90E648C1BB+8A6861E540FCF9D75B984B5009B5CC760CBE297042C240DD624111670B703388+6FE6FC0E89C6B4C88F51DFF3913D0CC1FB4770C8CBEADD4B86393605C0B6C468+83CA5594754411B6FC331EF56D7CD6D247FAE42E966583C29239A8F862348D29+60B177984B6B957E733DB4D275015691D91443BBB13C2DA96097A29733CDB284+42F89C85A7A743338C9DD3BBC4EE53F695E5163E6E1ABE5791ABF100B198B9B2+1C21E2FA2FB4AFE7F9BB2D381260CDD3A2CC05BF513AA1E80ED69FA27BC5ED5A+21445BF00BC2F997B356D94AF13736C6D3B0613EB6F4CD96A685FEB672661DCA+206105EDC3CA07900676EB2FAB37F48D2E8207BDE1463894DA3C5B1488AC1EE9+D39DAF691648048F5D7A384B8927F8DA2BE3602669F71D80686E427F395134E7+7ADCC611BA91AD4B7A0237213C60CF2C905359C90795230344FC3C50A22BD44B+55B2044792509F50F5C21F53D9F9E9F063ADBED3AB99E2613B23334FE8DF70B4+6120F2EDF69F50BE793EE145B9FF9C73179DE640FC2ACEB5C6617F918CEEB762+4CD81E665B2E544864D13230B058717B207D3CC5D6647D5343DB4D0356082392+871EFFA896631A7E0D6477942B632074A9A4EF7B09D4701B1639BAAB4E03A40E+9B54A7A4F845CD63F88831EBFA4FB847847CB98F3455CB5957F2E0A0F5623645+DBB5C5564C7F8B117D6E27E65C0F3EA81AE67B4AE4B201E7C4FB0A8364FE53F5+41A7CE8F834C2C4B322809B353A5E63BBA7BF3B7DC1A85EA700BD287C2BD3FC8+2832B0BB4695FC937FF5EF06FCD87DCE6DE793C2B1EE10E6450352C17726155F+220D550B1759E15AB2C1D5968E52C8080CD280E99D3CCC0E80C2EF8BBFD96001+A226FEED7311EFB4B67F424B557A877379A15BCA54780F0CD2CCA00400B9B39D+981C6B552AFD2506D1B23618FA9AE6D8143CD7198A8482CB416CCE62B992347F+337D505A4078713BBD91E5535BD58EF0351EBDCD749CC24D4AD39F8CECD7D6C8+139756680A4C03A58B3374CEC658D30160AE4863A3938A891BB59CBE02BB451B+1BA4B2B6E68AB61DEB85F95E3C909B8B66E220B9F18280161C279F10F7093CDC+100A53D542F071CC0A5AF834DC1D18738F5DD62A5573E884E1FFD22BD810828A+1EA47F8218C15A2E97CBC609927DA3CC2B802EA4A0D7EB57627C135E3B065905+F97597D818A2C5CC6F328AD25AD11FA50F1E4FE637980B7474D6F85A521892FB+72989AABEBE02A2D0EFE88A6F67AC29F5D8DDFEDAAF465C439983C6B84389FF7+A6434462BEB7B07DBE4BBA61ACD4A60C55B5C0AAE527DE381DFECA2E6BAFDC8D+310364ECB42CAFF72BA93C067B2F02D1CA7C34AE7CDC46787A0E234C8BE8A928+7A6F3DDE0338FAD532A9886E8E3525B85DD39364AB03EC4C0DD25DC179CC1989+1BE232E387E857C78332D834679195E10F1E7B87B7966DA3B2238F53D1E13FE2+8F55ED6A92A750C7250C9B91E29796621E7E9520373214D7DA81B2875A986D33+80382AFF6DE1F829F048E57664D9C4ACE91E4684A51023943A4964AB5657D610+3A5405EFD4CFD1EBA684243E15093C9667797BB47617B66054EE02C41FFEC45C+C1BAE8AD56B00D323FCB1D2744F061FA16E161988741A319B1564E04BA210996+4F9F02A3268CABE450D166A763F5284954564A1C86B76544C5F5ACDFE0D758DB+865A1CFCF9FE8CD5F9C3B2998C56468FD52DF8EE60C6935A3D221EAEC7714E3B+301371C7DDA0B03A2416238F2B47BAD3A2C5021C886DF51C695AF9C87A864B48+3BB3FE0B355EED5454B59B25A0D8A1B8CBD356C24F64D9B55E16C30C011365C9+1E0380753BA3EDC0868788D5F50B9353D0227BCEE1BE36998B2622C0759BD66B+E4444250589F9CEDE766D8B940770CB6B89503E925B35C00CBEC2873D2DC4A29+0823FB7A3717B69A7DEDBAAECC067949932728E89BEECAA91DE3AF9BF070B9C0+30EEFA8C0A55C8388CAA2F0515915C98E67FA095BB98967D14B0DCAFA9622E4E+2E0EBFC768D80585ACDF28D8A5C2B6EE2FE7AAF62FFB90F569F84A0903996DF0+C1D5723366C436E4088F3E2BB9B47F9789052A71CF5C49908CDC1DDA194BFB89+14D7E3D7D4D72A150FD6FFD8303E9DE5A97A71B808B8BDF2AE466F31BF5D7A4A+44F81230BBE2B456A221E2F72A8B59F8FEA8D31F8A005A5BD93B9F49CFDC3DCC+CE2B67090460F632271C7157BDC2F05BC2749FD562FC28682A616A52D1B67654+DF78B7843A9EC26A7DE2EB168F874904C2915B97534B2D4D9F74A9573A771D34+9F7BC855E8F794621BF6AD471BCC347E2DF5F620F5C209E33A4CBF1EA85AEA87+4492A77342DD33EF615FF34037D660B713C908786D9022051B825226545827A3+2AD1B05D654DB6E6D261B4E8AF0933AD1F0FCFC7201E1A7C1B4199F160C38676+21ABA2DDF1CEB655B3EC3226E0B122976EEA998F7A5241F062E54AD1DFD6ED26+47C99A439E0AE95415059179867CDD3F0FF751F3141309F40E00A6C7C28433E4+F649BCD5DAA64177580E05C495EE7BCBCC5FBF104DAF360CC2711386655B26F9+D349D887EEB32ADE595241560FD5924A1745A22E6A01DB9C285EF14596EBFF0F+03F36EB2E0A7C3864F819EF7B0855121292D49482F046A55CD7271FE03F02EA5+886864D9D8EC22A68C23089EAEFFF03DED6484D8C341861EF8B6FD3C5BDF5AC8+352DA4E13A1E30D0CB71E090E9CFB9AB2CAFD0CA7C34AE7D8E3B2EB4666834BD+9CCD1AC2108348AFEF6071796F4BB2FFA4A67ED917E76A109FA2DC2A30D744A0+9AE653A748C1D18FB52595D84E87F1C1FB6B2F32667FE203262C66627AEFFED3+92B23861E5EB238BB4EDCE09DAE1C65BAFC198CDD1B45D42CDF93E16BB82D35F+821E9E49067E966AFAB2AB52928F8DD6359984071FC37AA652FB834A09E5BD93+3AFAE161140E74C6531E413E8FBBFC42BFE8A464B71EB1D8CAA93B33D7BCC3B0+47C7EEFCD3E9FCF26FF9441DD9BDE68D77AD7251C06BBB9A2103049E8827CAF0+F26BEF33F656A690235DEEC623CC519AFA82DE2AE16FB99F780FD7D8290DA40B+9B604AEF36B529FD184239E7D50561A07428D28E51B55546590A1AEAD4B7F2B1+AB8C5B9022C1FA03E33F8F409B24911AB8BFCF6EF4A8E415263C789F89063E71+C0910DC20347469380B7FC1EEB87D4CED7F4A361E58B61C91AFCABA35C03F978+B9FB5257C31657EE48504C355CE893FE3C553274C641DBC4004F5D5B879CC5ED+D3F21F867F6DF054127067DE86189F0B59A1B90FDABCDFEE61423609D888EEFD+F4A1367129962110C651D9481CEDDB8C5C2576A59AED64E95F7ED042AEAE2F7E+81AC0C408E593DC30DCAC334EDE9EE27D932B98F040DDCD195D6155607DD2038+970EB78221A94C52BD4F0EAC65F1FC10E5DAA93C17266F351669CAE56F42B68C+6D01E1EA03AE554D63CE76D800FDD9CFD89F80A241EAEFF7EDFA41794EA25CE7+97BD5028464D2CD45B53834B4AEF8BF0B9E7C6ECDEACEC887E8790A47A93F668+A9095E5FA1116A122C0E5B74E2226C654D3187C6CFD8807917820423DA3EC1DE+AA020EEEF2280C44A15209EE2F3FC1776875308CEAD38571E7BF889F287E4594+971A83605E0B4169D4A23EE790515223DF8724054EDAD905F57918FC0BC64F96+514B4BF7DC9BA79E763C22C977FB6146B10D26FEA1BAA7BAF21312F78D1625A7+8E242D743471DB5821408AB786E4A7EA9D35E30E85533C617689F95758FB2C7C+392E759C299DCCE36689686DE0C4DCE32649493650BA194A6208C5EAB670B170+3F2C70BF0EF0E3BE2FB0A79224FF4ECECD6BB3388C6D06867A0E5E3DB93C1B2F+464C23E44D3132E7D4086E3B59B1D13F49EB4772DEDF8EDC4F603217233FB7BE+C13C28648E9AA51D53F11FB896839F97AEDD8834BCA53CB0021AE91FD8E95E2E+F8A094093AF556B9639F508A401542B06821FF9DE1A745FE9AC5CACD5E8E1053+911442FC15CA5333751ABFE2C617D38FA1DC332BFEF44AE569DC631C93EC54D6+261583A695F5A392867A57F59B741EFCD2DCFECBC55D1EA5F2317601C9DFE9ED+D1EA466210FFA905A8F85BD58B98991BEA58DFD1CDED5C9B086D42CCE632DADA+147941917B879139E016B0DDEB8446BA017FC8EE5A354533D667B0835F5D027D+C2D580C16B80B3D05CC92C0465CAE077729F0A15B2DAFC89DCD349B3F81D0516+C65526EB5C10E45A8A85D716EE35FB9AB201FD7C89ADE5AD925A174169DA20FB+61E96C73A143DF964C20589EF24A0FCFE6195317F2FA0D2249C0D8E649C3D9AD+FF13332EA2E4C9CD36D8443EC8F027B61CEF92C6A6B72DD4ACBACC16E429A9A3+F5F29C1631360E32F8C1C93ACB22F810B86D2969A7480F486F62F8488BEEC74C+2C1AF13BB92BC578E8CD30BEA6BC8CB68ED730F54CED0167605FA76AD7B7E88C+7AE7688E598F91C471BD65A542E96D64B1EAF19FB4F1234308C48C2DC86E2193+11ABDB4C6189C6F201627C693691A86DD07FF55C30FDB3F72381E09C6080FD7C+9182762E5001E30F52A216E0B71E4D2D4E2F3B20F95DF3A11FDB2D2B5B5FAA66+C46226D5E0C77066349770514E5675550FAC9394FB27CD2C2F974F1FD58C04A3+1EF53A8AB3B2202CCA1CEFA66228E1480A0709436C44BD3319C40CF888AE4692+5DBBB52B15CF3A518F627F672135A24D5DB9B2EBEF04C860AECF231EBB5A3BF5+6DCCD5E72FE4B6DD29E896691868A7DE4120AD06AC573F5608B8449B38E71CA0+EB5CDA3F942482EA7973661170F81DC88D54DD5B92323F46F833DFA757107E9E+F62A47CC50FAA1B68ED535C3E0E1073532A05ED339C8D70B3B9864808ABACD23+AA95E9FDA43D54C66A675FA074E0A5B8777D3C07850A09087F36852B5351F35D+8BC4DDFCA35CF29CD5E3DE118A741FAC4DED36847F2E2C6CFE08669301722D94+376F540982958074E7F1383C409652F6C99DA39FE90B38221E75BC1ECB93ABF6+B00F410A0C5651DB418566AB350FDA1789AFD88286AF3BCB42B98386F7BC144B+02DEB8940D20A6B3062F0C4244EABC50923390064F1D027A8BACC3DE45156E56+4A942D1B87F1C4A76B0D4D6801AE792CCAE3009BF25368B31B6AD5476FBD3BFF+9759EF463EF5E78E10B7BF64005B2ABE0E8813950A08A1808587A98E0021D0DD+751AD515E8278F1A0759E85D8A084490BBB0F8206484AA36388B1013643D3198+3509078847BDAE08E76FA5BF3E3A73C323CE093DCC148E3C02C2DE1E26C94D5A+40EC8308ECB02FF7DD04EC1005A2A0DC74D4E587F10A3EF349E828F69FD38962+2F0C74D5DAB3ED6CC9F97008ACCE74C086A503948DEF1AAF58FC8BEC703CD360+D32098A56AC776B1BD08442052A2A4EF6C8798F7CDC102AF1A2009657254762A+0793F79A39DCD6ADBAA5EC84A7ED6018BBE727E5D477893D84F157074B24C13E+8D4881C7DF8ADC13EBA0D89745EF93B7616EC5355600BB0D2B630AABA3CF2946+AFFD0B2B724EF0F28393F2034B2E69DA5061426805353EB4D80E20739BC4C510+6C45275B8261DCBA10DE1D104B12F46ACD230977EE7D7D1D35D2814139E38C4B+CA6937CCFA653349B1EF64A98457F7B4B5D8F2978F16ECCEF7054905863AA46E+DD524CB33459220C71E9EFA7845A3A760A507B3D3ABC525B35930B613710A13D+098832C58EBBC8B0CA6AD516E6385792C59220331D0922A1F6F838A8DE13C337+900462F952EABBDC2EB1FBF94A66186C177501453CD3FE3582073DD86F04406B+41B6AEB440DA475E13240445D46726A6D45185D56BAB8807CEC8A8F7CE1AD149+7CE2E1BB5DE4E5B9592241DD136479A65905FD0062C91DFF7349874BFEA5D9EA+2F610ADB9AE7757B2307A1BB9D6797D9F9C4844A59841C7C7682105E23A374BC+A91885E7410F56F60C29AB8B417E2D6092F8BB70A2DD5DEDD4BA1077D7CC62FD+EA43428C6F79C332342E15F75B08A1ED360B3511F823E75AD49BA7AE63B19238+2AFE8FAC2715E2FDC895E95036D23127557837506A3B542B0E4651CE2B89C252+31EE8ADC26E2C04E8E30A9CA12F066CE01953BE7867171FF6C7E834742C36C3B+58E74E4B482CB85FD4D24DB03D753F260A585D552CDC9E1941446F2F5B45FF24+2DA4932B973139F328E7E92828B900BFD398B6F41DAA0D6861C66AA7F5E3299C+87A5925CE0E0F9E09AAE0792954A1F2C0AAA8288DEEFFE579E38A3CE8A943EB4+55322A87C1634074EBEC25F724DC1BCC1BC10458CA6C4395659B0DB6B612C151+557CC669D8DC37769E59A5AC6BF061C79FEE265DBB59520EB8FFEA273601D1E8+2984B8AE31AE343F37D03E2BF97DC48AFE50BB6138C7B9F9B5E28672A37BD8F5+8F8C98DC43DB22C6537028798198E2D3B0453ED72487267D653DD50F1BBBDA92+833A987A95FC1F275B90B581B4BB62B6863A4CFAE37F715EDF3EA5A33679FEB6+4847ABB4B3D170C275B9F1AC3156D731198DACE0B051674E85B758500AC9FBEE+ECC75EBBD85F8D62AAA328FB09C6526F853077AEF7EFBFC2B6A29D6D508B1E19+EAFA4C67EEE44045B9F15B9762B3DDF5CE5C18B23A5C2F73A1F6DF7F8679AB78+843AA41FD2A7DC02B45B729EB76C66A89F5F76E5C4A0C0563B1EC5E75D72EE35+A7F1FC89216B60D82F6F2B8DBE85E4FF4D63712C689E696F60B52AB622C2A4F9+37C380775EDB72638D3F81F61D8D74C76D813DDFFF35ABD9A502F2BC7FF65754+2A8660A5A53E0CDC2E8A95B6E33CA153EB711DC796D313C8183D707D3F0E3EE8+BA65E0FCE3F1C07F3D93F77056688B5496AE35A6BA0B59619DE78640A8C3F7D9+7DC5E94894E1E63A7D80600B945B1CCA50F1B85F57673C6CE09EFC4E229D4635+48AB466118D273BAF7C1B52A067A88C00EBFA7FCB378F1575BC0145F294E6F7F+8007602C6560476FA20BDB91831B22404DB1C4C167594B1216C25226D262FEC6+F5D0DBAC4B8D743C669CFF2068CB9BCD2DAE8CD6EE1B33BBF7514C4E5EA79D46+11AAEEA72B791C22A1822E686F3858E95A37D9CEF904EDEC7EBFB0E60995CF64+57CF0EAAE6D4925126349DE06E101868BED82BB51E911852E6780772912570AF+CD5690C6DA70110DD9903BAA3BAD581D206571D1E57712C75D112254C7A3DC8C+892B66CA346EE682E7D910343C1CCD07465D9E49489839BEDA6174FB2E0DB935+2D2CBA6B67ADDA1BAA6A51690A10C819692C9BD35BDC689F9DEFEA78BFE79C47+C9CCFB3D04D20F1D3E0B73498FC0BDC50A3BA6DDB3FAB9458803BB26487C1397+511717CA3493A7590E27B34C2E2E1BE2ED884CAFD5F7C185CD6EDA68951673D6+384E6CD12944F86D178E73C8D6CB46D3A904810C8A2370F4DB0B95DE9F7CC36A+15A4CEBCCB7E1BDCE1C7CD54907F2ED4CB1E9D651A8AC2BADD58DA49BE097447+E45E5BE2784E937EB1CAB0A4428FFE3F0A1088EA71BD2DB74105301D09513C69+152D94C87A42A9148EB9D57B0EF0AB7B0E869AB637A04BD810A3E22CBBCDCC1D+84847B99F724E569522566DCB1C835BF9291F48F135711BE499699BF251C7DC9+11D7F41623271E27C295BCC99506A5AEF35E623A96D01F92B506A2C33B6FFCDC+82104CF56B95C3E93CB10636630B94FC09518264C7DD970231F4BC25BB2B259E+027F7C4E8D94B5D475D9CE0C778599803E6440DE5BD9AD2FCAB5668AEA522AFB+8BC9991B1994C5D94E869DE31B8371EC55978C39597D3471BDA27932AB043EB7+5993F301E923FF7922B3FD7C9E77DCA002FBC9F9E6378668515AD21353E30DF7+9D390E00192732A1A9A88D347E6A74F8F268720CC7D12A2D9C26FF5D6EF22FAA+E62FF10F7B545BA0E9679F469EB8927A534EDD1F83177BE0902D87C85CC13EE8+A3C776CF9B3EA5C3D19E7BFAB3A5F6230D3FFCFF3DBB9BE1D8F35784D3E15BF7+71188E30D837C89A05ECDB520F7C2BB76869CE9BA34D45FDBEC9D2524B34BB13+A16DD0175AE221A1A72765CA8B4582022E8B5146C27FDD64F0F7F44DF0B1D932+3867625851FD106AEA540D239C30D33F6C24562FB9D5EE86CADC690DC5B33C20+2A00820ED56513590296EE2886ED4DAA72F2B81915B649F57B2DAF4148C76552+70951844DD0DCD4C92EFAEF48E2311B2E8F0F89FCEE926204A67423D159B2F54+6B26BAD762ED2467201494C93CB00017E6C838BDB0D0369D8DD4EDF7E18035E7+DAC288CB86EF8BA37DE964405DFEBC13A02855E6D295E4580B8086E61EE9764D+39E1C1EDB3A0C339FAF88639327881365EB5F432172A98D1AFA5240BCFE67240+5B12F998017F0C76268636F2C92F92B3FA662B9B99B3262779857E741DE29A2B+EA499C06E4210F4215286BBB66CCE0CFC1B1C7591BF6136D427874B18993F43E+57A678CA7FF10D1C9BCBE00C4DB2C19F4030B281169F07152FAEFCC70FD96DFB+6CCB5326F6045ECD0ECA79891451A27B10D07A96474B845F1C40142B87F42A36+75C2C435BE856EB90AF83B505AEB25D84BD3FA61834ED8737697EB23EE7E1BEE+7162A3F24CA0EB18FCE2864F56B732A86CA083A1639240F5D3EBAD9BB869BED4+DC45C9D8300C022429F0ECBB6AEE597E09E679B006891561F67BED14C0666352+0EE4EE8B481A52A30BB789429DD89AC0ABD1CD0AC38BC3B1E10B1BBCDCE7B039+132E4C0C35E92726DC920009A81C95A5EAB109D231F9A307656223A0A4303B8D+2FC1AE420E5663625CA9DD728D74F2C59964790EEB9DCAFC9842E7133D0A9B91+5FD704683D59E18E36339862CF80C9BBCB44817EF7F9687F33318D4EBA166A09+855F4FED3FCAB243C9AD0FAC46F1437C3598E9D2BE47A95D266165723EC1DA59+A375414180ECFD1B12615BC0B8EDA3C24C850367F181D0EB9EB4E5A5B1608B1A+9E452D8D29CBB0AA1183177EEC4B8ED861297B1CD1159010B64F67FB5B8BB96E+4ED52EE6F54BE4161C71AE8CC36E409249C1747E73C315F883C76D3F435D3A03+49B19A956A02FA86979BE5B243819BC33F062875DDF3C0959A425130DB54D25F+2A56018E75495C2D365D21CB6560DB2322AD4CA7CE601BC65E5EA902AE5057A6+B97DD5FFA9EF1FCDF10CE40170FA611D839FC14619AD0C7AAF7714722D0E346C+31B647479A326332F3481B06D82A9C476A733DFE0A319F7284083DD67C22CBCD+175A819160C19C0B036C7A280B6D04FE5437881D0ADCBBD2C436437B6C54B7CD+02FE7F518F471F9E241396D3281AC86F17E79652DE033DEBC73EF41AACC711FD+C5B6C146BBF5C3008E92235228394E2D3C11E6DF6681E81532550D62C303FCB2+54FCC7073678953A42D0026AF7FDC402448345439C4BC67941229F01042C4A4B+1822F71FC89505887C5E9C64D7FB5023C8AF2FABF525A1C6E0CAE4428C90CF3D+31D9A8C63649C51AC8402F5794823C697170F63C4763BBA1AA81F9D7D99BFDD0+6D57F5D56648A1388D069BF55CD3CD198B9743EF89FF3EF81AED45A2D0A1FFC3+4F20C8FC2AA465C9BC2F2D0A83BB8289532F76CDA64B069D592A72A8D98FD652+992454600BA023863657DAB41E3342C85B28091B0E77CA14A5D689C0CF94107E+7DD5586428B9B514490F519852CB0B9DF8ADD9F2C5686381B71FC2B3A9AF11BC+95EAC6402D4513854F11201BBE875741EA26311E4163D840639D50A49A3B446F+C3AD582D1F9FEC5F62B324B46FC7079F5796531A229E77B7CC5E79FEFBBAAF12+BE4D98EAA8496C16E0CAA8D66030D7E6283EE5AC2A6BB3FD31BD36063A516B5A+F47F5F74FA7F9D75CFD2E672440278A4C368AA2FDB9A09A73F1E41B0AFE5D415+BD75786897547720723A42D4DED68539852131C921E592F0A8509A321FA46384+58DDE0BF1F75E30637160027AA39B3B81628ADB0297227E1B23A2F9D5C9BCC1D+57E4AEDE807C7D5225FEA655F9BA56DCD63DDD7BD120B80C6E34E1A104456AFE+AAECFDE94937F3B6C5BDA08AD2F931D38C3CCC63345E4E34680C8CA58C220DA0+ADC2638E216E0EDA2F94ED757B6FBA4CD3CE2489F3B7381972A2A3148877E474+E7358D0CA669089BF444A496CCDCC2B3A2B89FD74A4D2270B273931D3278592E+720C8DA2F21EE1EDD12232DEBBDA178D3494FEC9184EE9409413813E8E06B1FF+DBA6A0969529AB33FEA3B4D3A5E4A8A004F328EFB68DA15AE43CD79319D9B528+C3751FD08948D11D813C0C98B3D4F191ED03C4AE77EFFC5B713E784CDF11F1C2+B2E92438DEC4648CDF3DB7D7DA528DCBDD95218069A0C8E15B17FF87EE291F6C+67C8E625A23692E97B01FF30EBCA1D17B726B8C1654BAF042A6B77E70FAD8C44+216F991FB0A6E17A746AF42C4157BF8058752FC060EB0D8C6268F170BC7E2D48+FDC6592AEE1B93AEC7D00C1E2E3E5C4F7611E78A5B7F133CA022789E687D668B+A9762449BEF4376B57A385F87CCBA4CE1C3340158F37315792A16581CAE70C04+1EF85F3CCCE8C8806DA0360190A998443015F9161AE245BC7F7A2DC8ECE429E2+220A13C8464745382AB57052096863C4C61188C505F82596C328071E3D51D1A8+2860360C70C1A67DD1184BD3D4B17008DC+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMTT10+%!PS-AdobeFont-1.0: CMTT10 003.002+%%Title: CMTT10+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT10.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup+/UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMTT10 def+/FontBBox {-4 -233 537 696 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT10.) readonly def+/FullName (CMTT10) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch true def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 34 /quotedbl put+dup 35 /numbersign put+dup 36 /dollar put+dup 39 /quoteright put+dup 40 /parenleft put+dup 41 /parenright put+dup 42 /asterisk put+dup 43 /plus put+dup 45 /hyphen put+dup 46 /period put+dup 47 /slash put+dup 48 /zero put+dup 49 /one put+dup 50 /two put+dup 53 /five put+dup 58 /colon put+dup 59 /semicolon put+dup 61 /equal put+dup 63 /question put+dup 65 /A put+dup 66 /B put+dup 67 /C put+dup 69 /E put+dup 70 /F put+dup 71 /G put+dup 72 /H put+dup 76 /L put+dup 77 /M put+dup 78 /N put+dup 80 /P put+dup 82 /R put+dup 83 /S put+dup 84 /T put+dup 87 /W put+dup 88 /X put+dup 91 /bracketleft put+dup 92 /backslash put+dup 93 /bracketright put+dup 95 /underscore put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 107 /k put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 113 /q put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 119 /w put+dup 120 /x put+dup 121 /y put+dup 122 /z put+dup 123 /braceleft put+dup 124 /bar put+dup 125 /braceright put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3+7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260+6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89+14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0+0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397+3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4+BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F+D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0+FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB+556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F+8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E+F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB+B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673+125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787+A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77+4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC+56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178+E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F+15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385+2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9+05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390+6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD+04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728+C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4+70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA+4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A+A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473+62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364+240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D+69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2+ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84+121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4+0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB+D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A+0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157+D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C+550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844+CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A+9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4+FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F+7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06+E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6+50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A+2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05+9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2+44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE+49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9+385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091+8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011+6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C+EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0+E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB+C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE+484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29+4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0+0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C+6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F+5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C+1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3+909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8+BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506+CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0+2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0+CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08+EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811+0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6+9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A+D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4+21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0+7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F+52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A+FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD+AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7+F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429+067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E+E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431+C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937+5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B+0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD+CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC+2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD+E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714+56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957+F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F+E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F+0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D+67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046+EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7+CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8+9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5+9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0+C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861+327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203+F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC+60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD+A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4+B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5+0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F+1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1+DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D+55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C+7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E+75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5+E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149+8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E+F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB+8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F+D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914+54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0+49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9+CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0+34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276+1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA+6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A+DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4+E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD+4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD+2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC+ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934+3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE+97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C+FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570+A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF+639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4+D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615+E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2+1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E+A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3+F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780+5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5+4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50+664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844+4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8+35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04+1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6+01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A+5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82+2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0+DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C+BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507+39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1+C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665+99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481+7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE+D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8+6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184+5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38+6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B+F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81+E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9+39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81+7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5+ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77+6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882+2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230+1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41+06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE+5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A+288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E+7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F+759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF+E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E+03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A+6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859+314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266+74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D+906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36+673B8DE32322BBE861AE251226B4385AB28702831270DBD25D666FBB0AD7B96E+A44E891EA1EAF0F87013AFC982E33D67A28E96E0C9CB99B9E4192536830D9901+931A8CAFA41289633B20BA3BD7AA3414B6DA8D57CCF2FBE39920CC06361F075B+CC40335DB9A0071CFF77F6B7BB47F3100DBDC9C4A58C2B81EC99E8E966AF3390+E3FBCC28BA1D79961C8A1584266454DF772FBA99664D74D4A89FC82FFEDFCFE1+4C9E4A04291E803D142E37E7ACA66AB279378F2F192FFB2B5BBAD18B95F03136+2CB594A3D6D3F8576B90A6C4DAD6D6C8EE07AF682F925F01D0B26CBA347C03BE+F3B0585CF4539FDC66915E22117078CC94D621F31DCB3E021998A5D6EE94CA4B+E214D07517283D56973D8E4367392BF6C1150DEBF459D141AE0941C1C8C5CFBE+E735D796E365A1B0F60BB4CF2801EAFE4889EE5F338D3C4885368281B3C95CCE+251C28A90D318A8A0384439B38D63B94757252062EA44E88509FDD2E75FAAB71+7329622828B2785C1A8B26351BC74237A6BF99216652ACBD4CCF54CFC8AC72A6+46342F1E32D4318E7E27C7B2DAC943B3E72C472FC6F1DDA8684AA922516A672C+E969C047E318B5E3B1270C1BEB1C4071A15BC81B29B268C679B41FC5E381BE33+DD95F0D68118CBB60C521E5CB2BA46A10E50E9238163713290DF6DD8A27D3813+F871C07E725D4518013D9A84CEC96782541E5580E33C2EBCDB18F08EB4655A46+507A8526DB26C854928B81FD502B0CCE4A68943C12078F57C10F4E85FBEE1025+46D925B8B3B447D4920410FEEB9844FABE985F9228FDD9F26BDA3B469D678F01+BBD601F46245B0AEF9E844A38F0A186733A8523992CBBF6DFDED8BDE4E6DDEE1+AA0EE78B943B79CBA4AE311FF4612252D9EEC7DDF88BAFFBA418D20D93D4BD25+8AB8E413A49DB1B76766C930D8F2C15F6E09E5CD72A64C06207028CDBE88C894+4E5ADB4CADB08638040D271A0AC8DB8F2E7A2BBA83ACD3B0FAD6AC0F5AD00D9A+C437D2D784D667AB71B53FEEE0F45A6CEC462468AD09E6EBBCD1EB55B342DCEC+4CC1FC6577880BEFBFF5820772B44C171B4AF5A3CAF48FD1F6A4DB15BDC026CA+BAB07526F0CA97D0DB8A56A9BC0120CD61B56115A4207DEF9096D27D3D6EF8FA+C5409884F052D1DB422D245201FBD6463F31D0E7F52B464FE65352F56E78D58B+F1E0922FBDD3D7BEC545AC7547CE5236EB13B7F11836840E5F052120C9124E64+229D546A8A2DA66680C9339C7F2D58528CDA09DB9AE68ECA5D525693D0D88CD5+CE924232EBCD4FD67B0C3FA34269D719848F1FB5D07D67669C066031D4383B22+025B16031669D539B0F1653FF75A9F24EEB98813D845E5BC790ED6B92B62F165+1E1705BD11A899C877A1F71CF57230CCDF06634CF6AE60950923E231E3A5087D+B46F37163C30A231CF37F19A7BC912EA7DAC0E27D99B218E26B7972B6E885667+5B657C7A34457B8CAA6F483C4A0ADA536BD7A53D0FB7A4EA07343C9AE1722C0A+9F805A7997EA30575F8FAD94483CF04374F19B0E8272B9810002A9A0EF849BB0+2EAD4A1324F3B8AA9F136ABC7A8A318D393040D392F3338DA8538341FA4D65A0+A884243E4609BD19FECDF86A5980399A56A81AB4774F6A5509B0FB969320934E+230CFCFC54614E158F4693FBC314EDE454C5ECC4FF008A8123FA50A4AC259332+F8D7273A3F991A49793DC9845D5AE7F959C34836249AEF8ADE9EA193360006E5+6D3FF6111A509A5B66FEEE37DD4E52D3BEF83C4683E9666298A744958DA23AE1+966237C791B13DED8868B007330E8B09C04FF6A49FC66DE560850B0B23E1DB31+51AA7BDFED532F1012790DF7F6E96BBA0C4F03A44E9C29FC4B0155AE77FCDE8E+6B7A8B51DC7CD15A08CA2A245C39D4CA9C4F672C37CDED2C60E4232862C16D1D+ED4158468118EAAC4D16FD02C19C536AE9DE7035B163229B643FC2470059BD86+5941510EDF4CCABC332ED0F32FE7D60C626217A45A4B81C21C7600BD36360C8C+D70B3F5313B8DF14BD3989D171F58F1E998F69B0E6E45335F92D8DA29782A107+D50137ED1A9E2AAE0AE8033F3ED4E37445F740F31D9B671F56691C803CF83F18+9A1A07946720C392F80AC36149113ACC826A8234B371B53B8DF27699529CECBB+AEF481EFECBD6CF5A5083378153907E2BC9B80DDCB60C1D5D0AC820CF32B08D9+2643EEECD1F690AFF5B2AEFA5F1EA640F61BAF86BE97F854208FA97C7E58A89D+E99C1C96F44778471C3D23D07D392FDDDE2AC249E223486DA581B49C709E1E68+191120FBB4C50E723025DCD3214AF42D3E6ACC9B6BE1C8B588DF5FFD2683DEAF+B7220F45E3E8890E067E2A3D0BE8B223F4745FDD115B9CB5D50E8743DA79B0D9+BC89F3F0E4AF51B3B602B0E4064184CC0FDD2FFE93F6050657D8244CF19E3852+8ECB9E2D1294B8A7332035F4912F95233238D511140375468295A018B59BDAEC+C087BD368BA95F22B7C4C249D08E4C5737394D13E13D6CDDB49C4A6C1539AC05+B84458A1D041678A1BC1282DC784E4B544113B89B6ED615FB1A022FABF29074F+F629E2D24F4B9F78C63E4255E5B57F59BF2067B7D0394AEBDA4591B5A5A703AF+01FC9D4FB195D3D147D7B7F1A1A60BD1497E309AE973BB998BBB7ECD8D012E5C+29E05348DDB9F601D8AFE22AD4A634FB6F24BF86437695F7A488B8FC65FD9DEF+C60C0DA5549619CE11594F87CD7AB112B4879CBB09A3BF5B2E11E41D16B0CD9B+4F53D767674E9CB9E14E89C09DFB7E3406526A5C37EFE92CE4ADA26D2BD9C3AD+B96307EAD2720BD967BEC8DF9CB643F79E04927524A4EB049887482D35CB74EF+0FA13C6DA0EA870F05BF73AD979877DCDAB1CC128E206316528DB0A962BDF78F+B8A3AE0EADCBCE6D67206C7D104884FA77936F0D6F0DACAB0DB8BAB5AF7AC332+D1A59C2D029265869A6DCFB98DC8888051E280F4932E303AEA6B907060046CA5+E360B0F41CFBAD0F63E37069D52B7FD5EFB2533C4974AFBB69A6393A0D84229C+222646D3984FA16370C60D2F59B96E523560AA1848D82076C95BF2DBE694FCDC+35BBAF357A32CD40FD070B9D2B3C63FA9D9C7B283979B0A2DC27AAC3DFA31C3B+2A2BCA2A41BD6A201AB2E675FA95ACB73BF8D9821B74938F152A75F5F43F5198+26169CE20216D9B0DB40C47E3470993A0E707F6F0E55E182AA3FC3001EB64C16+0FC02B55274216D42E46B5B34155F8165399FB16AAD7A2B307CBECBFD8C3AA3F+46E30A2EE663C2CC64E2DA3631AB809AE0F14337BCEDB380026F89F98A4433C4+62D4F80CEB5600415644DBE346DD63FC921AD13A0D61F6BBDA5BA84FE0610C4E+BFDF588DF93B6925B1113A415484EC83110B3A1F8761EC005AD0BECBDE91F027+6F2D39E5E0346D60CBD322F44E591D1F94F0AB19EF0ABEB7E4AD33AE97D98D90+BDBFBA0CAB5056CA566299DEFF547629910AE7AB2338897CA1F692B8AFE7C914+8E32511F945E1172026F35B9DD8AA1EBDCE21830D0B006566000DA17844E0D9D+322780DC07CC60CBCC571E4913F65D28D29FD3591327745C433D4E18A02ABAA4+4AF5A1928578691935DCC5FED39C72A63905D99A99BC0E69089E11BD8BEC9573+802C4049FDA535971EECC6EA4C98AEF3565B68B6B10FF6BB1B7CADCADE74B5A5+48A005397B42D6D9DBDD913A533CEDA846AEEBE01D303E40E2264C8E03B3C467+1BE5FD83FC4D245FE5C96C98E5224ED2AF031AF4AC93D0FD2593B7139B39BC8C+210F53ED6EAD50EA53D2E9FB0A4BFE7B456D894834F7B463959F1AF73F642755+6A774563D4E06D6C419CA7C2192E9CB3875E030BE9AF48DAE597E6F5C838AB29+0EBE9147FF99F386B88FC7A7E3C17D57A702F41883FF5A094A689CD91A339852+819B5FF4252109DD71BA2B3113B26AA8D24DB9314ACCDF94C318E51CD311FD1E+D393292969776F1CD010DAAE8F5AB97C43F7B54D2A019BC2A62D796AD2979208+CA5CE2F963D172E4CC36E48CF50DA49659F9D88F928D2BD1AD378EBE6205B288+75E8BC06CFCC6ED2537B8C397879AE66DC716948F69882FD212CCFB25180493F+EA508AB6BEFF65D5967638B5F47AD54D94BC3B745A47B0E0C60879D540946742+FFCAD5CF2AE8A27F31977B840E30298A3F99C4B44DD35486DD86097C2549F285+4BE39382C0D8F3EA9F4D3DA191C68F04C98F7764AFE1762F88E4AE083E2221B6+30E2D0D5F8F758C115CD5A4EC13192498F744EE277DCAA7D7FC3DD499EC136B6+DF7042080689213C7060E518DC9DCDC61C99FC5107C9C0FDA24A2AEC7699760A+A3248BF2E71C13BFEC085EA1EE7443A33A5F451C71DF7BBA360AD9F09B31A0F5+E6CF04B31EDE282056AEC0FCD70C5AD5CE1CA3A4F73097ED0C16C09A096F7DE6+8412B12AE1AFCA99FCA591943C41C7C6FB3A2F44DCE7BCA3BE7C5914FE2F7ADD+9772BAD97C1FFD711116B5735BF2CF606C0B04EF64464C854D8976D0CC83D84C+32F4BBD097068E4D51C94280A559A20F0957DF2E49E5BB065D115EB9ABBD5C93+33CCAEC7DF0EB46164A393C10D02C82BF22494DFDD9F6F1874EC1D8F812EB736+ABCCF3F1836924817BADEDC2BA301F7F81F1E00645D7D196D1736A9149FBEC02+1C64413F248D2CBAB75E3650223A15094E8721270258323F31DDCF39AECF9BFD+D174918B74CF5C811FD0529ACDB73397E80C7443E454621B99394BCB13792BED+99648A8BA8F8CB4C0C6543AB28F45C6C82C9C9DB9C7020B7E0F652074D25071D+CE494277DD29140446621439DEE9990CBBB93920127747732414E28C6ED045E9+49E25F10F21C2C8B0569830272D82606BF327B90331AA4CCD3ACA54CEC65F223+6C157DD24C9C4BF8E27447531528EF0E1BDBE7599616AE221E1ADED0F206670F+04210A36246CB9C9D57E899098C1DB3ED55E784A8EED98CD988EEBD5E24B4EE3+15CCFA1F9B0C5C4DC362A3AF8184761AC21F5ED179AC473C76A5FBCD52C00CF7+1E044853F805F3B809C4D7F34ECD09ABB2E1F149EE1346F7DBF40C08EDDC0C07+76C451AF0A0C63D688E47601415AD280EEDE9F03BAAE8BC7730CF29A79136852+CC1E203662256CACB4641E21BE4BBA087E64317188232687485353FAA701B681+6BD58EC769AEBC1A376E2829520BD09818125EF1AF4782734ABB39439A494325+A77C3BE38D96398626C83FB700B8E5C16571FB6A0AF487665389889891825700+6CDB4A44206EBC642EDEA4A185EB2E8E959A9F306E697FAE4A176D33BBA1CF0C+8CC0020C03BEAF6833360B2FEBB95079B8BC22B1406A9CEC55806865586CFA43+A01F894B080EEC72443609FF539B81674877E3718BF4E7BD49E17C5425D2A3AB+949C1B5AAD54B89689A28E4F47FFD62A054A609AF4A56005E395EEA223C04D80+8F0ED69BCC83594627940ECB2B801ECBC4E19B30882F753FAFAAC406C91037C1+D310751B6A1623D7C50075057EA5A68AD1AAD53C8026114E451444FDA814308F+BD8EAA103B79CC12A1298963AA96A3AC92146E6CE77A3A0814A856E67312C558+42CEFA4000529EF9F5E5AF040425551C21866B45697C574B42A716AA56826B5E+4F7373A87637DFEA0227B4775699A2AB7C7FC869291AEC573CFD0B0E5186F694+9AC6968C5AA9AFCF40656EE4214AD10F2C7B258495DB670DBCEE9190C1DAC82D+4C1D2A8CE02F38A530C07672A45695445AFF5E570507EF326907E7BA9A6936EE+BE25AE76CADE1079C8A909833F707D09CDB11F72FD66A31FE18FCA1AB429B0DF+A85CEE0C40D2F06570C474B0B4EB48E4E5C328B6F557D0B61924138AFE028099+83EEE604F5500A28820DBFBC630AD87C543B679DA6382AB2B2AD3533AC7981AE+DB9E9496F0670051436C2074BA2A21A0359A31B37EA5F58B95273CEC71AC5447+D9667EB6A85D31E9002E73F3F588ECF72452D558135B0BFB665E55E31974DC28+6F712B97D5840A879D544A5C9508A7BB0ADBA36A1B89E54D5AECDC293E4A4C81+296DE86F5F4A342084D86961E591AA65D25FEEE77C07A3E249AFFE8EFC456FFF+A4A2D50A00785D31860716F22E2D1E706E6B8BFEF7A4781B41A8B290287D4DBA+6392FA6602B29527A604EE5A1EA8816713447ECED491624BA4B6913F69FAB33F+1A7E527C90633202D1391D3AF0323563B1F051365187978ECE3AE2DE32946610+0CFCA6046A71DB74F1F0081C90CCFDF19838590FEAC52046D8843F66438288EE+4501391F59132F58C44EE01E188474C2AE5BB7FDA5D41EF985B32689AC6F1364+2B69C4A5A1475A99DDD64EDC87EA09A089F5ABC82F1363F994DFFF0EFAD6CD13+BC8EF9E8733127F47354002AC54807385B42A3310C63C1EB4A3E9A6542B4291D+13C33DAF1D71FF137C57A00EC1CAB457AA47412EAF95C1C1F2D6DB15B8123CC5+7944DC855602FC9DE410D7B93BEE0A7C22E2175AC6DA8E03C3AC3596AE42982E+42B025D5238B1B8508F95D4458EDE3789170B9330F2B1EB228F795766F7C72CA+F5469E41DE3FFEA3BB4D9C94F6F1839E0F7C0B3A8BB7DA9CCD4A50F76DF1957C+E9408B3AFFF3C2F479FA651F014DABF89CE0CA17886F975A3603EEE0896FE3AE+0859C452C8DB345B6D31C626B83423EA4D346D97E861A7FE9495961E63716B14+D502EBE2257D694EE2FAC2B7255A84EE2002FEEA176C555E5D8C504EA8945E67+8EFF1A2D1A56E120808EB6E978C0D0DD19C3809155A0D5D2CE1C0FA8F4B624D5+AF65117DF19F0CEFAF4F9B55E94103F8ED6A1F33F8F9A6524B1469E66477F6B7+BD1054A90D1E521D71D27299A62F92102201B41F583E987F3663CA0D7DDBBDBD+1B2C804A3BB94DF9F26D8DC49D159947B9B839BB931851EEB2EE823390EE68D1+E14FF11071451A49EFD19D4471436925BC7A64990CFBFFEF4C1C46A488AE9105+E26F382A2D916F068752D6107112F874A706A172F3CE0D4269B834528C096C2B+35C18702B7CF0DF0ACB7DC1FEF9FB48932200FE8CD8EE2AE801CEB698879334F+9BA6FEBCDE31AE6DA9AEB2BA2F6D17D15618F8AA480114BDE42D94F3C09948C3+8237C7FEA977D2DB91B4AD67FA7D82A81562151FDE6E54996B79C2E6795E23EC+682533E1D7EDF9057562723D1270A093DC03603C4F78EAD8491FA964E28B2CA8+22746D59AF0625A46FC18E84355DF1ED29E531868377174CA494D8A3D5D7774C+B72186F9BC76C5822B11C746AABE9F584FDD437B8BA2D321AA3E15E51D68078E+8B6B80379C277EEA7EB1C0D7A3D8E50A7EE090D51E6027CABB3EDA4678AB1703+13251BC9BBCB4D0701FA429B22E054EE6357414512D07DB404F44F2E72B350C7+3DE411B078C105CB4A48BE41AF5CCC3E04FC7FBEA5DF2C29F3AF0CB12323AD6D+AE51156418A906FC20B59B2553DD55A27F70A5F892302579A3C6B1D9590298E7+9C3F19C293A2B334C630E32B5EAEBE15E111D8B2A47BB322446C4ECAED61DC49+91329373C51A1BB3960C8572BE8941FE2B4A13B3B4891F944A4ABAFF73153D73+011677F465F62E9E34E096372D45BF6FD64997894C659875F5CCD94E3F9529E2+80D35B7ACE4DD9F23D0DCEE0999D8C0C438DF122E42F3FD8A212FE19CE7469B5+08363EA14A35B819E9AFB0C5AE0EC324D8C138608D279566E4A7310CA0E257E0+57DE2B75FE6F3CB2F3C0E7CC0180279A71308F775AC2743E298FD7D022EA9497+425941EC3A20445294C0D0273F326E257A3F2DA6D75969EA994D5873B74E4A8F+60FA46837331C85A90C1946B54465D0EB4C0847C7146F17C15DA1E22B9ABC14E+55BA709272B7C12C32FE25063ADF2E67BEB87280DDD31DF8122F3483C9ACA0F9+B7CA83F1EBD51871AB1FF8F398411A16D6B3177A691D3325DEBCDB3E9FA9FA5F+8CFC59E42C50D33B946152777A95F91486E2295BD4748871D5197E958A1B7A92+E6BC28A569AF2064AD01B4A33AAEE9742399477FA2D3A8D902FAB1F025E0672E+8B2B6B31FA2B760EB2CB79AE110520E865604638181C9348EF6A35FC122FC683+34E166A41B2BF5414B0C31B84694D0B15A6636E19D69AABBAB85561A0CAFB5BF+13C84DE65E11BD9B65EFCE822D2AF5803FD93F7CA4AF8ADB6F4ED391053BE51E+807FF0ABED3384EA1D35694E806F950991761DF729F0E035E15CB5F398F0236C+E88D5E1835C673C0C98F9B5446BD3C4891448A27F8B8D973F44C29967B4EB7A4+CC66906B8A03EFA2DC992E07068471E2FB82FC02070242D36FCBA5FD24C8FF7B+3C2E7FA98683FB8BD6EA3615E571D65B297657519D67A2696093A3D03B722343+EE1336E45308080BF1513CB10F7B9DDB061BA75A0DB9F7A9E3C47E4EADEA6804+FA604AC1CC26C65BE9DACEA28CA31EFE96F33CCA4A477BD560E628E0497FA550+0DB126AD5AA214F92439F3AF1B989BD96BB07D74AD5C0E8F8C7EBDB6F13483C4+7F98CC6C6BD376C11FBCA54E0636227E144354E2AE92958A60E6366DED2BA49B+B4A2F56E49901771BB11A167B5F2DE477B0C6CE73DF45EA249AA4150CB50742F+C0397227A12E05B47DEF13B25E8B3E7BA9377F2C55D8DDB484F625BEB57EBF8B+057FDA05326AF2F8A11B51E2B18E339482C053E5AEB33E95C938486002DF9ECA+E0F0973E4FAF9EB4837556D73048258A64AEAE0AF75CFB677BB0677C0E0B751B+BF52229DF940352ABCE717BD0E28A8AF29F7B50C77321E216510F1DB46A96966+3D2E246548033892FEEC6B54A0EA61019367D30B2BEC06392E292F0425CBCAA0+C49978673969E0832B46DF53522EE0A7ECB16B4CD58DB34DAA197331C74D02E5+531AC13504CBEEC8716119AAFB9B8A4B8A48F850E342C54B3B3532B79F7560C3+711FCAAEA9C8D8DC0BC2C5E586205F00025F12F6603277C1FC912DCE284FAE8C+7B7516236A0DC290DF8FA553FA22DD7ACC2CB603AFB91652B6908CEA24CD02CF+B22CC88541F1B2E755844E28763E9DFF1641F3902E36F39F06EA0EF7BCF771FD+BF0346EB72E7CB1529E58322E60E9EE15B3DCC79F4F186C1BE297AD9641B8898+E28E24810DD64BD91B74E03757294CB214FB04E335F3DC475FE74A9427CDDB6C+6B55C8CF9D8E19A81DD768CF8DC31B5ED123ED602B5D2F1DF8D41E16244C23BC+BB36205B766EB71F1CC286E31BE56478545AACA514774942A2914D381B242330+F2711FCA196EB2A4FEEC26D4413C14954A75F9ACAB99F283AFE5E071EAF1B38F+98AF73145576D0B679811E97981120374B958332C2B802CFE4ACBC59F0CF5AB2+E227F0CF78DF0E23B870C6BEAE69C890E714F216D517BC56C314CF1BDBD618C5+6D56B028126EA0BFF63969ACFAC12CFCCE4FF3AB68C5AF901F9DF03A76C8738C+807773EAC7870EC23B45851A17BAE53B018AABEB4E408509AF9BAA101832D277+AA6B71DC4AC9335A96A2656E8BF26956CDEB38D003F9959A709156EAE7DCAE97+E8DF7EE745C71895B7B4B61FC7755AEC469EC3AE6B5EA1FB7E2CB27B1695C558+430220F66A044F221C056EEF9D1D01CE27E185D0097EC534BEC43B1BE22AE0E8+F93F8EC601C0D1529A57F2640F27DAFE11D9D72F62279F00C5F2C8414FDF5679+13FCA0D80416823E4DE8C747234F597665A4812A462AE0D69E2C8F9ACFD9B1D5+A3C09260288785A424FC7661E215F04A361FD4CAA71C0702EEADF81DD2B4B9E9+93C0F25C20EED406239101175E046671B1AEA2C7541162CF5FD17FD61B6CBFB1+E2A9AD14E6DB49143922C18B78DC7026D027DA4603DE05FC2AC6C03A0B99C50A+78C1B5C0F989F323EE95C5125658468CD6ECA301790DB09A4DEA82D15CFC9E3D+476A54C50C41F0D9D653DCF45B20A2516D0ED53A99DAC2CEF9313EE386183D4E+96E3047D2B15477CC23C5E857C455B87D07D92FDB0C3E83B52418768611DFECB+15846BABB8CBACDCE1CE99AA0CB62BF21FBE4CCDBB8299AA575DCFDFE9B89409+7DF140B83F28AF4C6B37FEF23A47B539629C11F6466E9801393AEBBBB1F15FB6+8EC98E7CB7EDE7F9067C9ADE4C3B48566BF8682AEEE9FC090B298B55D3DC0141+0354C5ED646C0F5D1CCED2CE53C3655271BFCE19A152DF8680D0CAA1102FF5CB+3D0BA669F470D77614E145108675FC6DFD3C96FF7655E9F11B221EEF2291F0E1+787B00FB29DF6386D8F28EBEF06373F32D9B323CAB91C2EECAFEF1B61A2F6C5C+B2AFCCE93AB9A0CCF239590E217A6FB9BC014F6DCD789D32C4DAD9504F8D23D0+4DABEF62679E594FE3171D9826DA8DFDC01EF19C34C9A62502640227286B2439+9FAEF412E6843AF7D4EAB273416730F60CD14F15CB83401C56F44D2E14B867E3+2E76ECF4E8D910F69A10A8C34E627562AD5753AEFE8519116491E2D517F5150B+6021F4E0AE16C94C87103EC2207AC628A2C2F40A835698A7E18D171146C1C222+6261C9CD2096F3AADFC87B3B966F24AA4E5D3D79832DA214C81DDA4BB2776241+A02610782CFB905E71A10B70AF0BB3688E2F7DF0B215EA94D08B9A3149156C4E+50997A09BCF8194156965D7745F39BDC30CF6BD07D58644EE0753845FDE499C9+23C8ED9F1CDF2E25D5EE48F2C086BAD09C3A3406220415913578A0573CA91F48+38CD09EDCA3D80BB767BAC7B04050C2082C7F62CFA181DED71265F178166EA60+855627FD844DCEEF51A53BBEBAF4A5FBA868D19078B7FB96AE0591F4489748B3+B5F39AD0DC9565B95D6437A5766849D28D6E1705DD90FFD25A3A84D80006730B+0A50F5B0759552BCFA5031D9AD8BDC1F8E8F1360303EAFAD2CF549FFE58BFD40+940D600E091C289A54E9F30E209D94BC00408F8DEEC90B6E7327B192CFEB4ACD+E294E7EC641931A3447D242C1AE2F93D08688E2C6878D50F7B8A5805D6C042B9+BA59092ADE6EB069D372FF9833BEF296E0222E796B40D3A97177B97CCC3076D4+6A14600D70962336CEFCEE644A0B17A13A1648348B134D98F4F1C1B762DD12E1+F554390C853B5852FFB74F029F1CC9885A346B65B8ECEA00C9BCA0C94835B4DF+3E44BFA7E6B430D45F38C67B834DBB4DCA9A590B8649D236AAE675973508BCB0+20E5E7DCF06353B87F33EE722ABD20E4466511E57EFFAF07E069C48E1B03522D+E425C58201D6F0CF596F1C59B2F9ACD6BD01636E703E8C37641B1E28D7AF9644+EA7EF934336B42DD95A3CD4ED6DCF57121EC7025BDD61F46FCCE0E01F764EC4E+DB6DE0DC4903C9A04202E1F559BF9794F4E28811C7D5079E9677B9D41275A520+C9E9CAD42CCA9252F117248C5441A3B96FDD147E6D5DE52A9016E6B25AE98BE0+90B98BB9F88940CEF84B72CD950AA9A96C9EAC97816714609B4453F6E8BFDE99+37A82DB82910DA791591C8DCF2595F18B60FD11D1A925380E47C868308F390B4+100A26033576C220F65E546E8D868C78DBC44AAE81180A8C6737F8E03CDB4D4B+40794A2E8B274F83957ADFDB35E5AED1218709E3AD603461337FA7A22A4649D8+BB399034C0BB876CB670B8432C1386849A7E10C8DE4BF9C1B81FDE91824AFFB0+68C634205BB2A0F247E98D17C5E2C69174395C3B8C6A552F81145ED26FE6268C+15A25434A57854C7604FFE67019BE4057A73B26898AE9EECDDF2E1A110A1C987+4271415A8EFC89DA2438EA5B230C22A9DA2A60CE743A9FDFF191468C8E995F11+BE22058772C6CB1BA9CF501111C251EBCDBF34BA3B0ECE9ECC2075A645382AFD+ECBCA7A407FCA28B899C329F3F523C95C47633FE6492E65F772E847A236E39F8+537ABD778101910AC6477173181632F0D1E783772E32725E846938EB77AECD07+17325A9112B0E7F93EEB2B3501000B0E96F89C37FBDA04F67A94BF0D8F50FC95+BE936E4A3CD8F606CD75092F2DFCD72DA5989831FEF87FCF826C014612674006+D2F7A7264388A281037EB162D91EC6D5B05686A2D096DBB7A13AF660CAC2EAB8+C0727D72B9A9973B8CECFBEC00A3F9C3A4E582FF15A844224F4CEBDE0F18F669+6DF959BCDF93CC7A81C7946F823A3B05E66FE22F0BA5E78A3B24CAFFFF06266D+01D0A05EBF4C3854AC8A0134E23E68B8DE8CB24047C84B50F0BBF0A4354B7237+C55DAEF9447CD7ACE0600222C8BEEB630D9B58334A308BAE99AE06106D33C946+967AC1D86D3EB7B7F138BE777A22712755063788648BE7E54A2EF927A1988F8A+5015726CF9187BEC0E9C0E4D99ABC12D1A3E6DFE032F9895279E1C548562B775+5C531E883B1BEE2780869EA73ADE9D98104A6CDEF4E6E95DD639FB3A8293B370+B38B11F3A9A489E8727A5FE88D40F3FF4AA009B017F10BDA23224D381F3FE900+7AF63B47082C3433B49430E61866F92FC465AF05F98B78FE70119FC7460B2248+8F6F3D4E0C2350FB67A5B49EA00797C82A2781A4F25910F9CB244BF737B69A6A+350A8387B9297600B723346394E6A24E58A27A081E8CA610C8CB020A54BCA3A7+FEA5CD7063F67CC6B6E6B39564D31FFDD71D97CA73FDA7A1FDB2A2E319A3EBDF+148E9A302A5626D81BBFE625AB7CA718D843BACE4DB8258F09065B9FA1F0F96B+29CE69E6A5C2FCEB2EF24BE77850736F0BB99419571BEDFB5D1BF86498D89B14+8882D50AE504EEBDF358D6C2BD2C4E1B7285E0BA2434548F4527E19C50D26299+592D715DC84F2C31DFE19A5D605DB9C8FD72E1991701E49C384540E011034102+CA922C49DE84FB9C275D94B487F3A7BAAA4AD3B7E978E2172F681F38EBE1743D+DBAA00B8E2FD2152A12BB4D83D94D9676094875EDE7037379A1965108C35E3CB+A1FC2F48943E66F53CE773AA6F842A7E8E0D6A33C204B06FD9ABE00001E5E76B+F7E9289C7870B7B3478067A83FD55B1E4A5E6C9EFF23C727FA79363B47B1CBDA+54352F903432F4C7AE0EAD6A25E1B17BB757B538804186FBC74BFD4875472B08+1D254D076DDB65600EA90FC636F863AF7B304EED90623EB186BCFE105C15DD63+336E9C6E952771C0B081C6DE4592B14CA7B8F884CFC54037F5CBC52087FF654E+4102E2869BAD1D8646763B08DCE3D538A024D9976FFCD3F9E998DB14637A2CE1+BC99B45C1BD71DDAB994F2658B7383A671697C6C612D28CE9F85C6DEBDF1036C+305A2F0B147AF089B4B876C4056DFB27F0531EA6E87C304E70AC2C1574DDE5C2+F3A4C1EEA0583D2B49DE2822473A1B3FCFA9E6DA371DCDA410705FACB1675DBB+2219B9B5D61DD7767EEDC526A6FF572613B0193B7199C655C90ED1980DE5B282+5ACE170593A6D1809CDFA7685F9E006BB8020294E0E126D7559429F70E34A9FC+515D5AD6BC5ECA6976E4B1328CA0311E9D578FDABFE57BD3B08FAF6E7AF24047+B7085E41AB68FDE3AF3E86CAA82B16FC2257D96D8E4B0A11772A6D87485AA4CD+413BDE118902086CE3AD3BB9DDE919D554240CE4DCC217A3E3D98AC04171DF7D+4D4BB59B5C9306235BADB1D91A42E05F979949B96B3F64C0A1A60349222EFF87+118F7532E7076B44B1E2B81004AC591F300077CC15E94CD750C4CEA263E80C4A+C3D29BFE20F28A3CBB5493831F1C6249F18B2440CFE396B26905423DB7CD314F+DBEF1D2F75C65088F817796BECAE549D1033C67D921B29543DE2AD436B75B8C7+CF35E0C77FDDA4448646AA02A7057BA06C84BF315B9787001DA1FB59CE3D6F15+0A38B8C019E72FD6FED54C8A9E635A02F536D664F7D6EF67BB030E91FB47D4AB+12592B467CC93E8CF658BDFC2956FCE942138EB6B031B5E0B6FEEE1E3DF069EF+0F0616D9876FBD204A97BAED3F2DE4C3882235474CD873C4C0D8D37ED9553646+ACBF296A803759DF923F2980B0604C5751D0CCA38494F75467B421E27F93A0AF+B0A6577A558EB14A09514B8518537885FC3AB1A3436405FF0F1830E3E5693630+DE72E8ACBD70B29EAD26136E23240C446E8E129619A050ACAB4CDE2665366235+2D63B00CE64EEF00F2CC265558AA56055657EC09E598655DC0E3E9DE8BA1365F+5D8E15BBDCE2347761EA5E442849115EB786433204CAB54C0768FC8728AC54C2+92FB751DC053415CF3AC4C1E5E49CFA223337A25509B643BAD9EDBAA2A9C57A3+A8BF0F6957DE24A53970410220E4A518C2D69F8D31EB80D339C56F6830110D07+88E41B81D368E63647037A88763A7F0AF2DDAC69FC9754097A3AFCEF9C1D3D11+71EB2E5FCC6904A951790A90A738735857B919E28981E4CE0473DAF7131960A7+83F9D5F25B4F6B70A0A41EDBE2D8D8883220ABAE6793A1E3154F5B7328CF5494+BC727F90713BDD5EF7788923DD7E40D66D457BBDA9044EE81D043F56A75199A8+D1BFEFD4F83CEB1A9B0C47A069438D3599B1B2F8C46F96CAF69EC777E70A7698+97D523D58D928A7B9FACB9125F440B829F4F2F5E8DA2C253F10A63A0FAFE0406+0D4D3CAC56A5202D7EF6C5B85DA6B506036B514EA519C34EDF00C780E4E40628+5F186B8490893FF97C6849AC270B5D7A2DD726FD2DBF1ACD630454EA668FD893+8E17F00D8076F1CCC589CA569AD80F9F28FA867E2CECEB272F52D47A5D734DE0+60FB6D2373D40BE2C61DC20812622B3F6E177C09467EFAF2C0673308A94E8A65+F883A7F119FD0EDCD8ACB541DEE04C716F9E9AC1E8D3B2005FB7F6AD0EC7725C+F6377DC8C7590312E2E866536E4D793726BE337CFBC8CF76ABE49FE72C015DE6+0A7F84410539A7DFF2A862BDAE402B61CEDC956D0FBBC2F74ADFDD8FCD78DEFF+7461D4AA04A8931CB80EF107D82272AFDCE72C9225DF20271EC2A90BB1CB3F22+62ED1DF661EE4D13E3CB83CD64C96EDFC865A853502F17DA640589982F34FDC4+E69AA6962AEAFB18BA5C9E2050BCC07C94111510046AF5938FE9866444430D82+31380920B604523AC9699E83A5D4E9ECAE068DE8CB4ED4BABF3E43C96A439826+18A4460968653F34FACD2BAC40BB29DFFC3598EC800EFCD6E4F94CE1BE6ED9CA+40DDDE575BF32B2E693D057919DB5CBC5195D0D3B47B4660C461EC2614A66E43+AE4B1CC7725B48E272EE2B366F7ADE52D78824DAFCD0E68C1D425A7A239D73C4+70E26999AC1E3505709A2F4429D52D61D12A1CC89A1E37CECAD63736FFE1CC5C+D84E931838BD7004040D43E7BFE27697FF9C6A985038060D007D106A215573B1+9B6A8736D10C198FA86E2503CCB58E1161F9ECFC4A8B24984BB5A151D9EB6CCC+BE6457D03F15FA01C64B5D7E54D534F20051EE227B5A48FDCE6E846E42302C8F+46CB02840334A58C32B36019A7B976010EB2DE60D1A9401151A764B5507BA4CF+00E1A59870B7E922819A1BE7E8F7384863B07AD52DF514F0DB1247263E7C3A02+4161C6ED52BBF6EE9C4EFF10029FCEC6A692499299BA49710E791B501FB51598+5F0006EE7A35359AEC1D986BEC1FC330682818A8288827CAF7C30CF9D3A24E86+AD2EA7490C9D86C30D5DEA4F67AA197A634858802857F78BF89163DA10283A35+E2D44A5332B88EBC96E56255A833959DEFEA1A62452FB3E2F3B26FD341C028B2+7CA4153F53D7804F0DBB53CABA423D54137CC6379A6512D4AA62387D8C70D8E6+AAF1E1406D6880AE5F0A3AFE762E5248099B7B5414FD4FE63C76B22C01C4E0E4+313A1EE8CA7A69F88335E950F4A24BDB900338B413B0982FBF65F47E917D856F+97DD3A37EBCB29A45DCF43F15BCEF1AEF1C7BD1FB446D36B5CAA4E2876CB4A67+32F417AA9B8AA1CF444F494C7824326A74C8A4CB578043DED9CE2C520AFA8BF3+AD06A85EB5A3AA0D27214B2672472E5C19B07336F6573086EF0F410FF82170F7+9CB7C85B2A5AB396F0402BAD9D76FE0982BEE6612EDC8061841074D14BDD400F+B2C090A1A93D0847A7557B50D16D05BAE3D56D355AF04B3D21615278EACAA248+05B0C735F7D2C6CE92A0BEB7E0CE9DBEB2055097854C5F77A63C3DAC1794DB05+716647A358B60D5F19E7CE1CE8E59E70905FE1931B1849C1AAAF5DEFA3774C9F+6485DE3C88D859C79DCB09AB1732CAF8369700045433E9DCE77045FFE1D37B7E+2234AAF669F40F241170A6008C41DE83F0B09C732B722A0127C7AED16B6C9E05+45F8CF0EB3B9599665EBFEE0196A4A11B47FAF4B330EF65E2A871D13635131AB+DF0D0219D34EA68AE4FC8A3A601080635E5A9C72000762631BFA503726A03833+F9F09C0082DBF8468349C3CC8F19EFC837527305252C8E9A11F3928D934416A4+82D93B4C6BD9EEF548ECB7323C0B65BFC51B7E230D44D46EFEA34DF34DAA674F+B21FD3C8E42F2144A198B32277FACD7513573A3C59BD870F05895C6FCEF34A49+AB18CEDE62B5F429CB26E9AD37F59724E1360A63805471FA9B11CA3C5E0A30AA+61E39B816832CB0EC5B3DA7358DF79F15136462D291FAC2CB726F78BC778A7C5+805C35C9BEDEEDA8775D40CAF15EE223AD60CF2CDAEEEF24AA328D12409280DB+BED118E43C5FD8CE1EB0DBCF15C0CFAF3C13F11FF4CEA3389B05EAF4E4C7B201+F95B7EBB3AEFCE6F8F6B2747F684B05FBE0D40B505FBC7FFA96173883DCEE386+F04D75624EA6C739B2BFF62783884007944070DED5C2373D009924F73F4A3293+C5EEF08B529F78DAB8AB1EFB319557FBFBCA385140F772076854527AA5F02044+596221317D8E33E1D60E252324C607616C63D820FE2E352DD59B8CB2BEA7F28F+32BB073E63DD93267E3D35D912408A66AFCF52E88CDE11D3D2DB6B89A937DA38+C4A849912AEC32DD12413A2DB40745F0682BF54775F16BB132B0CE90EC383C28+7A5415+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMR10+%!PS-AdobeFont-1.0: CMR10 003.002+%%Title: CMR10+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMR10 def+/FontBBox {-40 -250 1009 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def+/FullName (CMR10) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 12 /fi put+dup 34 /quotedblright put+dup 39 /quoteright put+dup 40 /parenleft put+dup 41 /parenright put+dup 44 /comma put+dup 45 /hyphen put+dup 46 /period put+dup 47 /slash put+dup 48 /zero put+dup 49 /one put+dup 50 /two put+dup 51 /three put+dup 52 /four put+dup 53 /five put+dup 54 /six put+dup 55 /seven put+dup 56 /eight put+dup 57 /nine put+dup 58 /colon put+dup 65 /A put+dup 66 /B put+dup 67 /C put+dup 68 /D put+dup 69 /E put+dup 70 /F put+dup 71 /G put+dup 72 /H put+dup 73 /I put+dup 76 /L put+dup 77 /M put+dup 78 /N put+dup 79 /O put+dup 80 /P put+dup 81 /Q put+dup 82 /R put+dup 83 /S put+dup 84 /T put+dup 86 /V put+dup 87 /W put+dup 88 /X put+dup 89 /Y put+dup 90 /Z put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 106 /j put+dup 107 /k put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 113 /q put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 119 /w put+dup 120 /x put+dup 121 /y put+dup 122 /z put+dup 123 /endash put+dup 124 /emdash put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD+E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947+5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F+4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F+E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF+9F9EC2518C77806A19730C97F54BEAD604548D553D4A6EDB247853225E24E7E9+89D71F6BC94DB986467E755CCC99069B313F5745B02B4BB608A39F0A0A732B87+7EA2DED68219754BF1FBCA350327572D769C962EF9242132D93A5C8E9725D8D3+AAAEC15ED0F43F9A1290E91C463895BD12E8A831DAD661EF23CB9AD2C26CFB26+71B72D15270CD8CB1D59CA2D9DE884C96BB923B1EC8208BD7DCEAB0FC2293629+2AA1F72C6B470701C381E335C2364CFCEBACDD20CA36182CA7E70AFF5B14B02B+75CBD0738E35DAD8E60CB3DA4DDED557FF9ED386DA52D10615E700751C842FBC+85D89C0E713F556814E051C6CEFE7E83C2F379B88A801DDA565BE73013DD56D9+44D97798564787AE6D5A6A9FB777EEB850C7481B4A353EB9279731512C9B95D3+2ACA3A0D44585E55AFD968135F6492A9381FA2D126CF50373AB7D47B509AE6F5+C4B100BE8334ABE2268DAFB7983BF339540A8D8280F3576CDCD4F21408AA7D95+D50A7C1599E62D4FCAB001D5F9DA84FA530B88F2F8746157E7A60FE8610C87C2+9592E30AC21163023C7898F2DA2A54906F2221C56AD7A9DF6C2C6A95EBD915BE+E2AE4770EC9BAF986358B661FF1620D17527EF0EC2614EFC317D9A778DB1DD2B+545FF4B9938D2EE9029BD66526CBA334ECDDF677ECD1AC125C7750AB21E30695+7C52294854F30847A269652851601B1FC9768FFB51F71E20BC676767B2D94549+A80ED3563868A3DE6E265309F863B934C287ED175678E0F25358166DAFF2D796+F2E0F86528870DB2BE07044913F0BAAE0F953D5B8A1120F4024D2A720C278345+70C10B78932757C3682BF74A67FB418B338E79C6B136D0ECB93786E1FD810166+4C2DFD660D65C6BBE76370700AFCC9BC635A5FAB41D757E1BC4DFD8F20C1887A+7B273A60D565A1FEAC20B3C4C48029F584506640142839B3DBDA5DEB0F755D09+43B00B3A2FCD87F3A42856BAB4BE44C2FF31014776B3EEF3693145CB14BD2C56+58C938C2C2489B7067DB31C6F5575564C791F77E215AE12B4AF3CB8D98621983+A4CA131B6EB15B4271DD9E7B96DF61AE7EAB1C06612200007DE374B7E7CA79C6+A9DBE8CB7D79D8B639E5A57A779636760C9A55D27FB8FC94F99D4B3778E50274+88D49AF7FD67872618D9D139C5501915A412A013385761EAA33500D6497B38B5+81077B9C5A19177BBF30C439E46FAB8D7A009B4DB2FA0DAAACBFEF0A04B27897+DE463F4C241B9F161DCA2427929E4EA5529ECEB3758E9DFD2D15945CD05B9EF2+8A272C4C23D8608E72E44379F895D1AD1DCD36CB4D62885608F8D108455510C6+AB9398D0189A358F18CAC251ADDF3FE3E42C71FE0DB768E1FB8EF40078DBAB97+125E03ACF2426421F0093C6045DAB1420587CC73A0D514B7D3ACE3A39E29AFA2+43A214842D1606259688DA0C6F26C51D0AD9C7ED63B8F7759EB99B8A98A04263+5A55CF2155C5F41C3B07F3C460F00B5229B48D5EA93302FD5FE881F9994498C7+E9D5E1600A5BD3C596AEF8B61021BC372B7C47A04C7004E4D3B74E0CA329F6D2+2DBF4E006F303EADF1E26987E4B9CBC486B9470C24BE982D6AE5E796ADCE781F+1F866CC356BFB3FB428119629A4FF3EBFE0443F0FA19ABC04AB7DB52E0F6F241+4ACE57162F9F96CED4305F6E30A982C30AAF3FE1B0C7B5C121106509D02C6FEF+286C526C0195115C07EB59A046D1AEC79030AE60BDA3395B9FCF935D3B314077+FAFF599A6162779C3F18AD0908F75EE8A3896634548CCA877F264F9CD029F40E+734EC9E8B0C723356CFEAA403A307AAD4E3F297A0F2C1AC23D8BDB63C02720B2+7A31F79DE616A864912642CDC5A44793D890BB3B7110071E36D70BC262D165E9+9F89A770005C540614DD882127D33BF9D7E6963F6A3A98DC65C4E9E58F89D806+B3E19297EEAE8711CE556CFAAAF11A5DEA380B590D223275B6533242A819AF32+7A99E3FE103AB285C9665EC2B1B3EA0878BECA4DDA97E0B8C5C0FB2B0DD9FAC9+E8B6BA01A806E0622D3EBD3C54FDC1061B7FDD3A3822F67FCCE2BC52ABE2FFBD+3C4D2DB1D8E8AF12970CD36B48CE05BC50F087451064170704C9348DA563567D+F910C9F3049B03B4A22B995497B8F56D86BA1DCCEFC0E736658487EBC67A685B+6D13B56CB7789EBC6E59DDE60C7E85B0CCC0066047253D42A70CBA150ECCB93B+93F2770E4B79D4AC88484A8170077CF88047B4A5DA369E0C037D23055702D827+924F776467CE6662153FF2FEB2F9D795C4164B813169BF0536F1336A053DE9E4+FEE83D6DDB821EFFF0BF94182DD73BEF8EC447B9C1FBAA7CD1C651EDBB7EAEBF+A0EA6FC5D3FC289B5223058258E23944C95A6352A4876962F16F2E1A2748C7D3+664BA6DB137553215D09DB1BD7C7CF2974A295BA1F4BBBE33346B8D187E6ABAC+1C375E23BF49E654BB640E6098726531C93CC85E807A95445C1DF8124C64E889+02FDBCC2C722DFBFEE21F856681561CDC8C66D40D84535447E5520BA23B66124+203536CB04FCAA433B9C6D4683C1D0AF289A5DBE8300564D6210400DE8C10176+210AA167469F5199F9DBC52BDAD16E4300A3785A266CD1FF4DE4FB36D11F9BD6+2CB4658FF099EE65B7914DA66F10D1A02C77F5E8259BEA3CA9CEA516B73C4C27+97320D6463ADCF057578194EC0467C42F281B7810016138457A7DE236FB36528+28110E4310722AD686D94F0D2D678C571CCC9FFFBCC316B762847493FFA2A96B+E684086C77C29A0BD4A5FED8EEB6F2E152017AB3827BF264CC73DA9A15451F98+6E9379136CAAA1B40AC3E6AC6A23680CE66A9687B6E03A9A92C58ECEC1E765F2+778C34894E187F5BC5951F56CDC90C677070DD6357D67DB854C158C4A32F8FF5+9CD389E00FE720E96FDBFF1B2D1AEB08F49D788235AA0847B7E92F54713A3B1F+B6FD0EE557BE534AC45E4EAFB0C5A658EE2DDDDF06197BFBA2A366F6E1078F7B+9F3402B3CE91C040D740F9BD815B874F56EB9EBD61E8A73B46E913B99D240529+571E08DDE499B5BA7BE0281F3C93CF1AB75CD2E154BC9EBE612E6B30642004CF+1952D55B0D51CAF3C070CFA1DC429B4EC1408D451403501474D487370B9E6250+FCABECF3AAF7E623808F4B3E81F0A60DD0032C57D1882CF581F3A28C85527ED9+B723B8FE30ED24D223C4625CF38FAA9D45A708DF260BFCC53FE88134ACD87F62+4FB3BB7C4564FB54FC6C81DEDAB6625DCAAA2A3C02E4BFB2F8C7966EB39ACC68+1498E586D00E782A89ACF8B8C643AA2ABE187EEF62A1776D6D827C9B9EE88734+546F5F8F9AAD35EE9374C6ED59B1A98965C7B53775A35F4C4F7987780100D3DE+3EC34D69F0217B856DFE095A87CC113B930CBE409AC787A2536500DAFBE03ABB+4E4C799C8FB3B946EC4FEDE965968D319B95F6F47AA6676599386A9FDE567702+12D912C6F5DEEE483B14BAB3189DFDAF2D09A7D8024789B667A356728ACE694D+AA4EFBF1D0D679917CD22802659B43A269AB241A64FB6809F69795E1D40804F5+B251F526C66C0F4D33034070935EC99FBBE19EBDD63471EBF57396893995CF45+425E53E354E6B72F42B691296657EAE1281A7B86421445E853CF860E50345F76+4B36FBE0823AAA120349C6E5188998CE6F8C762741DA285A6C8A7ED6DA771077+8CAB39F889A6847468D73EFBF10962C4044F0F918069F8A6FBAFE03DA190147D+E98F49D049F28B82F4C2D7CEC806878179617199DBB51B07E0981C0B568841AD+571329C7FE546B4A82719BE893C0130C8058FB01FCAB5BD986B673F9EED2EDCB+1FF9709E8059254E865898634CB7610BDE28EF4E7B47ECE15B8653B6FF75ADAB+A6D1483D94D666D6B92549F2CBA67DE0DF1816E435F3800DAE4511ED437B23DE+309A36FFEA678F58E8E5D57897A1790D67FACB6BBF2E80187245E9624CB605F9+B04E5F952B33B4669F562017D6D26A724E5278195504106371B882A6CE823431+E43B9475D4FAAB31ADC5E20D30F30C70914B0A3D639D78CB8B649DE60BFCB4C3+8C1F07CEABFACF12646149A48A0E6B71B28F0FDE24503423969D80BB6259CCEC+F0DD5BEFDC1F2A68B268D4F5F85B1C17354F915A9099A37868EC791670AAF093+DCF239A97374969C9268F7A2C306151CC4118B397E685A3420750FF0DC73BD5A+0CA6FC0D84894AD0BC0072503511D86A08E16DF04F0876471BB817133799E524+0E41B0C31E74F799F2B349E7623F3A286C7059F595DE6DBDDA42A5F0E50DF18C+110B9940DB7C6024E8850516D2A0AD7FC4DA25A1CCECAD506002E3FC7A8DB3A6+8EF1E3055F21A415FA8A6122DB25AD7538F17967912CE037817C532673CD4010+172423BF5A540B3025D095012913031421A3D10E9CBD5D4E8869D9B4A4A0F896+4128A52251DB3EBD0AE9C18933DD23A725F1B698A35346CEABC466EDF7DB20D3+35B75292E77FD527DB1668D21D76DB675E858A3885CD3AA87A5535843233D452+96E32277F23E2506E8619D9938F99E7B6A64EE5D4D358A267105E2305714A702+4B3868C0DD7737FB6CC5EE38F0AE95A14FB445E399843F64C85597B17DD2AA33+6E2F8A0C921E071745381AFF22B26DAEC4FD22D7573BAC7B807B6C51FFF2A67A+266B82E5855BB9C519E8EDF5D67770223229186D86186C4086912C0442D02C0A+2D9F909889BB5F3225CC258C737414DB53513B1229BC04D8CC2352615CF0B9BC+1C8ED0033F5C2903758E54E67074DD421CDC87479747C861F046A2FE1B2C2211+C176D718F786ED05478DC293474100084C82C99C3F5568C9615D48687F1C4C03+6AAEE9EBEF8C5DFC4098CD5DEE78141218193E66786659050681627BA1826590+28839789B8E47A6158140C2CDB17385B1DFA4A46FBB1FF01C814494F8B71CDDA+D929707DF2D10EFCFF76280CD1EA873AC7B461E0FB63D7C1CE62B8FF34647199+248732333334B83480D8BC725932D74D3B6ADA94798051F3CFEE4D673AD1F164+4620A338737972405EC4340DF3156D1636A0090168778A32D18F7D15353EBF4B+C93DB134F2A8E0DBD40CBD3C7B52685552C9A12DBE00285CB0C85E172D0EFFA3+2E845232977BEBD53AE3D03F5C967207F820FA7582FAFD811F1010E1E4F24AE7+55AFBAFF02B36BFE15C7DFB144672BA086160673486209909DF35D7B16C03F35+337966BEBCEBADD5DFF47845A1ED4AFD1A282916480B4E46ED06714321F3B8A0+457E0138769651AD1872BD9B265CD97F5D77A634888C0DBE977A087DBDAFE57E+D15F5FF655729824D24628917CBC01D4E2EACBE696F1094E5FB10731FF5EC2BB+FF6BABCA65F786CD2F311A16311C659BDBF906E2DD3126EE4E62195545278487+FFDA7B6F90BAF6D7A5EE16F9B3516630AFADE6A80CD126DC8665F316B1F6799A+1F6EEBFCD0F61093ABB8DE5B4782093C7273E7276015BC1273967CD029C4C8FF+972A8A3B07E9A06D683510CE06638B62639A441DB899BBB04350218654CBF070+DA29E57AE10B8A778170CE7888CAB8C0C2E11DC2C4FA947F9D7F42B6F4ADDBAA+4CF6860E1DD551EA544EF1B102C6A8FB3304A4002A488FF3AECDDC168EAB3B30+CD4F93D5B06F84E07F867F3D94F4915B01E01D30B02788AAB1E77B8C605BA44C+E0E78D9268A81EAF1E2C08DFB92FE19A496216401728AE064DAF167B3AF97A4B+FF71B644D482023C3429A09045D80CFC0B543D23D96A74997DEC583BF3B6B81C+5300400AB4D2BE6C84DD07FB58DC3D414A4040548639E376A6A1CDBBA646816D+D1E6EAF65669506D5DF161B55F15029FBF645C9E602CDED78CA9F302E857463B+DD36FA87BAD7A8495F58C09FC4C9FF80D2891DC8829565D2DE77543D79503997+2159AB6150B8DB1B1CEA920161FDDEA7E179FFA764269CAFC93FE2D3283B2E70+07FC77C7AED092B5FDEB38519CBBB21335063D74372091AA7F9267FFEE49243A+D37B9EA7FBA177977D20007C186C531FB0483498DC2CCB8A1B0E076D454E0CD7+A1642AD98CD052BB136419484FB647DDB5EE022EB0D6F1767BC0D728F402DF20+52AB147750B42C5F77658D6CCF611521391CC097A598D77F6BE4068D9A0B08B5+0AC0E331189B674EA03EF350613B2522BAA11C1734DFCC38568BA627ED646583+53BEF64AEBF81DF72D97B6D2E75794024B49A249244AB92BDC21E865459034CF+D40AED353FFC3EE779EB42FAB1ED9175992B268393AC29286634BD494E1F0ECA+18DABC36F07EC3C39998A76F969D1520AB54483735F4640DB440A1ED27B963AE+EEEDF2BCD2253900114A52348C49234EE57A7A1453D9B69BDA5F6825733BF1E2+CDECF533851E5669A343EB00F539045D6AF0332B06EF808FC8172136908F00ED+FF323D5E2A2A8AF5535460A9B510E9C18137EFA5BDFEE8AF90CC22C935C788DE+E447364A27E0E8AFE1114074EFD6D7B3CA553CCC11D3E5895CCC9D014A0E9F89+77CB8777AA3854E98EEF2C51291277D736A1A928F83A398E588D46BDAC832764+EAC78A87DFF3EC0695D29A415DB334F69696933C957577B8F17FE648AF603543+1A46EA8BE830C71948E4E5C9F5F276FEF0B4F60DE75C20C003EF3C4D9B4AF32A+95FC3ED724CFA9F4F5E8A33109EFFC8D589BFE6786D5A9867D8ABDAF6497BF89+65216B5BA9DB3DDC3484B6B9178323236F00797223496CEC81C8A6F2744EB1D4+6A21BE346B37A045CA5A91DA418860FC2B2E487CAEB5C8DEB9B3590FA674ACD5+FA08DD485C3B1D23BD333A648911A53C649C43F1CC353A180BDBAD4E016F4239+F2BF6DC6CD715DA09A326F3639878CEE2720E31D316391BA3E0F5A7CFB5E28F4+DFAF490BE7DA79A7641C005D61DB8FFA4DB6739A227C91E08F4A69E359EFDC68+75D2CE117802FF221BD2F2817FB88C2C589D12D1A4EA37F27C3495E3FC8005D5+809D847F3333F6B83A2FA077AC8473A219C48DF690F2B295F1260673B1DC6092+08EADFD5724EEF6B10711A7DFD9409B2030804A9A01F2D6AD3F0842639D19A9D+C9B9C934251B0E00F2FB0F73537B16E13D8071C38AD3FB3BC521DA68528742ED+EDB30A3236727817A78371CC1FEBB1DAC3160CE6D870046CD6F375C3FAFA6C1A+F1B6975854A5D6965F1622D96582B3B44B02D446B949D9C26153DCD1E60181CE+C7D70F296CF072862570374831EA74EB3001213BBC3FFD4B2EBA5E902D9C5E7F+BB1B84D214C86FA7B5DD80133CF842D48110F677C58FCAACAB59C678F891F4E2+A17D0A8C1CDD09EE46A3F22F14EC295B30DE2FFA8D26448209AC4EC13716FB81+1F2EAE58C83269F894567E60FF0CB369D51676C9257AD299A9B49B872D8954BE+294236BC312350207FDA987B7B4214BE802989473E1B547FC1CD71E2A0580D9A+72847E761EF239FB3C50DF172C234A1FD0F0FAA25894208574A8A51B3EAC1A58+BD7F0F3BF1D91BCAA0D3E2E2DCCEB36A3418975EAE5EA202EDE6C40B1E54503F+90861983C9B9B1B641708BDDA9D0EF89A69288073B8B26B7EA86CF942456D8B0+EBF423723912A4F05965B10B30D1F48C596A7B8927879CF6845A4C10FFD49D3A+2F352FC9F5F17405DA1E112542D922DD9641D0F05969FB91F64F23E9A1113BEB+C01A10336BBCFB9AFC7101BCC3D8E3B71D6A28E8E0594D352563C25A0FE314A9+01638F31761E1434CD177506ABDDAFAD40D894F89930C81E1D6BFC8D8A92C7D4+6E8F5F55DACB74812A3A2C5D717EF6AC1F73BEFEA084A5B4AFE057E590209E7F+9AC167B37A49300B39CC8896733494D3C7778C15D0EA0FADF903A26CCA70FBAB+3D399D3D8C3C952902E7161B9BAEDA3FD02C2B8A7A2370FE1522DD148DBDEECE+4B1C7F989A9EB2F62B5BF021AF2B6F8DBDFE013E8CB94C6D31E9417788905031+3F416E755A7D76516ED164E24DA07548013CAA3B83FE5057E28270D3472798A2+C997B124C1AB303ED4D09182ED8F0DEB4508770497897E50799B42C696C392AB+779822F01862749F63D32031442DA94F1DC29A858CEE1346CAA7D87D70E47E0B+C311E9C8F5AA922D2F0A54C6927A42CF18E87A54FF72677270DD9C9A6221DD89+50DD197EBA93CE278CF4D0F1B302EF9484B3FE6F75BDDFA0BCD6283DAC15201C+643A8B15E38062E5913D4EFD3CD873B8C76FB97B9AB8ECEBFA4BE8A1F90CE2B8+8F82F95994DECB02600C7337F952BD1F41F785E9DF1D6D6BC4AD60C9F9F5EA41+E5A272D0370107FD1DA0543AE8D6159BE45CC1DDCC788C8412980EFA46D6F61A+0A2F7CFCC7E032CF4329A2ED4895A74C44358A55D631B6B31B3541BF9A947844+7597218D7EF3BB4AC99C266F5D163E7477BF6DA32D636D707402442EE6D3E47D+A1DC2CBDD008DE4AE8DFA21E23DBC0792CDC57FC391645009C914C40B53487E4+6A3B2B8F543C38BFBA6CB9CBAEC9CD7C3FC7018920CCA8EEDD4A692412E5EDCF+8E5B3AB40D50CCD10DE44C8EABED5E79A982D9152EC56B24F0D97D5A99218110+4BFF819EB66BC22FBE3FA12B84FABE392EF0B9BF6A4F2D1F9805B38970B1A9BD+CDBCA9B4CDFE649D9069375FCB37B7EEDCF2450E63FB7CD3F485B656B3BA5BAE+B4D7B11549A931129C62B3FA9ADC3D3C9AD28AD8AACAB446B96D2974DB2B025C+9F29B3CF62CDB23A76534D20F060B39F7DAF3AB6F7915AF31C983AC81548798F+49CF236D86B98B83D23E4AF59314AD3DA9B41DEE717E0C1F21F2EFF641F6CAD0+6312CACA0E0BDD9A119E86DE353619E17EBC027B2858974188A7F04054CF038C+D47913D45C2BB1A7A419DFB234048A6ACA4A934A5BB67F40A88C4532DA540288+9612F34DBBEA2F30B536F770A4C6B6FA6FE4626DF698517099467DB2338EA8E9+23E9848D3B62E4620A1589342A8E18D90A8D871F5E9F91DD556C0CAA6AE23D03+ABAC80DB121A1E709D37981B8BD5EF99413D9331550252691F94080BA443EA45+DE61D85883EA691066B7E8643506C8D6CCC56BA8DB794E8E666C74DC1C9CE01A+4C7B87E4F5D448025FB8A615F2116A7B74E9D3BB340935B47BA6308CCCDD1266+22E49B0D0EB008BCA3ED9361DDABDE96255CAEDE2B25E95FBD5D51E5C46DEF99+93BDA95CC465A5486086C55A8183A2C867AD8B2C96AF8F55279365A5EEC75F26+4457E3126FED534A988DF74287BB35960445683F243422F0E89F4693316E88B7+5AE5290EFC2E7F8998C7594C145030D20FD1358CBB6162CF50824D1C8F116F75+EE41131D3CFFA4450221C1E1250C7BBCC3F615C11A8837CD282BA4EFEA603AAD+5AA4CFC96E1D6136154631B8AD4F78A52CB80465427D94B6EF82C94B4ECA2A0C+E31BE8BC1CC747B7F68140C6D3C257B08F0E436399DDB60C983225339973E87B+F000644D4D2BE6AF90D484229D5E60F3D652753FCE29999925B3610923B29ECA+AD60C12F5AB033384B441709B95325473F88A1E6C5804E66E7012B8F522C1100+F6E86D3BC600BE65E456CB47085505BFEA73F2716CF867454E33230A04C83B5E+019D7FD5AE6D702335C6B3887544DA9E7B6587DA919D5B094AB51528037F3443+21DF4CF6063286942E755603A2A639B2BD5F25157A13A295B149FFE142CFD046+219A4B25A9E343F133B498CDE2FF4AEE57FEF085ED7A6CCCCA6920782CA1E454+1CB086010AE092B359A3DEA55576740B7F221DF4AEAF79208588E4D1F5A69AC4+8DF9DE13A7C66E96A287CAC9116BCA3E3FB901EDC0FEECE5AAACFCCC01415E68+9D1499E1AFE5F64E044B50DE8179B5777C31193AC25CC986C34FCE03E362FAD7+86BB619596C3B1300028AC2F78D974DF7C4B624A1CB5498520A5EAEE73D6E82C+40B8878816A251DC71052AEBC24431B53B11F82411C287B6D7012FCA7FC63347+0B7006F285E28EA1123A42B3D5E0F3E3CC71C45CEF46409F5B3F50F8D280BFF9+076EF7A18F3350F4DAC963EE02817C67BEAAC93374012C2FD16C8B3137266EAD+BB3424A90AE587355D30906B8B50D7D001D73765E39BC727353527E632FE81AD+F0C9BFFCD6562B3940B17DBE81DA295EE477E908FDA452A8ACFAFC64C4B2DE9C+2107858BC12D59FF02F24D4BBD84D3AC6C58A84AF8732C312F59A92AF93FBFFA+4E768DE12F2B2ABD195EB2B9740A4940D3C2989DBB8CD3300290F17E86FE2AE2+608B6D29926F85DC908C73FF9589C4CE875E9029843259F3755A91B4B6F200EB+A2FF430D8E7E5971A2AB5E31EDADDC5427303BE933F8E5389F2BA598A6066EE7+E95ADB54854C26AD08385167A0ABCE280308DBA649048C5BF1DD210124D48C0D+0911541734219F4CA7E97654B65C87C938B6B26BAF27FA76224D1C64670A4A4B+2186EA7609206CEF7B0CCD44A46A4CA3E3052591DA899FF7964E034A7DE2169F+05A0ACA9EE41272A9480321D7955FD6976A8D1D7FC309497D3C7418BAC532F09+C0B0B861000316F4B177DE75A6636BD6B495E538E5AC5EF72B799D3DA9DC328A+967AD6EB467733F0666A23769514C7E8863185DC854027F3B9F1CEDBBCAA6417+107E31A404FF5F72864CFFAC57633777D172507DE334546E77879ED752305F60+F2EAA05C3F38AFB2C91EBD3FA87D938558AB2FCC5E4DB02549798D1E11ABE476+C4DC9732F0C468350A92CE021A28453EB9594B6A61544875DD28C751D71CDDB3+8A90CF25D9D4282ABF6F54C1DEB6BBE3C3A00ACA944898A650DC737C112D6531+A831BD95BE2A3904C433E6FB58891689A9AA2C327E6A8148DE9D72E6478E9416+DA16D64887B37EF309C90FA063094DFCA87308ACB21F393831931D8A3B112AD2+1EA04D25FA468B13A3446BE8CA5A42AA41B844B49AFB0C8BB5E7D0A50B338F5E+5245D7CA59582B405715A3504DD5C884A8E2A0430C0CFD030E6084E030D481AA+C6DF7B285E92399078E2E3F215DA2370C5DAB9BBAF630B6514EB9ABB18F11FA0+50574631FA8325C75086AE43E00CBA553EB572E2E5C2CD2AC38AA7416D61CCAB+B6C9CB141C588479E195E348E0A8CB7139E9E02921EB93CB141527649BC8D741+8721CF786081C3B56D0A7BE23E763F7D3ABADC7BAF8F3A566016D08042BC2E3C+CEB93839EB03A623A83C718EF02D2C2DC74D806F72989179538D8F95495E6343+19122CD0BE48D5400FBF07F7F26F9C186C11A5DCC4383DB4C8CEC4DAA8F063A1+2A88172F537F8D6B51794DF5488C96DCCA84937A53AEFDEA51C1D85823FF1B8F+46D4C6011311516A4FE036B141721B01E33B327168DDF6BB93E5DFFFCFABD2E3+B08B939D0E31AB70BA39F7709658145F6FD12DA90476714F26FA5A25EE69ED48+14500B5BA86DC143A33916A90E119517AB7CCC41AB682A6B375756B6B473717E+255DFC9C91F1801E66974E63EDB91DD3AA313CEF4C8CC3D6A3C177A51669AAE0+D27C61F685223D94EC5FC86B8870D242BE505E03F5DBD0394E3E908FD1975962+6D71744E7A4DCDA731AC229569EF892E97103A9E7DB1483F25B09169339543EB+97122270EA2C6D59A0F89234F4AC76FB8440D459871046906FCC86C9D78B9F74+3A992212D5A11DB6D4E66C19958BEF525E856FA6D1BCF158ED79CCD1E2B19178+AFD1DEC165F68DA51E82DFF56ACA2E7754796EF1443F92CA341DEFC5EFEBDDEB+C3C851DF1C8843930017297841A20A2DA8CFE201DAFA2791844F69D37AC50A09+63F734EA658B50609575E55CD3EDC57A44F268EF9E75119216F72C5B406F1815+128E979DAA1A6F7833E3F3DCC635D7AD4EB070D17E6995F8129E66B618D89412+798411C862137D04B6F7F266B7EC77DB2FE01844BF959CE65BEE2D85A9137B3D+84B8CCC38C9F9B4B6DDD833E2CCFD0348CFB657692D38954C795D0368B8D84AD+7C937712B5D37E05590F8370FD8139E981CEBD8E29729D801653101556D6DEC4+09BF8390A0CDCF2B209BBF8A38EC1BFFEDA28BD85C2D9CCD0CAC6B0F11B90D1C+D89E4883D4AC72D7C977A144002CD071A8DE85FB28E292F88BA6B2AED8242E56+A0CF3F625D3F954EDEA742BE9281B2B437124809318EF038A6916D7DC098010F+3FC5F97784AA44B40FB34C947D7C45169D0B2BB332EE6B6EEAEFBB6719229E11+F6967C12B228E6C62736BB5E820F91851ED313A730E81BD3A9380C297F860C55+543CDA01C9370EE8D36D3DE8E120E0904AF9C8560CE74ECA1C48941444DA899A+B68809DBC1B9EB00CC5313942AD816C8C75C784B14B73E15A8606A02F854CF53+BD38D598C7957AF764052EE9013BE9EA842D43938A9EA91173862659D05727AD+38954381851F64A557FF68579086CEB4F0D3B233110F36C7395BCD0E427A1B16+610253CF9A7AD07565E3EF0361190090B2FEE14BF55F6D0A71C1E4C779DC4548+71361CDB352E28FC6CDB67EA4DA7746DE24F5F7EA046E0A8419CC3BE4D5E55B5+6B452472B33DE6DA0CC7F029507BB68EB9154E14A1858F9AB708D59B3598789F+0C3A3B2B7B15F4964F37DD4AD3AB207EFAD992A975EFA32E8E55BA1803CB9142+94EF4EA01EF2047C7E0214501AE5C16BA168617E2376C527D1F400D11F4588F2+128C894DA0FE4180F0EB7E601BD8F46854B67521A38D05A8483DF90DFCD0CC15+89B704764FA348C48D19182D79819ABEB036465E2DC3144C2F2F5CED68B552E5+3DD2D6D4D37E85A217F0A45B1914D2C42903E423E1AA487CEC32CB11C283F510+C917940F5FD9BA0B983D93CB874378353A4E07BF3EB1F66E6C2458CF9A2974EB+7FA8D0E94EF3B2D72EA1B33173E0E17D022F8E7E07539D9188DC01AB3E3A50C5+43032375224A61CAF3EF48CF29C06F8FB6636EDBCB980ED910BC2E10765F8928+4755CDC3ED770AF3CDEEF808E00BE0E3FAB5AA0E49272661FB61187E25CE7EC5+BC8B8B8B04D6DCC3657E8253D80DAFA5E331F54DD10D7430FF57469925FE4DBF+15A401BB8FA4EFDF581F1BAD5C96E07061CF1F7B521628787B45BA65B58A7950+3732F99D3F22524C0F53359BF6A3A8E7F4BD9242C846818EB7A7328D4765B4D0+71C36EC8C5C52D31209D717EA1D773E3DDC14D3FA9025216D41DC45A1F40E113+ABCD2F02B45EA4640FEEA5FD3711CF17F65F0A1E80187FF3FCA67AFD2C60D57C+8A5045D7DBBB3EB5D529203A6455BCACD35BE93DCA65FD97CEE310ADE6600B18+266CB991F85D03628E0C0BF4D7FF30D075ADEA48108A2DC36043113981B8DDA3+61D735EF64360CA212926DDBD5D8C49150BF139DD033AA44C2EB1096E67A3590+A779B1D70FAC10A4EB604D0445594437BCA422F1776A1C50056D6B383D42611F+14E5FC5861FF628E67C4B624FF7B2AA10263F2886A5D6650E9ED251E78882220+B85DDE277FFB572518EC5B93551EC1B826C4593038E37EBDD19414D33CA98634+1DC4F3E857279F094B0D5595F95286002D8999DA2F6BB99E739E0722F0D8A2D3+9838E8C4232F5278CA52D0173EB75DE17B58C437367F011E455EE2EDAF6D565B+4EC164C4BFD60E7BAB126277CE1701A3F3FABDDB6C50DF24853EF12453903200+C390C2D8C1721CC7F06D5E974E7B2EBA39523A8AAA6ED5EADD16ED127389FDE7+6BC6BF41C2A34BD6025C57624892CC788FC07B1D86BAF0D7301174A4C91208D5+C484408E6D0DBE392A348A6DEFF8845CDCDCC3A29A2E2CC31A25869807C25F3E+AA3216C77DB3F8C8EADD21557429CA04FC5B10DB563ED70EA21C60E8F2987E05+2CBA01379F26A875F088EA0B3DAEB42696BB5208F1DDA0970E67B9442537A5FA+986B91279334439B82D54666F042E562EF2175F976DB3B1B1A7AD84E76E7EFD2+9ABDCA37748428CE01C5B96FF929590EFE8560BAD87F22D43738B9EB2A9CB3A2+6BAE62C6228EAE612035DD4F3A07853432A466FCE60682691860A2ED081FC6EE+9686B55B90E6FBC70767C6B0D729D2E59731EF530D02C1665BA98533BCF2A7F1+78E17928DE9A246EFD7941CDBCBD54A2F423AB313FCE9942D2EBA02004BCF5E4+9C428C57C8AF8A2BF966577B88582BE0B39D285F191DCB623DEAE6D55CADFDD5+972F04A2B6908C732E260C086DC15DB1A0279DAFA1424E685B238B185D17F22F+5252D81C68FCA71F1813854D7C4607BFFA4CB310FE8170B86F76872DB1A0B4AD+BD0A0FC79B7792649C4CC401A8394AE7C4983C340AEF3E63B3A506DF31BC8B81+7F6BC2ABF10233E921FFD51F8EC0EB4DBCDDF3EF6FC82A415E995D21DEC7EE00+781B5B760E280E8030891B55384C8D4A3D6A662AE1B20F349525DC3A4FFFA535+EBD8E8D7048AEEA6847D99076AA44758716A82C0D1361831EA10ABC66BA1AA9D+51BEC8017B9C86528BFEA0F84CC6CA515C70301995E1FACF4FA56F83D8249066+893174F7DEF84FD3FCF8AD40C0C37C95804D9FC58A358BB01078CA798031FB1F+858FA361944EFCBE75CE9F53BE49F0685495E18DB85B69407787525C8DDF861E+71A50CF327A4F473EC41B7FD843EA932D06DDDEDA46DD103EBFAA159833DF275+1C0F700A27B728E9FAF9BAF9C58AF024A248FB261E6619EE3BCB57ACC812B05F+349780B8E5389EF6FA107417D6B25F8819FD324A3CB82DD7F8C3060C2DE5F4F3+61D3B138357D518D633BC2BD862E861E29B801F6A43409ABEF31FCFD32F8AD57+C255590677635F649638A82E28161FD2B033A4646C4D8CBE710AE8DF4B89F3D4+A0463D6C9791BFDED5CDFA2B49B76865868279A60E39FD9B73E457CC12868F50+20BC368F75E8C8177DA8205E92CFD8E4AF84BB6861D7C19348819038CCCDC8A7+74587E20BA9983BC1D28FBE336C77EE45A9E9EB798C7FC8DED246CAA04BB9685+1966B91C502AB8AE5CC8F8AEFD704B532D4AC6BCC133CBE2BA59AF1FEAC60F30+6FC4C20F7EB0805FCED4CA26FB3A4F85153BDCA641B6292CB52F21584595AA95+DC2DFDFEFA255DF40C43F6437C507727068DC562D991CB0B2618F41B275EAF4C+26B7B04125F4CD126FD028FB6637239F1205FD5EFC1324608B85B18FDEC31559+0BE89979E9D432F7A980DE5A47DF910D819A8F9B0FAF474A73161AA96765C8E9+6638FE9F8C3FB4288200319A461F573E0F402B609BDE9964CAFA9DD109321CED+7309A68DF11E03F9EEDC600905BB66ABCF35289F45AFDA66054328A99FB7FDEA+FEE102D755AB6AC596D3E653BAFC2500205D99CD166457F5CB3A78F848C0F042+7E5C3BF5D1922070F3AA51E711F4F61E259792B639F5B2F5C74070C605835D68+51BEA238F17DED2B68B5D22CB79B8994DB0023C62421A73F333F49FAACC8F767+4D9E4F38704B30BF023E4D90397DD2D5D98D851C9629B978FAAE72A58080DA7A+B94369E8C8E637CB9758F1938064405FF3980BFE221930C6F3D458D719CF848C+C8AE8D826AC5BCAADA49A2F231D98A71C46CA34BAA1BB2784A16DC3CA6058CC9+19438770CE1223075815176DB203C5B859DC059DC449AEAC060D6DA8C4A9B3B0+514A538F3D2987DD3FB1C250481C71C4DDF95DB37691C5E9C52F4F7276BB8DFA+322FA6DC4367651BAD09197DF47491CE8582428CB9A32D929D102E7C399C8135+47B1BB7C5ED2A193415FF4210C2B3096AD33A6AE7643FB65BC06706A20678005+D57572649D13CC54E143D174B38784A24BFB8CF09162AE4ED1F1427EE3A7722F+B64A4E6945FEA659D560C6034AAA1A3D8C9D666B84CA93AB3FEC35255EC5AA81+4C96C2340CC2779C578A56519DFE92256454B4A260E2007584D27795EA2145CE+63A0669C9FFA63AD61FE50D75D91EE77BAF6DF99F1795115AEA57B785862E647+D843B32884BCEDF7C487A3A70C3DFAB92B1063A6BFDD235761E14A31FCA3D5BC+D212503C9E4FF503D8826E4E006F24B2EA4D0CB587E8E5DA439F3CFC2A10B92A+DE81485CB69BBCB285EF94CE81C972F9234B8BE4B7EF5E4628AF9DA0FD99D725+F945FA74F3AB69217A069F5278C20394673D9DA9246520E537EEED4882A79CED+BE2E57604EE2B1249BB6F27D5B6B7FE5ABAFB9815FC89EC085F021B68CDA6153+7163EEBF012C599A2FCB8BAA37D2C60F371E1266119F0185332044A48A73E3CE+38986BA2987A877C751A1CF19C09651DBC1F3E818BB527F686354CCB330E6AF3+FCBB76B222141F21739766814151E6E7F03D9A26F63790B5B94C7C32DCAABA03+543235D00D78923FE7BD46F467C36F9AC3EBCBC95467A5455147BC2E3DF154D8+A1AEED208938899207D5197ECD394CD87DC418C8EAFB493C575B603E9511048B+6F4AE86977219F3888C884D6440D433A8DB706D80E22EC9EA03C94EE0A0B90BB+61FAA716E8DBABB83B6D7A569D42B6E7CBDCE78A95E63CB7078791E8806E7F6C+9D4FCE510F0805B0EA04ED1054231C252D26EB8512688AE2CD165ECDA66040C8+03BADD8B886302CD6B5D2EF009D84BF27DAC023C97813E7ED3C1D88F0FE70D17+634AA5412131A6AEDFBC18C34C78600BECC177F55D59068F5512E282410A2E1E+C83973EFE7328CC47D503C55BE8C5F3757F957B95370EB057B8F9F14F7EA27BA+5ABF99DD56661944C95FDE97D74A08AA79CA4FCEF380E94E67C85620D27B12E9+D5574A5064A599B405A84D13D55DABCB0C5073CE2A53F750B02EF940DE0ED523+E5CDABCCB7F97B4F5D5D95A12248855A993951FD6DD97E03F1BEF687FA184A01+8C884996363A77A8CF1376E75ED415817B8B0FB6BADFA72C2650762C42DE3E93+10C208C0922103A5B9A9B08C7547A6FCEF55A5B13F7FC2A7CAD47A30B8DB8B05+74E817DD3381680F29DFC5905ADE57D90361C53AE80BF3AD738E206ADB02DC7D+726222E738A4F8A90E41C721EC49873155374E2A4DDDA1756BBD0EFE33FC4B3C+1AC4E60A824F1503C417031E166EC9845A5627126AC5944156B818B6172A44BB+FE298853D4DBE3514E7EB3C932E84CC797309753DE85EA0D95524D42C967AA3C+4D89FF14E048FCB36189AF60E00D6751EB4593414CC366E7F06A8C9045878878+7965005FA5A96856A6C46CF41877BDCE7260E696D6E55385CEF06B2A86D5F625+97CF75E885FD9ABF992F86A748C4C5DCF5D30F2D70C50A624B2F036EF2457227+B52C590E4E53F19459BDCD51804C428D691BE6B88778687FF26416722E05C8F0+739D3071FACD1982BE192E234BF569137A4B136BBA8C1671A4D68077106999CB+460101B30A8AB51C57EC559895746E7CAC09ABDC758568DB139993545A86CDE3+A2B71BA3B538E7C20523918EF4AEA4187B9886AEBB55791C213B85C93A76145A+A99F1700B1803EA4ACF6DEE91B5AE82CBF821DAB258883D1D62AA6A10714EB70+2E1FECB1D41CC45DFEB184F156B27B9EA73243A62B36745EBECE794F9CA1770D+A9BFF1B89987C27E8FF81098FF084DF627D3D9653323FFEBE7AAE4474776AF6B+246C79D5AE4E38C2DC499478AA9495775EBB37367CDB40EBDF3B7997652B1E36+9F90384B1BBAF8FD751B01DC095482B83D2F3ED8E34A2437BFE9126A8BA1E3A6+6624F65C607523CD0D55080F2BAECC28E183B9237C245BE4CED288744E6BD1B1+89C6461D3F072B7B21EB3F874D8119B9A981EE94CD357BB06A063D0064DC2945+B137ACEBCDD829682FB9CE511C23F2EE6317C8AFDC6858A17227EE1C90EE3B93+7667070335E276C90BC2EBC4582E8631C099527C1D8CF33BA81206A4136C8A74+82EE57619E1520C234CC7EAF281F8D92EF950E9D8B4727DFFCC69A048935DA9B+10ABAB520B2CDA39F2FDDD0632315717E397365F2592D1CC3DB9188D1578A4F1+0D4DB7B95D38AB4A17573FDA287D7AD1BBD3B28AF3F9DA2219CC26107AB2FE29+F0BD06DCFCA6D19ABBB21273D4636E949BEAD02F971032E84391B3605A4DF687+7E068A28BBE646F56CFF322A1024C3942581509E453D8B618D1E14AC384FB471+701F18C363CAB88CAE347D0563C8C4517C701EF605E8B6B36B68CE896BCDD8C8+6D66E2C85AF1B24DFC5B780DA8930CAA80E72E3B5773C2FB5EF2E2C08F57AFAA+B8CE7B148D8FAE1B829AC7F6A512A60E2E4E2516362037CC0AFE14580234C29D+8358AE2071D8A1535B3358112582275B2993F7889D061636AB0BD93C8017AE74+B297DB314B11FE6138B6B0EF6891DBE6CD1F6ABC909FF05CFA5650B4AE338F3C+75C5A8E97CDB0F2E8EA10EDC7897838739D7D819229E13153AD325B5A4F3CBA3+DE1820C0946C8EA9C3295D40A7B2605499B2729D7B09F82089E09CF6A54FC119+0D8A0D2629A2740C688117F5411C422F9D4A4B7BC9D1A42B04115A9C7FF15735+7C8931F8691B669E389B184DBB1AE5D5A5EBB88FAE09D30A7F551B2EA17FEB96+33E04AA2B12832BCD44C747482336C80C3FF3A5D2EC8EE03086469F25999080B+DF4362309BC5832B72C506253640BB6F53C1C80C440C7D437FE7632AC6D2E920+AADA7FC23E103D47A152C6A52383CBAC930359B3825D07936AA2935CB5F10906+6B29D6ED8E275B7DC209F72059310C2E42B2A6343F84EB665A21D39BE1B5C3EE+21732174494E1792B7B97031A6B9A4B617743731B628FCF47FFB8DD9583A1CE8+0FEFAE5F634B6800C0D3C1EB13A6FAA7CC6929254C603CB346861BAE3E6086FC+01934AD3E58385310BF72020E06F4C0C11573B38B1C63A281C69B745FA4F77B3+878922E7B5AFB4CD0EC4BEBAAE5C6EE507EE4DB0CC20D3368EC34C1C0C8F2F31+667A6472600DF47527C3D37F2851FF81AAD0865DADE323A789DD98DC821ADE76+FC840DDF30D506B2EBEA0DC9546E7B03C3F5F37B80182CCC5C71EACFA6EC892E+BA75A77C3BCB7B8D4A38DFB29C56ECF00272F097FE5C85F9C963A8F52FF8C871+276F7BDAD45283A7D22B209AA9E794CAA0026E3A49A8B5F0DFBB6C81F15B3316+7420C3EF8EF75EACD5C0886D307965D35D6835922AC9D1C922C503B2306A1EEA+535A6DB7E87B7F70124A0B5B35A4075C2F521050409DF225ED0321DAB83AE250+6E303C0D6F25958CEFCAFF2862815A38724F402887DBDBA945111F357BA04A76+ADC81749ABDA5009C63F2F7D78F3D9FC0102E7DA466D79E67EE5EEA8399B539B+AB2CD391CCCC1A5D5C921792AF0B590928997D9FCC9969A146B79FABC227B948+C69103000D3BF78A244871BDD11FA81379BB482EA8D9B3D2748EF756D918D3FE+4246952B18B6F8A942B8A4B8C07685C396DCC3BA3A9EDE2D874839EFA9003056+B6F58A4A052B538CEC62F1F832ECA08B38C55BEEA429AF3BA1002EAC3D8F3BE5+6E5B9FC9D6DFADEAC8420E1D441CA6686E61C29A533BB6D452816E393BDCDF70+7DE4B0A9C95704E5922F1A68CE1B45465A9F84606BD639B41049F35B175E1E95+C47F764EB80A03E170F7E82A10061BBA859A6223272D797095B76A497792D89D+ED004848AE3CCEA1D2077849B9ED2B6BB2FD1CB99170619FAC5C1BDF19B0F33C+16C054A97DE109C422CDF3EB5CD7F43E5E2D14E82B25DDAB7C3563FA07733043+FC652DF2F7A943ACB03ABDB46E254B28F61AA1F22DCB1F0751F2B829C89BF74B+22E66445E0FD4855D4EA92B24304A3979418EDFFC7F76EF7BA0859BDFD3DCBFE+4FA9870222286DE9A9BEC1EB1C2A2F1389F068A2EC6167796D73DAC5553AA594+879993F4AAB42931E0B910FCCB7E88B6B5CB9CA117BE5648B03E796CFB50B3B5+59D0EBEA3B8BFBA4CDA916F084609088C9262D6D791FD07E2A82B8124476DF08+E9E21CE63CD18F0648AA878C8E8C24FE9A2C854D5B8825C12EA5E7C23C933718+D739F42CF9F72F9B3D178A5F971A8DE2241C824DF9DBC87F73B8FE781850CDA9+283E7435C1B8958228DD4E099F85DDA6F9D399D55C9AD5573F8D233A04CC5A22+1BB634A3D80603C15A25FF90B7F45BAE7F0D4CD6683EB1D194887A89FE045D6B+61325571FDA76BFEF1C773C5BD612AF53DD05310A1A52AD5EC6BD197D2FBC30A+88CB305603A6C908E331746BC753204033D1A5734F19F7AB469EC6E9BA063E93+5B538D93956C06233673ABFB33BB87A2C5B5A9A67A1576E354E93C1D6D9E4436+9A72B273DF1D7C8082FF202687D6F2813F3E1E2138D7B31A8F83011336D676C8+5FB811DC8CB1CB94545016C6F71AB41988B88A043C3EBBA019F4FD03C2498B55+1DEEFD03E1B59BB0826C8B782B9F5C6EE7CF74B2174643A7FF852162BED3FD4A+451D9235CC259C26CB894637B85395E8F2887438E451646A5155F3EED5CEB711+4F58ED9DAA2278A203D3331E5CBBEC51EA8BAD0CCEB1D4A63DEF9F9AC4E40395+9AB616C1C01BA238CF74BEC64558E63576EB8C18CA6CF4B391BFB9782B1E39EA+514069BF88D929D080BE0484C3412E0BE5D693B1EEDEE158914408A52F59F7A8+DF7825AAA9BD9A02CFF526D7B6DA00F0D738B338B535F9C1953992B36275FA8F+A42613BFC20EAD78298E261E7BEAA97B4845352F4A27F636ACB1DC9B3AF2308C+1A61608CBB715E6ED7C1F7FE030CF8A1B8780F7FDF369B05ABB471608334BAD5+9F7B192E3EEFD9EA4D472ADEF3C27B401579432BDA65432C2185568A0A17E40C+445EEEAA5255138647389BCDC8721CEFD903AC10ED5FB3A9B9CADB42D3D84F8B+4EC06F78D7E91F304193676EBFC455C9502581634814D0BC27913C8BB0BDED72+DF52013E51842118E7381344BD7060983717CDCDDDA4265B14D1C7616127EC62+77210E60EDE1BC7E65B2690B1BDCFA485AB0E365E2BAB7587639CFD8286C4567+387612A8E1C89E8F6229B5642A6692086D468EF80AE43F662952D5DA7F1A73D9+33A316D401A10C541DF29E3F0D425F4643433F6D8B59E2FA6AD761F15528C7A4+8D7CA22D944028BC75036EC127C84BCE3019B55981732CE792076F5EA5ED67D8+5FD423AE1032E63CDB78FE430478B2A9B37EA108944AAA5036BD6C9E8667D05C+44051820FD3292F3931785E063532613589CED87E8A7DF490B0A491650F621D9+8E069FBB393D3D5BC6064C3A65B38641C2AD7B617030551833EFA2BC44D6F268+4B5577246926BEAD67EA13A0DE10F31243FCA329F4ED9D90015EF6B10913661F+9D8DC26811E977FC24B8E722D4BDA542A42C74BBCE1F64499C4507045F4BD1CE+639B29B2809CACF72578025C0B0BB25FAEEC6B34C0F3871E7367113EF48B4AFE+D0FED45756AAD7A13FE742AC69CCC3FEF08D1F9F89BBFA31F7AB4720C0774707+88710CE84A3BBC5B6AB6441E02D0063C0A1305536F322CADA817900C4A2BA62C+212373855C28756521E82B82AC6708977949376E07FC073ED730103DA09995BA+881E4C6DBCC32E5DAC9EB21CD6528A2A5EF85A5CF80E8F36B7FC2D93DEE7854B+379B900D202F3E715F179D8482EE69CD2F1525A4C84982305E51012266080561+E28ED17D453364449CEFB8BC92B3F0D8267A12A158E9BC7C9DF607C057E65BDC+84353F0BAF3DC99D2BF37B07F8E2E0E3B0BE6460937AD2DF2134D3C9038F254E+D1A91F70316F5AD92BDA0DED9F71FBB825AB926A1DB69C622E6029D799E03A4C+D8EC678DF28D16C0E8CBDD87AD92549912D5F0932F83F7D3EFE554E0F5A28D38+53554D1FFCA2F6D1CA254AC1276A1A0A5A3CA71AB4228C08BF82BCC97C36DD25+4EC236AC94F07195D2C3040D6797C7EB8BEBA375480A16CCB59F09DB33FCFA8F+2186446D16B43D73D016DC59FD6CB02F5A0A13C8F247BBC993C87A64796C0315+D4C1065A0CC818B8D669A734600FCA6774CF5A7F14CBAA0EBB9034B9B93F2DFA+F3ED67E802A76C9FCF3B85C2173ADD782BD1C173278E79613E6CE2DAE5C91BCD+2FC936C6882B2600A4872C0320BD3AF513649F77D74740BD70C26728434B4868+AE51B82A973B0C6FD7B739A1BAE7ECCEDE1F877266BAAAF0E8471B2C963AE562+4736692890BC88318D60A6E804426DA4A8D657EEFFDBE19E653D0D2B3819C272+5391947EE7AC5307C346B3D77145F9C2577944E3C4F4F6B40495BE25F8A015DF+A60FD72C07F2A1A4E4D5FE16E7CC2BD61508C7C3B95F8C7B4F52150F191515E9+483D9D019C9E75844951C0C67967C2F40346428F6C211DA05FF14547308FDB0C+C74884DF9B69B0872C674A2DAD527EF2BDDEC6CB10F1DF1962454C4E50A79A10+436F05675009BA0D5651966E4F314D9BDA30A77AF5891BA4D5BF30E66A5397CF+175A574844F8E8255321FE74D501FD3918EF43C34D2A7697B83B09E600D41F19+10557C9247E272C7A293078BBF572B2EC5B4E95A+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMTT12+%!PS-AdobeFont-1.0: CMTT12 003.002+%%Title: CMTT12+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT12.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMTT12 known{/CMTT12 findfont dup/UniqueID known{dup+/UniqueID get 5000833 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMTT12 def+/FontBBox {-1 -234 524 695 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT12.) readonly def+/FullName (CMTT12) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch true def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 44 /comma put+dup 45 /hyphen put+dup 46 /period put+dup 64 /at put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 102 /f put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 107 /k put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 114 /r put+dup 116 /t put+dup 117 /u put+dup 119 /w put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D05DA0555DF933BB0+7B42D264831116C06C79335D519461E7B0E870A6715E3D74A08D1BCF86E3BCC3+A43FC6BAD1C68BD9D4AFCC06D845FD1F1E70D7A47F0BBCAECE8396E04591E5E3+4797F646AFEEB7DB548183F0B74C9BB6BA2AA04E7F5950EC8AE97C741D4B2C5C+A8E7A8DF5A36A30B5A7592D95E1DBC63EF33C92FE459792CED29E2B8B6919251+75EF62089BD7D44A6E1F9B62EC802FBE62B821DA1C3B2DDED45D27964AD29ED0+9FB7868F3A8FEADA87A8E42D52C1EB7229D7C79B60BDA263F2BDB025AE14A507+098FA274206BACFB4A0A7257D5998EE8F0FDCA79CB61DD1FC59DADD11E16BF02+ECDFD706CDA1E72054D4EB55AF7BA9F19955886BC0BD6E0E3FE3769C94AF3581+DFB2BCD67FE2892AF07E858A01280194D8DD7332B3D0A585C87FAB056C2EAA9B+5AD48D1C9F00CEF8EF0D1408DBE1C03D04B231D7B8D5D998FE0CD7EE19828EF2+F988EBF6DDBFEE00F04A4A1F4E1A55DED7EF3AACEAB5005F1962C724A017C914+2936E2E0DF26A55ACD7DD836C6035CBF07981C1BCE3615064F0540A1034C69B4+E3908E76EF8925D486DF0B4A8E1F02D8AA99585A7C31847AB9382F83880C1C21+C496AB2DF8E7BD4643B28B704B5F6B53429D3EE940A79135F5BF0396E5B46F23+42AF406C26D12BEA7A41F332AEB75DF43C15334CF4651A99F602036946B1B91D+4BB0D2E51C20216D892C8173241AC8FD15A37C3CDD8AB4FB67D8565AFA61C068+95E3D6E46D7C09BBD09428207D506AD43C693F3C3D787F6A5C39084AE45E81C9+830900DB50DAD10A17E118FB5E9680B5194716A788FF7514A1167DD1A305FBE3+FC1F39A39F5613D50934419B95A4A2FE1B6C18912CECB86726926F6B77B5C3AF+F38F85F974A2D2145BE010EBB4A390B842BC222AD4A0B7FDD882668C04C51F19+13FF91E7CFA0A0F4E99A1944B272E0291BBF3F9ADFCF3F625B87377AFEBD9F11+6385726E908BAB7D1357504048C0F5B26251A1FA52F08BAE1D64B9FC32A684AE+896F3DD0AAE9624050D4DFDA25E581FB2630E8840AC5322D38B92F3E77B55CE2+91ACB8321BE53A2C7D274D63CF0C68AC833BAF4B22B26EFC197D4A893A5AE492+660D995DA9294C16BED1113CBCC18AFCB5968175EE2FB374B1AA261F22CD75F6+6E7295A254FEFC41A66EA6833A6A4EE0E75EF6B6FAF292DC5D2AFB61D5203DB5+4BAEAABAF39E9F98B45F22F2E37F337A7BA412807A31B4A5A4E1627BAA964B77+6AA397D368985045244ACE969799A9489CCA8FEFCF2EAF262ECE08BBD9573C79+2785F1004C34F4D728E9E820B4133FD5F823B067F6686C82BCD35123E4831E38+CDD5ADB098BC3F1B4162F45B11ED39CFB65DB1A10646D0B9FB5BBE475031B2AC+9E0769CB063B82D1232E24CAA86D9D5DBB9737B1E69608106D34CFEE3FFB4213+5DBFB88BF9012F430D56F69A10FB7D6E72392AFDB306705BD9737E9CCE5B578C+BB9A78C083CF3F8B9ECC7D2E63C519B06540DD695DF7DD6A0E76103211B07FF7+8610F6A47D8A5ACE39341B43D1E89A81B102D32EB2422529A24D35658D572C0C+D483E332B3FEDD74E579E30CC96D49B24F20A75CC5575FCAA3499E40590FD379+5F3C1CE651AB1941FE33F5D5ABC0EDA352378E98AFA3823AAC988E5147C913B2+E260C0F7793E68F43204DBAB76AC417ADC8D576BDC1BCB933445F72991004DB6+A64CE409D76E0B21B5D5A2AE7E08D25CA40695841A58F0719B338DA0254ACCE9+21654B6B9C876BACC710B27ADFE350321D537E720E9142BD567F59C88F65633B+F924B18021A03127945830B4F885B6D28AB11F534CDF0ED90A5DCE3CADF02F9B+7AB59ED29BBE9D260FBC97A02BE7A4107FFA3F048925E9C63A3A015E93312468+6884115A9042E402E61A4E52D2F245F443C24752687DBD95DB2A3F2B5A606228+608CA66F8837A48DBE90CF82A6FC3F0FD271969E26142696D4FCF197E4CA5766+D453BD61FDD7BBBC11B6872228520FED89AC36C8C1B529A190BAB9326EEF9F2E+FFBAEAF329F9F3AC6F90DE67667E240094FC39E09361687079518B8F02998908+EF4B8A7D9FC53CC17DF8227A5C77163E4489CAC5669E6064F2C1066CA641BA88+F1A92D5B564C19884DE7B0A6BDAEB3C0DB2410B55BEDAA29AC508AB1ACB0A009+1CE8F871AD2A880518650CA006459B54CBA17D3C9AC2A4E89FBCAB860BD5A844+8DD2136101E3AADE2793AC7F3B1D4A3C8006A462E74DDB05313A5E551F46A1FC+1D66EB5E7473D03F7DB0985F0A3C2E0CA8DDE3EC2CA952CDF14A7B9EA8D732FA+8FCCE0849F178C89C369504059F5C4601717BC649374A26BE67FB801E855B09A+13521CB86BB283BEED7003E84DC336D5AD7B48B82D8406C42403A84CA6B55E4B+18DDD4769CF044862870CE49C539EA26518451563B632EDE4C96C7D3173355DA+B7AA17FC68A5215230AC4D623EFE68E6E73F80FBC109A2919E0A6D11F232FB8A+694EE934C6BFBF4DB6CA600860928084A8A9FC28E5935F8959BD72E77EA9F3D5+63694F290551F1144AC394DEDF398013A893FB5A27C48CF98E339549665A4752+8FD553FB08C7B113EACCB782E8DAB0E5E68BA7137FECA0E57C7B671099C3305B+146106D1D688A8FA7A838B6BE09CDDF5AC3C27CD2D7DF22D1A1DFB5017EAEBC6+9D292E088AF074B23D699D65F97441E93E2D4D2FA0E4A2FBBBE1ACF5481EFCBC+B875DA911FAC11D48F69178C20CDD19D3F48EEE2B2A3073A8A40F5DAB50397E1+5D9FA465F0AD56F748CC34E784FAFFB2829460A91652F048C575E2208F0C833D+2145FE98DB5BC8D21062C24CBF64920D60970888F9E275DBD790E8CB964C6B22+5ED5BEA75F95032190F17C4C923BD350F27ED30BAC8D47315CA7E3908EA708D5+9653B1DA57C817D036157A82F9122F002B6DE7A5E0A20F6F079C46C4CDD2914C+B690E622377D71BFBA5BC6483EB35FEAF23BFCC72DDD7AE1B8F62F1589924262+21BBFE612AA7E63FB42BF964A5992C5416459BE500B6F145E4C81630406D9B95+9A9BE3F14689F0255A146B77FFAE48872368145FA9A8B08A8ACA8CA00ADE3520+DD31B095B8257668B9827D5FB26717D943981DBF675F93CD3ECBD73FD9E0C66B+C706166BACABC2BA77018F87C6328C5990BE759F09FC8F75466A415379F7F018+BF00D53F3FBD24FEFCAF603EB614E0C58B3B3F498E7C28C88ABEBFC1ED67DAB9+BB627B6505B6234208C2660B176A73E8515C92F7C8FCF8984D128955E6D5072F+1A55F50937BFB2A0297234503FD0F8F9D8273F51621031A2AADE13CE7A5363C3+A295556EFF4491E95AD35A7F1A8CABBBEF5ED2E7DDB19CBA7167DED81A562564+DD935265132600119BB8B07560BDB78A2249400DD028D74D7AF1A206B8D4C465+7D0F181F71388FACD2BF51527CF4CCF88CBD519D60B24B06A740B32EAF4B7C06+129F9E5EBD3042A7B778AA4EF04554E6B064A3B26FFAD119703D7A77AB94A37C+B793F8C7BAD0E12184589FACE8450DCBF620E7170267C57287B7848C7D165B89+0A8331630DF0C9736DC66ECC2A42F5876E6F4B6C38301E964039E455999A2E98+3F66DFB305ED15F647B7F3BC5E3442BA03A44547657CFDA480FC9CE4588C4B6B+12F5959BBE742A77EC0B7B8801CB587A60E56D3F0E8787F4BC0F5DF07D366791+BB0FDA8463232F8F77512D4E27C76B30C290CB31C0C88D68E29E8CD3855745E6+03F5EB8E79AC6C3DEFAE7CD74CAA46D8108D63D5CEF5E6A3170B04C5EEAF2F12+9AA0091ADCCA6A2DD3BC080452D655F9D2D96303F986B21CC95B7462F5B724C0+8453B8BEF94BBED91E9F36DDEBA4ABD9140918AC9D336A7B88C17CEDFC46AF22+FCD7DB189973284224C155F373EF24A82EDCED6580DA31251220BE9B66EBC960+C27A09466A4F28CD24AA52148B083DD82EAC1FA9529B625FC3FD102F3BA68B5B+F0C559B7D3409B8A5BE83B8D74E1A99CBF8188CB3BB1503AE04B1742ECBB36EE+95A9EE8C157D438510D2F80B94E0CBC5887D4E25BED746A17305C753E81F1CA2+782CEE93403F51A2C83896F10DB0F14833792B40E4667E346B03FABDE72D7721+E8BC37F6137065E4F1AFCC130907ED1C4AF550BF0657B5DC66C632760F922C07+0B3930D90C0CB3F5C10E6975BBFDB5E03945EFD298083EBB1F8022A89654E17F+64360D18B7D9655CBC1CB3AF5B519623B7BA173D893E03D4D391E7A7A7AEAE2C+71D4BBC2E34B8A8EA30B7600E747C1140809BEDC6CA94A3A51273998F7707187+E37DB5DF0287602DAFB745BDDDFC51D5B7B28FAF8F32231C32EB1132BFD06B6A+B4B370B5C2EE08D4DB144DE962AFB81BFE04933622D585728E716BDE78A6BA64+B6253C4B975B87374427F5EFB49F646D54A7C1D0AE1D16DF7E71947FB136749F+4E19E10128BD4A6A782C033D6710926AC3DD5991D16AB1F79EC75323900F32C4+967B08A6F3FCB7E8604B1B06350EFE17C7E6655E28449A73821A0E4FA8A403A1+81D199D0815ECDB3DA6B113F6F1BC1F7FC09358FD5F6734D181BDF60470F34F6+E41FF0981B4C201B3D3A1B04CE394475D799A29B625D1C861DF50F57781D2B36+400CC2CFA4AD72C171BFA5F546566595C1A0DAF0DFB9C6C9DC08B43E38BE8929+FC8E4B99FE6467E0B3C51861904EA32CDC103C556F17F9E20A98DD8963DC5B4E+3FC4DF72135CD6F9B071B3B9F54658E2EDC5607914A299CA5CA03A602953C1E3+561336E204EE168BD37A88171E203985BDD7E1BD87718D43D238CBCC1F99F872+AD0E35096DA43877C0698D554362C76002F74A30EA4F85D0CAC6A1A79773C21F+24D87DF4335BA77197E85FB480DB8157E1907167282CEC2C997789693E13994E+3EC7E4474E19259005443A148DE2D46ADB6791AC83F56631CC73024C1431F7DC+34F84EC3D109B332DC4EAFF9137C9DECC8FA091DD2428DD7452DCC08F277788A+57E235A72054F6EBFDBEC6A0D70B58470DD13B50F1BBFC20386657CBE08F3FEA+7389DA45CB0E6CF28D909792583A30D6D55393A08955275792111E7A187BAEC7+CAABFDE50A1D0391179FD9954A29FEDBC39F31A27E2EEB3213ABCD650FDE32F2+C6ABE0C919297FDBA3D02D02D31A1C5EB17EE196D13FF870B52277F9AF77C312+C2E83FBA8AA433A2C66A9E84CBD1E7F6F5D8AED81E95FD8914B3215B17B6DCF9+142EB54B83D895307336BC6E063490AA55B09CE9DD65A90C491C9699FDC06532+73F5AB2158C3CD36EE89D81B4AB2663C3913F905A3DD00C8393C3E97021FE02C+9EA4BFAC6C6609B8090D5C933155AEDD2A5D36D32E0476023C00BC3F61F2E4DB+070C82A72DBC9B273CA6679CDD00E4BB4B0C703B582B87E0BD171E3C9D5FFE7D+75B05EF85F7AD723430C120ECC068CC72117A7B842D09B0B4368510F864FC4AF+401B82A8CC0312B87A1528AD133AB70FD691A313372F37F63C6172DC483A86A8+9CE740CAAF46133967D50764FE1310D3AF82726A2C2D3414078F94D0C9C4B994+2524450BE2A444DB8236A85BD3787A19DAC58EE7DAD6DEA51D41F520BFABAD2E+7592D2026947BAB900C6A8AD609A9668056DE2C83BD9295DD0523511A6E8CF54+BE8F72C9C086AACE429E7FFEB16BBE9A7D89E4B84827A3ACA5F56F9231A47C9B+CA6B6D68690FCE280FBEF11588262F9BD8F8C9236A849C8F7ACFACEF5A6BDC35+C13D9330110F0E99AAD5BF70C062AB4A93CB584550544F34A83B06550C7C2012+3FCA0175C0B7F6E42FEB20D5307258BC138D36103C6EF5F7C95FB566098919B6+BAB8CC19C7EEC387D5787D+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMR12+%!PS-AdobeFont-1.0: CMR12 003.002+%%Title: CMR12+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR12.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup+/UniqueID get 5000794 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMR12 def+/FontBBox {-34 -251 988 750 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR12.) readonly def+/FullName (CMR12) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 44 /comma put+dup 45 /hyphen put+dup 48 /zero put+dup 49 /one put+dup 50 /two put+dup 51 /three put+dup 52 /four put+dup 54 /six put+dup 55 /seven put+dup 57 /nine put+dup 58 /colon put+dup 67 /C put+dup 69 /E put+dup 70 /F put+dup 73 /I put+dup 77 /M put+dup 79 /O put+dup 80 /P put+dup 83 /S put+dup 84 /T put+dup 85 /U put+dup 87 /W put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 101 /e put+dup 103 /g put+dup 104 /h put+dup 105 /i put+dup 107 /k put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 118 /v put+dup 121 /y put+dup 127 /dieresis put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9C535A5E57376651+F6823308463DC4E0339C78699AC82C769542FD3B410E236AF8AF68CF124D9224+FD6EE92A38075CAAF82447C7AF41EF96F3ADF62F76FB425BEDE4C4124E7B1E0B+8BF254D91912D3A99557F5427907A56514C5A3EB961B94112077FE9417B70DA0+B2E1C1FA3E1D6F01D11F640CF848E45BE3E205258E64FE36AFBD4DF4E93F6B1A+966C8E7FBE2CC8FF43C1F67BF6C361678B5E90F4BA524FE8A4CAD6AB28183E6E+CA6C9636E884845105595A2E40CDBE8D4807A81AF4DB77B31873FEB221BCADD4+2C4669459704CB58A7BC230FC59F867EEADE660E49AEEDEEB042BA9A7DD8193E+56C3A36A1F639F7EA512EE4BC6992F52C2FC82A890EFDA730105B0AF7B819295+EE00B48F64C2B5BCB275B1DD62F289CDAD4AD9B7EF057684642FA6FA6322C277+E779CAC36D78F7779CB6DE12638B3C65B70C6B5F8A8C6421A379719B8DD44973+5F52856A4A29B2ED37F2B1FBE6EF4B79B7C0CD6395C756A00FACD763C235914F+847D1D99831023CE1FD89EFEC83AA7E313131C0C197248605EF5BA773D0A4000+72F607551A8EA6F0FF19441ACA179177D1FF7B423FEBDF58B0C19CAE3C10EEF6+3538D8FC4762B77C5AA023A8186C40D0365A4487DC3564265B3DF908572DEAA2+57E29EC669DD72974F806EFF5ECAFA9ADF1F9D2A63087FB7BBD100F0F81C6FFB+B1EA1C9DD46548AEDD147EE64B1B4894972DAE1DC3E8569D6A3CEF9F9E46DEB7+547E10BB2959D374A33E47C58F1B20419920AB485F166062FCCC08EB5CC9AC88+F388F0C0155027B727729488E44CCABB7064A1432E179189C4627453C5231535+47D1F2B8BA43069696830CBB6E5F9A135CF22D3D1FE490A3A63C088EA32FF444+24A2427BBA63033DFE2E06DF8CE67949B6AB02F26335A376B57376814D2A7DE7+64A4347577EBE9A6E33DD2FC214A09C6D889C8FFBF1D567032548851B8F97204+49E215CC7D222F593E1EF1439ED60AD922D41E0E9EFB5CA48F2FEFF75AC5FEE7+FB6676D8B8D4DB6885FBE8B61B586313E4DAFB09D94CEDC0507E93000104F3DD+F83865A2C6F6A7DA8562BF86F5DB233CC9B53391273A1462E40876A8AC2B098A+DBADD5A160DEAC061F86A5FCCAB495EF8A9D121AF07928EAFD56F618E4EAEA97+CF89A3AFD406FC9DE1E9769C1E1EB83BB883786BC075EB5DA2692CD59C4DD7C1+7FD2FF9B18AC740A390C1DB38670DEB18C67721A1DCD502FE7368F47DB4281D5+459B3F020595FA3B10544AAE9EF786A0645FB7C9BB29D091E1432CD878A05918+1665643005BFD9A4B0FFD347ADC84CE22D6F9AD4EDC05E8C7179DCB360AB57D1+6ABCD200A4B4AD56825DC345984D9A3DE11CDA5E9EC1E5006EE4181E4EFE0846+67D8C27BEE8F84A1E01947E945BBE988702DEB2240C4BED952E433E5305484E5+71965D3DE95C4115FF78CE9EC18E323C599727C8B93CDFBCD1CCA780DB8C81ED+C4B5E596E1603624308972FFAE9A57B0EDB51FDDB6E23EDE2946F61BEB241345+2A192D8CAD53E823D687F9C64A70A4B4B703291FA6317C051DC6A44BCCE0288E+3839D726A8F2E39BFF429865E95C726E808E02CD06F36C1CC9AC77999F8E28BF+CE9D74B699CA982479E9D0DD98EAB24D29C981EF0349721D6819549A39413801+F80182D567EE316E2F0AB208068E15693E4C399A381BF9BBA625E597E6E109B8+16F3A84C8EC92F2ADE288821092A421A8D3B907048FE947230810F0777EE2542+29A3485223FEA079B359034F70464DAD2F0E420271A4E0CCF57A0ABBC20AB327+0CA71B292126D395E0D083B19BEC6B48A9DE2BF470C3D01A8C3F52075BD4BE02+A0C518355814478202FD4762EC542F8E7B9B1F7824F0554660CEB83E35635E1E+DF0D03C94C903ECB36B4948ED98B6324E0094EB1DF70863142D4ED3A932D7346+39D69F8F044B6084482D7748C27328AFD24A3A70B99D1F7D32CB984488672254+28B6A9E9DCA2C9FF6A1B311D72413404B3CE5428BDB7FF3C36357D7975184F56+FA6B32AD54C37D0AF7576663AB1397B80D4E998F0B4C4F6D90B483029EF2EDA9+D4C4204C1546EFF3100629453EAE01918D09FE104E626ABA38646F17B6A94CE8+116BC7A8D9C319434CA5B830859B4164DFADF1D7C3ECA5C78D8DEA930EA4AC3F+59DBBF3148C91A2E807FB934E3439D4F67C6DBBA9972854E6E3688E1E0A34B74+482217CFE031CD7B5DFEF727C3EF8DAEEEDA08F4C90289E62FB2AF2357EB2E45+4BC547980FD479101FFEEE477AAC6268DD659E8DD9E244676FD3C6909713B71A+323B211E571BE711D103FA23B5B9AF077D84E2D20FEE805E81D20C03501F0F17+C3B081946CD0FD577F00E50B76CC37CFA97A61B89C25DD43911B28857284BEBB+5BEC61FFE3A14C64BC5425A7A82326617F6F1FA4FEAE56071C9F559F91568179+46369B394A5CE96FB7420FF8AB7C61CB83492FA5AE4A4B0799578594C9EA67E1+E54498AA5CD6ABA34AD3417F04F5D8D664A7EB39D41E2D17643CAEBBCCD9C38C+C5C9541641A09335EFBCE0D276A54253EFD68141807A66F1DFEB4BEA5889FFA3+4D20BD52012206A9F8D3E0F6AFC03FDBBDF3E51506EC6336E249CEFB571AB84C+BDF8E471E3795C04E38A5306BA6D450D72E50910D1AC385BB06CCD4B8E433A32+5A4B7FACC976BB31FCAA1E62DB2C4FE06DDDE7367930E336B49F47DAD91C8735+9A35D80CA2E117E86B52E41E9278046ED923454989E48610ACB3B1663F197117+52659A9D7BFA561C7ACE0771794FC778675F83C5EDCB132AF124C7E6540A140B+E0A268836C73A3C746DC964E482E63C56C0D396515283970FBFF182F9F684FE2+655FD8F5D057D22246DDC3FD11B77552DB4D90ADBAB77BBB1FB1592129DE0AEC+F822D7D36E52BCDABBD560B403A5C56C5E1BE789C3AC049318C7FAC5E5861E42+FD66C3C0F46361078D7E036281682BCE9BBF77983C93ECBBEBA9B359769CA442+87FCA1B98F4EEC4935CC93B08AAADDF355C99816453587310F08C50B9BA3D107+5388A1F3AED2AE32BEFADF0285DA90436D1D7EA85D7B9B6DF2AC4B778CFADFF6+6EEE54D1A1C5DEE3CCA7EFF57A7C2931933CEED90CA26DAAB45E4388EC4DC366+B9E88518D6CF094861D2A59282044CC06E63EFB390A6DF4BA5EAC7CE39E1EE03+3D84099F5BE96612789AF3EDED07266EF10A0FC23EA1EA97040B6BAA63138B1A+A9CB8F5DED781260962D7618EDB200C3ED976033E8967A8CC676E9C11F74BE34+343A7ECE7EE97E8F76F7E95517A6D6163527406EF5A669535CB2BF4031F29046+BB2D0FFFB47A576F5EAB1D00A582965C56F28C00B3BB7BE2CC8D8391F789070D+775EB775437F0CD53DA840BB3575104B63E4B0BF14E3F14B320EDEF65FD4CAF5+8596DA491BBCF3153DED3B718F833D106432DF8DB8B8E6B34D5308C9010A5DD0+7E0E53260BB84BAB3EA748E8D72F75901604F80F4416920D69B4B983DCDB72C5+E9928F01A4A85954FD74578AE336C782CDF81D1EB7EBCEBFBAE7ED8AB4862584+397928F502D65139CCD582CF0723C5262EE54B9D2B8C39614652A8A90E1C3B65+7D26B99DA298FE4B9A7E98848F619C9BB4FF9FD215B72F99506F06355B332689+37D80AFD9F9ACD8172CDC51FCD3A759ACA0F7D4EBB07840840EE42C2D5B8B257+2C6DB3A7657B75F2F0B9730A20112745703E2D0FE709436CA6A5F36F59E64D9E+37C0A23D6D289E1AC1DA273872F5FC5C3DA2B127F078A4D7AB3FD7E124455817+DDC796D54EF26A1FBFD539D3A21B86DD4477DA49213259ABB3FF241424F2BE5F+89151E02FF87E0BEE26E85C0E518D8BE7CC9214B8E9A9EA1DBB49C6C212CCF08+90C0F23E9858947EE344062EBD9C574979087439975EAD4E85CD7BFAD3C91CF1+EFF577843AF1427D06CB2F3BB519ED1591974218C43F0D2038665F9E2E3960B7+FE68CD3CB2DB6B36C7997C6B21EC11CF1DE049541001FFF26D14C255E3AE862C+5A5701292FD2FB3D04523D6E2F3547923BB117718DFB6E6520F0D0B5450C695B+8C9242CC8671B7284CB2E1E9EB097A3DB1B4D5E8EEB93B4DC7E38C0A10474665+54DDCBAF079B92EA494F6FA75A84C5AAFE280284D0823D7C22249A21044BB0E6+4062074ECD17B62E03EDF4945A294BFEFB51F5FD870D9D7230FC91B83C1D85A8+86CDDF326FC90E04362145D6E8630C50594484FB829DA18F5C078F2EE67D2F2B+08DFF39AE2E8C9741FA989AE494C7166F122D2C5F71B97C973B7CE8500E9F87E+D59C30F2E99CC4D34713DAB680598F41955FBDC26A14CF1E73D6BD6B9AAC8D3B+B998F2D0D647356CD236DEAD6561389ED3A6746221B0CF15D6648412B35A6B54+6A0EF5BBB34AA376D9BAF025BFC650C1B74333CE85413D0EBB2F4D082A26A5BC+3C0A25D2B12CB159F140E00E262F1CFECCB2C802FF94CD34DA0CE9B4B3830FB1+DA85B9B670D5169928990A2E9CC869891CA2FFAD9774E6B92549644DAA5FE00C+A5BE4F5FF91A0B6D2FD8F96121D766391EC4ED3E73DADD476B7DAE1A50AFCD98+DB7E27E44D30416088D9BC07D4661D9ECEC0806830ABF14CE55AA3CA2DF66E8E+748B8ED46466F1EEB072AC0674FE6FED231E0DDA59ED7C42BC05EF00E176050A+C4834D893DE42474EA20DB1E25059E84BD137EF65A02CC295B0FFDE4CDE95879+0FE88BDF2519ABAE7F8CC3E6386ED35E04A14F1E3861922645E3A3F43B48A5AA+1999A5EFE192515FCC625C829FF5A7B337AA422F5E920545F9BB269C869A821D+6C4C26DD2AE746EF0F0B4C1E7E9871ADB5270E1CA9BE28225F7A0370D4C52422+E25263EE101C4EC1C7811B05AD42F364844A56BB91EE72FC8ED53CC6954D2BD6+F945D739BE4C61E36143CE890FC0CBF2F610018D678ECF7CEAB18FF5A0E48F76+FDE2463D40A99380D679B3B76D39C664F4992D23E5988B0D1AF33DFB04894016+E852EFD1EFFE586153C0F31ADBDBDE3F73FB49C5EE64D0D02E1504248FAFAC3D+903FD44679BB09C30288139B41B1E90A10139CA3172677250B16535A1F3E5E4B+6F4264DE58896E66051FC677030A121C5A285C47B6129CB5A3998830CE070D21+2F093FC1B44089F603A21F45F60960F134A47226874C737EF6C085634B0A4A66+139420501351F737A73F39D960EC38420BE46E5B09D298E7C16B8E32F01507D4+0141FC52DA1DE718D634AD9C8B00E46EEEF84356759324D2B9A3473C5DA38DE9+E30182B87F91B6A7F7BACF29A93B44C879CCDEDB063F9D2E51E0F1FC9F018FE1+2433D85AF24B55DE3A61C4D0A2DA4FDE933F5F6FDF17E9FA9932BFC46E2D71F6+585EEF5B2E4E89E797A24B799D7F064DD1A817A53677FC9EB8CC3E7F93FE50E8+D50E3191052943FD6C98B573BDD1F6D70349E1F8011599E3F8FDF1D6E80A710E+51E434E85801617C6FD8ACCF1B77B4BFCCDD35CB4C0367F4EB4D8D9DE8284D5E+B4F43E2F8320C2C5A9AE90ECBA7E65D377E91DB69FEF27069235366AD3E126C3+A73CE97F4C90BA00D206FA012C327FD69EE59AF4470A315B1799CDC0539BF90E+512C8FC3BEFE4D1B01D969EA9E3FEF976CD6E0FA4C9ECEC955B265CFD58AB8E5+F7371E479279EE14B689269205C5B506940606CF3E24A1E7EFF3CA96ED30AD6D+E243DE57690C3D69A401AB3315FA49E4BF4ACD4DD1CA39272533E82EFDD508E5+1C2CD286CCC5DE1202C7C7F654521750632EB637F918667E2233A43DF75239EB+F28F3129EB5DEE2FC5BFC331FF709B0FE9B327CBBCE98BCA2C861C6547E50407+1218CEBE6EB5F9BABA4F2E11BCC6FB553A544A567B459E06375102C69F8018DF+BA6A227CFB13E2D74E6A521E01B74F2963E9A0A1C9FD87A88EE6356E3BFABF55+BABC751D2BF85E6712E8EF57914920775906662E4BA68FFA21AD422D34E15578+43CA0568B431101A1194F8AB1EF25E886BFCDFC10F4A5EBD9530816548BC298E+AE4A0B6B52B8B59C644C409B4191B6F4203F52314F2675F02AEB65A72C66E92A+2AC703E15D8D381522C0AC30C165B822A9B8D18CAECC094EDE020756018DCF51+D0701B507519C4270B70D8CE94B436F640C15872F9B5B77892AA3D110E4D6A65+8F0815C61A5127BA25815378683F46E69E54A391A8675977E7DF9C2D4E6FA991+9F029E50CC2F266B31EE9F9F24452D5838905F330CB7E416B8AF836C5AC26AB8+BE2ECC6EA4BDAA08C30995709E225C21D35DB6369167602CBFA8DB2697635925+969002CD1BEE745DA2E56C17EF3F0C05E3847147F86963C37A221C8827195A8A+3D38993E4939AC915BFD9A212F5FF3F826F742B952018986F9FBDDB69C3AC65A+845F7F33C55D4BE60A1817EBBCA7E1538E8087E1BD5C083A320D52953BE65F31+E8339C612A510B59CE48D2EF7061560C4AD258E7DC59694493E3AC878246F37D+6DE89253EBC8830C6B209E818213C4AC4CF1F391AD91D57BE76FB0E2924A1407+E4A949C905E44F54EAED6419F13D59942C8079336A172D4758BEB5D3E786FB93+3CBE4FD2EB53E4E1DAC34E821EB30FD44BC6CB4298242C38F848FC23AEDC9733+52BE6F32E31E25F18301370F8936810B0566B664B042C7AE0D78ACF0A87E5BF6+F9B66E358168B2CEA30DCD940074F3ADB793CDB136161FE2522905E87B8E463F+95D4DAB7E14A3DF7BCCE8141C5A08FCFA2BCE9F2D1B05A7642E75877EB840149+AAB007CD239AE47AD115929427717F219B0A8907F0EC79ADE1B901DAEE87A2F8+39361DAB43DFFF69650F601B24061A9353CFD619FF9626F63275FD09A5B13BB4+8B3379EC4D147C41197E8387FC04DA7BE409524CEF74EA91DC066808A7FD0EF3+957A44E2503EDA67B1C61827479486134E922E560A673BF314D601C66003CD07+55569085AFC8428389A140EB976CCFB8F29E27587E46C413ABE2EFB51AF5913F+53EEB74063162E0BA1E24CEDCA320377D3E11BD374F0B44E132A5C35835B6E2C+D32948EF9DC7931D104C1385709DA882DED6458319F21C2329938396BC074106+CB9CFB9E0A915F8DBC8435F386917AC87A2BA45D857EC30ECA66FB4044F5439E+CDD556B82A0E43418D179AD883C85AC276E1190CEC242E3E1D86E725ADC39E46+BB6C47FE9E17E29F8EA81E870302A00D91434F3B7A05F243176E6EF1082541A1+B9052191EE5C2B8E94A2E02DB65FC769653CA8D1C07A13CB853544AEC7FC35C5+218DE3128AA31952DCE19C55C23FD69BCEA2C661F57B11B8F9E86BFA718D1521+3346E78C701A5E51923D6D937E62FDE3669B214D240538F069A100A542720A86+31DE88116DE775F7ACC2A49EA6C02A24408271A846990669F2AF60AFAB4C16F9+7F4E88E917F0FFDCE68F22998AC0AF2A60A73258C3A4BBC42A2F918123128195+196D0E150D79AC3CF4628503D1F3FC528265ED8324E56849A47B3B07C29940B9+1BC270071E221D355EA51E9942D3BD7F99816304FFFC8F5B036C953B38759341+ED5D7B9C8E6B70C409DD8362FD291201CC385E4A98D73E8518A4C0E544152563+82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651+E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D+F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A+BAD50D9C98DD94332DB4C7155F8A52013F9ECB7CCE3CFB3E667C57B022A0A753+A45E41A9D8229D5198031ABA3DAAC142AEA5FAB6694A6433629E15AE45A67FDA+34DE10D995ABCAF45FBB3B6B73E80D05F4C51F8C29D4B0F67C8A86432A6C5E86+F0126AB25A5CA2875B48C61CB8112A4CF9AA08F8B0157396CF63CBECDB8867CC+AC10F060630C9BFBAD84B1FF01C814878F0C177F552BDC9BB181B14581C6E968+DAAAB2896FCFB745795C4D2C87CC14FE0D165EF1C2A06A9B89855A1E543F3691+B90E4EE9F324FFCE2D59A8810987DCF0CC270D5E734D22592A1B77DB98075341+C48676342C1C74660E7D79B7329A7F6AB723AEED60BF2E1158F0591CC962E5A6+ACDD131797F623F38B06F9E9EBCBCB1FE267B888C20A59AE40E7A7169439494D+0F336276062BE896D00A355A1D264B74BF2A1119161B0C9702F63024F683BD05+0B9CD950388B3602620481C596FB7C52EC5EB1FA50E24ED4BF84B866CC37DB18+DF7271CCF9B739669896D492E5584DF1721149BC975934ADD67F39A050F0F077+E347DCF4F3B688AD85E62A5BB25686F8FCB5F35ADA75170AE5D7583EAF8B56C5+20204981DC0A45B3AC2822A33E33E475FE187050E9EBBC8BF669803A5CF1448B+6E9F40ECBDD86FD3DAA3EC2A89FE1A3B1EABC1AC8861CC84EA862E62831B69EB+835C9FC34AB48C6D62C293A364A7CB8B0F4D22D18EC480CCBB5EEC03152E7F91+70FDDF450603D0E32620F3E8A2D0F2C725E4443727C1BCAE19573AEF89AFA211+14523716DEB3C22D107956341BF56E15BCBC0DB53FC2C5F72DBF91C8B246B57C+F55607D3C8222D25AA0EEE6279D7FE8EE50CAD529601A1953E2A863FBF7ED9D8+38507917A36F880BA9A716B322A60EFC1A8B802FDF6AD7252F549CC18DCB67EB+948CAFD8C797A1721AAA4CB9A2E2261CC481D2C4450BF527FD66C68B6DB74D17+27044A15A3851CD5CC288A329BE50B02F7FA39CB676593CF387BC53DFA69D0D8+F6317CFA251CAB25CA00C98A56B1CD4DBBE7576D3C21DA2320F008BD501E81F1+C620404C0EB16C2D1FAD1CA21AEE3E58453F41F49F4750F7F938B97E7668A851+2FA3010DCAF1F05F07CDA9B3D192A3D747941EA0A060DADFBFD67E441EF34B89+23BE52A5E2A8A100D54141A2458D8DF90975FB3197ED72C603B414C79E5BB11D+21560EADF5CA315EDD518D955F52AB1B436DD9E10946065F58190746E586B04C+7A55623B320FA034F862120D1F25A41F4A16C58ED64270462F64D30996C7ED98+8579EEB6F849CFC332E087EC76C431EC84BCC18156EE2AD442A08A3766F96817+C42DE2D443D384D7B50A35DDCD469473D5C004B06FD67173C3682DE8593FD6C6+540A4C6D603E679836BF58A57A1BADF05BD1BCD589CC2FC8ACA78CBE6BB208B5+D46847A8D1A0D239ECB3A3B6F31D7AFBB2415614AF27953B191897838396F2EF+94ACEB024B4EF51A963383F8E9D334F77DA98E03B0D165CDB225F8A507E328CD+9103ED8FB765DEEADF02BDC3FFC494B071EBF0CD9F19F85F83B7DCA40943BC22+62D8D09864BF305324AF3DE80A89F8CF1ED85125DB21B8598E5031A069931F93+4817405D4D5682B7FD479386FF35CBE6F93D432FAF10045600A4436837C3EA57+0B1981CA9335C8CFB9FD4538DE0B9F299D3E30EF60BB2E5EB3E31FDF17F1E4F9+83AE48D8B5B27CB95E67915725D2D64528280D0A8230C61A5C314DC3A635FA9C+3A88C8ADDC5FEF4457FDCC99EFE000B9BD8C59148D114A2FC71A781F9192FB6A+5C06420F2247B69748EB20BE5A5FFA79A2E7A1C55E1702CAA3CAABE8EE974FD5+554964B31CBB0090D5472DE5BD96509B7CE0DEE10137BD692360F5F4DC1B6185+4BB1125E55A5A86EB59D75C9D704A2BB4FC10EDFCEC571BA9B27758B2224834C+5F9852A526B3C76160D8DA739E79D2116B1C4176166309CDE1376B39C21CEA7B+F6A800EF4810366BC4E07A8A4259DF1001401F58FA241610921002A1F29F7538+DDFAAEED35E4EAB3013BF079BFDA1147B2740789A133B29FE238C8C01BCCA7F3+2357409D1AC7507CF76F5C56DBBB30C76AB80E902BA04FBE38ED12E0F822311C+E519E74613AAEC710C4E7788E5E9424AC68288DD40F70F2D1A37830158F5FCC8+30CA93C3FEC077CDB2A9464A1914B9B663A7667DE97A4859BB0063EFEA080DDF+6C849F56BF6912DEDF2952D7A6755B30F31369D3000F0F8420BD6B2948188888+D40EFF7D7CF7EFDE7D72C777770F6E703F3360D2B905B39D7A854C0FC95B6C7E+E2402912536AE9A2C6D7285944A6C6ACD6C6196CF60DFF1900D84451086BAC10+B330C075D9E2C6EBE3D3B6670028317C6FFE3A2D0C6DA8C77BFE0EB8D7EDB419+A6057A478461131BF732237F3D8925936E50EC9484EEC4AA0DF25B9C256B0DE7+12EEF1F9B8F8FAF163EB26BF91F0B1DE5808A66C601C1F498C930E7DB7D20891+04CF906ED56FC8EFC5E3C000578097D57B14235531C3684850236B5CB15D85C7+F721BF993FE015E9BCBECDEBE88D80BE0BA4A1763BF4E265B16C0F46B08BF6AD+D3B3A456D57CAB68FB8FC6C21696E64377EB15AC532B87511B138A02B193D380+D8D49C800573E27F88E82D128CB064EB3C43CAA64C8B3F1E435C6BCBAE5C361E+B12E66445E81AAEE61DB5AEA07A6EC2C65858D9DCA5CF9AAC11AEF20897B206D+4C71AE0F31902295F6AA6A5D29C972CC49DA745F7C129682A68B369B57686C81+34F1547279119827A5AC087084D22ED24FFBF98955783BC8BCA536694B758394+9BF783EA29EDB1945D650EDEF3CF2E16BCE293B0F073F61A499EDDFC309D21C6+ED0F550FBB4F24A0CB751EF34DF6F4D8D3E084C3A009E4A28970DE2766785B69+39FBA03C317F631516C2B6FCF74AAFF65411B50113B0767594E4E891CACB16F1+30EEBFF4964163E3F4E57016935B53FF8648F0F57F01153FCBFF818623D47FEC+7D2138E6BDE5A87E2C9F5F890AB31EF021E8F2A5FB9DFB9EC4904B122FAD1B54+1912B58127F544069477D13668EB372AE4376A11FB8300A69F036CE689A0552D+4650A71D04D8E5915EA2F739C797029BAA22F8F0EFB8D47E3C71E00603F528E3+9625672E190FF5D365AFA65DCE6DC7B5D7926409D8AC46577A92520A6BD22C63+F661AEB30A687DF455BD3A1630E310A9697E0CDB7F32FE50649C6FFE2B18F70E+BD3FFCC0B396774ECC3C03CF4B79E6854B752A9109398A819D1BE8D1FCA4AE39+675EACDEB4AAFD949EB8307FD9834B14589F91EAD58CC781B4A88F4AA82FC4DE+E87961A0CFB4289F7AFDB1410816784BEBE7FDF7E13EE500835D79D55AA23D00+6C4082380A6C4C6FC1736C5200D83A511088B906B66EA00CC2AB411D79118BC5+3D4D961587DC5E9F8EFD3E4CC96892E424A91CAF6FC0DD1A0595004BA340895B+D4590038AE64B99E08F5FC29F0AC7AF15C11E183F6C0A321A56C573733A9DE96+D26606A1266128DBF4889E6963E1A169DACF246CDD839E125C2D2556FB6DC2DB+82E7D7E37E67688EA716D84187095A63019D57EE8467D1E3A9593EA67CD69552+295529C8FDBBA1F2B2BD5B226B93F0FF992303C424A6D2CB1B293EA56DB96011+F735FDE25A4E0C20B3A53434F9C5C47106229CFB386E9272F0DF95B48FC89FAA+D0A4E28ACD454FAE11683D95FAF6F781A62F3C058F5203AC6458F3C44BAC65C5+437674437C4FF4EA67A1DA90497A774DFF882D7E6611D280A9C977A9001A23DB+048F17AE2D84CC69D9B33D2F3AA415037D120C08B01D7242FD9F71034935BCC8+6D752B8A15C012392EFE787456A554E1A5F31F10A17E03C94838B33E927D72EA+17962243EB9B14CF3FA3BF821FA0D92A91575A31B15E4D6211B03C5EF618F025+E594ADD1E0D9CDB31E2B85C6CE9898A09C7CDDEBEB00524F2A40911E3E80E59F+932C42BDC42A8D2711EFB7307EF5BFA5C6D05962F52C3F61786B916F6E73EB84+560BB8136C6C762CD0AC481E06FC48B636B211E4774C0A63A60C8394EC4B4289+F24E742ABE053845BF589254DA4168AAB6DFF82C8B82AEB91C52F16C0B481125+9D240E5C07880365692EC420566F72C307056F551A70E8093642397496AAACBE+1D129CC2434308E8B9344A865EDE7D766191BA9994BF4F12FD7717D7FFCD0FDF+DAF03B314802056180922BDD63AC15DB4667BF84C1705F7373E55EF67175D6E0+33A13BF775FFDA3CAAABD1AE477210C83074386AEA6D08EF9F02D8EAD7E4CD0C+46B2DFF1D1A948B705E334974DEDC661E011F2C437173F2D10F4BB1A473500FD+89D966462AE720F5CC5C0666F1CF0334943B6D36E307810F05C96B4137364B8B+BBB774C3896B1EBA88C7B41CF0CED44D5541833221B21BABCCBD2036A15FD7B7+B4C0EBE88F32422338DB82D5DB608B605878BACA795D89008E52AA581B4D6067+62869E85C73960430D1E6287A6BEE1B3941962B829F9F5352A883751884648D0+87F42C5E345408E0D0C391C5096A1B13E277E2E57DF4C11F577A1EEA6079EA53+25A32E5362BB10FE8B61C65DFACF56869C1ACA73E689B82D735830B1506BB533+A7FECC771106BCED485C97D8022A5C3BA71344BFBC09DA1D2B18367FB494A0A4+0355BDD2F7721073A250C5AAECCCA231FC4E87255E892BC4B7FEC711BAF7227C+BB0D85F183B5801B01E25FA7084554A3EDA4644D88E63DB5DCEE7EB3F543A7CE+E663AD2E73C77F83CB6C0046C0E168A4B9BCDDDE1A946885508C44B016378112+433502D55C11F51665D45ACA189C45E46F819ECAC65645AE884D2A5AF941F72B+C94344091DC2FD00F170165DF4889AC694483DEED2ABD7032FB8534CC75D7361+0BAFF77F6D0AB126391CB15A32F071527C17EEF91F9B370DAD8224654739DE6E+8254D04E56C7A7104270D39E3895FFDB95DC610C88940ACF96740AC1E756DCE6+798BBCAD6025003C1C58F3C1BB91684930D20021F922BB1874A24A7C501E8125+100AF9C98D75D51116BF38B25AD8CDD9AE24D66F926A36369BE1000491D5CCEA+498D6D18E22B2395DD89F697F84F395FF2581973CE6F359501C8502D35DE3C7A+32CB79299CA38C86ADF7B4F85D73B47E3209DF9F815677D047AB89A1E236E783+EC4E625FD6778A9BF64F9F042A45BD300AFBD86D4BCFE9539C2F19303C101549+62101BD3822B238BB6DD7DEA228826FDF13FB134A91CCC3216373481ED8373CE+A1CD735DCFBC46F1DF5E93EC41AC17F9A14F2A67C8BA3679BEC1D655533FA611+6FE1367589482A4F4DF0B0B3CE0B8821A65BB879D30882DB1B5DEC65BD8BFFED+F397D16BB8B96B29FBF19CFDCEE6C5E68F16E90A33A06C3D841B2808626F4430+8E4D5FF21ACB17ECF5192117D729B8400ABCDF086BA70FB0A10121EA2251D120+9CAB6C76EED29BCA5B148EB579BDE24EA4B911D4B153CC316A2E2C02AAA7EB78+B41407B4BA56E487594FD1FDE464FD54B161830247F5E76C9366E6538F9D523B+C6D29F6A8B729F80BF936F2FAA4AE5782A60B5F431C1382792A840F9044D2194+4D634AF827D2A334CD2B897C7A9CE0513BF33638642FB8505E06FF6072952A95+0FFBC9DF7BBD33A22E6E057407E02124BA3570E3D872E531A9E8A5A6B2FA0623+A251DB84F4E758CFF1151ACFC5906A241AB401F881EB428B36F02D5C7846578C+BD96A535FE4348306F485B5C5B280376E9CB8C61CD9F0F8C54D2EF6B5E4FD82E+AC5B0CC2A1390E320201065402F1268D3404BEB0EE4D7E129491359B7BBAFA6D+90A9DA4F52E629A9D4705F16A7A600F9C05C8AD8235D79B288B5E6B4F9091D99+026A81731C9F22DD6C38AC14CDD5F5D392FFC7A8446AFD1553BF6578FB7CE4E2+E4D11F8C3FE1E6119FA5DECF6EF863E4458B98A39A713EF968E1A1B79D6A9717+8E180694156F18222A8307B5A75A32E1C16983C9507A4B989733D55D46C93738+FDAB135436C17B24CB857761E9FD7E4DA5B53DD8E5580297862348F5B46A1393+107433C6C8B024AE2AEF9CDB922DBF20ED6CA129B72C785EEAE4CB8062F7069F+234E1255C2F78648B566E52FA3F0AB26CFE8FEBED511BF85C7DE5153B5CE6C23+C1FBA831129936F9C48F12EDB68E6B0D22F181CE563A229FD3FEE46387F2F2C6+F976B47A318559970307389706081567ADA6EE07B45E97506C0ADE870BA9385B+09E98D03274A0243D427AD944C09B4037189A215C29F1089FF6311339A47EAAE+3EF9219B3C4D6E8ACED2E90F07A16C38506F3D939814A6B2A7AFCDAC0310CC7F+673590AEF5C6B02BCFECB750B918BFF1F77FFCA21CC444CED3B64055202467CF+0FEC605BCC4CD50AB78F129D150E6B3061EA628C2A54EC1B41BAFCE33BDF5860+E481FCBB49A7D77898885CD048EC0A9786970CA6CAD5FBD2AA82C9BBD7791E54+0F24F2AE7AC2526F99362C7693B0BCC20BA8F1EBA8AFC385CF6573958BAAD3AD+24C218324A85F4A45A49A9DB3D14A8666D8D6801F58728782102FFF9FF0B1D8F+EB253B098B35916376D948734BD918427A55B71D4FEE89E4BDC6A40516119FD6+DE3F5674F6E23522021BA753327BA45F61979180A142AB32BCEA045A337E07BC+7EE4A6FBFAC9AAB39662E6D19AE87AFED56258A058558F2C4AABCCFD5E898BAD+AF050AEF4DC75575A65B38304216897D1BC40CC029894CE8A0BF601E1800759C+242BB2B36F44A96F622DD37E87BAF3F7C352C464351C5E7C2B5775FB47B2AE18+8F6EF4CCC02F9636CB7F2983545EFF58D5A8EAB93664C83A8CB6B32B14C6D1EF+29A77DA49F1E9A0D31592AF8EC94631EB044AE7DC2D135C16181A08A3CF9D12E+EB69D3F363DF6CC204107EC53F1981CC2BE129BEB3E482ABA3E7D3A8FA792944+BF2BCB3903C721FFDFA89843C54700B0BF6C6F03C8E68D3BBD0A2250C0767051+1681FFD1E9AB7081844B11414C49D02E5E5A9B04C763006CF655D1B735A6206E+872C61AB13FA1C350362955E58C39A9D13FFDE49CCC1E2069E8872053A3D382C+0D49DB77CD85D69AA70804F6A614DEC57B4DCB709DD05DCFF69F8170EA5E4145+3A320C3FFE2544F649F44DD080A6BAD5FBCE1C77C9BE099BFB9E10016E7E0B73+75946236AE3C342B78A8B4950E42C854F14AADD6990B834C1A85D2F8E773DEDC+2F72410286F89D14DA30C68380F388A1EA08271DEB8CADFE3DD6AD1A3EDA2ACD+9696430AB94665833B26B63937C44ABEC83402BCC8DA2D6AC06242676E94946A+91E540F6F3E9F0B8DB7B93ECA9691A85501E694A85D95621EB72D928FA000B67+9677826873DE717198405978B9B000532FC29F00CAA65DD158BA5B97ECCF01AF+047238A73EF6EFC94CC0EA9A63F4A8822CD6676E68C5E1FF3F0C37CAA15E741F+3BBF3F8BAD6F381545E392D8F69126C63CB107770ED58F5E4F3B0DD6A0A7331F+02241E5B69D2C6DF5D4224C97DFC451800B1A6AA4A81562A5856EACFCF875329+A44FE9EA77DB8F03F8524A8ACF9E321837A9EEB42B2A40E99363F91CDCD916D1+69956587CEF1C8D3D84C98925AED160B804F2C4D73D8EB79EC71DDDDD03E0283+FE135A920B3BC71ECEE995C16E5C3D308F98EA6D7BC97EC7398107956C18D787+098F0B56D023924873254AEEC5825EE1A7E759E937DD1F20484C3E8BD7ECCBF1+9D42BD858C96AA5A49967335D7B5A2EF41FBB3EF1EC1FC7C4C5130E0AD323AB2+91A24C989D4B9DEB4C93B93CB36F58EBB91B014EB5ED52B9E550536A48D9278E+834BC1E70CBF44E79C736B87A11E38D31F2C2D4FF01EC351ADC2B48A6E086D4D+CF04CE1D87DB8BAA5E698B76322FA1342BDED78430E755432FE3C9B757B95C77+34CEB905FC5FF0425B95671B831D1A09889BB4D3F7033513508254D70A68357B+FB7EC0BAA07858F6958075410F520F498A9A50956EC98C6A81C7A5E2768D210F+A685A0219F59C080ADF03F3880C7B8CB107458C28E0977FF60719021C4D9FA84+662322162F5CC1D7DCB878E574C1B9AF5A49EBFBA1601E99423F5B402E089175+DCCCA5C7F86323F902CAD491616B47D90774965543D5AC4DE35FD780E8CCE5A1+079D2EDD6C3E2985209065B61A9E7CF649F44D55DF1F3B64F1A72FC6997E6AF1+E5C44AE4D639F1E33812E91067A80BBCE4F2A6F66E237985156E2716FB87B0E8+3333724945334228C89E6A103F2BBA04606EAFCD6036B17E9D1889988E22DC71+6F6C1E9D2ECEEE89462F39EE3FFBE1A512991360FB3617AEEE9BEA30571BAAEB+BFB7096CA241E362D5962D113726829BC363EC99A35B41E091D21C33DE64AC21+4EF90B58ACCAF5D027094A6A90A0F94DE7F67CD6FE4BA11D11FBF9067C88F95E+C9EEED56CB0E83D1E8CD40D8B4C89BB73B11C1421DE9CEC5A35FF7991458633E+EAA56F9DDD4D563DBEC87811040620F090107BF503B1A1C0ADE9F8AE6C8DCD54+6F9D40DCF425B95A7B777DB67B02AA1B6AAAE034FB0E7E4EF8B32247E5459EF6+22DCF0B36785CCE037E5DB07ECB1F95D88AEF8E85C500A5C0C8D62A9926FB0E1+DCFE6BBE8F9CAC1248D2BC2CF770A3DEB0C7D361F83193CC445755D661B56D1C+CFFED8DC6D4EDA94467C414A7327D44586C21410AEDC36B3D01D8891625BB316+6816A1C718CC82D692568268599139FB74C72C29B01B3E06FAC0A5A9E09E0E86+F80D3AAB7F99E411077B1A2D1A03425BD4421C7F52A1AE9001395F250A8FDAB0+03BF4044CE5CAE97BC813E15D6566E2FF5AED9973366A3EBD050C26076DE3BD1+921060596C416C5C530706DD59A2FB5AC918B8FE23835FFE032FB5427CC75074+06C050913FFDCBD9A8A3038580EBA6591670EC08957D1E08DDA16747510BAFC5+3AD8ABDD9D1AB8DCF9127DF73F5C93EE972222ED55BE27D50ED4F3E89F7B10CE+1BFCAAC20F8C55EC25751D674D8E9B62381BE3C662B132417692E2FBFA565E2F+1FC398B4CBF16436A2F5E44E70E26E172B7BF5BCEAE03DE9E7E836FC8869B04C+E61B0E5F86A81B8E91CFB6F69F621006A044532DF726F0BF54EDE62CBD8098FA+7784BAE1E5377F6B100537B58B5126AB9E30E6B2AB1DAB34A9E5828253B6F241+558D8B953DE6A77AB71FA5ABD73764A9C689668EA5EBD6F8061DFF4EB6FFAFAA+EF81E0A2D9CBB36200E116E21810D802280D591651FCEEC25FCFC4F3994C69FE+EA5F49230D3C6C8278C687E77BC12D477942622070746244D63F22462CF4B938+8913227BC0CD7F85865D7F94364357BCBDA8E7C56DF1D4B4DA84A7C1BB8209A2+4908DC81C86EECD2CDA4FECA57A2A8C9EF89AF0EA2CAFD8DA6537212397F0CBB+35C8901D287A4E37D1337EF4689463131D8C258734852E2EB06395BDFB8C05D6+1BF67ADF5C6B6267A84F1155B6B6E0A1175751A6C58235D9CC62B6462BC86286+4F651461CC54DB83414A6921AA2CCA9CA056A6CC42E712BD1B376E68175B34CA+9291FD0EE863CB64B3297111CA5AF164081115A9986A3CB6736CB6A351DA8568+BA26E2E91F2F2EC3F2995AF8E0CA26CCD1CD18410DFF200E9FA2464578C3494F+D0BEE09092BB68BC1398E815141B932A4828482616392818EB30F03155ACD386+FD4749FEE99CBA0FCEF1656ED29AD3347F35B05ED853546F9978F3AAF3866C47+5F0686D928BAE5B51A7860D791355CBC92D23ADEC0DD62CF6F64CBDE90463957+B8A04264761745B1300982E07BEEC2F7DA99F1211040C2BB8D2BB175808830B0+EC6BAA0D45CE09B99EEC18DFC8116583E48BB24D14F449141575220B8FF93167+66D86BDF4FC20900D2EC57C60186B091F6B666B327335A03A2578D9F7FB24E73+BF2D8115526BDF60D2CC6CB16D40D83BE27921E2AB74FCF790B8688FD6E633F4+379FC8C8075CF41EAA713E67E7C08467C681E5FEFC97FBE65CBC756244F18330+7BD66D0C9D3B0B010F51F5B64509109F0632F2A30652DB977E49688F8C19C4A2+18FE911BD70BA65192CE10791D984494233929FEC82308AC7A6997890CB97852+9DA600C133A56E3FC802914408D3ADEDF23C383EAE99A1156B0B491690A7A94B+77910841A2F43864206D2EB43484BC8038CCB8EFFA9CE17FE469328EA7C380CB+CAF30ECBC55BE20D450C6D926F4FDDCA4E4A32C079FF9427407716F134C3DDDE+95F6CAC96789EB3C34FEC260914959532AE06E9261842A53247A6E4371923AF0+D6E3703476DF9B162807B9C25EB187AFD3AB1394E7275B0CF552A104CE0902D9+3DA0602CFAAB4CC02A421A2C3F66A69BC08A537B9A571536C9BAA63AB6532EAA+B503C4DBB40329A617BC3BA18E5C85CFA343EB6011F7E32341B0F9C73B291EC1+CCD3EFEAD371D8CCAF8766308F936C39A45C831A79E2CCD895A43206ED4ED08E+B2EFBF25EB5B09AC8B68374F29BF619752BF32020A112A5079218A47BE8BB110+94D654939A422A0B063DE2E54A707946171162679D68C858371B381E5911CE35+0E66E85E9FA01E597A58B86FC32E685EBDD8CD3F37F8EA82E2C7B07803422786+73B4DD9338FDA4A63EFDABFC818580D08187A336B6CFF249D4C994A89E03734C+7F0D143EB497F05C50EF8420BE79B713172CD5536DC2859D234C3B12A49A7076+3711F54E569E1653AABD88EBB90741B20D0E6C8923B14C5A52767AE34B65BA89+43FDC56A466B60FA49D3FF942BE22AA1B35334CCD07F313D014F10DDDC607BAC+48126E217FDAA5A7C3A58BC360CA6927A56F62E38B39B003ABE417F7C51AB30D+916F5D60AA9F16525A330997F7DE39+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +%%BeginFont: CMR17+%!PS-AdobeFont-1.0: CMR17 003.002+%%Title: CMR17+%Version: 003.002+%%CreationDate: Mon Jul 13 16:17:00 2009+%%Creator: David M. Jones+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR17.+% This Font Software is licensed under the SIL Open Font License, Version 1.1.+% This license is in the accompanying file OFL.txt, and is also+% available with a FAQ at: http://scripts.sil.org/OFL.+%%EndComments+FontDirectory/CMR17 known{/CMR17 findfont dup/UniqueID known{dup+/UniqueID get 5000795 eq exch/FontType get 1 eq and}{pop false}ifelse+{save true}{false}ifelse}{false}ifelse+11 dict begin+/FontType 1 def+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def+/FontName /CMR17 def+/FontBBox {-33 -250 945 749 }readonly def+/PaintType 0 def+/FontInfo 9 dict dup begin+/version (003.002) readonly def+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR17.) readonly def+/FullName (CMR17) readonly def+/FamilyName (Computer Modern) readonly def+/Weight (Medium) readonly def+/ItalicAngle 0 def+/isFixedPitch false def+/UnderlinePosition -100 def+/UnderlineThickness 50 def+end readonly def+/Encoding 256 array+0 1 255 {1 index exch /.notdef put} for+dup 50 /two put+dup 65 /A put+dup 68 /D put+dup 69 /E put+dup 82 /R put+dup 97 /a put+dup 98 /b put+dup 99 /c put+dup 100 /d put+dup 102 /f put+dup 103 /g put+dup 105 /i put+dup 108 /l put+dup 109 /m put+dup 110 /n put+dup 111 /o put+dup 112 /p put+dup 114 /r put+dup 115 /s put+dup 116 /t put+dup 117 /u put+dup 119 /w put+dup 124 /emdash put+readonly def+currentdict end+currentfile eexec+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9D6295729076BD8E+CBC0F4C1BE246922D2482233846A96D867B66D9CF25A1DB661141D36B8506E61+A022F9EF8BC1F2F674EDF1533E67A78CA29A612AA9268E113C5EB84DA56CEDFC+D7A111403E6E2A8682DB04368889747E003A124395ECF0C7FC81218552EE7C6F+60BCFB4120893528670D0E8A4117EA5676915E3591AE5652D003EEF67818A41A+8882E102AEEEBECBD15DCF632ED246A6A58B6A7780DB6F1F9AE3FDAC8344585D+E104F2BA2DF06D68945889A2A3B6C262FB53FC670BC5EB7C56887FBFB7AA7026+84115872CFB0652C6BB330447AFF8F0F665EFD6A41D6DB6877B08052F402448F+CB21C26BDC900636C99CA347B79AA73AFCDE9762A992CA3DDF7279E5C50F453F+52098529850AFB1F501A442D6A02E0A2896F81C8AC735AF1E7EE47208B4CC944+649DF6802EEE813F1456205C6126D7D0B1821AB62DD65468F3A30575E491623E+0054E2E680E4402E1C8C538DA389B81603BE88D6DC287A076F92B224CD58A0AC+44B8D490197341808DEF243660971F444A560C747BC6F52707ED42A99736ECCF+EBCB694A561C3A70A319D204CD40D402FBF937A00BBCBE85DD26C9E3F91B7D10+D85B9D314BC3AAD5A58B107F5F341BE2C53490924142566417D6BE03BB4977FA+6635EA58DEB9508E40B9FFAC75FF44C683680CF242FE210519C9BF92483B0A54+83F48341318BE16D2F8C988FE3DB2E7914581F579D5E323148A31E4ED03BC24B+C990372DF5F3B0C5FA32EB2CA4FA0EA33316569133C87697BAA2292E685C26CC+F8CD40A2366E60B47D47CC9D0FA29D2836011376A07F78BA7664DE96E775CF45+9BC91559A063073A4C2FAAD0893C517C5C46A1425D07EDCC2B57162E3A45103E+FF26A2D2F98B194256A4B052AAFCC08965A50EECD7B9E8F35AFDF7B6568B3983+8030655E7C2BEC961A2F20539D617626E8454E3FE9EBD3EFCEF7F63498441DAE+16CB509BF239FBBE25EFEF07A3E16C9C71EB8D9DCB8403916FB40FD7F4E1A52F+72F2DFF94FD14D7D49FE775390C17C37C1BA0CAF35CF75D682B7833A83224158+D54CE962CFBAFB1B2CA50B60CBEB1F8F58DDB2F5470C355ED9632342D9382AE4+5D33BCA3A0A25EE9E5B39BE5370E7F20684C664EDB48E7973FEDAD9676F9EE8F+701CD4D8CC9B9EBC06E8C86EB88AD56E15CEBB8E1930E8F711CB6E01D5D14967+D7E6C1BDDDE2C4D00384EF4CB02877DECC27AD53FC981338977BA0CC0257CF7D+B42E9BC91AF45D9722461EC3CD9DEAA8011FB855FE14B74BE0A102008EACA2B6+0E287BB4F466FBFDD6E65A5262B9322F95E20DAB875A10A84572D982E6FC7ACA+23C0C37E5EB47B8E69C07507B53CDD98CD1B6445E1699CF35B3DA3E0DC56BB76+F997C40E2ECE47DBDDB707EB527055960113F2DABC87FD9EC7D0AB36B400CE33+0D54D4F197B2830B43DF0AA802DFB2BF747A4C44B31FB708B2C8BBE1955A6A28+379C91AA4CC065A50098AEC0B837E180B76801865A43C74859DF18FE1DA1483B+C17843BF1C7E1B11A8C6D8BB8CDB1D552FE6A1FD0A696A8F7405F2320F8621EA+17C1A32056C45A9ED35D2BD12D02D8B26489CAAEBF4EF33B66FF4BD9B46E4823+6395831A8F3366EEA0D0EA88D612DEBF63DA7FAA24DA979ACC1A52544BCAA007+6C39946BEA6076ACF45722B2B8E4D0823EA2D12B14A98367BB0433A21FBD9F94+18DF298C56F67ABC9DB1868D431A854DBEDF8E1F49E359A545C75A7AA1FA4D5A+50F1EE6B45FC68ABF65FFF257964E4E50D8B0C1FAF498DFC554073697C2F219D+4A68DA9E873B270B9C56F0DDBC9927ADAF9203FD684DE615F68C24ACFFB44690+89C0D5322049FA69E7FD00EFC9C9B2BD177B5B339907F81C31496662847BEC1E+56B5DCDF4FE618970F4268F475B2EF7E0F28CC986DDF098E59DDAD818649CC35+4080C0867A884B8177A6880F06F1E5CC130AB4243EF8DD8032FCF390765BAB1C+1F0C9728EEE261A09F8C1D7ABC7A6B1550551BE2A7D19D45B656650DB00B3A5E+B3E1186043E173BB4DD5EFFB379654F88146382AE3F7196F099BDCD6D245FB6B+AA2FA9B6CFBC9F0CD52798DDF2F13874BDE5B124DFFE0DD93E24C9DAEAE4C3BB+71A9A13AE2860F620B4EC789F95221015D9C510CB4AC775EF69DB9E32E59C896+1AF82C9F0DCDB4812A37761859A3D3BA0CA57F244489C78065346FFA78F5F7C8+0B2E8CBA9EE62FF5C27369D0BCD52857D40F1FB8F8A1441B83565A4150AB1945+0B54D6E49F66389E43096269EF5CDD39526A288C0CB81E324E75D326EC9A182F+2CD966368CE300B41873B08E17C3E6BB51804460D2562AF5A12339966F44CD09+114C6809AF246B5BA6937631842CB9417781A58944B6BA4FCF961465C208957C+81A662D560D0F81BD3CB53C06B6D979F04F6121CCFD5D52702CBF6C70C01EDBF+2040AAB9CB144321E68C4010E0E98CCA2603EB55DD62E881DB621C37EA4108D1+528ECC7A0121B57C6BB1E26F8AE7161ABA7E88256D2D6A8B7CDE2E730D137493+3FF628EF6030DD2330D747FABBA03B44CF600418C245C388F33EC5559E7313BC+4B530C4FC12530D38B27D6408548F25FC084DD0523B27D29D6518D3115AE7755+37162CFD4CF528214466FE525B13782F9C3CD78F3D6C7423E63A134C0A371F15+10F4ECE1D482C647B563D3D15586F80BD9DF7381BD53927825D5AEAF762E1CDC+3BD184F345029A95B3AD4D1B66E79AB4F0809418C0CFD4D503457A190D02F134+3F57FC04FF655AEEB783D6791E4EC300755861837D3D50649F6B7F60766211B3+8148F8E575E28D6C2DE75B15E722ABFC6DAADAE53D89FD295352781DCC2CFF6D+982F6DB778D6FCBF1B7BDCB53F3A23AE6EB499BBFA96E8BE04C3C8E5B660EF24+01EB842DAEBE979F2C2DB72AAB4D21627063B1D3C6CD40944E4CB81655698FBA+A343766CB22E392E5DAE01DB33A00918D6DAA07F2F38B336A3C5DF3708865E75+0DE04D3AFBCA27A249E97377D5785B4E28EE0E93F7D353619C200DB967372ED2+153BF8BE945474266EB2FD30F80042A11B7E3586DE4AB1FBD4A741D36DE583E9+1CA25DA345520AA60634EC819E7EB493CDB128BBADEC3890F055455F060A1100+D5A41D7B180027E08AD6EE7E393DB9F83799544404FE397F557773BE6A130541+157C0EB37E036C94825B5090EF85F8B4E3DB72895D86687758C20EDEBD6D1079+196E9949DC6ED0113571C70B150B37E446E319EC54D44CC0CF6A14760953DF4A+D0E1F33A54D240E236AB63B35BA8E071D77776BE5B9312245F2C6E4FDB4312A0+0D9CF723E7D9A3D8546C4739C00C301A89ABA60A02757AB1A0AC40B24CE6CF12+5850485B11E16646D7150795EABAEB08364A53161111F46A7BC3423A0D3BEB69+BF15726C1F8363914945DEEB29CB8766328318AF3B344FD6D77BBB92BD7FD161+93356493D4D8252AD125708D47C124E44232FB2BF7DD75F87889496DCDB75D03+F58A57D4122CFC194B75A9E9C4789C9A33C0435FB4ADA16AD4A6191928D1663D+05FB8152C0AA176FBA4755205F8A66713404787070757D3721ED6E6D55A59DF0+C92BA8F05EC7BE05D0A2E66DE85E75373483EA3BBEE0F0DFC7E2FA5FBAFAB118+058D095AA71FDFC8AF37E5A98406B64E58BF476C6926725D7EF3C2346CE3F662+1E5A4A18D966479A37070859014719456EA2C7F23E68E1AB2F25ED3A0C00A18C+DD403506923BC983F89CCA125780DC76A411472E38173BC0DD4CDA7B43E13419+B5AB0B9A35E77C58BBA12AA4F5C7EBF8A29996B059E4FAE6809565570442AEE5+D56CBF4407E1CD9A4398B1F3ADFF023F64B230E3D29F526B62D964F5C8DF801F+E94295AD85BD9E1C18E6327977260A871E921C0745CA06A263E335E344686E7D+D6FE3ADB4EE0A7E462F3C00873C3E95D183CCEC71C0E5DC1D2FB310B28FC3611+67C23DE336C374F72368F4973052B48E39969305791C986E6EE35D0350571860+3A8ED849712CF21AEF444BA390644E8646CCA16559BA4642A5800827A0DDC453+7CA0818BC47DF6348A5209A2F0A10CA39840CE6346E89CA0E842BE8692DEF25C+4623A5A0E0B98708B9492E9F564324BB3872D6B953CA59E9F393C477E2AB85EC+C557D333E88C111CF995FB79D9432DC94C2BDB3BFEE13C0D7D1BB920DAFA6158+8548447AFC65CD5515D5021E0ED7D213B0C08C35BB424AA91885CA023D7AF767+B83E619B15DFEF5588D2F0564296E14B5A6ACE03751E1016105C51BE76EA5ADB+4167BAED2A8899031FD7BA05C410ADA25ADD94A787EED1A7AE133B0568B1DBA5+44B41BE013782CFCA3D81E8E8210DD506ADFCE7DC7E792EFEF438221164A7D1B+5E7089F476240C5F94988F081943F24DBF7CC3D1E58CB89E1C0C1624682CC3D8+C95815ECC9183A4B3E353C7F920B7E64086E01672DAA7C8A81319BAA03C1FBB7+8E5E84CC5BAE0E107754794C755B7AF00953504094E1A9DF357D51B578259613+8D26F0BA26AAC459BBEEB90BCC98B865EDD26AA4DF533D6624EDAC762C446B6F+CF9F86DD2D8989D4655775E662B93BF51805EE3CBA0AE2293D95F166E80973CC+82C53042D0249C598B0821E9E7F218BA6114EEC86C158F277934F2651490B723+7F0D0288560DA5BEBAFDDF243048E590871AD18B3B220EC56549004DF122AA03+BAAD6971D790BC644369FDBEE74A324083CFA9496C2A333774F06E35299242BC+F4B26578907CC5AD1893613F2B8622CFBB7B55810162EEBFAAEAB2A6D69CB72B+D7859C73843E665125FF450631F32E64F13A6207F368103C7A7318DBAF2560D0+F1CDD83C3E48CB30C62AF1E0896E1962C655D9ED98E1BB38477C1C60ECDB6B95+067D3A638AD43EE886338F7AD2D2A574CE6FD2E21F6FCB4220EFEC85ABF8272A+82081CE70E4390A74EC717F1DDD168F4A4A080A79EE2ECE0F98A96871DA4B52F+78441601AF47763C2219F5A167604C32F478D498835EF3A6167936994F7C7139+3019FF43C97E7978D3CDA641C1E391FEA572D308E759F28DDE2B40B5BC207A4B+C5EB6A93EEE26782016F8B6534420BE4D790A2E1A65B6CDBE9468152230384FD+14E9AE84418A44F94E6825DD7D77D0BB5486DE26A692B3DA96C81FA4440C5D44+8E7F3CAA9B8DF38F87E09C4D78841F629F78F4E7CC8580CC44E59E5D9AE8B2DE+C0682F793AE7AEC12A8AE688636197E8A08FEB70EFDB6203681A60223B9B0D39+2DA656E5E99B82130D4BE38D7AFE18568DD30B0CC3C73C1E2914ACE11A65334D+A9F18135E7B86157122CD221C33C62012FFB16D2D2F3473A53BE3E7B9FD4303F+66ADF0B07155C7B9B002EA68C6AC7247EB3CE7D2670A60138049DAA964F86A05+22983EDA7242E6BEEB90DF61C937399B2CE1061DF1E551CEED4A80D86C2D4649+C9FF9A1F93E96773CD392478D5B70D5336A03A274E0A6EF44BE8CB2274324142+706BC2E340DC944339D647961FD7BF29944503B4AFCDC69A706AA6B0F6AB2CB5+D220A96ACC1EE5E7826F6F75F044224E5260D581AE761AD0C752A06AA03FD935+FAD65C9EDD4E5505396E331D45DE88F0D1A4303D766ABE0702C17E2A7F53C0EA+96A4DEC5A6B6186F5DBAAB05DD78E38AFE630465BEF0EC66ABA9C1C9232214A9+795D105C33CF069F6BE20B179F4CC9F484AB63ED25C1212C457DF62CA0D56E20+608572216F2D4C09010B03A8AA6D287C8F514BEEDC1C912552CC2489858BF4D3+084882CE4F4B6FB9EE27C0168671E6DA154018ABEAD013C88E1D3EC918371251+63D95BA0FE20212C20AD3F4DB614EE36B488A3F55D94C1EDFCA8E68E54A1EED4+7DD168DCCF07C3DDB5E2B499DB5635C5C5056A7438120DB4839427D07F96AB8E+F842E285243E40259F6DF029E27779CCF3D3BD7206B2C341045A5A4AABACC2A5+91C6830FE05ACDCFDE99046F16F2AC183426ACA4A89FE5F09B7EB2F811BB5FB5+AF073BDA2886070B2327D582DCBA66B47E8948C3BE05E837BE4B81402A583403+74FF9E938F0E9DC3B1CB81B93DFD4070F9EBAED40BA570DE8F9A5C2C0A097311+22A6065139A6580E332473E9410D9F4C734794F79E41D0D437CEC7381919DF6F+A24B170E2BC97A6396A4E3AC3D844AD6E2B8FCE1C6AE97DFC5319F49130C3D6F+AF2541EB2384D5D4CCBEB976846EF8C2165DBF706112BDDDEC9A57D157F5996D+95229FD5C71B885D16B177BAB06B9DF5740A45C2A005778EE879193290419C0A+A4A339029E37E685B8A05B111DDF94AC19B1D85C8E6026E57E3D3B373C08557A+F96E6FE3916695ADFC1F0BF5D558565F42A71C61ACFEFC9026424397F0646642+7EDAA05794BCCD164A645860B57EAD53CB6899B18C6E9496EA4DAB0A0C272639+DEBC4FCBA94B3BF123F7771F602E7667C8F56E12429669F2219C7D8E294BE07B+71E88EA62F5616CAAB7C0198E6FF12A348E36B306FE2684A401399431B6A84CF+B46EE4BAA0F4099E65E9AF3B70274EDD6B6524F4FA38C23F9CD5273EEDC8C6C3+E7312B6E0497C05AD3F3C246638F01387CC11DBCBD287ACF54D8E24759F51415+35ED64132EF4158F54AB9F4D567482B3057880490F805822F71E7E2C52F7BC38+8B1F803AC3731064B90E5E97AA3351D17E73DC2FE526CD6C91158636E395867D+C1150FD3BD12493FFFB813AF0D08C8ED0B7418A2CF90BD5B783364358605D075+5DEA95A9299C0654EFB28E2FE8A41358A0DD124D0314A27558E42ED5F2D74BB7+056DE04D2CF13B9B804A3CBBA29BC155A3F18B8B48283194C33CE8291677E1EF+0721138F8E0409D49BB99F217607586D2DF00C29A25536E21924B4CF6702CF85+C02DFBFD2AA4DE3DBED1D2C02E21052A8D10F96629D0D18154923638FE0C48BD+E2DEAF11663E20717EA77A5453686AAA39D6FF7919AF09B1AD956FDBF734F49E+262F3076F62E77BD45122B55A5913902D9F91C4246FC235BA9C0FA4A96994291+830638949BED423387DA2D455A3C9122484EFF27F5367D1D3DD27D207D973815+965E1CFF36F43C653ED406F65348671D9FFAF55BA3FC266D438AF473181B7801+164EA3F04FEC870743195B3F467DE36B3719BAD9BF15A18637A314C887D46673+445BA3C212749B0A33136FEE9FE2C9A13D62E7ACC96378D257FBE0EB06AD4D4E+D41976AB92AC720DFD33B0677062C32E6F5C992A0324FD26E984B5341A58C190+D20EC3F1144697D514D9157340A6C9F82E62AD8CFDEE59F6FF86C6250CE33D6B+BB82DDB4F65BEFC6F6D0E4044F7BF307CC346E2FFD191846E3CA288C6F91CB71+5FDE855FEC5E38816CC635C470BF15263A10A409F0BC4877F7E6D4C223E3564E+E7BB5B320AAA5AAF4F32528F7413BFB97C70FF5E6843E1FE501472129BC9758D+7531BE576C75840CBC4CD3E6D9E5FF52559B68DE6E7827128BB2ED1BAD43F36E+A0CB68C1A147A7093EB02062AC5492DB7EEE08B1BDB187E15339A66269E459BC+67495937B4317AF66A498923322B087ECF47B601C26E253D223A784DB2D204FD+0668BD403A73723848018B7C86B627B9AE0BD9038F567CD5F670CAFC5C4D86FC+ECA211B713ACF8C1370191161CBB6C2592E8B9DBF3471133F2D9A60F15D72F9C+5E5539D59A6A7E124D9A38A6FF6EB7C71990716F88E1888295584F17D49144B2+B57252D7D87CFB7BE009E0E1AF68C57E2041CB837A1F9DA290FC07240D616876+CBA29ED23952F977F27ED97503F6C6CB48DA6611E0ED9D90FA865D099740C6CE+8A5DDBB1D6550B208321C365A5104F9ABD66A9238B8A2106AA74CAC58D1163F1+DC4A62013C0F6DD8A3E8E1A6CC6E553746D570A744863FD8EA705890890AC5BC+2F0A068C740572F045B32289A2AE66CC44A1C13FB8BBD4E1834995731D19B47E+7C2FE360AE79DACB95856B01EE39EB3C7C9EAEB3D47348C47D928BC883B8E760+6724D80DABC4D736411942BBA8CF08157F21D63C18924282193C5C8E44E09048+FDCB8DB2E01C8A496FEE2CFC19A3A0EACA508237C8BD988ED6D33D01EB548B14+61A546886AACDAFB7C8CA69056B1F428D72541D4BF394075A099D0F0A77E47E0+0966D567604541C541E4E4808926B83D1377E1D5BCA5FE77B3C3D97DACAAA44E+3700DB8BA281E89E8816E1FF70E1F5A0CFBC663418A0412AC727BC2904FCE79F+FD8D1408F445EBB1067F0B11CA1D6170B7ECF357ABD08BB2363D79B037894B71+5DA4AF061A521DB40ED485D5A6F0CFF121BEFD334ECA9E74831CDAF7179D286B+DDFBA1309E7DA379CBA3BC1DD0998307FD76B3F68219B573FD62BCBA2CA242A2+93FE91FECA7CB8DE154DE2A49936FDEEAE6EDD6011F883767E8A5D9EB3313FA6+C3C8628088A2E65748025263AD7A20ABEF3C117C24D5237DC3E1E373DCEAFAD5+0556DF4C03E8241FCE3F69F0D68B2F88FAE3C96F1C688D0CA5EE655DA6C45033+AAC476AE44A17B36C4726F393026FDE2D139207D1036C5815E9B768FFE8E4A98+E23034AE9AB9AFFBB767D94463AF96C6BAB4CC6C529022838A2F6BC5ED902109+4022BF7FC554C0F20339C61BF91501D999A43088597527E9E79542E93902D83B+5F919CCB169E0307D794A6465C7663439A1228731DED86B5E73579BA4833F159+2348BD84E5FD378D6238A8B78103D6EE131F8ED8819E41741E091466E1E252F9+DDEC9F4F835D479631179F6898E89C41F605C737FD5FE4D6CB1EB19B3F0DE339+2B6474548D00082FEF64BA0A5A7F9ABE6F88589A559CC962491B3EF731422AB6+56B97A0275E3FC035D2A3FAD585C2BA93612543F6EA7B8CBFC15CC9FF9FF224D+8B683DA33DB0357EB9A164256851D7C637B282BB4019570DDC5FA580B1EE3EF2+126C646B0F2043CD61D0246D5793735CA569AE474E30F6F864EB0EA04B7DC706+F93D01B7A1A17393BE507A9D9AC20284A79B08F2EA85E22397DBDE655E609D58+FFAF6380BA98852BBC21D7F6266CC583DEC62C54FA0BCE890AE7B95553EA2A77+654BA06B216FD54D44A00BE7C3A8E82532ABEC898960321F25C8B259B082B999+051008C40BA776353A43B8889D5CAE047E03659F5732D71F396786728E5D58D8+6BC6F1B20054EEA3BD546336CC0CC854CE7DBCFCCF79EA2C4E1D336E35B6CFB3+541DA167009777202DA699C38EF7A2000F57BC6E82E192BDFEF26C1395560632+DDA9723D04A3725B2B0B1FFD563F6AA81E57E5AAEFC7C96993603220CF4B5654+6352655DCA7E140CA50F019A330D7D01A82D500E65FAD5A4F7A2E4DBF885C598+76D63BD48463C9A428A4998D091423419097D5530D809E3F95E5BB4347CF6D8E+F1CE3618E4F353A3D6AE506320FAA1837F090A477CDA7E7994A78ADE881EF9D3+33AB5C9F65A5F5EFE072198093E92CCC167DB36DCA9DB7EAAAC62E0BAC8AA7E4+D1DD71F354617AA5A1F11B0C610AF41859C22354F1D32849F0C7E638C3CEAB7A+8F0BAB61B98FF82D23B2939A1D07FB36252043B7EF08E4AE412D67593DB556B4+E137A00462C4F3C464CFF8BC60AA47FAB3A0779E15A4059BF883AE53D6658332+77F41573398AA518271FEE6DA48EE6429459C98DE72E34423408A2781B9AB6C8+6F2F4AB6B783087DC4C19A1165803B7A7232FE78A7CB784DCE2CDE547CB1AE69+6848D92EB72B7C0BED1DBDE3951AED115AE9D4C67B6DD88E332EDA9A6551F6FE+87F5806F2EB3347132EBED527A68C354DB74415989B52F6928698B4079773952+F411E78FDD51C121ACD1DC63700DAD451DCD4F2C558DD3AE1344FA29896E8E95+078FB8A3729327139130D450431648C7C7ED64EE4FBD3F0463F10DBF44063104+51E6AAC55185D2EE812A8D3587E1D076F0F25433FD6205E89A7B698F02F533AB+D1F4993854F8BEF98B91182F4371E6D117D814F906F91B7C428052A29240F22C+9C7C4F0EB7BD63A37474F13586980A2CFEC274B69E1527C392E29DFEA3A7BC61+0E4D42B2202A43E2C3D9571DE26AF9E40F10CEB4BA69E1649581D810F7D79212+7F16D96D4630AA4C668CB362E181B4593E5CF1546572770BBA9BB91E54D16F6F+F052008545AB307F85332FB1344531B10D09383F4B4ED057A5DEADBE36384749+AE88C17668DA4A5DDFB0DACAE62458F37A1B7594EA888C7E9476F89C713B52B8+9D5128E29F551A6F98D2526F8174253C7339D29C69E94C72639F00084F40F647+A686AD62159827E2FCCD178A038908C9322235F9EC281473BDBBF473F9E33193+EEEFEB207CAA1C2C81ED289061A8F2189510C777C531F6D688267E22C74A460B+145FB0D81791EA7CB00BC669807151AEC668A9233B884DD9BFAD0E95A2A4DA72+7D1EB8F199C498C631AEDFFCFC206D94F2FF5DBA543EADE6E3F55CE3A5346D7E+E79743FE535F1DF40A576A55B7754AD26E2506A9B8EE7F6D0329F3B1AABB7C5D+E8BF2AEAA79E22D0CF25B4108DD452194440B893851A5294BDBE226494E8CF88+5C5080E0BE4FB5FACC26FDF486977994BDC068A68FCC9BFB2A8C16B0E85BF846+8C5CF91D3C59A1819C92F39CBA7A0DE3E5F6A2B4464F86A7F1369DF9FF86E9FA+CCC31ABD7A8415FB98821C3FD18B4BDF006477BF4ADD4FDBF46E8E7CCEAE7F1A+CAE08FD0CCCCAD257421655F1691B676C324175C74234505FC8BC7ACC3622791+B2A5237FF395085CBE6E87B35A6480984F7316DC8C4498CC46753019878BE8FC+32F390077D667F7D8B22E06CDB8B19BD8199514845612C32E6D51305BA5C6B97+AF413BD92341AAC4334CA3A0558C4DDD1BCF0BD215F7BC0B234C1C0F85E5D7E7+30BA73827C078E4C3B0931CDBEBB33CA647876B9F585FF9772D202FAC23D4A2C+1C34CE11FECC668117EE434B12EB4FE15248109FCC2DF46F924BA0A62B794871+E8677862F105004A030086704976EEED5DE75E28A3EF9AA468BDEAD629129D43+DC03ACC7F90894351355F21F9F3FA82BDDEBCF6AB9B3B8C241924F551691ADFC+C12110C3D8C95DEC5F66112198C0BECF71DA12CAD9327A1AFEB00DFD102E6668+3D3DEB196B86662000119DC1D91DC40503ABD46C9D9E17E8481459B67CD3F97C+E0B68CD85D1417A5F6FFE2E6796AD4AC1B2D8DAE167C9D85FF5BD97C692DBA77+95BB25C0D9A3A1B4E18E6A4FEFA9FF6059D1A66FC80BCC3606E4E307C3BEFDC2+31ACCE2156E7F97FEBA9A0FE0B57ED9DE7CCE7E47C1FB1CD7A4A50AEED28243F+FADB824CC7D9B8D0B5396B1C9CC41CBC5B5D6CABAE29F6663F75C6ED41EEB071+859C871744FCC713EA772D3A53962116AC5A8D45E3DCEF0A38F0289FAC1A9A67+CF64482AC5D7F484C236C2B35C05B2B5EE5D90781E082D9BB7478149290A9463+FE4421D1A27AE6D769150A8E52432861338A6597D4573E698722B0FD4C6DA3EB+5753B328B85D2574FB1707EEFABDAB9DDBCD2CE40AD3E11738AE072ED29C4BD2+03A93DC816E638DC643B189FB921308C36828F4DA218A44610DB0F1AA38D944A+7C0CAF0B084663C88FDEA21758E4DF17F21BBB86B0F2864179BCE92604BCA0F1+F01C901C6CC72C1376978BF197C2F46EC9EAF960BA243F5901FDC563711BE7B6+1BA3FB5205B45714A1D25E4F4B480407CD190A781E7F437AE367ECBC7A06581E+7CCB38BA40FA803FDB93292D72BE0C5B2EE94521BBE8167DBDCA4D7602EF5AC0+FCFFF88F2241A024D2FC22C070FEB4A7F688812C42AB546ADC53655FE526FA70+F2DC9FF2B5389267490CBC17138A415A242F6BC70AE8ED30167F23D9362A0077+EE971EAE142D5A901D6D88F5748A6C4C0237C7A9BBAA7EF85F266AE0E7114566+0AC03CA5D37378479FFEA64BF0BC4A285BAE1106FFC9060BD55A33D32F8F7753+CAE83583173F840C664047094A2617641CF51EE2FDE030960B76674FEA179D7A+FBFC1AD05F45B1F1537D03C092350F18DBAF8F879B14D631D9AD2C0389811F82+534007D04D1BE1EBA565051DB9ADCB302AE71984077CD824A080F9E5E6713894+8BF646EB25D58163FAB25787B839FF251B10AFD992A4FC194C6E2CD320B9CDD9+182A00255E82F97D960D2DE4400BC090263A1A7A8C87D019202D97D619593D88+9D365CBD99033E2CE0AB35432239DA430BABC60F72CE2CB73537E0A2979D8AB6+DDB0B5797767296CC9F7D769C5F35F747D825E2F0AE4A91F42C5CFCD3AFF04D8+0DDFD55F62A4BDC19F9ABB25AF357F46A1B8B2790F513BF074A399641818BEAC+3CE49DFAE59E95CC45AB6E7CAFAD1F0350A1DA238FC7D8E9001866BAFCB3FFD9+6A110DC592C98A528C16BAE52DBD2887E6424A8A4F0A6D272A5BD2114E162A97+82E03332EEBCEFDD8C15E7A9C82FFD083A8314137FC361D6404FF2B21604342C+BDACD8FE70D53320CEF2C1CF7E7DFA568F2F79999D0D5FB2D15035EC319E53FC+E93DA0496163C9B17486A9961F97E0256CA34DF8BC0FDD1FC67049959C7F37AF+15E4429815ECFE52F40658AA95CB2DD74EA24F6C4A0BB7706654B1AF10DBCDD9+8192D497DEB913C845B0E88982DBE5DA03CA64B94ECB734EC2BF3F2215E69762+D5E67BB9358B9E38174923A00EFB2E182AB24D6F82CEC2DC6525041E8A06A404+3E1360F2520A70D630BD12FBD8C209F795DD3CD508B40569A073B6FD95ABD4AC+B923AA73AB40888C41D3A66082AA0B8292F4A3710AE3040ACB6FA0B092C2C51A+4A2B29E80C9738BA68198A9C47F7AED6A7BD2C308EDE99017592BB3987B1980A+713DDF7CC230710082BC50AD75CB747561627E5758F4E4713F6F8C46D258E05B+1D471EC5D5F4E3180579F01D2966B29990E26F579C31A5E410CCD46328940AF1+9EF6C932B0587BBF43B28ECE555E2AD6A09EBE6F02996E17A2B30FACCC6A2693+C5AA6C91709C2B92403107A6BF1BB017D26DA09E3F235DEEAE543725586D3B21+0E0DE31CD39A91CBB4F3B154139E5178D08D6EF6B16EE1A70E8D61805AC7DAA4+40731DDC852F6ACC03EA349D0CDCFA1039F16462691894C5144BA9C0ACD37425+BC4E259014097A4C7A73B54655E584DFB541ACA8231A43D0837677047ECE96EB+36F6CA7971A9EE9BDAD7E8A01C574E33038D7DAB9D58DA8C0A389A09E7F6EBE5+E3B852EEF1D1B23EC7B6F9F7535963784BBD419F7CCC24271BACAD133387B328+A2ADDC148861A8D5795C090E5854C25F0E99AEF98CDEDCE25E699BAFA69CD035+B7477AE50A6D721431AA4F84BF6D5A65A2020C35E0922A3C733FB9D4C1F37ABB+29FE2926F9AADFC5B7FC05396525CB7286FFD3161FE292699A4AEBD9DA2F552B+BBAAA837F1A15F0F88AAE5373FA137AAB03E84804A817A5D9D8090753C729378+748CE7ACAA098B1C37A70AA2A4CF0A4AE58065E2DD317B35B34E104CFDA7B16B+F2C51B0AFFD62A9D87CE783A2C60476BF684DA08946AFBC057B70E8550838C58+23E5B5AD9EEF3BEBBCFDA001F9AABE132499A6EAD87F561647531B1929071915+ED14F7EA98263C13E3A606C913AD9CF287CA3D1018F92B5B58864B922BA99545+EE77A0F421E23AF0A55ABC57F9E4EEAB0658B0E3C8DF05721A3DA996A694E497+5C06FEA9540F76429B06E3E4B866A18837C40D2D6DF544C410375DD164A13300+3F79DBC1989AA79C4A05845DF58B6C8C30D9A29D33ADC256CA733313AD782378+A73B509A079F2FF1C3615FACBF4B947B3868F0A46A9D8F032CDF09525AF9A175+7D71BFE693CC99A281E6A445C7A21E60A08FF250DA0F59319C1D9D2C359925D2+9524102E3E761BB319C988A997E8A4B929D370396B887773129D6585C8D6D32E+7D1C5B8CA3158CD7561799729A0B915E3583191CFBA04EE5252454BE565A8EBB+C458+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000+cleartomark+{restore}if+%%EndFont +TeXDict begin 40258431 52099146 1000 600 600 (doc.dvi)+@start /Fa 131[35 2[35 35 35 35 35 35 35 35 1[35 35 35+35 35 35 1[35 35 35 35 35 35 35 35 35 3[35 35 35 2[35+35 2[35 35 35 1[35 1[35 1[35 2[35 1[35 35 35 35 35 35+35 6[35 1[35 2[35 2[35 35 35 35 35 35 35 35 35 35 35+35 1[35 2[35 34[{}60 66.4176 /CMTT8 rf /Fb 134[37 1[51+37 39 27 28 28 1[39 35 39 59 20 2[20 39 35 22 31 39 31+39 35 12[51 11[53 13[20 58[{}24 66.4176 /CMR8 rf /Fc+205[30 30 49[{}2 49.8132 /CMR6 rf /Fd 205[33 33 49[{}2+58.1154 /CMR7 rf /Fe 139[32 1[42 2[49 54 78 25 2[30 2[33+44 1[44 1[49 84[56 12[{}12 83.022 /CMBXTI10 rf /Ff 242[83+13[{}1 83.022 /CMSY10 rf /Fg 133[42 50 50 69 50 53 37+38 39 1[53 48 53 80 27 2[27 53 48 29 44 53 42 53 46 7[72+72 99 1[73 66 53 72 1[65 1[75 91 57 2[36 75 75 60 63+73 69 68 72 19[32 1[74 30[53 12[{}46 83.022 /CMBX10 rf+/Fh 134[59 59 1[59 62 44 44 46 1[62 56 62 93 31 2[31+1[56 34 51 62 1[62 54 13[62 3[84 88 7[70 74 2[80 12[56+56 56 56 56 2[31 2[87 43[{}32 99.6264 /CMBX12 rf /Fi+139[28 34 35 1[42 2[68 21 2[25 1[38 1[38 42 2[42 97[{}11+83.022 /CMTI10 rf /Fj 130[44 44 44 44 44 44 44 44 44+44 44 44 44 44 44 44 44 44 44 1[44 44 44 44 44 44 44+44 44 1[44 1[44 44 44 2[44 44 2[44 44 44 1[44 1[44 44+44 3[44 44 44 44 1[44 44 44 1[44 1[44 1[44 44 4[44 2[44+44 44 44 44 44 1[44 44 44 44 44 2[44 44 44 34[{}67 83.022+/CMTT10 rf /Fk 136[97 1[75 52 53 3[67 2[37 2[37 3[61+75 1[75 25[105 21[67 67 49[{}13 119.552 /CMBX12 rf /Fl+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 6[51 62 62 85 62 1[60+46 61 65 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 42 23 28 23 2[32 32+23 4[42 21[46 12[{}71 83.022 /CMR10 rf /Fm 136[51 1[51+51 1[51 2[51 51 51 51 51 1[51 51 51 51 51 51 51 51 51+32[51 17[51 51 51 44[{}22 99.6264 /CMTT12 rf /Fn 152[50+50 88[100 13[{}3 99.6264 /CMSY10 rf /Fo 128[49 5[51 2[51+54 38 38 38 2[49 54 81 27 51 1[27 54 49 1[43 54 43 54+49 9[100 1[73 70 54 2[66 76 1[89 3[35 2[64 66 1[70 8[27+49 1[49 49 1[49 49 49 49 49 2[33 27 44[{}42 99.6264 /CMR12+rf /Fp 131[132 4[96 1[73 51 52 51 1[73 66 73 111 36 2[36+1[66 40 1[73 58 73 66 14[98 12[90 101 2[99 14[66 50[{}23+143.462 /CMR17 rf end+%%EndProlog+%%BeginSetup+%%Feature: *Resolution 600dpi+TeXDict begin+%%BeginPaperSize: Letter+/setpagedevice where+{ pop << /PageSize [612 792] >> setpagedevice }+{ /letter where { pop letter } if }+ifelse+%%EndPaperSize+ end+%%EndSetup+%%Page: 1 1+TeXDict begin 1 0 bop 762 872 a Fp(Ebnf2ps)43 b(|)g(Automatic)g+(Railroad)f(Diagram)1704 1054 y(Dra)l(wing)1246 1295+y Fo(P)m(eter)34 b(Thiemann,)g(Mic)m(hael)g(W)-8 b(alter)884+1411 y(Wilhelm-Sc)m(hic)m(k)j(ard-Institut,)36 b(Univ)m(ersit\177)-49+b(at)34 b(T)s(\177)-51 b(ubingen)1405 1528 y(Sand)33+b(13,)f(72076)f(T)s(\177)-51 b(ubingen)592 1644 y(E-mail:)44+b Fn(f)p Fm(thiemann,walterm)p Fn(g)p Fm(@informati)q(k.un)q(i-tu)q+(ebin)q(gen)q(.de)1338 1757 y Fo(c)1310 1760 y Fn(\015)o+Fo(1996-2014,)31 b(P)m(eter)i(Thiemann)1083 1993 y(Main)m(tained)h+(since)g(2014)d(b)m(y)j(F)-8 b(ranklin)33 b(Chen)1204+2109 y Fm(franklinchen@franklinchen.c)q(om)1607 2304+y Fo(Octob)s(er)f(3,)h(2014)639 2611 y Fl(Ebnf2ps)h(w)n(as)f(written)h+(to)g(\014ll)h(an)f(urgen)n(t)f(need)h(of)g(the)h(author:)49+b(to)34 b(pro)r(duce)f(lots)515 2711 y(of)e(syn)n(tax)f(diagrams)g+(\(railroad)f(diagrams\))h(from)h(a)f(grammar)g(in)h(EBNF)g(notation)g+(in)515 2811 y(short)k(time.)65 b(Ov)n(er)35 b(the)h(time)h(the)g+(program)e(has)h(acquired)f(a)h(couple)g(of)h(features)f(in)515+2910 y(order)30 b(to)h(ful\014ll)i(a)e(v)-5 b(ariet)n(y)31+b(of)g(requiremen)n(ts.)48 b(The)32 b(curren)n(t)e(v)n(ersion)g(pro)r+(duces)h(highly)515 3010 y(readable)20 b(railroad)g(diagrams)g(from)h+(grammars)f(in)i(v)-5 b(arious)20 b(formats:)33 b(Y)-7+b(acc,)23 b(Happ)n(y)e(and)515 3109 y(EBNF.)515 3209+y(The)26 b(program)e(ma)n(y)i(b)r(e)g(freely)g(used)g(and)g+(distributed,)h(y)n(ou)f(are)f(ho)n(w)n(ev)n(er)f(required)h(not)515+3309 y(to)19 b(remo)n(v)n(e)g(the)h(cop)n(yrigh)n(t)e(notices)h(from)h+(the)g(source)f(\014les.)34 b(Please)19 b(send)g(an)n(y)g(commen)n(ts,)+515 3408 y(bugs,)27 b(etc.)h(to)f(the)h(author\(s\).)515+3683 y Fk(1)134 b(Ho)l(w)46 b(to)g(build)e(it)515 3865+y Fl(Ebnf2ps)34 b(w)n(as)g(written)h(in)g(Hask)n(ell,)g(a)f+(non{strict,)i(purely)e(functional)h(programming)515+3964 y(language.)639 4064 y(Older)h(distributions)g(of)h(this)g(soft)n+(w)n(are)e(supp)r(orted)h(m)n(ultiple)h(Hask)n(ell)f(compilers,)515+4164 y(but)24 b(for)f(main)n(tenance,)g(Ebnf2ps)g(is)h(no)n(w)f(geared)+f(to)n(w)n(ard)f(building)j(and)f(installing)h(with)515+4263 y(GHC.)515 4538 y Fk(2)134 b(Ho)l(w)46 b(to)g(use)e(it)616+4720 y Fl(1.)d(Find)31 b(out)g(where)f(y)n(our)f(T)1554+4737 y(E)1601 4720 y(X)h(installation)g(stores)g Fj(.afm)p+Fl(-\014les)e(\(Adob)r(e)j(fon)n(t)g(met-)722 4819 y(ric)h(\014les\).)+50 b(Then)32 b(set)g(the)h(en)n(vironmen)n(t)e(v)-5 b(ariable)31+b Fj(AFMPATH)e Fl(when)j(running)g(the)722 4919 y(program.)39+b(The)29 b Fj(.afm)p Fl(-\014les)e(are)h(absolutely)g(necessary)-7+b(.)39 b(If)30 b(y)n(ou)e(don't)h(\014nd)h(them)1926+5255 y(1)p eop end+%%Page: 2 2+TeXDict begin 2 1 bop 722 523 a Fl(complain)23 b(to)h(y)n(our)e(system)+h(administrator)f(or)h(get)g(them)h(y)n(ourself.)34 b(One)23+b(p)r(ossible)722 623 y(source)17 b(is)i Fj(https://github.)o(com)o(/w)+o(eis)o(s/)o(ori)o(gi)o(na)o(l-b)o(sd)o(/tr)o(ee)o(/m)o(ast)o(er)o(/lo)+o(ca)o(l/t)o(ra)o(ns)o(cri)o(pt)o(/li)o(b)p Fl(.)616+787 y(2.)41 b(Set)24 b(the)g(en)n(vironmen)n(t)e(v)-5+b(ariable)22 b Fj(RGBPATH)e Fl(to)k(con)n(tain)e(the)i(directory)e+(where)g(y)n(our)722 886 y(X)34 b(installation)e(stores)f(its)j(color)d+(data)h(base)h(\(usually)g Fj(/usr/lib/X11)p Fl(\).)49+b(There)722 986 y(are)33 b(fallbac)n(k)h(color)f(de\014nitions)h(for)g+(the)g(8)g Fi(digital)45 b Fl(colors)32 b(\(blac)n(k,)j(white,)i(blue,)+722 1086 y(green,)k(cy)n(an,)g(red,)g(magen)n(ta,)f(y)n(ello)n(w\),)h+(so)d(nothing)g(needs)h(b)r(e)g(done)g(if)g(that's)722+1185 y(enough)27 b(for)g(y)n(ou.)722 1317 y(Note:)36+b(for)24 b(Mac)g(OS)g(X,)h(the)g(default)g Fj(/opt/X11/share/X)o(11)18+b Fl(has)24 b(b)r(een)h(pro)n(vided)722 1417 y(and)38+b(will)g(w)n(ork)f(automatically)-7 b(,)39 b(if)g(y)n(ou)e(ha)n(v)n(e)g+(installed)g(X)i(using)e(X)n(Quartz)g(at)722 1516 y Fj+(http://xquartz.ma)o(co)o(sfo)o(rg)o(e.o)o(rg)o(/)p Fl(.)639+1694 y(The)28 b(syn)n(tax)f(is)515 1856 y Fj(Ebnf2ps)40+b([options])g(Grammarfile)f(Nonterminal)g(...)k([--)f(Nonterminal)d+(...])515 2018 y Fl(where)18 b(the)g Fj(options)e Fl(are)h(describ)r+(ed)h(in)h(Sec.)f(2.1,)i(the)f(syn)n(tax)e(of)h(the)h(input)g(\014le)g+Fj(Grammarfile)515 2118 y Fl(in)34 b(Sec.)f(2.2,)h(and)g+Fj(Nonterminal)29 b Fl(describ)r(es)k(the)g(non)n(terminals,)h(for)f+(whic)n(h)h(diagrams)515 2218 y(are)h(to)i(b)r(e)g(generated,)g(as)f+(regular)f(expressions)g(\(see)h(Sec.)h(2.3\).)63 b(The)36+b(non)n(terminals)515 2317 y(after)d(the)i(sym)n(b)r(ol)e+Fj(--)g Fl(are)g(used)h(only)f(with)i(the)f(option)f+Fj(+unfold)e Fl(\(see)j(Sec.)g(2.1)f(and)515 2417 y(2.4\).)515+2648 y Fh(2.1)112 b(Options)515 2802 y Fl(The)33 b(follo)n(wing)f(list)+h(sho)n(ws)f(all)h Fg(options)f Fl(with)h(their)g Fi(p)l(ar)l(ameters)+41 b Fl(and)32 b(their)h(\(default)515 2901 y(v)-5 b(alues\).)36+b(All)27 b(distances)f(and)g(sizes)g(measured)f(in)i(1/100)d(p)r(oin)n+(t)j(\(1)f(p)r(oin)n(t)g(is)h(ab)r(out)f(1/72)515 3001+y(inc)n(h\).)36 b(Changes)23 b(with)h(resp)r(ect)g(to)f(the)i(last)e(v)+n(ersion)g(of)h(Ebnf2ps:)34 b(some)2886 2998 y(n)2868+3001 y Ff(\015)p Fl(ew)24 b(features,)515 3101 y(extension)j(of)g+(grammar)f(transformations)g(and)h(bug)h(\014xes.)515+3278 y Fg(-titleF)-8 b(on)m(t)31 b Fe(font)50 b Fl(\(Times-Roman\))38+b(P)n(ostScript)f(fon)n(t)i(used)f(for)g(titles)h(of)g(diagrams,)747+3378 y(an)n(y)21 b(fon)n(t)g(go)r(es)f(here)g(that)i(y)n(our)e(prin)n+(ter)g(kno)n(ws)g(and)h(for)f(whic)n(h)h(y)n(ou)g(ha)n(v)n(e)f(fetc)n+(hed)747 3478 y(the)28 b(AFM)g(\014les.)37 b(Figure)27+b(1)g(sho)n(ws)g(a)g(sample)g(list)h(of)g(fon)n(t)f(names.)2934+3475 y(n)2916 3478 y Ff(\015)515 3605 y Fg(-titleScale)k+Fe(int)49 b Fl(\(10\))27 b(P)n(oin)n(tsize)f(of)i(t)n(yp)r(eface)f(for)+g(titles)h(of)g(diagrams.)2875 3602 y(n)2859 3605 y Ff(\015)515+3732 y Fg(-titleColor)i Fe(c)-5 b(olor)50 b Fl(\(blac)n(k\))28+b(Color)e(of)h(t)n(yp)r(eface)h(for)f(titles)h(of)f(diagrams.)3000+3729 y(n)2982 3732 y Ff(\015)515 3860 y Fg(-n)m(tF)-8+b(on)m(t)32 b Fe(font)50 b Fl(\(Times-Roman\))27 b(P)n(ostScript)g(fon)+n(t)g(used)h(for)f(non)n(terminals.)515 3987 y Fg(-n)m(tScale)32+b Fe(int)49 b Fl(\(10\))27 b(P)n(oin)n(tsize)f(of)i(t)n(yp)r(eface)f+(for)h(non)n(terminals.)515 4115 y Fg(-n)m(tColor)j Fe(c)-5+b(olor)51 b Fl(\(blac)n(k\))27 b(Color)f(of)i(t)n(yp)r(eface)f(for)g+(non)n(terminals.)515 4242 y Fg(-n)m(tBg)32 b Fe(c)-5+b(olor)50 b Fl(\(white\))29 b(Bac)n(kground)c(color)h(of)i(t)n(yp)r+(eface)f(for)g(non)n(terminals.)3050 4239 y(n)3032 4242+y Ff(\015)515 4369 y Fg(-n)m(tBo)m(xColor)32 b Fe(c)-5+b(olor)50 b Fl(\(blac)n(k\))23 b(Color)f(used)h(for)f(outlines)h(of)g+(b)r(o)n(xes)f(\(non)n(terminals\).)3314 4366 y(n)3296+4369 y Ff(\015)515 4497 y Fg(-tF)-8 b(on)m(t)32 b Fe(font)50+b Fl(\(Times-Roman\))27 b(P)n(ostScript)f(fon)n(t)i(used)f(for)h+(terminal)f(strings.)515 4624 y Fg(-tScale)32 b Fe(int)49+b Fl(\(10\))27 b(P)n(oin)n(tsize)f(of)i(t)n(yp)r(eface)f(for)g+(terminals.)515 4751 y Fg(-tColor)k Fe(c)-5 b(olor)50+b Fl(\(blac)n(k\))28 b(Color)e(of)h(t)n(yp)r(eface)h(for)f(terminals.)+515 4879 y Fg(-tBg)k Fe(c)-5 b(olor)51 b Fl(\(white\))28+b(Bac)n(kground)e(color)g(of)h(t)n(yp)r(eface)h(for)f(terminals.)2868+4876 y(n)2850 4879 y Ff(\015)515 5006 y Fg(-tBo)m(xColor)k+Fe(c)-5 b(olor)51 b Fl(\(blac)n(k\))27 b(Color)f(used)i(for)f(outlines)+g(of)h(b)r(o)n(xes)f(\(terminals\).)3164 5003 y(n)3146+5006 y Ff(\015)1926 5255 y Fl(2)p eop end+%%Page: 3 3+TeXDict begin 3 2 bop 515 523 a Fg(-b)s(orderDistX)31+b Fe(int)49 b Fl(\(500\))27 b(Horizon)n(tal)f(distance)h(of)h(ob)5+b(jects)27 b(from)g(their)h(con)n(tainer.)515 650 y Fg(-b)s(orderDistY)+j Fe(int)49 b Fl(\(500\))27 b(V)-7 b(ertical)27 b(distance)g(of)h(ob)5+b(jects)27 b(from)g(their)h(con)n(tainer.)515 778 y Fg(-lineWidth)i+Fe(int)49 b Fl(\(30\))27 b(Width)h(of)g(lines)g(used)f(for)g+(connecting)g(lines.)515 905 y Fg(-fatLineWidth)k Fe(int)49+b Fl(\(100\))27 b(Width)i(of)e(lines)h(used)f(for)g(dra)n(wing)g(b)r(o)+n(xes.)515 1032 y Fg(-lineColor)i Fe(c)-5 b(olor)51 b+Fl(\(blac)n(k\))27 b(Color)g(used)g(for)g(connecting)g(lines.)515+1160 y Fg(-arro)m(wSize)32 b Fe(int)49 b Fl(\(200\))27+b(Size)h(of)f(\(in)n(visible\))h(b)r(o)n(x)f(con)n(taining)g(an)g(arro)+n(w.)515 1287 y Fg(-rgbFileName)j Fe(\014lename)49 b+Fl(\(rgb.txt\))28 b(File)g(name)f(for)g(color)f(de\014nitions.)515+1414 y Fg(-happ)m(y)42 b Fl(Accept)27 b(happ)n(y)f(format)f(input)i+(\014les.)37 b(Happ)n(y)-7 b(,)26 b(written)g(b)n(y)g(Andy)h(Gill)f+(and)g(Si-)747 1514 y(mon)e(Marlo)n(w,)g(is)g(a)f(parser)g(generator)f+(system)i(\(LALR\(1\)\))h(for)f(Hask)n(ell,)g(similar)747+1614 y(to)k(the)g(to)r(ol)f(y)n(acc)f(for)i(C)1532 1584+y Fd(1)1569 1614 y Fl(.)515 1741 y Fg(-y)m(acc)43 b Fl(Accept)28+b(y)n(acc/bison)e(format)h(input)h(\014les.)2133 1738+y(n)2115 1741 y Ff(\015)515 1868 y Fg(+ps)67 b Fl(Pro)r(duce)27+b(encapsulated)g(P)n(ostScript)f(output)i(\(default\).)515+1996 y Fg(+\014g)57 b Fl(Pro)r(duce)27 b(\014g)g(output)h(\(F)n(ORMA)-7+b(T)28 b(3.1\).)515 2123 y Fg(+ebnf)42 b Fl(Pro)r(duce)31+b(grammar)f(in)i(EBNF)g(notation)g(\(\014le)g(extension)g(".BNF"\))g+(for)f(y)n(acc)747 2223 y(or)c(happ)n(y)g(input)h(format)f(\014les.)+1770 2220 y(n)1751 2223 y Ff(\015)515 2350 y Fg(+simplify)40+b Fl(Simplify)28 b(pro)r(ductions)f(\(exp)r(erimen)n(tal,)h(default:)37+b(don't\).)515 2477 y Fg(+unfold)k Fl(Replace)30 b(non)n(terminals)f+(in)i(pro)r(ductions)f(\(exp)r(erimen)n(tal,)h(default:)43+b(don't\).)747 2577 y(See)28 b(Sec.)f(2.4.)1213 2574+y(n)1195 2577 y Ff(\015)515 2704 y Fg(-v)m(erb)s(ose)41+b Fl(Prin)n(ts)26 b(some)h(progress)f(messages.)515 2832+y Fg(-help)40 b Fl(Prin)n(ts)35 b(a)g(brief)h(description)f(of)h(the)g+(command)f(line,)j(the)e(options)f(with)h(their)747 2931+y(defaults,)28 b(and)f(the)h(en)n(vironmen)n(t)f(v)-5+b(ariables.)515 3241 y Fh(2.2)112 b(Syn)m(tax)38 b(of)g(EBNF)f(Files)+515 3394 y Fl(The)28 b(follo)n(wing)g(grammar)f(and)h(diagrams)f+(describ)r(e)i(the)g(standard)f(input)h(format)f(\(e.g.)515+3493 y(without)23 b Fg(-y)m(acc)h Fl(or)e Fg(-happ)m(y)q+Fl(\))j(as)c(w)n(ell)i(as)f(the)h(output)g(format)f(with)h(the)g+Fg(+ebnf)32 b Fl(option.)515 3671 y Fj(File)521 b(=)43+b({Production};)515 3771 y(Production)257 b(=)43 b(Nonterminal)c([)k+(String)f(])h("=")f(Term)g(";")g(;)515 3870 y(Term)521+b(=)43 b(Factor)e(/)j("|")e(;)392 b(#)43 b(alternative)515+3970 y(Factor)433 b(=)43 b(ExtAtom)e(+)i(;)523 b(#)43+b(sequence)515 4069 y(ExtAtom)389 b(=)43 b(Atom)1212+4169 y(|)g(Atom)f("/")h(Atom)434 b(#)43 b(repetition)c(through)i(Atom)+1212 4269 y(|)i(Atom)f("+";)609 b(#)43 b(at)g(least)e(one)i(repetition)+515 4368 y(Atom)521 b(=)43 b(Nonterminal)1212 4468 y(|)g(String)739+b(#)43 b(terminal)d(string)1212 4568 y(|)j("\(")g(Term)f("\)")1212+4667 y(|)h("[")g(Term)f("]")478 b(#)43 b(an)g(optional)d(Term)1212+4767 y(|)j("{")g(Term)f("}")478 b(#)43 b(zero)f(or)h(more)f+(repetitions)1212 4866 y(;)p 515 4929 1146 4 v 607 4983+a Fc(1)642 5006 y Fb(The)24 b(program)f(Happ)n(y)i(is)e(a)n(v)l+(ailable)h(from)e Fa(https://github.com/sim)q(onma)q(r/h)q(appy)1926+5255 y Fl(3)p eop end+%%Page: 4 4+TeXDict begin 4 3 bop 768 955 2358 4 v 766 1055 4 100+v 818 1025 a Fl(A)n(Garamond-Bold)p 2005 1055 V 595 w(A)n+(Garamond-BoldItalic)p 3124 1055 V 766 1154 V 818 1125+a(A)n(Garamond-Italic)p 2005 1154 V 578 w(A)n(Garamond-Regular)p+3124 1154 V 766 1254 V 818 1224 a(A)n(Garamond-Semib)r(old)p+2005 1254 V 431 w(A)n(Garamond-Semib)r(oldItalic)p 3124+1254 V 766 1354 V 818 1324 a(A)n(GaramondAlt-Italic)p+2005 1354 V 461 w(A)n(GaramondAlt-Regular)p 3124 1354+V 766 1453 V 818 1423 a(A)n(GaramondExp-Bold)p 2005 1453+V 448 w(A)n(GaramondExp-BoldItalic)p 3124 1453 V 766+1553 V 818 1523 a(A)n(GaramondExp-Italic)p 2005 1553+V 431 w(A)n(GaramondExp-Semib)r(old)p 3124 1553 V 766+1653 V 818 1623 a(A)n(GaramondExp-Semib)r(oldItalic)p+2005 1653 V 97 w(Av)-5 b(an)n(tGarde-Bo)r(ok)p 3124 1653+V 766 1752 V 818 1722 a(Av)g(an)n(tGarde-Bo)r(okOblique)p+2005 1752 V 295 w(Av)g(an)n(tGarde-Demi)p 3124 1752 V+766 1852 V 818 1822 a(Av)g(an)n(tGarde-DemiOblique)p+2005 1852 V 292 w(Bo)r(okman-Demi)p 3124 1852 V 766 1951+V 818 1922 a(Bo)r(okman-DemiItalic)p 2005 1951 V 485+w(Bo)r(okman-Ligh)n(t)p 3124 1951 V 766 2051 V 818 2021+a(Bo)r(okman-Ligh)n(tItalic)p 2005 2051 V 484 w(Courier-Bold)p+3124 2051 V 766 2151 V 818 2121 a(Courier-BoldOblique)p+2005 2151 V 482 w(Courier-Oblique)p 3124 2151 V 766 2250+V 818 2220 a(Courier)p 2005 2250 V 964 w(Helv)n(etica-Bold)p+3124 2250 V 766 2350 V 818 2320 a(Helv)n(etica-BoldOblique)p+2005 2350 V 421 w(Helv)n(etica-Narro)n(w-Bold)p 3124+2350 V 766 2450 V 818 2420 a(Helv)n(etica-Narro)n(w-BoldOblique)p+2005 2450 V 123 w(Helv)n(etica-Narro)n(w-Oblique)p 3124+2450 V 766 2549 V 818 2519 a(Helv)n(etica-Narro)n(w)p+2005 2549 V 605 w(Helv)n(etica-Oblique)p 3124 2549 V+766 2649 V 818 2619 a(Helv)n(etica)p 2005 2649 V 903+w(NewCen)n(turySc)n(hlbk-Bold)p 3124 2649 V 766 2748+V 818 2719 a(NewCen)n(turySc)n(hlbk-BoldItalic)p 2005+2748 V 158 w(NewCen)n(turySc)n(hlbk-Italic)p 3124 2748+V 766 2848 V 818 2818 a(NewCen)n(turySc)n(hlbk-Roman)p+2005 2848 V 255 w(Optima-Bold)p 3124 2848 V 766 2948+V 818 2918 a(Optima)p 2005 2948 V 961 w(P)n(alatino-Bold)p+3124 2948 V 766 3047 V 818 3017 a(P)n(alatino-BoldItalic)p+2005 3047 V 548 w(P)n(alatino-Italic)p 3124 3047 V 766+3147 V 818 3117 a(P)n(alatino-Oblique)p 2005 3147 V 621+w(P)n(alatino-Roman)p 3124 3147 V 766 3247 V 818 3217+a(StoneInformal-Bold)p 2005 3247 V 527 w(StoneInformal-BoldItalic)p+3124 3247 V 766 3346 V 818 3316 a(StoneInformal-Italic)p+2005 3346 V 510 w(StoneInformal-Semib)r(old)p 3124 3346+V 766 3446 V 818 3416 a(StoneInformal-Semib)r(oldItalic)p+2005 3446 V 176 w(StoneInformal)p 3124 3446 V 766 3546+V 818 3516 a(StoneSans)p 2005 3546 V 868 w(StoneSerif-Bold)p+3124 3546 V 766 3645 V 818 3615 a(StoneSerif-BoldItalic)p+2005 3645 V 486 w(StoneSerif-Italic)p 3124 3645 V 766+3745 V 818 3715 a(StoneSerif-Semib)r(old)p 2005 3745+V 509 w(StoneSerif-Semib)r(oldItalic)p 3124 3745 V 766+3844 V 818 3814 a(StoneSerif)p 2005 3844 V 871 w(Sym)n(b)r(ol)p+3124 3844 V 766 3944 V 818 3914 a(Times-Bold)p 2005 3944+V 818 w(Times-BoldItalic)p 3124 3944 V 766 4044 V 818+4014 a(Times-Italic)p 2005 4044 V 801 w(Times-Oblique)p+3124 4044 V 766 4143 V 818 4113 a(Times-Roman)p 2005+4143 V 728 w(ZapfChancery-MediumItalic)p 3124 4143 V+766 4243 V 818 4213 a(ZapfDingbats)p 2005 4243 V 3124+4243 V 768 4246 2358 4 v 1305 4478 a(Figure)27 b(1:)36+b(Sample)28 b(list)f(of)h(fon)n(t)g(names)1926 5255 y(4)p+eop end+%%Page: 5 5+TeXDict begin 5 4 bop 515 523 a Fj(String)433 b(=)43+b("\\"")f({)h(Character)d(})j("\\"")f(;)515 623 y(Nonterminal)213+b(=)43 b(letter)e({)j(letter)d(|)i(digit)e(|)j("_")e(|)h(".")f(})i(;)+515 722 y(Character)301 b(=)43 b(character)1212 822 y(|)g(["\\\\"])e+(anycharacter)e(;)639 1005 y Fl(Or)27 b(in)h(terms)f(of)h(diagrams)e+(\(what)h(w)n(ould)h(y)n(ou)e(exp)r(ect\):)515 1442 y+@beginspecial 0 @llx 0 @lly 83 @urx 41 @ury 830 @rwi+@setspecial+%%BeginDocument: File.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: File+%%Pages: 0+%%BoundingBox: 0 0 83 41+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 5.50 47.11 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 11.17 m(Production) show+ 0.30 slw+n 69.11 15 m -2 -2 rl 2 -2 rl s+n 10 0.50 m 67.11 0 rl s+n 20 0.50 m 15 0.50 15 5.50 5 apr+ 15 5.50 l s+n 15 8 m 15 13 20 13 5 apr+ 20 13 l s+n 67.11 0.50 m 72.11 0.50 72.11 5.50 5 apr+ 72.11 5.50 l s+n 72.11 8 m 72.11 13 67.11 13 5 apr+ 67.11 13 l s+n 15 5.50 m 0 2.50 rl s+n 72.11 5.50 m 0 2.50 rl s+n 77.11 0.50 m 5 0 rl s+n 80.11 2.50 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 32.67 m(File) show+n 0 0.50 m 10 0 rl s+n 8 2.50 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 416 x @beginspecial 0 @llx 0 @lly 210 @urx+49 @ury 2100 @rwi @setspecial+%%BeginDocument: Production.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Production+%%Pages: 0+%%BoundingBox: 0 0 210 49+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 10 0.50 52.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 16 6.17 m(Nonterminal) show+ 0.30 slw+n 62.44 8 m 5 0 rl s+n 65.44 10 m 2 -2 rl -2 -2 rl s+ 82.44 13 31.56 15 1 255 255 255 Box+ 88.44 18.67 m(String) show+ 0.30 slw+n 80.44 22.50 m 2 -2 rl -2 -2 rl s+n 67.44 8 m 61.56 0 rl s+n 67.44 8 m 72.44 8 72.44 13 5 apr+ 72.44 13 l s+n 72.44 15.50 m 72.44 20.50 77.44 20.50 5 apr+ 77.44 20.50 l s+n 77.44 20.50 m 5 0 rl s+n 129 8 m 124 8 124 13 5 apr+ 124 13 l s+n 124 15.50 m 124 20.50 119 20.50 5 apr+ 119 20.50 l s+n 114 20.50 m 5 0 rl s+n 72.44 13 m 0 2.50 rl s+n 124 13 m 0 2.50 rl s+n 129 8 m 5 0 rl s+n 132 10 m 2 -2 rl -2 -2 rl s+ 134 0.50 16.51 15 1 255 255 255 RBox+ 140 6.17 m(=) show+ 0.30 slw+n 150.51 8 m 5 0 rl s+n 153.51 10 m 2 -2 rl -2 -2 rl s+ 155.51 0.50 29.32 15 1 255 255 255 Box+ 161.51 6.17 m(Term) show+ 0.30 slw+n 184.83 8 m 5 0 rl s+n 187.83 10 m 2 -2 rl -2 -2 rl s+ 189.83 0.50 14.22 15 1 255 255 255 RBox+ 195.83 6.17 m(;) show+ 0.30 slw+n 204.05 8 m 5 0 rl s+n 207.05 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 40.17 m(Production) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 475 x @beginspecial 0 @llx 0 @lly 68 @urx+56 @ury 680 @rwi @setspecial+%%BeginDocument: Term.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Term+%%Pages: 0+%%BoundingBox: 0 0 68 56+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 0.50 32.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 6.17 m(Factor) show+ 29.42 20.50 13.60 15 1 255 255 255 RBox+ 35.42 26.17 m(|) show+ 0.30 slw+n 45.02 30 m -2 -2 rl 2 -2 rl s+n 10 8 m 10 0 rl s+n 52.44 8 m 10 0 rl s+n 20 28 m 9.42 0 rl s+n 43.02 28 m 9.42 0 rl s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 23 m 15 28 20 28 5 apr+ 20 28 l s+n 52.44 8 m 57.44 8 57.44 13 5 apr+ 57.44 13 l s+n 57.44 23 m 57.44 28 52.44 28 5 apr+ 52.44 28 l s+n 15 13 m 0 10 rl s+n 57.44 13 m 0 10 rl s+n 62.44 8 m 5 0 rl s+n 65.44 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 47.67 m(Term) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 350 x @beginspecial 0 @llx 0 @lly 77 @urx+41 @ury 770 @rwi @setspecial+%%BeginDocument: Factor.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Factor+%%Pages: 0+%%BoundingBox: 0 0 77 41+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 0.50 41.33 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 6.17 m(ExtAtom) show+ 0.30 slw+n 10 8 m 10 0 rl s+n 61.33 8 m 10 0 rl s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 15.50 m 15 20.50 20 20.50 5 apr+ 20 20.50 l s+n 61.33 8 m 66.33 8 66.33 13 5 apr+ 66.33 13 l s+n 66.33 15.50 m 66.33 20.50 61.33 20.50 5 apr+ 61.33 20.50 l s+n 15 13 m 0 2.50 rl s+n 66.33 13 m 0 2.50 rl s+n 20 20.50 m 41.33 0 rl s+n 42.66 22.50 m -2 -2 rl 2 -2 rl s+n 71.33 8 m 5 0 rl s+n 74.33 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 32.67 m(Factor) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 642 x @beginspecial 0 @llx 0 @lly 120 @urx+76 @ury 1200 @rwi @setspecial+%%BeginDocument: ExtAtom.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: ExtAtom+%%Pages: 0+%%BoundingBox: 0 0 120 76+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 40.50 30.22 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 46.17 m(Atom) show+ 20 20.50 30.22 15 1 255 255 255 Box+ 26 26.17 m(Atom) show+ 0.30 slw+n 50.22 28 m 5 0 rl s+n 53.22 30 m 2 -2 rl -2 -2 rl s+ 55.22 20.50 14.22 15 1 255 255 255 RBox+ 61.22 26.17 m(/) show+ 0.30 slw+n 69.44 28 m 5 0 rl s+n 72.44 30 m 2 -2 rl -2 -2 rl s+ 74.44 20.50 30.22 15 1 255 255 255 Box+ 80.44 26.17 m(Atom) show+ 20 0.50 30.22 15 1 255 255 255 Box+ 26 6.17 m(Atom) show+ 0.30 slw+n 50.22 8 m 5 0 rl s+n 53.22 10 m 2 -2 rl -2 -2 rl s+ 55.22 0.50 16.51 15 1 255 255 255 RBox+ 61.22 6.17 m(+) show+ 0.30 slw+n 10 28 m 5 0 rl s+n 109.66 28 m 5 0 rl s+n 15 43 m 15 48 20 48 5 apr+ 20 48 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 30 rl s+n 109.66 43 m 109.66 48 104.66 48 5 apr+ 104.66 48 l s+n 104.66 8 m 109.66 8 109.66 13 5 apr+ 109.66 13 l s+n 109.66 13 m 0 30 rl s+n 15 28 m 5 0 rl s+n 104.66 28 m 5 0 rl s+n 50.22 48 m 54.44 0 rl s+n 104.66 28 m 0 0 rl s+n 71.73 8 m 32.93 0 rl s+n 114.66 28 m 5 0 rl s+n 117.66 30 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 67.67 m(ExtAtom) show+n 0 28 m 10 0 rl s+n 8 30 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 975 x @beginspecial 0 @llx 0 @lly 106 @urx+116 @ury 1060 @rwi @setspecial+%%BeginDocument: Atom.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Atom+%%Pages: 0+%%BoundingBox: 0 0 106 116+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 80.50 52.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 86.17 m(Nonterminal) show+ 20 60.50 31.56 15 1 255 255 255 Box+ 26 66.17 m(String) show+ 20 40.50 14.66 15 1 255 255 255 RBox+ 26 46.17 m(\() show+ 0.30 slw+n 34.66 48 m 5 0 rl s+n 37.66 50 m 2 -2 rl -2 -2 rl s+ 39.66 40.50 29.32 15 1 255 255 255 Box+ 45.66 46.17 m(Term) show+ 0.30 slw+n 68.98 48 m 5 0 rl s+n 71.98 50 m 2 -2 rl -2 -2 rl s+ 73.98 40.50 14.66 15 1 255 255 255 RBox+ 79.98 46.17 m(\)) show+ 20 20.50 14.66 15 1 255 255 255 RBox+ 26 26.17 m([) show+ 0.30 slw+n 34.66 28 m 5 0 rl s+n 37.66 30 m 2 -2 rl -2 -2 rl s+ 39.66 20.50 29.32 15 1 255 255 255 Box+ 45.66 26.17 m(Term) show+ 0.30 slw+n 68.98 28 m 5 0 rl s+n 71.98 30 m 2 -2 rl -2 -2 rl s+ 73.98 20.50 14.66 15 1 255 255 255 RBox+ 79.98 26.17 m(]) show+ 20 0.50 15.84 15 1 255 255 255 RBox+ 26 6.17 m({) show+ 0.30 slw+n 35.84 8 m 5 0 rl s+n 38.84 10 m 2 -2 rl -2 -2 rl s+ 40.84 0.50 29.32 15 1 255 255 255 Box+ 46.84 6.17 m(Term) show+ 0.30 slw+n 70.16 8 m 5 0 rl s+n 73.16 10 m 2 -2 rl -2 -2 rl s+ 75.16 0.50 15.84 15 1 255 255 255 RBox+ 81.16 6.17 m(}) show+ 0.30 slw+n 10 48 m 5 0 rl s+n 96 48 m 5 0 rl s+n 15 83 m 15 88 20 88 5 apr+ 20 88 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 70 rl s+n 96 83 m 96 88 91 88 5 apr+ 91 88 l s+n 91 8 m 96 8 96 13 5 apr+ 96 13 l s+n 96 13 m 0 70 rl s+n 15 68 m 5 0 rl s+n 15 48 m 5 0 rl s+n 15 28 m 5 0 rl s+n 91 68 m 5 0 rl s+n 91 48 m 5 0 rl s+n 91 28 m 5 0 rl s+n 72.44 88 m 18.56 0 rl s+n 51.56 68 m 39.44 0 rl s+n 88.64 48 m 2.36 0 rl s+n 88.64 28 m 2.36 0 rl s+n 91 8 m 0 0 rl s+n 101 48 m 5 0 rl s+n 104 50 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 107.67 m(Atom) show+n 0 48 m 10 0 rl s+n 8 50 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 417 x @beginspecial 0 @llx 0 @lly 119 @urx+49 @ury 1190 @rwi @setspecial+%%BeginDocument: String.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: String+%%Pages: 0+%%BoundingBox: 0 0 119 49+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 10 0.50 15.26 15 1 255 255 255 RBox+/Times-Roman findfont 8 scalefont setfont+ 16 6.17 m(") show+ 0.30 slw+n 25.26 8 m 5 0 rl s+n 28.26 10 m 2 -2 rl -2 -2 rl s+ 40.26 13 43.09 15 1 255 255 255 Box+ 46.26 18.67 m(Character) show+ 0.30 slw+n 85.35 22.50 m -2 -2 rl 2 -2 rl s+n 30.26 8 m 63.09 0 rl s+n 40.26 8 m 35.26 8 35.26 13 5 apr+ 35.26 13 l s+n 35.26 15.50 m 35.26 20.50 40.26 20.50 5 apr+ 40.26 20.50 l s+n 83.35 8 m 88.35 8 88.35 13 5 apr+ 88.35 13 l s+n 88.35 15.50 m 88.35 20.50 83.35 20.50 5 apr+ 83.35 20.50 l s+n 35.26 13 m 0 2.50 rl s+n 88.35 13 m 0 2.50 rl s+n 93.35 8 m 5 0 rl s+n 96.35 10 m 2 -2 rl -2 -2 rl s+ 98.35 0.50 15.26 15 1 255 255 255 RBox+ 104.35 6.17 m(") show+ 0.30 slw+n 113.61 8 m 5 0 rl s+n 116.61 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 40.17 m(String) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 1926 5255 a(5)p eop end+%%Page: 6 6+TeXDict begin 6 5 bop 515 1348 a @beginspecial 0 @llx+0 @lly 117 @urx 109 @ury 1170 @rwi @setspecial+%%BeginDocument: Nonterminal.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Nonterminal+%%Pages: 0+%%BoundingBox: 0 0 117 109+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 10 0.50 28.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 16 6.17 m(letter) show+ 0.30 slw+n 38.44 8 m 5 0 rl s+n 41.44 10 m 2 -2 rl -2 -2 rl s+ 63.44 73 28.44 15 1 255 255 255 Box+ 69.44 78.67 m(letter) show+ 65.21 53 26.67 15 1 255 255 255 Box+ 71.21 58.67 m(digit) show+ 75.88 33 16 15 1 255 255 255 RBox+ 81.88 38.67 m(_) show+ 77.88 13 14 15 1 255 255 255 RBox+ 83.88 18.67 m(.) show+ 0.30 slw+n 53.44 50.50 m 5 0 rl s+n 96.88 50.50 m 5 0 rl s+n 58.44 75.50 m 58.44 80.50 63.44 80.50 5 apr+ 63.44 80.50 l s+n 63.44 20.50 m 58.44 20.50 58.44 25.50 5 apr+ 58.44 25.50 l s+n 58.44 25.50 m 0 50 rl s+n 96.88 75.50 m 96.88 80.50 91.88 80.50 5 apr+ 91.88 80.50 l s+n 91.88 20.50 m 96.88 20.50 96.88 25.50 5 apr+ 96.88 25.50 l s+n 96.88 25.50 m 0 50 rl s+n 58.44 60.50 m 5 0 rl s+n 58.44 40.50 m 5 0 rl s+n 91.88 60.50 m 5 0 rl s+n 91.88 40.50 m 5 0 rl s+n 63.44 80.50 m 0 0 rl s+n 63.44 60.50 m 1.77 0 rl s+n 63.44 40.50 m 12.44 0 rl s+n 63.44 20.50 m 14.44 0 rl s+n 103.88 52.50 m -2 -2 rl 2 -2 rl s+n 43.44 8 m 68.44 0 rl s+n 53.44 8 m 48.44 8 48.44 13 5 apr+ 48.44 13 l s+n 48.44 45.50 m 48.44 50.50 53.44 50.50 5 apr+ 53.44 50.50 l s+n 101.88 8 m 106.88 8 106.88 13 5 apr+ 106.88 13 l s+n 106.88 45.50 m 106.88 50.50 101.88 50.50 5 apr+ 101.88 50.50 l s+n 48.44 13 m 0 32.50 rl s+n 106.88 13 m 0 32.50 rl s+n 111.88 8 m 5 0 rl s+n 114.88 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 100.17 m(Nonterminal) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 584 x @beginspecial 0 @llx 0 @lly 138 @urx+69 @ury 1380 @rwi @setspecial+%%BeginDocument: Character.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Character+%%Pages: 0+%%BoundingBox: 0 0 138 69+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 33 41.31 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 38.67 m(character) show+ 35 13 14.22 15 1 255 255 255 RBox+ 41 18.67 m(\\) show+ 0.30 slw+n 33 22.50 m 2 -2 rl -2 -2 rl s+n 20 8 m 44.22 0 rl s+n 20 8 m 25 8 25 13 5 apr+ 25 13 l s+n 25 15.50 m 25 20.50 30 20.50 5 apr+ 30 20.50 l s+n 30 20.50 m 5 0 rl s+n 64.22 8 m 59.22 8 59.22 13 5 apr+ 59.22 13 l s+n 59.22 15.50 m 59.22 20.50 54.22 20.50 5 apr+ 54.22 20.50 l s+n 49.22 20.50 m 5 0 rl s+n 25 13 m 0 2.50 rl s+n 59.22 13 m 0 2.50 rl s+n 64.22 8 m 5 0 rl s+n 67.22 10 m 2 -2 rl -2 -2 rl s+ 69.22 0.50 52.86 15 1 255 255 255 Box+ 75.22 6.17 m(anycharacter) show+ 0.30 slw+n 10 24.25 m 5 0 rl s+n 127.08 24.25 m 5 0 rl s+n 15 35.50 m 15 40.50 20 40.50 5 apr+ 20 40.50 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 22.50 rl s+n 127.08 35.50 m 127.08 40.50 122.08 40.50 5 apr+ 122.08 40.50 l s+n 122.08 8 m 127.08 8 127.08 13 5 apr+ 127.08 13 l s+n 127.08 13 m 0 22.50 rl s+n 61.31 40.50 m 60.77 0 rl s+n 122.08 8 m 0 0 rl s+n 132.08 24.25 m 5 0 rl s+n 135.08 26.25 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 60.17 m(Character) show+n 0 24.25 m 10 0 rl s+n 8 26.25 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 166 x Fl(These)18 b(diagrams)e(ha)n(v)n(e)i(b)r(een)g(pro)+r(duced)g(with)h Fj(Ebnf2ps)41 b(-tFont)g(Courier-Bold)e(-tBg)515+2197 y(Black)i(-tColor)g(White)g(-fatLineWidth)e(50)j(ebnf.BNF)f('.*')p+Fl(.)515 2430 y Fh(2.3)112 b(Syn)m(tax)38 b(of)g(regular)g(expressions)+515 2583 y Fl(The)30 b(regular)e(expressions)g(used)i(to)g(select)g+(non)n(terminal)f(sym)n(b)r(ols)g(ha)n(v)n(e)g(the)h(follo)n(wing)515+2683 y(syn)n(tax,)c(whic)n(h)i(is)f(similar)g(to)h(the)g(regular)e+(expression)g(syn)n(tax)g(of)34 b Fj(grep)p Fl(.)515+2865 y Fj(Regexp)128 b(=)43 b(RFactor)e(/)i("\\\\|")f(["$"];)515+2965 y(RFactor)84 b(=)43 b(RExtAtom)d(+)k(;)515 3064+y(RExtAtom)c(=)j(RAtom)f(["*")g(|)h("+")f(|)h("?"])f(;)515+3164 y(RAtom)172 b(=)43 b(character)d(|)j("\\\\")f(character)e(|)j(".")+g(|)g("\\\\\(")e(Regexp)g("\\\\\)")h(;)639 3347 y Fl(Regular)c+(expressions)e Fj(Regexp)g Fl(ma)n(y)i(b)r(e)h(joined)g(b)n(y)f(the)h+(in\014x)f(op)r(erator)f Fj(|)p Fl(.)69 b(The)515 3446+y(resulting)28 b(regular)e(expression)h(matc)n(hes)h(an)n(y)f(string)h+(matc)n(hing)g(either)g(sub)r(expression.)515 3546 y(A)j(sub)r+(expression)e(ma)n(y)h(b)r(e)h(enclosed)f(in)h(paren)n(thesis)e+Fj(\\\()p Fl(,)i Fj(\\\))f Fl(to)g(o)n(v)n(erride)f(precedence)515+3646 y(rules.)78 b(Rep)r(etition)42 b(tak)n(es)e(precedence)h(o)n(v)n+(er)f(concatenation,)j(whic)n(h)f(in)f(turn)h(tak)n(es)515+3745 y(precedence)30 b(o)n(v)n(er)g(alternation.)47 b(A)31+b(regular)f(expression)g(matc)n(hing)g(a)h(single)g(c)n(haracter)515+3845 y(ma)n(y)c(b)r(e)h(follo)n(w)n(ed)e(b)n(y)h(one)h(of)f(sev)n(eral)+f(rep)r(etition)i(op)r(erators:)515 4028 y Fj(?)41 b+Fl(The)27 b(preceding)g(item)h(is)g(optional)f(and)g(matc)n(hed)h(at)f+(most)g(once.)515 4194 y Fj(*)41 b Fl(The)27 b(preceding)g(item)h(will)+g(b)r(e)g(matc)n(hed)g(zero)e(or)h(more)g(times.)515+4360 y Fj(+)41 b Fl(The)27 b(preceding)g(item)h(will)g(b)r(e)g(matc)n+(hed)g(one)f(or)g(more)f(times.)515 4542 y(The)35 b(p)r(erio)r(d)f+Fj(.)59 b Fl(matc)n(hes)34 b(an)n(y)g(single)h(c)n(haracter,)f(and)h+(the)g(dollar)f(sign)g Fj($)h Fl(matc)n(h)g(the)515 4642+y(empt)n(y)27 b(string)g(at)h(the)g(end)g(of)f(a)g(line.)37+b(W)-7 b(ell,)29 b(graphically)-7 b(,)26 b(the)i(syn)n(tax)e(is)2878+4612 y Fd(2)2915 4642 y Fl(:)p 515 4711 1146 4 v 607+4765 a Fc(2)642 4788 y Fb(The)e(diagrams)f(ha)n(v)n(e)i(b)r(een)f(pro)r+(duced)h(with:)515 4867 y Fa(Ebnf2ps)37 b(-titleFont)h(AvantGarde-Book)+i(-ntBoxColor)e(White)f(-fatLineWidth)i(50)d(regular.BNF)515+4946 y('.*')1926 5255 y Fl(6)p eop end+%%Page: 7 7+TeXDict begin 7 6 bop 515 923 a @beginspecial 0 @llx+0 @lly 130 @urx 58 @ury 1300 @rwi @setspecial+%%BeginDocument: Regexp.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman+%%Title: Regexp+%%Pages: 0+%%BoundingBox: 0 0 130 58+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 255 255 255 scol 20 0.25 43.22 16 0.50 255 255 255 Box+/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 25.50 5.42 m(RFactor) show+ 33.72 21.25 15.78 16 0.50 255 255 255 RBox+ 39.22 26.42 m(\\|) show+ 0.30 slw+n 51.50 31.25 m -2 -2 rl 2 -2 rl s+n 10 8.25 m 10 0 rl s+n 63.22 8.25 m 10 0 rl s+n 20 29.25 m 13.72 0 rl s+n 49.50 29.25 m 13.72 0 rl s+n 20 8.25 m 15 8.25 15 13.25 5 apr+ 15 13.25 l s+n 15 24.25 m 15 29.25 20 29.25 5 apr+ 20 29.25 l s+n 63.22 8.25 m 68.22 8.25 68.22 13.25 5 apr+ 68.22 13.25 l s+n 68.22 24.25 m 68.22 29.25 63.22 29.25 5 apr+ 63.22 29.25 l s+n 15 13.25 m 0 11 rl s+n 68.22 13.25 m 0 11 rl s+n 73.22 8.25 m 5 0 rl s+n 76.22 10.25 m 2 -2 rl -2 -2 rl s+ 93.22 13.25 16 16 0.50 255 255 255 RBox+ 98.72 18.42 m($) show+ 0.30 slw+n 91.22 23.25 m 2 -2 rl -2 -2 rl s+n 78.22 8.25 m 46 0 rl s+n 78.22 8.25 m 83.22 8.25 83.22 13.25 5 apr+ 83.22 13.25 l s+n 83.22 16.25 m 83.22 21.25 88.22 21.25 5 apr+ 88.22 21.25 l s+n 88.22 21.25 m 5 0 rl s+n 124.22 8.25 m 119.22 8.25 119.22 13.25 5 apr+ 119.22 13.25 l s+n 119.22 16.25 m 119.22 21.25 114.22 21.25 5 apr+ 114.22 21.25 l s+n 109.22 21.25 m 5 0 rl s+n 83.22 13.25 m 0 3 rl s+n 119.22 13.25 m 0 3 rl s+n 124.22 8.25 m 5 0 rl s+n 127.22 10.25 m 2 -2 rl -2 -2 rl s+/AvantGarde-Book findfont 10 scalefont setfont+ 0 49.42 m(Regexp) show+n 0 8.25 m 10 0 rl s+n 8 10.25 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 359 x @beginspecial 0 @llx 0 @lly 90 @urx+42 @ury 900 @rwi @setspecial+%%BeginDocument: RFactor.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman+%%Title: RFactor+%%Pages: 0+%%BoundingBox: 0 0 90 42+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 255 255 255 scol 20 0.25 54.34 16 0.50 255 255 255 Box+/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 25.50 5.42 m(RExtAtom) show+ 0.30 slw+n 10 8.25 m 10 0 rl s+n 74.34 8.25 m 10 0 rl s+n 20 8.25 m 15 8.25 15 13.25 5 apr+ 15 13.25 l s+n 15 16.25 m 15 21.25 20 21.25 5 apr+ 20 21.25 l s+n 74.34 8.25 m 79.34 8.25 79.34 13.25 5 apr+ 79.34 13.25 l s+n 79.34 16.25 m 79.34 21.25 74.34 21.25 5 apr+ 74.34 21.25 l s+n 15 13.25 m 0 3 rl s+n 79.34 13.25 m 0 3 rl s+n 20 21.25 m 54.34 0 rl s+n 49.17 23.25 m -2 -2 rl 2 -2 rl s+n 84.34 8.25 m 5 0 rl s+n 87.34 10.25 m 2 -2 rl -2 -2 rl s+/AvantGarde-Book findfont 10 scalefont setfont+ 0 33.42 m(RFactor) show+n 0 8.25 m 10 0 rl s+n 8 10.25 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 775 x @beginspecial 0 @llx 0 @lly 128 @urx+92 @ury 1280 @rwi @setspecial+%%BeginDocument: RExtAtom.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman+%%Title: RExtAtom+%%Pages: 0+%%BoundingBox: 0 0 128 92+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 255 255 255 scol 10 0.25 40.45 16 0.50 255 255 255 Box+/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 15.50 5.42 m(RAtom) show+ 0.30 slw+n 50.45 8.25 m 5 0 rl s+n 53.45 10.25 m 2 -2 rl -2 -2 rl s+ 80.45 55.25 16 16 0.50 255 255 255 RBox+ 85.95 60.42 m(*) show+ 80.45 34.25 16.64 16 0.50 255 255 255 RBox+ 85.95 39.42 m(+) show+ 80.45 13.25 15.44 16 0.50 255 255 255 RBox+ 85.95 18.42 m(?) show+ 0.30 slw+n 70.45 42.25 m 5 0 rl s+n 102.09 42.25 m 5 0 rl s+n 75.45 58.25 m 75.45 63.25 80.45 63.25 5 apr+ 80.45 63.25 l s+n 80.45 21.25 m 75.45 21.25 75.45 26.25 5 apr+ 75.45 26.25 l s+n 75.45 26.25 m 0 32 rl s+n 102.09 58.25 m 102.09 63.25 97.09 63.25 5 apr+ 97.09 63.25 l s+n 97.09 21.25 m 102.09 21.25 102.09 26.25 5 apr+ 102.09 26.25 l s+n 102.09 26.25 m 0 32 rl s+n 75.45 42.25 m 5 0 rl s+n 97.09 42.25 m 5 0 rl s+n 96.45 63.25 m 0.64 0 rl s+n 97.09 42.25 m 0 0 rl s+n 95.89 21.25 m 1.20 0 rl s+n 68.45 44.25 m 2 -2 rl -2 -2 rl s+n 55.45 8.25 m 66.64 0 rl s+n 55.45 8.25 m 60.45 8.25 60.45 13.25 5 apr+ 60.45 13.25 l s+n 60.45 37.25 m 60.45 42.25 65.45 42.25 5 apr+ 65.45 42.25 l s+n 65.45 42.25 m 5 0 rl s+n 122.09 8.25 m 117.09 8.25 117.09 13.25 5 apr+ 117.09 13.25 l s+n 117.09 37.25 m 117.09 42.25 112.09 42.25 5 apr+ 112.09 42.25 l s+n 107.09 42.25 m 5 0 rl s+n 60.45 13.25 m 0 24 rl s+n 117.09 13.25 m 0 24 rl s+n 122.09 8.25 m 5 0 rl s+n 125.09 10.25 m 2 -2 rl -2 -2 rl s+/AvantGarde-Book findfont 10 scalefont setfont+ 0 83.42 m(RExtAtom) show+n 0 8.25 m 10 0 rl s+n 8 10.25 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 841 x @beginspecial 0 @llx 0 @lly 121 @urx+100 @ury 1210 @rwi @setspecial+%%BeginDocument: RAtom.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: AvantGarde-Book Times-Roman+%%Title: RAtom+%%Pages: 0+%%BoundingBox: 0 0 121 100+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 255 255 255 scol 20 63.25 47.64 16 0.50 255 255 255 Box+/Times-Roman findfont 10 scalefont setfont+ 0 0 0 scol 25.50 68.42 m(character) show+ 20 42.25 13.78 16 0.50 255 255 255 RBox+ 25.50 47.42 m(\\) show+ 0.30 slw+n 33.78 50.25 m 5 0 rl s+n 36.78 52.25 m 2 -2 rl -2 -2 rl s+ 255 255 255 scol 38.78 42.25 47.64 16 0.50 255 255 255 Box+ 0 0 0 scol 44.28 47.42 m(character) show+ 20 21.25 13.50 16 0.50 255 255 255 RBox+ 25.50 26.42 m(.) show+ 20 0.25 17.11 16 0.50 255 255 255 RBox+ 25.50 5.42 m(\\\() show+ 0.30 slw+n 37.11 8.25 m 5 0 rl s+n 40.11 10.25 m 2 -2 rl -2 -2 rl s+ 255 255 255 scol 42.11 0.25 41.55 16 0.50 255 255 255 Box+ 0 0 0 scol 47.61 5.42 m(Regexp) show+ 0.30 slw+n 83.66 8.25 m 5 0 rl s+n 86.66 10.25 m 2 -2 rl -2 -2 rl s+ 88.66 0.25 17.11 16 0.50 255 255 255 RBox+ 94.16 5.42 m(\\\)) show+ 0.30 slw+n 10 39.75 m 5 0 rl s+n 110.77 39.75 m 5 0 rl s+n 15 66.25 m 15 71.25 20 71.25 5 apr+ 20 71.25 l s+n 20 8.25 m 15 8.25 15 13.25 5 apr+ 15 13.25 l s+n 15 13.25 m 0 53 rl s+n 110.77 66.25 m 110.77 71.25 105.77 71.25 5 apr+ 105.77 71.25 l s+n 105.77 8.25 m 110.77 8.25 110.77 13.25 5 apr+ 110.77 13.25 l s+n 110.77 13.25 m 0 53 rl s+n 15 50.25 m 5 0 rl s+n 15 29.25 m 5 0 rl s+n 105.77 50.25 m 5 0 rl s+n 105.77 29.25 m 5 0 rl s+n 67.64 71.25 m 38.13 0 rl s+n 86.42 50.25 m 19.35 0 rl s+n 33.50 29.25 m 72.27 0 rl s+n 105.77 8.25 m 0 0 rl s+n 115.77 39.75 m 5 0 rl s+n 118.77 41.75 m 2 -2 rl -2 -2 rl s+/AvantGarde-Book findfont 10 scalefont setfont+ 0 91.42 m(RAtom) show+n 0 39.75 m 10 0 rl s+n 8 41.75 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 233 x Fh(2.4)112 b(Option)38 b(+unfold)515+3284 y Fl(The)24 b(option)g Fg(+unfold)g Fl(allo)n(ws)f(the)h+(replacemen)n(t)f(of)i(non)n(terminal)e(sym)n(b)r(ols)g(in)i(pro)r+(duc-)515 3384 y(tions,)38 b(through)e(the)g("righ)n(t)g(side")f(of)i+(the)f(pro)r(duction)g(of)h(corresp)r(onding)d(non)n(termi-)515+3483 y(nals.)41 b(The)29 b(non)n(terminals,)g(whic)n(h)g(follo)n(ws)g+(the)g(sym)n(b)r(ol)g Fj(--)g Fl(in)g(a)g(command)g(line)g(could)515+3583 y(b)r(e)35 b(sp)r(eci\014ed)f(b)n(y)g(their)h(full)g(names,)h(or)d+(b)n(y)h(regular)f(expressions)g(\(see)h(Sec.)h(2.3\).)57+b(An)515 3682 y(example:)41 b(with)30 b(the)g(grammar)e+Fj(regular.BNF)e Fl(for)j(the)h(regular)e(expression)h(syn)n(tax)g(in)+515 3782 y(section)37 b(2.3)g(should)g(b)r(e)h(generated)e(a)h(diagram)+f(for)h Fj(RAtom)p Fl(,)h(with)g(a)f(replacemen)n(t)g(of)515+3882 y(non)n(terminal)e Fj(Regexp)p Fl(.)62 b(The)37+b(follo)n(wing)e(diagram)g(is)i(b)r(een)g(pro)r(duced)f(with)h+Fj(Ebnf2ps)515 3981 y(+unfold)j(regular.BNF)f(RAtom)j(--)h(Regexp)p+Fl(.)1926 5255 y(7)p eop end+%%Page: 8 8+TeXDict begin 8 7 bop 515 1490 a @beginspecial 0 @llx+0 @lly 198 @urx 126 @ury 1980 @rwi @setspecial+%%BeginDocument: RAtom_unfold.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: RAtom+%%Pages: 0+%%BoundingBox: 0 0 198 126+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 88.50 48.64 17 1 255 255 255 Box+/Times-Roman findfont 10 scalefont setfont+ 26 94.17 m(character) show+ 20 66.50 14.78 17 1 255 255 255 RBox+ 26 72.17 m(\\) show+ 0.30 slw+n 34.78 75 m 5 0 rl s+n 37.78 77 m 2 -2 rl -2 -2 rl s+ 39.78 66.50 48.64 17 1 255 255 255 Box+ 45.78 72.17 m(character) show+ 20 44.50 14.50 17 1 255 255 255 RBox+ 26 50.17 m(.) show+ 20 0.50 18.11 17 1 255 255 255 RBox+ 26 6.17 m(\\\() show+ 0.30 slw+n 38.11 9 m 5 0 rl s+n 41.11 11 m 2 -2 rl -2 -2 rl s+ 53.11 0.50 44.22 17 1 255 255 255 Box+ 59.11 6.17 m(RFactor) show+ 66.83 22.50 16.78 17 1 255 255 255 RBox+ 72.83 28.17 m(\\|) show+ 0.30 slw+n 85.61 33 m -2 -2 rl 2 -2 rl s+n 43.11 9 m 10 0 rl s+n 97.33 9 m 10 0 rl s+n 53.11 31 m 13.72 0 rl s+n 83.61 31 m 13.72 0 rl s+n 53.11 9 m 48.11 9 48.11 14 5 apr+ 48.11 14 l s+n 48.11 26 m 48.11 31 53.11 31 5 apr+ 53.11 31 l s+n 97.33 9 m 102.33 9 102.33 14 5 apr+ 102.33 14 l s+n 102.33 26 m 102.33 31 97.33 31 5 apr+ 97.33 31 l s+n 48.11 14 m 0 12 rl s+n 102.33 14 m 0 12 rl s+n 107.33 9 m 5 0 rl s+n 110.33 11 m 2 -2 rl -2 -2 rl s+ 127.33 14 17 17 1 255 255 255 RBox+ 133.33 19.67 m($) show+ 0.30 slw+n 125.33 24.50 m 2 -2 rl -2 -2 rl s+n 112.33 9 m 47 0 rl s+n 112.33 9 m 117.33 9 117.33 14 5 apr+ 117.33 14 l s+n 117.33 17.50 m 117.33 22.50 122.33 22.50 5 apr+ 122.33 22.50 l s+n 122.33 22.50 m 5 0 rl s+n 159.33 9 m 154.33 9 154.33 14 5 apr+ 154.33 14 l s+n 154.33 17.50 m 154.33 22.50 149.33 22.50 5 apr+ 149.33 22.50 l s+n 144.33 22.50 m 5 0 rl s+n 117.33 14 m 0 3.50 rl s+n 154.33 14 m 0 3.50 rl s+n 159.33 9 m 5 0 rl s+n 162.33 11 m 2 -2 rl -2 -2 rl s+ 164.33 0.50 18.11 17 1 255 255 255 RBox+ 170.33 6.17 m(\\\)) show+ 0.30 slw+n 10 53 m 5 0 rl s+n 187.44 53 m 5 0 rl s+n 15 92 m 15 97 20 97 5 apr+ 20 97 l s+n 20 9 m 15 9 15 14 5 apr+ 15 14 l s+n 15 14 m 0 78 rl s+n 187.44 92 m 187.44 97 182.44 97 5 apr+ 182.44 97 l s+n 182.44 9 m 187.44 9 187.44 14 5 apr+ 187.44 14 l s+n 187.44 14 m 0 78 rl s+n 15 75 m 5 0 rl s+n 15 53 m 5 0 rl s+n 182.44 75 m 5 0 rl s+n 182.44 53 m 5 0 rl s+n 68.64 97 m 113.80 0 rl s+n 88.42 75 m 94.02 0 rl s+n 34.50 53 m 147.94 0 rl s+n 182.44 9 m 0 0 rl s+n 192.44 53 m 5 0 rl s+n 195.44 55 m 2 -2 rl -2 -2 rl s+ 0 117.67 m(RAtom) show+n 0 53 m 10 0 rl s+n 8 55 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 639 1673 a Fl(The)39 b(follo)n(wing)e(example)h+(illustrates)g(the)h(use)g(of)f(regular)f(expressions)g(with)i(the)515+1772 y(option)f Fj(+unfold)p Fl(.)67 b(In)39 b(all)f(pro)r(ductions)g+(of)h(the)g(grammar)d(\014le)j Fj(ebnf.BNF)c Fl(|)k(whic)n(h)515+1872 y(describ)r(es)c(the)h(syn)n(tax)f(of)h(EBNF)g(\014les)f(\(see)h+(Sec.)g(2.2\))f(|)h(the)g(non)n(terminal)f Fj(String)515+1972 y Fl(and)27 b(all)g(non)n(terminals)g(that)h(matc)n(h)f(the)h+(pattern)645 2138 y Fj(.*\\\(t\\|T\\\)erm.*)515 2304+y Fl(should)d(b)r(e)h(replaced.)36 b(The)26 b(next)f(lines)h(sho)n(ws)f+(the)h(command)f(to)h(pro)r(duce)f(the)h(railroad)515+2403 y(diagrams)g(and)h(the)h(progress)d(messages)h(of)i(Ebnf2ps.)515+2561 y Fa(\045)35 b(Ebnf2ps)j(-verbose)f(-tScale)g(8)f(-ntScale)i(8)d+(+unfold)i(ebnf.BNF)h('.*')e(--)g(String)h('.*\\\(t\\|T\\\)erm.*')515+2636 y(using)f(colors:)797 2710 y(ntColor)355 b(\(0,0,0\))797+2785 y(tColor)390 b(\(0,0,0\))797 2860 y(lineColor)285+b(\(0,0,0\))797 2935 y(ntBoxColor)250 b(\(0,0,0\))797+3009 y(tBoxColor)285 b(\(0,0,0\))797 3084 y(ntBg)460+b(\(255,255,255\))797 3159 y(tBg)495 b(\(255,255,255\))797+3233 y(titleColor)250 b(\(0,0,0\))515 3308 y(from)36+b(rgbPathDefault:)k(["/usr/lib/X11",)g("/opt/X11/share/X11",)h+("/usr/local/X11R5/lib/X1)q(1"])515 3383 y(generating)d(nonterminals:)h+([".*"])515 3458 y(from)d(ebnf.BNF)515 3532 y(using)g(input)h(path)g+(["."])515 3607 y(using)f(ebnfInput)515 3682 y(unfold)h(nonterminals:)+797 3757 y(Nonterminal)797 3831 y(String)797 3906 y(Term)515+3981 y(in)f(the)g(following)i(productions)797 4055 y(Production)797+4130 y(Atom)515 4205 y(produce)f(layout)g(and)f(output)515+4387 y Fl(W)-7 b(ell,)28 b(graphically)e(that)i(is:)1926+5255 y(8)p eop end+%%Page: 9 9+TeXDict begin 9 8 bop 515 2615 a @beginspecial 0 @llx+0 @lly 139 @urx 261 @ury 1390 @rwi @setspecial+%%BeginDocument: Atom_unfold.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Atom+%%Pages: 0+%%BoundingBox: 0 0 139 261+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 20 153 28.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 26 158.67 m(letter) show+ 0.30 slw+n 48.44 160.50 m 5 0 rl s+n 51.44 162.50 m 2 -2 rl -2 -2 rl s+ 73.44 225.50 28.44 15 1 255 255 255 Box+ 79.44 231.17 m(letter) show+ 75.21 205.50 26.67 15 1 255 255 255 Box+ 81.21 211.17 m(digit) show+ 85.88 185.50 16 15 1 255 255 255 RBox+ 91.88 191.17 m(_) show+ 87.88 165.50 14 15 1 255 255 255 RBox+ 93.88 171.17 m(.) show+ 0.30 slw+n 63.44 203 m 5 0 rl s+n 106.88 203 m 5 0 rl s+n 68.44 228 m 68.44 233 73.44 233 5 apr+ 73.44 233 l s+n 73.44 173 m 68.44 173 68.44 178 5 apr+ 68.44 178 l s+n 68.44 178 m 0 50 rl s+n 106.88 228 m 106.88 233 101.88 233 5 apr+ 101.88 233 l s+n 101.88 173 m 106.88 173 106.88 178 5 apr+ 106.88 178 l s+n 106.88 178 m 0 50 rl s+n 68.44 213 m 5 0 rl s+n 68.44 193 m 5 0 rl s+n 101.88 213 m 5 0 rl s+n 101.88 193 m 5 0 rl s+n 73.44 233 m 0 0 rl s+n 73.44 213 m 1.77 0 rl s+n 73.44 193 m 12.44 0 rl s+n 73.44 173 m 14.44 0 rl s+n 113.88 205 m -2 -2 rl 2 -2 rl s+n 53.44 160.50 m 68.44 0 rl s+n 63.44 160.50 m 58.44 160.50 58.44 165.50 5 apr+ 58.44 165.50 l s+n 58.44 198 m 58.44 203 63.44 203 5 apr+ 63.44 203 l s+n 111.88 160.50 m 116.88 160.50 116.88 165.50 5 apr+ 116.88 165.50 l s+n 116.88 198 m 116.88 203 111.88 203 5 apr+ 111.88 203 l s+n 58.44 165.50 m 0 32.50 rl s+n 116.88 165.50 m 0 32.50 rl s+ 20 120.50 15.26 15 1 255 255 255 RBox+ 26 126.17 m(") show+ 0.30 slw+n 35.26 128 m 5 0 rl s+n 38.26 130 m 2 -2 rl -2 -2 rl s+ 50.26 133 43.09 15 1 255 255 255 Box+ 56.26 138.67 m(Character) show+ 0.30 slw+n 95.35 142.50 m -2 -2 rl 2 -2 rl s+n 40.26 128 m 63.09 0 rl s+n 50.26 128 m 45.26 128 45.26 133 5 apr+ 45.26 133 l s+n 45.26 135.50 m 45.26 140.50 50.26 140.50 5 apr+ 50.26 140.50 l s+n 93.35 128 m 98.35 128 98.35 133 5 apr+ 98.35 133 l s+n 98.35 135.50 m 98.35 140.50 93.35 140.50 5 apr+ 93.35 140.50 l s+n 45.26 133 m 0 2.50 rl s+n 98.35 133 m 0 2.50 rl s+n 103.35 128 m 5 0 rl s+n 106.35 130 m 2 -2 rl -2 -2 rl s+ 108.35 120.50 15.26 15 1 255 255 255 RBox+ 114.35 126.17 m(") show+ 20 80.50 14.66 15 1 255 255 255 RBox+ 26 86.17 m(\() show+ 0.30 slw+n 34.66 88 m 5 0 rl s+n 37.66 90 m 2 -2 rl -2 -2 rl s+ 49.66 80.50 32.44 15 1 255 255 255 Box+ 55.66 86.17 m(Factor) show+ 59.08 100.50 13.60 15 1 255 255 255 RBox+ 65.08 106.17 m(|) show+ 0.30 slw+n 74.68 110 m -2 -2 rl 2 -2 rl s+n 39.66 88 m 10 0 rl s+n 82.10 88 m 10 0 rl s+n 49.66 108 m 9.42 0 rl s+n 72.68 108 m 9.42 0 rl s+n 49.66 88 m 44.66 88 44.66 93 5 apr+ 44.66 93 l s+n 44.66 103 m 44.66 108 49.66 108 5 apr+ 49.66 108 l s+n 82.10 88 m 87.10 88 87.10 93 5 apr+ 87.10 93 l s+n 87.10 103 m 87.10 108 82.10 108 5 apr+ 82.10 108 l s+n 44.66 93 m 0 10 rl s+n 87.10 93 m 0 10 rl s+n 92.10 88 m 5 0 rl s+n 95.10 90 m 2 -2 rl -2 -2 rl s+ 97.10 80.50 14.66 15 1 255 255 255 RBox+ 103.10 86.17 m(\)) show+ 20 40.50 14.66 15 1 255 255 255 RBox+ 26 46.17 m([) show+ 0.30 slw+n 34.66 48 m 5 0 rl s+n 37.66 50 m 2 -2 rl -2 -2 rl s+ 49.66 40.50 32.44 15 1 255 255 255 Box+ 55.66 46.17 m(Factor) show+ 59.08 60.50 13.60 15 1 255 255 255 RBox+ 65.08 66.17 m(|) show+ 0.30 slw+n 74.68 70 m -2 -2 rl 2 -2 rl s+n 39.66 48 m 10 0 rl s+n 82.10 48 m 10 0 rl s+n 49.66 68 m 9.42 0 rl s+n 72.68 68 m 9.42 0 rl s+n 49.66 48 m 44.66 48 44.66 53 5 apr+ 44.66 53 l s+n 44.66 63 m 44.66 68 49.66 68 5 apr+ 49.66 68 l s+n 82.10 48 m 87.10 48 87.10 53 5 apr+ 87.10 53 l s+n 87.10 63 m 87.10 68 82.10 68 5 apr+ 82.10 68 l s+n 44.66 53 m 0 10 rl s+n 87.10 53 m 0 10 rl s+n 92.10 48 m 5 0 rl s+n 95.10 50 m 2 -2 rl -2 -2 rl s+ 97.10 40.50 14.66 15 1 255 255 255 RBox+ 103.10 46.17 m(]) show+ 20 0.50 15.84 15 1 255 255 255 RBox+ 26 6.17 m({) show+ 0.30 slw+n 35.84 8 m 5 0 rl s+n 38.84 10 m 2 -2 rl -2 -2 rl s+ 50.84 0.50 32.44 15 1 255 255 255 Box+ 56.84 6.17 m(Factor) show+ 60.26 20.50 13.60 15 1 255 255 255 RBox+ 66.26 26.17 m(|) show+ 0.30 slw+n 75.86 30 m -2 -2 rl 2 -2 rl s+n 40.84 8 m 10 0 rl s+n 83.28 8 m 10 0 rl s+n 50.84 28 m 9.42 0 rl s+n 73.86 28 m 9.42 0 rl s+n 50.84 8 m 45.84 8 45.84 13 5 apr+ 45.84 13 l s+n 45.84 23 m 45.84 28 50.84 28 5 apr+ 50.84 28 l s+n 83.28 8 m 88.28 8 88.28 13 5 apr+ 88.28 13 l s+n 88.28 23 m 88.28 28 83.28 28 5 apr+ 83.28 28 l s+n 45.84 13 m 0 10 rl s+n 88.28 13 m 0 10 rl s+n 93.28 8 m 5 0 rl s+n 96.28 10 m 2 -2 rl -2 -2 rl s+ 98.28 0.50 15.84 15 1 255 255 255 RBox+ 104.28 6.17 m(}) show+ 0.30 slw+n 10 84.25 m 5 0 rl s+n 128.61 84.25 m 5 0 rl s+n 15 155.50 m 15 160.50 20 160.50 5 apr+ 20 160.50 l s+n 20 8 m 15 8 15 13 5 apr+ 15 13 l s+n 15 13 m 0 142.50 rl s+n 128.61 155.50 m 128.61 160.50 123.61 160.50 5 apr+ 123.61 160.50 l s+n 123.61 8 m 128.61 8 128.61 13 5 apr+ 128.61 13 l s+n 128.61 13 m 0 142.50 rl s+n 15 128 m 5 0 rl s+n 15 88 m 5 0 rl s+n 15 48 m 5 0 rl s+n 123.61 128 m 5 0 rl s+n 123.61 88 m 5 0 rl s+n 123.61 48 m 5 0 rl s+n 121.88 160.50 m 1.73 0 rl s+n 123.61 128 m 0 0 rl s+n 111.76 88 m 11.85 0 rl s+n 111.76 48 m 11.85 0 rl s+n 114.12 8 m 9.49 0 rl s+n 133.61 84.25 m 5 0 rl s+n 136.61 86.25 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 252.67 m(Atom) show+n 0 84.25 m 10 0 rl s+n 8 86.25 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 917 x @beginspecial 0 @llx 0 @lly 354 @urx+109 @ury 3540 @rwi @setspecial+%%BeginDocument: Production_unfold.eps+%!PS-Adobe-2.0 EPSF-2.0+%%Creator: Ebnf2ps Version 1.0.12 (October 2014)(C) 1996-2000 by Peter Thiemann+%%CreationDate: Fri Oct 3 02:34:55 EDT 2014%%DocumentFonts: Times-Roman+%%Title: Production+%%Pages: 0+%%BoundingBox: 0 0 354 109+%%EndComments+/$Ebnf2psDict 100 dict def+$Ebnf2psDict begin+/l {lineto} bind def+/m {moveto} bind def+/rl {rlineto} bind def+/rm {rmoveto} bind def+/s {stroke} bind def+/n {newpath} bind def+/gs {gsave} bind def+/gr {grestore} bind def+/clp {closepath} bind def+/slw {setlinewidth} bind def+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+4 -2 roll mul setrgbcolor} bind def+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def+ /apr {arcto 4 {pop} repeat} def+/Box {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ n llx lly m+ width 0 rl+ 0 height rl+ width neg 0 rl+ 0 height neg rl+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+/RBox {+ /bgB exch def+ /bgG exch def+ /bgR exch def+ /linewidth exch def+ /height exch def+ /width exch def+ /lly exch def+ /llx exch def+ linewidth 2 div dup llx add /llx exch def lly add /lly exch def+ /height height linewidth sub def+ /width width linewidth sub def+ /height2 height 2 div def+ /width2 width 2 div def+ /urx llx width add def+ /ury lly height add def+ /mmx llx width2 add def+ /mmy lly height2 add def+ /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def+ /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def+ /radius width2 height2 ge {height2} {width2} ifelse def+ n mmx lly m+ urx lly urx mmy radius apr+ urx ury mmx ury radius apr+ llx ury llx mmy radius apr+ llx lly mmx lly radius apr+ mmx lly l+ linewidth 0 eq {linewidth0} {linewidth1} ifelse+} def+end+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def++%%EndProlog++$Ebnf2psBegin+ 0 0 0 scol 10 0.50 28.44 15 1 255 255 255 Box+/Times-Roman findfont 8 scalefont setfont+ 16 6.17 m(letter) show+ 0.30 slw+n 38.44 8 m 5 0 rl s+n 41.44 10 m 2 -2 rl -2 -2 rl s+ 63.44 73 28.44 15 1 255 255 255 Box+ 69.44 78.67 m(letter) show+ 65.21 53 26.67 15 1 255 255 255 Box+ 71.21 58.67 m(digit) show+ 75.88 33 16 15 1 255 255 255 RBox+ 81.88 38.67 m(_) show+ 77.88 13 14 15 1 255 255 255 RBox+ 83.88 18.67 m(.) show+ 0.30 slw+n 53.44 50.50 m 5 0 rl s+n 96.88 50.50 m 5 0 rl s+n 58.44 75.50 m 58.44 80.50 63.44 80.50 5 apr+ 63.44 80.50 l s+n 63.44 20.50 m 58.44 20.50 58.44 25.50 5 apr+ 58.44 25.50 l s+n 58.44 25.50 m 0 50 rl s+n 96.88 75.50 m 96.88 80.50 91.88 80.50 5 apr+ 91.88 80.50 l s+n 91.88 20.50 m 96.88 20.50 96.88 25.50 5 apr+ 96.88 25.50 l s+n 96.88 25.50 m 0 50 rl s+n 58.44 60.50 m 5 0 rl s+n 58.44 40.50 m 5 0 rl s+n 91.88 60.50 m 5 0 rl s+n 91.88 40.50 m 5 0 rl s+n 63.44 80.50 m 0 0 rl s+n 63.44 60.50 m 1.77 0 rl s+n 63.44 40.50 m 12.44 0 rl s+n 63.44 20.50 m 14.44 0 rl s+n 103.88 52.50 m -2 -2 rl 2 -2 rl s+n 43.44 8 m 68.44 0 rl s+n 53.44 8 m 48.44 8 48.44 13 5 apr+ 48.44 13 l s+n 48.44 45.50 m 48.44 50.50 53.44 50.50 5 apr+ 53.44 50.50 l s+n 101.88 8 m 106.88 8 106.88 13 5 apr+ 106.88 13 l s+n 106.88 45.50 m 106.88 50.50 101.88 50.50 5 apr+ 101.88 50.50 l s+n 48.44 13 m 0 32.50 rl s+n 106.88 13 m 0 32.50 rl s+n 111.88 8 m 5 0 rl s+n 114.88 10 m 2 -2 rl -2 -2 rl s+ 131.88 13 15.26 15 1 255 255 255 RBox+ 137.88 18.67 m(") show+ 0.30 slw+n 147.14 20.50 m 5 0 rl s+n 150.14 22.50 m 2 -2 rl -2 -2 rl s+ 162.14 25.50 43.09 15 1 255 255 255 Box+ 168.14 31.17 m(Character) show+ 0.30 slw+n 207.23 35 m -2 -2 rl 2 -2 rl s+n 152.14 20.50 m 63.09 0 rl s+n 162.14 20.50 m 157.14 20.50 157.14 25.50 5 apr+ 157.14 25.50 l s+n 157.14 28 m 157.14 33 162.14 33 5 apr+ 162.14 33 l s+n 205.23 20.50 m 210.23 20.50 210.23 25.50 5 apr+ 210.23 25.50 l s+n 210.23 28 m 210.23 33 205.23 33 5 apr+ 205.23 33 l s+n 157.14 25.50 m 0 2.50 rl s+n 210.23 25.50 m 0 2.50 rl s+n 215.23 20.50 m 5 0 rl s+n 218.23 22.50 m 2 -2 rl -2 -2 rl s+ 220.23 13 15.26 15 1 255 255 255 RBox+ 226.23 18.67 m(") show+ 0.30 slw+n 129.88 22.50 m 2 -2 rl -2 -2 rl s+n 116.88 8 m 133.61 0 rl s+n 116.88 8 m 121.88 8 121.88 13 5 apr+ 121.88 13 l s+n 121.88 15.50 m 121.88 20.50 126.88 20.50 5 apr+ 126.88 20.50 l s+n 126.88 20.50 m 5 0 rl s+n 250.49 8 m 245.49 8 245.49 13 5 apr+ 245.49 13 l s+n 245.49 15.50 m 245.49 20.50 240.49 20.50 5 apr+ 240.49 20.50 l s+n 235.49 20.50 m 5 0 rl s+n 121.88 13 m 0 2.50 rl s+n 245.49 13 m 0 2.50 rl s+n 250.49 8 m 5 0 rl s+n 253.49 10 m 2 -2 rl -2 -2 rl s+ 255.49 0.50 16.51 15 1 255 255 255 RBox+ 261.49 6.17 m(=) show+ 0.30 slw+n 272 8 m 5 0 rl s+n 275 10 m 2 -2 rl -2 -2 rl s+ 287 0.50 32.44 15 1 255 255 255 Box+ 293 6.17 m(Factor) show+ 296.42 20.50 13.60 15 1 255 255 255 RBox+ 302.42 26.17 m(|) show+ 0.30 slw+n 312.02 30 m -2 -2 rl 2 -2 rl s+n 277 8 m 10 0 rl s+n 319.44 8 m 10 0 rl s+n 287 28 m 9.42 0 rl s+n 310.02 28 m 9.42 0 rl s+n 287 8 m 282 8 282 13 5 apr+ 282 13 l s+n 282 23 m 282 28 287 28 5 apr+ 287 28 l s+n 319.44 8 m 324.44 8 324.44 13 5 apr+ 324.44 13 l s+n 324.44 23 m 324.44 28 319.44 28 5 apr+ 319.44 28 l s+n 282 13 m 0 10 rl s+n 324.44 13 m 0 10 rl s+n 329.44 8 m 5 0 rl s+n 332.44 10 m 2 -2 rl -2 -2 rl s+ 334.44 0.50 14.22 15 1 255 255 255 RBox+ 340.44 6.17 m(;) show+ 0.30 slw+n 348.66 8 m 5 0 rl s+n 351.66 10 m 2 -2 rl -2 -2 rl s+/Times-Roman findfont 10 scalefont setfont+ 0 100.17 m(Production) show+n 0 8 m 10 0 rl s+n 8 10 m 2 -2 rl -2 -2 rl s++$Ebnf2psEnd++%%EndDocument+ @endspecial 232 x Fh(2.5)112 b(En)m(vironmen)m(t)38+b(v)-6 b(ariables)515 3917 y Fl(The)29 b(format)f(of)g(searc)n(h)g+(paths)g(is)h(a)f(colon)g(separated)f(list)i(of)g(directories.)39+b(The)29 b(default)515 4017 y(path)22 b(is)g(inserted)g(in)g(place)g+(of)g(an)g(empt)n(y)g(directory)f(in)h(the)g(list.)36+b(An)n(y)22 b(\014le)g(name)g(starting)515 4117 y(with)27+b Fj(/)g Fl(is)g(tak)n(en)g(as)f(an)h(absolute)g(name)g(and)g(an)n(y)f+(\014le)h(name)g(starting)g(with)g Fj(.)37 b Fl(is)27+b(tak)n(en)515 4216 y(relativ)n(e)f(to)i(the)g(curren)n(t)e(w)n(orking)+g(directory)-7 b(.)515 4399 y Fg(AFMP)f(A)g(TH)42 b Fl(searc)n(h)26+b(path)i(for)f(Adob)r(e)h(fon)n(t)f(metric)h(\014les.)515+4565 y Fg(EBNFINPUTS)42 b Fl(searc)n(h)26 b(path)i(for)f(grammar)e+(input)k(\014les.)515 4731 y Fg(R)m(GBP)-8 b(A)g(TH)42+b Fl(searc)n(h)26 b(path)i(for)f(the)h(color)e(de\014nitions.)1926+5255 y(9)p eop end+%%Trailer+ userdict /end-hook known{end-hook}if %%EOF
doc/doc.tex view
@@ -1,13 +1,12 @@-\documentclass[a4paper]{article}-\usepackage{a4}-\usepackage{iso8859-1}+\documentclass{article}+\usepackage[utf8]{inputenc} \usepackage{epsfig} \newenvironment{bfscript}[1]{% \begin{list}{}{\settowidth{\labelwidth}{\bf #1}- \setlength{\leftmargin}{\labelwidth} + \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep}- \parsep0.5ex plus0.2ex minus0.2ex \itemsep 0.3ex + \parsep0.5ex plus0.2ex minus0.2ex \itemsep 0.3ex \renewcommand{\makelabel}[1]{\bf ##1\hfill}}} {\end{list}} \newcommand{\new}{%@@ -15,14 +14,16 @@ \hbox {n}\hfil \crcr\mathhexbox 20D}}} \begin{document}-\title{Ebnf2ps --- Automatic Railroad Diagram Drawing\\- Version 1.01}+\title{Ebnf2ps --- Automatic Railroad Diagram Drawing} \author{ Peter Thiemann, Michael Walter\\ Wilhelm-Schickard-Institut, Universität Tübingen\\ Sand 13, 72076 Tübingen\\ E-mail: \texttt{\{thiemann,walterm\}@informatik.uni-tuebingen.de} \\- \copyright 1996, Peter Thiemann}+ \copyright 1996-2014, Peter Thiemann\\+ \\+ Maintained since 2014 by Franklin Chen\\+ \texttt{franklinchen@franklinchen.com}} \maketitle Ebnf2ps was written to fill an urgent need of the author: to produce lots of@@ -39,39 +40,32 @@ \section{How to build it} -Ebnf2ps was written in Haskell, a non--strict, purely functional -programming language. To build Ebnf2ps you need a Haskell Compiler, -for example the Glasgow Haskell Compilation System-\texttt{ghc}\footnote{GHC home page URL- \texttt{http://www.dcs.glasgow.ac.uk/fp/software/ghc.html}.} or the-Haskell Compiler \texttt{hbc} by Lennart Augustsson.+Ebnf2ps was written in Haskell, a non--strict, purely functional+programming language. -\begin{enumerate}-\item Edit the Makefile to reflect your Haskell compiler, for example-\begin{verbatim}- HC= ghc-\end{verbatim}-\item Find out where your \TeX\ installation stores \texttt{.afm}-files (Adobe - font metric files). Then you can change the variable \texttt{AFMPATH} in the - Makefile or you can set the environment variable \texttt{AFMPATH} when running - the program. The \texttt{.afm}-files are absolutely necessary. If you don't - find them complain to your system administrator or get them yourself- from \\ - \texttt{ftp://ftp.adobe.com/pub/adobe/AFMFiles/}.-\item - Change the variable \texttt{RGBPATH} to contain the directory where- your X installation stores its color data base (usually- \texttt{/usr/lib/X11/rgb.txt}). This can also be corrected later with the- environment variable \texttt{RGBPATH}. There are fallback color definitions - for the 8 \emph{digital} colors (black, white, blue, green, cyan, red, magenta, - yellow), so nothing needs be done if that's enough for you.-\item - Typing \texttt{make} should produce an executable file named Ebnf2ps.-\end{enumerate}+Older distributions of this software supported multiple Haskell compilers, but+for maintenance, Ebnf2ps is now geared toward building and installing with GHC. +\section{How to use it} +\begin{enumerate}+\item Find out where your \TeX\ installation stores+ \texttt{.afm}-files (Adobe font metric files). Then set the+ environment variable \texttt{AFMPATH} when running the program. The+ \texttt{.afm}-files are absolutely necessary. If you don't find them+ complain to your system administrator or get them yourself. One+ possible source is \texttt{https://github.com/weiss/original-bsd/tree/master/local/transcript/lib}.+\item Set the environment variable \texttt{RGBPATH} to contain the+ directory where your X installation stores its color data base+ (usually \texttt{/usr/lib/X11}). There are fallback color+ definitions for the 8 \emph{digital} colors (black, white, blue,+ green, cyan, red, magenta, yellow), so nothing needs be done if+ that's enough for you. -\section{How to use it}+ Note: for Mac OS X, the default \texttt{/opt/X11/share/X11} has been+ provided and will work automatically, if you have installed X using+ XQuartz at \texttt{http://xquartz.macosforge.org/}.+\end{enumerate} The syntax is \begin{verbatim}@@ -81,37 +75,37 @@ of the input file \texttt{Grammarfile} in Sec.~\ref{sec:syntax}, and \texttt{Nonterminal} describes the nonterminals, for which diagrams are to be generated, as regular expressions (see Sec.~\ref{sec:regular}). The nonterminals-after the symbol \verb|--| are used only with the option \texttt{+unfold} (see -Sec.~\ref{sec:options} and \ref{sec:unfold}). +after the symbol \verb|--| are used only with the option \texttt{+unfold} (see+Sec.~\ref{sec:options} and \ref{sec:unfold}). \subsection{Options} \label{sec:options} -The following list shows all \textbf{options} with their \emph{parameters} and -their (default values). All distances and sizes measured in 1/100 point (1 point +The following list shows all \textbf{options} with their \emph{parameters} and+their (default values). All distances and sizes measured in 1/100 point (1 point is about 1/72 inch). Changes with respect to the last version of Ebnf2ps: some \new{}ew features, extension of grammar transformations and bug fixes. \begin{bfscript}{\qquad}-\item[-titleFont \emph{font}] (Times-Roman) PostScript font used for titles - of diagrams, any font goes here that your printer knows and for which you have +\item[-titleFont \emph{font}] (Times-Roman) PostScript font used for titles+ of diagrams, any font goes here that your printer knows and for which you have fetched the AFM files. Figure \ref{fig:AFMfonts} shows a sample list of font names. \new \item[-titleScale \emph{int}] (10) Pointsize of typeface for titles of diagrams.\new \item[-titleColor \emph{color}] (black) Color of typeface for titles of diagrams. \new \item[-ntFont \emph{font}] (Times-Roman) PostScript font used for nonterminals.-\item[-ntScale \emph{int}] (10) Pointsize of typeface for nonterminals. +\item[-ntScale \emph{int}] (10) Pointsize of typeface for nonterminals. \item[-ntColor \emph{color}] (black) Color of typeface for nonterminals. \item[-ntBg \emph{color}] (white) Background color of typeface for nonterminals.\new \item[-ntBoxColor \emph{color}] (black) Color used for outlines of boxes (nonterminals).\new-\item[-tFont \emph{font}] (Times-Roman) PostScript font used for terminal strings. +\item[-tFont \emph{font}] (Times-Roman) PostScript font used for terminal strings. \item[-tScale \emph{int}] (10) Pointsize of typeface for terminals. \item[-tColor \emph{color}] (black) Color of typeface for terminals. \item[-tBg \emph{color}] (white) Background color of typeface for terminals.\new \item[-tBoxColor \emph{color}] (black) Color used for outlines of boxes (terminals).\new \item[-borderDistX \emph{int}] (500) Horizontal distance of objects from their container.-\item[-borderDistY \emph{int}] (500) Vertical distance of objects from their container. +\item[-borderDistY \emph{int}] (500) Vertical distance of objects from their container. \item[-lineWidth \emph{int}] (30) Width of lines used for connecting lines. \item[-fatLineWidth \emph{int}] (100) Width of lines used for drawing boxes. \item[-lineColor \emph{color}] (black) Color used for connecting lines.@@ -119,14 +113,14 @@ \item[-rgbFileName \emph{filename}] (rgb.txt) File name for color definitions. \item[-happy] Accept happy format input files. Happy, written by Andy Gill and Simon Marlow, is a parser generator system (LALR(1)) for Haskell, similar to the tool yacc for C\footnote{The- program Happy is available by FTP from \texttt{ftp.dcs.glasgow.ac.uk} in \texttt{pub/haskell/happy}}.+ program Happy is available from \texttt{https://github.com/simonmar/happy}}. \item[-yacc] Accept yacc/bison format input files.\new \item[+ps] Produce encapsulated PostScript output (default). \item[+fig] Produce fig output (FORMAT 3.1).-\item[+ebnf] Produce grammar in EBNF notation (file extension ".BNF") for yacc or happy +\item[+ebnf] Produce grammar in EBNF notation (file extension ".BNF") for yacc or happy input format files.\new-\item[+simplify] Simplify productions (experimental, default: don't). -\item[+unfold] Replace nonterminals in productions (experimental, default: don't). +\item[+simplify] Simplify productions (experimental, default: don't).+\item[+unfold] Replace nonterminals in productions (experimental, default: don't). See Sec.~\ref{sec:unfold}.\new \item[-verbose] Prints some progress messages. \item[-help] Prints a brief description of the command line, the options with their defaults,@@ -134,7 +128,7 @@ \end{bfscript} \begin{figure}- \begin{center} + \begin{center} \begin{tabular}{|l|l|l|} \hline AGaramond-Bold & AGaramond-BoldItalic \\ AGaramond-Italic & AGaramond-Regular \\@@ -168,9 +162,9 @@ Times-Bold & Times-BoldItalic \\ Times-Italic & Times-Oblique \\ Times-Roman & ZapfChancery-MediumItalic \\- ZapfDingbats & \\ \hline + ZapfDingbats & \\ \hline \end{tabular}- \end{center} + \end{center} \caption{Sample list of font names} \label{fig:AFMfonts} \end{figure}@@ -179,9 +173,9 @@ \subsection{Syntax of EBNF Files} \label{sec:syntax} -The following grammar and diagrams describe the standard input format (e.g. without -\textbf{-yacc} or \textbf{-happy}) as well as the output format with the \textbf{+ebnf} -option. +The following grammar and diagrams describe the standard input format (e.g. without+\textbf{-yacc} or \textbf{-happy}) as well as the output format with the \textbf{+ebnf}+option. \begin{verbatim} File = {Production};@@ -199,7 +193,7 @@ ; String = "\"" { Character } "\"" ; Nonterminal = letter { letter | digit | "_" | "." } ;-Character = character +Character = character | ["\\"] anycharacter ; \end{verbatim} @@ -226,14 +220,14 @@ \noindent These diagrams have been produced with \texttt{Ebnf2ps -tFont Courier-Bold -tBg Black -tColor White -fatLineWidth 50- ebnf.BNF '.*'}. + ebnf.BNF '.*'}. \subsection{Syntax of regular expressions} \label{sec:regular} The regular expressions used to select nonterminal symbols have the following-syntax, which is similar to the regular expression syntax of \texttt{grep}. +syntax, which is similar to the regular expression syntax of \texttt{grep}. \begin{verbatim} Regexp = RFactor / "\\|" ["$"];@@ -255,10 +249,10 @@ \item[\texttt{*}] The preceding item will be matched zero or more times. \item[\texttt{+}] The preceding item will be matched one or more times. \end{description}-The period \texttt{.} matches any single character, and the dollar sign -\verb|$| match the empty string at the end of a line. Well, graphically, +The period \texttt{.} matches any single character, and the dollar sign+\verb|$| match the empty string at the end of a line. Well, graphically, the syntax is\footnote{The diagrams have been produced with:\\-\texttt{Ebnf2ps -titleFont AvantGarde-Book -ntBoxColor White -fatLineWidth +\texttt{Ebnf2ps -titleFont AvantGarde-Book -ntBoxColor White -fatLineWidth 50 regular.BNF '.*'}}: \begin{flushleft}@@ -288,18 +282,18 @@ regular.BNF RAtom -- Regexp}. \begin{flushleft}- \leavevmode\epsfbox{RAtom_unfold.eps} + \leavevmode\epsfbox{RAtom_unfold.eps} \end{flushleft} The following example illustrates the use of regular expressions with the option \texttt{+unfold}. In all productions of the grammar file \texttt{ebnf.BNF} --- which describes the syntax of EBNF files (see Sec.~\ref{sec:syntax}) --- the nonterminal \texttt{String} and all-nonterminals that match the pattern +nonterminals that match the pattern \begin{verbatim} .*\(t\|T\)erm.* \end{verbatim}-\noindent should be replaced. The next lines shows the command to produce +\noindent should be replaced. The next lines shows the command to produce the railroad diagrams and the progress messages of Ebnf2ps. {\fontsize{8}{9pt}@@ -314,7 +308,7 @@ ntBg (255,255,255) tBg (255,255,255) titleColor (0,0,0)-from rgbPathDefault: ["/usr/lib/X11", "/usr/local/X11R5/lib/X11"]+from rgbPathDefault: ["/usr/lib/X11", "/opt/X11/share/X11", "/usr/local/X11R5/lib/X11"] generating nonterminals: [".*"] from ebnf.BNF using input path ["."]@@ -339,27 +333,16 @@ % \subsection{Environment variables} -The format of search pathes is a colon separated list of directories. The+The format of search paths is a colon separated list of directories. The default path is inserted in place of an empty directory in the list. Any file name starting with \texttt{/} is taken as an absolute name and any file name starting with \texttt{.} is taken relative to the current working directory. \begin{description}-\item[AFMPATH] search path for Adobe font metric files. +\item[AFMPATH] search path for Adobe font metric files. \item[EBNFINPUTS] search path for grammar input files. \item[RGBPATH] search path for the color definitions. \end{description} --\section{How to change it}--In order to add new options to the program you will need a modified copy of the-program \texttt{Mkhprog} with kind permission of the author Nick North -(\texttt{ndn@seg.npl.co.uk}) which is available from URL -\begin{verbatim}-http://www-pu.informatik.uni-tuebingen.de/users/thiemann/haskell/ebnf2ps/-\end{verbatim}- \end{document} %%-
src/Ebnf2ps.hs view
@@ -27,6 +27,7 @@ import Info import System.Time import System.Environment+import System.IO.Error (catchIOError) import Control.Monad import Numeric @@ -177,7 +178,7 @@ let fileName = file++".BNF" in when ebnfOutput $ do when verbose (putStrLn ('\t':fileName))- catch (writeFile fileName (genEbnfFile file grammar_info))+ catchIOError (writeFile fileName (genEbnfFile file grammar_info)) (\e -> putStrLn ("Problem writing "++fileName)) --------------------------------------------------------------------------------@@ -242,7 +243,7 @@ writeAll ext [] = putStr "\n" writeAll ext ((ntName, content): more) =- do catch (writeFile fileName content)+ do catchIOError (writeFile fileName content) (\e -> putStr ("Problem writing "++fileName)) writeNext where
src/EbnfLayout.hs view
@@ -51,19 +51,19 @@ mkTitleNonTerminal :: String -> Int -> Int -> Container mkTitleNonTerminal str rx ry = (rx, ry, width, height, 0, AString titleClr titleFont str)- where + where width = stringWidth titleFont str height = stringHeight titleFont str mkNonTerminal :: String -> Int -> Int -> Container mkNonTerminal str rx ry = (rx, ry, width, height, 0, AString ntColor ntFont str)- where + where width = stringWidth ntFont str height = stringHeight ntFont str mkTerminal :: String -> Int -> Int -> Container mkTerminal str rx ry = (rx, ry, width, height, 0, AString tColor tFont str)- where + where width = stringWidth tFont str height = stringHeight tFont str @@ -87,7 +87,7 @@ ------------------------------------------------------------------------ withTentacle :: Int -> Int -> Int -> Production -> Container- withTentacle rx ry direction prod = + withTentacle rx ry direction prod = (rx, ry, width, height, inOutY, AComposite [contents, theLine, theArrow]) where (_, _, width1, height, inOutY, _) = contents contents = makePicture rx1 0 direction prod@@ -101,7 +101,7 @@ makePicture :: Int -> Int -> Int -> Production -> Container - makePicture rx ry direction (ProdProduction ntName ntAliases ProdEmpty) = + makePicture rx ry direction (ProdProduction ntName ntAliases ProdEmpty) = (rx, ry, width, height, 0, AComposite [content]) where content@(_,_, width2, height2,_,_) = mkTitleNonTerminal str rx2 ry2 ry1 = fatLineWidth `div` 2@@ -262,7 +262,7 @@ where f x = mkLine (x-borderDistX) inOutY borderDistX 0 -} - makePicture rx ry direction (ProdFactor [prod1,prod2]) + makePicture rx ry direction (ProdFactor [prod1,prod2]) | direction > 0 = let (_, _, width1, height1, inOutY1, _) = content1 content1 = withTentacle rx1 ry1 direction prod1@@ -359,7 +359,7 @@ variableglue | direction < 0 = [mkArrow (2*borderDistX) (inOutY'+borderDistY) (-direction)] | otherwise = [mkArrow (width-2*borderDistX) (inOutY'+borderDistY) (-direction)]- + makePicture rx ry direction (ProdRepeat1 prod) = (rx, ry, width, height, inOutY, AComposite (content:glue)) where (_, _, width', height', inOutY', gobj) = content@@ -380,7 +380,7 @@ mkLine (width-borderDistX) (inOutY+borderDistY) 0 (height'-inOutY'-borderDistY), mkLine rx' height width' 0, mkArrow (rx'+width' `div` 2) height (-direction)]- + makePicture rx ry direction (ProdRepeatWithAtom prod1 prod2) = (rx, ry, width, height, inOutY, AComposite (content1:content2:glue)) where (_, _, width1, height1, inOutY1, _) = content1@@ -412,5 +412,3 @@ variableglue | direction > 0 = [mkArrow (2*borderDistX + adjx2 + width2) (ry2+inOutY2) (-direction)] | otherwise = [mkArrow (2*borderDistX + adjx2) (ry2+inOutY2) (-direction)]--
src/Fonts.hs view
@@ -95,5 +95,3 @@ skipWhite = dropWhile isSpace skipWhiteOrSemi = dropWhile isSkipChar isSkipChar c = isSpace c || c == ';'--
src/GrammarTransform.hs view
@@ -1,15 +1,15 @@--- -*- Mode: Haskell -*- +-- -*- Mode: Haskell -*- -- Copyright 1994 by Peter Thiemann -- GrammarTransform.hs --- some transformations on parse trees -- Author : Peter Thiemann -- Created On : Thu Oct 21 16:44:17 1993 -- simplifying transformations on grammars -module GrammarTransform - (simplify, - happysimplify, happysimplifyExt, +module GrammarTransform+ (simplify,+ happysimplify, happysimplifyExt, yaccsimplify, yaccsimplifyExt,- freents, simp0) + freents, simp0) where import AbstractSyntax@@ -22,11 +22,11 @@ simplify :: [Production] -> [Production]-simplify = map (simplify2' . simplify') . simp3 -happysimplify = simp0 -yaccsimplify = simp0 -happysimplifyExt = (\ p -> (fst p, map (simplify2' . simplify') (snd p))) . (simp0 . simp3o) -yaccsimplifyExt = (\ p -> (fst p, map (simplify2' . simplify') (snd p))) . (simp0 . simp3o) +simplify = map (simplify2' . simplify') . simp3+happysimplify = simp0+yaccsimplify = simp0+happysimplifyExt = (\ p -> (fst p, map (simplify2' . simplify') (snd p))) . (simp0 . simp3o)+yaccsimplifyExt = (\ p -> (fst p, map (simplify2' . simplify') (snd p))) . (simp0 . simp3o) @@ -56,18 +56,18 @@ -- X | gamma X ---> [gamma| X rightpart2'r [p] x = (x `eqProduction` p, [])-rightpart2'r ps x = - let l = last ps +rightpart2'r ps x =+ let l = last ps n = length ps in (x `eqProduction` l, init ps)- + rightParts rest rest' =- let l' = last rest' + let l' = last rest' in case (rightpart2'r rest l') of (True, front) -> ROk front (init rest') l' (False, _) -> RKo- -simp2'r' term@(ProdTerm prods) = ++simp2'r' term@(ProdTerm prods) = let res = simplifier term in case res of (ProdFactor _) -> res@@ -75,16 +75,16 @@ _ -> term simp2'r (first@(ProdFactor (p:rest)): next@(ProdFactor (p':rest')): more) =- case (rest, rest') of - ([], []) + case (rest, rest') of+ ([], []) | p `eqProduction` p' -> simp2'r (ProdFactor [p]: more) | otherwise -> first: simp2'r (next:more)- ([], _) -> case (rightpart2'r rest' p) of + ([], _) -> case (rightpart2'r rest' p) of (True,front) -> simp2'r (ProdFactor [ProdOption (ProdFactor (p':front)), p] : more)- (False,_) -> first: simp2'r (next:more) - (_, []) -> case (rightpart2'r rest p') of + (False,_) -> first: simp2'r (next:more)+ (_, []) -> case (rightpart2'r rest p') of (True, front) -> simp2'r (ProdFactor [ProdOption (ProdFactor (p:front)),p']: more)- (False,_) -> first: simp2'r (next:more) + (False,_) -> first: simp2'r (next:more) (_, _) -> case (rightParts rest rest') of RKo -> first: simp2'r (next: more) (ROk front1 front2 l) -> let t = simp2'r' (ProdTerm [ProdFactor (p:front1), ProdFactor (p':front2)])@@ -92,47 +92,47 @@ simp2'r [p] = [p] simp2'r [] = [] - + -- simp2 gets the body of a ProdTerm as an argument--- and provides the transformations +-- and provides the transformations -- X gamma | X delta ---> X (gamma | delta) -- X gamma | X ---> X [ gamma ] -- X | X gamma ---> X [ gamma ]-getPrefixes ps1@(p1:_:_) ps2@(p2:_:_) firsts +getPrefixes ps1@(p1:_:_) ps2@(p2:_:_) firsts | p1 `eqProduction` p2 = getPrefixes (tail ps1) (tail ps2) (firsts++[p1])-getPrefixes ps1 ps2 firsts = (firsts, ps1, ps2) +getPrefixes ps1 ps2 firsts = (firsts, ps1, ps2) lookahead x more = partition (la x) more where la x (ProdFactor (p:_)) = x `eqProduction` p la x _ = False -simplifier term@(ProdTerm [a,b]) = +simplifier term@(ProdTerm [a,b]) = case (a,b) of (ProdFactor [ProdTerm psa@(x:y:_)], ProdFactor [ProdTerm psb@(x':y':_)]) -> ProdTerm (psa++psb) (ProdFactor [ProdTerm psa@(x:y:_)], _) -> ProdTerm (psa++[b]) (_, ProdFactor [ProdTerm psb@(x':y':_)]) -> ProdTerm (a:psb)- (_,_) -> term + (_,_) -> term simplifier term = term- -simp2' term@(ProdTerm prods) = ++simp2' term@(ProdTerm prods) = let res = simplifier term in case res of (ProdFactor _) -> res (ProdTerm ps) -> ProdTerm (simp2 ps) _ -> term- - ++ simp2 (ProdFactor (p:rest): next@(ProdFactor (p':rest')): more) | p `eqProduction` p' = case (rest, rest') of ([], []) -> simp2 (ProdFactor [p]: more)- ([], _) -> case (lookahead p more) of - ([],_) -> simp2 (ProdFactor [p, ProdOption (ProdFactor rest')]: more) + ([], _) -> case (lookahead p more) of+ ([],_) -> simp2 (ProdFactor [p, ProdOption (ProdFactor rest')]: more) (others,more') -> simp2 ((next:others)++(ProdFactor [p]:more')) (_, []) -> simp2 (ProdFactor [p, ProdOption (ProdFactor rest)]: more)- (_, _) -> let (firsts,rs,rs') = getPrefixes rest rest' [] + (_, _) -> let (firsts,rs,rs') = getPrefixes rest rest' [] pfirsts = p:firsts next = simp2' (ProdTerm [ProdFactor rs, ProdFactor rs']) in simp2 ((ProdFactor (pfirsts++[next])):more)@@ -187,17 +187,17 @@ -- [happyInput && yaccInput]--- simp0 gets a list of productions and looks for empty productions on the right +-- simp0 gets a list of productions and looks for empty productions on the right -- side of happy rule and provides the transformations--- N -> X | . ---> N -> [X]. +-- N -> X | . ---> N -> [X]. -- and N -> X1 | X2 | ... | Xk | . ---> N -> [X1| X2 | ... | Xk]. -simp0' prod@(ProdProduction nt nts p@(ProdTerm prods)) = - case (partition (\p -> not (p `eqProduction` emptyProd)) prods) of +simp0' prod@(ProdProduction nt nts p@(ProdTerm prods)) =+ case (partition (\p -> not (p `eqProduction` emptyProd)) prods) of ([], _) -> ([nt], ProdProduction nt nts ProdEmpty) (prods', []) -> ([],prod) (prods', (x:_)) -> ([], ProdProduction nt nts (ProdOption (ProdTerm prods')))- where emptyProd = ProdFactor [] + where emptyProd = ProdFactor [] simp0' prod = ([],prod) simp0 prods = foldr f ([],[]) (map simp0' prods)@@ -215,10 +215,10 @@ -- [simp3o'l] -- A -> A gamma_1 | ... | A gamma_k | delta --> A -> delta { gamma_1 | ... | gamma_k }--- A -> A gamma_1 | ... | A gamma_k | 'empty' --> A -> { gamma_1 | ... | gamma_k } +-- A -> A gamma_1 | ... | A gamma_k | 'empty' --> A -> { gamma_1 | ... | gamma_k } ----- A -> A gamma_1 | ... | A gamma_k | delta_1 | ... | delta_k | 'empty' --- --> +-- A -> A gamma_1 | ... | A gamma_k | delta_1 | ... | delta_k | 'empty'+-- --> -- A -> [delta_1 | ... | delta_k] { gamma_1 | ... | gamma_k } leftParty' nt (ProdTerm ps) = foldr f ([], [], False) ps@@ -228,8 +228,8 @@ f p (yes, no,emptyProds) = (yes, p:no,emptyProds) -- repeatWithAtom'l: X {delta X} --> X / delta-repeatWithAtom'l prod@(ProdFactor [p1,p2]) = - case (p1,p2) of +repeatWithAtom'l prod@(ProdFactor [p1,p2]) =+ case (p1,p2) of (front@(ProdTerm [ProdFactor [x]]), ProdRepeat (ProdTerm [ProdFactor p2s@(a:b:_)])) -> if (last p2s) `eqProduction` x then ProdRepeatWithAtom front (ProdFactor (init p2s))@@ -256,13 +256,13 @@ -- [simp3o'r] -- A -> gamma_1 A | ... | gamma_k A | delta --> A -> { gamma_1 | ... | gamma_k } delta -- A -> gamma_1 A | ... | gamma_k A | 'empty' --> A -> { gamma_1 | ... | gamma_k }--- A -> gamma_1 A | ... | gamma_k A | delta_1 | ... | delta_k | 'empty' --- --> +-- A -> gamma_1 A | ... | gamma_k A | delta_1 | ... | delta_k | 'empty'+-- --> -- A -> { gamma_1 | ... | gamma_k } [delta_1 | ... | delta_k] -- repeatWithAtom'r: {X delta} X --> X / delta-repeatWithAtom'r prod@(ProdFactor [p1,p2]) = - case (p1,p2) of +repeatWithAtom'r prod@(ProdFactor [p1,p2]) =+ case (p1,p2) of (ProdRepeat (ProdTerm [ProdFactor p2s@(a:b:_)]), front@(ProdTerm [ProdFactor [x]])) -> if a `eqProduction` x then ProdRepeatWithAtom front (ProdFactor (tail p2s))@@ -278,7 +278,7 @@ simp3o'r prod@(ProdProduction nt nts p@(ProdTerm _)) = case rightParty' nt p of- (righties@(_:_), [], _) -> + (righties@(_:_), [], _) -> ProdProduction nt nts (ProdRepeat (ProdTerm righties)) (righties@(_:_), others@(_:_), True) ->@@ -307,7 +307,7 @@ simplify' (ProdProduction s1 s2 prod) = ProdProduction s1 s2 (simplify' prod)-simplify' (ProdFactor prods) = ProdFactor (simp1 (map simplify' prods)) +simplify' (ProdFactor prods) = ProdFactor (simp1 (map simplify' prods)) simplify' (ProdNonterminal s) = ProdNonterminal s simplify' (ProdTerminal s) = ProdTerminal s simplify' (ProdOption prod) = ProdOption (simplify' prod)@@ -317,10 +317,10 @@ simplify' (ProdPlus) = ProdPlus simplify' (ProdEmpty) = ProdEmpty simplify' (ProdSlash prod) = ProdSlash (simplify' prod)-simplify' (ProdTerm prods) = ProdTerm ((simp2 . map simplify') prods) +simplify' (ProdTerm prods) = ProdTerm ((simp2 . map simplify') prods) simplify2' (ProdProduction s1 s2 prod) = ProdProduction s1 s2 (simplify2' prod)-simplify2' (ProdFactor prods) = ProdFactor (simp1 (map simplify2' prods)) +simplify2' (ProdFactor prods) = ProdFactor (simp1 (map simplify2' prods)) simplify2' (ProdNonterminal s) = ProdNonterminal s simplify2' (ProdTerminal s) = ProdTerminal s simplify2' (ProdOption prod) = ProdOption (simplify2' prod)@@ -352,4 +352,3 @@ eqProduction (ProdEmpty) (ProdEmpty) = True eqProduction (ProdSlash p) (ProdSlash p') = eqProduction p p' eqProduction _ _ = False-
src/GrammarUnfold.hs view
@@ -1,9 +1,9 @@--- -*- Mode: Haskell -*- +-- -*- Mode: Haskell -*- -- Copyright © 1996, 1998 by Peter Thiemann--- GrammarUnfold.hs +-- GrammarUnfold.hs -- main functions for ebnfInput, yaccInput and happyInput. -- Initial revision--- +-- -- Last Modified By: M. Walter -- @@ -13,9 +13,9 @@ rawEBNFInput, rawHappyInput, rawYaccInput, getNonterminals, getTerminals, getReduces, getProdsInfo, getEmpties, getRedProds ) where- + import AbstractSyntax-import GrammarTransform +import GrammarTransform import StringMatch (stringMatch) import Data.List @@ -25,7 +25,7 @@ keysFM = Data.Map.keys eltsFM = Data.Map.elems listToFM = Data.Map.fromList-lookupWithDefaultFM theMap theDefault theKey = +lookupWithDefaultFM theMap theDefault theKey = Data.Map.findWithDefault theDefault theKey theMap type UnfoldInfo = FiniteMap String Production@@ -34,12 +34,12 @@ disjointLists (a:as) bs | a `elem` bs = False | otherwise = disjointLists as bs -type Alphabet = ([String], -- nonterminals - [String]) -- terminals +type Alphabet = ([String], -- nonterminals+ [String]) -- terminals data GrammarInfo = GrammarInfo- [Production] -- all productions + [Production] -- all productions [String] -- Nonterminals [String] -- Terminals [String] -- Nonterminals (option: +unfold)@@ -50,10 +50,10 @@ -- happyInput -rawHappyInput :: Bool -- flag: +ebnf - -> Bool -- flag: +simplify - -> Bool -- flag: +unfold - -> [String] +rawHappyInput :: Bool -- flag: +ebnf+ -> Bool -- flag: +simplify+ -> Bool -- flag: +unfold+ -> [String] -> [Production] -> GrammarInfo rawHappyInput ebnfoutput doSimplify True unfold_nts prods = let (nts, prods') = (if doSimplify then happysimplifyExt else happysimplify) prods@@ -61,59 +61,59 @@ (nonterminals, terminals) | ebnfoutput = allSymbols prods'' | otherwise = ([], []) in GrammarInfo prods'' nonterminals terminals rnts names nts- + rawHappyInput ebnfoutput doSimplify False _ prods =- let (nts ,prods') = (if doSimplify then happysimplifyExt else happysimplify) prods + let (nts ,prods') = (if doSimplify then happysimplifyExt else happysimplify) prods (nonterminals, terminals) | ebnfoutput = allSymbols prods' | otherwise = ([], [])- in GrammarInfo prods' nonterminals terminals [] [] nts + in GrammarInfo prods' nonterminals terminals [] [] nts -- yaccInput -rawYaccInput :: Bool -- flag: +ebnf - -> Bool -- flag: +simplify - -> Bool -- flag: +unfold - -> [String] +rawYaccInput :: Bool -- flag: +ebnf+ -> Bool -- flag: +simplify+ -> Bool -- flag: +unfold+ -> [String] -> [Production] -> GrammarInfo rawYaccInput ebnfoutput doSimplify True unfold_nts prods = let (nts, prods') = (if doSimplify then yaccsimplifyExt else yaccsimplify) prods (rnts, names, prods'') = unfoldGrammar unfold_nts prods' ((nonterminals , terminals), oprods) | ebnfoutput = (allSymbols prods'', reverse prods'') | otherwise = (([], []), prods'')- in GrammarInfo oprods nonterminals terminals rnts names nts - + in GrammarInfo oprods nonterminals terminals rnts names nts+ rawYaccInput ebnfoutput doSimplify False _ prods =- let (nts ,prods') = (if doSimplify then yaccsimplifyExt else yaccsimplify) prods + let (nts ,prods') = (if doSimplify then yaccsimplifyExt else yaccsimplify) prods ((nonterminals, terminals), oprods) | ebnfoutput = (allSymbols prods', reverse prods') | otherwise = (([], []), prods')- in GrammarInfo oprods nonterminals terminals [] [] nts + in GrammarInfo oprods nonterminals terminals [] [] nts -- ebnfInput -rawEBNFInput :: Bool -- flag: +simplify - -> Bool -- flag: +unfold +rawEBNFInput :: Bool -- flag: +simplify+ -> Bool -- flag: +unfold -> [String] -> [Production] -> GrammarInfo rawEBNFInput doSimplify True unfold_nts prods = let prods' = if doSimplify then simplify prods else prods (rnts, names, prods'') = unfoldGrammar unfold_nts prods' in GrammarInfo prods'' [] [] rnts names []- -rawEBNFInput doSimplify False _ prods = ++rawEBNFInput doSimplify False _ prods = GrammarInfo (if doSimplify then simplify prods else prods) [] [] [] [] [] -------------------------------------------------------------------------------------------------- -unfoldGrammar :: [String] - -> [Production] +unfoldGrammar :: [String]+ -> [Production] -- (nonterminals, nonterminals with a replacement, new productions) -> ([String], [String], [Production]) unfoldGrammar [] prods = ([], [], prods) unfoldGrammar rnts prods = unfoldGrammar' rnts prods- + unfoldGrammar' :: [String] -> [Production] -> ([String],[String],[Production]) unfoldGrammar' [] prods = ([], [], prods) unfoldGrammar' rnts prods =@@ -121,11 +121,11 @@ where (rntsInfo,reducedProds, prodsToUnfold, rest) = splitInputGrammar rnts prods rntsFM = listToFM rntsInfo prods' = map (unfoldSimp . unfoldProd []) prodsToUnfold- + unfoldProd unf (ProdProduction nt ntAliases p) = ProdProduction nt ntAliases (unfoldProd unf p) unfoldProd unf (ProdTerm prods) = ProdTerm (map (unfoldProd unf) prods) unfoldProd unf (ProdFactor prods) = ProdFactor (map (unfoldProd unf) prods)- unfoldProd unf p@(ProdNonterminal nt) + unfoldProd unf p@(ProdNonterminal nt) | nt `elem` unf = p | otherwise = unfoldProd (nt:unf) $ lookupWithDefault p nt rntsFM unfoldProd unf (ProdOption p) = ProdOption (unfoldProd unf p)@@ -134,7 +134,7 @@ unfoldProd unf (ProdRepeat1 p) = ProdRepeat1 (unfoldProd unf p) unfoldProd unf (ProdSlash p) = ProdSlash (unfoldProd unf p) unfoldProd unf p = p- + unfoldSimp (ProdProduction nt ntAliases p) = ProdProduction nt ntAliases (unfoldSimp p) unfoldSimp (ProdTerm prods) = ProdTerm (map unfoldSimp prods) unfoldSimp (ProdFactor prods) = ProdFactor (map unfoldSimp prods)@@ -147,12 +147,12 @@ unfoldSimp (ProdRepeat1 p) = ProdRepeat1 (unfoldSimp p) unfoldSimp (ProdSlash p) = ProdSlash (unfoldSimp p) unfoldSimp p = p- + lookupWithDefault :: Production -> String -> UnfoldInfo -> Production lookupWithDefault deflt nt info = case (lookupWithDefaultFM info deflt nt) of- (ProdProduction nt' _ ProdEmpty) -> deflt + (ProdProduction nt' _ ProdEmpty) -> deflt (ProdProduction _ _ p) -> p p -> p @@ -169,7 +169,7 @@ allSymbols :: [Production] -> Alphabet-allSymbols prodsInput = +allSymbols prodsInput = (\(nts,ts) -> (nts, nub ts)) $ (foldr f ([],[]) prodsInput) where f (ProdProduction nt _ p) (nts, ts) = (nt:nts, (nub (freets p))++ts) -- compute the set of all terminals in a Production@@ -184,14 +184,11 @@ freets (ProdPlus) = [] freets (ProdEmpty) = [] freets (ProdSlash p) = freets p- - ++ getProdsInfo (GrammarInfo prods _ _ _ _ _) = prods getNonterminals (GrammarInfo _ nts _ _ _ _) = nts getTerminals (GrammarInfo _ _ ts _ _ _) = ts getReduces (GrammarInfo _ _ _ rs _ _) = rs getRedProds (GrammarInfo _ _ _ _ rp _) = rp getEmpties (GrammarInfo _ _ _ _ _ es) = es-- -
src/IOSupplement.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE CPP #-}--- -*- Mode: Haskell -*- +-- -*- Mode: Haskell -*- -- Copyright 1996 by Peter Thiemann -- IOSupplement.hs --- some enhancements to the IO operations -- Author : Peter Thiemann@@ -8,7 +8,7 @@ -- Last Modified On: Thu Dec 2 10:37:39 1993 -- Update Count : 13 -- Status : Unknown, Use with caution!--- +-- -- $Log: IOSupplement.hs,v $ -- Revision 1.3 1999/08/15 20:28:48 thiemann -- *** empty log message ***@@ -29,9 +29,8 @@ module IOSupplement (getPath, readPathFile, readRGBPathFile) where -import System.IO-import System.IO.Error-import System.Environment+import System.Environment (getEnv)+import System.IO.Error (tryIOError, catchIOError, isDoesNotExistError) #ifdef __HBC__ ioError = fail@@ -43,10 +42,10 @@ -- accepts the name of an environment variable and a [String] of default paths -- and returns the default or the resulting search path . getPath envVar dflt =- catch + catchIOError ( do path <- getEnv envVar return (manglePath path dflt) )- ( \err -> if (isDoesNotExistError err) + ( \err -> if (isDoesNotExistError err) then return dflt else ioError err ) @@ -63,18 +62,18 @@ -------------------------------------------------------------------------------- readPathFile :: [String] -> String -> IO String--- readPathFile searchPath fileName +-- readPathFile searchPath fileName -- scan searchPath for fileName and read it -- unless fileName starts with '.' or is absolute (starts with '/') ---readPathFile _ fileName@('/':_) = readFile fileName -readPathFile _ fileName@('.':_) = readFile fileName +readPathFile _ fileName@('/':_) = readFile fileName+readPathFile _ fileName@('.':_) = readFile fileName readPathFile [] fileName =- putStr ("readPathFile failed on : " ++ fileName) >>+ putStrLn ("readPathFile failed on : " ++ fileName) >> error "Exit Ebnf2ps (C) Peter Thiemann\n" readPathFile (path: paths) fileName = -- putStr ("trying in "++path++" : "++fullName ++"\n") >>- try (readFile fullName) >>= \ result ->+ tryIOError (readFile fullName) >>= \ result -> case result of Left _ -> readPathFile paths fileName Right cont -> return cont@@ -84,22 +83,22 @@ readRGBPathFile :: [String] -> String -> IO String--- -readRGBPathFile _ fileName@('/':_) = tryreadFile fileName -readRGBPathFile _ fileName@('.':_) = tryreadFile fileName +--+readRGBPathFile _ fileName@('/':_) = tryreadFile fileName+readRGBPathFile _ fileName@('.':_) = tryreadFile fileName readRGBPathFile [] fileName =- putStr ("readPathFile failed on : " ++ fileName) >> + putStrLn ("readPathFile failed on : " ++ fileName) >> return "" readRGBPathFile (path: paths) fileName =- try (readFile fullName) >>= \ result ->+ tryIOError (readFile fullName) >>= \ result -> case result of- Left _ -> readRGBPathFile paths fileName + Left _ -> readRGBPathFile paths fileName Right cont -> return cont where fullName = path ++ '/': fileName tryreadFile :: String -> IO String tryreadFile file =- try (readFile file) >>= \result ->- return (case result of + tryIOError (readFile file) >>= \result ->+ return (case result of Left _ -> ""- Right str -> str) + Right str -> str)
src/Lexer.hs view
@@ -17,7 +17,7 @@ showsPrec n (Symbol "\n") = showString "\n" showsPrec n (Symbol s) = showChar '<' . showString s . showString "> " showsPrec n (String s) = showChar '"' . showString s . showString "\" "- showsPrec n (Number s) = showChar ' ' . showString s . showChar ' ' + showsPrec n (Number s) = showChar ' ' . showString s . showChar ' ' showList [] = id showList (x:xs) = shows x . showList xs @@ -34,10 +34,10 @@ where (oneChar, srest) = lexChar cs lexer ((c@'\n'):cs) = Symbol [c]: lexer cs lexer (c:cs)- | isNewline c = Symbol [c]: lexer cs + | isNewline c = Symbol [c]: lexer cs | isSpace c = lexer cs | isDot c = Ident (c:idchars): lexer irest -- 1.01- | isAlpha c = Ident (c:idchars): lexer irest + | isAlpha c = Ident (c:idchars): lexer irest | isSymbolChar c = Symbol(c:sychars): lexer srest | isDigit c = Number (c:digits): lexer nrest | otherwise = Symbol([c]): lexer cs@@ -84,4 +84,3 @@ isString _ = False getString (String s) = s-
src/PathExpansion.hs view
@@ -1,13 +1,12 @@ {-# LANGUAGE CPP #-}-module PathExpansion (expandPath) +module PathExpansion (expandPath) where- + #ifdef __GLASGOW_HASKELL__-import System.Directory-import System.Environment+import System.Environment (getEnv)+import System.Directory (getDirectoryContents, doesDirectoryExist) import Control.Monad-import System.IO-import System.IO.Error+import System.IO.Error (catchIOError, isDoesNotExistError) import System.Posix.User (getUserEntryForName, homeDirectory) #endif @@ -83,8 +82,8 @@ return(Brace(braceIn):(rest)) replaceHome (x:xs) = do t <- replaceHome xs return (x:t)- + -------- Ersetzen der Umgebungsvariablen -------------- replaceEnv :: [PathSpec] -> IO [PathSpec]@@ -100,9 +99,9 @@ return (x:t) getEnv2 t- |t == "HOME" = catch (getEnv t) (\e -> if isDoesNotExistError e then return ['.'] else ioError e)- |otherwise = catch (getEnv t) (\e -> if isDoesNotExistError e then return [] else ioError e)-------------------------------------------------------- + |t == "HOME" = catchIOError (getEnv t) (\e -> if isDoesNotExistError e then return ['.'] else ioError e)+ |otherwise = catchIOError (getEnv t) (\e -> if isDoesNotExistError e then return [] else ioError e)+------------------------------------------------------- ---------------- Teilen nach Doppelpunkt -------------- isColon :: PathSpec -> Bool@@ -120,18 +119,18 @@ rpBrace :: [[PathSpec]] -> [[PathSpec]] rpBrace [] = []-rpBrace (y:ys) = ((replaceBrace [] y) ++ (rpBrace ys)) +rpBrace (y:ys) = ((replaceBrace [] y) ++ (rpBrace ys)) replaceBrace :: [PathSpec] -> [PathSpec] -> [[PathSpec]] replaceBrace dummy [] = [dummy]-replaceBrace dummy (Brace t : xs) = [foldr (++) [] (dummy:([a]++[b]))| q <- replaceColon t,a<- replaceBrace [] q, b <- replaceBrace [] xs] +replaceBrace dummy (Brace t : xs) = [foldr (++) [] (dummy:([a]++[b]))| q <- replaceColon t,a<- replaceBrace [] q, b <- replaceBrace [] xs] replaceBrace dummy (x:xs) = replaceBrace (dummy ++ [x]) xs ------------------------------------------------------- ------- Subdirectory ---------------------------------- expandDirs :: [String] -> IO [String] expandDirs [] = return []-expandDirs (path:paths) = +expandDirs (path:paths) = do newpath <- expandOnePath [] path newpaths <- expandDirs paths return (newpath++newpaths)@@ -139,14 +138,14 @@ expandOnePath :: String -> String -> IO [String] expandOnePath anfang [] = return [anfang] expandOnePath anfang (x:xs)- |x == '/' && nextSign xs '/' = + |x == '/' && nextSign xs '/' = do allDirs <- expandAllSubPaths [(anfang ++ [x])] const <- getConstraints (xs,[]) --expandDirs (map (++(fst(getConstraints (xs,[])))) [sub|sub <- allDirs, elemSub(reverse(snd(getConstraints (xs,[])))) (reverse sub)]) expandDirs (map (++ (fst const)) [sub|sub <- allDirs, elemSub(reverse(snd const)) (reverse sub)]) |otherwise = do expandOnePath (anfang ++ [x]) xs- + getConstraints :: (String,String) -> IO (String,String) getConstraints ([],ys) = return ([],ys) getConstraints (['/'],ys) = return ([],ys)@@ -171,7 +170,7 @@ subdirs <- expandAllSubPaths (dirs++xs) return (x:subdirs) -searchForDirs :: FilePath -> IO [FilePath] +searchForDirs :: FilePath -> IO [FilePath] searchForDirs dir = do all_dir <- getDirectoryContents dir dir_input <- filterM (specialPath) all_dir filterM (doesDirectoryExist) (map (dir ++) dir_input)@@ -186,7 +185,7 @@ checkPath path |last path == '/' = path |otherwise = path++"/"- + ---------------------------------------------------------------------------------- #else -- for Hugs 1.4
src/Version.hs view
@@ -1,2 +1,2 @@ module Version where-version="1.0.8 (Jun 2010)"+version="1.0.12 (October 2014)"
src/rgbpath.h view
@@ -1,1 +1,2 @@- "/usr/lib/X11"+ "/usr/lib/X11",+ "/opt/X11/share/X11"