source: liacs/ai/sudoku/latex/sudoku.ps@ 86

Last change on this file since 86 was 2, checked in by Rick van der Zwet, 15 years ago

Initial import of data of old repository ('data') worth keeping (e.g. tracking
means of URL access statistics)

File size: 195.7 KB
Line 
1%!PS-Adobe-2.0
2%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
3%%Title: sudoku.dvi
4%%Pages: 31
5%%PageOrder: Ascend
6%%BoundingBox: 0 0 595 842
7%%DocumentFonts: CMR17 CMR12 CMBX12 CMR8 CMTT10
8%%DocumentPaperSizes: a4
9%%EndComments
10%DVIPSWebPage: (www.radicaleye.com)
11%DVIPSCommandLine: dvips -o sudoku.ps sudoku.dvi
12%DVIPSParameters: dpi=600
13%DVIPSSource: TeX output 2006.03.13:1327
14%%BeginProcSet: tex.pro 0 0
15%!
16/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
17N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
18mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
190 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
20landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
21mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
22matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
23exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
24statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
25N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
26/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
27/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
28array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
29df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
30definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
31}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
32B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
331 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
34/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
35setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
36restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
37/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
38}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
39bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
40mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
41SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
42userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
431000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
44index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
45/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
46/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
47(LaserWriter 16/600)]{A length product length le{A length product exch 0
48exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
49end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
50grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
51imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
52exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
53fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
54delta 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}
55B/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{
56p -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
57rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
58
59%%EndProcSet
60%%BeginProcSet: texps.pro 0 0
61%!
62TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
63index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
64exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
65ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
66pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
67div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
68/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
69definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
70sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
71mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
72exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
73forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
74end
75
76%%EndProcSet
77%%BeginProcSet: special.pro 0 0
78%!
79TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
80/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
81/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
82/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
83/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
84X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
85/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
86/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
87{userdict/md get type/dicttype eq{userdict begin md length 10 add md
88maxlength ge{/md md dup length 20 add dict copy def}if end md begin
89/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
90atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
91itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
92transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
93curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
94pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
95if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
96-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
97get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
98yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
99neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
100noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
10190 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
102neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1031 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
1042 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
105-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
106TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
107Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
108}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
109save N userdict maxlength dict begin/magscale true def normalscale
110currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
111/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
112psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
113psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
114TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
115@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
116newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
117closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
118/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
119currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
120N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
121neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
122rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
123scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
124lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
125ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
126/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
127pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
128restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
129/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
130setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
131moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
132matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
133savematrix setmatrix}N end
134
135%%EndProcSet
136%%BeginFont: CMTT10
137%!PS-AdobeFont-1.1: CMTT10 1.00B
138%%CreationDate: 1992 Apr 26 10:42:42
139% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
14011 dict begin
141/FontInfo 7 dict dup begin
142/version (1.00B) readonly def
143/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
144/FullName (CMTT10) readonly def
145/FamilyName (Computer Modern) readonly def
146/Weight (Medium) readonly def
147/ItalicAngle 0 def
148/isFixedPitch true def
149end readonly def
150/FontName /CMTT10 def
151/PaintType 0 def
152/FontType 1 def
153/FontMatrix [0.001 0 0 0.001 0 0] readonly def
154/Encoding 256 array
1550 1 255 {1 index exch /.notdef put} for
156dup 33 /exclam put
157dup 34 /quotedbl put
158dup 35 /numbersign put
159dup 36 /dollar put
160dup 37 /percent put
161dup 38 /ampersand put
162dup 39 /quoteright put
163dup 40 /parenleft put
164dup 41 /parenright put
165dup 42 /asterisk put
166dup 43 /plus put
167dup 44 /comma put
168dup 45 /hyphen put
169dup 46 /period put
170dup 47 /slash put
171dup 48 /zero put
172dup 49 /one put
173dup 50 /two put
174dup 51 /three put
175dup 52 /four put
176dup 53 /five put
177dup 54 /six put
178dup 55 /seven put
179dup 56 /eight put
180dup 57 /nine put
181dup 58 /colon put
182dup 59 /semicolon put
183dup 60 /less put
184dup 61 /equal put
185dup 62 /greater put
186dup 63 /question put
187dup 65 /A put
188dup 66 /B put
189dup 67 /C put
190dup 68 /D put
191dup 69 /E put
192dup 70 /F put
193dup 71 /G put
194dup 72 /H put
195dup 73 /I put
196dup 76 /L put
197dup 77 /M put
198dup 78 /N put
199dup 79 /O put
200dup 80 /P put
201dup 82 /R put
202dup 83 /S put
203dup 84 /T put
204dup 85 /U put
205dup 87 /W put
206dup 88 /X put
207dup 89 /Y put
208dup 90 /Z put
209dup 91 /bracketleft put
210dup 92 /backslash put
211dup 93 /bracketright put
212dup 95 /underscore put
213dup 96 /quoteleft put
214dup 97 /a put
215dup 98 /b put
216dup 99 /c put
217dup 100 /d put
218dup 101 /e put
219dup 102 /f put
220dup 103 /g put
221dup 104 /h put
222dup 105 /i put
223dup 106 /j put
224dup 107 /k put
225dup 108 /l put
226dup 109 /m put
227dup 110 /n put
228dup 111 /o put
229dup 112 /p put
230dup 113 /q put
231dup 114 /r put
232dup 115 /s put
233dup 116 /t put
234dup 117 /u put
235dup 118 /v put
236dup 119 /w put
237dup 120 /x put
238dup 121 /y put
239dup 122 /z put
240dup 123 /braceleft put
241dup 124 /bar put
242dup 125 /braceright put
243readonly def
244/FontBBox{-4 -235 731 800}readonly def
245currentdict end
246currentfile eexec
247D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
248016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
2499098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
250D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
251469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2522BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
25338DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
254D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
255EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
256A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
257F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
2584DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
2596A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
260A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
261E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
2621E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
263452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
2648670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
2655D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
266DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
267BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
268741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
269E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
270E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
271D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
272C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
273726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
274CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B
2757D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7
2767D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9
277EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6
278DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437
279ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53
280B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A087FD1752DF68F55B52B4DA7
28148030F2AA7E570B3D56C4EAD367B9B73FBC0A7356253233006178B9A6BC19081
282B815B5988AE76FE6FAFD7AC239072B1106A3F509381AAEE79B2F2154CAC4727B
283D199CDC8B4D05DF4BA006982512ABD7539E28D937B0F87FF79A3F84C29ECF943
284A8DCB8BDF8EA9E7A0E7CD60BC2308C96B3E889C797D0FF28FF4847016B3DA141
285E76FC6BE78A6EE9CE07E651FF86E720A1A1F075972D36E5C55162E3FE26BCE3A
286814BFEB12D4C5FD24340CFFED499C7CA183E57EC4F12CFFBE3291D43F7270575
287C6C3306F832EF182ADD0AA14C4D8669A17C09F632406AFA195F90C4DDC39779E
288EC0A77E590211592D6EE19563963225C06C2F13265EBB5A6CFB7C17D9E77650D
28911958305727AF662AE73AD0E3ED5F7E7086C5A0C3548A8129575980B06C715AF
290DD55C8DF869BED0A7883491030B1A7E82C5EB04E5A7D952E716DD8F2EF6275EE
291087614CFAB55FCE2BBECD7E8D9C90FD8359E929D5E0A416A23BD58158318B4FF
29287B095EB63F7F052B3A77F136FD66EB2C52BD46CD7DB3091A4B78A607112B12C
2934D171B2A00B78B0E1C44B0D90C20D9244281F5123DC1F6063F91E9E3E48DE78B
294C862D848BAD073A4FCB5EEC9FF54B5AB8E234CCC3C7439C62ABC4A13EF1B8897
295ABBF21F900C564C9A305FC36FC7224932F766E6E72C2EBB55953DFE2AFC2E3FD
29633A0C6F0FDFF086E9FD796E7242596AE85B877223532667625E371D2156E4C04
2970D7FFCD3337B93DF066CB6FE1E13960719EB7CB409EE805C08ACD2C06303ED9C
298E34C898787A43C1B428B896551C6FEB50A831C6F8CE2073EFC662EC286CB7555
299A3B42E58772E82FEE206948B8C439FEC5E4ECB9E11DC3A4CBC7611E30890E408
300637A01A2118441B4F9467A98BB2A1B03BB2F5D8E3DB7D1D15C188D9E856088EC
301B762F07B1C06024F7EF53A2FBD60C0A1F4C0275D07164545250ECEEF8CB15B04
302A2D8AC44DDE818C59D349C7B077EBAFF78C7D0E8958413A47EC28B75A619AC4D
3032BBED8D5EF893FC57782A64418133FA027D3F00C333463753AC535A735850690
304D15B236BD78CAF3924339339E0EA80D6136555EB2674E4495ACB9323C0CADC5F
305554EF8C4F8D29C486577DB286B9B540D80AD76676928DB3AE34EF58099424DED
3069D00505C5DFA10AD6FAAEF84588DBAFE29092C52BA512357870EB09884C00C32
30769BAC7BE19FDF1CB7686479C89F6BC61132B4B0E8AD3DA0F8AB6DB997D834B36
308E12336B3AB239973DC4CEBD2E9659AD7BF3F1AC36E87C3A1D45548A69C2A8BF0
309D66EE1C05BCED5B23692F04744FC3B2C69FAD38158DC05C446B2043BC94EB36A
3108295A93EAA24436A7D3A3039078151B4487A19FBE21D5D87EB2A8BFA73C36A63
31102FEF0B8D795A36ECDCC34F25E0E4FCF1EE89247F613D6C5244DA52DBA137957
31293900192B44135926812F1D9257F3A9A096518C872E3EE4316C1787045447341
313EA635CCDFCE4FF1BA221F022BB97B78F599C5E10F213E4B0CF6F5A5651B682B4
314506F0BCF46200ED58F63BB28CEC235EE2AF962273531996F9E5A3A9C51136BA4
315C225C14F537DCF317741571A4B2B816B212A8A16CEA3556014C4E1199B72ED4D
3168FBCE2BDF5FBE4D2F57AAE4618DB7376EE51A1E65A057FDF2D27461B211408AA
31785C5C041715129FADE448BA3E47D33D1B5037B4943C8EA92C209FD71E4D0C22C
318AA1AA7931BCC072120728E148A6A6BA8E4D460C7B266D2BE712E0CBD4576E5E0
31937BCA458DC5B729FCD18B57BBBA9F79D929D1A9FBCB6D0AA3BE6CA14AEA41D01
320027374FFFE1DC4D6A2CF7E506F6CA0D9AEEE731B7DAA59AE0B4EF3FF012D88BB
321ABC9FAD45F6BDB58EE9B7356DE0FE91F09F6CA6025E3D650001FB8F26210119F
322E89E5294519CB10798A096B662E9547B5298994603A6AD7A9A18BD28465888C0
323CEB25808EC7E2076B58A966AFDC589B286F91065DDDF8015D1E053FD2CFC8D26
324A2546D6EC94161B841B38263BECC8753581853D2D8CAC7C213D2E1BD879F7049
32587159A9F106D85B1E61124D4D3B7D751B17BFE55451F7BF151E3917F3C2025D6
3264A8A900BF5AE9E504CB9978828B315D14CF91A0FC72C67046EEE19E3F3697A2A
327CAD97AB0D9E94E2F38A483726B49650FDAC3ED719B655F4C807ADE98D0EE7716
3284AB8AC570989BC1D35B165F769B7675A5D7A18CFE1FF0F7641F89D282EBD1AAE
3292A95173464487B1DD6BFF55FA21AE1DC405890235C747A6C3A2A1337CD3CFB7F
330E630E19D26C167E5DFBBF9D234C86D929A8896DB30BC7447BE0E31E9E760C4B1
331610EF974C6917D7476160FDCC039DC4C19D88ACAC7E14491FCEE8B3FB726014D
332EC13FFBCD5B6FEB33E36BE433DDDA06BE3548586D5A59DE97370F5D910598370
3336E94A179636BB9E41480E5893993F82978870BF9AB8CFB91D03CD003944DD0E9
3345782C23726305E32C553C4C2AA46729DA04E2BF5A95C39600CF0D62AEBC74A22
335BAF73D70EC4D6AF22FBF32A4B720BE76188D4A73558443587296819E4ADD8E91
3361FAF1778F803D868ADD852A6DBC34780C1CE94F3E7770F67535C034D1F9034A8
337B42526DAB55022A3DC3C4E1E00B157980D86306356978E0F54E29415F85DFB90
3383F53A4FDF2C6758B83AB79FD5BC43D46B4EE6D0E3769D96663FDEC094F52D9D9
339494F8719DE7098736335F6B6C6D3EBADB5C5FEA52C7C7F657293BC968A505B3E
3406973AA1CF483C9942E6E66BA0E653E27A05BD52150A028968443F625BEA275A9
341D2C9B1C7B3D58213DA79F35B5A3FC16F5522C0EEC169FF4A97957DA3655F0F85
342020620B44A911EC3DC2DE479120823E93723276E34AD86453665A209179E015E
3430D6F1884652235637017AD9EC20F8721B0490A35592FDA145E6C8D5F9E6EE6AE
344AF1C57D733984E1D14EC7DB1AC6F2E563960A389A6E07F7045DA9C4E7616A8CD
3457526BB59F24689986799CB627397E8EB84367A6AED190BA3348A223FA26ECB65
346C484B2483DAF3EB7972EEBD7E415D57FD768AA126785F6F9B77C6E08745130C5
347CE551824A522ED42AD2D7A7D8C342F69A851124C4686DCC323DE9554D22D2402
348A91FA11482ED834FEE73E2AB81CB8150104329B389B7093BF751095044FB5A59
34937C1DB3AB6A60AD2CCD88A958E80132D53CB5B661666900D757258C8B877BF57
350A0154123574F7E0DD3CD70BC164E178276C5061AB57C2B9B4BC641CED807DB9B
351D211AB131CA495533C1F1883152CBEFE4C2BF76B1F8288F5325D184BB35D1468
352D3417A4DBC15C57E8AAA6E1FD8C3DBBF0959244763AFAAEBBEEA75B978C81559
35373965BAB2BABDCDB756F46F1C1F0E5D8BE47BC9615E5EB174725D2B1AE69CA9A
354658804372ADCA75EFD9A85AAF6ECF158B44A16D1F726491396ACEEC3604380DC
3558003AF974A32D8DFC4F839EE9B3817F1F42F58DC5A4F2A43D2C57341C24B4AAB
35653A2551C9468ED0E639061F0EF2096CDAB040830541D06441F013C7CD4FD1069
35744F25A0984770E20C945C6CEF8E9B481D19DE2EA61AD17D7CBE3A13E142214E6
358790F259D11234A5C60DADE5056F0F87EAB692C7DBE6F1207EA01064407152010
35978D6966B04F5C659E5E28921B2B0EE8467B554B52E8AC73D907006683929D0B7
360DE34A3D49A840A330572F8AFA181A187466FF9342B2ADE31AB2CE738645271DD
36182697E30E21122CAA3E195DDD0A3ACB45EE175D163CE027756BD741E3DFF8644
3624BA37F86D5B27D06B394759C2FFDF4656807DF82ECD8C7175BDEE8072A33B320
36330A574241B25A6D4DEA5A9EA9AB9BD2B89241F5D18D656AE7E3BC84436939489
364E06D03D85AED77465118037F521A80B4B7D1B1426D7E347EF3B5FDE2F6BAF8A9
365049D69296DE0BDB7709DD15E5AF402151B7C336FD03CE92F64624A18CB274033
36636C9E5F7B91B3A3C99EE5898BFA156B413FBCDD884C77163B99EF031D0E4FD81
367A6C555DF62D78074414DD81AB57DEFFFABC9DD43E994E6194254D4D54EBC0699
368B019575ECB3776F20C91D87FAB10D07F8B9138A4F644690F1011E304130D735B
36974AC9244E612158CEA47E4DA3B57C80F2B19CD5BE0D60BF771AD3AEFCEBE9B38
37026AE1E8E75C152174CA878172A6C9F4751A70AFDD0FEDB405C76C4093B03C05E
371670FCF744003DB693C7DE3675FDC2181DED883A34DA3C5C906001C25781C7A75
3728198AE6A01B897E6FF02B3EF9E8C51AD65D85E1A26887D037271EFA255DCC026
373DA960497D65136EE08D2ABE426F11ECABA6F6E4565B677F6236C8C7835AA66A6
37410B080E89DCE754B5D4998305D7A15259FBFF42DA7BC53D0C7FEA0E2B33DE66E
375DD42A969AFE04C892FD426A6D1FA4C157F5BF8EC9709E432CBF30ECB6D386650
37635BA80E8C2C1BE94C5AEAE3DB38E132089A4DD46D1AF151DB6778C6F5B53F19C
37783963CA3F1E7B5EA92B56E215A38CF09675303EA98F7B134BBF537DE2BA51932
378EE8D47AD830405A0EAB2317D6B4BDEF37DD51F7CB2E708A258B5A7961CF6E8B5
379D95F24710B0ADE1BFBE346C498B01731EFF99A37FA323390F424815EA796A43E
380A27EB7654737B090803372D95137FA9998D80ADC6D9537BD72A57E5B94C67367
381ABDE6B6665BCBDCD11CF5F14943C746CFC1F6DC2B4CD8F236E18CC521C211FCC
382C5E6948CBC502C87F1F97B91D71C29C21643AE21DA86C639B1ACBFEF8DD1A869
38395148EB5EA55CB2358AE48CCA1B0C53D843DA76B8995C46C2CCBF1659741CC2B
38458A5E908D28EE50F63E01CC622DB244D94E2D73D6B626049581E32BA1E1DA34A
3850CFE918272316628140551CA8264AD9D2A95721E984FF28DAEBAE3C33BC79C8B
3865AC1F3C6301B541931A6EC9C91E9360BC16FFF047FE03FAD5C143678EAEEE7A4
38735C4EFE2631B7B51F03597AFA150E7DC1E5EA942B67814F4C196375AE99DD494
3883BBD5EE4603EC7E417CC34C265D6F18564D72F30E6B14A8A279019F4566E0D4B
389557373432623356BB2D30481166CA3CB5E96384F0737D0F8F4104DDE5A1D80A1
3908BB3BBD773D6868C4C445FDE7C5534482EA25CD1FFDEDB1974DD43307BFFCAC2
3914A0DC95A25D22248E6D99C9CC35ABCC7BE25BFCF7D0087A5CAC91C8DEF8391FD
392FE344C4E9B1D6CEDA2D690F8212C282C94B7901175F5D970688C4BAF8A166ECD
39385716D5CD0D218A4E2D5DC0B7FF6FEB9516321791B1CED94B5F4F91626964BF3
394E1FC0F8017F768A3E1D13E945CE9088CCC21CC968C26B962AE212E6D79745A41
3953AF87295E0A81978C2DBF156F4B64AADFDC2698FBE78A0CA5DB50FA90911A1C2
39608C5E244C9B94B64DD26108A787F87203EA321B5E818B421048C139D7B107F79
397B5CCF71E2595B2DD097028F55F48345A4D2468F513954FEE4B3D4D27EE230E69
39829DCF6D8826746EFC6958564009426580DCD3EAF08827EE2A98EBAB47DE45D01
399FC72E3869037D6A1B05A55BC55E97E7AEECB6DD6F89F1294AC3B07ED9B14291B
4002B0E22583982EDC2296AF8BE7ECBA75B843EC5D4ACB03280430DF55454B306AB
401C4CA140D13C370EB9996A4E8CA03308D71C2E424A237BE7BCB2FFA5C2CE37A89
4024A641B60F08E01BFB95FF1E091FA7B2C26B1FF6AEF8099EFA10B577F0635F5B8
40364D9132CE5D7FB5B084E87354F9B6B235A1F49B17A693F3F4A92D12514905428
40408CB0DBEDD526FB8F7BB0BFCBC011B85B57BA6C0F991A1471E9BF186862ADA02
4059288F9A636C179C77C115F31C3B2F0AA6B88587CA0D93EE4C6A1E20833ADE404
406AA59AA62D1FB307024792C20EEDA3BA0F138E55EE0C53DCF4F1D20C089BE1C6D
407DC6DFB15B7BD3171C8657F79FD7F91435F6981E23E5AA4946293F90CE506C0A2
408D458F8EEC1F7EB6CFD04326381FA4986A4269D0029099F51AC6353DDFADDED53
409EFA03F25E2098E64B4D015D02D82ADB33C6DACA0B65F78B38A2C2E4DE5AA5ED8
410042045C1DA9D4C6FDE16E70490BD471890361EC85174D9919A81D4F4935B3557
411256F0CE554F33947BF22B10F458B3822DE0D0941B455EFBFB179DA81287EFB2D
412DA48F315AF0033855328507C388A3FE1DD7F75604C344882A363BAEED8C8F501
413F650F2277E956B0C8C66D23C8CB170123D7C8F8B4012EA1DE7D09F6283276D03
4144E0A34AA7DCD1924C5A83B06751765A04DB720E3532536B578744D86D07FBA16
415CBD6507220857EA20D622B6D4B789D929F29549F1A083943580BD7EBAE19A093
416A25691EA5C1EA9E8467FD6D379BFAA562F6A4CB5886B314BA188F743041D7EA8
417B59592A547F93F9DD2C1C34B956C5A00FB67A837AB88D038A62C8F80698E0B9D
4186D8AF6259DCB68ED1B212DB0DFB8AEAC05E4785F5B4C70E251B91D6017767629
419F20B4983E203D35C9F1BD14C2E4FF698AC2928E4F7F1D3B4D03F1E8FD27FD280
4202F5B7748FB3771B398C64AA2C8EC9EC49E4B69EB9BC04397525DD7B4C6AAA743
421B51EB2642788E41FB692C2F88ED3EDFDA56628921FDB6CAB9CD4E5676974CBAF
422A1EAF99F0D478FCAC5CD8A2A3ACBB2E69E5AE0F62A15D8DF71A3F8BDB1B055DC
423BA91AB23F6D1DD10D8B876B5F483C2DA48A91F939AACA4B2326E181EFB47414E
424D308D5BDE45E01411CDA75AB766EADC1789801926C722C41B4C8DB6F4C7B24A3
4253F94C4A96DB7ABFDB96E1258C74CE678E69D9A6DDFDD9616FC3C1C0329A8B7B8
426685CAB3773B6F9AEAC750CC767C683B676DA2B93B8DA6859E57038D3E69325F1
427B2BD4788AB01A5CB6A1D3B6F61D90923A6FE3203568751B61AAC0D81D9EE9D64
428F883F06A0F2A806EC010F54C19A2E795BA01C8CB2B188A25D2FC742F152F7541
4299775E6E49CB06341ED8E5340D68E534152B8BBF43DC152BFE9D349F159C449A9
430E2A04537B9285C3E1F89F4B929071609E326F0072A39225B722690848EF811C7
431A210310B3077F6FA84187514C2F0A2FFC0F71257A895F81EFE75FC06D220E610
432405F272BF3408D0E613293A3B7A76D96E5041C57EBD41911C863EDA68A33A475
43311E30B74AC3A0C6BF447DCB00449E257E00CEB91C1EDE9F4BE1F84F76111A2E2
4341AB5D3BE08D17925E8606990B010BCF3CD6AB53FDAFE2D7979C74CDBA110DDCB
4350C3071811ED4881A0DDB9F72CD8A58F9681DC4610FAAC7379D20CA59DDA6A998
436127E4A60CC45763DB08F8E67DEBFD472CDEB3BEBCB7066AAE9F5B00E24D3BB0E
437DA30CE8C4CFB8A5A4C4D41165DEC367E94B116287ED1212899A1F11336D42E9D
4381E6A3355CD2217B40C0F0306D03F9FA4419FBC6AEC6D3FB63CD7AFA0FFFF97E0
439EFFDC14648A54C97EAADDFBEAC95A488AF5017F14EA0BAFF55A745D6E1302A3B
440FBA8EAB798411DEB356810616E922FC625DC3175B00AC7EC3E1AC8B4F815B544
441D23D4249A03508584144CBD9C77DB3E7588613E388A551AA20B65F1D4A4D5830
44288AE466DAE2AF51914EB69ECC1655D0AAFE2C50EAFC5E84380704C3FD7DC826C
4437AD746F1CB4C5587E9AF36AAE6C3FDF7FACE39B41273A320EA8735E956F25F00
44426BD65F657A75596AC1C8B15D92F25A92172096A7BF2073E7E1FE823CDFC9D43
4459500B37AA0609C79539518FF8B2B5A769671AD07006151CF5B7E0F31C6A943F7
44607BE12E7D34E533FB2941C7CF1FFC985778D8586EBC2BB838ED478CAA2BC236D
44732A0E00002D0BC5569FB075E8F4F0531D0ACF9EDF126435042C5653571E6DCCF
44810A1A9A36302194F043E1294B55846E756CB6C4E9D5CF5E251181B56C682EC00
449B25882E634D7B080A388E4A3C77DA4E8671A67875F580A4BBE6ADD6085E16A43
450E2C52A952EE27675011AEC7C33789EEAB3D718CD87436E9972946831331641CE
4516AFEC8D9EEBA83531AD48742800119A8E972A791AA0F8803794DBB6517132A08
452E71D61C24814081E56DF17651E23EB9A5A4F9E323381ABA72338152EF9CD19C1
45322EAD0ED5CE0BF403C427EBF8969BD73661ECF83DF655631330ADDDC6133D87D
4549E1824659238A1E84187D07A1414FF6ABFBF90309BC5FDCA584090A85FC02119
455204DE9AD4D8F92BF42BD0B0254F9EB18F6465E2A7F2319A85B79090D13CA481E
456E2954B08489AB4CD3BDC8E1FEB5F4F9C91B12616F421D18DEDE45DB14D262595
4573FE308C36703EF4EF1661B07D5876D356BFD473496CD921EF2CE89F469AE8655
458B94A5BA4A54062956AE9DC82CAAB51910D6F232449929EFE9A4603DBBECEDF48
45971A503B550600AA0E713C0734DF1895531F320C34CEC83AECEDD264C630272DD
460B1492EAE1611F23C3F22CFB2EF188E801C136F16E5B313560F04C5C2E97D7581
461A0EAF18DCF312C783F8F97E6AD9A9EFEEA7F660AACDC7B934E49778C3E63BE8E
4623D42C6675504A468D0DB5703EC06C5E7D7F1C658D739373B8AB3E1230B436108
463F08F5494EFC412BA8C6F2CEC4D378E2BFFE577D771F1BDE1C9AA7177C7907CEB
464AF8595F693F8A5E9BC778E2E2A76950D4540ADA91D6F6ADDCCBCD4123D9CD52E
465B5AB867F575E98CF887930BF7683CDC9FE5276432FCB09287EB2AED0683D2363
4668C051B9F8C770062A4943307B71F90569A1FE89C314856496D9C3FCB92A2CCDD
4671462B5A7A516435BAD59CE2141987284424DC638F20F7122495BDCCD8CD61B6D
468E9D7ED2A9E24EA8E05D46A8A89ADE0E8A0AD86353435640E669CEF27ACFA3BED
469B98333A47E7321978A525F55A5A66E477A3D4E5C1A97E1A04D21D2A9682812D3
470F212F7024CA667E7CE6AA45FE3AA44BF43C2E77FA78E211C476FD092576926C6
471014690B1962AAED11634E295DDAEC81C42F5F74D15226453652DD7AF51347FC6
4721BA9BAE153EFDDE150D04A3187CE193FD78D32BD67CA15338AB9E96EA0E74552
4739E15B2AD2DAF30D70A8BD98959F7C5B2A5819C0EC74F3E14BBF5FEB98C25280F
474CE44F1558FADA86009B5B9949BD90F7364E4AF92135948A1D028758F30E57989
4750DE6F7FA0300BA5C14D27290CB48A65BB74187055FDCA89E9153D670625647E8
47622D3AF1702A14151D00074FB5F5BCDDBD2C5AAB80B1FAD24EFBFB2A3C07DC7CB
4775BA1564BD81F8312442F7614EC74C380507378CA11F9165A2B69731E500DE6A3
47844EF69FC71D04CABF77A43192FA95CD14EE1035F9D00C93C5231E5529C765F0E
4793E2224C5012CDA0B9C4FB3A9052F8B652603A3EBF1E7D8934BAFF0CAF8DD1EDA
4809C4828D9E5AF8955FBC6B9CECCCC3800A28E4269F9A89EB9DF0FB571151E21C2
481103AAB59AE05FF67D2FED4F354867C8B7704795987BF031DE98F66C99AED8BC3
482F04BACEE25B794B57C480E9FC883681FC0234FD207770DB77F80BDDAE051BFD2
483C6F7779D08A94645E3BDFEEF9B046534C5CDEC2CB3958753AECD712ABF1D2696
48490863C97EF61C59045A1CC08D1B197674848B7E3AC84595428E2E7E1C919FD9A
485667A638B41B507FAAE15FA722D19DF1F6E58CF7292104D70E159D45BC94EC488
48657AEFC385E95FC595D7B73EE65AB2CF6A56F4AE83D9C5690C1F53DFB783A6F06
487F1039A6FB4C1200CB4EA91FC02D269894A53CA9FC784F150FCB4720B80AEB2F6
488E45219E0EF8A5E323ADE5A03454C4971299ACDB79484EEECAAAF47D4930A91B6
48980B65B3312DAEFA92FF967A8F53C4C88A00070374EB4846778ED0AFC733C7384
490640C5CEE53215B56998445E67F14A3002B48445AA90898150CAB0048F54138B5
49129DF075911DF49730E96EDA7ADC3C0C72FFCDDA568E71FF50BE85C2DCBFAD0E1
492A11ABCEC9AE9D3B0925283E0474B8811818D21D9A9564108B874721CFAA07CD5
493EA403A481C9DEC998148BE32CA915BBCFB2BCFF25A149B09CE561D5233F02323
494044D3CB85512BED09C2A8430B756DF21777688532B9A9FFCC6E1E908EAB8E55B
495584C9DDB9D4E5C94ED92C0E725F9754B51E9A29CB49859A272700E42F8DAECA1
4966F6AFD0794DEB26741C298E1EFB50C60B5647B986E593C3EDC58AD45D3447C82
497626589B8FBBCED0CCC4E2E279178133B5F6CD7AABA13AE9BA88225D7F9B493CE
4980445F85C84D02AB1201CDC9C1E6C7B6E87B58111AF7E8C210A6DC7D26CF7B4E6
4991D1BEF9CB8A361418A3799F51056188DC92FD28CDAD75A6DD2779D90D9F2C480
500CFDF05E0E49A59D9A107175F37C1815A58F0E683685545DF142BAE51B9255626
5012A8FFFAE45AA48D8448832B1F4C8AC7A60B6F35E6F0171EC61807612E241C0B9
50258C874CB68FBFDDCCEFA7AA213FE696811EAB704EA7F1C824FB45999B78B2167
50375F597B9CC87F35B7F95DD848B3AEEC5557AABC61881D1F392DB310827C9EDB8
504E3CE486AFEB163F3297CD5850D89F71C2D638A7A230A45D1BC39225EA7BECBA8
505E81212238E58FFD68289A012CCDEDDD46901B5D4AC71F373A01E7A58FDD147FB
5066D8108190A40F2E2E174E5DEC51FE9776CC5FCC9912BEAE366071F6985DC704D
50762DBCC3FCD5866F1E766663E01EAA8D340487B2711DDBE75C236D39F6C8C4EC5
5085139B66CF423DDB6B1CFB7C798CB1CFF5C19696E9781EE59795DB6EEAB4BF314
5091553CE584716527EEA9D3C4BBFC6A71AC033A6EE1BB462165EF596EB2784604E
510E79F0D85BDCED9BF1A4FD780E5B66F09102CD9A1EF9B7F44A91070F103BBC134
511834253E14A7B344E4CD0136BD875A3942EA4331E485BF4BD15423EB7D5AC1B23
512A6F98CFE280F7ED6E15C231E8B6E2EDEAC4E695627C4A79886CD13CD71910101
513BFA35407F366B3CC28EF8B7CBC742A9B68E23FF365993494B3F5D8EA5E316E11
514F752E99CACE61654020A39651DB273EC3D667E577C0277C53AC0F5FF10C66799
515DE553F2B260DE6BB72BD871BABCBB4E72DBEDCA5CDA4861E159F92223432CE01
51650EB5D0C4848492089FF45AB3B8F5DF1B84D45CB869FFBE70C3B8B2266255784
51745F31F373EF1AAF10678681A6DA2CA8EB84E4610AC52F7010794D759A4C4BDD4
518CBC706360A0F2AB81DC13E1024C303E89B0F31E935872E6C761108155481590B
519A6857293407A347E386A8657654FAD202B3102D3383783124006B24E314C28E3
520EDCB6E710C7F07102C86060AB36A447B24E2736B6F9C18113998D71BEF65C50C
521F6B4F045CE2564C4FD25665B511E1B5F26E8229B61163BB28A8FE95D2297ECF7
522C7D12DBCD33EAE70B0805CD79E0C759CBD995240008A61DBCAEECB217B4C4FA9
523D25DBCA9C9091050C091DBBBC228D13E4B50C721293759228B30ED75C1B724D4
52423E7F9DE7C1DDEEA66992BBCB9B2F563AFE77C3E610DA93AED87504246F27F18
525F5A49398361DBEF0CAFD77E8391ED9AD894FA3DC5571DC2DAE65E8B1A299462E
526F5BBDBC5D782DBEA842DE7A24B78399F96C0990D2C4BCD85498D3BFC3F4338C4
5270A682E755FBFF024E8B725FB483A6426E7EDD69DB20D5B8D34F39E5FD2467783
5281BF9D7734DFB46C43AA2FE8CB7811F217F7FD3A7A02753D85BEB3549C7BBF432
529A00C8D9565EC7CDE4815CC250FAA96C265170C7426B18519D2B8F99A58115A8B
530D0AE4331BAC1C7C86DA6CBBD73CB132D7EE6A49B57E8E8323D3194120AA1656D
531F4AB7044CC67339B839913B8EEA1266A935643050835ADADAD9ABFE445881426
532BE0160A349239B77AC046BE628E81D85B69EE3F2CF02ED622C8B94D548E1D447
5334146B81BB7336F3B3173B6A92091449A276C13084E9C080EE740C4B6CA8C3159
5344A803173FFC39FE062E766DB6AE2EB535082C0E95C0598761BB05D44DB866024
53567AEFF155785FEEDB3D9857C86083F0283A021B9E9BD6BBEDEB41A2D4CDC5912
536D2ABEAF6319A6FD7B6EC2017E61339983E932A5396CEDE2BCD091FCD61CB8E7D
537447351B01F2AAB39960F662EE0B9932F0962E9004DF2F02DCE5988CA1753730B
5380B71C4F61E12BE62C87A225C421E2FCA80986BAB9623C7AB8DEE503B468F0409
53968658C60FD837E3D80A92DD25A234C728DA63593810F97AF486D805751A69E9B
5402BB387F4FDA2BA2305B9057280D703F76CC1EDEE8A689469E4AA11A1549B2803
54192EE5B742DE5B82C4B6CF9FB14511C1F6A4715CA304D377F62D5A85F9A4312D3
5421884B1D0F631774E11B7381F418C6FBE3CAECAEFB3DAEF139D74BB4CF11DC8BD
543D0164BE66876FAD3132AFCB234E6552E175C06BFD73CB0E155E02F33E0F97BDB
544EEAB1094D20236F62C5EF8C3789F18B0B1CA3EDC7EDDA9D887A936EBBF30CF43
54528960BF369A3791F3C8575F7261093F2BECC2B012FF19A49C031B0734E6E8474
5461BCF0AEB9DED93DA50A3872C134859C228B72826E7B5A87DAC8890597E82B3D9
5475B6E79C44DFFDD28A547BCF333909A2C06869054E581ACA10620F4F1D357CA78
548FE89A57C35C8764BC55330E8CF8DE2CF7AC168A6544424C002134C8914B01E9F
549489802B833F4A796DA2DFCE7D7D86265DF5FBBD0CF9916D5FDC926E1835C340C
550AC9A1C4394A8E9DB796DB924A63209FC58ED1A64CB826B92C5264422D0843AED
551171B9B995285481A764C2D64114A4935A874073D172EC2BAB0F006C84CD14708
5526F5AE638ED3C86FA3100569A6D75476C6949F725AD070F8EB01B6314CC27065F
5538BD84FEC215CC16C7ADA7A2BD206BE0E6D4B0D70BB48E89980C7AE2B3E4DEE80
5546B68296B66829D60397B1BE64C22E0904EF23DB5804CDA44B1EE28860CEB71AE
555320750EE80F1D5C91EAD18312EE510D1C96729C07871A8DCC82A8A71AEBB26CB
556B0C7C37CE3062260BFF93C48CD56DE0077B1FCD780B73190CFEB314B5ABEDF38
557306F9D8836266C46D832DCEAE8BE77CA569661D36035ADAE452A7B6757F9EF2E
5581CBF9787E4B14C075A083C7B2F09775292FB8511AA26489A044E94847FC8D727
559C9DF0544F725D912EDB25C3C9687FA096190DEA954EFFA09DDCA6EA3593AAC8E
560DA98D2A8994352461A7392B7F4D48DE7268FD57571AB7F1D73C368ED798C2DE7
561099B6A2C03BDBF2A9A4B0F211A0FE0DB0A281BE941D52F6AC49C520D4A614315
562FAC82E25BC95DF3E024FA906604A51291BD42B2C03F43628CBE07B172036AF77
563CAF13E66EA7D507DC666046BBB62E8D01DEED5FABEB7D458C1F6650D7C0D2FD7
564B310F278FF7F13697562CDE5112AB7278E3CDE4EE83AF3F8017D6AD947D64146
565C279020A20858E0C8E5CAF3FA9FE1821BD65DB5614F9113BA05A6A854BEF0D87
566BAAF86BF1A94C5E33E665639E5C62A8EF2053CFB2551593A373D1076559932CD
567276F63C8A13A7D8B0CCFD3BE9F942CF74BEABA2ADC931D9FAD4FE66B9CBC4B4C
568D158C3CDD30DA420A6652C2A6FAF94130F3F71D5BE5CABD44A26C62911D16AF3
569DADFC338CC35661B6D70F8B7DD3E9A27DA7AC82044316104838184384B06633A
570DA855F6EA80A88DB4A1BE64AC44CBA941D620EC6D9B5CCF2146D4D1267005A3E
571E4E5B30CEF41E28146F8C7FCD220723958AC31BE12360E604B7CE0F1456B1CB9
5722C3FB8EAF1388B0A8801867617E472874BB7C9667F7AB8F7BC50732C13CE937A
57319BA58E729426EB3743557D41D5FC536F7DC0DBEBE01523C5A5C4CD54A7CC7FC
574886898F9910C62B8DF66823E82ACA794B564E9791C0C8F1E8F63544E9C5C8DFC
5757CD85710C0CC5810854C50CF9D10AFC22442935FC26B162F12447C386FA9DCDC
576D6CB27582FFC568D814B5AF1A2493C5DF3DC658ADB6672C72D06118A79C1482E
577E75335821036D472E3779F804A8627D65F933B7D90A81C12C5A135DBFF6A16B3
578FA0DC478C8D780A4BE3FA7FEE77ECDD8BE31223ABB7BBE730DB3345839073F1A
5796E1E3A58CC31CA4A77D3C3FB9B83A7C1C68D0EECA0EABEBBFF933529DC05C6CA
58099AE437C889256C3B16431A11D0F912DFB140F9B705045A7DE84E625122B082A
5817AD198243DDA2E4C48C98052946A20EE58DF09D514E0FE023252349236B39C25
5826A7E252679364A507A9CA2CB148DD2420193190BE06E8D1BCC8BED716A4F975E
5836576089667153158949E017AB65CE73854F97B213EFE5FE56CC9770B029C0AC1
58420A0146C58F522FB9B3F2F060C7B4C5369C7B1B1D48FFBD26A111E691821CE6E
5857267BDEE7CFAAF54EC00E9078445E0A5673C8F4A58E1D5B0797BF1E35D8C7A15
586D4A3F0F6E7BDB700105579A0546BC3B2AF79E57F7ADD64978812D65256FA9AF8
5874BDF6C9A5EAFB23848C8223591959CAAD5D324D2303AAE6AC64D501E38DEA35D
58840F8E94DDDDEA9B21D01F4697D4FE18E5F6C70351757A28941A0C397764E6570
589B9C5BBAC91FE41894D58F659DAF94FFC43C7BB679BFFB0D3F626F055077028B8
590901D9D060DB283E2325CA4FD178BBDF4C6B8E74D16822FEC8176AEF9CFB7F698
591C58FD5866B8AE49CCA8D8604998A9A414358143106205D36A5A33D107BAE8E5E
5920C728B92A568A937DFEC6A3ECEFF1D3FB58F4DC446897A5D294441A330BB550B
593BA566BD6EBFB306790F35B9E7A39C9F31DBF3965445171DBF71A742847B68405
594A2D04EA781EC124127FC4BE8DE71BB2072E86846AA636B13FEB04CA868500D82
595D9AE57BAB1CB1B22613770EC01CC7774EA4C5E9BB4E9C2CA00FF2F916FB14390
596E2A4C7201B9A4B4951ADD39EC472EBC40DDB9DF7481985E000519ACC9F1D0CA9
59708AC0C56031EE66E824C11261D8EF335C9A2803A284BC3972576FC83B22ED929
598FB59DEB5E077C4D6D068189DD4FDA6B8D61B24AC93CFD1432C40621C0194176F
59939888A38B93F74F0CA00089124D3BFFF1D8F0C901D1E10B3B58FEEB7C6A69C28
600212E5BD0D6A5A2AB720BDC3A53D6AA0DD7212E5F8A63FD26F6D3D40868C6ED65
601A70BFC5B69B6A923ABF174B31E14C6DFBDF8C62BF0535C116E49FA05476E9F25
60202B3BA6CFFE7FF99C73365CCCFE2ABCB3C34398CD3C490EBB2FE120BAD711515
603FD42AAC3950C6427555CFB25BB2183F6514B53C0B3D2A2AD4E67942682D7853F
604C0E66EDE2E10F8078AB31066FB9D47C27C07A1596560F5DA1904A9FEA0E07C1E
605B5231CF699A092BCC12CAADB9020F0878217E1FAF92E8AF20E98C98D08407143
6068DF32AD7DD16059E287702378C350B44A01868A5D248E3B7727A17982E8AD157
607F83F054313801409D0CE232760DA3852D674076F37B807B33BAE5EFC088E7180
608A58D437AB697BAAEEF08540D60D6DC39C0AF7694A64A958E5D6CD9DFC96CA8BC
60958ABDDAFE3ED46F72BAA89FFA3968572212F49C858C853F2E92E8A7FE935E7B9
6104BDEC86D0FFD1BD1ED1AE285062ACCDE0EED94F67B7B08C412F5365DAC051826
611096A1AD3937C20265D5473084B1F7A720FFFE193B4AF025BD83E3C23073419E0
612765AC59F3E5CA7CBC544C88657E45584497AB0C58FFC189F7158C36BE15BEB04
61395656C597DEF95F6FC8C85C4CEA0032C655C92D487DA3E239205014684D867A5
6146DCB2227D0AA87D3971D8ACACD480C202AEE921965358B0B9AEF9880C9D633E6
61543F1E08BABECDF7044A4B139A35DF7B031B2E53C9BBEC6242CD0EAFEC3229751
616C127E98AAC200BBF4A9BEA0B7406B03415D71989D7DEAEC3623522EDC0E4F185
617D1158108E769B06E98C1CE99282A694A7A3890678729BA5F12E22EE450331E9C
618997580A017078D416B2FD22AA36DB83B695D60A1E5F2C5BB3B95BA0FD61B6364
61990129ABB4781A43738D1CA605C27DFE179EF49AFFC92D694ED6708AFB07C28AD
62051479093680EF9D2BC0F269BB98A70E839CDF43FE022708AC667239CD844B7C5
6210964F325859E9D5F2F27F0F7EB17C6D16D61B201829DF057C82A457B38265A66
622F9A4A5BC82B6CCF134E01CE435523F4EB54EA7566980FF3CBD975B4CB7945535
6239CEAA4C012ABF5CE038A97688E421A7667B69EA6AEB26F388F9FFAC566E508D1
624F6C3929F0FAAEC07E981019A54C28AAE9CA32985B4A7DE836A65519537341E89
625493940F934A6C4C038877726812D10A66FBAA083C28DA3CCB346F77DF26C0C3A
626F0C7B8F6901C7EB1BA383C7F667710E294772FC783254EF1124334E3946D0C74
627EE784576EF9ECC111CC00D1C3CED6FD3367E4291F449C037F0E8422B7FFA881B
628ACBACD70D9462ECEB725FEC1B4E1DAB04B06556FDFA0D715E6BEF8A72ECD6877
629682718C668DC21839AD7DF37BF35A3B5E9E4CD3A3346FEC4B5DCCE10340C0F83
6305926D8C37CDBC01CEFA0E5CA178A0F902ADEF4DEE248789229B5F999CE63836C
63128BDF184BCA29DFE7B669483B465F64BF85F7631DDFDD952FFFB1ED2189C0ABD
6322C8E5FFF27767E7803948E3EE9C80394458FEA4B26484C32381442297051D396
633AAEFC39A43AA5DA451CF5C614603F1839B9B4B5803EB6B38876E0EA0F0291D70
6341BF03B4BDF4EC5BD96FCA3D289F334BB12814E209DEDFE01FB03B6F16BE3A48C
6351C85F180B9D940BEF59E5BD3EC4F3E46DE790F0F76604DFD586A262A8B11C39E
636A7B402E66DCA71F35B7B3CCD54FA4C602D87D7887B915BB48E06692AC6C1F1D2
637BA15A8F33B1EDA806B0D38FCD067C61838EFE6C387EB243190312AB09B58F53B
638453D2A8481D60FED04E5A9AE214D68CB8E2691C2DC9DEDAA3D77A27BEC74F57E
639F95466E21971B4DB33C2AC58AB580822F569E1704F281CA77B682956D513A984
640654668FD581A323FB6D5D7EDD591CB2AEE9D433E706F75301C8B900E3F741279
641287D15DC1FB8CFF8362EE9DF1442D3257F24C64946E54055DB8998F9E7C03686
642B23EF3B3313EA62C76B5861A8033A4CEF19EC18341F4D4C624C4F9178CAE24F7
6431280210EB705F994581F58E8183572B250CDCCE4BB1A911380F7997BC3223658
644EDD705C4992043176BE48D388F338A9A664A0BDACABE2ACBDCCA5446475E17B7
6455E74DEF8F242B7A017BD09C9E863658F00FE87BC278551B03219CEBCE898CB4A
646202DED23E140DF2AF4A2DE2C06950400834ACDC6788256E21C58F0FEB664EAA6
647F91A3BCDDCCC93786C469E74C914A8A161234E63F6268B16323C68FD4C01595B
648B9FA0205F26BA53F532656396A3689420946991A052DE69CD471B8F104AC5470
6490F373022A8CEC054EA8DE62524A0F3154737DA9E78787D1F3D20A9D75EF997E7
650968816072B3A6BCA83042FC89EE93EF4582BFB4CFB97645E25E11A639AD99626
65151B2155ECC743968028E43C863F60BAA69C1EC0793C932E3CD40872283E49B99
652C343C360603BBC0138AC480D151FE6D7EBEB225DED9F99CA31740769EA22A935
65383D1F459FBF5069D8EED1E7E4C6F07230BF1804602712ABC81DFC9226F42B859
654D8D7CA2E585D3CCC0B417F06E2FE54298BFE966C3CBEB651E9A6F2756501491F
655D3676D47DB6E939A05E2E82D62BA2E49CB9B5344674F249BF98F3A96C7B0A85F
656122E95414950ECF3210729C73178FA3869630B74BABF3B7FE37F063C136B097D
6571A8363BB7A54EBB1E81BD10C1DFB5877B3C235E314A376FE650D382569A809E5
6580E9539F47BE52ED79E3E0B12AA7993469DA524B9417DCC1A16390BC79087F9B2
65910BA8C50426433C43230379CA05C4D878461A64F36495811B7EBE5809181B693
6605EADEA347F5C2F4EC69AE0E24C38AD68584296AAA99D8E7E0783773D80477795
661AE5709F7CFD2FF6C0B968E710AF39DA30A692B14763940F3CA39472978A71CB1
66228369A173C74E080A6916DDA705E9AF4A965AD866EE4E850E0C314F05A45696E
663EA135A5D7C428FE5FF1DE9DF3E40B5CE1B8A1AB9DCC305279AFAF36324CE0520
6643F4B333E43176422F685D819075C3B061AB7DA2DECAA4B1B0AB9AC3EE56D4E3A
6655DDA327C074C1799C3D6C657F1AA3C2B4210F1921A3AF08DE7E3D70AFD46627C
666D216170E6188CCB9074B77E09E599FACB8FC11E67011F564A48F14C7F2877620
667BA982293FCB457DA4542C4A78E362EFBC21842C181757A646C5AA5A970BA6E9C
668C6288AF527373DB34C24D9600A1B89876AFFA98B07E94D7CBE2DC813663AE1A6
6696C2B596556AD3A3F92BB3B3B28515A345A370E9140455F4C8388FF9417C3D18D
67095E19BC2C9115C9E62607BD5B36C3ABA52C40DE77FC006B52B1C19207063C83B
6713952846A435A5B521BB154569BF0D79D455F796A0A19B605D443FBBA7BE3FD0A
672F471285D86D825366D63125E1B3188F3B483C9209CC139B8355F9489C766BFAD
673A732FB2C3443C05B99F82E2DA2904AFFED887B8EE0D86FC35A65106A38F43999
674DF3BCD03E2EA17E7F19B4D56F442F60B0D5EF72B31EC046CA5B5F384C2BB8A8D
675A6B14E7EB37E3AF24A219DDEB1FB781E688EBA3F4EAC775643746D380C5E3554
676E5B19339766E5E2A85E32F00CA36408E39088A55137EDED66C704EC9C6D3C2ED
6775A6B16CED2A42B036907D3BCCF7CD74666B823017857ECFAE6115D4A6984FAA4
678AAC7FA2F3F01C4E9B1E3410711B8F1ED7D6C11EB0A2743324A563C2E9382B4C3
679A35604C174DDEE065685DD1D288F66BECDD70322F268891A9D0535F53261E6CF
6809A078A3E86542D530E23C27AB1A47195BEC1F943340FD132CDFB5ECE7B9AFE10
681C5546A35BFA94AA72787A75A482D488D2AFA27D5904DBA831BF1F9EF59E5FE42
68288644C6E28F1E243D664FD19781FB42BBEDCAFD3D8DDAF743DABD2456307981A
68330190C6A024A20900C64DDD8ACCB149937C93C74C1B5BD44E47C4C13619D75E7
684EA7B460E79450E30269A895E285F10D0E12CA8BC11F338A7672C8A367916EED1
68561BBC5DCF9527D1F661DE64095C8FCAE8DBEE80EFAF8F6BBC19266EE05214C53
686B7D4D66121573D50BA676141462BFFAB3B10142BBD557CDE258B457E8251B95C
687CBF72CA3E67B3FF3E432BBE8F984FBDF46FC024F56937BCFDFDBA86698803665
688F691339252DFA34C83E5EB05FAA6AACEE8B756B84B5ECA619CF0FB2114996FD1
6892E5789D83DBD356086FDC479CC21CD0FE72ED3E13C629F71581637F81E011686
6906D2E9240C840A48562BDE5006CBFEA358B1C2064CC13606844
6910000000000000000000000000000000000000000000000000000000000000000
6920000000000000000000000000000000000000000000000000000000000000000
6930000000000000000000000000000000000000000000000000000000000000000
6940000000000000000000000000000000000000000000000000000000000000000
6950000000000000000000000000000000000000000000000000000000000000000
6960000000000000000000000000000000000000000000000000000000000000000
6970000000000000000000000000000000000000000000000000000000000000000
6980000000000000000000000000000000000000000000000000000000000000000
699cleartomark
700%%EndFont
701%%BeginFont: CMR8
702%!PS-AdobeFont-1.1: CMR8 1.0
703%%CreationDate: 1991 Aug 20 16:39:40
704% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
70511 dict begin
706/FontInfo 7 dict dup begin
707/version (1.0) readonly def
708/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
709/FullName (CMR8) readonly def
710/FamilyName (Computer Modern) readonly def
711/Weight (Medium) readonly def
712/ItalicAngle 0 def
713/isFixedPitch false def
714end readonly def
715/FontName /CMR8 def
716/PaintType 0 def
717/FontType 1 def
718/FontMatrix [0.001 0 0 0.001 0 0] readonly def
719/Encoding 256 array
7200 1 255 {1 index exch /.notdef put} for
721dup 43 /plus put
722readonly def
723/FontBBox{-36 -250 1070 750}readonly def
724currentdict end
725currentfile eexec
726D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
727016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
7289098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
729D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
730469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
7312BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
73268618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
7333645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
73448A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
7359619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
7360FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
7378AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
738EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
739FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
7409902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
741D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
7429EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
743ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
74410FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
74583158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
7462EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30
7474384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632
748BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B
749041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721
7503888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762B93EC4488CF1
75143FF3B2A427C5E1C756D1925B14DD861740DB6988068262559A6A8F0A2794D73
752A7F921F51FB8B769F5494E4E5E0E95C2B3B4ABE0355D63F075E0980CBD5545F6
75364F7175899BB0B1E29D7C2504CB59384FD67B6FE1D373075B49B8EE3E234ECD5
7549C2AA27C689FAD272B5166EBE5A005665C098B726EEAEB2E514ADB52AD598A1C
75520FF97137799B132590E7B7D34CA7F3C8A4586AEC91CE06BE88A9DE0BBA37BBA
756CE09C3DB3CC559C77F76AE0CDD716D5CF63486F4EA989370B2B3134F6C620534
757FC3DADB971ABFCC70A23686EAFB75F47D179CFDC77D28492C0855D83988DA5D9
758494F92434343250D8E88677B3207166E577599C8ACDD501B71C773DDB4DA8653
759
7600000000000000000000000000000000000000000000000000000000000000000
7610000000000000000000000000000000000000000000000000000000000000000
7620000000000000000000000000000000000000000000000000000000000000000
7630000000000000000000000000000000000000000000000000000000000000000
7640000000000000000000000000000000000000000000000000000000000000000
7650000000000000000000000000000000000000000000000000000000000000000
7660000000000000000000000000000000000000000000000000000000000000000
7670000000000000000000000000000000000000000000000000000000000000000
768cleartomark
769%%EndFont
770%%BeginFont: CMR12
771%!PS-AdobeFont-1.1: CMR12 1.0
772%%CreationDate: 1991 Aug 20 16:38:05
773% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
77411 dict begin
775/FontInfo 7 dict dup begin
776/version (1.0) readonly def
777/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
778/FullName (CMR12) readonly def
779/FamilyName (Computer Modern) readonly def
780/Weight (Medium) readonly def
781/ItalicAngle 0 def
782/isFixedPitch false def
783end readonly def
784/FontName /CMR12 def
785/PaintType 0 def
786/FontType 1 def
787/FontMatrix [0.001 0 0 0.001 0 0] readonly def
788/Encoding 256 array
7890 1 255 {1 index exch /.notdef put} for
790dup 12 /fi put
791dup 14 /ffi put
792dup 34 /quotedblright put
793dup 37 /percent put
794dup 39 /quoteright put
795dup 40 /parenleft put
796dup 41 /parenright put
797dup 44 /comma put
798dup 45 /hyphen put
799dup 46 /period put
800dup 47 /slash put
801dup 48 /zero put
802dup 49 /one put
803dup 50 /two put
804dup 51 /three put
805dup 52 /four put
806dup 53 /five put
807dup 54 /six put
808dup 55 /seven put
809dup 56 /eight put
810dup 57 /nine put
811dup 58 /colon put
812dup 59 /semicolon put
813dup 65 /A put
814dup 66 /B put
815dup 67 /C put
816dup 68 /D put
817dup 69 /E put
818dup 70 /F put
819dup 71 /G put
820dup 73 /I put
821dup 74 /J put
822dup 75 /K put
823dup 76 /L put
824dup 77 /M put
825dup 78 /N put
826dup 79 /O put
827dup 80 /P put
828dup 82 /R put
829dup 83 /S put
830dup 84 /T put
831dup 85 /U put
832dup 87 /W put
833dup 90 /Z put
834dup 91 /bracketleft put
835dup 93 /bracketright put
836dup 97 /a put
837dup 98 /b put
838dup 99 /c put
839dup 100 /d put
840dup 101 /e put
841dup 102 /f put
842dup 103 /g put
843dup 104 /h put
844dup 105 /i put
845dup 106 /j put
846dup 107 /k put
847dup 108 /l put
848dup 109 /m put
849dup 110 /n put
850dup 111 /o put
851dup 112 /p put
852dup 113 /q put
853dup 114 /r put
854dup 115 /s put
855dup 116 /t put
856dup 117 /u put
857dup 118 /v put
858dup 119 /w put
859dup 120 /x put
860dup 121 /y put
861dup 122 /z put
862dup 126 /tilde put
863readonly def
864/FontBBox{-34 -251 988 750}readonly def
865currentdict end
866currentfile eexec
867D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
868016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
8699098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
870D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
871469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
8722BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
87368618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
8743645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
87559C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
87651D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
877DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
878AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
87945C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
880821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
88196F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
8829857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
88326764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
884140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
8851D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
8861E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
887377D3061A20B1EB98796B8607EECBC699445EAA866C38E03ED7D4F3EDBCA1926
8882AF6A41F67AFCFBF3630C943FA111E4CCD988A7363F7C2B75EAF5830B049460E
8890D2B337988F150B9182E989E7750C51BA83DF37685483F86D1F47478883F3F6A
8904B7F768DA5AA89E8F163029ADD4A9209DE8A4F285766C06EA859639B92CCCDCA
891F59B1C2BB8D588CA754D1257BFF76B53984DF4937093AAEF79009D32A29A4C16
892FB610C7D6713482C48D7F9E8410C0F00AD6E67021056B6035534E79F05D14EF2
8934E82E16D7835A9B1C8D87B5599AB5C180F881CDD7788A22F1F46238D0238732E
894BE5C2403F76AF9679DE5505C1C5E289FBEE7A53BF841F8D782615F1C849DC8DC
895CE0E9132EAB38937D3216225CE96B8205DEF173450BADC49640B964A0ECB785A
896A592F67E539F166D4F9CF9A6B7EC96A5B8452458F3794E777EB9F4E9CEB2ADB9
8976A452812C8A8EAE641E41C732606DCF90CB8E4A4E15EC0B1D570DA9202029326
89847B10F95531759AA33E1DFBDDD7C3A4E95E3DDD782CCB410F19C84AA58C0406A
8996ED587D033F89C1C074C04545A6522D5E5A9B5DF8C70F0AD3217F9E06EB6EE0F
900AE63F652EA8B15ECE9A1BF9C5B8C32FC3C776F0AFBDAF724F515AB580163E62B
901B664C16ADA4B5A4A3C01D5FD2BCEAB5409CD91A95F67F3220DB27339270CBF39
902A8C76E0CADAE37AA13A54834118B7EC9F089541C24C1A89615351D5E0A405C7D
9032F3E3F68555B7A3FB5D5B40316A82D5CD562244A8BA7E44AFA209EC7F15DBAFF
90423E12DBBC6D289FBFE5735D0B35B73EB4FFA8807FABA176313E971B45CB7CF1F
905308069FDEE652C7370FB9AD731E719081460C831DDB30B9F7318CC4C913E802A
906EC48D780B780E13EFCCC532E511694BFCB327ADDA329BA39B91ED043B59C9BA8
907BD5A8F93002638687A2A0B26AD6F82690629D2D5B885D136EAB826C7403CF18F
908EB0C1268C11841750D206571F0162ABF2B37BA3C1CAB064C6F0DD882779BBEE3
90932F4B478D5800C61BF2EAD8F6018400FFE7B2F636F34423E69E46F120BA2F45B
910B0A0FFF55C10BB00719BFB83BB6B3423A5F9B30D75702F68245DB2880BA7EE6B
9112FD3484D1FD4228D06B615DF75BC74B156DC03C204A2ABE5B906852051EB768C
9123710C0A92905D1EE525D595C75CED53E81F2332D9B7E86C6C4608264F6C57303
91398D67CC63169CFC667AC447EBFC49EFB62C6AE4A32BC78BEA2BEB181C5A607E7
914621C29F634D4E10079BF02F25DDDA2679F18450A3EA8B3FB2528ECB1CFFCE72F
915467ADA8C89E592C701051BC6B89E4BABE0F982A56921B52A627FACB0EDCE55A7
916A6713295C8F71BCA690A3E3EBA15A2DD4CCD2ACEA83059EB465F694004E4F988
917CFBE0D85C212136BA334B3AC5084E64DAF82E2ACC1DA8631934D99CE60DC19DE
918296CF792862DE8B091E8B2A9A9817DCD78E29CB253FEA323C306A8EFF744F62E
919C22B0172A05C91EA8034500448429367A9FEC14C17DF25FE0F4459058586FCD9
9205C78A0ECA05C088E542D570B4EE3E2B1F4EAA1F2345F9291438871FD2B92108E
92151D1A36728D244F6A9401DB6F375F40E17FC5249C7B1372B58A54144B01E878A
9222B0180E7AE27E383F47668CF3113ED711BD72C7BC064E46371306721386DE349
923D424ED4A3E9A65271887C8824FC906E8985DA4EB9DAE0643081860B9A11D0226
9246915D216B07434BB0D54CD854E77AA1B1852235D8F1BB0DE9077B0D28CA560A7
925C61A2CE55C2436E6A492AD269900A3282196D0DE13D09E5F59281867664B6C0E
92606328FE54F14D2CF030B0ED02E22E2A134284063B195427A50AE1C2BBFF5875A
927052205AE2CEB343061AA757344C96C97568976830D15193E4E497E45F21B1EB3
928BD08D29B649E1E03B0FC5446B3D48144EED9E513F5BF092096516F3CC102C394
929694AEB151A922FBE9722D3AAF31F009F5B9A6CE4D4803225630EBBC2997DCFCA
930545A82AC7A6FC16038D1E9EEF18F95BC9453656281AE413FFD31F3C29242A315
9313AB410A838C36B086BCB8125DEC0B04A5715BFD343227B52D061D0E930CF0F8E
932D637187E4C0CC1A09BF8EE36F4299ABCB0D0927ADC026EA62FABE7D8660166FF
933BB89070B251CAD55262643B09C525184A21254EB64A06F2E7CC6C654ED847C42
9347969C9EC327A0AD225551201D6CC89C52E266E243850F60C6481E59B82FE9F2A
93557E8EECE685ADB12918C2DD1858C53504913FDE18F006A59080DC0129DF0EC0A
9362EF2D348217122E8D754EB1BBDC4219624B0DFD299C37057C218DF31C8C03DDD
9379C84E207CB0EA4E241267E56396F2CAB4F502E9A81D1819EDF533FB7BA465B72
938875E195146097F82E32067591CED6466027B793D658470094BC5F9C2CECCC834
93970467555F70B2334525D051C7CB1D02976D7748272D3DA37F51AC44E6E41CE14
9409D0477A811088395CE8C021608C38A94EEC9CAF71BF5049C78BC34DCD58BEEEB
94133327C0A2DF239299BB1C829E780CC9D3DB48EA2542AA71DF2309E932397D10A
9429F1E8A2E4E1AA375CCD00A0FD0162BCC050D0398841D7F223F26008230DEC6D7
94372197F1F8B1EC245FE06F6E0166010AE7B2F318DF63617BB30267FBD047E49BF
944CC0451CB199CD2648FEDA174CA6B941C5D2AFDB34B9C9CEFC7B4197914EC9108
945FCC6ECE52E37BCC92C001A6D4629006F1D5BF4A3034442293AE496DF7803C330
9461330DA5B05A273D34BD2501F808153D603ABB4E6D655C210D465F867C6FCF404
947D386080C8669D8D21A19170558024A4D6D3782B2D812EAE7F349FD20C17EFEE3
9485CD1C2C535383455F9246F04DCF216D969AD9D3036D0C8484F935B0755AE334B
9497D5FDB49A61276FFC72B456A435105364B3446F80D1623C4FAA619AFF4B30715
950E6789C7DCBA044A8488FA324F713D63109F34C20A07E8B7E70DD153F4139EE49
951B9FDE332C732CDB08090941B5BDEE856898ED662ECD5CB38D7FD92574D4742E6
952390FFFC9848D702A793A54B8B31588B4B5B29145F4091A085C81FE7FCA3DAC54
95389A7AA9ABA026EDD0FB80A533186AFA4D9716986F5532A69A3F720CE6D122F48
95410A8CE92725D3A1B3FAAB05D62A766E0F6E7FFC2859A5046B30246D7F581E996
9558BA0BBD4BD350A1AD4E5E17C0F8E6F248E4ACA9474839131234770F8BE135CC0
956673BE93591D96B7996A1CF640B5BA58346CE3AEB5D56A30E5189485D2E100E01
95751AB5D3FFF72B2D875D78E56B7C31EDC550C4A75D053413D4AA6818E169E5FE0
958DC39F83C055B5E5785934A2492FD5A0EC8F3A36C773521B335E3F9259AFA232B
9592B875C6B4209F1AA307F244B7F049C969DEE1D482A2179A3CA8DC08097E4BE8B
960D96ED65225FB21BC29D161E8FEC18F5F1C372D027FB2472043CA11857B273695
961ECF469695167D82C773B9462B5A5229A143762577D71DB2FDC01C7A89E67FD6E
96216F10E9140212900496DD23DCB6C0148B0FBFBE0BF4BA8D0CB0672E1A505AD7D
96303F44F4E1E1AE1EF9351FA9CBE78506D31B0670008490739DFFDA3474B7A1F0D
964F35EA042DDFD92F568CC694500A604F037E2E34A1908F5DE0FA37907C353E66E
965A30BD741C0FD86E375577DA17773A67C1E08D4FAEB35F0A12DD752648DDF660F
96636D9FAE785A06C27E961966AA75EDD9AEB86FE2DE1D2C25755525D2A753DD18C
9674252D5459C65F0702EAD90DC0A14299C722AE9BF38F0914D0E2E10906569FFDF
968E30152DD32FB175048093BAE3082EDEC3E9B70DA6DC6900210F6829FCCBCFD09
9693ECE3C2CEB3D4D277D02A9B46961FEC4A346FE4F4CF67B83480E27B5DFD23097
970005A7AFFE4EAD0D64E0E1F0073D75A171F972F77064534F9AEB8D017E9B0816D
971CC46A813C1748B9DDCE282154F36C17E6051033E38CB8A80133F683C398999E8
9724F297061357940B4ADF17F8578A89D2D97D1804B3BD076B1B58104206AC8D5EB
973872BC4E3F0905359F4CC30CF689BD1A0183EF317205BD2E10D1AFE5C7433583E
97418FAA7CE36A695CFAEFC89D3E308F5B929CAFF2902AC0B5CD953A6E233739832
97500A2DC2F578575BE0EE442063199A15A35ADF7E84F7FA4656EE122CEC93091F5
976F3F9594C9545D765DFC873BD60E76BD3A4770F09298B81B49CE33F7AC2CE7108
977BA5FC924B8CB7D84C02DD2C8C47C63E7ACD1EF650715D1355B631959CFF6A79D
978575A2A31C846DD44C2937425E01435E830EA1280B167A373F32C1884B972E2B3
97962D2FFFF8CBDE1C15D2FA7815D99FA00EF8D61AEB4617981A47E7B648ABB1E2A
9803CBA52887C6998CEBE144BB2B860FCD1CD71DD47CBBA68AA81F2BD2A54ECAF09
9819C00B276896883A4C6A5CF20D6F7614BD894DDE17C7FEBDC66DC324AB10F2B3D
982580682EC43B4AD47B039C0A56531D4FD5880B9B6E36964AA8AF6E380DCCAFB34
983D8E7E1BD4F1BADF4B507E82B88562854EAD0FDFBB8C1F7A0466B5523A7472CF8
9844306A04CEC6837428944CCDDE968F84047386A2ABA803D6E8CB51B097632255A
985349B604AD27B1F4B55CBD6E3EAC22D3080E556227CA217D433B5B6E5AE47D977
986EEAEEB3201BEEBDA6C60136372C14D70EA1289F03B49E33B124C32C4D170D0B0
9873650AD79C88EA941DF3FC012993557515F266DBEEFF8B22DD06F8AF522DCFE5F
988816FA05FD1E510330C5429AB871795E4B107F403A1E9790A8A2FD4B8C1ACE406
98945881ED2F2AA11ED1EEE6BBFEDB8C97AD335362844A605F34329741C112AD362
99010F1C53E114C98C7D98F4BDE48B3EDB36B533DD3838806555E7CD7A93ABD23E0
9914374BAF300A45D403C1E413F4B2121218A19FD22D6EFD78382CBBF843A3B2D5D
99237FB48105A7A5AE05C8C50CAAC75A2951B3BC3A480A5DB0A0DF1BFF91D4C32A5
993656FA39C945740BC7DFDB016154921E98A0A8E84CF8357CE159BC622ABE0FF2D
9944D2007C518F54450736F05B353B0722FE4F47A93808412C7513FEA552F3E11AF
995FFE45E7D4E34D6C5F7401909179E09B709D28D421391BC3A8C63252988A4BB94
996CFCFC0D11433F3F8AF3E6B4F11F6EA3CEF62D0BC69DC9D84B71CC89B631B4BE7
99723F5ADF297B66831E51E98B8148171FCC1DD1D8EFED3890273CC2E39F1C20C67
9981B354D0EA4FABBE99874CFBC430B24AD370A5FA1D879D6D2BB2758DA7AFE2F43
999DC479CCE6FAE358CC1D90F5F3D43186455C714D337C9348009AC2423E2037330
1000483D42CBC66BEED009B30FE29A2301CABB265E5B4FD77F950DB6E1FE19DDBC0C
1001AA130970D9A3063686867C994D9DB080985C4BD07838917E6407840A3F53E079
10020B0F87E83CEB6FC999821F4F081BE49FC8EB73652AF600DFF88F41082E2AB1A1
100322928041BC9D203278B98D7DAE54FE1C49E1A954A669302E6C8975B5F7F8EFDF
100442374198EE4DB32443FC472E6D184A5D4FCFFD3FAFFD9D221DBDBF0FAECBACA5
100594F72A6F3E8418BF835476D1255270A214911B1110129A0DDD602003DDC15393
10062CA975799D0FBB07DB62DBBAE506DEC231B147CC238E3E52ACA8E6BAEB17623A
1007AC72E13139F95F77C046DADFE8207BA0C6B5EB22D59D31988F850D8D845B88B0
100887694B206D0B61B369837337FE0729C9C5514DE0D09AB50A9D0B4A80C6DFA255
1009E7743C79C9E54CD3BF3270A3C5427C4345EE57D8F4FCCE152C987213EB71FD5F
10107E2AE951FC95D94CB03C37C7E80CE3ACAB663A8C0820220F440D28FFF41CD850
1011144B90F055AFCFE1EC5BDD64E8F0EA2A43438CC5660F8F282146B2C939E36D0A
10128625EB60C55EE1BD0886DD45708D19260EECA293948095FE60CD855E0F1B9717
10137BF464CD63E3AD77094C953A7CB6679E67548D4E5F84F445595A296D7E07BFC6
1014038CB1EA708F4CAFE695D87576583CB843715D669D4E75C8790F2D399EC49C7D
101596B993D8196081B58ABA81C2ECB7A249D749E413575DF4796205644E22F82E4B
1016B12C49A69561AFC25FE632EED760FEB6D8F1DDCF4C1594EE180EEEE3A46802C9
101780D244914F295219B71C3945B667736D02A73125D770DD25F88D3AA7BD26C8D5
101812775AD613C8787D465A6DC9F56D57522280AFC40DE67722E426ECCEB4885840
1019D9B5DE2DCDAA6AEC137664286EDC61984A354BE14A84D777A311B5371FD69E6D
10206DCA23EAC8A9002717F757795F63547B8F95D376EC3086F2AC6AC17B1A1E8634
1021DF5E779CA6E19B57B4F6A2FB897742B37308434E0EA5DEEB9B254CE476560109
1022D8B267FFC621D166C94080568A4F2C9C357FA43AB35834E4190EF48D743F833D
10236680FDFB8E3791F1ECEA3ADBA8113A7D2F6CF0C3C46D646D1EA2A33186BB49D7
1024AD587C37C38CFA20D143B0A8C8373A97B56FC821D3719535470BD6C73C1ECA7D
102588A9AFB2EB63573D82548549605AFE460BF9C752BBC6F46C0DD808A9DFD11700
10262B3C693DCA495933746D66BFE50357A77F38CF0EF1B01567647C22810ED64F8A
102729EB47E33792F24B248ABEB75C4C5E9CABAB16D8416D6A9E0966DEA20843DCCF
102816CF360F06A61D81246292B67C6647E3F06A2B0ACDABC2ACF53C2B807BDAE79C
102940ACF2F51428260BEA168C143E4A3D73F92C60AC7E6210D516797008549D5D08
1030063C60B48B8D06C348C84B8E1515D52C8ADD979E2CB234D24C2263ACB9107823
10312A9ED5AC9934D2F61C446E3E5DEDB3761E177441F9A9A6847C3270A082750CA4
103205AC6FDAF8900E3AACCF1B90027D90C5108CC5AC7F4DC89D4B26B38A2852AF1B
10336905AD7A345717D81F9766576D1454F3BD4FB3E75D94C1453C61B126D89DD098
10347AF840C4D14E04065491C07C592E1F0AA192270FA3215EBD2548947462252E9C
1035ECBF3DC2ACB605659890457C638F9D27C16D4F8B9CA3BEEAA71B38221B7E0A69
1036E492E848D7F130AC46754C6DD14035C35CC691D14DDE3572650DE6F12FFB96FB
10370BA5AEE4EA2D8737EE040805A4C6BBEF515A143F70CC358CD46E3E2FFFAE9DC2
10384A919C4E755881F4DE920C967510A7B2D28C82D7D48DEFA4481536DA7BD039D8
1039D3CFC69F64E38A1A6E0971402A1C71F1DDEF8A3331277662E2C284B9F6943E68
10401D408C694F497528AEB3440F2477C425610FAAFED61DA44D4EC5824A8AC4693B
1041CC84E9996C9EFE547F14E968F4C814E28C7F975B52F2E8B933C0F255A471478F
104233EE33F7B346B09185315590E912FE72C0BBC3AE95DFC79447C54F2332713C12
104324F1E5E12B3E7BBFB985B96B5CCF2FADD93033AAF766CEE292479FC01195AFD0
1044C7624C62C8893707DC0AFF33A05EFAAA7D0F740E2ABFACA93F287C07BC558AB0
1045A1672BA9BEE1F25DF3B1C854FEBBD17DE2D9656490E42FFE06947E34CFFADF2F
1046814890009306F39A2B52662436B25561A15AEA8D0F84370BCEE60904CB3728AE
10472806470D66A852936C36933275AF658DB60BD1CDC31281046C9BD281F223628B
104825164CD6189747D296E132284A02FF6B673A7CA870BFB4948716B6BA473FD0CE
1049E3B42DA4C744FB597696CD50CFB146E491260A126D94A027A64B6B0C6CAD607B
1050B906D2C24260B5B96B724D32C76E7093267018E0DD096110BB14037886AE9029
10511A99D73AA7A0D11BCAE32D673252F784A0C9EEE7C28D3627F46312FEFA779E51
10520CAD1B0FC0FB164A7B1CD0812455F0E29D6005504A0F49F007A449D9ABC4F628
10534C69C30798C94B9CA3A31B982DDB88C1D5DC9537A7A18174482C218556EE57D1
1054FA704B67212A8F1279A6C24333689FBD7239297199859870A079A6F13C110BC3
1055A1BA268F0D62F1E91FF929DF5A05A9B9CDBC17F19C6C7D4093743A41C786A68D
1056D6A9CFE8FF2350F9F94F5D9900BB5E462D29E0BD8EBEF123B3A17A6B8C1AABE9
10576078C84C79C1150304FFF50CBD14E7F8B0AB1FF8246B8268CB22CC30C0674965
1058C28FE149C565E6DA63F7342005DC66DE8FEF1CCF40A5BFE1DE0D791577E3B921
105909BC5DCA357B108ED2048AAC790DE75AE3217671790BEA46B31CFDCD517C9132
1060E73A6089E3A685D7CC8D3DECAEE2B517E101221DA00A9DD9FDF3E6EC1CBF7B21
1061FD747F2B6283E8EFAFA3835657FD996090CF69A686BF63476F4155DC7F7E5179
106281DEF15588A602029B3D9A823BB4382F5CA579ADA4909799907E4F028E3464B9
1063CDF849D7D0A18782A7EF272E06808891AB16BAE10E262A2BB820D0A105BE6D6F
1064CD54F65FA8B042B9CDB985BF28F05C302408B8D5F161DEF8D201E49C38456644
106575F14C9E4A0429710A10A943E8095B4BE3C1259B96C459A31D35D733F89B2BF8
10663AB5070FC96AB28566066BDDFDC0E2D89295EEFAD5FB3872115F3DB41AAC7196
10672A88AD0034CBD2D23E4EEDEFF5B7AB9F2F5667D02A6CFE7FB05970FCA1EA9E92
1068751EBBCA57E57C850E5744CE1CC3D2D448E4B617D1C8CD02048F0F4C33017A59
10696AEF575A995BD5566886FEB6B9437523E94EEF49B7FB6F4E5DDFE5B49C6F918E
1070CA0251E643A73BB781B50947367022BFAF22852AAE36618C1618344B1F1CC833
10717D31A6DA80759CCB91D4799298AEDE6C2D4091896CACFD46F50C703A1884C745
107220092A45ED7D3E56CF200171A08B9B16EB19C7DAEEF55DC47050FFAE417B3B14
1073D72C7BC064C793664A6193BA5C068AB01C4B3A56B5356E481E6C11FE085DFE85
1074C08DA966A14ADB675A100A1D39938B88E66EC340483A4AE4FBCB6CCFE6374F52
107502C1468B1CC01092E73F60D557183E408219F8AA8C3850674DADA5057BAFDBFA
10766FCA3B3F0FF07F8967AA3D7801E5926D8A5294AB2626FCF40CD5C9D0EB2C3C66
1077EAEF173EF308A1A41892A01C54D58505091E21DFFA86DB073FDD874267E31F3E
10787906A8A2A81ED2472F102DFAE3DA55B0A5BB34584AB5BC62198C8B31A692A528
107931FE4150DE7597AA568D5B51EA9D8B8A5B7BE849240D9A4B7CAF0867062CD272
1080C7C29680E848C52B10E9DC2EC3BF3BF404B6CD50B63612BC61AB03CE66FA0F2B
10817E753E58698AB2D429E8B34932A6DA242BEDAD15860E18052736CFEE5A2027DE
10822D8B47438A05EE0E202B5804A180A139398AB89BD6084F3FB90BF3364325E2F9
10833BC570C0FADE4F5B4C06F423871F7FC66516AF525128B97D0CB7B586BCD720C6
10845B84B045D1827FB174B2BAECCEDBD9860CA50156FEE98EA8EB2AA1466B440E6A
108525CC4C1413026929E59917512F1B590369CE216A81262CACF2CA601BAD1DB296
1086F1CAB00D3B633CEA29BADB838842B4A99394EA420D4C226FDA4120D745775561
10879F33AEC5452E1D70C1EF4E9DEE51340C9971DDF224D62B74A05E533A5070FE41
10882854D504F5705D60F26706456819BFAB8F144FBD13EC3F7DDE64EEEF8970514B
1089B11D44EC4712F3FFB1CF90131DAE62A36825A1236FB0AE030C03D88C39C4F4B0
10906D4069E369C6F4087BF1DA2376E1B3BC6FA12FF3A5FC24FAAA2C67B66046C4A8
1091BA35A8A9BF6050148A98D13759B60BEF6EE72A7B562782F14CBD86DC9C27C5EE
10928EB7B96CD01F84AFF37947D33E3CF3FE175D56F258A18965CAF5F1AC3B865ECA
10930CE049039285ABF1D66296F8CE6290C072B5DC49265802BC8048F1C1A6D117F0
1094A281E091E1F670FB981376510B496A9A685D9024E65DB7325473E84D1F19087B
10958C56146B4C8CD9069076AA1136A39AD12759316EC8ED9E783489992154FD7293
109620123C1E98F2AD24631EE125617E946549810322329D3796251B31180F5B7023
10972F0EF85C8045A65E070B495F9BAA165F1D0D9320CF95F40619FD5E5952B8D9E5
1098D132FB7B0A9FBC002D37E3EAF26AECE65528737F1639BF193295EC859435E29E
10992812E635EADD3DC76035C4A1A288EA4721DCC2D46AED4A346B6DBF278069402D
1100C17A127320FA64A68A17211ECC33CECD3C58EE1E8F12AC6EB4541BB863A26BEE
11012C067A269A5921EB9459A40CA9E2A988D771AC90F5D4980613285D92FF75991F
1102688E6AB74636D7DFD6628CD02C548B91BB515BD68E713B822AA9525D2B80CB35
1103E9C4AFB4B2A3E27C5B62A5D93A40589E6CD55BFC1E7B6B3024BAA0138AF062AB
110412F7FF6D236BA40E9B06788F74918FD527F6B65F7488381E5D8A921403F6AD0B
1105C560EB441DFEA502B06793FF2952EEB2D786BCB373EA1A57598A407AD733BAA9
11062AE253700DD8D6DB1DCEC1EB83E067A824133020370BD57E550737219CBFAC52
1107904BA3DF1077028ED0F0417EAC74B7B2F1E651961BAFC2119D3B6AD83ADD67F5
1108F20C2843AA0329301BF7F4BA38FB00E8B6906AB7260C9672CC1411E8A3CD7F32
1109E476B50B9ABBB2EF67FE7595FAFC213DDCF04AAB183C2CBD5A574F672668578D
1110B70B6BDFAF4EAD274BFBDE3F6CC153E7487B388335DCA22FF51260745DDF83B3
111142F631F9A98CC8784EE766CE730BED77CE076D9CE343A617C505041756083552
11126FDB3B203E4AFB4074F64E267EAEC3064907E99137591E1EF775FC81F0F0DFA2
111329416822E2007D532ADEFFC5C8809C734F23D8653DECE4776B17F7F3D85D124F
11144AE95E92F0F246E935980E8BB9FBFB814AC621BD2B0A493430C18911E7CCA37C
11151E4827F88346A3E368550286477ECBFE6D58209C8AA876196EFB5E2EFC71DFCE
111641AD11477BA5B117389D1D4D9A92C591425F5426A4D25549CFDC9C3276D13F77
1117F22D556CE7C2BAD924F10F3D6EA49CF5243A92DDD4C7EF760F7504FECC08E6C5
1118C78BFD6CC41B619CD6F51B809B3EF0478D1FF0FCBD959FE59733BEB212A3B14D
1119A8AA0E667FC72117A3D31B55B2C06EDD17E44AF8B9152D716D63BE27037D296C
11206A4CBEA63D38EBA7D8C07C488F8EF1DC90B7ACAFE69177AE59562267013A6F48
11211B0804EC43A21AF3097E34C837D5C97CBD30CD69011B4B0AFAB3F4E6C3E9534C
1122C98C52711BCB578AFDB111374E84402F78065EA02267E57B925134FA8E2C9D3A
1123B75499106E77FA88FC7A599E494CB157B119D542D5C084AFB7E413A511E71F15
112481545C1F89E2119E223104BFE7CBA3C6BDB7623C70978B754FC2C612A9784E3C
112530F981C2AF33A19F72CBF9937F7E1F1F0B9F96C226F327B42025FCC1CF273367
1126EB4578A94CEDFD5B2468781C07A6471E41F1D2021392DE30F4A6115B9FD4D1F8
11277D72907E36F7B0D7D47E6D44F1C2D72C46A5FAF69E8D2DF35947B58DF0940A65
11282DCF95B9951E639BAEBE86BCC0430C2CFFA6E481B1BEB7CD950FD85639ACFB17
11297CC2B0478870C5D7FE40D59CEF22C29AE79F13BD37B7238E0BC438026A18C48D
113028D641B10B6B0EB809A389FB9E7170C8F7BED9819BC8D8EC0A43C38E331B7D8B
1131CBA0D7E9A43A1DE94890890F4518846D19386EB2F3DAE032F125FB927D43DFD7
1132C2E5D4713031AD1EC67CF0363912FCA0B83F5AAEF903C4401ED76AE6E79CD780
113312407C3AF9B46F3D75BAC74E3F5493443FB987BF91BF22C814545ED0AB8293BA
1134A6B2995AFAA13E320AD49D4E75F9E05E65040010F991B736ABC876732C6AA435
1135F052967F5A8C890E34CC2E362507AAD489388BA844CB444C99496B77BB21073D
11365A1E7519240D7BB5187394D798E6BF3012E214ACAA7FCA3FE1A51A2CBD198E88
11378E78D914D2568528BD06D3BC04E63BEDA28B0AFB6A92C99CF854ABDF734D50B4
113889D1E060583762AE7BD5A92C82C668C328A7EE8A094879F30AC73D592BF1D038
1139D2DD53EECE3DFCFE57C8651C3975961E19CE70FEEFBE0FDA9853E515F3F2822C
1140CB6EC06A6FAF36589C48DF92E89322A1BE850464FE7FC2F96C9BD8A3BF76EA7D
1141B2F9205F17ED16181ECE486566485891CFEB0B98BA063A643FCAB7B088572B28
1142928BB8F167146732D1A2913E83D6F6E8B2B613E295DD319D27DD1233E1192046
114317799E7CD2AEE9A8BFCD82C530C53FBDD4278BB794AF06DC5F810D64724DB9C7
11447BDBBED877F06C04FA5813ABCDB12F5C68BF024A596EB6B60F4BEF012781F287
114575429219567961E39AE0B2DC8B57AD1C8E54D6C1A5D977A19D8BE66583C59135
114607C01733CD8459E2E86C9473D233F132A9BD2F28B2E4231B36424A25DC27E9E1
114786455E5EE1BC20896560FD379306C6F4D00BBB605272EE3587E3F4D14500D184
114818050C675965BA4A2FE9064AB72387D53C3D36DA331525815A0D883034E91A49
1149F2F59B9A6B9938FD23528A3C29D09A1BD28300EB9F453CBC805848AA250AFF5B
1150EEA88B3AFF65C0F955B211492DA273BF966E4C5CCA486362C11F2DE64AC29FEC
1151FFAFF663DF4814427ACAF8D17BE9D42B1490C5E63391DC76C15D4528A7AA0BBF
1152AC068024346BB2C8381E2D9A1C1BD7D89ACE5A34261310C43E2027DB4186B204
1153677525DA571D552C56CB5409D4039935AD72BABAB1BAC53B1570749CDC121F5B
11546EAAEA5719A7495BF2CAD94D0914195055612EA070140F8B80F172DCFADDC49D
1155A6F8A6E0DD3FC77E1AE60259B7E572F9FB0FFE5AC0EF775B3527675DC07AA9CE
1156CAC9221710A4F1CDC37A1BCA0899E1FEAAED9FCE5756767DA6CF19EB0F1F65F5
115710951472901066A62EB6EE1351A1A8B79282DA34CE460158B3A959DE1435D353
115812BD21F786046ABE4025E8927FF03B27CB7F76DBAE7D9C75A5C5F59A6FE62CC4
1159BBE176E3576F4E54AF0576C5A12E22AA3AB3DFA89F1A8E59144D2DF990AFEFF8
1160E2BCD87382E74642415EC4D47477623E91F57E4B870D569A68488E0BF6DF9850
1161E8F483867C7BC3BF70B83E85FC3EF779931083688028B97E3D2FD1AC69281000
11623D8B6BF7C21F20AB8134446366C06BC9FE94A14166316B7016532CAEA8C866A3
11639683C137CF1075A32EA4464C8F98675AFB706AEE0BB3081BD3B9645CD876A371
11646F5D5698D495668492BD7D0E543BC7B69BAEC0B1AF5C19729757E9CBAD48E344
116558C96037E8D11DD70EFA2CC1868AE579E4EB0CAB64E733DFE9E74D0B877E1719
11665ECAFC3BA385AC74AE8C0F52A517B72A4AA133838CCB37F110F9AD5F8459BC5E
11676FC269BC926A05E911A8C584D2DFB768DBC9F2275AEF3D11A7B274A94D812AB5
1168CD227995FBB4480D5DFFFFBC276958EFF259B22F1E44EDF3AD88FA2BC70D6F38
116962DEB28717F53A0783EECEDF52609DDE0858EC2038DF0574EFE7F0470FE0EF70
1170A316DD054439ACDD41870C1B8A91D2FF4FCE2DD65D7FFAB59AD12BE2D136A363
11712519C122EAD0C51B75A32DDAF9EBF174C3772705583542BAABFDEB235F6C86D3
11728B4919D9D587868528C387C85C43106EAA640C3822F95F394A8F08CBFD62BC11
117399FA1CC34F7410F8958C12D678D1E2449FAC44585C2ECB6162CBB33E0EFD8C08
1174180A08C8A7C4DA7D02FC94441E884AF33868163C8BF6893E3647D123870199D8
117543347AEF16629B03C11C5278DB03C9C11E5416E938C6380707FAAF7593473690
117658327F0369DC5BAA3D0CD38CFA1512D7080863209F38FF7B7F2B9A4629BE4984
1177F680A65D6345CE6E181C38440312FBACE57CDC97C74EB287D8217083A785A21C
1178B98185E3FDD5DF3C42A943ABCACED1C4AFB647273F583358C76BF8FE7E8426CB
117977619FA2175A58F9734F0056549D4F22080831ABC85122573033C78CE9E25794
1180ED8F39F9CFE334D19194FB0BD31E43F45D65C58481768E27E055B8F2B61C2B2C
118169538F6890D42294D762F4C0DF347821048419B48D1B4138E1D9E15AB93F6E0B
1182482139AE2E59695EEFB3E36BFFB75BCA92FA2DD75F13F95F33F0D0AF287AB87A
1183A4F989B3DBA3D4CFB749919C74458AFE2862906ABDB7F86333553DC2A932F727
1184A1E43B25FF890572B08B60A48299E2A1884C1A2117D8C20274DDF0B8BCD5F053
11854E68357A7F95E784182552F569C2284446174BD119093E461871C605B048CEEF
1186E2491DFAF1937E33B45AF11889C29EFE3E455114534B7ACE3F0DA2A7C02ACC61
1187354A7CB02C6969AA8862CC0E9ABDBF2CA785B2EB583A74C1DB3A6B5B083C7A5F
11889CAA97D34C257C1C2EE5F51CC8EA144ADF1809322C74041B58590AF4E3A2546C
1189DD86CC2C913DACC0173E59F3DD07AE5AED410D672C67788039DFF5260096CC47
1190370309F6B9FE52FB964A03C260029F66F79658B52B6B023FD094D91458C690EC
119109E79464E955160CD5E3B5E88C85538F453C3FAE63A842CA4F53883D6E7DC07A
1192BDE5088060F202BEA08D7F099A0FD55DF15BEEE3220CD8B6DDC80FAAA55331B0
11931ED9AC9FBF386FB2939394076C6FFE68920EE96F55B1BB3AC812F5B17B3D6C21
1194B7109E587C5BAEA8A0547266F875BA9C0F8985280D787E245C7FC771BE70A391
11950706AA555C2DC5CEFAD382234F57B76862202EF00117782D21E04222D401791D
1196114DC5D60B49CA3FFAA5D2BF92BCB0A55FCED78DAA5D454B5280B8D82BFADF45
1197EABBB917A93167B2DA914A5E3503BF3489EECD48555DE9CC24F54557BC27F736
1198A11229BD03EB82924CC5BB180A599B455612390753B0BD2B959928423AEE08DD
119949F438501B238707391532B002C5695BA5975BD1FD3FFF88BEFA84C05BADE6DD
12007EE7F0F070978BAA4C60AC86A0495FAA16A253288D19EC0B2D6F55D424F42577
12017142DEA2A277745EEBD136EFB89EEFF3EA37FC1DF37320EAFBF3A3D2A8A10100
1202D33114FC0F08ADACCABE6DA1B326D400AE1F8DBBB9BAF0D2E2FD343315A4E603
12037C0DE9377FAB2EC186F298961D33BF2DCF42A862182463D53E1F29812452F57D
1204474AB27A6B0040BCF110A08DBE6885558D2B4510D2BB41CF8B95C1A84038AF75
1205C9D7EA1DA8419B53B897342D794EA969D853E2D480D99A4C03C82DE6372620DE
1206C38E68881C799AF447361748D3364FD3DB00E679F9FD6CEB14B358A063A06EBD
1207AE8C3A2EF26A6B22B319E0DF5A0C05725EF6C4D0FBB29123B8F7D7C1452194E1
1208A6B7F0F50499F77B9F2BFCBE3347DA30D6E48A3DAE77218F1557B56A29590133
120980236FA8C97007CF80CDC1C8A89FB8A5613CB53C978EDB86D83E2A9B165F4A60
1210888F093806421216424BC85895D4456BE5CFA8B1514E51397868941E390C3149
1211E8C5F324B0C50AEF0C612C5F221326B0301C4E62C1C16F767F1B82A253D09FF6
12127212E92FA8D255CF3EB079BF144D3535082E301D87E43FC0DD6100D42D009DEC
1213B8D8AA1EBB0618749813AD5C05B7DA6CCA2434B67060237F8B21435A8A0C6DDD
1214E8415CBFD112027400BE30976E713EE556E5CB23530B0AF924467254A0D9809D
121561FA7750C7AB05D920E7CEB89A63191E8D905D8895E2F5AE64DD113246B78C5F
1216194FE1BD8E013F02BAA1E9B007B82AF9AB7D5856304090015BF8227CB17DFE78
1217DCA1E64FB873FA6FDAB2A8F80C3A710FC5DA2272126982263B0C4AB0D5D022C7
1218862530D722C9191213F2E2091BD90B87B210DFBD53804646581CFFDA172063D6
12190BAD6605537EADB877D84E5BCF96A27506600A0C2C419C2CCE9A3399460B1078
1220D93529271AE4CD1EDD1E930F610EA8ED6183D0EE3FDF20603A54D5E639A7FFE0
122198E20B2D03E1C1BD671E7D96341D73CBBD11DE3103A5929790048BF912C01527
122214728FFAE384EE62DA78A4B5F0DC8133A51E84D66C38547C4B3F7B563FC743F2
1223470044F46A11820273886F24DA53AF920DF22AB5BC39CF4E847567796ED5BE8D
1224A9E19C8E90E9917C4F3C61D1329692CD906BE590AB65FD1E8B15E56CF5B4D65B
1225EE94BFAC3AC7D1DEC1F988AAEAC9EE172817206B100846B10193F2F90F6179E0
122625DC30773F6A88AFC73D59FF231069C132F0F09FFD09DC861D1EA1D120A104CB
122746662A72C950C7FFBD9B78811F7A56C9F32F5A7C89C3C39E892D0F5619FAF20F
122850F266A23CD096A1DB3F4BC2339B5DAB577A56F4F8228753E9B1EE264A0F72C9
1229FFFCC6F00CD360232A200FD0D6DAAD4D8C2A3698439F4061DA0E20880C0ABB10
1230CF920351795D343F69FF21655B9098C7AE2C2E5DE1611BC3BD136D0B99756D3E
1231DF0A5E6075F9F160CDEE7F99A0300F54C68480EFB91DF6144057141E3F31CA3E
1232F5C1789FD6493C169DBFD2D0AE97B95F4764C10E79C033E971C46DA7F84DABAB
123308C710ED1C69555E08E1A17C1099425BDFFB986B3F61649E22D5C598877B16BA
1234D95363D12BD576E8A2F85F8AAC7033345825B365DEA941AB765ED927B26E56D8
1235DBF319C475BCE76EFB81AB474E2E65F363649C17BAF0E8A4BEB5C026F2E0E727
123669D52E2D9E1185A5CE21A76A60C7234FB1B189B5D4905274E8C71910FCD19998
1237A2E14769D9D81990D12DA3AB383BC7CD104AC5F309C8C0453092D5D3D5197A5E
1238F8D024BA7CF103245B158135D8FF210CA1E714C60F4C123DEC5465C1001AF16F
123966805137B3A377F525D123DF796206E0BFC22E40DA6C81AC3FDA8D96E0FA634C
1240444DC858DFD269F941EB24740DEA0A02FF435CDDAFB80336E2BE501B8007064E
1241F8811CF7058DFE6F91EB224048CC0C07334E7AF8CE6BC992DBBC32087EC73D08
1242F922B94F75FD860BE830527B9D894D896621D7EA1633AD225FE67947F39941F9
1243B074669C574275D1FE5081D4B35F020B14B93694D07E1A53ACA9F6C5A40C19BD
1244545DC7870E6FF36DB24B9FD47FC0991F2B8E085EC886BED4CF7CA546C24EB2C1
1245731A81E82CD0A741CD5D97A9F4C5C4430AED7F6DD037F000AF0E302A6BD934C9
1246DE3A1DBEB9E97A9D33C7B3FB7BB2F37875F33E587F92C718D030C8640651FDCE
1247949AE69B132AF03C62681669F2FE6A99D808DBDFB399620BDD6182A11B2868D5
124815772C92117185D8389C25CAAC2A0D608B9B130AA5A9339410DB09EAA321E3C9
124983844DBB148D54D0470CA443B94C90759D6128A88CE5490978A20C9D32FDBCAE
12505FE2CD4FE99F9EE6CC2118677D571F6A27F29C8CC0D1EBD86C96B3AF172CC552
1251EB6BA7CE13AAFE5672863111FF2609E05DB35B5D96BF3B7694F1194A8B427083
1252FF
12530000000000000000000000000000000000000000000000000000000000000000
12540000000000000000000000000000000000000000000000000000000000000000
12550000000000000000000000000000000000000000000000000000000000000000
12560000000000000000000000000000000000000000000000000000000000000000
12570000000000000000000000000000000000000000000000000000000000000000
12580000000000000000000000000000000000000000000000000000000000000000
12590000000000000000000000000000000000000000000000000000000000000000
12600000000000000000000000000000000000000000000000000000000000000000
1261cleartomark
1262%%EndFont
1263%%BeginFont: CMBX12
1264%!PS-AdobeFont-1.1: CMBX12 1.0
1265%%CreationDate: 1991 Aug 20 16:34:54
1266% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
126711 dict begin
1268/FontInfo 7 dict dup begin
1269/version (1.0) readonly def
1270/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1271/FullName (CMBX12) readonly def
1272/FamilyName (Computer Modern) readonly def
1273/Weight (Bold) readonly def
1274/ItalicAngle 0 def
1275/isFixedPitch false def
1276end readonly def
1277/FontName /CMBX12 def
1278/PaintType 0 def
1279/FontType 1 def
1280/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1281/Encoding 256 array
12820 1 255 {1 index exch /.notdef put} for
1283dup 12 /fi put
1284dup 39 /quoteright put
1285dup 46 /period put
1286dup 49 /one put
1287dup 50 /two put
1288dup 51 /three put
1289dup 52 /four put
1290dup 53 /five put
1291dup 54 /six put
1292dup 55 /seven put
1293dup 58 /colon put
1294dup 65 /A put
1295dup 66 /B put
1296dup 67 /C put
1297dup 69 /E put
1298dup 71 /G put
1299dup 72 /H put
1300dup 73 /I put
1301dup 77 /M put
1302dup 80 /P put
1303dup 82 /R put
1304dup 83 /S put
1305dup 97 /a put
1306dup 98 /b put
1307dup 99 /c put
1308dup 100 /d put
1309dup 101 /e put
1310dup 102 /f put
1311dup 103 /g put
1312dup 104 /h put
1313dup 105 /i put
1314dup 107 /k put
1315dup 108 /l put
1316dup 109 /m put
1317dup 110 /n put
1318dup 111 /o put
1319dup 112 /p put
1320dup 114 /r put
1321dup 115 /s put
1322dup 116 /t put
1323dup 117 /u put
1324dup 118 /v put
1325dup 120 /x put
1326dup 121 /y put
1327readonly def
1328/FontBBox{-53 -251 1139 750}readonly def
1329currentdict end
1330currentfile eexec
1331D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1332016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
13339098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1334D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1335469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
13362BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
1337B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
1338AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
13397FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
134020980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
1341B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
134268A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
1343D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
134426296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
1345F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
134677C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
1347BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
1348C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
134930855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
1350148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
1351E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
1352E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
1353337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
13540E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
1355472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
1356A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
1357326BC603CD28B9A6E511975D39BF5957AC2D66DAA7EDCF02EEAF3DEE9117DE6F
135808E9BE2333C2BB8EB792A11F56C579D6D2BA499BB7AA5B95848672D451653CC5
135960EA5E1AB3606372380A5A2B72AE78A2815ABA1487777CCE39B5AB4811EDF454
1360587D76017EE4001AC929C6B83B85F2BDD3E4B9EC89B7FE5144B968A3D7360F11
136143F48FD9AAA21E33E61891FFB7E88DFACED3447A8ECE820C3608C13FF54E5799
1362DC006CEBFF48FA6BB61A7D1390B3C3CE9E3E745EF703BB395029BE46CBBB37FD
1363E1DA5203783B35F36E0C6B89D594FA87CC2E93B130956B1CCF83A691F1B28AD5
1364BCB16F099B3F4546B64A092C8C090CD1CDDA3E2A3E6AC856C63294EE2788F503
136577C477268902BD98EA81E9E897E01D3AC952F606A2A8EBB8F652749FD2A8C702
1366D6C46286AE547BD4F2CE836854099D9E1A8F4CF98B15E0B749FA2298AF18D07E
136770A57A2B419F41D0FB9B9EF8D8EE5DFDE5F92A98A8AF047E6EC7534B6D621250
13689DD94442FE15817AE1B503A324FD8EE5A307CED489E87DB3EFAAC45202D2FEE0
13699837D351E2D6C28A92B7BE39FBD0322C34C429EF29E19A74C60E94515156339E
1370AA50B5B0DB2BD755734A271A6BB2B9E2C4FDB1F5A3A63F68BCDEB309A9D6C84F
1371A215CC22AB5EC01EF3DCAB9377C43938AFDC48BB83B3C7066721F90FE5B938D2
137248F2E6E21D5A88139E2D39C915CFFD37A5566B386EF66D6CCDD396399287A8D1
137373041E8F226C0CF34E0BED60EC933AB27E19B0249F6C8EEB0CBB9FDB63263E06
1374DD6323BB0A4F1F1AB055EC33C64692862A020034AA16BEAC7625449E801A93F4
1375A1D7D6D403F03C073367722319728DA9326B7995B4D552A96EC7923FE37CB997
13762720502A02D2263EDD55D44D380ED0714BC07B89EF99A70D5C4C1EF0AEE9AE01
137731BFFEA7A2A59D3CB6FABF71C1BD76DEEB59F93B02CC3E395383086EE11115DA
1378168F6BE6C0149B6D006324BDF2A3B26BBA4DC7F542165039970E18983659AE35
137930F9C385767BE8D54344D04D9FD5A9FA66B4124ED8E3D0A03BAA64C14A253C3B
13807A50D97D8999BB2E05557103D6E5050A88A3166B0EB4A13A8733FBF6283341A8
1381DD450E480A52962B919DC4E6C5798BDF89CBE2C193037DC8E6A3AA5FCBA32792
1382203585B02ED1921D1CDF5291E08B407C16D180BE8565E8BC76BE9E23E9B004F9
1383FFE750652D0AFC1295791FDE5822274BA06F08CD38BE65839943D91B9A2CBEB9
1384E2300DBF4E4FAB3715A7CB3AC48B28693F917B03353489FB339E5E264A489A9D
13852F4AE3A4D114C06286CE02180A76DAAAA2FF77ACF39661DB8A7B8FB69D32D300
1386E1E7FFB545FF2BD948B3FB0400199BF26329196F96532CB6CB91C91B625D622D
1387EBEBE57674C00F651BC5424882065BBE519545F56C790D996AFB66A7F195C8B9
1388C73D5A4D3D3E85D7966487F8BEF09F1E476CA71183F1F6760AC609573FCA03A7
1389EAE23C7E0DE5AEEE122B7C8DE9C3406F388F023395278B8EB3BBF7F066C4D1AA
1390413E3F2AA3AD74CE1165523CD55E0ACCE156D46CD73385FE14D18C31C3368625
1391DCBB71A03D216545B932834C8D50EBF67764D6981109D1FE568D23711AE84A63
13929527247F9FA38EC760B4E487C8F6C0D8AFD188243240FC1F517F2FAE34CE0B60
13938B4D5A4E7368C275DFB35B7E4C63330EB8C6A47D91BD949C0C889405278E3FEF
1394446D208D0E333B1266ACA29A9C277F16505E75CE48300F706426C1CDAD62CE17
13950CAD60A6C7E11FF64D15EC53CEE07822B6B64A18BA688F28A3079FBDA83055BF
139681542A25B269614D10833BF271A7E286F31196C9B55BDAF99BB9BAD104444403
1397CC8658EB9E9D4336CDA007F858915540B99656236B22FD256E01A4C6B7E2EDD9
1398B20790E851C8BF301FACA6EE447EB37A515C70CCEB75B3B0C14DF4E80CF39C84
1399B2A8600397D95EB376C2DC38EE778CE7D4FA81FBBAB10DD80BAEDEB73D9C0691
140018B68CB820363C81AEDAC45B94C8C7DAE00A5D312DC8F8F5018A956C6D2002C3
14017124822070D0F520ED7BF2C37234297A9B52B2DFD07D77DCD7AC9F86B4DBFC02
1402CB0C018A816889D7C5383DA8B9EFC846439CC141255C12B9DFE875A7024CFDBD
14039D1711B1DD6657E0DFEFA209F5DAE08D0D4A103B621AA8BECFB14065EF6DB3B4
14048846B63B61326E2F94E49BD64730FC32AE841C3579594872ABD3D74947D092F6
1405DD9C121F3EC57FB65CF9169353C5BD2386E840691143A54FEB512EABF6AC7A80
14065293234FC017ECAE9272D1837730E178935507FA60DB026BE21F2589AE66104F
14073BBEA521B0F726C4D2F9F1DB7E9861F54C04891DC067D940921164E44A3F68DC
14083317994959714895F8E2B0D7502F59F514DDDCC5F1BD67ED0F4F4B3609D7B9F8
14097F1678CF472BEAE8CC5F66635EE169928C1F09657CB9D6522324AAB8B0C5FFF8
14107E03BAEB1795674ADF7707B21F171D1327AE61BB3C04FCBA4D19B2D56990ED55
1411504CB529364E7F4DB2CEE64E5EB82E28276DC6ACA3FE371E2C0BB2A677BEF541
1412E9E45909B1216922A3FD3F6813ED29E8AE1ED2E109FF507ADCA31168C2DB0467
14130DB3EC44FE06DC0B99DD943DE5D047DEECA3EE3AA1D9534549FE6034D07DE576
1414C4D8CB99AE24899375CB88D533B9275C6106AA32E4764E2C02FACD03E20370A0
14152F9C88CC162ACE7D20283BEA88B6EEEB2F5ED2D9EE6A812E3E4763B121D8E7BE
1416CC77542B40A7855DCD6A4CC0ED8C9461623409653D4CC9CA357189292C424C69
1417B1581BDDFFE586C852869E9AC1CF66B2750A64E7B2344B59E78A2D44C965A414
14181E0A39CD8AC1CC854775DD023D2054FE6275EF52B2F5B6076708DDC6B5D25E39
14196F7F581648A3AE77F1BE9DE186C681869F8FB6F666DFD406B8646012FF20E226
1420A70FC6A1ACEB949EF88BAAA28782158FD2792D74433685D5031BF9373521D6B5
1421E47664A0817C84AB149427748406C6DD408FDF1261B0C3F7E0BD44DCF7DA8C2F
14226F2328614E6F584C27D5277496EC7BECB97369D6A1AA903CD9B22515C68F5EA7
14239ABED4C6F61E65B64EA89BD0D3E75A9C0A3B850DA4FEC57BE286F2AC05BE94A5
14241F53AF290F37AECD47D4414E0C72B26EC7459763D88DA381D2BBE348C8833B45
142508DB3A4FD7CCE5DFB4183DC3F67CBDC938BDD2BCF331A74946D16F44B17D520C
142682D8941943C66D5AA67614F4F21EC5D00BD67499E08A26C5DC0BAAE3475A4324
14274F4911E6BE30347DF52D6A81CB8EB06A37862E8CA3773DDD551599704EDEC441
1428776063C9AEF0EA1DC5A7861419E0BAB5E6B0D00063FDF1089D9107A723F1C7B7
1429EFE65856510099F868B5E12AF5DA2CB304F6D358923A98D6C5A78C0100B28F8A
14307AF176D04536B8AFE1CECB2B6E312E1253EB921EE01FFB3185B4C4BF3A744602
1431FE88213FEFCDE5767F7BB3ABCCA106E3D74BC9490F5CC28FFFB77958544F56A1
14321F46E9061001AF660D3B2AA6A0B4EE36D5E172AD3F2A00A4B8F66D1233F54945
1433AF4E412CB64BB414A6489A186965D2060A17E4B905D2508968DF5818CA379948
1434799252B606C14693805869D44CF44CE55C6B711C41F6F164E9A12F450B0DCD1E
1435C1B5B3904FC688CD36BADC8CE88FA84C1A54DC6AE949A8D0DCF37495F0D436BF
143655E74685E06104BC526EEDAFD4EDBC9A8A0623BEC5B09F7992CE6BEB00CADE55
1437E886E4E117B8DDC65ECE9B2160B8FF375EFD7FBA6DC9EC4B8DA2C589D5852263
1438CEB7144A1C807017DE828C88190BCE3C6E3A4548EC868665A89A583ED2941FC8
143914E18E555F057236F60FD92BA71BB32DB3849ABBF786DF6DCA33C79EED7B6F21
1440A8E51ADEA3C33CE22B9BECB285166BB7D2C65FD36FA8F530496568A977BD8EBE
1441E66FAB3619C84DB06B2BB63DB29137BD85D8BC9ED101F6FB21FD7137DDF3836D
144208F3891FCA8406ED1F0810392F28E155100A9456F70CB7AF910AD5F32EABE8E8
144385A4F93FD90D9C31C359B5E43FDE30A2AB467B4A57AD5AD8EEABC269013ED73E
144493389E15E05CA5F226023437B1C1704487BED73A6800220DCDB4E0D84A7DF133
1445EEE8E426CCB41B57337792A09E6680FB6FB3A8EC319B8C7DE6EB496AAB30EA68
144633DBA5F12AEEAFAAC89125835BDDA38A85EF328284CFDE0EAD5FD7C8C6E10548
14473C8579E906A33A6DF3B82A3B8A88788ABD1F3AD15119BC02444FA2E135ADEC04
144883376BB65A9677B4B66011F82386E82F09662E71261EB9453284923497C83E78
1449AA8CA06584BE4B27F05298372E9774E34567E536400936890EE6D48A5F4FA009
14500FF9DA6EFE73B83853F5E7DF11D3487A644EF685D6FCEC08EE1B3968E8706313
1451C77A5CFFF18DF2DE53DA5A126B6BB464EC1FE1A018C37967CFED66428B7D5416
1452951D8B9ED3AC38B6AFAB080EACBA23273B46CC164CFD755B5EBBACB03A430D13
145324839F803A0F39AA2FAA98C35816046197DBE4CF97D83C519C89095873B0CF2F
1454A66E12206A5AC00432C9BD37252B61180F5BC97AE7FD8C7592DECF0D432FABCA
14552CBBAA2717E792909219DC882205BE5F490D1E4820C15F340140D0F24F897CB7
14560780B2D93F0E1464F60188924D4C2C25089E136CB038D18C9F509EE5862821F1
1457940FF3E85CE57391F2BB7F9B77ED8593D8B7E05540EB288D26FC95F288155DCF
1458794CA95FEB4742CEEF38225B9EBCFCE5931786AE8DC3A568C504ECE36608FE76
1459526417068EF5FF8A4F27E5401DC1E6855CE85F292E2F6A70495C0BF16DA35E87
146042CEC432E2B0BDD6B18945698E6BC64B4E5CE3680C198D4E993FA8DAD435E9C2
14614EAA5131E87625186750D21A5F1B55618261E4ED80803DC3B7B2F32D72733B61
1462AAF97364611DAEDA9604A3F3AA29E1F120BCC6DBA5CE0A641148C26E18A4F43E
14632AD3FE85DA9B5991F74897E87CB5052E59C2FE38A4BECC0358ECD6AFF1B7F402
14649BA89A791DA99E2A259ACA5C71BEA8F5ABCF928D5642DA6C04FB9553068F4437
1465D2A622A7353AC73AC5AF20345062E1235CC205B6ADA6A0A3A736F024D777E69A
14660B34BA66761AAFA7FE16496607D5A489F0A715D83A3CAD1A9A3BA503524C4C09
1467A9248D7C4E0C307E465E1C61B3A3183520A713244B5E42C7BB1C20D1DC812F7E
1468C83EF1A5C4AF6FB50C84DF310189541DD1AF2C29935467D8721883778E55F0C0
1469C09805074261529BA512BAE0B70EB3E4E212D746345BDBE68247C094236B98D5
1470DDDD932B5DE2FEB91D6CD39AE1972E093B038C3E6E65B3EE7BAC17EE55CE89CB
1471805F9CD27B7E741C2F01C5939FDB63147A6E994869EF164C033FF32E5C3EA444
14729AA184E9B0B178DC4EF94C12CF19FBB9E25E0CDB634F09181BF10BCA370BA8FF
14735BA6A8778C97B731970EE10F6CF304FDA8F332C60BD3EBFB95EE34DD1319F46E
14742604C047528E15EF196075A2FB2086A09C444DE79CD2FBC892B28AEAF2B120A8
1475890C452F49B2FF8D05B2831CFAFDADE04A9E7EEB856BC95BD8944CD66DDD2C1E
1476ABD82FF4EC24FAEB458D655CFEA06F669118D88DDCA52E92AD4289431E374638
1477DD35871B50EAD89B7B947A9D7917D8EA127BED698CDC60DF6A504ED048742CB1
1478A1F5D59E719FFAB41DFD7D2F87E3FE1C05AB2318628086226930B2E1E56BFAF0
147908FE03C8251C97CEA707BF4C18301E2299E0EDA6CFC5E90F964233626E6857B7
1480FA46686AA849805E66A8FB9A9262B21127E28E6E13817294294ED04086B402BB
1481E899AB71BB2426B9669F473FF0366046D56402D4A045128BC523280ECA8A2851
1482063320F1CB818A05173ECA923CC59B1B3A4CB37225365943EBCE0E7D10B0C0C9
14834E97B48D774A0857FA9D4724904A0AD87EEEA2C9DF53CBDC2B8A03C0DE7C09E8
14849990D2655F0971EA654873ED181A437C888D7A44CA78429321A8D9DD484C3862
14855366EE3C194982D8A105019DC4982B79D61C56D5F0C0FFB21525F41B9ADAF5FE
1486EEFF0F99D63202D1506C2B39CF3A44777BF463C0ACC6E8A19C937ACCE49A2E2E
14878FF4DABF354CAC25C22EED7BA84DF8C38BCF1131DDF717AD10C781E0BDBDE4DD
14882172D49AF432288FF88DB8DA757D0AE63B05052EB072C1D46B905F3D491EB87F
1489F04A08E9CDF8966A2DD125E2CCE47CD336525CB91BED22D3CAE48EA185159DAC
1490B939FDC4D0AFFBA05DEA7077E4033416E73F83601F541F214A82B26F9CA57F39
1491EE0C145B7D262CB5720A2E6E487CFE7BFCEB0BE0B0A503D1DD62751FDABA2983
149256C04F03D793407907B9F638AE14F689EF98E67FC346B5B6BE25DA90C0FC22B7
14930CD5184C768BA9FF9BA8B5A4DCCA1D32A0AF36C59AC20050167603E681EEE6D7
14946C389C35D2DF3B3D2C9E25A2B9B0FAE4549C08AE2893512F011C291F547DA825
149582FE53ADA1E6523F2FF72340B95F75C8D1095B9D49DF41D94563CE0F96D9F2B6
149695E237B6C4C20D1C87C0F31D3EA4F097FC9784F6EFBB469060D46B652548F0D8
1497B53C60E559DA180AAE753FC442DA393087817A2D0082E18A5BEBFDAB039CD79E
14985048BD1F1A4CDA746B525117BEDA3556FE1EF71B9EA2037AC318C2E3C01AFB04
1499263F7ECC8AAFD58CDAC960F363047F484FE38F0557AF282C43CBA60786DEC517
1500CF2A8D8660FEA714D7F9A0CBA524EE39B767016BA64FC26FB2C586311516A624
15013CDF5536B56CCFEE3AE89FF0558F0B1EFE620D161B4D128EB5C4EC749B075981
1502E735B1AEC26C7150C4ACABF25F31BD75C2E9F3E57E873768225F94886863EB4A
15031C10328091FF68FACBDF7185014185D139C7941E01425886C68036F8A8959BBE
1504BCD3F142FE02372999EFA1A820438A3891E98A5615922573FFD3AEF9E274BC22
1505FAB7B1944BD2F78DC6B455E3FA0E11FF1A8C1611B3F8EFD5E58700C8FF2E35EA
1506BC6A581C568316A329B4881040E723E375D61E12B931EA38B3628CDA8C4BE667
1507C6B3B49FDE32FF41DCF1033C468AA7B43B4EDF00ECCEB193C0DEF58F5BA4BD29
1508AAE4230D5DA5382667FE91AAF4C5E0890A63BAB8B26DD8D25BD566F906FFC666
1509720E03BC3E4153C110CB23DC101A8E7C2F2899400DA44AE33C5CCCDD9821E983
1510AF3C0773CEEA1AFA8D59759EC4B7753B973DC9BAFE16BC7A036DEFD33FDC2E00
1511498BF315FECC780F816E4880E2A1B81B17BE588C04E8FC42D73612E5D41610C5
1512239BA73230C0854AD18E4DC37A19C2C396ED7BC5D42FBA78838EDEDEE23D1E27
1513C99E11C17957E885857ACD6C4C23AD3D1E673996F567CEE6D49B4D721CCA6582
151495DD91019DEAEFEABD2083B20BEF44E78307588B8F0D1E4446A744A71E1CCC43
151503E595E4E058318A2F42A9F59ED433FAFB59E90AC450E135306E09F32B045497
151609D5BAA1AB24C3356F3C0DBF610333F0AD9E123F5C815C8D513FFA904AC3BFD7
1517C788D974775CA7A093F774D674161BE6BC488E00162671E51AC3C7CE3A66AF57
1518F5EF589B2745232543B50725C64970A1F1DE5C5239FE03ACD398CEF92D5C9DFE
151913F04EFCBD977F993260928B6DCA77FAA254D53D471816186F567F01C76412A8
15209BBD3A222274C742F3D0ADBFCA4E8CCD8CAB392CBA83EAE86225A58D112197F6
15211B4019235B2DE8C5196597760524029B7C296D194DFC0B3FCA66B4A5D5365B44
1522565482D8487C08C1C5C748EE314262E6030DB4384FADA328611F4EBFA770F78C
15236A9147FD7E47E88DE24023193BC5D6A5B37A8CE036F9D874D6355268AB96166A
1524BF63E926EC7D45860A0A7DEADA310BD8DDF8F213D9DF231A8FF16E25712F2E49
1525ED96FB52A21453ADE17AC96F8539697667433E8C97DE5B502D971618E3729456
15266F860933615926CC198C5F3EACEE9EC704231019ECAA5486EE0AEBC5E8A144C8
152773B0DCC95DEAB99652D368DB060121EC8B648C5A052F4D3A5EACAB3CCFAD850C
1528EB2D945C1D40645C857CAE579A58A9E15A65E517E8E62931038DC9938C388907
15295A4528057E1A797E8C05DDA0F8A4BCB2F4743368B33A68AA36B5BDCC9B2B388C
15301C7CF44F3D714C494FBAA40C47C43725ECB79407B64F3854AD35CF53C4559D56
153125C5A28C8E8C06B8B8CEC337E0F40B0D80D19F3EAE7A73A05954DB560C93A233
15325943ADCFF60686C730D91AF95F5F9F01BA1BCC5A41FC115CC2325E2BB3AE0705
1533A43A9CBF22E98833C4565C770BDC6359A4F9EC6E00E6A4B5CD894DA06492E8EC
1534C4C7E9E64DE2514C5E4122BA8CEE2C2B2A4C503390721EC9360D18FB17B05C0E
1535126FCF7E39CA0EB85F7738976F0D1D297898A31D2E1F1468EFD22015F4969135
15364472529DAB43A62DE7AC679F0AF164DBC071886FD989EA01487182E9E58C3AB9
15378B2651E4AA2E21B4347289EC7DA20A916B9F683B085F4319F527BE2F307864BC
1538B9D0753B7BCFA704D31B64D30AC9F5DB981CA09F59E9AA4A810BDD85B70175CC
15395247DEBD324BDAFD0D4D0C6E1806CE267C528FB25166BC01A109C5985074BECF
1540E3E4E91F2C6EDA1FEBAA88E3D671DE06FB68BAD0E480BD710515AFE2C611B419
154104055E35A6DBFC3A6CC9C4A5697D1AB7C546BAFE954FC2372BED6ADB8D9BA61E
15423A7B4E4AFC4CF7F0C54DD5585D132E61341144C543B3A94E49E7B0ED6ECB898E
15431C648DBC88F51BFC3635B4B2B1D63BD3790FADB92961991FCAE724C8D3333372
1544AAB1D180E9F7F920650F550CF44D1D02B52384587B4C9F63BF53CD5AE2DCA60C
15459CAC68328E8F1D4F017675B09DB3C2D5C56D8DD2EDCBE8F285482D22A5C8E00A
15461122D36C7F20B18BD063CA6A727B7877F24F13EF31AF3C06AC68D1616C034193
15479D4809E4DB940E2BD40C4E1FC1707958412B9389C5382755AD01324B9FCA83B4
154833BE7DEB6B6F30FDC0F747BA6F773DE7C91A39C37197946436FDD382A001ACF0
15495EF20AC45E5C9ADC937CC3E44A98C50403307F869C61E47E596E4DF5E98A6114
1550556BDE069A531DB8E3ADDEA4E4BD20ACECFEBF51937CE9F4E1750B3326443961
1551E388FEDEE1ECE141ECD0318997B1381FBBDF4D57173CE366BB966CEFADB13FC1
1552603291DB6DD3273EBF0DD8A4B303FD91F95F226CDD48095CC76AAA2194B81627
1553D6FCA2E02C076AE1046D5752E9B89305425DB1EE8985E105A16B4ACF4FD76252
1554BB7D5C9CB9FBA09F7E4C5A73CC2CC6DBDCC5C24F7ADCC87E1CDB822960C6A21C
1555F0F7031AB6B94C96F60A37B049EA68344DF8C488C07562873EA6EC266DE6AD91
155613A396F383793B36578E23351CEC3FE7DFEBEB0D5C8D0B52B466C1BBC379C1EE
1557219C8CF3884AB37A1A8B10713B4F72CB6EA8508E6FDF69034FECC022D4DEB2DF
1558D4F4A1D988533E196496F6177B37083F2A70DC10A59A2C4CF57CFB69DC705552
1559BFAE18A1F3A26E056AF2A3D3A6EB35E1511BC4881A6B6587B6B8FAB9E07BF467
15601D69058820B1EB1F9CEED58F48DA70FA15F8E4E2EE7987A1B781B96AAE36E863
1561CF79BF40603269330BEF3C96304CC8E9CAAACAE5716A9C529B2B23EF1623510E
156208E09ACEE39A2B1C0EB010A62AF333569F55BA2BFD61EC1DFE2F43351FC80300
1563D6ABA4A7E5CC415572A744832CE8F07DCA61B06D79E5D7F78E39E7935A2EAFC0
15645A351C3009361C22BF42D0B142774C14AFAFDF0812CCCE999981DEF6C1789991
156513F8187841699EEC9CD8BD5C16F0BEF42AAC30C40E7942A9120E9BB788839952
1566F922F5DB812371E15752852356177D2E44DF86590BB753D2FF0F955B57E78B6E
156775A47685AFBE3AD744C5E4EFEBC7EBF0FCC33ACAD48B918FB81C1B2B1E76981E
1568648E9EC1BDC2A485806C656F
15690000000000000000000000000000000000000000000000000000000000000000
15700000000000000000000000000000000000000000000000000000000000000000
15710000000000000000000000000000000000000000000000000000000000000000
15720000000000000000000000000000000000000000000000000000000000000000
15730000000000000000000000000000000000000000000000000000000000000000
15740000000000000000000000000000000000000000000000000000000000000000
15750000000000000000000000000000000000000000000000000000000000000000
15760000000000000000000000000000000000000000000000000000000000000000
1577cleartomark
1578%%EndFont
1579%%BeginFont: CMR17
1580%!PS-AdobeFont-1.1: CMR17 1.0
1581%%CreationDate: 1991 Aug 20 16:38:24
1582% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
158311 dict begin
1584/FontInfo 7 dict dup begin
1585/version (1.0) readonly def
1586/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1587/FullName (CMR17) readonly def
1588/FamilyName (Computer Modern) readonly def
1589/Weight (Medium) readonly def
1590/ItalicAngle 0 def
1591/isFixedPitch false def
1592end readonly def
1593/FontName /CMR17 def
1594/PaintType 0 def
1595/FontType 1 def
1596/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1597/Encoding 256 array
15980 1 255 {1 index exch /.notdef put} for
1599dup 39 /quoteright put
1600dup 67 /C put
1601dup 97 /a put
1602dup 100 /d put
1603dup 101 /e put
1604dup 103 /g put
1605dup 105 /i put
1606dup 107 /k put
1607dup 108 /l put
1608dup 110 /n put
1609dup 111 /o put
1610dup 114 /r put
1611dup 115 /s put
1612dup 116 /t put
1613dup 117 /u put
1614dup 118 /v put
1615readonly def
1616/FontBBox{-33 -250 945 749}readonly def
1617currentdict end
1618currentfile eexec
1619D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1620016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
16219098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1622D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1623469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
16242BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95
1625A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801
1626BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96
162796D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC
16289322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7
1629E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A
1630497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46
16314A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD
16323841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF
1633B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8
1634C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216
16359B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F
163683EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25
1637A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B
1638246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A
16397736A960F72AC01F733A11023832CD68FB6288A5977743F781214D8FA9C0C3F7
164080001321D4397771F728FD9EE57CFE7D9192B887EC883EB1505068261DC40089
16417B7D2820F06515CD74513521F6397FEAB3AD3572D9A8269430E407E357422461
16421785FC2782047F4C0339D79B16862D939F3A37F78E4E2174E4FBF132539CB760
1643207999FF86F6A3EBE48EB0A1CA635450FDEEF79EB16D853F3BF4B41A77EA47F9
1644681F5618B8703DE456E33A911031712276AED4C2245684375B430383881E3B68
16454D17DB42AE3861B95CCF7CB60EECD8B4F62C52BD97345BBEB387F88F1E371174
16460E98A1E1B8B720F180CF24BD7E2CEC84719A6F34C65305FBF9BDF908DD8A8D7A
1647C9780E32A20441F28DF7FB99B340BB1FDFB61EE8DDBBA892C2CBC336C85BD020
1648DE00B980A9F40E5557BF4A60B2A253A3FF5627C3CE392E6B4FBC87853C78A10E
1649D43307507E41D50A998D464CC69A1A0EF77A2A48F58F083550171096355E5831
1650B4D8B1B32C6FECF92E23DFF03C06B1ACAABFDE0BB0BD9E22654E76BBAD8F5C9D
16519346DDB44A9DD71337082C9FB99CD83DDEB11EEC8EBD02CDE99D789244A57E98
1652F33C5EDC705CEDC059674813998DA878CB810FE55C13C035039AF876A7CCDB94
1653045BD46F20AF34FAA002C1FEB7A541C84F55C167062C3C327304A9557FA84C0D
1654111820D06971FAEE845EA53D1704066B5C6F1AC89B32683978B63F4504A50C7D
1655E8B4A4025F32B8A982A37DB7C7E3B307CD41189AC6B5D46E3BCBCA1A33EC93C8
1656DB6C829B9FE5D464CDF32E7D214C7C46F7C2F6D94E4A2CDB5869270A690F68B7
16575637447C98F4FF13734F043A4F17504E554B0D0645190934D5E080594D7D5C5B
1658148A4409D7AE85ED10A2F0A402176FA6B8CB859118A61EA0243C155B0412BBFD
1659ACCDB64747FDF398496136AB09A886EB9A149FFBC26BDEEB2E65C5599C433593
166031E0BD20DB6E48A160F6C249C96FDD75B336DA05717F1CC5A643948C4DBB459E
16614007E87AE891ED9E97EBBF7758233A08D412B0828DCF524C67B6DDA18713DB09
166270290062D4E65798CB6D4A894A5D78C077230CC87ED14658A14F4B90CF5FD7FB
16631A7B0A48DEBFEF1C6356CD0E8DE0350D2A147B7FED1BB694B80B00C1FF484D28
16641A1CC5826DFA6641A6A56FCEFFDCE8383F226604426DD2D30E69B568E075C2D5
166543A5CFF1F77785FDA15CC7836CE85ABF913B77D671888A664E144152B8567621
1666D2D6184A540EACC53741C70B1B1DDAFC77BE3B79C8876767C1E6EED7D0E202B2
166791C4900601AA9419BE0E71BC9819FC27243BD35753513A640366709FC8E73447
166838C2082021DA1C94CB2EEF7F1CC5DD9EED91C85498C378EDE9A614025B9AE044
16690EFBD23D7F212358CAD20765FE5D5A7EC7A5415CCDDECB75BD8B8ABD55E2FD17
16700ECCDE808E4379B2275C31D2F47A8517DEF916D03F89FC971732F89D421A8C32
1671BA8F2D488344D0CE47FCCDC0CF1885CBB012309327C6FE0DE055AE3B72C348A0
1672F3339EB0A7C8529E13E4ED7E86315E4E3D8404E8057DECCDE081FE29CCD5DD74
16738464662478AF49E3AF4A3D0746E68F9734DCD214175D0C9C480A125E6B1336B1
16745257D8014279DD1D6CE70294A462B605F055F9F3E689ED6D886FCA30EA4C0596
167507517C325E2C7E6955F8D2730E7144CE997C8F5AAB99DAFA25DAF71B83B23E27
1676164EDA87A151302AFE707DB033935C68FB5D47210E078D67B233E1230FA78FF2
167743DA3FB6CA11EC5C2DC96F1DC9AD3A4A99CFE512EC701E53061B8C5D45EA30C6
1678CABBB5CB9101320E47CC30116AD9E30EDA9F911998E51A43023805F298CF59B1
16793297343DBE3927D855059E0C453C5DECF1B0E024870ABA0645FBA91252AFE1C9
168055900B6BE19C47582AC02DE2071EA83955D4871C2BDE4AD75348EA06E10FF7D7
168180E0BB6CC4092D09424E9C6C43151D8B997533958C74E0170157EED110105D3A
16820A04D023E6D6DBC2D37B1D50E44C35A01FB9B57D50D1F268728C9CF2004C9C18
1683610E262217B2C06CDFA01B3EEFB62DE608E5FC5DDDCDE1DC94340982190B7040
1684358CAC4ABFD3A45490E9C82156251A59AEEB7CC831E49B39464054532BDD836F
1685938585EAECF9C77AAA8D7D3D8174755BC5A274935033519158B9F4B67209E27D
1686946852ED2F1DB6C3BB5D01BB1BED7B0D8561ED190297CA9761C6BD1861810563
168784D660FE30258B90C0E32BE634EE616D1926544E4D70753B12F1466BA9C863F3
1688066C90E29556E8B8E8D8EBDA197268D3CB2BCDDF250C61298796582AA29C3B16
1689C65FC3DB1F2E1BD5BE79314C1C5FA556B93CE9986DE4A7040DC093C178D19438
1690649A616D6C0055E3EB318F1970AD4A5BE070F5817021CDA6FA9F96C88C2EFBC0
16911AE92A46E29E9FE712A3E23973F114A63B2FD3187AB7EC58DCC517594A7068ED
16923DEAB02ED8B284257415F77A75D91EA83E9F27737552DED8F9181F9395398673
16934C04F13C7CCC5D702CF08553557E76FA16C918F29EAA4642C2462BE44AD37000
1694A4DDF1686B35AFDE4AEECE487CC3DC496055AD522B6821F1909BC72A49E018CE
1695BC821F76B46E74CAA8C5319FFC6D0953A7BD2D5470281AA819159132FE9E6989
1696EC0C5D56D4BE41D14BC6D08B5B4CCDF828E7953F8DC83ED880EAA9E2CF78338B
16979A26C26475664799D05D640844A3AF06AA5262D5FEBE9C3F70D8444B05543BAF
1698561F795EEDA3EF54E4788E45CCDA010FA519454E4902D613D0EB7BEB01A38ED1
1699D8F6B5349439D0AA4B0A4FD5707077EE5739EC20AED25E90E29B0E60B2DA2A0C
1700772AAB0E01C06A5C2B2150BA12614E842F40AA5CB50548B001F87145EA9B840C
17019C953D9F4556DCC5DA3E69C6D6FF05D31A3C9BEE39C7FAA8F816518377B4A899
1702537D07CAEDA78252AA853906BF2724D3B10DAD26C9C9197670DA3CFD297372AA
17036424C6988C24B0C0F4B43D627007C85A8333CBBB90478F2483E34AB0A80E4B79
1704C6CB422958A126118B36F103CF994A6C69B7D82C8E154ACC082C85A0AB360B86
1705A838B8FA0DB2F62EED6EC14E1F45B2C4068BCF623F508469F2A36F882E715E6B
1706D4D1DE0D680FD71EFB5B40BB11742CBE1138F5AC4F92E0E8D5FE06FEB591A70A
17079F67BE7576B09E36F03404358308F447C8CF8CBC9F5BCD68B3FBD70FAF0A4B1C
170814C70975FF0F23F486A62CAA7C762FC30EDDBB4D6F3C999821B1151B8B0ECA04
1709314A2239AB6451DB6E9BE4926E87738123787885E64594A0122EC4ABB5CDEB5E
1710864F4C1AA7D5354170504454775568D74D9264DAD64064E946706DAAD1B6B9D5
17116DB6D3B5A820742961E330AF3D5CA867EEF6344D8C685A4C5B94608CDF3DB79A
1712EA3FFA64658B83367F76BA4AF305F72F0DF7D185DBD255ACC2C4E553810117B0
1713DD4C04825435F8B3AC1EADEC45BEEDBF6851AEFE7CCBF3914CBA48D10FB4D78E
171492676EC89D87DD1956F3E7DC1843F3F8A1E579852B2B3F596D833DD574B6210B
171573CF06D1DBC7F6B3C069956043003365FF25A6C8676833397482036CB3935C10
17161AEDF47C5B31CA6AE19CF8C5AB5A7492559D567EFB0246792B1EB26178552102
1717C921F5EFBEA36E6BE1479338EF093A05E1E6E317AA8A96210E0CEB3A5DC9A752
17186847DE923889EB47FCE64AEB4E03C9835892AD8C71AA421A15DA668239C2974A
17193251B8904839CD6AA695655D7DEA71D8036559DE7B7958147600134BC0BDEBD9
172013E0E6A01E130B94CAA3EAF78FFB0A9CB5C80521CF760393BC3ACEF83B4D5519
172192B6CA2C343A11426B2553285D611EA42344E781D2093E50657F0DF92276F5C9
1722F3D238C00073BA785E287CB5D79173815A3AA699A6F88D516D785CB73DA8584F
17233FC1A8DE568A77180F5A97C29E14811801D5FF809CB70B3484104E2BF8C266B6
1724112A6A24371B097BBF67BC37FAA2A2
17250000000000000000000000000000000000000000000000000000000000000000
17260000000000000000000000000000000000000000000000000000000000000000
17270000000000000000000000000000000000000000000000000000000000000000
17280000000000000000000000000000000000000000000000000000000000000000
17290000000000000000000000000000000000000000000000000000000000000000
17300000000000000000000000000000000000000000000000000000000000000000
17310000000000000000000000000000000000000000000000000000000000000000
17320000000000000000000000000000000000000000000000000000000000000000
1733cleartomark
1734%%EndFont
1735TeXDict begin 39139632 55387786 1000 600 600 (sudoku.dvi)
1736@start /Fa 130[48 48 48 48 48 48 48 48 48 48 48 48 48
173748 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
17381[48 48 48 48 48 48 48 1[48 48 48 48 1[48 48 48 48 48
17392[48 48 48 48 48 48 48 48 48 1[48 48 48 48 48 48 48 48
174048 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
174148 48 48 48 48 33[{}87 90.9091 /CMTT10 rf /Fb 212[55
174243[{}1 66.4176 /CMR8 rf /Fc 129[49 3[43 51 51 70 51 54
174338 38 38 51 54 49 54 81 27 51 30 27 54 49 30 43 54 43
174454 49 3[27 1[27 3[100 2[70 54 72 1[66 76 73 89 61 76
174550 35 1[77 64 66 75 70 69 73 5[27 27 49 49 49 49 49 49
174649 49 49 49 49 27 33 27 2[38 38 27 1[81 2[49 19[81 1[54
174712[{}71 99.6264 /CMR12 rf /Fd 134[71 2[71 75 52 53 55
17481[75 67 75 112 37 71 1[37 1[67 1[61 1[60 1[65 13[75 5[128
17494[105 106 5[102 10[67 2[67 67 67 2[37 46[{}27 119.552
1750/CMBX12 rf /Fe 135[85 2[90 63 64 66 1[90 81 90 134 45
175185 1[45 90 81 49 74 90 72 90 78 13[90 120 1[110 6[60
17523[106 1[117 115 122 6[45 2[81 81 81 81 81 81 81 2[45
17536[45 26[90 12[{}39 143.462 /CMBX12 rf /Ff 134[62 1[85
175462 65 46 46 46 1[65 59 65 98 1[62 1[33 65 1[36 52 65
175552 1[59 6[72 4[88 1[65 86 4[107 73 2[42 5[85 1[88 10[59
17562[59 59 59 59 3[33 44[{}34 119.552 /CMR12 rf /Fg 137[83
175788 61 62 61 2[79 88 1[43 83 1[43 1[79 1[70 88 2[79 29[115
175827[43 39[{}16 172.188 /CMR17 rf end
1759%%EndProlog
1760%%BeginSetup
1761%%Feature: *Resolution 600dpi
1762TeXDict begin
1763%%PaperSize: A4
1764 end
1765%%EndSetup
1766%%Page: 1 1
1767TeXDict begin 1 0 bop 904 951 a Fg(Creating)52 b(and)g(solving)g
1768(sudoku's)986 1246 y Ff(Ric)m(k)39 b(v)-7 b(an)39 b(der)f(Zw)m(et,)f
1769(Leiden)i(Univ)m(ersit)m(y)716 1396 y(Leiden)g(Institute)e(of)h(Adv)-7
1770b(anced)39 b(Computer)e(Science)1549 1630 y(Marc)m(h)h(13,)g(2006)324
17712070 y Fe(1)161 b(In)l(tro)t(duction)324 2318 y Fd(1.1)135
1772b(History)568 2503 y Fc(The)24 b(name)f(Sudoku)h(is)g(the)f(Japanese)i
1773(abbreviation)e(of)g(a)g(longer)g(phrase,)568 2623 y("suuji)37
1774b(w)m(a)g(dokushin)h(ni)e(k)-5 b(agiru")37 b(meaning)g("the)f(digits)h
1775(m)m(ust)h(remain)568 2744 y(single";)j(it)g(is)g(a)f(trademark)i(of)e
1776(puzzle)i(publisher)g(Nik)m(oli)g(Co.)f(Ltd)f(in)568
17772864 y(Japan.)568 3026 y(The)33 b(n)m(umerals)h(in)f(Sudoku)h(puzzles)h
1778(are)d(used)i(for)e(con)m(v)m(enience;)k(arith-)568 3146
1779y(metic)45 b(relationships)g(b)s(et)m(w)m(een)h(n)m(umerals)f(are)f
1780(absolutely)i(irrelev)-5 b(an)m(t.)568 3267 y(An)m(y)46
1781b(set)f(of)f(distinct)j(sym)m(b)s(ols)f(will)g(do;)f(letters,)h(shap)s
1782(es,)g(or)e(colours)568 3387 y(ma)m(y)31 b(b)s(e)f(used)h(without)g
1783(altering)f(the)h(rules)g(\(P)m(enn)m(y)h(Press')g(Scram)m(blets)568
17843508 y(and)e(Knigh)m(t)h(F)-8 b(eatures)31 b(Syndicate's)h(Sudoku)g(W)
1785-8 b(ord)30 b(b)s(oth)g(use)i(letters\).)568 3628 y(Dell)f(Magazines,)i
1786(the)f(puzzle's)i(originator,)d(has)h(b)s(een)h(using)f(n)m(umerals)568
17873748 y(for)d(Num)m(b)s(er)i(Place)f(in)g(its)g(magazines)h(since)g
1788(they)g(\014rst)f(published)i(it)d(in)568 3869 y(1979.)i(Numerals)j
1789(are)f(used)g(throughout)g(this)g(article.)568 4031 y(The)d(attraction)
1790f(of)g(the)h(puzzle)h(is)f(that)f(the)h(completion)g(rules)h(are)e
1791(sim-)568 4151 y(ple,)24 b(y)m(et)h(the)f(line)g(of)f(reasoning)h
1792(required)h(to)f(reac)m(h)g(the)g(completion)h(ma)m(y)568
17934271 y(b)s(e)g(complex.)h(Sudoku)g(is)f(recommended)i(b)m(y)f(some)f
1794(teac)m(hers)i(as)d(an)h(exer-)568 4392 y(cise)32 b(in)f(logical)h
1795(reasoning.)f(The)h(lev)m(el)h(of)e(di\016cult)m(y)i(of)e(the)g
1796(puzzles)i(can)568 4512 y(b)s(e)j(selected)i(to)d(suit)i(the)f
1797(audience.)i(The)f(puzzles)g(are)f(often)g(a)m(v)-5 b(ailable)568
17984633 y(free)42 b(from)h(published)h(sources)g(and)e(also)h(ma)m(y)g(b)s
1799(e)f(custom-generated)568 4753 y(using)33 b(soft)m(w)m(are.[1)q(])1918
18005251 y(1)p eop end
1801%%Page: 2 2
1802TeXDict begin 2 1 bop 324 548 a Fd(1.2)135 b(Gamepla)l(y)2381
18031835 y @beginspecial 0 @llx 0 @lly 250 @urx 251 @ury
18041250 @rwi @setspecial
1805%%BeginDocument: sudoku.eps
1806%!PS-Adobe-3.0 EPSF-3.0
1807%%Pages: 1
1808%%BoundingBox: 0 0 250 251
1809%%DocumentData: Clean7Bit
1810%%LanguageLevel: 2
1811%%EndComments
1812%%Page: 1 1
1813save 9 dict begin
1814{/T currentfile/ASCII85Decode filter def[/Indexed/DeviceRGB 209 T 630 string readstring pop]setcolorspace
1815/F T/LZWDecode filter def
1816<</ImageType 1/Width 250/Height 251/BitsPerComponent
18178/ImageMatrix[1 0 0 -1 0 251]/Decode
1818[0 255]/DataSource F>> image
1819 F closefile T closefile}
1820%%BeginData:;
1821
1822exec
1823!!!!(#7:Y@"q(eH%1X$^&J#Bc&.fEa&J5Th'H.c)(Dmr((`4)*(*FS:+s%jJ+<MsR+<MaM+XA?`-Rg
1824Dh-n6Vl-RpSq/1`P-/35=:/2/_00J>.;1c.'I3]/lS2`NfW2`<ZV2`j)_4?Pqp5=dt(5!M>!5sde(6
1825pjC3:IRlE7n?0A7n-*B7ncTM77C0H7o2iP<)$%k92\DY<`;ai>#S<p<)cdq<*`L.<**@.>$>!2>$=m
1826)@9-K?>?bNB?>EYO='T3>?sd/I@:!>U?Y!\X@q9CeC1M!jASGjkD/F-&DfTZ1F)Gl?BQ@a$EGBK3Ci
1827F<7EcGr<FEDYIHZXUVGBnFXG^"L]HZO7YI!gTjJp)EkGC5'kJ:Ds!JUW6(K7\]6KT1Y<NJr^LKSYDD
1828MMd.HMi37AOH#6_NfKT\OFrCQL5hIXNL>cdQ]R>jN09<`Pa%DrPadl,PF.Z$T:M:<S=>h1Tq7gLQ(a
1829G0UR.RKSX6%CR\laNT:MaPSYW'VUnk,fXJ2YjU8t;jX/i;&Xg5+4\Yla2Xg>.3\ui3?XKo.6[(3BGZ
1830EgjE]!K#TZb!`Y\$N]X[(O&a[^X&b]Yh1o[_'Jj^<++)^V%J$^;.n+aMu!6`Pog8bJMH?a3DiMa2?!
1831=aNM`Fc-=MWbgXS[a3)fMbgjn_g!@pqda?CcdaHFie'lgrg=4p,f@ep2f@8I)f\+s/gt^]AhW!,Ee_
1832K9AhWWhShqm;JiSrkQio8t\kNV'njQGglkiUpklK7Eulg=*1m.0N5n*BQ7me-8Gp\4IUq=XIVq"XUU
1833qYBjbs8RU+?r/g.((CM%6=E^#A2YG=LdY]L32BS,(Q:gn;7P\14WfbVA5YE5Q;&`k8nCo2A3H>6QqU
1834Y![Udfn2Ohu=1C9T&Gqtpck&X,4l?bI\dO;I/r<eBUSCAlb.V0fp8ZL3AD!#k(Yt(Edl#Y#g1<Vh6Z
1835N]<7A[^E5\6NoQ4/LNqGJ%7#=1dSfrI;>8foUqj>QKVu@W>M_AiC`kaCK<o4Jl13Qcs&_=MVO%$&/E
1836[_#T!LN"?*>kk-uR:8A&fe`aE0D-#7f!SM=sRn_c6Bo(R5[bBQA$jE]^nFg6a(`3YefBG:X:%$%k"2
1837jZErCnpMYI*\I]";:GT>@D[G;ibJ:LF3ocfe?P&#\%C\GL_W$f@]2?<EQubNN<In'gQ.^lRO>-4k+=
1838nG5FHZkQk3"i4XP!!$.u?pX9='a_[PLgF:QYk.'c(U)mtrP*qE,8NKtr(d@/0<%hQJ,j*\#tAjg+UC
1839C\LiEokdJ8>;Qk1MH!uM(g0)Wh2/.2<BKeNr0ZcG38!!*9*/7jU"at,+Wkdcuc7j^(,*grtBZ;@:X1
1840b],-8=>DXUEX,UMjOK4YkZDJ>j@1SP:XI*!L$D2AV[?*/hE79N%bPTkd9bk,6D"T5#9LX[)5]gWL+a
1841S8?fir;056!M:%P+-7[:T[3o$"'>3p"U=8K/:Wnpo(*;%_N6+'0<4*X'<YUVq$!8TtmmeS=@8Td$BJ
1842d1pU6QU\N*(0adl#hbXcllf!/ZnL,9gE4MUti#X\`*?V-@h;(R4)_U0!m-8DKMBNGtVUeZ!a8[_:[P
1843).T=dKns73Bi3Q\.0_)TK]S\@eMd7RAQ\.V67(T8=I!!]ds[Gc>j/;,9\jBYgL/s\3C!ZJ+LjB@N.s
1844a.?m,\]5R[afTGT7g#Tb^I@onsWK+]=Gg&qC#U(MD,<Ls/U@!RIaK9-'6*b_U18Y)FqjM5:u)?m&l"
1845dl5XO#pIOrec9'k)!OVLB\NlOs6*TQ[Bu;=tb#61^4G@N$,@U-48j70eEWpXL)9$#!jRFLSfOVHI\L
1846Fqm%dta?Pu`["XcpAQi7e-5AWpH#+U8BP%F%Th%3N&:Ad2B1s^FTJ(iR&21a?]7':s<Lm"t8:cE)'p
1847DmdV9k0/<R!V-=/[j@1_'%R<X49=hKNS#"LuB"!^XR3UN<"jP<4%\.?53tHiaR'hjU[6Atc(]HL?Tf
18489,8#JGJ0.J1_XQM)5)?W#VlmghltKFWg"t5!8-G_1WWoUJ:i]?,Sp_j<,\d3#d!+Voc51gAaUCf$rF
1849m9TND:.%uc/E^j_S:&-*#U@7rn\,,6*F!t5/<:-obQ7%<eHF6_T`0NPVJ7M$(6it,l0n.5uYgY.:5&
1850359W$8_r849/i**\iom\-PXF#65lL`+>2*SOh%A%p<YckR9aEl#$U_I)7lV&2?L3C]g>81r,7_nXKj
1851sIISL5O?nI+!44$p:l.7kB2\dI$n3ASXk1:m">0c&9+YsIKFGnI@0Ahh%3j;U8:htPjBOou/^Qe?&f
1852Bl"lhhod$#$p&keS*(:ME_jL<AKs1?;DIDG)/N_D_CuUqm^`P5X`/![RscU2^5I``L70,paa%F-qV1
1853?95VR6mUgsRaT>uOL^<;L/Jih;FlO1"d'DP%$ku+7#=Vqf_+34U79=4p5orIRO=V=,4gD6^UL(/hQ6
1854a;ZN`M(RG06*/?aiXFs)nPnEK/I#Fr)3-IG'['*?]5$UJBi;OU`]Bmh];oY-U=l>93DD)D_eN#pGO=
1855%m=.1oOBa56*C<;!JKB$T0Q5<3W]&l+KZd']PD[0TStCohq_G3%Y;1!bc=k9W8b=T`nVn9e)-:Vpqp
1856\eTu"0.\0J6iA.U\!X=tLOJ*<H?G0FV/gl=^RBRG&_H5)^,]"cWYI6'sfZO+?60N$d[M$_c4"Xdq@U
1857'O(?H$%$4^^\1SJ*2h8D&7mBC'c?Z(cmm#=1.SD+1_7i^H'3b7SCRXa@N$>Y'J$@;kLDW<WIdakJ=G
1858?Ng^kY-V/)9R6n2-[?/e'.RG:Gi)%_2'\PgS;5CWm5i=AVRlsPkf^OrF0?N/T*j.t57.*Q?"G=bo*C
185930+u'J`bhTbYFGIO7ob*mM9U_1LGt6jIGt;5iSqJ]q?c!gN04bW93&lZ=k$:4tkn[_AAffj(*576;&
18600^Qk"jTY6i9oP6]@9aJ'&\)sP8tO.pRZV&1*_U@FmY<Y:khge01>9"'n^_,io;RSN<j;>a-!prj?a#
1861nLmC4KGcr7Ld?GllBL*8n#7]U=N'g&m1`=.)0eD*F5t57P$%S*gMHW)tKePIh^n;9laGY4]dt,NW6"
1862s[M"O'Cja9]R`(4n4We=_69+o!16%(5Li70",(GB5&qnF?[t#VQ=r/3"305!d2=7fX[-(';:4S]EE/
1863U#]DcANV\.V!sNJ!ISPh&98J_k%>m,0SJAa6lo#U!`NVS#*<h8"ou0C)C#g$m%P#goEf;p`$-JfiM*
1864[;7Xc7:!.os0"sh2b\/,5O;Q<DMb+\=H"i-'M*,UH?#V^l2!0,$QO9G`pIHqZaN#.2@7Mqn;,+Mi>!
186590.\Pr&C2ceukT#EW$f6143d)CUAV_[-j.:imHT!T<Jl$`-BJT`P4"0+@?-!&6J;_?+6Nf$JXF_#UR
1866p=A""T8UX"-[gC,[C^C),H6,EZ$O0D]>nK7P8?o'4fL.*KAq7f$_+7!#TZ`-MZ4JVjEmkp-]Dsc^nM
1867A7erkMdujt0t%!!G:/);oT;b@n;kL_iQbh'D3(jq0ku=Gd>+]L.HN)[4;F\:F,e:%eVp[:Y#YJ9VS5
1868OC694-*Y`!5R&+FX@kX\r:TK.$_*5qRR'@rU)FAH."Hk<68.j4&cjOm&0Vql!G\cUdD@3sT,F^930s
1869Ug<@WPB8LM(u'(/r$c)ic./B335!s3^W#gbC;TT0QoTEmOd@=A^%(R<N2j]]FnWT*e%"<`=R2Z^]0!
1870s'K]o%T^\FHA$VKsn\7_LrR&^_R)>`SA<4+=jn/C('-:nHVrf007Y-JEKU0D'7%59q9T`i#48'@1:'
1871e5q8Y*mTH6.&7EEi#Pd!Y%MZ^s%Y8*&m8RX^J<!5Ei5->i%CY4ef_pXV_onk%C\k_\7c7u5Nc2f)V6
1872]*;MXrA3aU*.qN#nCk@_`9e:G9N(mW/Q7G.]ENbJf;B8a?Vu(rm'#qi"#+-W^;H<7U<K\ZA"&_A3M5
1873JC1#3$B,W(Jf>((G7-r9"U1Y)65Kfb\9T_[UC6Y(LQ]bg'a)gD%k:!EbY[%jm`8qp%./BN0_l:f(C8
1874."=_P,7YmU3gm&qR"'-T]H;)Gfq343`a''g&A9(`n!OV;.cZ#MQ5JO0Y.,nj-R'-T[Ud:F#s<j=qO'
1875HoLM5SUP%<u,dk(Z@K`;)]811:Md3YE<B3Oae5<JJPMG(GRZMT^N^01D_dA[IH)\nOO?EBLa3j(/"`
1876C+[$U'Tc&u`'.\C5Z#:@S;'"%>#"sdlEDmP`58<WI&Hf9EUpd)a_]SFM+=`t]nc^/@rnkM;X<=bjdJ
1877k@tYR4mE!+;]JOr1:K.3LA]X+3I5Z7d>nQob9Y+Hef/!1]p,7j+hd,k;#>O:MZA=s;)V$:69]:k]?t
1878*t?('!)Y/pOQ[iRM$seq$qmD3b[MdTPmniP&4N]0OT,O(SJSMlcVXN_/R&VR>7fd<bHd$QC(Vmi5:M
1879RT.EoUX'"m`'\>56=-nI3on6dG+Pac]V:dj+P$6(HJ]..8$$#mP@Ee)<<KaP%+!\3W#;W=*U+"U7F7
1880kLgb$fNJ-'+WAo]I?W,AJW\V;^V)J-ShAME7c=sX"TX>1*U!Z@Oj-+T-gZZ/.SaZdl--Id0FT/;0%I
18818_1WFDkRsj?S`,YCJER]e@5S>>2,3X`o#`(lY`0e1&7K7ciM+ImXWN`q-40rJ5U$1N,R#><+Xr?di.
1882M.s"p3_Kp_/2Qo'l-)17XGG-XmJs?s#6n4Ei2h058feYRrPJ(0#*XOhbK.@1F+449JtbJglWd+:o+c
1883H4$;J%aL1G;c>fQ%1j*r0$q%_+cHQ>9GHGl"s?0P64Z**5roRK]ao,`J1a^7_>l7=aJ'4`8CeK+U(-
1884#bhZaHND;`>gcAaO9bS&2DDfc?G";N'm^%4HPF$i>N@5O3n!<=a1+LD+KNf9\>)?Df%^cH2Fd1U%'1
1885<2UFc;d@$WCJXsL`k=NJHcZN:(0]b+S:E#Zfrdbllf89@%`M\!5K3*"9h$j"n\H1JXd?\:'9EV!oSa
1886i1hT+8j\(Bt/rUtU;i8]hFs'%h!.](pJ5-,1?@j;f$#g>A&mm&.nfWL&$D8LBJ<gX0)@?'0+CTd'J/
1887Hs6j9_]@dFAZZPD)<p]]O-GILtQ_TP7!6Ql4h$!&S4/[+<2qgFEi.Ac[DtJRfXKdK"h3<?_S?7Jml#
1888"9NG]pm#H(FV#[6"I[dX28TP-huF0P":8H9$T$fSe"S"ln0%eI#K47kJ7o"XBj+!m!l,WgiM$q"":!
1889smf@(/H2&->`BYD7o('"gN@A&k##SBUC0u=MX'TE<.Je0%="X&*p?nGK&<.WuY!FSG'TIp;1;QfY+.
1890<@4'Q,Fe2SdGHA#68uLJ9kcN%9TbD=S:AkKs[)<1^Ka,$Xl`(WJh^',*3qTBQP%&ZD>(REbaV?[%L;
1891,Yf/uZM,TYq/M8HgP>(/)[jcI2P'([.oH]+@Gr_/9@R:T7PrgZ4g5#=-U=/49N$e8I@14pCB%'Bb:+
1892pDF$T#$1Ci?d;<a$\*E<UN-+92C/!M]gN6/`B@M_KItKgXi'UqB#C#A!u;!6-ir.a&m>,E]jCL-lYb
18937KQ8o/3St7Q,Eue)13l`#QP%i:o7?$"U(70j3sFo*[O1H"J[]_1IaMMV85e[8pm-0.B/ABn7dkoCH%
1894qR-Ze!i#-uXNf]a!K*4iFU;c[XuC0\3idB1mMPA.s!_?aC&0GkcC3sC>R1<5>i2D53V_R)rj4D#NQL
18951=Ch)*HIRN',8Fn@A>q1.e.Xj]E+Ner*7S?k7CKga3&r92m]*3n@d"oj=@f!'tSm%u;1`LBG2L7h@c
1896%iIUc/hIfW\eD^Q3?#F::ZlKPTJ/fX!&#7V;Ku"g:Y?SLW%<DPYDBH5IlJd6+^(2#9n_<X9%\r7f3A
1897;\4pqH5*`o@-h!qr04J-7)'6?&_N$UX@$1CZ]jj?!l>nH;2k6uaJ&#9bT'!!%OhA6Tj=nT7hJ!)\tk
1898!QNN?=W@E]UgkCbdF;A,7If/_(P!+qM^&3Vm#<A]dN"T$`o%PL*6D(UX!^Bb^]t.`lN2;3PU48k1JI
1899C.dTdP2H"/^+o6Gj5&7tLm4&!VN0Em^T]^AmUPB?[`(]l]/?I2W%:^*UN%+8?V76ki_d1]An>_f,3F
1900%T.q%)">RkRiWKToJVtZ`.P?d\SA977s2JCP#Db-#%+aVhp+Z\DFEGiWi>h$S>.T<D-V6V2HjMVcbM
19018WpZ^a[/(3FVq#@/XOp,a/u7.#.c"4,[9^)H<om%tY?-Vs:`eCA26`_'2VR>0.J8CZN7M\mkd$%ZP+
1902QDgG+.$1-$OBAA[PTO%<8@kWomsM<\fY>>h4c?JDF<G97j#7K%-Wb=B^]=W6:2VMVh%O-\#3:IF<e:
1903"IPK3Q6q4ZH)Z&EBjt'NngI`N6Er=o=VgkqP%6$`<.u4N\?[EDAjRShh%fWi-3A_%/.7Pb[M#4q.5!
1904]c-#.0;6A".*-4(&>M@?HI],gID/@n^j@>I19/dh]35/!rW\uH<6J3s(%:k=0mUD*rhFfpS$H/=TbQ
1905iQ>N?'rKJ5%Po5*O:oI.106kDO9W$=GJ-#SmmC=&O;drO[XV3+QOpT0:;sQ-n+J]?@0^C3u.sSPTV*
1906IBGkC!DMRWRYSiWMgR>Ht0875qAJKbu6sOm/569H1`^%ZP!FS0>n(LpXgW.h]6EaOO?uYNg!J03+Lj
1907>A.X662`DJPK>;BR1!?j6X+EUGPZR-]W*W!.^I/;);+*!U*a+c_,55.--X<i`kO+S5Yd!4!7<J/f?N
1908/?(k"N4>0hV1E&c/:hb0rJ4*rFtC.U%02mu">J4?TPOpl6?N'(1`.WZ"a*,HNW9,Z2$mXj1c`O=$6R
1909qPBa"D!['>KSKEqPac*eN;(i70AkPu5?6tcWU!<J!B%!-=aZpCXK&;V`j!'t.o7E7Cpfd!+lNR;!mT
1910^W7Zn<!\NO]'0k5i>0eb_I@/Ad]B\'M8LK->e=\\J<'g"o&K1itTE30dRlE/5m]ae^>$!+p.oQcl(e
1911u!!`3.^`ZJ\(-oP!\"N<Ua@Qe[V*7NaaGgDFGgHr9=:Kh3,Sa=KSL<Mrk==.#$OA`9$fFhkJab9)`Z
191226uMMb;fJ9i'(<'cb%5$sH(g:Wdi[0iTM8M>pf9\CjrK7ppN9<fZS$B,se$VFQdAOs%7,4C^'^.K%3
1913LqS>'(1cl&E\U-s(g&SQTLH_LYc5c3QLtT[,T]lI./pR/KOBp1r+8%TI6cFB(Lr[LQ-U(M1T9OBAI@
1914:.'D_LDVu1P3A/m4"U0]S;9YrBdl-DSnke?;l1T)oRM%]Xe)jNiCClq\bdfjEZkZlK3e3S0V&?6S!c
1915sj)ANj2V=\/8um@',!10SRZf"iAMrXEE+*ek3nf.lCiG^liZg]'^?7\7,jiI^]L'bSEdS!t.!K_,lN
1916;?EBE&L#H]!<dMkr6Nq2+@=kggWnnSD(e5!7ZI7DF;-n*)=pld("BaD!@-b4_Z/LQVffN2OCSbmT^j
1917IH_)TW^G\7)L@$Glud9kD2A%AFsR6&BS6,XdX=\p$X-#uMrom`jGu@U)N^&5j])V;o/=;X*!fc#nU$
1918BY8OipK\0%G&GRR&u&W!&V(I<YC5TI2b*OI0b=[[Lm5W_;YaVb%tUn6ecu6(l\Qc6J+)dg]V6O<!3m
1919,`mj7)/pi&V&gaS%uQ1;\7PSj^R3J&mQPS.&-(#>@`,m:`1!&&L6dTS"O=iEXBPn#e">$k.(D-Ej47
1920ZZ*N=,j1(k@9aO*RSQZ1MX0JWsdtl'jPmGMl9:E,oWYcFfUWq/E\4@"JN+0`&)M8Tuu:W2RIj^8S>S
1921$bOk4d0"NPPf_%W]n)9F@E#kG,<2[hl,;<'?nm(IT@EN]+8Q9XPTX'l',WTnK4lq0^F!2+=`;F,ni_
1922,`]iD]k>8pO7mQ4kAE,0<_1-8nIF<0_&Ze%kQI&hJ`!R!s#$R^5@o@Lt@"$s/d@3V>KAW%`kF/>$MF
1923>:nYP7Ag,:%jLM/&WKFb$=:Xois70qbj/3K0W'e;*LgcEGh@/4"W.6d$\FI$"2i=]//oG"dfG+25aW
1924u'?n`=Rfh3D(L:n`t1c#+cE'uVp3$?*)*e?!GW[(nqek9V@#[dWP7Ym`=@*uq/%2qfO8I61V+@"#aH
19252n)W!FGY;M/'_U/V7Ch"oKj4lJ`j@!]XZsS4@YaQnt>T3.M#QBO6KK-lBFhPLeeqNQ\Sc1'R`K"e_^
1926ZOI>:IfhG*X,!6>;TPslkX&A*OqPT:fl3rD$=m+.1:_Fd,?R]LD!C-bfKW[L*$#XJ"U,<tl0_;^;6L
1927r<JE)MHWPSuV"2V#L1L'^[S-]EgtEHu.>jUQr0KX`$-J^LNQfHuJ9#pIHci&lcK;?a%$=kAj*MM?$c
1928ffX+4U-c?s"+ai3U.?gP*@ufjIF5>UM+e/i!(u<[.1aKu+R,\"Qjf*ps+GUs#Ki:@d)VfcEp3r)*KG
1929#OJe08d5QX%R6l6=S7IWqklPUu;:6;h",%i'1jCBB!!J+iK7(<4"Ip63c)?7BsfY75%T/^D9#XO,'6
1930iiMN"UVW;MNkggb_T@NJ,h;.=AFBS&#rd<MT\3i3)Y9g.#'Ec!seoRK<,M\,-j:I]&83(J/17W?agT
1931!4A[@bbI<;f\@u&M!!!0@n6?"Y]mu1VUFID#C&>>pJqee<J@GjbO:?f`Y<?<6-.7R)TK@Z;F$5a*\6
1932srD!'1:YT=ChlL/8,h(kRJsVM!X(^RCmQTMu"Y316PX.bhfbn;;r+42YeN].;T%n<0PVTJJYuM$m+r
19336;]/kQPrO6#qL_;HpGNhMS[s[6n2S4PNOgGR))[r]lQN=N'I[TO$:KR[nKXblj8Mqjqd;X'r1f7dCM
1934>j3^`J971;i(;Q7Q#Wj>@pW]W@+Bj8=*S402?M>1^O^kfrc;8fbp`'TGM<)("CUS1mb^aQIsZ*2/DN
1935lGQa`^E4eb%I')h[1<?7@Vu1DukWJ;[!SQ7qb_Q1jDNDGK3s47pm$a\57l1HH1,R8)/9A5U1oWI`M)
19363a7)`ccq28_H:V"b82(h#CkfuhH,rf'K?SS\P`*U^M+EkTKS`-JA:-mXKueq08!llhI#5q_NQ6F/8P
1937r$3*0j(-M9.<-KeQ&^nq_f%,D*udTlckti$ukXTh4UE8bab8QmPENStU8!aon?Z,bN3J&V9#98h?m_
1938KW%L^-5,eJVpqTd*374%WrcZ:VpqZfr27\JYtA[?JaBD[>e!E,.Y;.KJ4-_9r2`ObYfe<%b7qG/J.;
1939W#^<@RkJm0/1lpsPZCa?*!1G!E#j3b9N\4#[k`iCDN*6!b^8itPC_\mbiKNC0LX\>flR\[lXifh$^C
1940n:`OWXQt[FB4aP=1(-W9XC6+`'L8:cGObMV&[W89Nah)F2fVrV<$F2>[7Xd1cC$E6b/G8KI]PL`&,]
1941uR,m)<9NFiWEC7[m^B618WLZdUd)PX99o76,'OX4CgH9O("Y`'bI.r:[Y<[^fZd_lHnm-sb6%hM<Lk
1942DV#gsJT\Jd=n["R%t%8]ess?j:!i]<N7[b?WAgA%u:=2&`M"?o%fP!WYItKGk=X&X1J.R*Bl51RNfK
1943fHc!/!._j9L.hYB];uYo?\CBC!SCg)%/\%<#uSmn+Q,Wf80WbD;LoYg_D$Yhr*M`oM&K(G_H8Ai?pT
1944LN/:^Pqd<s],i$*^kJ3.jX3Xm,j!Ek"V$\eA-K"K/271]b_&J_,gM>\)H?kIq:W.k:8VXT7,G_uV0"
1945pB1,:m9)KZ#0hD>(lF7L1h`\$8kaMcqTXA:&(JR."_[7$AfT@JiHrNjA86p?qY3]$R@JTPj>s1OG7F
19469!+6Ku0S7bFr_lt14=Gu;a8c6k*e?id!5'UV^k[Rc"G>?a+KY&O%8`jgJVI8[!/MADAH,V6o?[e`7i
1947aNX&;&G_$6Ih]J,go?o`[8cBE>mV_\GA]+G@tkTM91$Vl4),?ipHn)pe0J2'#^n*ENMD_grDgU`^/C
19484`&")>6)/F43Q#LrG]tr:0%XQ79WT@=9O7<37UthfE.L=+IH&?BSK>"!4br0&-)d=ERhjXKa7q"NF(
19493:KNAeT=<WSJTJV01!Wh4(JiG([alV)RG=Ies1-gNqn-/o<,EDG$f?76M+<XQ=*)c&Gfe@*X3/</(q
1950O5J5!5Lp%F:Y6b:/)`$-5][5!""82)+3cL[K8n:]jK>q<7`]cN,W?eF_&d7!BSkjNPLERi1\]o:X6?
1951TLo=h-b95*[o[J7XM%-sN]qQo$]!Eo"_gFmJFdk/ZT*nq[$716bQ,0ih_O%*Bd1'\CQ"LDo81J2iMH
1952rG@=Jpm5#QOi.gh<Qf&;/VFQ2lUb7\oIlYbd(k]HFcC!0,'fZtBY=W3t!Pd<2H+Q+i(949g=L#m$LO
19532<(AbKqgNdV-q5rA`MW(-/O@8#[QL90TZ^&lX"/h?7"gljl5,?D#d[i?8_"SD<B\\iX>q&hPKIC7JG
1954YMkqc/ahGs>X[J=1F?kc]K$rEj/%I/qLlJMj*Q)Xdi8D7G`Rc#LbNN)d`%H?9Yj57uY"iQoI5QN4A%
1955tO]lJG9]W((T9Z%cI<ti8tON&-=2g&7H+\JIWEG&.sHf&`I%0@<`CC]isBd%cL_)@?)5aAfG1J&$`&
19566@,;RUp(LkH&n3a0JER0qQ6fr>&)rT^i><.-!!OO#.q5XpioUd1L^oKm%cS6@@?qg?hB(ZA&)qaJi>
1957r`mNZ_h,1BAO,dNTM/()^Q3.H*02if5n!@<<)66"D$'A1g5[5"&pQ#sjsJ]=(3A^./c>]4?XeP,:i^
1958Q:MV=8E>4jOetb3R4Dh)8S"=&&=-1V%Sc$0:Qf<ijM"N'(.^Y::1\<?AK)PLN_eaH<95H!&aiJ,[TV
1959]U7qIu[A_pg+ITsXU!sH,;KoTc!YZQU>BEbPNk*BdpTNHo0=G;8AKgon@DJFl]>%Vqmk6>R33*M$O-
1960%k_Fk/M0?[V0;CGm1?a"Yi.D%VY#HG@mF]k(\=sLf4ulEb:>]BHDE]rbZ8/,D874k.Z<.G&_,SC,k.
19611Kf3m^eotabNG%HQPAYtaQ?_WEFD(<"PfA4:L3Mi>Jct9>g?]^a$fG4r?j]:DSeM]?XYg(Y#gu_sVm
1962YH=XhU6'<(pjDe8p!$`DtTe=Bf@gd=QmS5_E2^Jqd:#<:o&&4h[:YBF0-\We60oNBgeKUYF=f[be-C
1963?EV9(R2J2gfRbLer,CrG2cuBQ>jeNF$%l;(7Q]b.6`nqd*8sY`cWe1o"$rTH`i1^O[b]1s>>TtW#XS
1964T#4N$8X-`CX2)TJZlKj<K;CU,/.a@:^D$NPDXRppGDGb&YUm-;B=K^]S(QjA5(&)%YW;ee)jTtLGf$
19653N*2LeC`D>X-Ir[^D$p!>lCPQt$2r$_k^rCeIO%_tmN$b=25@-*U"1?j2(lV4Zt,KtmkCcsm6P&V,6
1966+LfHD#m[$AM[\TQn!)Or43*a7Be%EZK5jLW%QCR8uRK0iOR'<B'UbmYhk_M2u!(\,b(g@"p'^fSjCH
1967P+'nq.[E4TKF^"-<fii)e=WYg33b+[N:8pn\-j"bCG9.B%n(BKuR="oqI6lT)Q%Pt]JrK`Y7VJm]mn
1968e#mLXAOT)bgmNn4l]r\bKS=(YJ1*]-UP/b1hZ<ccK"ZX@f",gLo^3HURi!IP!7(k%[K@<@nCXGh^:n
1969A*KESdo!4Y40m`L?14TGOF?'#*%QLf'<^Mnqk#ZR:F=G!Ak/_CQ-U-@,%OpV=]ff<47D6oJti7ci)L
1970[G)<d^qmQ:gsEd(Bu:"!`/mgLH]bQ#k!_n#V\f"O:kda('ll\!"^=Y=CQi-kB(&k?5GX/Ht/MY4smK
1971EJ8r<okdeSpRd1Pen&D0o'-dMP!!#bV!9bMu/$*Tl@feb%!9aUga]\.__"!8()i//2LadoU7%95"Fk
19726ESKiIUG'Ssq2#$<a6^`3B:*!(:3dbRc7k[fF',D'#jQ'c3-Q-OE;VtH(XZS&pb<roeF?Yf:&l^m#=
1973Lh>B1Q,Yu91EP%6XkSY50Q[0mDPKeKj'Qu-%Vl/8G`0so$!6j7]iTUi9s7%4B,PsU057kq`s!c*@"\
19743noP>)6GNHB?muI`?OEgo.p`CXEr9*i7Y^d!1K/1/e2kpHkV#!>4H>fW1^^L:rV><ucqL>AgYGQq;'
19757r2#H:#>ls/Z!gVlX7)HO$bNa0Pk%/c`YmqHpIQpT&To1]\F>qX:>/DnLC?VQFN_HS;aQs/Gj./HEi
1976#Hj?KopSJ$01B@J&HnWNeDl-?KQTP79Y*[=Z^W_)H8;'5?KLa76YK_J&klK]sI2C?bQcat"que+jrB
1977JSTpX]9s8HGbHI?2h[)[lUWgO.@6JJ^k)hpDI$3dq=Y"3q:1:hP#LMF+bP#qph9hiM`%QLbB7H01WI
1978F!A!jSqoo&H'Z&9eD,>_@!Thd?(98f&s%;`B']bMq5(Uq!4-opY\LB5#oB4X+(.qdGkfM3#QmO""+i
1979gHbnaFONsCD,91aAE7L7!?!!/$lPY%0(A]A4+<=F0t`WcDE;:uX(N'1cF@ALk9\dlLY!!;_I1Ft-Y"
1980>D0!<abK<5Cp`9O@EJU01URJjcmh(<D?;'aX#8kA?Mm5-7inq8[T%j4.aqHFt+dVbpB48/G6OW;QL;
198169;Q[_Te=#TYYF)?WT<oCbT>=b(9;R.%7F]e0,4hZb"<;ccg+T:@`#l;^Hq?)>BFnpLnhp5fiTaj4B
1982#HkkYWX?@;umh_\ZroOYJK2L/k&B$bg*E#?24&r,Pu@B:QQM/=7nN':UW&;(4PNMM+"j.dOZ_(+Bpt
1983FP9^hJoIrM7LUQJ-!<B"fR$h9hP#o0kQF@"&.]HB>/J%blS90VM^X4.`?D))HA[OB@[tKH,q*^4J-/
1984/POJa9f"@JU^@)<#/07$=\UFlnPY+^Re9Fo!:"$2sfC`?]\3iW"Z[\1WbH8Pud!1(C!kW$EhM'1;$%
1985&REO"ML#7!1[^Fc1F\d1@[tGK9dYDGV]N`Z$;!VY%p5b3mA@U">.f,iarXNOch%^#[ruT2'a%DB8(j
19869bjqSrBEUsN6neTG[tlT6i'(o.QH^Q5O;&1[!H9;"QB?jB)7h@L7l;^bbMl'H.1G;\T_#6kK*>37P_
19875+VJ3kRhJ`n*p+Dp`0PbiDb;W4:FGeC#E!r)aN;\0TDZVJYRDODAMMm.euJ=qd'QN?:M*Z2n;F!76`
1988h"lc2-omYkL`jL?8:r(V;d<0qTU8\%VJ6<)!!)$+1"d!>2aahAo;u\,a:T<o!!!cG!!!%g(4si:28N
1989=d`Z[Z[V50I]1>A$[fd`e@nsK:s`do6`.g.7#(1/\*pG5;T>*!9ufFq(l&qf!/'S$3E1QA&hMBtF'(
1990DJ]Y&E%O4AJ[ZE-_d>OSihbMl@`,hNSkBOB:,CF"@q,2oe`C(<9gDnJej4`!"1Os;M'[s&G&+/jhPs
1991E!J$Ou6+=FZ't0uB&e&1STXYgG!lFNoI;BZl6`?_>P#G1$7DR@)eG4\)<0!6d"PTO25nGN+]X15eX#
1992U6B^`^X*/h.;VNHg(q;3r.piOA[F"Y#^)%.bu2k>(kr8ge5&bdLRmLL:_7FJJSfV8qK3]B_1&WLbT[
1993g?`(]J&im?QZqjE>k:S_?1&@b!:b9nXTHa//D-nHm"V%);*@,@Q[!6EY^uT5dH$D0]LRr;"'NpBU-;
1994*6a'Um@I43%,2ATX"83?u!07cp5,$abI.9BAA`25CnY0.V)3ri_X<'lsP$K5MI'`sa<MATMGTl`.,!
1995lQ==O^eioj>7SQKT^kj0+T6P5DCm.+q"s.+/.I\L8%qAJB2:4U3%n"+L3Ic=BI+?i.Hqa\4_?2eEm5
1996I7oiKY1e*k_)8NUkNH)ZiKhsrC!d&CAd@;H$+9NRX]Pn0b==)#?mM&R[Fc]J5,GAKU+!`s_#iK#Y`r
1997N%A_<d;DE[ENRBI*]7i@0As87ap5cMgC/$8Tp-d_LHa#`:_B+A_tF_*SSYaG^t#A\n5cGGak:6%"?G
1998dIn7I`r!q9U*o(];A(B<!m*4sI`a5n5kQo+Oi-U2',@l<fjmB[0f!%[SY%YPI.8N\R[SoNTZsbK/I6
19991$R^49#9Y#7N+DXrHDt7q^R=bP';+5bOH=K3ci()nQhN\a<&/9Cm3@)iFA^d@_8a64IVf_i\VFk.:Q
2000/M>3D#&S/CmRgUY+"Lr07P33@0mMY0H\A=GK,jNd@$T`KtrL?$/e3Jo!pp@n>Hn-<h0dN>]Zf+'VZk
20011FrT-;;3%$1"^iGU!g*^S8rX!,`_G43nerXd)[HF/!!'J@%mn>S^^B")!<Bo=+_m[tW,f`AbiWD'gl
20024sI-9-_g:bE'n#b(qS86M%r]2d?4EgtLUWf%Hu/VLVS"/</W5I$q=K$XT.,/@*.O=sB[I39gmM.TgZ
2003^Kl[.NB*`;"G<D40nFQbFH^aG/##W<X>08j_4V*=(#hNukSO;/gjob&`n0>V6$r8EO&V9BBaF5JDo3
2004\Q!^Kip5tI'=UIN)S+92NrWk,G<$r[0L_0*bWA/ZZM$!Zs',Cfb=ATThke6>,7-6\5AZrkWYn1Y)4^
2005_[L(d"Bd30Ec:X,&1nT*eF2p6&C3S$pY4N$/mBU>qlJg\&a\8$Kh7>\aj[U8-+jhOq%I/Pd"-$Amnk
2006T6q%Y#$04_M<oCIl!'i1Gi+*J#S1d(k@q;&?)]k)[SD&c1=\9G:f\g43JL@E%$pZ#a+'NnG7UX4O6A
2007/hTE!R<D%76i<^<^5WO@F+b3IW9c]F]&1!!5.,)@66tid*:i'NSK`@.4>XXC*R"@#,"UG\2ZV$mb6d
2008k/Wh6:=P5sM=+di[)=Y*!q7$=_Dhr-ipS-iM<QZ,&aRh&88*k,,RB!03s%]Z`9$iPU$b&A+BauiB[S
2009b^`P?Kri-ibT9]nW?h!GE-%#EpUQmVr3%gTrqXPn"r>UC3XUhYB^93R?3-;=!'eB#g-!Z=8r!<O._=
2010GZ"LN(:,"C!gX!BXKA*.<8)bT_i>Pis_eWG8&'<`OW>9#:#VWQI`:.dnVboq(Jq+@)EqIIQ7;O6q1*
201135b#a'4Y0UAD]pRaUl0Pd4e67j.aS3B,`-4/Tt=/a$n6llMNTM0_'"FAhUg:Rk&ikI8q:(*M-G2VFl
2012C".`llRb2iZe/J&jO6Xr9FW3T+!G]#ba),M66%MID(cqPR?Yh,Ia(0l.6:O&tWfJ#r<NW$(s2AJcGC
2013WV)B`&4KAqlTM#LG+`_)]2*#+*P8;(Yp7r6[oO8$`!-S]He8+lDsY?R*".f&h0^kgm/[nops0c;L&e
2014+6bU<LBE">nJ+.N?QG,T]U&a$bCUB"VQd.uQjkWIJ!o6uo(qN!f(I92p2T!g@-Y;b]/GFeG6f@#0l$
20150_>;U@iXrgNu.Hl2Fb\oA:Y;q>YI8!$DL@SsS&T:Q=po(V]N+DsVnEU[p[i[/'_LkkgrUHrsJ;rSPB
2016bIimeMs/5Phhr"?]TCr3`kPbG,rr+S%+@2@ui%G)W%fm4T!DjR5O;e5I*s)uu!`16GO=LCZ0*;bA!F
2017T5`/Z9PA/HbC>";!p&jt-]I:BSs>"OKR@OBNN@<s4UT"]/\4YXo!P>mBdk#*<[+E)?k%E<gGm"qZ1f
2018E.%pe70mjJ#I&ab:l>Q4?O>(e5*2ZLOK/`8Y6toJ$W+;?OLknI^C1[k$rFtQONS'ZcOCH7%8bX`iW9
2019~>
2020%%EndData
2021end restore showpage
2022%%Trailer
2023%%EOF
2024
2025%%EndDocument
2026 @endspecial 2442 2038 a Fc(Figure)32 b(1:)h(Sample)g(sudoku)324
2027733 y(The)i(puzzle)g(is)g(most)f(frequen)m(tly)i(a)e(99)f(grid,)h(made)
2028324 853 y(up)28 b(of)g(33)g(subgrids)h(called)g("regions")f(\(other)h
2029(terms)324 973 y(include)45 b("b)s(o)m(xes",)f("blo)s(c)m(ks",)g(and)g
2030(the)g(lik)m(e)g(when)324 1094 y(referring)22 b(to)g(the)h(standard)g
2031(v)-5 b(ariation;)22 b(ev)m(en)i("quad-)324 1214 y(ran)m(t")33
2032b(is)i(sometimes)h(used,)f(despite)g(this)f(b)s(eing)h(an)324
20331335 y(inaccurate)41 b(term)g(for)f(a)g(99)g(grid\).)g(Some)h(cells)h
2034(al-)324 1455 y(ready)29 b(con)m(tain)g(n)m(umerals,)h(kno)m(wn)g(as)e
2035("giv)m(ens")i(\(or)324 1575 y(sometimes)h(as)e("clues"\).)g(The)h
2036(goal)e(is)h(to)g(\014ll)g(in)g(the)324 1696 y(empt)m(y)34
2037b(cells,)h(one)e(n)m(umeral)h(in)f(eac)m(h,)h(so)f(that)g(eac)m(h)324
20381816 y(column,)c(ro)m(w,)g(and)g(region)f(con)m(tains)i(the)f(n)m
2039(umerals)324 1936 y(19)35 b(exactly)i(once.)f(Eac)m(h)h(n)m(umeral)f
2040(in)g(the)g(solution)324 2057 y(therefore)29 b(o)s(ccurs)h(only)f(once)
2041h(in)f(eac)m(h)h(of)e(three)i("di-)324 2177 y(rections")39
2042b(or)g("scop)s(es",)g(hence)h(the)g("single)f(n)m(um-)324
20432298 y(b)s(ers")33 b(implied)h(b)m(y)f(the)g(puzzle's)i(name.[1])324
20442630 y Fe(2)161 b(Problem)324 2849 y Fc(Not)47 b(ev)m(ery)h(com)m
2045(bination)g(of)f(a)f(b)s(oard,)h(is)h(going)e(to)h(b)s(e)g(succesfull)i
2046(and)e(there)h(is)324 2970 y(no)e(algoritm)g(who)h(can)g(predict)h
2047(whether)g(a)e(generated)h(b)s(oard)f(is)h(v)-5 b(alid)47
2048b(without)324 3090 y(completely)30 b(solving)f(the)f(puzzle.)i(So)e
2049(there)g(has)h(to)f(b)s(e)g(some)h(other)f(w)m(a)m(y)h(to)f(generate)
2050324 3211 y(v)-5 b(alid)27 b(puzzles.)h(First,)f(there)h(need)f(to)g(b)s
2051(e)f(a)h(p)s(erfect)g(solv)m(er)h(written)m(to)g(test)f(whether)h(a)324
20523331 y(puzzle)34 b(has)f(got)g(only)g(one)g(solution.)h(The)f(second)h
2053(w)m(a)m(y)h(to)d(generate)i(a)e(v)-5 b(alid)33 b(puzzle)324
20543451 y(is)44 b(b)m(y)h(creating)g(a)f(completely)h(solv)m(ed)h(v)-5
2055b(alid)44 b(puzzle)i(and)e(delete)h(a)f(ew)h(sp)s(ots,)g(b)m(y)324
20563572 y(c)m(hec)m(king)31 b(if)e(the)g(puzzle)i(still)e(has)h(got)e(1)h
2057(unique)h(solution.)g(W)-8 b(e)29 b(are)g(able)g(to)g(generate)324
20583692 y(so)s(duku's)34 b(to)s(o.)1918 5251 y(2)p eop end
2059%%Page: 3 3
2060TeXDict begin 3 2 bop 324 548 a Fe(3)161 b(Solution)51
2061b(\014nding)h(theories)324 767 y Fc(There)26 b(are)f(curren)m(tly)h(3)f
2062(solutions)h(kno)m(w)g(\(b)m(y)g(me\))f(ab)s(out)f(solving)i(the)f(so)s
2063(duku)h(some-)324 887 y(ho)m(w.)324 1176 y Fd(3.1)135
2064b(Marking)45 b(up)324 1361 y Fc(By)28 b(deleting)i(the)e(non-a)m(v)-5
2065b(ailable)28 b(sp)s(ots)h(at)f(ev)m(ery)i(lo)s(cation,)e(the)g
2066(remaining)h(p)s(ossibil-)324 1481 y(ities)k(will)g(b)s(ecome)g(clear,)
2067g(y)m(ou)g(will)g(notice)g(at)f(certain)h(p)s(oin)m(ts)f(only)h(one)g
2068(option)f(will)324 1602 y(b)s(e)e(left,)h(so)f(this)h(will)g(b)s(e)f
2069(the)h(n)m(um)m(b)s(er)g(to)f(b)s(e)h(\014lled)g(in.)f(As)h(can)f(b)s
2070(e)h(sho)m(w)m(ed)h(b)m(y)f(\014gure)324 1722 y(2.)1109
20713513 y @beginspecial 0 @llx 0 @lly 200 @urx 201 @ury
20722000 @rwi @setspecial
2073%%BeginDocument: marking_up.eps
2074%!PS-Adobe-3.0 EPSF-3.0
2075%%Pages: 1
2076%%BoundingBox: 0 0 200 201
2077%%DocumentData: Clean7Bit
2078%%LanguageLevel: 2
2079%%EndComments
2080%%Page: 1 1
2081save 9 dict begin
2082{/T currentfile/ASCII85Decode filter def[/Indexed/DeviceRGB 219 T 660 string readstring pop]setcolorspace
2083/F T/LZWDecode filter def
2084<</ImageType 1/Width 200/Height 201/BitsPerComponent
20858/ImageMatrix[1 0 0 -1 0 201]/Decode
2086[0 255]/DataSource F>> image
2087 F closefile T closefile}
2088%%BeginData:;
2089
2090exec
2091!!!!("pkP?#7M"L%hK6_%hB6`%hfTi(`*r)(`+/2)]g%E+!;XJ+!)OI+!`*V,U4ce-RU;j-RpPo/M/
2092\00J5"41GCI80J>490J>7=1GgpL2`N]S3'9/Z2`N`Y3B/r[4$,Sf6U*k$5X.Ft5=.h.6psI:7n?*?7
2093n-'@7ncQJ91r/Y;,0q`:/F__;,C%f<)Zdt>?=p-=BAO*='/^4>?+[5>[1cF?sR,IARJkOIU>o[@:+I
2094k;IsBJA7TIfBOtjiAnbpkCMR[$D/sK5Ci=<4EGo`8EGp;ID00l?G'/+SG]e:TFaA:VI=$9fI=m$#IZ
2095[;VU-fj&6PQ[n)n\i_]3@"K>"+?kBn1\]UMX#+E*:1K$c,FObXiAf9c<tE-N@m5s)0UkE%h322#h_[
2096s*-]nGt.g\6%OQ8]7O\^M-^+59E0]BreXVSNEZ@D?gNtls-$smRVi(qErVt`KS4r3L5^kCL51SFM2-
2097eBLkgtJMMd:QOH5BaOcP`jP*D<#Q^F&)R@9M0Q(",-S=H(@T;8$OS=ZFJU7n3bV4FEWU8FceVPp;gW
2098NE+sVQ-SlXK/A(Z*(:8Z`pX9Z*:F=Za$pI\@/rT\[T#Z\[T5`\\5bo^VRSLZBtTjKE&*2s0@[a[Zpd
2099'S,U-q^qR\%_8"[@\a7ADs1tN2`iK-]YQ)hRs3J4Td_*Q:_8aL9`lQ->aiVWE`QQBDcHOGWd`p.bc-
2100t+ef$r-te(N=)e_&L(g=b'5gtLZEgu.)FleU.lf#%I>`W"];io/bain==keGSF\ror;$jPf:cjQPdf
2101lfmU#m-4'/m/HG7oC;8KnE9fBm.U)Ap\=FWp[n@YpAY$eJ2Z=^3$]7K#D>EONMof6[g\$[@So*)67E
2102_07N521Zp#9HO%!I(f\@rL$]i/7Ossq);^dOE-.6Ll_HAUFbi[:JXPsC6N6%e/)@[0t7#=8Ze+dc0M
2103,'j4>*V"@8YjjOeZ2]]V/j1LXOc`<3u*dnAZF862-R[kh-RBgm'UTIcKSlA>O$BYD8u*i^KW=7/+'Y
2104.G.BIU0K,#o,SS70E`kMt9-9DBAoh+fY&c7dc"HZ/m3[HEU=3Y)6G->NU_3ZDG$@,,f58"PDKf<uk4
2105a;=i,Ep,-DZ9#!#QhSgqID[S:3_a`uM73=."R_%8^>JiVR"'5^.PP_FV;XeNae%ID8!+63%==H,d*b
2106bFEelICY.GGJdU9391]+9Tk4R4@^V>:]M[a"i1D%Q_X+,+b0Sc0P?FPaeC1.,S0q][A^@/$%NR"&<8
2107&U,#!Y'UgaOARKsdmA45B1!$S$?JV7h^jhsk.TV^]pK,Wh811m3kUb%'9"R0Ho.-B3E25"Ql10bqkB
2108duk48HGJ9W+O.L8semJ#!Y9UP#uD+&fN268-gbMJK!Th14^91\KkK/kj3.++NB6j8eiefI%AD.@<ar
2109X#SEk>P2t&.$3\eV,s/!f+e'r(7\L2;b!l+<18)X?30kKEq)h6GE:>/2.T%I?M9ZH5=Tfj8aX\\UUl
2110g%X:[&b(BG0t>6sL9QASiR2BfZB%'/01i8g&fC0SNG=+Xg..K]S/EeB.gq@$5,ZKRj[FL!5ZRJ-=[f
2111Rra1N3EHF<4'e=fK_CcVJP9s6b/KO'A0Qh_KS,Y&)/a(\a;$+]'/[[F.AS5S5ZEl"jL]@<$5oR)'eu
2112G<%g$rY6>B6$0g$A.@9A"C+LdM#A.QM4RTl_03X/_#a:WMa'?1r.D-/2@O@Ktji^&/E6l8piL*RIXM
2113c"S1[mudJ64\jEAqh0sTQ\I#A6ie]IUD,K,W::E4#qtIA<rB#G1L=<JdIJ?=Tc./=d;#g"bU#"Qlqg
2114F#61.S]Qf(mZtZg]Rjn77VBKKcTKEL13/ir,l1o8"+JoW8J_H9dB38;/A[9;kk.FKmj/<i;@&.l/"Z
211506ODGU=9-m>N+LZIu>f-&i<[j'Gb+<4Z5K^fV)Qm>0eS`lF>XG)s.V?Cb_rCkKOlfr+DD3Z?tR&LXn
21168Sj3)^,[r3H?+TTe`u4GrKAB^1'Utog$0QG!1To2#`J`h"J@H!cliQXE#tcD@Y%SlPQRR4-oi%+Q:+
2117i%DiVJIUL8\<8>t,O@`Vmfa1=RUTGeK>gg166">#3kJe]XM5`%u:f,'7!&&R[f]!8Ug"E8g5KX?=`&
2118[j=q.#&A:9rej0>j;`+Y\p4$5mr7N-3,0AGc2>uL_,(?KqS]i_Iaph<Q%5X.6p9f&5!729`^&0fEX[
2119lf/^d(0TkqX0nLT)34+o?L%r(e_VQ?5_6bj!8:GN=jk,OnE$>FT(1F"(5bI,]1m'!N)e2bhN"?C+>t
2120`0U!bKslck6m2C:G2B5XR"fH9e!7.MEE%*^XlS07]j'+O*l:\ag61T\JiQ@piG(Je%`)fVq+$3[20O
2121I&RFo*Km<3PT4s*/:ceD'4;F/O@<pV!19,m@e^([+q1!`ps="kTVjqQ!)9+'c$5E(M[:L?/kA@i+JU
2122c$cF'ML'WD<U,6d'9EIs-=grOeo3+7pP^5bYkOs$d9KKJ:+5t5fL"MiLuK/tJM*\c=Z^k<VXTOQdaY
2123b";%W.U)+rB&-K#+!1=563[W1FLX[&V<_qO@X>@"H\i],V]?,,h55;5f++b6:*>i^d3^:NY6q_W"B8
2124Rg.2kDS$!`#"T^*AM?>UX$!9'A7cZgflLcDJS>"6kjRpS=PTZ^]9p=-<7>P?u&]-Rq/h)J4`1!#86D
2125R3YjC8^kW<*sS:-M[E@RinLO:k@aQ90fE7osMGR=m&OcGLGZ#]bB?e&!`G$K2TH@0V$%;T_f)9Mi`n
2126HkL,^@#K",@FX>G35XsS&1ELI,N+fFmDc(D#CBc'HL[>&R7=\qRqS^F'<Xn-75"?>-H)]I-ijO&=+Y
2127p1'#<6<G-N)fJdsW&e.-t"&5NU'GX:]%NB$TJH/,FN7':\,HL(7i7\UP&b#q*7jGn^niY+PS>84hG2
2128Kb_!TkOfB`$A+E57NA\j9DB?_Y@ud_so%,Yi[+HK4mr7J[L<=7MeP1$OpOW1,_bE*#fLu&7V.r2FYD
2129s)d$XPA'AaI!Yk^T34gACZ%<Yo^-6NrpD1::1bo,]2T(opD$R9G!*(JP"Mm>NjkRP9o)MPn!7VkIbe
2130KROp1VXbfGA.9h3bMQC&st-%;$U1SUpP_$[ILkArrSqZJJm3)7qta!2'OH!"R>D)b#GLO9m`ZER21;
2131-%[-VUiVDOG9og=NN=rpEd"+nG\[h!G9M_sCPd'+OltbQ:PJ=Pf>W&]`/TaBL386S)c@&BCRd>CE9O
2132eBRX7nH%%XGRej0Gm_cZ3+I?F4UTlM)2C#odoLpiM0^,SmJ7,'_BaIR#i;T2%*(@+U!*;[:c-D-BnY
2133XBEFbZ(u6d#^hs0q,i4KF_CNNM1qXMI$$%]DWZ%2;g)3L@SK6hfYmIQ%+TAitL%0.TK?S2L$EjT=4T
2134/(pTYchBho%3c+joGgBi#OVScgOYX8-&4d!FA:3X1=H]tVFS>G:^9m\Ci;OQL7F6k""<_!i7c,W4OL
2135DXNk^s=12C2kap<*&Z!&B]iMM[G3&^WM/&3[t,7aT3h%at[6lOlq&_&cY,jJ-"pHb'Es];X4+glmkL
2136,H*lU&m'gCVI?hgKW:[j$G*R:)W"rF"X.RL%"n6D$8]VBcm9/[[atH,Buh%lnH<['E;pD6"dEPrp>h
21376m*k-'ArN,%4^hejY;``$,gMKnpJrOb"$Glo"J`ubn5jQ,!L_k(Fc@W\uOpW[*9blI%**rdk9G$4kN
2138Me$-?\:U1#XM/D0ld,H:hgTT8F+qD.)]g+_(c%rEe.m*l"=",dRu9f"qeX]4p2uVYPm42+re1kpus[
2139]NS[bI%"DYS!,%[5D9a"!63Ud%#_48$U'UU([Lkb=&&AM_bMME>![6NA^$Ze30'\X2qAU\V,KnY5LP
2140XF+5%KJBX"S.*i*HV!L(Q)'W/5U4JHkn0^`Z6KH3"B=JmO`S"r`7"!Ped!C>ub_"q^h::>r,R6oZEp
21411a$2u"<fH3Af/AIg4,-W-L$VSn62JVS>n&b+V/*.cf-'uKEDYl"<e?;+pLdCG_\fKHKicmaE6s-?DZ
2142_U)M%Gr!,MX31C5_q!+@!W+=7/i5)AE-+JH"D5V`Oo7Kd90[DEat+U/LO.);QBIXuYRb7&&n.W&V&)
2143Cl0&Y0%kV8:L[Y%4CiL?qq:6Mu`r)^?"2b_'BQ<arojU'2&]GX%r$#)@!tZ&7Rc)65UU`IKQ6X#_5;
2144EM2^7W*qdgq!aoi=6+1Q[U)/^\^o!'P_'jcU_G_Wq)962&JJ\rL*<e-?)f-dUW2+MX('alK(]Y$MaL
21454ZkTFe%[m7GT)!O*IC&/Yt%\cNH\OH=s-kcmDtOC2/q$jr>Q()LHp)ZW>.OKrtc!$Hi@+HFb8JpnX>
2146RLmVZ+X*TELQ3"g<e'Sp,H#_!JZo?o<Z=>B!:*OPa`JI&UaBP9n\p8&cG94l6P(u2=lb#WTr86oH5?
2147Q(&?0k#iW^:964lf/!T8SL$b0*4jqiSnFhsb%Y.AF%l5N$`=_iBki[buX6G(*0J-_h`Xh#aN5QkIg"
2148+Xec&8YM8gA+&Jlf!+BAIp$k4<X]V!DatjD9a(#L]`0("JCea0/P+Cqud!n"CP&?64#.tU)$$')<%_
21491+XjiiN!j;Y^X>k$!Hg&9BG1sL+GcW!Ue2umOH#Fu="(Qt!H&LkQECUc(BGNkL5,8NQkr%L?ud$H@6
2150k]*@,3(RNBqFm_(R^OZ9k8k8B6aH!B=i9OPOA]'T%P[5pV_2A0D8VWs5_j,R0T$1HR2$,0N4bTe-sF
2151$J^;0,0qkbY1VPDVZUA1&kNA;+YjZ3>es/"7HQWT!@WY1XqBV5&u&!]M(BoDXC8,2:(d^9%aPBVndu
2152O=G-Q`Gn!;c2P[MTi,"L?*!@Wu%C_EFd>Yi0VU0+n`Rcm^/NMTfB'5E&\Noq`3Mh/#IM>UE(2+R*bn
2153IYKSJeY)&bk!WZo*!:nXighQ3-sPX$0)j=iZK,Y1j\Gi9YmGkPE/%linP6=#E%&(+pU;`*BrHsqIOJ
2154kOu=L./O5OK.*I&`Kj:qGe7C9n:UD3>_7(3eL/52T:o_lfoLD`c'^X?co7D31Meu>[3<1o9;8IF0eJ
2155h@o[js<l;.QS'[2+S8(l=M5Uf8Q'WW3KF(sWR"<OH)Y^h1fu?HcDV<PY16CtVfgCseMn=+HkCbir3:
2156Bi_WH#N/N^9Y"2HL^F-6bB9.S9ahDH&CFLM=)>h&oi_fI=]mVm<PXb#Q$Z]B\3WA*?",?Ei:n4AUKr
2157#m?'X#Ip"gU<,r\,c)AVXG2;qmcW"Pd5?+'5TFl40hTj;*"7_jL\ebrkJhAS[F%tUQ`2@!Yk!Z&T'@
2158J2!Sp!amFHCt;6?FDFp2>(6@W#&j2?WJmgiID5X6"AIP@R7.-N36>^i-0n_^<>h*eB^hp3ri_6Sq85
21598E'A&YW$:QO-c-5h+tf%O-EQ1"*[2Y<KcCbW1HJ#'kKb'CA`b2de6aJE+b?d58`ngm-5jrV,"99bU3
2160(gh7-;FT(aWR`7@#4-O>11<7q-:Y&Anr#YS)L6\&!<964VnTp)@q#V4qHo6)9fWSf9sW1c6Fm;>_AA
2161Jqss,C8-5\MKh]C\fa:T&2:s?DaNl/j%N:g"K=:EPLq#+ga*2K8)\#tU')7nU93`B_.!V`/l!P=e6$
2162:>+@3;[-qm%[fHF[n&]f_/7>;G:+=!f=',NhNiH>gZ7O[\"+qqU4@Ajh_4\"ft>iT5N+]EObGS#FM3
2163#6@&F/l'[Jnia=;5OCD6%g"^*1"%O9>Q2lle`UP2A30Wo<dMN+U)rGOQ\<PG9h4hU+-hM3cSVZ>qE3
2164&WA-:]HuG1^(MCW5!algpn-4]&C?et:!.G5dE$ObkIUNd$`ftft[MJT[T6!>m&>gR9ObDt(8dF&fe&
2165!6nGS>iV]["A$!,rS!f&M@;+@/(4+pR+GW/;nVZm8RDJTq9Uap"G46Nuji+gr%l.L9Eu!^T(!2g3)*
2166IcN#VC19GJ1RK;H!dNlO0UMdWkUb;\Wnn$k:1-m&J;aOq(/8[-,j[-^2"NUB=s5?/+@)Y$KWl9.)/B
2167_p<snF'?n*&1D?5I\,.*DQMI`brBG'd=q3#V6+WQV_&0Q*T:7&=p+W*i2LJEF*&c`W$JKH1IQl6T6)
2168YX6:0AJr!!sRuH->p%:J=lmnCN;ZMPQD53TkFSe3!2F4"ggHu7DsPYBFnS]PHUcQFANLpO=>+X9#1@
2169"mdq/!(2RqV+@(ef+XdM%V)GO+HRJ\Y'hm\E#3s.a9S%UI^lA]Y+9^[hp]7`6?oeVpL]f$75'D3GA5
2170!nm(l0hmjQARY!<T3<2hoiA<'_'-+g/k'K,`E3.6p9%@%mu.(^Q8V)e#=;nE(:%enbV^l?RT*<t-]9
2171nfYc!&)a)o^dJK^bd7Sc"%=[X!#u3[5q#BJC<%c6@0Wh!mW5@.&Po.m#>6F11(rqK]*dh#ZaLuAC]P
2172fC"s=WMOcnslF:s-_Fmn-k[oo;`59D(1)5*B?JN<gQie$V?!oQBa!JCJ=BY2qNP8!;`@BLL#euf>O)
2173B+k!f/C+Wef%T)-4:A-@42.I8d.IA09kp8W/.0aY;d'PVDeTNJXcm/6jB;X$(=MEi^ON11^5(%"?=,
2174tG.(6XEIcQ,XNqAuTqE/e4".AJR,DEV^g7)be?:<k(BIHXEl&sHhJ9QjE7W\'185@GSeLscVh-B7!:
2175UP!4(i?(FN[<N=r``*MZZ:p)8Qn)@WuLZU(IC!KOYe,iN<qtV3_F*-)Z.J;;,8VC*?aX.A_X&FH_eq
2176'*:K@Pdg^11`dd-=<^X<>>&-IG?3IaBp<JLSdV$G%FF7Kf.e4#G:6Y$gaF?[1a#(A$`T0GWo9BSIMr
21775$l^)ZMp`[2EBhX+']%#hWC1Btm_8(jdqhrFFoYnXU,6Zu$MS^RuD[W[6-,3n&E4c(AiYn\;IjtLI8
2178cftMUb_*m%t+KdhWge.":#^:1!.9OYG*>c66jO&(!"0=*5j[5i\'_b7T6(r#[i)e5_%*Bn]tJ3cM[;
2179;i(_N<"jc!"c[>?j5Z@lZL!\Wncb0"u?kbdF(XRRNcM\Rc5[X\eJ^V4,e"$UG+?@i_$.OAS#X_u#>l
21803&7/^h<8#,!j$I/VFJ$.5D^!o7M>>s6Kk3^`2Y9B1`XrINTaL"Lg1fV<KJR$[q_<!=CEfq;4HI@o3+
2181V:o<6"'qc-5Y]s\ZeGAH"+W&Y?r@-`RG8h'fjIJRhuEek\_@#$g>G?O?).Wea51+TggEGM?.[jpS_U
2182oSc<q7;S]fc9p"=c5"Md\3rV>B"fAN52i#WQi4n]%H?t?)9Hh%Pffm]cL43#c4,.odVdM.?MXReQR^
2183G@ZeHc@;(OYiI[C<P4t%D@Ts@,Wrc2U0\M!Nm3sE@;"XCD+1%hK9;0$+;Aa9Jc04_2#]Df72d-LV\5
2184&]XB%#Q!D??^DEnB"Q12V)fe5T&So7qcFt4U()#]u^/,r3*2$Z%NU9^!=eR5UMur0q/T)i-a?cT2jm
2185Ypq&5bMHBjsqR\m`J,CgJD5o-#O>$IE+Q47&RK&TlI.C=lS?Ua[^P9u1i;)N#Z[s%.Bk)?D3>l5Z57
2186fqpdi/a51Yg]/K$jC0bt&OD38Mk+jaa$ZGDj6b$uInB4/p;Fo_,0>N*]%W7ce.II?41WPI!^4C^n*h
2187NMH6G%E(nMjYEb5?&'>\6*V[?b(HG/9h';99#bP8Y41g/q'>X>;$@3#iY:`s2#m/E<Yi\/A=TLm.2,
2188T9G:Tn3l@3+Qsa+:Yd.D@"Ys!"]]4'G44f&;Wel-r^YaR7]ahO@G-3L=1cF+GnTYIMC4<YZ`eQ^mG*
2189hM8G`;G'p9t\3S6qN.J3d3[.g((Ph5O3^"RDa2hWh1ju%DJMUCZg,ot9CSAmT'aAc351)6rWbJ.4TL
2190'Phb)cT'SJFE;$%NRbTu_q^R00?u;/)cH"L=q"'<(6Qp75-!b9bT6$2H^"RSBZ85aqeI78HOS0WGKF
2191E>XY_7+"J=&Mi*ST9Ceh*)[#AKeQ=R-JLBTS]=;ED"<=`5ak!I(Z=k5H3n9l>9pG!'FRs!&JIXP7ZE
2192!cHEK0Y.jUl6B\Q<jV+fap%m&F_9c>N-XSu2/\AI0`OjM?jH;:n4&5:8aG`G!(mcm=cWCS2*7hBMdY
2193#uDiPMk#l`n?#8&1kAg"i(CI12)OTl%D8*_&M$fO?`dkPc3e$i0=qJkXH$f.b[GZ.-?)L8J]V;!q[?
21945O]'sWM-tq\RcY2[8MT[[\d=$V+@6AYlJqSC'#YA3hEf:NPh)"N5nIcM7N$/3Yg%0r?]q3&,\rk:aW
2195.:h.f*ge#/MuCd]8#i!!o$M;51PA-m>)iL*k;e"-4tVT_t4rTdpeQ:ASX;&u<*NRQTh3Y"fU`q];6&
2196L7fk".A3&%CS[$F#Y^SIqsnU'+\Fq$2FbMJ8jl5Jb(::`q6!JUQ";6O,t:;tD$D-$@Z!r63cJgo<Bq
2197$63rgS(Qb(:9[/;>n;FKs-8=]I?J.`I&Cmmhi[VZs3;6_dIN.P"UK1<\]%0X("5$eb5+g>Z!2V\@c1
2198`,DPBjWf)_en!r("IIP#.cR'=Dd$()`_?2+PWSe+=<>KPOqh_L`i)c+bB391MgGo\NH#/./C$((H39
2199GAsFWIE/YMWUjSW[koi.q$3H#'7C*J.Z:%eLq`b-$Aq=J_1?hYR8eX-ob/77JTfe3AG2]l""(Uiu%1
2200cPJ$"c1'*M*6kC1.YfLd_AZQ+HGp?']4.5pJ<Z$#<j80Bi5;7hUIq:A7bbOCf7@Qd,35(W8\'=!:9B
2201^-ijIat,h/G[n=$&`fVhEGPqYYX\m@V]_77\GAM#D@%Z=),XVl5=jPm_0AR7$pOi=GR5OH:@Td8!SX
2202;#A,3VME^+inC$+*!6uj^OOBE,X!j/T"jp=3"5crpaP!jhc`24[V=*)"OdFME7,/m#dplWP\BPeF:\
2203cuBQf5eUH+P.2-!V8!3#UL$r.McJi8>j:oKGYC"'&lclX>e?iPK@T$mCAlUQeq.;Mt.b(AP=rdCdNl
2204dc<i1V%%4!N1`lJEF!PJd&b<6;L1kgM"K6-qf-9K'Gh[jfY\h5?L.,Cd)0^'/'S$1?&k1:MDdrCn6'
2205r5liS7!]_/:k[f.8i-81tN+Q8;!Td2@N12@r`_2b&=P%7C>;NT'4g!>#59A"7\$_(6DC8H9ET>_%ib
2206Kfqstg_9cGLlK6R7EEQq+9?L/I7GO_"Q=_]"lR"V@dZu_q)p)Nd";kGr_U_94XXeTS!ARJ4q%0`-fn
2207aIP>]h0$a;Yl!N`Pidb7L?BilY_FJtM3&lZpRGU6rAZB[2&:eDmY%0-AO(K/so8ssEIARM/:P4D=Aq
22083r`XYd+Nj*`5R%6T@Nm:QgUG'ZG:P'&PN?L#fNf`&M$6`UrYD0kLj*(X+];P[?hU'Xjq7P01kee;!D
2209UiXu#(\)BFeT.mrX_YO,R%h''s<(-@B=GCgf;%sp%Yq.iD68M$'gH2agKi4Tm`m;dn<O?K$`QBg69J
2210WhmlF<V#&h#E4>D+Ge@-a1kQAJn($</8pKTU;P8VCSI,`n"QN6rWi(<fQ/0YRM8LM1fZl<,qqKn10&
2211$qA0(1*['B)5%a+Z&7oqLiA(DU*?K@aNH=SD;]um3-opZq#hVR*)h`'N5O12I!imR!S1FrR1P']+JM
2212a2dJD^47bPdYj=T'5EX488Wt/c?aDHi$&1u\rJ>);E6Am*uDCbej(a9MY&L4Hk85RM?TpRV?E5in&@
2213n8_VfKP*GK202^.BH<oT@(R7GK%6g+\YThOAR-E$,bu&A.g.MdKhE)cj<^52S0CVRjD`f1`GT/0T[d
2214b2T=;m"MgB:Tn5Kt7^-tCig=9cYtc2>Lt,K=n3JHV7L#MidoJ&;mu30t8Oe-mZOc7cJ4G,ZCPfQsXG
2215E#J&:an6'0:t<dU\6)=*Q06qLMC\C`p(*i%!su%:DG0$]l&H%r-V1!K:'<-kn@TkcH0'jFR[M/2kHA
2216#n]S*N0$mh-\]C<1f&@X5NE\[i4I2UK'4BYn,\Q8j(kEj6/%".((\1\]2:0<=U9Ri6V.Y=,_Ff<MNp
2217pl";&$Y`$n@lO['5hYVHGAY5H-*mMZ;.]F_r)BT6ET*==fp0Z*T2Jm_r%?C=GjK1&%_RrCq9@2T`Q-
2218sI.H.et%!:_*Te0U#%bZ`,b)&:lr["7QB:$9TKFU,cIn9^'\iJ<I+Hl!'7L\4VGT,6_JN("KDr7)Ps
2219B>=1eOQ[n9>7^4)W`"61+n5KU]W?d4rjD>><DVt+%P9cL%6n-X_8.0+c&XpAu^4M53;+V'X!cSGO@8
2220diX8uJai."Vj>3$YbAjr8GFf9d2"1W2X^+a*j"!jFXA#&k(X9E]q$TscC;0Zk9mE(LE\Q5RTS"^?Um
2221?)PN;#6A%pal@2QM;g+R%A$UGU@:q/[=j&u7eS.iV@F5*h1pe/Rfacq#Co&>#ctQDKHk#6$hqC58iY
2222Oo7YkA)N;eAna<;Kj),h/C6-;QnbSUENBnpZK0pP*';ui>]NIWtp\YI[(6K7au"1gA/h/"6E5V8gQ1
2223XP_*7l\nNGFt#'1eMF=!%h$.[sP9R%gCn/io0Q70`2$i=@<3n2mb]@=r@E=U(h%G0oBG<!/XO'"9I^
22244JQ_)EcmZC>n/4EJMfCulke%]>k3F&ELTjnB8tFM[]ErPD;&*)-YU+7G@^8rhKL?P[CR(9DY]^RGoI
22256N1#\&Qse/EtDYV=d-Xpo@f%741*9'd!=F('YF0Nf5iXq.))d#nS-6j/pM4>Y8<kTuVKN0D@HPO%BT
2226!n/^A:GWT6(%=Y`M;YY-k6V,n2rNHqZN<<.\1;g!WSl?\,3grI8flo-]E5D[OA(<n4/*DkM84\K+Kd
22272/ILsW5/MeoZ@JpK5"Ui\].AD26TpQ+\pF*lC)<%]Ocs$ViRD'5t#(`f_^sb6*R[n]2,70I5)>uGGP
2228b+&<X_DU*\5!f;pqQl`.'*3+$e[lkb!"+'"d;-?\7#Nmp*//iLnJO;85BWiJO8#iQ=DKj34H`XZ*>c
2229(\9&OE1M!Ji]K[kPTnG<8#U2LE/L'gUNpG`)nsp!<fG<Hl+rF$?nWlAT]np,?,*X>i&q-M89XNdqTS
2230b?+P+s/BmR!k)JY=]L-q"1h?q(Di">jRW&MAYX+iXdT`]R\L!(+[^@)`0mJb^q<S6s9XCkOc7Lc?&;
2231e6g4KCdnCQ!N]a"$tDb[B>uo!"2Geo/8W<oB1?]NKKp+W<-:]iFiH[5KCB[Ib]ZLXD$08Ba4tB""E=
2232ID/sUFc!_?OL8Qj,nM+F"5"gC2n^g"mMNC_E!KFfMb[#N.[NKok?J,gG."HgdX>6I29aNTmiN0+jB7
2233fjs#8UQ?u5[/eq!!)Y\8D$Rdr1;!^9S)t<8dpO[ZqQd!Qc1EjTaAENESRIt,fHD3U9ZC3WKma/*[4-
2234g!fDS%:q!d$lA<>n"lqbZZ'Ls]?T3M#"n5`d,2%g"c7RKM0ep0BCL>7Pq_2hYT#q@)fWH`H5,%1*Ve
2235`(r8gK)+-jH>4"O_RV!,I7,Z`8qR'>+arRJ*XJ\\I0I).P&)drihOQpgf5W6g+>.J/e@a.(fS'MqJe
2236]?H))D[?]US%rh_;>X$)=!;V.bh74D>S99.=rC_,_PBh^oH;FNoI)Jl-q)q)][oi_cj3L^#n#,cTNM
2237u`59:E@]%f38;Ak;4</&+U3RZ&F'[S?b#HZFdL=k<X9LkCXoaNU-RK.nn\4Wm1@gq>NLf.#Al\:u5i
2238ZHNP"S13^1)IJ%>_J22/WB3m]D\_0Ei8db9jiY^o^e-&$,BFJ5%0NY4:__E+opO4J=$?>d;CJ=@$W5
2239'.]_Y:-tEMjq6,J>*%5>%6g5D?0F$0(JImTf8Y6uaVBi/0d$r,]fPFEB'#FJ^#f(&5^h=#5L5+4PNZ
2240o^"BF]S!%Si+;0\I.9WGImI.039"R8?J3TMPb.<5^bJ5/:A3M.I`=22kYl'_%@lO:qZ9Ba-g/!=<7&
2241;9=I_r\D(S6_N+o5goiJ<NM:CK]kW-F;T_;pP+L_[SR-\i+mq#6&AQ.5%jp1po/t?%FC&'0_q:me'/
2242PgSi$eV3t2RXdh3Po9S=Qi#)E\=)YH7T?OuX0S]j,+0[_td"c\VC_/O5p!(6r$VZlm#*$Eg/`D-E[=
2243p,C/+u9\N>qcu6)ZgUo%][t^MQ@E*^eoBU#&$T@YbNV:56aCu&jZMP\3PRA78s;4"K4SKZ+[-pD2&o
2244\'(Ba2`:BkZN$$tB$2GKm6\Up2/I3I9J=n(e0F%^Nn5d*mR1dXGQjXh*WMrE\KWQ6#R7ROpNt1M6L7
2245q>AV!kD3BEB:a"B#r!88SL/@'rVL-h(7ApjjOF>0ceN%5:9cjaI?TpX6/ZL=dCE(gDaA(P$QDd-Rtd
2246@l"E65(K\.:5$:baqU0.1D_gc#1;d;EH\`UL^9g\%;6W1$O*RDMpFO1]Ag("_!-ZkFGci:(KcPu_02
2247/idkHW`!)U]:p]\i$[7FS>0_N&/kR]`HX$iu#g=h>gYg*Lo8A;$>%a\1br;.;o,6/Q'"AhKh_j4"/=
2248&>9O(&8&f^e+agXP;\tWES[m+SZ-0%"]TeJ<2)4;g](eI?qr@4Z"4rHd4gci\(:_L4b>SM"=C'iZK(
2249."Nf_$;k!i-%=mpWJC#^G;#Ll0i^'PF`6brG:l>k"8eRep.n&X33(F+&44(d\"kXt!0L=Emc&jNs-q
22500kg"M27bd3<;nL;Dag"LsCe:7iN;%:Et+c3.Imm%);g2_'O.@69Mb8&+uX#0:%UBS'NBXl*$03]"f[
2251N71Sh7bZUF#dL".9CG74rWL=?8u+t<cp#m`I_4SS.9S`meS=$9Q3Mk3"H`<ggdr"?oIT3X^3/j>l/p
2252h.Xt$dse(Vba4lrj;+;]So:3l"OXsi/la:UljdQhE%.:$E)W$*TL6*9QNOZn\O&>(eW).][7>oK=n(
2253E$_#f?P9Tbi9NU+<jM/$Xei2FB=Lh;ki2G5f+>3H@+"65`Y25U.e^a9W]MsBZflkh9?I\!$A1H*e^+
2254[.:,b[mS0Pi-%r-j:h#]CQ;?T8<.pnm![^fV<`!?s:h;$_MH3_gJ4\i^8`_Wu"6N;=c;!Dl<TQJ<"9
22559EQ-=Q"B:Z_^+JA,/temW+i8d$gcjiBsR/kooC?tNM/!KLaQ`b8ra97bp9*KYo(#'=KQF_>$(B5Vp+
2256IX#LcH"W^pB<HSo^3jS4Vjh@PJ/AE>5Qh'^J*7)gBJ+f88-8iEJnPpPBO6F,#QoT8KBO).BV's/5QL
2257ib!9eldk[oD0!!DEXMs)dCkk9N,*g,\^PN^S_Bhjn+rg)b#P\H/1!([.722[!9B*K2]L(Id-k+HG`@
2258F;f]51TGn%\@D.TEZ73l:>Frn7ICjVWqQ$l9Jb^7\kbE&gbn:lE6`D(7p@B@-RBd#!bk7?E2D5V/$"
2259$$BDBKM;nY^A8>MIl5$sH+<)Z!V!G1[laU@,\0UBP^$HNK'*oj\?Gbsp`.f+@JqN1m4Ji=JO,Yi%QJ
2260ONe&eWPP*LI;X^o1ZbDFL9ZA1UbBbk=,fhE6l04e`u@`?f>Tc<RP\9SBoN5+GB1bfF2/Nek$b6Wlr/
2261>E@iJR5h&IiX7,N3L4MRrCdhIbsJrdYp>t#rE2&4Yq@8XU*e-6l%I<@08RLMaR*jR]f0V#9QoF@9?n
22629,.k,e)9EOLgPe[R%9.2g0Leq'(I(:%I@$RsIm('d##3ciC@"d=f=&Jo#(g2N3`?5/UP@d.AT`*+dm
2263h3e*6sD,Ic.5W`/=/&#"X#i0&6RlKP!QmF9j!k$^leoDr_MUQ3k!2_(ki-YFBp>'33G6dkj;Y=*Jug
2264m"\;:K'KF%CE\:J3#/FW#q`,SBg4g/F0'IkJfP1R6hZJbo"1rEqlqqCHk1hj@(f&g=!+u@P#lpV\A+
22655Saa`1MRBe:X90p(s\\rSkZPc=.e./,B54qNds!V!)X!]UVhQm'X\Ki2UZ=+Ce]RW>ln;hGob#%20M
2266=As<P8%`XC&Q]@Y\J^4u560VF"K2j3a"s]?c&&AeK_8@OT*%Am6j2nA@\L$A&5RB_+]&3;E2p/E(^g
2267M/>C`(T^6S9r!*"JGS:IO_$CGLY:cJQ=CkfGkNKZc5)RDlcOCM6F1MMpO?lKUf=f?/iL'U5#fZ+0R8
2268HeDBF[mC*fOk>K9\O7ZVr1s9QqZk<d[1gC$8<`YJ:[eu#$"+'$(t"CW'H$W'0S&Z!T5_e3,/T3`Wk'
2269t!t\Qc%8P@KV*lQ.5+pMXJ04ls"TbNE;eYY'a@QL'f`ns#G&<B`&a#GS!/`n=(I%4@0n'>2@g+hmL0
2270V<GV:&4S=o_YPNE[mKpsT9u"Fs;`eRd`kn1t5-?H*KZ"t25$GmA8Q%ndE/it5?7G[Gt<'*\/*J3?N-
2271N5u3J6Sn$N"IDCt2fjnYgb$YK@Gj[]M!Kp(AV6X2K/^Aq)f=HpHBiGAJD_ARQU1sS6@`InJI!58Y\4
2272):8;=?aKV2(pcqsm8BF1R!'#^Y,@.'>sYCS)=pHSk4Wk>bGBKe,PW^bkMKdF"Z:GGFY"lLs7J2@EhA
2273Hk+k!uOmT'*\f2C]k"MK%\5$c(9a,(k>/ZJZZZn,K"Va7YZG(oN4s6T)#OjYnm.%K\Gf:#Wr+="Fs(
2274=d;]$es*2F@:+k)XRCD[.OisZHi.t3:Js\=u0^OJ6@"g!a#!&R(fTcS9"+i!s#QlrkgO_^/#.Q30oE
2275[r=_a:eb&dI*(PT)).)4]o.0qFc;QJ>4>IK0M>;?klP,QL&$+L*h^&MfAtVG`T>EBkcg4Z$^Ve8u;.
2276\3rpL%-/U5DZg^R#a$G@+bMD//eBm2P_N#Q0:a%VWf&m%@oCAlE'bBA9kTQLJ7,$`-uVS,Z_8,$,=M
2277GM#n[u:p`i%t+_%"fMC!mYbof:P!d@8dVuVFgetPfjE\_E'PVuUeg8+iXSP)VF.s,n<6VS]>=,;cGZ
22783s^G<[8)@$/Prt75gU3V&%e6CQL@hS9<m"5mPQ@RB,Ji/h8,^mBXe>/j]ilQ(U1_[^pd%"S)6J$11Y
2279\V(QI0;^n(c1ku]9/EPV<VV>Yb?kj-jWN\r1#2+kh's82!o/UV,'[&1,;FGB,TTX]G)eP0Yah5V"DP
2280K=uC'aGSL7reSV$d<C\irfuW:N5.!Oc?n,:Q6#74)F+2&VK@9c+g]B^i#dBM9Ki3rkLKO@'=bI1O7.
2281'RZdWnUYXFa2Ze[4qrVdi_l"N:rZTub=GPR):Aq@BSnRX-OR0'OGH[GZ^g8@cBFAO</k@GnN"q%o^#
2282>:_sj0lcnkV%:4lpS=$P*^3=Rsq1Vl1K;8b_K:(;fb]IsWqD%f!p_,p[H:A$a\3Kc\I&OBAanPiL'1
2283_D,T';X^j>h.@9Js+5+3MR";`04,/[5K=hA.cbAQ6Hq7232ER/P)6OfiDCRBiqU\9l&KAqbfOYG(mV
2284G=X3EKA.bVSVeHcFHC>/q(/;q;"nqVl6jo`n^b?+ii>=lbf%&Mg<j'SAmR'j)SHcH!L]I7nN21i.%s
2285#:;1JM_k=>LEj+\F_Q`A/qoUkpj(@,YfcKW21%iND`-M#i3:.h[HYR]`L\@]!Ta`.i,q(o2i=TS;B0
2286+(Ht8c>/c&N.2$]L,dC<RV!.^C6V(?=/eRrCEJ5+H:sPtP!uFe9TnJ[2[^a^nn,Z(`nk[@Qt_t2$^3
2287uP3f-:A"2CPPjlS2<TeM>3iTM[]A5*ZX4FtDG"Ye/3RN!tnAdm^eTuF&F41(6(11FL#Oi@/&C_Jnp[
2288t^QQ&KK/<7bKgl.\/J6D&VKW4hkY#U9C=Qg.)/79T6E3D&6`L+Z(b939iIaVP,8?Rq&,>/T](1-R>E
2289Udj9l'L4L=MTSC"):D0.4C1*1D!jRNb*B2pG(PM$+hdTFc?f?0<D;mePG`[hC_&!.eLlBot8d,c@)I
2290l<E#n]9WK6V5>kVTWOEdV'qM(<g(I2Iea4>2NsZ4cQHf/+mDm#O0,,QdI*M;kBj7.?OrN;<FA;5>km
22910aW?+i+`Y@H9u!GAf1Zm+VNq'IEc`!(.VBGU2gMj6Pu^>L6-#)nAZk]l]N1gn5P:-ABTd$D']BWmki
2292)b$:tP21bcGG7cI\1a["2Z?p%YVLBR+"+;/Q]![<dN&.$'r*!pIIZacq:<eeuJB;7:8\,sr66a1)86
2293QBTn:s9pa9O3A18-K"O,Ti&GQ4PPA[kOR*iZi/^,%m.n)\W5LU6EZB`jCs>JG]NM!0rUAI"[I:quVB
2294SZ6dm4fmp<"1^/sS&O`=!JsR&?a<7c$JoR0:ddCsCR*uQ(Qna=rW\Y-Q-kfu:=puREkYRbB8SsUi2W
2295UD%boC\oKFU$SOXq)2>eMEbh4bHXU^_nu.KD3aPW2/5+[?())dn=6U=.=!!!L`9U_H7SR!=\8][Uo\
2296-s$c7NceJR""`F;$3Qr!+U3"NAEH..Yc6Q4ULYL$Vcb1hOpE[kdmsH?@QdO(;D&0qBbo/<_N9n#"9L
22979i'>REJ;V;[dWA?dO!`@"c_t6q;&L&E-0GTE-q@_m="`+[%C*B!H2^MrhS!71iPSAm(O,LaqUGN^A+
2298g)Tr!0X97$DT^dO?l:U-N\iM)hJiu5uT&XE"c>G9prIr&fO216ptko0GquhS"O=MW_#aj>%\mLJ9J<
2299Rd(G6X.R6f=!^Ik.!CQ5bV?%ek1a*5h6XhYP!6lD^PT[<e)+AA8#o`t4,b3#WgtQq1$YIIrLd>]?!L
2300O1Sj:X77_n(XG@(LbS7E^P.]LXV:!.@hTd1)uP7)kn.'*;tlJ,l=5NSD:7Kr4+]RG^?MTIU;BgckgP
2301HYoo3b]oorD)>C2=()9#"_,PFJFK"DR6BRlA?N>qf7\E=^p=Ws`*+][#"tSNR)6g='\?sP,llL@LXc
2302Z`LbMLX$$d2gA.VIf0H^e&Fp'dfg-sqi%31u[OaWoK#m([iAdZao8PP0kRDCX*L`jGEJhn<S86dNFS
2303W4sTVAta,Ndfar6Q5`jUXYIZ2$Rr3EAU`!'n_nf$H<K#"'fA=Z9]qf6!:saHRP6n&F>+f`4G"U-m#(
2304:JrO5'O(cCa:J;'`OTn.T&_7,YWS8G4`g7tVQ1P\4I1=;=:jj(D`SR>ZGL+8_4P8KM+IqZNoWfTMW>
2305U@%"!pY.'lHOYGXNj(FGmPMQdu[b-(rYS`nR&*)gU1Eb$uGc#u7%"N6MR5KL)it%`LKGqd(=Y.%*qc
2306;+;J[(hpXS!!694(BWK=$[ppFpQk:)!oQ<Kc0`/fQLWh$fN\\in1OJ?r8)ehHNE%)$hni4hYY)mDb_
2307Ee2fAlUgdd$9i@#<tru'^`gfspm!!bINqrGDVHO6p1a7t-%hL]hkM`raG30+"#S3))Dh"m1qa>"7C"
2308@7hU#U"F@60PuiU4aY<+TrX6l.lH7F?Y9'\dFQ(h&E-^/tpk-$_mhf1ST"EK@%OQ;<U=T-3G<YfX`G
2309,&:LmYK`9NVH4Or[4X6tY&kgu*hfS>C1d"j2T?tLu<:6;R4p%nmhn%u_&:B<A8B`[d/ZIlNBj=HS"<
23104f[[Z<fXpMc\tNf4W4<uNl3YEE,RM"Co'9(LHUihR=POD_;==heu$!K`a(5'>=%Rm'[n'$?T7d1aVI
2311?O>:g1PG8-7*'a[^18l6R>LgRXU>`#EF^VgLtELFFD$l@\bCdC;#)ZS8*M@]\449C'@n_C7'W1.Xq:
2312sW6?HLp4j?)l9V1o(:a?<-FFeTGn%p#0DAGMLAg)=5i<j`qar5gB4or)/6VtbFaEGJ:&]u(2"&PrTU
2313_^d+.;`&.,ISBMe0H^[!Cha@9'3Zt!fg!H(?qtOM%gn;A.U+TBM]Uu/<$W=nFYm+Z-$B].mP;0"MFi
23147&s&hX+WNhE50@AI'!0l;6V'+D1+9uG&rDR&!iQqZ.*EdB'B[q\:F`+*Co1Yh$gdL/0B<[@FG3@5[4
2315LMZn,,JOc>6!A)Bf0YTro!rark,7'eKXAa'/URF=Kb+2Flj!kPu0kGU4TR!b&ONA;Cem;B'&K(-t%p
2316An"3gfGajC(at+r`lK^iRLmk#M+qMNnD;4eD\-A%\O25j@<iW^KURb?N8]!uBSNjqEZm#XI,m@&/`7
2317F4U)G1c([56^JUDp?RMJ2/%>#p>!J6'bSDl#o(SPCJ.WiFfU1M0&(2M9PlhCfP.K^f^]a0GL0p3=9a
2318O4f+q8\@2!Gl>l/1f`c!M\QRJ5Hc7(bL;(#%/DQJ<Ip(fR'MA)@`c7$Uu9_J7^$b(\$'"XgJcBU,_]
2319l2/d"n@=B$ZZ@W3/59e_lJ/Ar.2?Ajg[nQ^[Tla#ROr:3$(a4.;%;I#\N#2RT!he-W6Lt]*IKQ6TMu
2320Y[F8mM$\Cbei23lF2qT_pVI4qM.@,=cGM0Z4LH()B1=(/h$R!aHTCr"Ht5)^-JNJd1q##SB<Q&cisT
2321C^,]QOt-R9&]$@@67.OtKFgF-a8mb(/&\JV/0mKP#I!DH14Bn0!bict"-D0Wd=V%nAg@K$fDtn#@@@
2322u5-F8<n]W`"Za@I3MC(c:u7.RpT_5%kJ.[\&T&4&(+n'Z@:A-!ec#P';J!rsn2V);oNc/XTtTb%cD.
2323R.>Q&o[@pk)9uS.gqCa#UCr<+=[T3KGWQG!),j+Dh=6+XI<t<4J?X+JGbeNSpe`mRYDk"'=no%[Mco
23245&lXs4m2ImUIM9O=,p<[1+V6]5INX5ah>efeK$KH*KGmeQ&VbUo6(/I<&1F9s&OA/`a:bdfZ5Wdo#0
2325<VW64sr>:'+gD#QPt`UDXmU"@Fh/2T.cti@;JBh[50EF\5gUJMn/moSuYU)^/)m#&Is=1;mo-@3@H1
23266*qR21]q^&rG>[okl13aG,XCs(a1UdZMlaJJc\4R.Z-hMJV"]3F;_lI"L-PbK)hcCU+M5ag*Z$;`$0
23279K36j;))ZYNl`8gsBJhI[CY)EjQ9%ndcCp8F"'F<^OnpVNcKEskm'-Jhue3%P!FU6I%Q-F^_69s9uR
2328$KJ>gS\X#5aDKp-jd,q'WGiX@dmHpH>')J*s/_]?qh[QL4\E6"s=riT`W0u4TI>PG%?=iCqQ(;Y0u;
2329u'!*pVkPl5>Jul60V\)tXN.A%3Ki=\D):[h9Z=Z*aCEYA5]5N!FL)N9pXRf7u=,hu1_e-X$5sO_r%B
2330Ko3_QclM+<l?e\TPJ,/1V5_]P&d02UrkrOuZEU8oAAXQ)PX*Y\[tU,?/g(+L(,nb_SS]<E$9>=N:kO
2331WntP;@:<[u1mH4U1<uJPCeS['bJ].\Fg"YO6999<3n(/a&sCTnIe-S*"LTRHehDVm8G**(ZHlHGjG>
2332%5)dYk8o-CLrKKp>J]Je>G.h.Y-:J+>7IQR260uXt@5lGEJT5#.9&&AARi+rr?V/$j>&-.@ff!B/CS
23330_Q1C\FtD!0.7Aa(lff"a7(d(8)4(3[D/gC*9qg2W\Zrn-%>0C#K0udZ7q5<WEp<E*!9`QO@ca%riC
2334!EE<rrQQ'qr+*&/BE\IM2+BAOd-3@R$Eu-]TG<9j^5BGF8F-f172bA+81NYQGFPnHepH`r25BV0WFL
2335PP!QVhla?$04aFI-id=*Jh3@<T,$F"/C\K>8BkU`,S`Gup"EJYX4YO*SR?)E4.3Q^)hTR<]U0H2"^m
2336=/gH]Xa8TeHM>1%2p$?S[sC!2HT/cd\(>t.TZm/\HFMRU\&3[(a*Dm"IM]VEGJSVBWI5TKJ%+ZlpQ.
2337+Je4TKK9(gkg=;uhD++ar7JJC.7e]S3m'nM`)rDbmJ(c#b8HEFR;=-c(&8Jd%^:2niU?Pl8cVuDuA9
2338icL&B\5b-7jK3"~>
2339%%EndData
2340end restore showpage
2341%%Trailer
2342%%EOF
2343
2344%%EndDocument
2345 @endspecial 324 3825 a(Figure)g(2:)g(Candidates)h(for)e(eac)m(h)i
2346(empt)m(y)h(cell)f(ha)m(v)m(e)g(b)s(een)g(en)m(tered.)g(Some)g(cells)g
2347(ha)m(v)m(e)324 3945 y(only)46 b(one)f(candidate)h(once)g(ob)m(vious)h
2348(in)m(v)-5 b(alids)47 b(ha)m(v)m(e)f(b)s(een)g(excluded.)i(Also,)e
2349(some)324 4065 y(mark)g(with)g(dots)g(instead)h(of)e(n)m(um)m(b)s(ers,)
2350i(simply)g(using)g(the)f(p)s(osition)g(of)f(the)h(dot)324
23514186 y(within)33 b(the)g(cell)h(to)e(distinguish)i(them.[1)q(])1918
23525251 y(3)p eop end
2353%%Page: 4 4
2354TeXDict begin 4 3 bop 324 548 a Fd(3.2)135 b(Scanning)324
2355733 y Fc(Scanning)33 b(will)f(b)s(e)h(a)f(easy)h(solution)f(to)s(o)g
2356(to)g(b)s(e)g(used)h(b)m(y)g(h)m(umans,)h(computers)f(ho)m(w-)324
2357853 y(ev)m(er)c(need)f(sligh)m(t)g(more)g(co)s(de)f(to)g(accomplish)i
2358(the)f(same)g(result.)h(With)f(scanning)g(y)m(ou)324
2359973 y(can)33 b("force")f(certain)h(n)m(um)m(b)s(ers)i(in)m(to)d(their)h
2360(sp)s(ot.)g(See)h(\014gure)e(3)h(for)f(a)g(example.)1109
23612784 y @beginspecial 0 @llx 0 @lly 200 @urx 201 @ury
23622000 @rwi @setspecial
2363%%BeginDocument: scanning.eps
2364%!PS-Adobe-3.0 EPSF-3.0
2365%%Pages: 1
2366%%BoundingBox: 0 0 200 201
2367%%DocumentData: Clean7Bit
2368%%LanguageLevel: 2
2369%%EndComments
2370%%Page: 1 1
2371save 9 dict begin
2372{/T currentfile/ASCII85Decode filter def[/Indexed/DeviceRGB 248 T 747 string readstring pop]setcolorspace
2373/F T/LZWDecode filter def
2374<</ImageType 1/Width 200/Height 201/BitsPerComponent
23758/ImageMatrix[1 0 0 -1 0 201]/Decode
2376[0 255]/DataSource F>> image
2377 F closefile T closefile}
2378%%BeginData:;
2379
2380exec
2381!!!!*#71eG$l&aB)[6NZ%hTKh'c@f*)]9S2(`<So$6C31*$Q@D+t>>[&g8>?,U4Q\,Ut2i-nHl"-R^
2382>p/M\b&0eG.4/MT";-Rpf'0f1[C1c%3Q2`a&_4?,;Y4Zl%k2aRX<"9V!n!aGd0Act:`5$%^a5oq.7.
2383kOIQ2IZ[gBaYAu!!.6W(4.GYC+Ci#5=%P!8O5U+6pj@277p$@7RfpA84Q3B8P)NE7ncQT:/F\d84ZQ
2384Q;,gIn<`N@*>#nm5>?Fs0:K1J&>[^f<AmSqP;12;FH<NjZ86oY6BNe_M?XR8L?Y*e[AS#[jBkM0qC2
2385.EpCM\$.EG]Q6EHtr"F)uDDFF&.VG'S@WI=6NgGBn.HE.*1e!7h,MjT#;K!!N9(@=hp;K7A<&Jr'L0
2386QO4.Z/i&,+-)Vh-[PBY:,UK'O7Yc54NH]QJ;cLLt6FU3)[pNR`"UEfa"O[GYfG5=\+!JK^4Q->El3e
2387'_#R]o.'(-DJiuB-<!!)p)%/^SHnIcT/)B8Sp+8-Her#R!C+!LP+,lBPZrAQ_65!Scr1Aj@%a@8\>C
23882)=IHHgMPr(B`ZCi'#lFo6`=noT#)It3*%ItE9(KSbGCNK&^LM2R:SNg#H_Ocl)cKp%U^QC*u,S!oY
23892R?3VmSXlIFU7IXER@g4JXHo-WS=?75NjYFQTq\-RUnafcVPgGsWiN.tW2Zi!Z)t:5Xg>:BW2Qu1YH
2390tUB[(<WV]XtV`]"Ynr]u%Il_7.1s_qg$"e@`E4YHHrCM#DpWr/Qg8SXf8;QgBs#r1p+eXK(j"[D9\p
2391fYP>?`5BU:`lQ<BbK\5L`lcTSc.BtPe()pug""d1fA#-9eCN?ucHtG*iSWSNg#:Q?io9%Ec0<[%kh4
2392Vbg=YBEhu)Hjj5o=_lK.6pk3MC"kNV3una>i9nbhM/rorSDl0.[.me$2EpA+FVqYC'`p%eFXr;QVE4
2393s3Z],SggoKL0*D\7@K<%u<V_;)k@P/Jj@8@o9bsG!-q/87YP`S'B[SGtK,Q\"'a,-^@;9'0.kkALEh
2394V?.5e-[S8cHc)&kA1t$"mTZZJ^R>i7r8pO>!PA.]kI9!&m.aj/R%];4eb$K-<m.O4PU-.B&0uum4'+
2395J162_0=)kBFIC/`Bp9^aFN@h!UNq(%aA;_qo?W>UCB^N5K#,3;agV-&T3=1)Cq-$Nqq9MK.7qo<&Mf
2396#llhd]k4`ZYLmZ7><Sk8D7A;<G?X#f"OXL]BqVX`QiMT1:oASDY"p^>S`H!Vr;L%jX3ToCLh],W2lY
2397BinO)+2s-5oQj7dhiIj&o^jQq+Oaq4%B-eJ0<\uCh<;uHF$,hR)/\tjlY7)&lh7N]@bC(,9qV&CUbQ
2398H5JM=JB6F!%B*]lm.E,7-Z*J!!0q^F;&>UekDb?Yl[Cg"WSH0_D%BkM3kH`,TK0bOf8kc-Hnl77"NQ
2399X'V\H0>8Nt:$tb+.!!,G+7hO/o%7>r.W)=g['Li'naGJRq+u3%,(IeZmA-ngJ1Pc$%#^LV5U/B,j*m
24007I@,qhfQ"HO9*P$HFf8\gi9Jt6d1VMNN<XR@^7&cB6aU+moeLrC&3"FEj@H3l"IBHa5r#9iT2CnT9m
2401$uhH*!46Mao<`^(;DX17;H0@]Nd@A)jXWPo'-\QAcndeP:=.@8C4_=.R5dp*B)PXh+GXp%+qoO;0Q!
2402K%r2b\YoqEN=+Q`+::'uM*XFhIFr4aq['-/r?&b1eH2UN:D#'l!`M5"[TLb[%DP%JErKAbl_k[BmTL
2403fd5VfKklr&ibmtMrP"LdM%Vm[PNl0_koSM)7X?d@q,]skE4g"Od\33j%`gER7!!IRV(3gRS",:<\e9
2404I@5oUm+Hq4?JK)DWBH2ZaOjnt#"Ao9#lC+lXX6U\L[B8b`m_,gj)\0ikO(!b4:Z"\Te5@4*\Te2jW$
2405*]Z&EGh_6kJ+p$q(\3\I(N^S&Y'3OSfUW_sn\[otum/kk72ZHrhQ*ELY8^`c2,G!Q=Mu2^Q.Z*<tpr
2406%qG&qe+EhlrOq]*T/jl5>o+2@O<bW=6kG"'?aHDI9]4m`8&;tC#O!>jGS_ZENd(;SJ]:_1^2P&=*Ze
2407bHGTJ1\=Es]!n%J.\#<7#1MZ0fooD,7,7HOEEM4bQJs#K"N%N[jYG^SAWoBVtl\-<IN6f3@QLc@W/!
2408r%HeE.$]a8r+&r3SsQ$'L3'8W-4'P8&3OTj'[6mp>SA<;$7hG?sO:oZ2rMg!`hluE=h4W6,eokK7k4
2409\.7,/RPPRiZaXqh?Lb(g>MRFNK*#\r&9G,u%",%p.H\pC4%RKsH+L%r'"'A_o;V;<hTM0G=Lh`:+\I
2410_[g,WDYJm'9NB(`rk(=p;`e4GZ*m+Cic)M6V78a;e/&kj_1Tpg-7@kdqufqAXqbBb"&i>ZZRr1b$9M
2411Rc6m?8henQ7j8rpLiQTfb1MJ<o_K&RP4D0p(.Kj#*drrD_i7&>9+]c16Y+VKPCth\&FcCo!OSPS,WT
2412<_Z4<R<_"`-%b_=3f(b\=@O-=<PM9C/SR&/IF=HY4eVLe1HQ;@QL7$_^bft9mH^pFkEeo/gLh)S!(]
24135BEjG"obc!!8*pS[3]i%4SbKk:"gn_q]O_H1<fu\58:9rbme#\NK'IhAsM,/^D0dMp"NE*s-Q]8J1H
2414V6,6a#<,=/6W]N]6fO"nM!&r<J5tU<#9F'QhPYq9O7f\&>"*C-$;Mm@Gkfku^eEA<58o7>f!#kn<6D
2415)`,4;S(70rO[GN<Ohq9nN.d&0^2.UVJ5s(X1ST"42?iq=m,W[)nu*86q+0jYs3to:M4p*`!^+5mP3S
2416RrtU;f(lsA7d-GFoFbr_E,f"Bkh?b.G';H)]gF/9%hZ.6M9:M,U6;6n>Oh,3ON@Dh-)hB0$O(gu;&^
2417a9.YXVE#0;oE?:-)fnWm*.50W][1e;$?LMIgSbOb+%#UI<pUdEOlZo)T`W=tK<rHJnKa!,*eVi;6n.
24189j)"Db*\cZD9*(Vn"3CV7a@-(3XGeq`mF\>cAiub/c!MWGa+UZ]D?%@M$.,5j"aE].tO<b"K==m0sf
2419"12qOI^jZt%N,cN)54jsSpd,1@>GB$pbE+Hc-@qgl)K=-jO+GLdJY4=p0U65o>NeH9mBjLd%U`"sN^
2420/;[)dNG\<'guu-1%.iZD1M?!%;GFDQ*aX^sF/10Y@UoR_?S4^]Xtk81CfX"LE**fFYTkD'M0Z[#GbA
2421KGfFo>(/)$`(F-n1#s]Ji"3oH*up@s:]R:&o)iE;K3U/;-GcEtb9RNl"Y]oe8%*]h=mnJ6I.a+e+IU
2422QDmltI?r]Q$%D][UK4V*AgUGME77R1S5hGOP:JE7[R,0KFDXC!K_N3J#2XA044Kp]q>%3GYi!DJX*"
2423Mif;ZQmg>!PC)q#*As._H9;6i;alc^lB"R%q5ghNNr0oN7`IRA*i$-,5-2uf@qZbLqsKB6ls5!)^%P
2424(;!oRKHtg-e&8D1fC+9;;#Su`%/`:EA'>On0b_bW?K^_#6K('lb;<'SH0m#4l^u#3%*468R"P#InA)
2425UZEWpk!B3Hl+E)dkoXE"EEkpLTL3GT;?hci]:%,dSMCbYX9aFqc:6"Q-!4H]=3<4[Cb5C#d-AM/eOp
2426!GH<_r9p4uhJ:F4pm2WpbFnI`IF5V;Ep4Rr7YhWgd`+8."ehT%,=d2K#Im)*K@"?5A_iZ^e`n:Y$]j
2427FA3'0I"]to4o&!0F>3roG')^%s,h\#@7!PTYBJUSY0I6'W^0a8HpfGXekIQ+d]VUQkINY#To!X@h"+
2428N)PW!Ust8K#GL=id_OAVO*H:)Fa*n9)COr9L33Cq]Opt;N!XR0o0,^+Z$k*O>4)q]U+g!!d%fDncaC
24290@%`P@+42Nj=X_o3T#>.I'%NK*6@FClp-^+^bd&P;aDOWonqf,V=Nr`M='$Rf7"kLo&!pf"oWoB6L4
2430,d:EUU$Ooa6!f9"BkXk!+bIIadU.+4q`TMTLddoYDI-/+U5hlMO'2rsrT=658sgr;#=bqZ7V#i+hn"
2431@e?B!7EBdOO6D`oMOS&bO_&d+M(B^P8g$Fc!6A-@aQE`l[NLWp!X3iLafbokirVcaY=P%@Dj(A+n<W
2432<(Z[r>cn6#ocQlSH%q(PqRNa<e6W;3K]#7=S.:o^9U^8.bq$\7(>5_]qe=;*Bk$\:)A8kocZ<"j"D$
2433ui<Uj&,tu`!tY=$h1V7YfR;=Sd-sQ$q`GfMEhM6CCQC/Uu='2TE#"COV';_&TJ[#5a88;aJBI3Vr4c
2434^&C(Z@U8i1W$\5rUO?T%!MA*j1*H=XbYtYqkg_PH;-h0tIYtQ3IDA:Jg("#PmZ!*^VT,)E\']Ia^Ys
2435fIKFrFdJ(K##cO\Qs*ScAa[$m<M,TYq6nR2ODK)Bcg%0m+<6f,13i$W1.Lb7tc.jqH-+b&><$O/2lo
2436'*8Qo\53)I6q@GG`uZts*c^Ec5f*q_<46L6"0`9E&/,:E'"="M+VE4^&(Dcl.0'>K*YI]]Z0*1h<:>
2437P)atBd6iYq`H&H'BRs,0ph`4mIY*?iiRP],Wq$QT("!:141R7-VRKmt?\6QWO&\I>.>`eNd,;BV,V<
2438\ak%i,"tfI3@Mhp_";g&n<*TnKa95"4.T%96@h`%N?QN#XLp"dWco9JdLAH)K:]Y&$$qL,9\et+``V
2439eZ=Y5QbS,Ma(Cto309lABR3KaT`Sn*)^jZZAHj7['MJYZr?oAAmS-!,L+OADgdY*pKg*&3./@&h9+p
2440o=jC^;/f"$p$Gn2)7Z)HdSu]T<hjXBlP_$lXpq!UO9\mj]>dV?.05,E%0Mo+E2[(GV)7L&`>r!G;'6
2441F#*,&o\p.`9-5sq0#cbY!3@Ld5Rr%Ep`SOk#@K\Jl%:+Z/LN/N2=HAQP@Yfa*$Bd;#,,Q4iB3j_gqM
2442j='Bacr:[T@AZj)&"$NRC4cn@C'$l&b)%%sC!_1aS$VBJZ60bQ]3o<9@qBW-JA!^O"Gcb?q]Jkbj4+
2443A#`U5s>rjU'*4s+Ghcm?oXAOecGi257_KPKul4$q`hm:/E-j>5S+odn-@koMFW""Cdf\mK063)*s'^
2444r0-V5U)Adu76D-4@@H\Zg&-u5ps0($B1]9_#:]UU)/&43/1W'3U.,7bF+\=4*@"*p)BFD"kQ/QBY@"
2445&>'4P(bb3X_oQDgsg/*BM]24!FkL'YXh12T@SG"*8]0AChpM5r]M>ojM;;YBqbY%N</C'U2]BPfP"I
244656',l3qSMs6"18=WsA9$,cjQ_lZ3!SW>s7--__&HiY+Oc)(:Zg.+9&2YVSQ6%\h8O.Ls>Oe2k1)%ob
2447C4_mN&e[7n]kFYbicoi5-@DT+.@MGLWq..qI$7*Qfp`WC27da/ccU*3IP&QAfJ/5m9X<>eMfGkgrn=
2448VXq8!YQ="1a)mK^pTe!+qmft+<-SXa]5H$<JhqWNk;Rl,gr,''0$*0UL,nO?Zl0O5]R)Eq?e@=?m)(
2449L@%mlKBjWb-?o@^?5TW,?$"7uL@).8!('S&g"psuV@s.>J?oqdt)e/Lu@R)aM!#,RE;.VXcATgrSJ1
2450k9<1LaBS$6YoHTJei3,ROP(&0UHLA#3O51d8>48gAOn[Z+toO_CBiBf;=Y"*tHPA-5OU5/;ON2QR-+
2451D?fg<CNd,gTJpVo\SN&!C>_2V<lJj?d;*,"W-6L%p=`KSX9LT-D)Sk?TR6qd-Z!tjCeA.:p??DoEGb
2452bi!`lF?pBtc&Zj.BRDRQVU[Wi%bs(d7F=]K_e[@FOf?U%N6*u1b5$p;.4P<s'R/"uJ?:_QH>Tj0GU<
2453RcgJogN&__Y\/==NJXnQUjheV-CeK-ZjQ2PfI%ZUN:WdF3BI>pLde52".9':C8b!9EfJ'ATK^n<]-d
2454\DaIP6?Qq@)2m^V/P<F4$7=%t/H@clVF/sP[)ZC.2=!7ZPFXqKn__+6^'VT^CpJlFC=Z*#1(;XK6@L
2455I7`X*-F]!-IE:cTt=Lo_Hf9#(U@h^kI9_4a[bXGR`dXiQqkgAcr*I<XaXel#hN-n/&mk&0U6?e9(c`
2456@Z<X5#/TF<?k%e[Fair@Fd7JXi$KCOjR"-#I+6Vn!Z?DXGr"?,B4131%+tQ%lW%`Y'gQLA@"\kZ/U*
2457Rp>dqZG+pnYWIMtL7)=N!($fu^CNHjFp:3/.CJ8$iBOY^\#(I14i^ci)VkCOuF>aI0fWIt@=C'm4>!
2458bhgjV#,[/)Z,TT=MX>.)#JZCD^>Gl*Ip*TC`!0!H%n:(s*,sB15$ZU2?I=:*M>4o0)pjR4,:ZhL^Bn
2459^63nOhSD)n%"?7QH\._d-`ZS^"!8s:f!Oh"Y!kJ&Q+HjKh63mr!2Q]5&#$F0:_?Bp!_F7U$+AT3Ok+
2460i/g-6,"o2s"isCjm%jU]OJ7N`CI\R&cCh@KKsq5[d`LH&V1d_16'[R:6:7+Ar`D!X4-8.@=&"-[HK"
2461EXFh9S!!muF'/Pq&.*l1(2nVVN'!+<IuH])?7=qP+T;oq,uR&5:@(\ED*`Y)dj<*DT`Q$l=4SMqibC
2462cCH$:cA[9=af$B#]ZPSMlHJeb'5K;9DS-InGY;pV9!+/LcgUI$%#f`Rp7$ltbg+Bh)C3_(Wa];EFZ(
2463W7dI7D5Gt*#lB.+Z7c.(dFR;AZ4<Rr$.4`j:XI]7qSO,X5i2"@&#3?a?Kcq2'^/CR_1c@J#h;O3Wn3
2464?g:fb$!!6?d5pQ3-qW:%2#WZ<^U#>+96lCFk?jgDQ)]KV53uP=#*O5JY)aR".],.bW0s_f>IUP>XRj
246557$26l3,#XPl)4$U#T*#g<\Z9(:Y4$X_cZkgHh[JO19!ON,?!!Ct_[2VpYTV]$m6+?s")Bbfb+g)BM
2466!Z9Z8Z(SRkm(I\`;lQK9WV(]a(!n,b6`Sa(-@u]*\rV[aF/`5>P&MM+XDrJfc_oJ1KE:VTe7#/^^S_
2467,R=oo5GkrZR;5C5Gq+T'uo)Cnn"qms?>,M<"u%%X>DgSSbONEaAGG\'40Fs).qeN;-G]CU2KQ)d!]O
2468W221@B$h@-,)\b3WZZ'JP/E<!Ms_e)N9YP\$)XF'9nbX^RQ%O)rMiIVup^EQRlP)BW`8hD.+:-_NEI
2469niCj@sIK[GMa>MY8>$n33&N<qkM&2R"R8+*>2?6k,`&YH+#d+hK/fc+:!=ml))Q"YchA3qH*s$lm!E
24704cd%9Ua_+Mk,gq;K58hk%,)*alPo%H-:])8YP._BK/[+bBpVQ3Z??.a2nVlm^0ZYQhmmQ+>;aggeJ?
2471EZjk]&Gid`O*s;\$l#]Pchr'_m'qr3U'A!=#FIL33d;cUXUcO<^cE"O2;p=Lg)^*,?B`0W!IOr78/`
2472Ui!$Ph?pnbhII(`tN#@K_:@FP@/Q^eaTc(s&75W/jbs1MQ*dhO7MSNDN<E$1j!"(3AU5RIJk6Lm7L^
2473c6"OTK!*@l9Z=j]_mXH?u):+mK;;.V7g`)I&5G>&W&HZ*q;khJUc1Qo@Y;r'U/k2^aY;&)8`3U"[P6
2474Y5W$IFrMob)+M=UYS/Ar5Hjc=:cq%0r*(Gh\=p_b4U0](pkggM7KF;%P+J(@pKZ2jI^QBFu9\kcVH2
2475YD#ajJedK?oKF94?kno-1atiB9rG*!\#Vn^>8dVAW%E;W(o+]f8*p+Zaa>^0LWIdsXBi.Gf'j&".dT
2476mCk]o+o2-lhS14=@Hr<]Qs:6f)CHMRZB^qF+oA7pV8mY'W_^@)+TA=J53q,Jn$*E:#XM,R^E)kE+n;
24777.$c&V05:uFKYR08co)CZ`UP]8J47_mQo7'-u+Z9UU9Cg3]"(,!t!BLJc>Ohe]#N%-KgQ2o;8b(_mm
24780k6Y7K<,>Hsbj-p`Fr'TfNk'Vtbaop]$TTItS_K7M?rCpn*38^Rb-cU->6"qL=k,T7?ZfWYHV&qObP
2479!hhE%XA-u\,)IK!3hl[l.(^%OVq;8g^TqW=<TDlTZqS/IA%2IPZUBP><RS[$7+TdgA_I2aHR<S]FG.
2480o15Q^CGHUQ!7S&f'-K6R@ht<\eAg?uc5r9'"7LoYO5U:<b&\+9:D@+Ef*pZ3OQF9^tOo=Y`ts<\GS=
2481a!PmE`/^Z3PZ;2qM037+;5lH#onh&XYiq`\.!/WU-:4E'86p5S%:Z;=X4Ae!qQ!Ib=F=4(eiPITX(d
2482aEW>)C\Ji3V>eS_d!]iO`0Y>AF])QjFJB"pCMQE3c7QPP[qWY\5Qg/E6uhX@k2c3AKFcff?A\LkEf:
2483=R>@CUG@K8u6>p[<X?A:]O@qCh,0;WmTKGg"<aDga,TZU1Nc_EVb,FKMi<cK0U.F,5m_)AT)j=_Xq:
2484l%h;c`*!]qu<M-_a.GQkB`!Fjt1lhu!n\.Q1mPfm_qq0IQc[qt,,U\su.%Y'*,T7_<"0SY]0$:!iXU
2485W-4@0+^tdSha%8hgLF`eZZhUo]HLpF%_qK!)up,E?o!6,Z$L^Mt5cTZ$1J;NI%baSJ/hB64^A]M88?
2486+UcCKEhLHem!>8?kqV=!JVDN>&LpK6UsDI9."D_eKEti'U[9MkON(u@WX>*`l]W>LC6Dc66I901Fc(
2487_&;Nf-8?i[Jo:]`s,!+W8:'7siM5i*rgqVq&k,k*^7:bQYkT[:og8p,uaN,Ir;</i7=4),/7OHq"7#
2488Shotm%0*Uc3!)9$/kK4OA!^^^mnDcMF)ZJ^_!/@PdCQ\=stiKq_qR_m<"F/@8$qB$So!<\4\Wo8sNP
24899`LNAj8]6(t$_Z]JI#I\qnMT'a;L:@EWA1PBO<fh9:I[0@fUgq+V<""MM587-*bUo0=gin1CoeXTE^
2490%DnM$$CI,??TD5tglM_Um0Cp&:Q$Q*Q$n]9s!^Og.0BqKt.+lW!SD:o7SA3XYhpRG]O6Dd;HR`ci7$
2491GZBZpj]+qOBIZT>A#1OglEMZtQNj2?9%il+7&=JbCqge^C2b-UamQaA)d<)P2T^:qBYu)VQ:d&"\Ng
2492-BQCLGY`Gp8kDCu;#[i*;-AD"T:npHj9%B"To0M_-8mj:kf]alAm-(rj_`Y>-h<RpcTO^!I$-(c#%f
2493QUEuh04;1Hf'&H#D:u[!"XkFGlC3sj`u;L0L5kk%]MUdJ1)#qHN(skl[Zc0[I8H-2llEF?pFhp!+.+
2494f"8lM%[IsL4a;=FFs+drTrk?/YoR"AmpH!hkliCD.^&S4FFq0)92hsd,*0;KO5_p+8"^n,HO<t7KkS
2495XGp9FW!De53r*2Zb+,(`UhB&qU)`'4Dk)*&)C=69#Z3`7uPfctIMffJNhf5eRPeLia*9)\&H>3.sRS
2496!!='l"l]pu)fX_LKnpl]TmR`/6^Vm'@'DQ/gbp.)TPP<^N&Y5c%3:%3_7Q#a]@gB4DC!W3PS(LT$4/
2497UKN7=H-20)P'aeNfKoaEP6E5W'8&g_P20ufAUbaSZsA&]9I3!R\N=ZS=""O]RK\HkfaC!Km/ah3f=F
2498:B0&I3o>XO>msD78qT#AL0rAP,U3.JYC=Km<Uh7eo5;j,/TD\100VW"?&a%oH^`\P/q5#+pg)`-A[e
2499EXWb,2RIKuc`-cY9RAVL%'TnY68<>Y7P_=knkmN#8%LKZm4si!-@YDRU'e,MD&KitW,G6[j^bca[dE
2500ud*bYS>u-54Zb648`e84Ue5i?Y1"Q-l[\$.(ReL%$6(KUt)c$'<,9OZcSN!dYIZY`4C))@+bAC<iI`
2501/I%j]$H(Ae#$MHbk2@1:N;2q@H%?mSQp1o;TP4j)I6,IQm3QQ#Wm;;Y:8mt+*oUMWK7G(*#mD[n+Da
2502r6Y\YiuK2<X&U7+Pr#rksjCE$Y`-j7=.&]Z15CJE3&dB[a^8a/:(jF2^j&0N<tiiWW=49Pc&_,f[H4
2503JpR*LW6U+!C;Op(Vgk_&pB(3.*V+\950D!@;Z=e3i=@MPZ%S`H8\&C94,#>SPq9tae#%3V^9+s"7bk
2504B!'ifOL:U,'C>_f95q6e`A5[t52_+*^AI&8Yl@^i&2lJ$T9%O@Q8Q&s/"P=Y3@aG5b]4uC=\j!EqIb
2505g0&H9MLo#RZ2lDHs5sDSS6:)F/*\g0+k*jkX:1WeSD^)B:ekfGXjDH?@X\5>__e7VO3sD\8)*!C0`t
2506!T=rN7tNEU`:X*;6Y=/A-@%q5_2Y?.*0isu9n3Mp![QD0bXqYp,75"8)]5l[?BRuC-BbO4Q$Us2"L2
2507_ZGdD04\O52pCk!bJ\I8-e51j+_+E?BSa3rJ=="+q+RV\cGD>or"Jhh%ZeDP"/?t)uY$X8I`EA,_g+
2508Wp'L9!YhYb8B"@V-1N&!g(/5\^roUI./dY+Ij**dlcgkl7[kdSdV;`5\P.`#=&8Qd2E!_B0@3+`@+P
2509"RR]IJn9b39hNlIhe0aG(n1=]L^<bgSK8D/XS]T;]\_mH7$S>a;7>S8#>0C)b4_cQ8^g7efa'<D.CT
2510mtu[0qOU?L/\JXu9=i"%;Tfln*([opD6U])u__SWYOWkX+#CGAc^JZj*tadG*Br;1nh"YdM42etS@M
2511DG=Xl"?QnFRg^Vt`;(pQEEI)f(E^+j\jg`qRq[Q)#SW0JcA6''c.TuSn.MWdR#YQ#=HJ^*@XE=@cNP
2512X0S\I_d5WsdtD''On!b'jRO%s<eXl]F.2m,,4q"1ED"Ft]TdGK[q?RV)m8jVu69uVqtn&4eS1au>'9
2513l45KQ2$--&mg5^35IT77#(2p:1oi,i@m3XBshO$Q!8NC$D2_U[?!MoI[eSGm3I=bn_DPaXYCY3,T-m
2514KGlFZ*CI@GVR!+16,(=j'\K:m;%:Nesf>Wh.!^Lu^@A^rib==GXJ4p3!!%'*@,i,"Qk18V1X!YqBUE
2515bBJU"9=p-U:c7n3hl=%F?46#>i_J@\]uF&lmM(;c"9\5\Z70flOKD_I:.Dch8!V/FM1/(;XN5J,slI
2516NAsT>^us9'Z9Tj(%f6GQjaR"?^X<a>'ad4e;IQ_n0>9=coElAC%=ja&7/,()7"BX6!2ol\D;JtoF:&
2517*=C^)9s!*JNBq%>AAJNJ]i4J7''fH(3P;?3(>]\>!B^l5SXX?UD?)k_9Ri),8u1G"?C\fd&cPO#hWP
2518(gCbJClIU0G#X3"0re`RXfO<BHVh8[^dps-sNQ/nk;)hOJFRDJ7He'2uirWC:]P8_))%Gb..bUC'N=
25194#A>"WZeMdLX?]\lNW<'A&0l]n*/uHo3TB8=nlS3[Tpq^#L6,\pl6?GcKfYT[$.L<6Tqr!]*s1qH"T
2520T#9o@q&GS2`OD08d@C&0-F\>C`E;]'H3)!C=?^/qF(T_&L5p-lfL=f,FEm!XK,7"4KTJ;2r/SLraN:
2521fae5Vc91/W^rte%$S_q1%0sg3&X$^paE`OKLHBPl't`ucS63VV<^Ge:).S.OEhfm+hF6,3%/V6+`%a
2522\b]ti$^3uZ6s$\C^\Qp_UV$hGqjbVBK/VPYn$0FV$_/&DTq]K.k<]UWj^)65f.I>Y'Y`.>'NJ:'<o>
2523/^nn7W]Z+_"!#lDMFfuL89Ak,_F)oJVKh8K]l0cm"EG:K?0"&UPMX!`.uE-LWGQkJFEO?*/I-RO3%)
2524uK'\$/7#]4"K*@Vq89BYZ7#8o,+b0P'8Bd1;W*P"6O@];980D5jKT&LHPK5F/7rq^_(fHA2;9DF-"W
2525XA]@,]7D7tQ,e8mJ::<2rPU;?H>7b!`."A?/>`U^5lqb,hX9m&s$#/qP(I8t<<3:cEt'W_.B4b<2j,
2526Ll0>SZcgRib&C,WoXN'1Z:]ME"R$iKPd8JCVM-E?a6X3AOg^a,EJVcZM-7FtXE9K@C^F?`19>)FXCn
2527ktosmb1$,`]tr5tpjA1n&?0oR[k&3%XG@)qj%7g(V/Eji\cAB(lF_uqX1kan!]S]2R+$hNIL1t439)
2528)t!cM-KV^I,Pm#aGFGJYT._[9[pT-hE-8&#@K/LTV0<jPKnN3`[X`?.P4EbN4Q)r:<^s%.!;e&C^.g
2529O7=qZIBPc"`K[(!,7!csMRhDcPH%RLSJClGL^q\1-:_]SN0OP-90HDQ?\V?1h4D6=%8ZB!`*k>,Ach
2530!'V?s%r0?j5Hk.,=J]/7h(<<sH`_"mY#A6IQ0I&-;QB#'^T<=bWaDq_Cg9d*Yk?j8+T4<.O1:]NdZh
2531b]Of0.K\f]Rn9-(kQ+Pb-\1R]9_k_YqDD..T$3Z)OC3!Y)>O>]<6n8A:L)tARd)W'oENqTJe2u-a;f
2532^CMT&JtcP)qq]]0:=07_Da#*9/8m4f'E;*9r%LS-$s/%HRK?%L'+!dH*nLi+I'iY<1Y'h$H+UuK]O=
25339.7gLqjIMi^qNGN4XG))sD-hMDi)6D2-tdLKGr*\k11]_UOtn9rr>)UEDe*/1gj.J:K:A*<V5iRStV
2534?J1t@mPQh2N-jIau!8.*C!0>?>j3QbNe$t>A5V)o^%AJLi$Gq)/d#`tN)Co#1#q0K*i#4lVFN0#J`[
2535(Q'UiR1tD$Jg'6a\/d5a$nm!nS9PcaA.rPl4(1<m]ZH;V^(F"[L+1s&8E[Pl5_hAUr1qJ[$bQ3I4Lr
2536=H^n_h9CStYIts7Zk5NFLq(+_M)C/F9_JcmN)hfq=DZAeHth0,W`'oO9[/erBi)TQRSF#HMQFk-jQM
2537B;dYQ,rM@@\J]l+DBS-am^7=^C!pe]%BL0B#("RW0lJ5CiB-A<J=g7>6Ijf&Ch."W29>+M\Ih6RCF%
2538pL'T>4o0&^`V<2ZJ+]O874"Mn5.l!]NVO9aP[BYjg//sW!(0]>@kA"Qqc?V^KZu="RC-O+H-_Ck$3n
2539f>b0#BXijt[ja`OHJaa!$mE]&4$%URQ>oh<u*REOndp2:i>trmU2:^N*f%gefh0mr3S_IFeg0Fm;h)
2540"M$\9?^,hhRSBh@Or;BR'iEFl![ThG)s8*TQ!IG2@r7#@6NLR>bG]lJ@N^?6/+`Q0$k>lWuI0?FB9/
2541c08Qrm,%^3h];)j*U[84pKrpLhbE6>`V*Y%jklp#hKA_Ph<!O7BoDZc?lfAW/d#KF"COt.?sX%FD?j
2542Qu#[iZ!@%I^58:Z3~>
2543%%EndData
2544end restore showpage
2545%%Trailer
2546%%EOF
2547
2548%%EndDocument
2549 @endspecial 324 3095 a(Figure)d(3:)g(The)h(33)f(region)h(in)f(the)h
2550(top-left)f(corner.)h(The)g(solv)m(er)h(can)e(eliminate)i(all)e(of)324
25513216 y(the)h(empt)m(y)i(cells)f(in)g(the)f(top-righ)m(t)g(corner)h
2552(whic)m(h)g(cannot)g(con)m(tain)f(a)g(5.)g(This)i(lea)m(v)m(es)324
25533336 y(only)h(one)g(p)s(ossible)h(cell)f(\(highligh)m(ted)h(in)e
2554(green\).[1)q(])1918 5251 y(4)p eop end
2555%%Page: 5 5
2556TeXDict begin 5 4 bop 324 548 a Fd(3.3)135 b(Analysis)324
2557733 y Fc(Analysis)27 b(will)g(b)s(e)f(ev)m(en)i(more)e(complex.)i(It)e
2558(can)g(consist)i(man)m(y)f(metho)s(ds)f(to)g(logically)324
2559853 y(gain)35 b(a)g(solution.)h(There)g(is)g(one)f(p)s(oin)m(ted)h(out)
2560f(\(and)h(implemen)m(ted\).)h(Let's)f(pretend)324 973
2561y(w)m(e)d(ha)m(v)m(e)h(a)f(ro)m(w)g(in)f(whic)m(h)i(are)f(3)f(sp)s
2562(ot's)i(still)f(to)f(b)s(e)h(\014lled.)470 1094 y(Options)d(to)f(sp)s
2563(ot)h(A:)g(1,)f(2)h(,3)f(Options)h(to)f(sp)s(ot)h(B:)g(2,)f(3)g
2564(Options)h(to)g(sp)s(ot)f(C:)h(2,)g(3)470 1214 y(B)j(and)f(C)h
2565(together)g(will)g(use)g(n)m(um)m(b)s(er)h(2)f(and)f(3,)g(so)h(A)g(has)
2566g(to)f(b)s(e)g(1.)h(It's)g(just)g(an)324 1335 y(other)f("simple)i
2567(solution",)f(but)g(implemen)m(ting)i(it)d(it's)h(a)g(bit)f(hard.)1501
25682295 y @beginspecial 0 @llx 0 @lly 106 @urx 99 @ury 1060
2569@rwi @setspecial
2570%%BeginDocument: cplusplus.eps
2571%!PS-Adobe-3.0 EPSF-3.0
2572%%Pages: 1
2573%%BoundingBox: 0 0 106 99
2574%%DocumentData: Clean7Bit
2575%%LanguageLevel: 2
2576%%EndComments
2577%%Page: 1 1
2578save 2 dict begin
2579{/DeviceRGB setcolorspace
2580/T currentfile/ASCII85Decode filter def
2581/F T/DCTDecode filter def
2582<</ImageType 1/Width 106/Height 99/BitsPerComponent
25838/ImageMatrix[1 0 0 -1 0 99]/Decode
2584[0 1 0 1 0 1]/DataSource F>> image F closefile T closefile}
2585%%BeginData:;
2586
2587exec
2588s4IA0!"_al8O`[\!<<*#!!*'"s4[N@!!ic5#6k>;#6tJ?#m^kH'FbHY$Odmc'+Yct)BU"@)B9_>,VC
2589Ge+tOrY*%3`p/2/e81c-:%3B]>W4>&EH1B6)/6NIK"#n.1M(_$ok1*IV\1,:U?1,:U?1,:U?1,:U?1
2590,:U?1,:U?1,:U?1,:U?1,:U?1,:U?1,:U?1,:U?1,AmF!"fJ:@fU6G!?qLF&HMtG!WU(<)uos?!WrH
2591(zz!!!!'"U>)2":,&._uMY+!!30'!X&W/"U"l/z!<N?'";(eM"sG]e'-^:^#8Aq5,=6std1oQAZ(^+
2592l1QqdV!#bk<!WrH(zz!!!!$"98K,"p+bB!%ec_!WiB)!s8T."TSN&!!!!"!WW<7";2j]'/;dM@2'n#
2593,;Pt^6?.R=Z2`MX$j-M1!YGMH!'^Iukb<rt6Feal.m6!*R@R0:OLas)YcbR:GkO9p\DB0KNSZmc9uf
2594FoEdOGO95<oP<*Wr2_bjO@_O1:;`ATYVU>HCu[j?7Z$1t4@J20nMW(:t@&oA7kbS9,MZ_(42SgB+q\
2595R%/S'XoR4e+K$\H_VtJBYR7M6*0'J\,8goC!6;'8C*j#&FMQWq"Uf4384EFGKIra>[/c&b.GP+5%"m
2596nR*oJhO=SIYG0&o?C:_[)dWWKV+'L9m1=)!K$"+DtMmLp'@_'7T=npu"-?K!fb*F93fl<4:9&mRp>=
2597T&FOA@V";7c_m#/hT<2:<p5bclZ>aJ,@&?Ktb.4k\/D?YT\tPtkCRVRsN>fo0Mj@ME:LdM,PI*`<^\
2598W:;1*T;tJY]41&-`/D.a80i^Alc@T!18:(H$3tTdYN&q1^>^1bK(?d'UUNm=6S#G&6S[X_pSBa6G3d
25994/0[q;Q@D#'8D=p!h13d[(g>5jO;OkKqoq`Tj9(([V/ak7Q(U+IV@<jfGC!%#5G*0a#^,1_?1n/[V5
2600.IagV@&=<NciN\8[/eFjul(K35eG>')Yp+/--u_%&2o3UFc(M^5j3q3S0LXStQ%q/#QM/-t?nG!Z2m
2601ll@8)a7\qZIM38Pb1To.r13q5'[5k=C)"sFL`X>@`j*`iID^1>dG5On`nfu_tUuG(-QJdnS4U:RTHB
2602`=0+Rb^<JV%o;CVJZRf$FM=+Q*-mRA)i8<#[hQ&X1G,iEe7`jHb"LJ\6R&caWF=g5Z*$,Xs4#=EV_F
2603,OO?eQ+#RmikS29PIFE7So"&PY2fTY<1[oQH^Z"YTX`]qR&a,dgWpMYiDThlb&,%5/94O-;fs%QC#@
2604A2R'""e+WbL9E]L*Km'LHJVaYMH9FHYl#nWhg.@<)KnP]435=MfF#oO#\)8YrDetM`],]!8_AOoCXJ
2605]``.1!;dr@/-W.1@RHEaUiZV6ntr26PGFY!6n=U)Qhk]W(/VRb&T#bO%R4Qg0XA^:Ygl.U;9Sm[l%r
2606lAnq\kf'Qq;E6*hq&e8oMdA:h)op^!-+cbhP/?o$JMWT[l>H;;'1R)mA>+ps9FV_]NG0J.:Ol,'b>f
2607Km>976a>31=-F;)%!($*IEDfHZoIreJ0:>HPTAU/F<h+Cf.tE-'g``0*i;+<G0*cjk.b_No4X:eRe3
2608D8YpU>TETQd[SY<ESEZ?--L+2@^Z*gbjdu5#/t0k8=,`/H>1cU)f"!)-+nB-6dH:fO6K]2SYGB&C+m
2609`aTPT$eAWQ.T2:?48@]KE9rr>tEm\3:l@isQQmf*9Aoc=\(#iW<_RL'ofap4(qq[lMF;<k`oJg_geO
2610$?5F.b15o`MQFEX/[^f'!QKhf5UA\X'R$UL?1#F[1QU7h?H4(Q.BWI(P;&TrVlki1=bZkHMCa;g+gI
26119*"f+BW"kkN<``,?5uYu>>3EGNeiiWIZ*12J<rPFh`6.//[Yjj])+,hU*ajm&<h;^OLtC3rVa7"]4%
26121KhhFVZEVUc!EhiOX5iB96G!al[65<Re4r!K(kcY1R3VI$8CYt4*(5;#2GrDJkB:eljai^r.bD8U31
2613a9S#*F$45UCBn\Gm5?d$D;n)[">RMCg8G<A^fE1Lb-%k3,9W$=Xf:Vf1YT,M#ToA_oVilEePs`_2_F
2614)?9Pf%t9$(p-Mc"QXCA0I$PeF`CYn>:^r$=RaJ^=8GD7%Q6;K[$=\`B3A(:P)q[bB5ugQ?ac!>W4Bi
2615O74__TGt8aBm'`V)s<B,EW&Z.\:2-Ku?I'1N.SBU'&Km8G9-gGcKc]PdOj%4aOMT*B]VNF&DZ]/J4Q
2616F[<\9``BLt9ma/$n5O;'B90V]`1V&\.BmsM_SkZ!(*OErCUo\(5]8L]H,]t/m\sJ75%N?k\%m"+IY9
2617Ac<5cTaoQ"A]cBCCM]87/f!76SnlZ%h+/05QU7qc"m,9dB+q<cdQh2'SKC[%WG",F.NpktBetEHLnp
2618[>@73Jl*Vb;1>ObgJMIAT1B;cL?(p32i39NkoJQsjdC^[c1I4ar);f>)6Yu<[>(m']ObV$MJ5Mm_EG
2619p,68]49bOk1.Ofm<5-&G[S3JqT=LZ!5(rr@u\J)SeKc5Pqgl1DA^\j`-U<o?A)"=+Z-&%Sl4nLkF,n
2620MZ.dRs!g&16M[_*->rer45Y&UKu[=P=Hil%&XCC,Y=(O_pfSH;6@T0N-+q2APD$qBVN(_r/qcT$@Oe
2621OAWks@,@[Pfa>g4&6hj<UC'Z3:VN/V7T#9`Qrga;iV2d"`qi2QDV6RTN_"1&=(_SK2.9!-d:fq]XqL
2622l,^WTI;F"i_,=Q6.?Mb,KN$R9:Nf8;$XO-*-QIKo-r]d"2#IU&,=sWCpIK/DnI"DZ!lT1Q'gZ`S29-
2623OKnfJ1mPXKkL`'-'6\cH2aQIM^=408FuJn3W`T6toZu6]A[IHrV&_%He(*h_)-\@"cdnPfGl@$:q!A
2624be/?1Bodt--beC#7p&7^U9Q;gGunKom\bC)$?B1Z',^Jul.1[ds4k8;rXDM#b^YiWWoJ)*HHlF5L-Z
2625J<WZLHUR;7<%'d5oTN]2V<Q@:G(IAoQi>D#WE`jFPXE^_8AB&1Iq])S>9YM!s*h2[5Qf2lJ?$lN.O.
2626>%@*qd@$B?J!+.L1otdVCqM*)`q!K#0"/u(#HY:d/G):.Dm,ASIUF'*5-`Ylb`(L@[o1m-PKP.aBoc
2627J!lX/;j<K02,K=.<?<iX]p]0`]OU$[uUQN/G6JV<RW0W<ssf[J/D_ensA)*]]'>@(Ue\UNSdV>:?DS
2628'SS#VpBhBZcl+lo(U/?6%I/;Dli-EKFB)I2$lNVcVf85*MU`i[BWf)U`^k'k8Ha4WX_cK>8'?^]Mdd
2629?_n+E=2HO@?o_r8gcm]-hm@*ueH[Osph@K#)0PgR2ekaGn>8Ze0Dj`!VNN.?>39#s%02WN9CCAhlSo
2630BYclbrlpr@n@8sOdn,AkMEG8:1q,#7pmPEAEO&mF'#O`E0NEFP?hCc9DDT25lUi:#N\1X<AkgSWGr'
2631\)e`ONOpaK#8m;0VPhUc7@;44;M3Gq)%BT%cju>VRpERl\5FRtGi#QTjmT#rf#2K/Y'5(u"_l9[mL4
26320s'=tgWIiqhuES9Ye75BBV8MM`-J.ZT#dG)i.]DfZ]+?,kBcHdm-Vc4SQcPfJ"K(utc,,1=`eagF-8
2633edrq6o]9DFfD'g<Lii@!\kFd__j#RHT2A2X1%;'`8sW,@>&esPYos,%)NNUaP?!#5$OKT5'"rVbnG[
2634&*_/2A\Cpcq#dDq4j+u9b.-m[jG2/6/H`fS3F`h<u6'i\QA=]V(bYl`.]++"cW'N%8_KbRB^85Vej,
2635_]]iUgSjE:ejd5Nc\,r8X0ue;FjYR'dSJI;,U!cf`~>
2636%%EndData
2637end restore showpage
2638%%Trailer
2639%%EOF
2640
2641%%EndDocument
2642 @endspecial 324 2833 a Fe(4)161 b(Implemen)l(tation)324
26433052 y Fc(The)37 b(solv)m(er)h(and)e(create)h(program)g(are)f(b)s(oth)g
2644(written)h(in)g(C)2621 3035 y Fb(++)2731 3052 y Fc(.)g(It)f(uses)i(a)e
2645(2d)g(arra)m(y)324 3172 y(to)44 b(imp)s(emen)m(t)j(the)e(sudoku)h(b)s
2646(oard)f(and)g(a)g(3d)f(arra)m(y)i(to)e(implemen)m(t)j(the)e(curren)m(t)
2647324 3293 y(a)m(v)-5 b(ailable)33 b(c)m(hoices)h(at)e(the)h(b)s(oard.)
26481918 5251 y(5)p eop end
2649%%Page: 6 6
2650TeXDict begin 6 5 bop 324 548 a Fe(5)161 b(Creating)52
2651b(so)t(duku's)324 767 y Fc(There)34 b(are)e(3)g(main)h(w)m(a)m(ys)i(to)
2652d(create)h(sudoku's)443 970 y(1.)49 b(Randomizing)32
2653b(stupid,)h(just)f(push)h(for)e(example)i(17)f(random)g(n)m(um)m(b)s
2654(ers)h(inside)568 1091 y(the)g(sudoku)h(and)e(hop)s(e)h(none)g(of)f
2655(them)h(will)h(in)m(terference.)443 1294 y(2.)49 b(Randoming)44
2656b(smart,)i(push)g(for)e(example)i(17)e(random)h(n)m(um)m(b)s(ers)i
2657(inside)f(the)568 1415 y(sudoku)33 b(and)g(b)s(e)g(sure)g(none)g(of)g
2658(them)g(will)g(b)s(e)g(a)f(violation)h(of)f(the)h(structure.)443
26591618 y(3.)49 b("Cleaning")22 b(\014rst)g(generate)g(a)g(complete)h
2660(sudoku.)g(Then)g(get)f(y)m(our)g(wip)s(ercleaner)568
26611738 y(and)31 b(delete)i(some)f(n)m(um)m(b)s(ers.)i(This)e(solution)g
2662(is)g(a)f(bit)h(di\016cult)h(and)e(will)h(use)h(a)568
26631859 y(lot)e(of)g(math)g(to)g(generate)i(a)e(full)g(puzzle)i(and)f(y)m
2664(ou)g(are)f(not)h(sure)g(if)f(the)h(puzzle)568 1979 y(has)h(got)f(only)
2665h(one)g(solution.)324 2312 y Fe(6)161 b(Exp)t(erimen)l(ts)324
26662560 y Fd(6.1)135 b(Solv)l(er)324 2745 y Fc(First)23
2667b(w)m(e)i(will)f(test)g(the)g(solv)m(er.)i(The)e(w)m(ebsite)i(of)d(G.)g
2668(Ro)m(yle[2)q(])g(has)h(got)f(plen)m(t)m(y)j(solv)m(eble)324
26692865 y(17)k(sudoku's.)i(A)f(few)g(of)f(them)i(are)e(placed)i(at)e(App)s
2670(endix)i(C.)f(There)h(is)f(a)f(small)h(shell)324 2985
2671y(script)23 b(written)g(\(App)s(endix)g(B\))g(to)e(test)i(the)g
2672(result.)g(By)f(trying)h(to)f(solv)m(e)h(1000)f(puzzles,)324
26733106 y(the)28 b(program)g(managed)g(to)g(complete)h(547,)e(the)i(other)
2674f(puzzles)i(requires)f(some)g(more)324 3226 y(logic)j(implemen)m(ted)k
2675(to)c(solv)m(e)i(them.)324 3515 y Fd(6.2)135 b(Generator)324
26763700 y Fc(The)23 b(generator)f(will)g(generate)h(of)e(puzzle)i(of)f
2677(class)h(2)f(\(Random)f(and)h(not)g(v)m(ery)i(stupid\),)324
26783820 y(the)37 b(solv)m(er)i(will)e(try)h(to)e(\014x)i(this)g(puzzle.)g
2679(No)f(c)m(hec)m(ks)j(for)c(unique)j(solutions)f(will)f(b)s(e)324
26803941 y(made.)27 b(T)-8 b(able)28 b(b)s(elo)m(w)g(will)g(p)s(oin)m(t)f
2681(out)f(the)i(results)g(b)m(y)g(running)g(the)f(test)h(10000)d(times.)
2682374 4261 y(P)m(ercen)m(t)34 b(sudoku)g(\014lled)f(initially)p
26831676 4298 4 121 v 101 w(Solutions)g(found)g(1st)g(round)p
26842879 4298 V 100 w(Solutions)g(found)f(2nd)h(round)p 324
26854301 3793 4 v 374 4385 a(10\045)p 1676 4421 4 121 v 1174
2686w(0)p 2879 4421 V 1155 w(0)374 4506 y(20\045)p 1676 4542
2687V 1174 w(0)p 2879 4542 V 1155 w(0)374 4626 y(30\045)p
26881676 4662 V 1174 w(160)p 2879 4662 V 1057 w(0)374 4746
2689y(40\045)p 1676 4782 V 1174 w(0)p 2879 4782 V 1155 w(0)374
26904867 y(50\045)p 1676 4903 V 1174 w(0)p 2879 4903 V 1155
2691w(0)1918 5251 y(6)p eop end
2692%%Page: 7 7
2693TeXDict begin 7 6 bop 324 548 a Fe(7)161 b(Conclusion)324
2694767 y Fc(The)38 b(solv)m(er)h(ain't)f(go)s(o)s(d)f(enough)h(y)m(et,)h
2695(he)f(should)g(\014x)h(ev)m(ery)g(puzzle)g(and)f(not)g(50\045,)324
2696887 y(need)26 b(to)f(program)f(some)i(aditional)f(logic.)g(The)h
2697(creator)f(isn't)h(v)m(ery)g(go)s(o)s(d)e(either,)i(only)324
26981008 y(30\045)39 b(will)g(generate)h(some)g(solv)m(eble)h(puzzles,)g
2699(It)e(prop)s(erly)h(ha)m(v)m(e)g(something)g(to)f(do)324
27001128 y(with)32 b(the)f(v)m(ery)i(bad)e(random)h(generator,)f(the)h
2701(random)f(seed)i(if)e(\014lled)h(with)g(the)g(unix)324
27021249 y(time)41 b(in)h(whic)m(h)g(in)f(100)f(o)s(ccured)i(pro)s(cess)g
2703(will)g(b)s(e)f(the)g(same.)h(The)g(creator)f(needs)324
27041369 y(metho)s(d)33 b(3)g(to)f(b)s(e)h(implemen)m(ted)j(to)c(v)-5
2705b(alidate)33 b(this)h(assumption)g(or)e(a)h(rewrite)h(of)e(the)324
27061489 y(co)s(de.)324 1822 y Fe(References)324 2041 y Fc([1])49
2707b(Wikip)s(edia)33 b(F)-8 b(oundation)32 b(Inc,)i(h)m(ttp://en.wikip)s
2708(edia.org/wiki/Sudoku)324 2245 y([2])49 b(G.)21 b(Ro)m(yle,)h(Minim)m
2709(um)i(Sudoku)f(h)m(ttp://www.csse.u)m(w)m
2710(a.edu.au/~gordon/sudokumin.php)1918 5251 y(7)p eop end
2711%%Page: 8 8
2712TeXDict begin 8 7 bop 324 548 a Fe(App)t(endix)52 b(A:)i(sudoku.cpp)324
2713767 y Fc(The)33 b(follo)m(wing)g(C)1006 750 y Fb(++)1149
2714767 y Fc(has)g(b)s(een)g(used)h(to)e(solv)m(e)i(the)f(puzzles)324
27151101 y Fa(/*)47 b(file:)f(sudoku.c)372 1214 y(*)h(author:)f(rick)g(van)
2716h(der)g(Zwet)g(0433373,)e(2006)372 1327 y(*)i(University)e(Leiden,)h
2717(LIACS)372 1439 y(*/)324 1665 y(#include)f(<stdio.h>)324
27181778 y(#include)g(<stdlib.h>)324 1891 y(#include)g(<string.h>)324
27192004 y(#include)g(<time.h>)324 2117 y(#include)g(<signal.h>)324
27202343 y(#define)h(MAX_XYZ)f(9)324 2456 y(#define)h(EMPTY_SPOT)f('_')324
27212794 y(#define)h(bold)g("[1m")324 2907 y(#define)g(normal)g("[0m")324
27223133 y(#define)g(DEBUGPLACE)f(stderr)324 3246 y(const)h(char)h(esc)g(=)
2723g(27;)572 b(/*)47 b(escape)f(character)g(*/)324 3585
2724y(int)h(debug\(const)d(int)j(level)g(=)g(0\))324 3698
2725y({)324 3811 y(#if)g(DEBUG)515 3923 y(if)g(\(level)f(<=)h(DEBUG\))515
27264036 y({)706 4149 y(return\(1\);)515 4262 y(})515 4375
2727y(else)515 4488 y({)706 4601 y(return\(0\);)515 4714
2728y(})324 4827 y(#else)515 4940 y(return\(0\);)1918 5251
2729y Fc(8)p eop end
2730%%Page: 9 9
2731TeXDict begin 9 8 bop 324 548 a Fa(#endif)324 661 y(})324
2732887 y(class)46 b(Sudoku)g({)515 1000 y(public:)706 1112
2733y(Sudoku\(\);)706 1225 y(void)g(printNice\(const)e(int)j(boldRow)f(=)h
2734(-1,)g(const)f(int)h(boldCol)f(=)h(-1,)g(const)g(char)f(emptcolSpace)f
2735(=)i(EMPTY_SPOT\);)706 1338 y(void)f(printRaw\(\);)706
27361451 y(void)g(printPossible\(\);)706 1564 y(void)g
2737(printPossibleAtNumber\(con)o(st)c(int)k(row,)h(const)f(int)h(col\);)
2738706 1677 y(void)f(reset\(\);)706 1790 y(int)h(randomNumbers\(const)42
2739b(double)k(chance\);)706 1903 y(int)h(fromFile\(FILE)d(*handle\);)706
27402016 y(int)j(insert\(const)d(int)j(row,)f(const)h(int)g(col,)f(const)h
2741(int)g(number\);)706 2129 y(int)g(solutionFinder\(\);)515
27422242 y(private:)706 2355 y(int)g(_sudoku[MAX_XYZ][MAX_X)o(YZ];)706
27432467 y(bool)f(_possible[MAX_XYZ][MAX_XY)o(Z][M)o(AX_)o(XYZ])o(;)706
27442580 y(int)h(_numbersFilled;)706 2693 y(void)f
2745(_updatePossibleList\(const)41 b(int)47 b(row,)g(const)f(int)h(col,)g
2746(const)f(int)h(number\);)706 2806 y(bool)f(_solution1\(int)e(&row,)i
2747(int)h(&col,)g(int)g(&number\);)706 2919 y(bool)f(_solution2\(int)e
2748(&row,)i(int)h(&col,)g(int)g(&number\);)706 3032 y(bool)f
2749(_solution3a\(int)e(&row,)i(int)h(&col,)f(int)h(&number\);)706
27503145 y(bool)f(_solution3b\(int)e(&row,)i(int)h(&col,)f(int)h
2751(&number\);)324 3258 y(};)324 3484 y(Sudoku::Sudoku\(\))324
27523597 y({)515 3709 y(reset\(\);)324 3822 y(})324 4161
2753y(void)f(Sudoku::printRaw\(\))324 4274 y({)515 4387 y(int)h(row,col;)
2754515 4500 y(for)g(\(row)f(=)i(0;)f(row)g(<)g(MAX_XYZ)f(;)h(row++\))515
27554613 y({)706 4726 y(for)g(\(col)f(=)i(0;)f(col)g(<)g(MAX_XYZ;)f
2756(col++\))706 4839 y({)897 4951 y(printf\("\045i)f(",)i
2757(_sudoku[row][col]\);)1918 5251 y Fc(9)p eop end
2758%%Page: 10 10
2759TeXDict begin 10 9 bop 706 548 a Fa(})706 661 y(printf\("\\n"\);)515
2760774 y(})324 887 y(})324 1000 y(void)46 b(Sudoku::printNice\(const)c
2761(int)47 b(boldRow,)e(const)i(int)g(boldCol,)1422 1112
2762y(const)f(char)g(emptcolSpace\))324 1225 y({)467 1338
2763y(int)h(row,col;)467 1451 y(int)g(tmpRow;)467 1564 y(const)f(int)h
2764(maxRow)f(=)i(\(MAX_XYZ)d(+)j(\(MAX_XYZ)d(/)j(3\)\))f(*)g(2)h(+)f(1;)
2765467 1677 y(for\(tmpRow)e(=)i(0;)h(tmpRow)e(<)h(maxRow;)f(tmpRow++\))467
27661790 y({)658 1903 y(if)h(\(\(tmpRow\0458\))e(==)i(0\))g({)h
2767(printf\("+"\);)c(}else)i({printf\("-"\);})467 2016 y(})467
27682129 y(printf\("\\n"\);)467 2242 y(for)h(\(row)g(=)g(0;)g(row)g(<)h
2769(MAX_XYZ)d(;)j(row++\))467 2355 y({)658 2467 y(printf\("|)d("\);)658
27702580 y(for)i(\(col)f(=)i(0;)f(col)g(<)g(MAX_XYZ;)f(col++\))658
27712693 y({)897 2806 y(if)h(\()g(_sudoku[row][col])c(==)k(0\))897
27722919 y({)1087 3032 y(printf\("\045c)e(",emptcolSpace\);)897
27733145 y(})897 3258 y(else)897 3371 y({)1087 3484 y(if)j(\(row)e(==)h
2774(boldRow)f(&&)h(col)g(==)g(boldCol\))1087 3597 y({)1326
27753709 y(printf\("\045c\045s\045i\045c\045s)c(",esc,)j(bold,)g
2776(_sudoku[row][col],)2328 3822 y(esc,)h(normal\);)1087
27773935 y(})1087 4048 y(else)1087 4161 y({)1278 4274 y(printf\("\045i)e
2778(",)i(_sudoku[row][col]\);)1087 4387 y(})897 4500 y(})897
27794613 y(if)g(\()g(\(\(col)g(-)g(2\))g(\045)h(3\))f(==)g(0)g(\))897
27804726 y({)1087 4839 y(printf\("|)f("\);)897 4951 y(})1894
27815251 y Fc(10)p eop end
2782%%Page: 11 11
2783TeXDict begin 11 10 bop 706 548 a Fa(})658 661 y(printf\("\\n"\);)658
2784774 y(if)47 b(\()h(\(\(row)e(-)h(2\))h(\045)f(3\))g(==)g(0)h(\))658
2785887 y({)897 1000 y(for\(tmpRow)d(=)i(0;)g(tmpRow)f(<)i(maxRow;)d
2786(tmpRow++\))897 1112 y({)1087 1225 y(if)j(\(\(tmpRow\0458\))c(==)j(0\))
27871087 1338 y({)1278 1451 y(printf\("+"\);)1087 1564 y(})1087
27881677 y(else)1087 1790 y({)1278 1903 y(printf\("-"\);)1087
27892016 y(})897 2129 y(})897 2242 y(printf\("\\n"\);)658
27902355 y(})515 2467 y(})706 2580 y(printf\("\\n\\n"\);)324
27912693 y(})324 2919 y(void)f(Sudoku::printPossibleAtNum)o(ber)o(\(con)o
2792(st)c(int)k(row,)h(const)f(int)h(col\))324 3032 y({)515
27933145 y(if)g(\(debug\(3\)\))515 3258 y({)706 3371 y(int)g(tmpPossible;)
2794706 3484 y(fprintf\(DEBUGPLACE,)42 b("Possible)j(at)j([\045i,\045i]:)d
2795(",)i(row,)g(col\);)706 3597 y(for)g(\(tmpPossible)d(=)j(0;)h
2796(tmpPossible)c(<)k(MAX_XYZ;)d(tmpPossible++\))706 3709
2797y({)897 3822 y(if)i(\(_possible[row][col][tm)o(pPos)o(sib)o(le])41
2798b(==)48 b(true\))897 3935 y({)1087 4048 y(fprintf\(DEBUGPLACE,"\045i)42
2799b(",)47 b(tmpPossible)e(+)i(1\);)897 4161 y(})706 4274
2800y(})706 4387 y(fprintf\(DEBUGPLACE,)42 b("\\n"\);)515
28014500 y(})324 4613 y(})324 4839 y(void)k(Sudoku::printPossible\(\))324
28024951 y({)1894 5251 y Fc(11)p eop end
2803%%Page: 12 12
2804TeXDict begin 12 11 bop 467 548 a Fa(int)47 b(row,col;)467
2805661 y(if)g(\(debug\(3\)\))467 774 y({)706 887 y(for)g(\(row)f(=)i(0;)f
2806(row)g(<)g(MAX_XYZ)f(;)h(row++\))706 1000 y({)897 1112
2807y(for)f(\(col)h(=)h(0;)f(col)g(<)g(MAX_XYZ;)f(col++\))897
28081225 y({)1087 1338 y(if\(_sudoku[row][col])d(==)k(0\))1087
28091451 y({)1278 1564 y(printPossibleAtNumber\(row)o(,col)o(\);)1087
28101677 y(})897 1790 y(})706 1903 y(})515 2016 y(})324 2129
2811y(})324 2467 y(void)f(Sudoku::_updatePossibleLis)o(t\(c)o(onst)41
2812b(int)47 b(row,)g(const)f(int)h(col,)g(const)f(int)h(number\))324
28132580 y({)515 2693 y(int)g(tmpRow;)515 2806 y(int)g(tmpCol;)515
28142919 y(int)g(blockRow;)515 3032 y(int)g(blockCol;)515
28153145 y(int)g(c;)515 3484 y(/*)g(Row)g(and)g(Col)g(and)g(Number)f(own)g
2816(*/)515 3597 y(for)h(\(c)g(=)g(0;)g(c)h(<)f(MAX_XYZ;)f(c++\))515
28173709 y({)706 3822 y(_possible[row][col][c])41 b(=)48
2818b(false;)706 3935 y(_possible[row][c][numbe)o(r)42 b(-)47
2819b(1])g(=)h(false;)706 4048 y(_possible[c][col][numbe)o(r)42
2820b(-)47 b(1])g(=)h(false;)515 4161 y(})515 4387 y(/*)f(Block)f(*/)515
28214500 y(tmpRow)g(=)h(row)g(-)h(\(row)e(\045)i(\(MAX_XYZ)d(/)j(3\)\);)515
28224613 y(tmpCol)e(=)h(col)g(-)h(\(col)e(\045)i(\(MAX_XYZ)d(/)j(3\)\);)515
28234726 y(for)f(\(blockRow)e(=)i(tmpRow;)f(blockRow)g(<)h(\(tmpRow)f(+)h
2824(3\);)g(blockRow++\))515 4839 y({)706 4951 y(for)g(\(blockCol)e(=)i
2825(tmpCol;)f(blockCol)g(<)h(\(tmpCol)f(+)h(3\);)g(blockCol++\))1894
28265251 y Fc(12)p eop end
2827%%Page: 13 13
2828TeXDict begin 13 12 bop 706 548 a Fa({)897 661 y
2829(_possible[blockRow][bl)o(ockC)o(ol][)o(num)o(ber)41
2830b(-)48 b(1])f(=)g(false;)706 774 y(})515 887 y(})324
28311000 y(})324 1225 y(int)g(Sudoku::insert\(const)42 b(int)47
2832b(row,)f(const)h(int)g(col,)f(const)h(int)g(number\))324
28331338 y({)515 1451 y(if)g(\(debug\(1\)\))e({)i(fprintf\(DEBUGPLACE,)c
2834("Will)j(insert)g(\045i)h(at)h([\045i,\045i]:)d(\045i\\n",)1278
28351564 y(number,)h(row,)h(col,)f(_possible[row][col][number)41
2836b(-)47 b(1]\);)g(})515 1790 y(if)g(\(_possible[row][col][num)o(ber)41
2837b(-)48 b(1])f(==)g(true\))515 1903 y({)706 2016 y
2838(_updatePossibleList\(row)o(,)42 b(col,)k(number\);)706
28392129 y(_sudoku[row][col])d(=)k(number;)706 2242 y(_numbersFilled++;)706
28402355 y(return\(0\);)515 2467 y(})515 2580 y(else)515
28412693 y({)706 2806 y(return\(1\);)515 2919 y(})324 3032
2842y(})324 3258 y(int)g(Sudoku::randomNumbers\(c)o(onst)41
2843b(double)46 b(chance\))324 3371 y({)467 3484 y(if)h(\(debug\(1\)\))e({)
2844j(fprintf\(DEBUGPLACE,)42 b("Running)k(createsudoku\\n"\);)d(})467
28453597 y(int)k(row;)467 3709 y(int)g(col;)467 3822 y(int)g(c;)467
28463935 y(int)g(randomnumber;)467 4048 y(int)g(numberdone[MAX_XYZ];)467
28474161 y(int)g(numbertried;)467 4387 y(srand\()f(\(unsigned\)time\()e
2848(NULL)i(\))i(\);)467 4613 y(for)f(\(row)g(=)g(0;)g(row)g(<)h(MAX_XYZ;)d
2849(row++\))467 4726 y({)658 4839 y(for)i(\(col)f(=)i(0;)f(col)g(<)g
2850(MAX_XYZ;)f(col++\))658 4951 y({)1894 5251 y Fc(13)p
2851eop end
2852%%Page: 14 14
2853TeXDict begin 14 13 bop 849 548 a Fa(if)47 b(\(rand\(\))f(<)h
2854(\(RAND_MAX)e(*)j(\(chance)e(/)h(100\)\)\))849 661 y({)1040
2855774 y(numbertried)d(=)k(0;)1040 887 y(for)f(\(c)g(=)g(0;)g(c)h(<)f
2856(MAX_XYZ;)f(c++)h(\))g({)h(numberdone[c])c(=)j(0;)g(})1040
28571000 y(do)1040 1112 y({)1231 1225 y(if)g(\(numbertried)d(==)j(9\))1231
28581338 y({)1422 1451 y(return\(1\);)1231 1564 y(})1231
28591677 y(else)1231 1790 y({)1422 1903 y(numbertried++;)1231
28602016 y(})1135 2129 y(do)1135 2242 y({)1278 2355 y(randomnumber)e(=)i(1)
2861h(+)f(\(int\))f(\()i(\(double\)MAX_XYZ)c(*)j(\(random\(\))e(/)j
2862(\(RAND_MAX)d(+)i(1.0\)\)\);)1135 2467 y(})h(while)e
2863(\(numberdone[randomnumber)41 b(-)48 b(1])f(==)g(1\);)1135
28642580 y(numberdone[randomnumber)42 b(-)47 b(1])g(=)h(1;)1135
28652693 y(if)f(\(debug\(2\)\))e({)j(fprintf\(DEBUGPLACE,)42
2866b("Random)k(check)g(number)h(\045i)g(at)g([\045i,\045i]\\n",)1517
28672806 y(randomnumber,)d(row,col\);)h(})1040 2919 y(})i(while)g(\()g
2868(insert\(row,)e(col,)h(randomnumber\))e(==)k(1\);)897
28693032 y(})897 3145 y(else)897 3258 y({)1087 3371 y(_sudoku[row][col])43
2870b(=)48 b(0;)897 3484 y(})706 3597 y(})515 3709 y(})515
28713822 y(return\(0\);)324 3935 y(})324 4161 y(void)e(Sudoku::reset\(\))
2872324 4274 y({)515 4387 y(//temp)g(counters)515 4500 y(int)h(row;)515
28734613 y(int)g(col;)515 4726 y(int)g(z;)515 4951 y(_numbersFilled)d(=)j
2874(0;)1894 5251 y Fc(14)p eop end
2875%%Page: 15 15
2876TeXDict begin 15 14 bop 515 548 a Fa(for)47 b(\(row)f(=)i(0;)f(row)g(<)
2877g(MAX_XYZ;)f(row++\))515 661 y({)706 774 y(for)h(\(col)f(=)i(0;)f(col)g
2878(<)g(MAX_XYZ;)f(col++\))706 887 y({)897 1000 y(_sudoku[row][col])d(=)k
2879(0;)897 1112 y(for)f(\(z)i(=)f(0;)g(z)h(<)f(MAX_XYZ;)f(z++\))897
28801225 y({)1087 1338 y(_possible[row][col][z])c(=)48 b(true;)897
28811451 y(})706 1564 y(})515 1677 y(})324 1790 y(})324 2016
2882y(int)f(Sudoku::fromFile\(FILE)42 b(*handle\))324 2129
2883y({)706 2242 y(int)47 b(row;)706 2355 y(int)g(col;)706
28842467 y(int)g(tmpInt;)706 2580 y(for)g(\(row)f(=)i(0;)f(row)g(<)g
2885(MAX_XYZ;)f(row++\))706 2693 y({)897 2806 y(for)g(\(col)h(=)h(0;)f(col)
2886g(<)g(MAX_XYZ;)f(col++\))897 2919 y({)1087 3032 y(fscanf\(handle,)e
2887("\0451i",)i(&tmpInt\);)1087 3145 y(if)i(\(tmpInt)d(!=)j(0\))1087
28883258 y({)1278 3371 y(insert\(row,)d(col,)i(tmpInt\);)1087
28893484 y(})897 3597 y(})706 3709 y(})706 3822 y(fclose\(handle\);)706
28903935 y(return\(0\);)324 4048 y(})324 4274 y(/*)g(Use)g(Basic)f
2891(technique)g(of)h(finding)e(places)i(with)f(just)h(one)g(number)f(left)
2892g(to)i(place)e(*/)324 4387 y(bool)g(Sudoku::_solution1\(int)c(&row,)k
2893(int)h(&col,)g(int)g(&number\))324 4500 y({)515 4613
2894y(#define)f(NOTHING_FOUND)e(0)515 4726 y(#define)i(ONE_FOUND)f(1)515
28954839 y(#define)h(MORE_THEN_ONE_FOUND)c(2)515 4951 y(int)47
2896b(tmpRow;)1894 5251 y Fc(15)p eop end
2897%%Page: 16 16
2898TeXDict begin 16 15 bop 515 548 a Fa(int)47 b(tmpCol;)515
2899661 y(int)g(tmpPossible;)515 774 y(int)g(tmpNumber;)515
2900887 y(int)g(searchState;)515 1112 y(for)g(\(tmpRow)e(=)j(0;)f(tmpRow)f
2901(<)i(MAX_XYZ;)d(tmpRow++\))515 1225 y({)706 1338 y(for)i(\(tmpCol)e(=)j
2902(0;)f(tmpCol)f(<)h(MAX_XYZ;)f(tmpCol++\))706 1451 y({)897
29031564 y(if)h(\(_sudoku[tmpRow][tmpCol)o(])42 b(==)47 b(0\))897
29041677 y({)1087 1790 y(tmpNumber)f(=)h(0;)1087 1903 y(searchState)e(=)j
2905(NOTHING_FOUND;)1087 2016 y(for)f(\(tmpPossible)e(=)i(0;)g(tmpPossible)
2906e(<)j(MAX_XYZ;)d(tmpPossible++\))1087 2129 y({)1278 2242
2907y(if)j(\(_possible[tmpRow][tmp)o(Col])o([tmp)o(Pos)o(sibl)o(e])42
2908b(==)47 b(true)f(&&)1469 2355 y(searchState)f(==)i(ONE_FOUND\))1278
29092467 y({)1469 2580 y(searchState)e(=)i(MORE_THEN_ONE_FOUND;)1469
29102693 y(break;)1278 2806 y(})1278 2919 y(else)g(if)g
2911(\(_possible[tmpRow][tmpCol)o(][t)o(mpPo)o(ssib)o(le])41
2912b(==)47 b(true)g(&&)1708 3032 y(searchState)e(==)i(NOTHING_FOUND\))1278
29133145 y({)1469 3258 y(tmpNumber)e(=)j(tmpPossible)d(+)i(1;)1469
29143371 y(searchState)e(=)i(ONE_FOUND;)1278 3484 y(})1087
29153597 y(})1087 3709 y(if)h(\(searchState)c(==)j(ONE_FOUND\))1087
29163822 y({)1278 3935 y(row)g(=)h(tmpRow;)1278 4048 y(col)f(=)h(tmpCol;)
29171278 4161 y(number)e(=)i(tmpNumber;)1278 4274 y(return\(true\);)1087
29184387 y(})897 4500 y(})706 4613 y(})515 4726 y(})515 4951
2919y(return\(false\);)1894 5251 y Fc(16)p eop end
2920%%Page: 17 17
2921TeXDict begin 17 16 bop 324 548 a Fa(})324 774 y(/*)47
2922b(Check)f(if)i(number)e(can)h(onlcol)f(be)h(placed)f(somewhere,)f(if)i
2923(not)g(able)g(to)g(place)f(anywhere)g(else)g(*/)324 887
2924y(/*)h(FIXME:)f(Should)g(be)h(more)g(modular,)e(to)j(reduce)e(line)g
2925(length)g(and)h(readabilitcol)e(*/)324 1000 y(/*)i(FIXME:)f(find)h
2926(nice)f(solution)g(for)h(goto's)f(*/)324 1112 y(bool)g
2927(Sudoku::_solution2\(int)c(&row,)k(int)h(&col,)g(int)g(&number\))324
29281225 y({)515 1338 y(int)g(tmpRow;)515 1451 y(int)g(tmpCol;)515
29291564 y(int)g(tmpPossible;)515 1677 y(int)g(tmpNumber;)515
29301903 y(int)g(blockRow;)515 2016 y(int)g(blockTmpRow;)515
29312129 y(int)g(blockCol;)515 2242 y(int)g(blockTmpCol;)515
29322355 y(bool)f(result;)515 2580 y(for)h(\(tmpRow)e(=)j(0;)f(tmpRow)f(<)i
2933(MAX_XYZ;)d(tmpRow++\))515 2693 y({)706 2806 y(for)i(\(tmpCol)e(=)j(0;)
2934f(tmpCol)f(<)h(MAX_XYZ;)f(tmpCol++\))706 2919 y({)897
29353032 y(if)h(\(_sudoku[tmpRow][tmpCol)o(])42 b(==)47 b(0\))897
29363145 y({)1087 3258 y(for)g(\(tmpPossible)e(=)i(0;)g(tmpPossible)e(<)j
2937(MAX_XYZ;)d(tmpPossible++\))1087 3371 y({)1278 3484 y(if)j
2938(\(_possible[tmpRow][tmp)o(Col])o([tmp)o(Pos)o(sibl)o(e])42
2939b(==)47 b(true\))1278 3597 y({)1422 3709 y(if)g(\(debug\(3\)\))1422
29403822 y({)1612 3935 y(fprintf\(DEBUGPLACE,)1994 4048 y("DEBUG)f(SOL)h
2941(2:)g(Checking)f([\045i,\045i],)f(number:)h(\045i...\\n",)1994
29424161 y(tmpRow,tmpCol,\(tmpPossibl)o(e)c(+1\)\);)1422
29434274 y(})1469 4387 y(/*)47 b(checkRow)f(*/)1469 4500
2944y(result)g(=)i(true;)1469 4613 y(for)f(\(tmpNumber)e(=)j(0;)f
2945(tmpNumber)e(<)i(MAX_XYZ;)f(tmpNumber++\))1469 4726 y({)1660
29464839 y(if)h(\(_possible[tmpNumber][tmp)o(Col])o([tmp)o(Pos)o(sibl)o(e])
294742 b(==)47 b(true)f(&&)1851 4951 y(tmpRow)g(!=)h(tmpNumber\))1894
29485251 y Fc(17)p eop end
2949%%Page: 18 18
2950TeXDict begin 18 17 bop 1660 548 a Fa({)1851 661 y(if)47
2951b(\(debug\(3\)\))1851 774 y({)2042 887 y(fprintf\(DEBUGPLACE,)2424
29521000 y("DEBUG)f(SOL)h(2:)g(..failed)e(at)j(Rowcheck)d(bcol)i
2953([\045i,\045i]\\n",)2424 1112 y(tmpNumber,tmpCol\);)1851
29541225 y(})1851 1338 y(result)f(=)i(false;)1851 1451 y(break;)1660
29551564 y(})1469 1677 y(})1469 1790 y(if)f(\(result)f(==)h(true\))1469
29561903 y({)1660 2016 y(if)g(\(debug\(3\)\))e({)j
2957(fprintf\(DEBUGPLACE,"DEB)o(UG)42 b(SOL)47 b(2:)g(..succesfull)d(at)j
2958(Rowcheck\\n"\);)e(})1660 2129 y(goto)i(solutionFound;)1469
29592242 y(})1469 2467 y(/*)g(checkCol)f(*/)1469 2580 y(result)g(=)i(true;)
29601469 2693 y(for)f(\(tmpNumber)e(=)j(0;)f(tmpNumber)e(<)i(MAX_XYZ;)f
2961(tmpNumber++\))1469 2806 y({)1660 2919 y(if)h
2962(\(_possible[tmpRow][tmpNum)o(ber])o([tmp)o(Pos)o(sibl)o(e])42
2963b(==)47 b(true)f(&&)1851 3032 y(tmpCol)g(!=)h(tmpNumber\))1660
29643145 y({)1851 3258 y(if)g(\(debug\(3\)\))1851 3371 y({)2042
29653484 y(fprintf\()2424 3597 y(DEBUGPLACE,)2424 3709 y("DEBUG)f(SOL)h(2:)
2966g(..failed)e(at)j(Cowcheck)d(bcol)i([\045i,\045i]\\n",)2424
29673822 y(tmpRow,tmpNumber\);)1851 3935 y(})1851 4048 y(result)f(=)i
2968(false;)1851 4161 y(break;)1660 4274 y(})1469 4387 y(})1469
29694500 y(if)f(\(result)f(==)h(true\))1469 4613 y({)1660
29704726 y(if)g(\(debug\(3\)\))e({)j(fprintf\(DEBUGPLACE,"DEB)o(UG)42
2971b(SOL)47 b(2:)g(..succesfull)d(at)j(Cowcheck\\n"\);)e(})1660
29724839 y(goto)i(solutionFound;)1469 4951 y(})1894 5251
2973y Fc(18)p eop end
2974%%Page: 19 19
2975TeXDict begin 19 18 bop 1469 661 a Fa(/*)47 b(checkBlock)e(*/)1469
2976774 y(result)h(=)i(true;)1469 887 y(blockTmpRow)d(=)i(tmpRow)f(-)i
2977(\(tmpRow)e(\045)h(\(MAX_XYZ)f(/)h(3\)\);)1469 1000 y(blockTmpCol)e(=)i
2978(tmpCol)f(-)i(\(tmpCol)e(\045)h(\(MAX_XYZ)f(/)h(3\)\);)1469
29791112 y(for)g(\(blockRow)e(=)j(blockTmpRow;)c(blockRow)i(<)h
2980(\(blockTmpRow)e(+)i(3\);)g(blockRow++\))1469 1225 y({)1660
29811338 y(for)g(\(blockCol)e(=)j(blockTmpCol;)c(blockCol)i(<)h
2982(\(blockTmpCol)e(+)i(3\);)g(blockCol++\))1660 1451 y({)1803
29831564 y(if)g(\(debug\(4\)\))1803 1677 y({)1994 1790 y
2984(fprintf\(DEBUGPLACE,"DEBUG)41 b(SOL)47 b(2:)g(..checking)e
2985([\045i,\045i]\\n",blockRow,block)o(Col\))o(;)1803 1903
2986y(})1803 2016 y(if\(_possible[blockRow][bl)o(ockC)o(ol][)o(tmp)o(Poss)o
2987(ible)o(])d(==)47 b(true)g(&&)1946 2129 y(\(not)g(\(tmpRow)f(==)h
2988(blockRow)f(&&)h(tmpCol)f(==)h(blockCol\)\))e(\))1803
29892242 y({)2042 2355 y(if)i(\(debug\(4\)\))e({)j
2990(fprintf\(DEBUGPLACE,"DEB)o(UG)41 b(SOL)47 b(2:)h(...will)d(cause)i
2991(failure\\n"\);)d(})2042 2467 y(result)i(=)h(false;)2042
29922580 y(goto)g(blockCheckFailed;)1803 2693 y(})1803 2806
2993y(else)1803 2919 y({)1851 3032 y(if)g(\(debug\(4\)\))e({)j
2994(fprintf\(DEBUGPLACE,"DEB)o(UG)42 b(SOL)k(2:)i(...will)d(be)j(no)f
2995(harm\\n"\);)e(})1803 3145 y(})1660 3258 y(})1469 3371
2996y(})324 3484 y(blockCheckFailed:)1469 3597 y(if)i(\(result)f(==)h
2997(true\))1469 3709 y({)1660 3822 y(if)g(\(debug\(3\)\))e({)j
2998(fprintf\(DEBUGPLACE,"DEB)o(UG)42 b(SOL)47 b(2:)g(..succesfull)d(at)j
2999(Blockcheck\\n"\);)d(})1660 3935 y(goto)j(solutionFound;)1469
30004048 y(})1278 4161 y(})1087 4274 y(})897 4387 y(})706
30014500 y(})515 4613 y(})515 4839 y(return\(false\);)1894
30025251 y Fc(19)p eop end
3003%%Page: 20 20
3004TeXDict begin 20 19 bop 324 548 a Fa(solutionFound:)515
3005661 y(row)47 b(=)g(tmpRow;)515 774 y(col)g(=)g(tmpCol;)515
3006887 y(number)f(=)h(tmpPossible)e(+)i(1;)515 1000 y(return\(true\);)324
30071112 y(})324 1338 y(/*)g(available)e(striper,)h(row)h(based)f(*/)324
30081451 y(/*)h(FIXME:)f(Should)g(be)h(more)g(modular,)e(to)j(reduce)e
3009(line)g(length)g(and)h(readabilitcol)e(*/)324 1564 y(bool)h
3010(Sudoku::_solution3a\(int)c(&row,)k(int)h(&col,)f(int)h(&number\))324
30111677 y({)515 1790 y(int)g(tmpRow;)515 1903 y(int)g(tmpCol;)515
30122016 y(int)g(tmpPossible;)515 2129 y(int)g(tmpPossible2;)515
30132242 y(int)g(tmpColNumber;)515 2355 y(int)g(tmpNumber[MAX_XYZ];)515
30142467 y(int)g(tmpAllNumbers;)515 2580 y(int)g(tmpAllNumbersFound;)515
30152806 y(bool)f(result;)515 3032 y(for)h(\(tmpRow)e(=)j(0;)f(tmpRow)f(<)i
3016(MAX_XYZ;)d(tmpRow++\))515 3145 y({)706 3258 y(for)i(\(tmpCol)e(=)j(0;)
3017f(tmpCol)f(<)h(MAX_XYZ;)f(tmpCol++\))706 3371 y({)897
30183484 y(if)h(\(_sudoku[tmpRow][tmpCol)o(])42 b(==)47 b(0\))897
30193597 y({)897 3709 y(if)g(\(debug\(3\)\))e({)i(fprintf\(DEBUGPLACE,"SOL)
302042 b(3a)47 b(DEBUG)f(Checking)g([\045i,\045i]...\\n",tmpRow,tm)o(pCol)o
3021(\);)41 b(})1087 3822 y(/*)48 b(Set)f(all)f(numbers)g(*/)1087
30223935 y(tmpAllNumbers)f(=)i(0;)1087 4048 y(for)g(\(tmpPossible)e(=)i(0;)
3023g(tmpPossible)e(<)j(MAX_XYZ;)d(tmpPossible++\))1087 4161
3024y({)1278 4274 y(if)j(\(_possible[tmpRow][tmp)o(Col])o([tmp)o(Pos)o
3025(sibl)o(e])42 b(==)47 b(true\))1278 4387 y({)1469 4500
3026y(tmpNumber[tmpPossible])42 b(=)47 b(1;)1469 4613 y(tmpAllNumbers++;)
30271278 4726 y(})1278 4839 y(else)1278 4951 y({)1894 5251
3028y Fc(20)p eop end
3029%%Page: 21 21
3030TeXDict begin 21 20 bop 1469 548 a Fa(tmpNumber[tmpPossible])42
3031b(=)47 b(0;)1278 661 y(})1087 774 y(})1087 887 y(if)h(\(debug\(3\)\))d
3032({)i(fprintf\(DEBUGPLACE,"SOL)41 b(3a)48 b(DEBUG)e(\045i\\n",)g
3033(tmpAllNumbers\);)e(})1087 1000 y(if)k(\(tmpAllNumbers)43
3034b(!=)48 b(0\))1087 1112 y({)1278 1225 y(for)f(\(tmpColNumber)d(=)k(0;)f
3035(tmpColNumber)d(<)k(MAX_XYZ;)d(tmpColNumber++\))1278
30361338 y({)1469 1451 y(if)i(\(_sudoku[tmpRow][tmpColNum)o(ber)o(])42
3037b(==)47 b(0)h(&&)f(tmpColNumber)d(!=)j(tmpCol\))1469
30381564 y({)1660 1677 y(result)f(=)i(true;)1660 1790 y(for)f
3039(\(tmpPossible2)d(=)k(0;)f(tmpPossible2)d(<)k(MAX_XYZ;)d
3040(tmpPossible2++\))1660 1903 y({)1851 2016 y(if)i(\()h
3041(_possible[tmpRow][tmpCo)o(lNum)o(ber)o(][tm)o(pPos)o(sib)o(le2])41
3042b(==)47 b(true)g(&&)2137 2129 y(_possible[tmpRow][tmpCol][)o(tmp)o
3043(Poss)o(ible)o(2])41 b(==)48 b(false\))1851 2242 y({)2042
30442355 y(if)f(\(debug\(3\)\))2042 2467 y({)2233 2580 y
3045(fprintf\(DEBUGPLACE,"SOL)41 b(3a)47 b(DEBUG)g([\045i,\045i])f(failed)g
3046(at)h(\045i\\n",)2615 2693 y(tmpRow,)e(tmpColNumber,tmpPossible2+)o
3047(1\);)2042 2806 y(})2042 2919 y(result)h(=)h(false;)2042
30483032 y(break;)1851 3145 y(})1660 3258 y(})1660 3371 y(if)g(\(result)f
3049(==)h(true\))1660 3484 y({)1851 3597 y(if)g(\(debug\(3\)\))1851
30503709 y({)2042 3822 y(fprintf\(DEBUGPLACE,"SOL)41 b(3a)48
3051b(DEBUG)e([\045i,\045i])g(will)g(increase\\n",)2424 3935
3052y(tmpRow,)g(tmpColNumber\);)1851 4048 y(})1851 4161 y(for)h
3053(\(tmpPossible2)d(=)k(0;)f(tmpPossible2)d(<)k(MAX_XYZ;)d
3054(tmpPossible2++\))1851 4274 y({)2042 4387 y(if)i
3055(\(_possible[tmpRow][tmpCol)o(Num)o(ber])o([tmp)o(Pos)o(sibl)o(e2])41
3056b(==)47 b(true\))2042 4500 y({)2233 4613 y(if)g(\(debug\(3\)\))e({)i
3057(fprintf\(DEBUGPLACE,)2615 4726 y("SOL)f(3a)h(DEBUG)g([\045i,\045i])f
3058(will)g(increase)g(possible)f(\045i)j(to)f(\045i\\n",)2615
30594839 y(tmpRow,)e(tmpColNumber,)g(tmpPossible2)f(+)k(1,)f
3060(tmpNumber[tmpPossible2])41 b(+)48 b(1\);)2233 4951 y(})1894
30615251 y Fc(21)p eop end
3062%%Page: 22 22
3063TeXDict begin 22 21 bop 2233 661 a Fa(if)47 b
3064(\(tmpNumber[tmpPossible2])41 b(==)47 b(tmpAllNumbers\))2233
3065774 y({)2424 887 y(goto)f(colCheckFailed;)2233 1000 y(})2233
30661112 y(else)2233 1225 y({)2424 1338 y(tmpNumber[tmpPossible2])o(++;)
30672233 1451 y(})2042 1564 y(})1851 1677 y(})1660 1790 y(})1469
30681903 y(})1278 2016 y(})1278 2242 y(/*)i(calculate)d(if)i(result)f
3069(found)g(*/)1278 2355 y(tmpAllNumbersFound)d(=)48 b(1;)1278
30702467 y(for)f(\(tmpPossible)e(=)i(0;)g(tmpPossible)e(<)i(MAX_XYZ;)f
3071(tmpPossible++\))1278 2580 y({)1469 2693 y(if)h
3072(\(tmpNumber[tmpPossible])42 b(==)47 b(tmpAllNumbers\))1469
30732806 y({)1660 2919 y(tmpAllNumbersFound++;)1660 3032
3074y(if)g(\(debug\(3\)\))1660 3145 y({)1851 3258 y(fprintf\(DEBUGPLACE,)
30752233 3371 y("SOL)f(3b)i(DEBUG)e(\045i)h(reduced)f(tmpAllNumbers)e(to)j
3076(\045i\\n",)2233 3484 y(tmpPossible)e(+)i(1,)g(tmpAllNumbers\);)1660
30773597 y(})1469 3709 y(})1278 3822 y(})1278 4048 y(if)h
3078(\(tmpAllNumbersFound)42 b(==)47 b(tmpAllNumbers\))1278
30794161 y({)1469 4274 y(for)g(\(tmpPossible)e(=)i(0;)g(tmpPossible)e(<)i
3080(MAX_XYZ;)f(tmpPossible++\))1469 4387 y({)1660 4500 y(if)h
3081(\(tmpNumber[tmpPossible])42 b(==)47 b(1\))1660 4613
3082y({)1851 4726 y(row)g(=)g(tmpRow;)1851 4839 y(col)g(=)g(tmpCol;)1851
30834951 y(number)f(=)i(tmpPossible)c(+)k(1;)1894 5251 y
3084Fc(22)p eop end
3085%%Page: 23 23
3086TeXDict begin 23 22 bop 1851 548 a Fa(return\(true\);)1660
3087661 y(})1469 774 y(})1278 887 y(})1087 1000 y(})897 1112
3088y(})47 b(//end)f(if)324 1225 y(colCheckFailed:)706 1338
3089y(if)h(\(debug\(3\)\))e({)i(fprintf\(DEBUGPLACE,"SOL)42
3090b(3c)47 b(DEBUG)f(no)h(failed)f(solution)g(found\\n"\);)f(})706
30911451 y(})515 1564 y(})515 1677 y(return\(false\);)324
30921790 y(})324 2016 y(/*)i(available)e(striper,)h(col)h(based,)f(note)g
3093(row)h(number)f(will)h(change)f(;-\))h(*/)324 2129 y(/*)g(FIXME:)f
3094(Should)g(be)h(more)g(modular,)e(to)j(reduce)e(line)g(length)g(and)h
3095(readabilitcol)e(*/)324 2242 y(bool)h(Sudoku::_solution3b\(int)c(&row,)
3096k(int)h(&col,)f(int)h(&number\))324 2355 y({)515 2467
3097y(int)g(tmpRow;)515 2580 y(int)g(tmpCol;)515 2693 y(int)g(tmpPossible;)
3098515 2806 y(int)g(tmpPossible2;)515 2919 y(int)g(tmpRowNumber;)515
30993032 y(int)g(tmpNumber[MAX_XYZ];)515 3145 y(int)g(tmpAllNumbers;)515
31003258 y(int)g(tmpAllNumbersFound;)515 3484 y(bool)f(result;)515
31013709 y(for)h(\(tmpRow)e(=)j(0;)f(tmpRow)f(<)i(MAX_XYZ;)d(tmpRow++\))515
31023822 y({)706 3935 y(for)i(\(tmpCol)e(=)j(0;)f(tmpCol)f(<)h(MAX_XYZ;)f
3103(tmpCol++\))706 4048 y({)897 4161 y(if)h(\(_sudoku[tmpRow][tmpCol)o(])
310442 b(==)47 b(0\))897 4274 y({)897 4387 y(if)g(\(debug\(3\)\))e({)i
3105(fprintf\(DEBUGPLACE,"SOL)42 b(3b)47 b(DEBUG)f(Checking)g
3106([\045i,\045i]...\\n",tmpRow,tm)o(pCol)o(\);)41 b(})1087
31074500 y(/*)48 b(Set)f(all)f(numbers)g(*/)1087 4613 y(tmpAllNumbers)f(=)i
3108(0;)1087 4726 y(for)g(\(tmpPossible)e(=)i(0;)g(tmpPossible)e(<)j
3109(MAX_XYZ;)d(tmpPossible++\))1087 4839 y({)1278 4951 y(if)j
3110(\(_possible[tmpRow][tmp)o(Col])o([tmp)o(Pos)o(sibl)o(e])42
3111b(==)47 b(true\))1894 5251 y Fc(23)p eop end
3112%%Page: 24 24
3113TeXDict begin 24 23 bop 1278 548 a Fa({)1469 661 y
3114(tmpNumber[tmpPossible])42 b(=)47 b(1;)1469 774 y(tmpAllNumbers++;)1278
3115887 y(})1278 1000 y(else)1278 1112 y({)1469 1225 y
3116(tmpNumber[tmpPossible])42 b(=)47 b(0;)1278 1338 y(})1087
31171451 y(})1087 1564 y(if)h(\(debug\(3\)\))d({)i
3118(fprintf\(DEBUGPLACE,"SOL)41 b(3b)48 b(DEBUG)e(\045i\\n",)g
3119(tmpAllNumbers\);)e(})1087 1677 y(if)k(\(tmpAllNumbers)43
3120b(!=)48 b(0\))1087 1790 y({)1278 1903 y(for)f(\(tmpRowNumber)d(=)k(0;)f
3121(tmpRowNumber)d(<)k(MAX_XYZ;)d(tmpRowNumber++\))1278
31222016 y({)1469 2129 y(if)i(\(_sudoku[tmpRowNumber][tmp)o(Col)o(])42
3123b(==)47 b(0)h(&&)f(tmpRowNumber)d(!=)j(tmpRow\))1469
31242242 y({)1660 2355 y(result)f(=)i(true;)1660 2467 y(for)f
3125(\(tmpPossible2)d(=)k(0;)f(tmpPossible2)d(<)k(MAX_XYZ;)d
3126(tmpPossible2++\))1660 2580 y({)1851 2693 y(if)i(\()h
3127(_possible[tmpRowNumber])o([tmp)o(Col)o(][tm)o(pPos)o(sib)o(le2])41
3128b(==)47 b(true)g(&&)2137 2806 y(_possible[tmpRow][tmpCol][)o(tmp)o
3129(Poss)o(ible)o(2])41 b(==)48 b(false\))1851 2919 y({)2042
31303032 y(if)f(\(debug\(3\)\))2042 3145 y({)2233 3258 y
3131(fprintf\(DEBUGPLACE,)2615 3371 y("SOL)f(3b)h(DEBUG)g([\045i,\045i])f
3132(failed)g(at)h(\045i\\n",)2615 3484 y(tmpRowNumber,)d
3133(tmpCol,tmpPossible2+1\);)2042 3597 y(})2042 3709 y(result)i(=)h
3134(false;)2042 3822 y(break;)1851 3935 y(})1660 4048 y(})1660
31354161 y(if)g(\(result)f(==)h(true\))1660 4274 y({)1851
31364387 y(if)g(\(debug\(3\)\))e({)j(fprintf\(DEBUGPLACE,)2233
31374500 y("SOL)e(3b)i(DEBUG)e([\045i,\045i])g(will)g(increase\\n",)2233
31384613 y(tmpRowNumber,)e(tmpCol\);)1851 4726 y(})1851 4839
3139y(for)j(\(tmpPossible2)d(=)k(0;)f(tmpPossible2)d(<)k(MAX_XYZ;)d
3140(tmpPossible2++\))1851 4951 y({)1894 5251 y Fc(24)p eop
3141end
3142%%Page: 25 25
3143TeXDict begin 25 24 bop 2042 548 a Fa(if)47 b
3144(\(_possible[tmpRowNumber][)o(tmp)o(Col])o([tmp)o(Pos)o(sibl)o(e2])41
3145b(==)47 b(true\))2042 661 y({)2233 774 y(if)g(\(debug\(3\)\))2233
3146887 y({)2424 1000 y(fprintf\(DEBUGPLACE,)2806 1112 y("SOL)f(3b)h(DEBUG)
3147g([\045i,\045i])f(will)g(increase)g(possible)f(\045i)i(to)h(\045i\\n",)
31482806 1225 y(tmpRowNumber,)c(tmpCol,)i(tmpPossible2)e(+)j(1,)2806
31491338 y(tmpNumber[tmpPossible2])41 b(+)47 b(1\);)2233
31501451 y(})2233 1677 y(if)g(\(tmpNumber[tmpPossible2])41
3151b(==)47 b(tmpAllNumbers\))2233 1790 y({)2424 1903 y(goto)f
3152(rowCheckFailed;)2233 2016 y(})2233 2129 y(else)2233
31532242 y({)2424 2355 y(tmpNumber[tmpPossible2])o(++;)2233
31542467 y(})2042 2580 y(})1851 2693 y(})1660 2806 y(})1469
31552919 y(})1278 3032 y(})1278 3258 y(/*)i(calculate)d(if)i(result)f
3156(found)g(*/)1278 3371 y(tmpAllNumbersFound)d(=)48 b(1;)1278
31573484 y(for)f(\(tmpPossible)e(=)i(0;)g(tmpPossible)e(<)i(MAX_XYZ;)f
3158(tmpPossible++\))1278 3597 y({)1469 3709 y(if)h
3159(\(tmpNumber[tmpPossible])42 b(==)47 b(tmpAllNumbers\))1469
31603822 y({)1660 3935 y(tmpAllNumbersFound++;)1660 4048
3161y(if)g(\(debug\(3\)\))1660 4161 y({)1851 4274 y(fprintf\(DEBUGPLACE,)
31622042 4387 y("SOL)g(3b)g(DEBUG)f(\045i)h(reduced)f(tmpAllNumbers)e(to)j
3163(\045i\\n",)2042 4500 y(tmpPossible)e(+)i(1,)g(tmpAllNumbers\);)1660
31644613 y(})1469 4726 y(})1278 4839 y(})1894 5251 y Fc(25)p
3165eop end
3166%%Page: 26 26
3167TeXDict begin 26 25 bop 1278 548 a Fa(if)48 b(\(tmpAllNumbersFound)42
3168b(==)47 b(tmpAllNumbers\))1278 661 y({)1469 774 y(for)g(\(tmpPossible)e
3169(=)i(0;)g(tmpPossible)e(<)i(MAX_XYZ;)f(tmpPossible++\))1469
3170887 y({)1660 1000 y(if)h(\(tmpNumber[tmpPossible])42
3171b(==)47 b(1\))1660 1112 y({)1851 1225 y(row)g(=)g(tmpRow;)1851
31721338 y(col)g(=)g(tmpCol;)1851 1451 y(number)f(=)i(tmpPossible)c(+)k(1;)
31731851 1564 y(return\(true\);)1660 1677 y(})1469 1790 y(})1278
31741903 y(})1087 2016 y(})897 2129 y(})f(//end)f(if)324
31752242 y(rowCheckFailed:)897 2355 y(if)h(\(debug\(3\)\))e({)i
3176(fprintf\(DEBUGPLACE,"SOL)42 b(3b)47 b(DEBUG)f(no)h(failed)f(solution)g
3177(found\\n"\);)f(})706 2467 y(})515 2580 y(})515 2693
3178y(return\(false\);)324 2806 y(})324 2919 y(int)i
3179(Sudoku::solutionFinder\()o(\))324 3032 y({)515 3145
3180y(#define)f(NO_SOLUTION)e(0)515 3258 y(#define)i(SOLUTION_1)f(1)515
31813371 y(#define)h(SOLUTION_2)f(2)515 3484 y(#define)h(SOLUTION_3a)e(3)
3182515 3597 y(#define)i(SOLUTION_3b)e(4)515 3709 y(#define)i(SOLUTION_3c)e
3183(5)515 3822 y(int)j(row;)515 3935 y(int)g(col;)515 4048
3184y(int)g(number;)515 4274 y(bool)f(gameAnalcolzed;)515
31854387 y(int)h(returnCode;)515 4500 y(int)g(solutionNumber;)515
31864726 y(gameAnalcolzed)d(=)j(false;)515 4951 y(while\()f(gameAnalcolzed)
3187e(==)j(false)f(\))1894 5251 y Fc(26)p eop end
3188%%Page: 27 27
3189TeXDict begin 27 26 bop 515 548 a Fa({)706 661 y(solutionNumber)44
3190b(=)j(NO_SOLUTION;)706 774 y(if)g(\(_numbersFilled)c(==)48
3191b(MAX_XYZ)d(*)j(MAX_XYZ\))706 887 y({)897 1000 y(gameAnalcolzed)43
3192b(=)48 b(true;)897 1112 y(returnCode)d(=)i(0;)706 1225
3193y(})706 1338 y(else)706 1451 y({)897 1564 y(if)g(\(_solution1\(row,)c
3194(col,)k(number\))e(==)j(true\))897 1677 y({)1087 1790
3195y(solutionNumber)c(=)k(SOLUTION_1;)897 1903 y(})897 2016
3196y(else)e(if\(_solution2\(row,)d(col,)k(number\))e(==)j(true\))897
31972129 y({)1087 2242 y(solutionNumber)c(=)k(SOLUTION_2;)897
31982355 y(})897 2467 y(else)e(if\(_solution3a\(row,)d(col,)j(number\))g
3199(==)h(true\))897 2580 y({)1087 2693 y(solutionNumber)d(=)k
3200(SOLUTION_3a;)897 2806 y(})897 2919 y(else)e(if\(_solution3b\(row,)d
3201(col,)j(number\))g(==)h(true\))897 3032 y({)1087 3145
3202y(solutionNumber)d(=)k(SOLUTION_3b;)897 3258 y(})897
32033371 y(else)897 3484 y({)1087 3597 y(gameAnalcolzed)c(=)k(true;)1087
32043709 y(returnCode)d(=)j(1;)897 3822 y(})706 3935 y(})706
32054161 y(if)f(\(solutionNumber)c(!=)48 b(NO_SOLUTION\))706
32064274 y({)897 4387 y(insert\(row,)c(col,)j(number\);)897
32074500 y(printf\("Filled)c(in)48 b(\045i)f(at)g([\045i,\045i])f(found)g
3208(with)h(finder)f(\045i\\n",)g(number,)g(row,)g(col,)h
3209(solutionNumber\);)897 4613 y(printf\("Total)d(Numbers)h(filled)i
3210(\045i\\n",)f(_numbersFilled\);)897 4726 y(printNice\(row,)d(col\);)897
32114839 y(getchar\(\);)706 4951 y(})1894 5251 y Fc(27)p
3212eop end
3213%%Page: 28 28
3214TeXDict begin 28 27 bop 515 661 a Fa(})515 774 y(return\(returnCode\);)
3215324 887 y(})324 1112 y(int)47 b(main\(int)e(argc,)i(char)f(*argv[]\))
3216324 1225 y({)515 1338 y(Sudoku)g(puzzel;)515 1451 y(int)h(timesFailed;)
3217515 1564 y(int)g(returnCode;)515 1790 y(returnCode)e(=)i(0;)515
32182016 y(if)g(\(argc)f(==)h(3)h(&&)f(strcmp\(argv[1],)d("-f"\))i(==)h
3219(0\))515 2129 y({)706 2242 y(if)g(\(strcmp\(argv[2],)c("-"\))k(==)g
3220(0\))706 2355 y({)897 2467 y(if)g(\(debug\(1\)\))e({)i
3221(fprintf\(DEBUGPLACE,)c("Reading)i(from)i('stdin'\\n"\);)d(})897
32222580 y(puzzel.fromFile\(stdin\))o(;)706 2693 y(})706
32232806 y(else)706 2919 y({)897 3032 y(if)j(\(debug\(1\)\))e({)i
3224(fprintf\(DEBUGPLACE,)c("Reading)i(from)i(\045s\\n",argv[2]\);)c(})897
32253145 y(puzzel.fromFile\(fopen\()o(argv)o([2],)e("r"\)\);)706
32263258 y(})706 3371 y(printf\("I)k(have)i(read)f(this)h(puzzle\\n"\);)706
32273484 y(puzzel.printNice\(\);)706 3597 y(returnCode)e(=)i
3228(puzzel.solutionFinder\(\);)706 3709 y(if)g(\(returnCode)e(==)i(0\))706
32293822 y({)897 3935 y(printf\("I)e(Guess)h(this)h(will)f(be)i(the)e
3230(final)h(solution\\n"\);)897 4048 y(puzzel.printNice\(\);)706
32314161 y(})706 4274 y(else)706 4387 y({)897 4500 y(printf\("Finding)c
3232(Solution)j(failed,)f(error)i(code:)f(\045i\\n",)g(returnCode\);)897
32334613 y(printf\("Failed)d(at)48 b(puzzle\\n"\);)897 4726
3234y(puzzel.printNice\(\);)897 4839 y(puzzel.printPossible\(\))o(;)706
32354951 y(})1894 5251 y Fc(28)p eop end
3236%%Page: 29 29
3237TeXDict begin 29 28 bop 515 548 a Fa(})515 661 y(else)46
3238b(if)i(\(argc)e(==)h(3)h(&&)f(strcmp\(argv[1],)c("-c"\))k(==)g(0\))515
3239774 y({)706 887 y(fprintf\(DEBUGPLACE,"Ple)o(ase)41 b(wait)47
3240b(will)f(generating)f(puzzle"\);)706 1000 y(timesFailed)f(=)k(0;)706
32411112 y(while)e(\(puzzel.randomNumbers\(st)o(rtod)o(\(ar)o(gv[2)o(],)c
3242(NULL\)\))k(==)h(1)g(\))706 1225 y({)897 1338 y(timesFailed++;)897
32431451 y(if)g(\(debug\(1\)\))897 1564 y({)1087 1677 y
3244(fprintf\(DEBUGPLACE,)c("Failed)j(to)h(created)f(the)h(puzzel)f(at)h
3245(the)g(\045i)g(round\\n",)e(timesFailed\);)897 1790 y(})897
32461903 y(else)897 2016 y({)1087 2129 y(fprintf\(DEBUGPLACE,"."\);)897
32472242 y(})897 2355 y(puzzel.reset\(\);)706 2467 y(})706
32482580 y(fprintf\(DEBUGPLACE,)d("\\nResult,)j(\(NOTE\(!\):)g(puzzle)h
3249(might)h(not)g(be)g(solveble\)\\n"\);)706 2693 y(puzzel.printRaw\(\);)
3250515 2806 y(})515 2919 y(else)515 3032 y({)706 3145 y(printf\("Usage)d
3251(\045s)j(-f)g(<filename>\\n",argv[0]\);)706 3258 y(printf\("NOTE)d(1:)j
3252(No)g(error)g(checking)e(done,)i(valid)f(input)g(puzzel)g(will)h(be)g
3253("\);)706 3371 y(printf\("generated)c(the)k(-c)g(flags\\n"\);)706
32543484 y(printf\("NOTE)d(2:)j(if)g(<filename>)e(=)j(-,)f(stdin)f(will)h
3255(be)g(used)g(as)g(input"\);)706 3597 y(printf\("Usage)d(\045s)j(-c)g
3256(<percent)f(filled>)f(To)j(create)e(a)h(new)g(puzzle\\n",argv[0]\);)706
32573709 y(printf\("NOTE)d(1:)j(Above)g(60\045\045)f(it)h(will)g(be)g(a)h
3258(bit)f(hard)f(to)h(create)f("\);)706 3822 y(printf\("a)f(puzzle\\n"\);)
3259706 3935 y(printf\("NOTE)f(2:)j(Puzzle)f(generated)g(will)g(not)h
3260(always)f(be)h(solveble\\n"\);)706 4048 y(returnCode)e(=)i(128;)515
32614161 y(})515 4274 y(return\(returnCode\);)324 4387 y(})1894
32625251 y Fc(29)p eop end
3263%%Page: 30 30
3264TeXDict begin 30 29 bop 324 548 a Fe(App)t(endix)52 b(B:)i(sudoku.cpp)
3265324 767 y Fc(Sample)33 b(of)f(17-clue)h(puzzles)h(found)f(at)f(Minim)m
3266(um)j(Sudoku[2)q(].)d(Input)i(Ro)m(w)e(based.)324 988
3267y Fa(000000010400000000020000)o(000)o(0000)o(504)o(0700)o(8000)o(300)o
3268(0010)o(9000)o(030)o(0400)o(2000)o(501)o(0000)o(0000)o(806)o(000)324
32691101 y(000000010400000000020000)o(000)o(0000)o(506)o(0400)o(8000)o(300)
3270o(0010)o(9000)o(030)o(0400)o(2000)o(501)o(0000)o(0000)o(807)o(000)324
32711214 y(000000012000035000000600)o(070)o(7000)o(003)o(0000)o(0400)o(800)
3272o(1000)o(0000)o(000)o(0120)o(0000)o(800)o(0004)o(0050)o(000)o(600)324
32731327 y(000000012003600000000007)o(000)o(4100)o(200)o(0000)o(0500)o(300)
3274o(7000)o(0060)o(028)o(0000)o(0400)o(003)o(0050)o(0000)o(000)o(000)324
32751439 y(000000012008030000000000)o(040)o(1205)o(000)o(0000)o(0004)o(700)
3276o(0600)o(0000)o(050)o(7000)o(3000)o(006)o(2000)o(0000)o(100)o(000)324
32771552 y(000000012040050000000009)o(000)o(0706)o(004)o(0000)o(0100)o(000)
3278o(0000)o(0005)o(000)o(0087)o(5006)o(010)o(0030)o(0200)o(000)o(000)324
32791665 y(000000012050400000000000)o(030)o(7006)o(004)o(0000)o(1000)o(000)
3280o(0000)o(8000)o(092)o(0000)o(8000)o(005)o(1070)o(0000)o(003)o(000)324
32811778 y(000000012300000060000040)o(000)o(9000)o(005)o(0000)o(0001)o(070)
3282o(0200)o(0000)o(000)o(0350)o(4000)o(014)o(0080)o(0060)o(000)o(000)324
32831891 y(000000012400090000000000)o(050)o(0702)o(000)o(0060)o(0000)o(400)
3284o(0001)o(0800)o(001)o(8000)o(0000)o(000)o(3070)o(0502)o(000)o(000)324
32852004 y(000000012500008000000700)o(000)o(6001)o(200)o(0070)o(0000)o(450)
3286o(0000)o(3000)o(003)o(0000)o(8000)o(005)o(0070)o(0020)o(000)o(000)324
32872117 y(000000012700060000000000)o(050)o(0802)o(000)o(0060)o(0000)o(400)
3288o(0001)o(0900)o(001)o(9000)o(0000)o(000)o(3080)o(0502)o(000)o(000)324
32892230 y(000000012800040000000000)o(060)o(0902)o(000)o(0070)o(0000)o(400)
3290o(0005)o(0100)o(001)o(5000)o(0000)o(000)o(3090)o(0602)o(000)o(000)324
32912343 y(000000013000500070000802)o(000)o(0004)o(009)o(0010)o(7000)o(000)
3292o(0000)o(0020)o(089)o(0000)o(0500)o(400)o(0060)o(0000)o(010)o(000)324
32932456 y(000000013000700060000508)o(000)o(0004)o(008)o(0010)o(6000)o(000)
3294o(0000)o(0020)o(074)o(0000)o(0500)o(200)o(0040)o(0000)o(010)o(000)324
32952569 y(000000013000700060000509)o(000)o(0004)o(009)o(0010)o(6000)o(000)
3296o(0000)o(0020)o(074)o(0000)o(0500)o(800)o(0040)o(0000)o(010)o(000)324
32972681 y(000000013000800070000502)o(000)o(0004)o(009)o(0010)o(7000)o(000)
3298o(0000)o(0020)o(089)o(0000)o(0500)o(400)o(0060)o(0000)o(010)o(000)324
32992794 y(000000013020500000000000)o(000)o(1030)o(000)o(7000)o(0802)o(000)
3300o(0040)o(0000)o(000)o(0340)o(5006)o(700)o(0020)o(0000)o(010)o(000)324
33012907 y(000000013040000080200060)o(000)o(6090)o(004)o(0000)o(0800)o(000)
3302o(0003)o(0000)o(003)o(0100)o(5000)o(000)o(4070)o(6000)o(000)o(000)324
33033020 y(000000013040000080200060)o(000)o(9060)o(004)o(0000)o(0800)o(000)
3304o(0003)o(0000)o(003)o(0100)o(5000)o(000)o(4070)o(6000)o(000)o(000)324
33053133 y(000000013040000090200070)o(000)o(6070)o(004)o(0000)o(0300)o(000)
3306o(0009)o(0000)o(003)o(0100)o(5000)o(000)o(6080)o(7000)o(000)o(000)324
33073246 y(...)1894 5251 y Fc(30)p eop end
3308%%Page: 31 31
3309TeXDict begin 31 30 bop 324 548 a Fe(App)t(endix)52 b(C:)h(sudoku.cpp)
3310324 767 y Fc(The)33 b(follo)m(wing)g(Shell)h(co)s(de)f(has)g(b)s(een)g
3311(used)h(to)e(generate)h(the)g(test)g(results)324 988
3312y Fa(#!/bin/sh)324 1101 y(#)47 b(file:)g(testcase.sh)324
33131214 y(#)g(author:)f(Rick)h(van)g(der)g(Zwet,)f(0433373)324
33141327 y(#)h(University)e(Leiden,)h(LIACS)324 1439 y(timesPlayed=0)324
33151552 y(timesWon=0)324 1665 y(timesLost=0)324 1778 y(if)h([)g("x$1")g
3316(==)g("x")g(];)g(then)515 1891 y(totalNumber=100)324
33172004 y(else)515 2117 y(totalNumber=$1)324 2230 y(fi)324
33182456 y(for)g(puzzle)f(in)h(`cat)g(puzzles17`)324 2569
3319y(do)515 2681 y(let)g("timesPlayed+=1")515 2794 y(echo)f("${puzzle}")f
3320(|)j(./sudoku)d(-f)i(-)h(>/dev/null)515 2907 y(if)f([)g("x$?")g(==)g
3321("x0")g(];)g(then)706 3020 y(let)g("timesWon+=1")515
33223133 y(else)706 3246 y(let)g("timesLost+=1")515 3359
3323y(fi)515 3472 y(echo)f("Played:)g(${timesPlayed}")515
33243585 y(echo)g("won)142 b(:)48 b(${timesWon}")515 3698
3325y(echo)e("lost)94 b(:)48 b(${timesLost}")515 3811 y(if)f([)g
3326("x${timesPlayed}")c(==)48 b("x${totalNumber}")43 b(];)k(then)706
33273923 y(break)515 4036 y(fi)324 4149 y(done)1894 5251
3328y Fc(31)p eop end
3329%%Trailer
3330
3331userdict /end-hook known{end-hook}if
3332%%EOF
Note: See TracBrowser for help on using the repository browser.